diff --git a/Generator.hs b/Generator.hs
--- a/Generator.hs
+++ b/Generator.hs
@@ -1,4 +1,5 @@
 {-# OPTIONS_GHC -Wall #-}
+{-# LANGUAGE PatternGuards #-}
 -----------------------------------------------------------------------------
 -- |
 -- Copyright   :  (C) 2014 Edward Kmett and Gabríel Arthúr Pétursson
@@ -52,31 +53,55 @@
 sanePrefix "3DFX" = "ThreeDFX"
 sanePrefix x = x
 
-wrap :: Maybe String -> String -> String
-wrap (Just w) s
-  | any isSpace s = printf "%s (%s)" w s
-  | otherwise = printf "%s %s" w s
-wrap Nothing s = s
+wrap :: Int -> Maybe String -> String -> String
+wrap 0 _ s = s
+wrap c w'@(Just w) s
+  | any isSpace s = wrap (c-1) w' $ printf "%s (%s)" w s
+  | otherwise = wrap (c-1) w' $ printf "%s %s" w s
+wrap _ Nothing s = s
 
+link :: Map Name Category -> Name -> String
+link cs n = case Map.lookup n cs of
+  Just (C _ ss) -> case compare (Set.size ss) 1 of
+    GT -> "'Graphics.GL.Raw.Internal.Shared." ++ n ++ "'"
+    EQ -> "'" ++ Set.findMin ss ++ "." ++ n ++ "'"
+    LT -> "@" ++ n ++ "@"
+  _ -> "@" ++ n ++ "@"
+
+commandDescription :: Map String [String] -> Map Name Category -> Command -> Set String -> String
+commandDescription fm cs (Command cmdName _cmdType cmdParameters vecEquiv alias) man = concat $
+  [ "-- | Usage: @" ++ unwords (("'" ++ cmdName ++ "'") : map parameterName cmdParameters) ++ "@\n" ] ++
+  [ case Map.lookup grp fm of
+      Just xs -> printf "--\n-- The parameter @%s@ is a @%s@, one of: %s.\n"
+         (parameterName param) grp $ intercalate ", " (map (link cs) xs)
+      Nothing -> printf "--\n-- The parameter @%s@ is a @%s@.\n" (parameterName param) grp
+  | param <- cmdParameters, Just grp <- [parameterGroup param] 
+  ] ++
+  [ "--\n-- The length of @" ++ parameterName param ++ "@ should be " ++ describeLength x ++ ".\n"
+  | param <- cmdParameters, Just x <- [parameterLen param]
+  ] ++
+  [ "--\n-- This command is an alias for " ++ link cs a ++ ".\n" | Just a <- [alias] ] ++
+  [ "--\n-- The vector equivalent of this command is " ++ link cs v ++ ".\n" | Just v <- [vecEquiv] ] ++
+  [ "--\n-- Manual page: <https://www.opengl.org/sdk/docs/man/html/" ++ cmdName ++ ".xhtml>\n" | Set.member cmdName man ]
+  where
+    describeLength x = "@" ++ x ++ "@"
+
 commandSignature :: Maybe Name -> Command -> Signature
 commandSignature monad command =
   intercalate " -> " $ parameterSignature (commandParameters command) ++ [returnSignature $ commandType command]
   where
-    parameterSignature :: [(Type, String)] -> [String]
-    parameterSignature = map (typeSignature . fst)
+    parameterSignature :: [Parameter] -> [String]
+    parameterSignature = map (typeSignature . parameterType)
 
     returnSignature :: Type -> String
-    returnSignature t = wrap monad . wrap (ptr t) $
+    returnSignature t = wrap 1 monad . wrap (typePointer t) (Just "Ptr") $
       case typeName t of
         Nothing -> "()"
         Just "GLvoid" -> "()"
         Just x -> x
 
-    ptr :: Type -> Maybe String
-    ptr t = "Ptr" <$ guard (typePointer t)
-
     typeSignature :: Type -> String
-    typeSignature t = wrap (ptr t) $
+    typeSignature t = wrap (typePointer t) (Just "Ptr") $
       case typeName t of
         Nothing -> "()"
         Just "GLvoid" -> "()"
@@ -156,8 +181,8 @@
       ("GL_VERSION_4_5", "compatibility") -> ("Compatibility45", Nothing)
       ("GL_VERSION_4_5", _) -> ("Core45", Nothing)
 
-      ("GL_VERSION_ES_CM_1_0", "common") -> ("EmbeddedCommon10", Nothing)
-      ("GL_VERSION_ES_CM_1_0", _) -> ("EmbeddedLite10", Nothing)
+      ("GL_VERSION_ES_CM_1_0", "common") -> ("EmbeddedCommon11", Nothing)
+      ("GL_VERSION_ES_CM_1_0", _) -> ("EmbeddedLite11", Nothing)
 
       ("GL_ES_VERSION_2_0", _) -> ("Embedded20", Nothing)
       ("GL_ES_VERSION_3_0", _) -> ("Embedded30", Nothing)
@@ -219,8 +244,8 @@
   "Graphics.GL.Raw.Profile.Core45" -> mk [
       "Graphics.GL.Raw.Profile.Core44"
     ]
-  "Graphics.GL.Raw.Profile.EmbeddedCommon10" -> mk [
-      "Graphics.GL.Raw.Profile.EmbeddedLite10"
+  "Graphics.GL.Raw.Profile.EmbeddedCommon11" -> mk [
+      "Graphics.GL.Raw.Profile.EmbeddedLite11"
     ]
   "Graphics.GL.Raw.Profile.Embedded30" -> mk [
       "Graphics.GL.Raw.Profile.Embedded20"
@@ -255,6 +280,28 @@
   "Graphics.GL.Raw.Profile.Standard31" -> mk [
       "Graphics.GL.Raw.Profile.Standard30"
     ]
+  "Graphics.GL.Raw.Extension.ANDROID.ExtensionPackEs31a" -> mk [
+      "Graphics.GL.Raw.Extension.KHR.Debug"
+    , "Graphics.GL.Raw.Extension.KHR.TextureCompressionAstcLdr"
+    , "Graphics.GL.Raw.Extension.KHR.BlendEquationAdvanced"
+    , "Graphics.GL.Raw.Extension.OES.SampleShading"
+    , "Graphics.GL.Raw.Extension.OES.SampleVariables"
+    , "Graphics.GL.Raw.Extension.OES.ShaderImageAtomic"
+    , "Graphics.GL.Raw.Extension.OES.ShaderMultisampleInterpolation"
+    , "Graphics.GL.Raw.Extension.OES.TextureStencil8"
+    , "Graphics.GL.Raw.Extension.OES.TextureStorageMultisample2dArray"
+    , "Graphics.GL.Raw.Extension.EXT.CopyImage"
+    , "Graphics.GL.Raw.Extension.EXT.DrawBuffersIndexed"
+    , "Graphics.GL.Raw.Extension.EXT.GeometryShader"
+    , "Graphics.GL.Raw.Extension.EXT.GpuShader5"
+    , "Graphics.GL.Raw.Extension.EXT.PrimitiveBoundingBox"
+    , "Graphics.GL.Raw.Extension.EXT.ShaderIoBlocks"
+    , "Graphics.GL.Raw.Extension.EXT.TessellationShader"
+    , "Graphics.GL.Raw.Extension.EXT.TextureBorderClamp"
+    , "Graphics.GL.Raw.Extension.EXT.TextureBuffer"
+    , "Graphics.GL.Raw.Extension.EXT.TextureCubeMapArray"
+    , "Graphics.GL.Raw.Extension.EXT.TextureSRGBDecode"
+    ]
   _ -> ([], [])
   where
     mk names = (map ("module "++) names, [Import names])
@@ -369,21 +416,26 @@
       ]
 
 data FunMap = FunMap
-  { funSignatures :: Map Name Signature           -- signatures by method name
-  , funExtensions :: Map ModuleName ExtensionName -- module name to extension name
+  { funSignatures   :: Map Name Signature           -- signatures by method name
+  , funDescriptions :: Map Name String              -- descriptions by method name
+  , funExtensions   :: Map ModuleName ExtensionName -- module name to extension name
   } deriving (Eq, Show)
 
 ioish :: Signature -> Signature
 ioish = replace "m (" "IO (" . replace "m GL" "IO GL"
 
-funMap :: Registry -> [(Bool, Entry, String)] -> FunMap
-funMap registry es = FunMap
+funMap :: Registry -> Map Name Category -> [(Bool, Entry, String)] -> [String] -> FunMap
+funMap registry cs es man = FunMap
   (Map.fromList [ (n, s) | (_, F n, s) <- es ])
+  (Map.fromList [ (commandName cmd, commandDescription rgs cs cmd manset) | cmd <- registryCommands registry ])
   (Map.fromList $ map ((extensionModuleName&&&id).extensionName) $ registryExtensions registry)
+  where rgs = Map.fromList [ (n, s) | Group n s <- registryGroups registry ]
+        manset = Set.fromList man
 
-funBody :: Name -> Signature -> [Body]
-funBody n v =
-  [ Function n ("MonadIO m => " ++ v) $ strip $ printf "= %s %s" (invokerName v) np
+funBody :: FunMap -> Name -> Signature -> [Body]
+funBody fm n v =
+  [ Code $ funDescriptions fm Map.! n
+  , Function n ("MonadIO m => " ++ v) $ strip $ printf "= %s %s" (invokerName v) np
   , Function np ("FunPtr (" ++ v' ++ ")") $ strip $ printf "= unsafePerformIO (getProcAddress %s)" (show n)
   , Code $ printf "{-# NOINLINE %s #-}" np
   ] where
@@ -415,8 +467,8 @@
   nd = dynamicName v
   ni = invokerName v
 
-mkShared :: [(Bool, Entry, String)] -> Module
-mkShared entr = Module "Graphics.GL.Raw.Internal.Shared" [] body
+mkShared :: FunMap -> [(Bool, Entry, String)] -> Module
+mkShared fm entr = Module "Graphics.GL.Raw.Internal.Shared" [] body
   where
     imp =
       [ Import
@@ -432,10 +484,10 @@
     body = imp ++ concatMap bodyF (nub entr)
     bodyF (False, _, _) = []
     bodyF (_, E n, v) = [Pattern n Nothing ("= " ++ v)]
-    bodyF (_, F n, v) = funBody n v
+    bodyF (_, F n, v) = funBody fm n v
 
-mkModule :: FunMap -> String -> [(Bool, Entry, String)] -> Module
-mkModule fm m entr = Module m export body
+mkModule :: FunMap -> Set String -> String -> [(Bool, Entry, String)] -> Module
+mkModule fm re m entr = Module m export body
   where
     entryName (E n) = "pattern " ++ n
     entryName (F n) = n
@@ -477,18 +529,26 @@
       extCheck ++
       concatMap bodyF entr
 
+    tryLink e en 
+      | Set.member e re = "<https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/" ++ e ++ ".txt "++ en ++ ">"
+      | otherwise = en
+
     extCheck = case Map.lookup m (funExtensions fm) of
-      Just en ->
-        [ Function
-          ("gl_" ++ (intercalate "_" . tail $ splitOn "_" en))
-          "Bool"
-          ("= member " ++ show en ++ " extensions")
-        ]
+      Just en 
+        | parts@(vendor:rest) <- tail (splitOn "_" en)
+        , e <- vendor ++ "/" ++ intercalate "_" rest ->
+          [ Code $ "-- | Checks that the " ++ tryLink e en ++ " extension is available."
+          , Function ("gl_" ++ intercalate "_" parts) "Bool"
+            (printf "= member %s extensions\n{-# NOINLINE %s #-}"
+              (show en)
+              ("gl_" ++ intercalate "_" parts))
+          ]
+        | otherwise -> error $ "malformed extension: " ++ en
       Nothing -> []
 
     bodyF (True, _, _) = []
     bodyF (_, E n, v) = [Pattern n Nothing ("= " ++ v)]
-    bodyF (_, F n, v) = funBody n v
+    bodyF (_, F n, v) = funBody fm n v
 
 mkExtensionGather :: FunMap -> [Module]
 mkExtensionGather fm = flip map extensionGroups $
@@ -515,15 +575,21 @@
   [Section "Extensions" $ map (("module "++) . moduleName) ms]
   [Import $ map moduleName ms]
 
-generateSource :: FilePath -> Registry -> IO ()
-generateSource fp registry = do
+generateSource :: FilePath -> Registry -> [String] -> [String] -> IO ()
+generateSource fp registry man extensions = do
   let s = execState (entries registry) Map.empty
   let m = execState (modules registry s) Map.empty
+  let re = Set.fromList extensions
   let fm' = Foldable.concat m
-  let fm = funMap registry fm'
+  let s' = Map.fromList $ first entryName <$> Map.toList s
+  let fm = funMap registry s' fm' man
   saveModule fp $ mkFFI fm
-  saveModule fp $ mkShared fm'
-  forM_ (Map.toList m) $ saveModule fp . uncurry (mkModule fm)
+  saveModule fp $ mkShared fm fm'
+  forM_ (Map.toList m) $ \(k,v) -> saveModule fp $ mkModule fm re k v
   let exts = mkExtensionGather fm
   forM_ exts $ saveModule fp
   saveModule fp $ mkExtensionGroupGather exts
+  where
+    entryName :: Entry -> String
+    entryName (F s) = s
+    entryName (E s) = s
diff --git a/Parser.hs b/Parser.hs
--- a/Parser.hs
+++ b/Parser.hs
@@ -25,17 +25,27 @@
 to name = hasName name <<< isElem <<< getChildren
 
 perhaps :: ArrowIf a => a b c -> a b (Maybe c)
-perhaps x = (arr Just <<< x) `orElse` arr (const Nothing)
+perhaps x = (arr Just <<< x) `orElse` constA Nothing
 
 parseCommand :: ArrowXml a => a XmlTree Command
 parseCommand = proc x -> do
   command <- to "command" -< x
   name <- getText <<< getChildren <<< to "name" <<< to "proto" -< command
   typ <- parseType <<< to "proto" -< command
-  params <- listA $ to "param" >>>
-    parseType &&& (getText <<< getChildren <<< to "name") -< command
-  returnA -< Command name typ params
+  params <- listA parseParameter -< command
+  veceq   <- perhaps (getAttrValue0 "name" <<< to "vecequiv") -< command
+  alias   <- perhaps (getAttrValue0 "name" <<< to "alias") -< command
+  returnA -< Command name typ params veceq alias
 
+parseParameter :: ArrowXml a => a XmlTree Parameter
+parseParameter = proc x -> do
+  param <- to "param" -< x
+  typ   <- parseType -< param
+  name  <- getText <<< getChildren <<< to "name" -< param
+  grp   <- perhaps (getAttrValue0 "group") -< param
+  len   <- perhaps (getAttrValue0 "len") -< param
+  returnA -< Parameter name typ grp len
+
 parseEnum :: ArrowXml a => a XmlTree Enumeratee
 parseEnum = proc x -> do
   enum <- to "enum" -< x
@@ -84,7 +94,7 @@
 parseType :: ArrowXml a => a XmlTree Type
 parseType = proc x -> do
   ptype <- perhaps $ getText <<< getChildren <<< to "ptype" -< x
-  pointer <- (getText <<< getChildren) >. elem '*' . concat -< x
+  pointer <- (getText <<< getChildren) >. length . filter (== '*') . concat -< x
   returnA -< Type
     { typeName = ptype
     , typePointer = pointer
diff --git a/Registry.hs b/Registry.hs
--- a/Registry.hs
+++ b/Registry.hs
@@ -11,6 +11,7 @@
 module Registry
   ( Registry(..)
   , Command(..)
+  , Parameter(..)
   , Enumeratee(..)
   , Extension(..)
   , Feature(..)
@@ -33,10 +34,19 @@
   , registryGroups :: [Group]
   } deriving (Eq, Show)
 
+data Parameter = Parameter
+  { parameterName :: String
+  , parameterType :: Type
+  , parameterGroup :: Maybe String
+  , parameterLen :: Maybe String
+  } deriving (Eq, Show)
+
 data Command = Command
   { commandName :: String
   , commandType :: Type
-  , commandParameters :: [(Type, String)]
+  , commandParameters :: [Parameter]
+  , commandVectorEquivalent :: Maybe String
+  , commandAlias :: Maybe String
   } deriving (Eq, Show)
 
 data Enumeratee = Enumeratee
@@ -77,7 +87,7 @@
 
 data Type = Type
   { typeName :: Maybe String
-  , typePointer :: Bool
+  , typePointer :: Int
   } deriving (Eq, Show)
 
 lookupCommand :: Registry -> String -> Command
diff --git a/Setup.hs b/Setup.hs
--- a/Setup.hs
+++ b/Setup.hs
@@ -12,6 +12,7 @@
 --
 -- Local hooks are provided to generate the API on build, producing haddocks and to enable @cabal sdist@
 ----------------------------------------------------------------------------
+import Data.Functor
 import Distribution.Simple
 import Distribution.Simple.LocalBuildInfo
 import Distribution.PackageDescription
@@ -23,8 +24,10 @@
 generateAPI :: LocalBuildInfo -> IO ()
 generateAPI l = do
   registry <- parseFile "gl.xml"
+  man <- lines <$> readFile "man.txt"
+  extensions <- lines <$> readFile "extensions.txt"
   putStr "Generating API..."
-  generateSource (buildDir l </> "autogen") (deshenaniganize registry)
+  generateSource (buildDir l </> "autogen") (deshenaniganize registry) man extensions
   putStrLn "done"
 
 main :: IO ()
diff --git a/TODO.markdown b/TODO.markdown
--- a/TODO.markdown
+++ b/TODO.markdown
@@ -1,5 +1,7 @@
 Things that would be nice to have
 ---------------------------------
 
-* Update the module builder to supply haddocks for commonly used OpenGL bindings
-* Add a class for things that can be converted to GLenum's and use it instead of GLenum in negative position in the bindings?
+* Add a class for things that can be converted to `GLenum`'s and use it instead of `GLenum` in negative position in the bindings?
+* Some of the manual pages are for multiple functions, link by prefix?
+* Fix issues on Windows caused by the large number of modules
+* Fix distribution issues caused by having a custom `Setup.hs` with non-trivial content.
diff --git a/cbits/gl.c b/cbits/gl.c
--- a/cbits/gl.c
+++ b/cbits/gl.c
@@ -7,7 +7,7 @@
  * Stability   :  stable
  * Portability :  portable
  *
- * C support for Graphics.GL.Raw.Proc
+ * C support for "Graphics.GL.Raw.Proc"
  * -------------------------------------------------------------------------- */
 
 #if defined(USE_WGLGETPROCADDRESS)
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/BlendMinmaxFactor.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/BlendMinmaxFactor.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/BlendMinmaxFactor.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/BlendMinmaxFactor.hs
@@ -12,8 +12,11 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/AMD/blend_minmax_factor.txt GL_AMD_blend_minmax_factor> extension is available.
+
 gl_AMD_blend_minmax_factor :: Bool
 gl_AMD_blend_minmax_factor = member "GL_AMD_blend_minmax_factor" extensions
+{-# NOINLINE gl_AMD_blend_minmax_factor #-}
 
 pattern GL_FACTOR_MAX_AMD = 0x901D
 
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/Compressed3DCTexture.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/Compressed3DCTexture.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/Compressed3DCTexture.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/Compressed3DCTexture.hs
@@ -12,8 +12,11 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the GL_AMD_compressed_3DC_texture extension is available.
+
 gl_AMD_compressed_3DC_texture :: Bool
 gl_AMD_compressed_3DC_texture = member "GL_AMD_compressed_3DC_texture" extensions
+{-# NOINLINE gl_AMD_compressed_3DC_texture #-}
 
 pattern GL_3DC_XY_AMD = 0x87FA
 
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/CompressedATCTexture.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/CompressedATCTexture.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/CompressedATCTexture.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/CompressedATCTexture.hs
@@ -13,8 +13,11 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the GL_AMD_compressed_ATC_texture extension is available.
+
 gl_AMD_compressed_ATC_texture :: Bool
 gl_AMD_compressed_ATC_texture = member "GL_AMD_compressed_ATC_texture" extensions
+{-# NOINLINE gl_AMD_compressed_ATC_texture #-}
 
 pattern GL_ATC_RGBA_EXPLICIT_ALPHA_AMD = 0x8C93
 
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/ConservativeDepth.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/ConservativeDepth.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/ConservativeDepth.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/ConservativeDepth.hs
@@ -8,5 +8,8 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/AMD/conservative_depth.txt GL_AMD_conservative_depth> extension is available.
+
 gl_AMD_conservative_depth :: Bool
 gl_AMD_conservative_depth = member "GL_AMD_conservative_depth" extensions
+{-# NOINLINE gl_AMD_conservative_depth #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/DebugOutput.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/DebugOutput.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/DebugOutput.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/DebugOutput.hs
@@ -33,9 +33,15 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/AMD/debug_output.txt GL_AMD_debug_output> extension is available.
+
 gl_AMD_debug_output :: Bool
 gl_AMD_debug_output = member "GL_AMD_debug_output" extensions
+{-# NOINLINE gl_AMD_debug_output #-}
 
+-- | Usage: @'glDebugMessageCallbackAMD' callback userParam@
+
+
 glDebugMessageCallbackAMD :: MonadIO m => GLDEBUGPROCAMD -> Ptr () -> m ()
 glDebugMessageCallbackAMD = ffiDEBUGPROCAMDPtrVIOV glDebugMessageCallbackAMDFunPtr
 
@@ -44,6 +50,13 @@
 
 {-# NOINLINE glDebugMessageCallbackAMDFunPtr #-}
 
+-- | Usage: @'glDebugMessageEnableAMD' category severity count ids enabled@
+--
+-- The parameter @enabled@ is a @Boolean@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FALSE', 'Graphics.GL.Raw.Internal.Shared.GL_TRUE'.
+--
+-- The length of @ids@ should be @count@.
+
+
 glDebugMessageEnableAMD :: MonadIO m => GLenum -> GLenum -> GLsizei -> Ptr GLuint -> GLboolean -> m ()
 glDebugMessageEnableAMD = ffienumenumsizeiPtruintbooleanIOV glDebugMessageEnableAMDFunPtr
 
@@ -52,6 +65,11 @@
 
 {-# NOINLINE glDebugMessageEnableAMDFunPtr #-}
 
+-- | Usage: @'glDebugMessageInsertAMD' category severity id length buf@
+--
+-- The length of @buf@ should be @length@.
+
+
 glDebugMessageInsertAMD :: MonadIO m => GLenum -> GLenum -> GLuint -> GLsizei -> Ptr GLchar -> m ()
 glDebugMessageInsertAMD = ffienumenumuintsizeiPtrcharIOV glDebugMessageInsertAMDFunPtr
 
@@ -59,6 +77,19 @@
 glDebugMessageInsertAMDFunPtr = unsafePerformIO (getProcAddress "glDebugMessageInsertAMD")
 
 {-# NOINLINE glDebugMessageInsertAMDFunPtr #-}
+
+-- | Usage: @'glGetDebugMessageLogAMD' count bufsize categories severities ids lengths message@
+--
+-- The length of @categories@ should be @count@.
+--
+-- The length of @severities@ should be @count@.
+--
+-- The length of @ids@ should be @count@.
+--
+-- The length of @lengths@ should be @count@.
+--
+-- The length of @message@ should be @bufsize@.
+
 
 glGetDebugMessageLogAMD :: MonadIO m => GLuint -> GLsizei -> Ptr GLenum -> Ptr GLuint -> Ptr GLuint -> Ptr GLsizei -> Ptr GLchar -> m GLuint
 glGetDebugMessageLogAMD = ffiuintsizeiPtrenumPtruintPtruintPtrsizeiPtrcharIOuint glGetDebugMessageLogAMDFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/DepthClampSeparate.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/DepthClampSeparate.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/DepthClampSeparate.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/DepthClampSeparate.hs
@@ -12,8 +12,11 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/AMD/depth_clamp_separate.txt GL_AMD_depth_clamp_separate> extension is available.
+
 gl_AMD_depth_clamp_separate :: Bool
 gl_AMD_depth_clamp_separate = member "GL_AMD_depth_clamp_separate" extensions
+{-# NOINLINE gl_AMD_depth_clamp_separate #-}
 
 pattern GL_DEPTH_CLAMP_FAR_AMD = 0x901F
 
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/DrawBuffersBlend.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/DrawBuffersBlend.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/DrawBuffersBlend.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/DrawBuffersBlend.hs
@@ -19,9 +19,17 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/AMD/draw_buffers_blend.txt GL_AMD_draw_buffers_blend> extension is available.
+
 gl_AMD_draw_buffers_blend :: Bool
 gl_AMD_draw_buffers_blend = member "GL_AMD_draw_buffers_blend" extensions
+{-# NOINLINE gl_AMD_draw_buffers_blend #-}
 
+-- | Usage: @'glBlendEquationIndexedAMD' buf mode@
+--
+-- This command is an alias for 'Graphics.GL.Raw.Profile.Core40.glBlendEquationi'.
+
+
 glBlendEquationIndexedAMD :: MonadIO m => GLuint -> GLenum -> m ()
 glBlendEquationIndexedAMD = ffiuintenumIOV glBlendEquationIndexedAMDFunPtr
 
@@ -30,6 +38,11 @@
 
 {-# NOINLINE glBlendEquationIndexedAMDFunPtr #-}
 
+-- | Usage: @'glBlendEquationSeparateIndexedAMD' buf modeRGB modeAlpha@
+--
+-- This command is an alias for 'Graphics.GL.Raw.Profile.Core40.glBlendEquationSeparatei'.
+
+
 glBlendEquationSeparateIndexedAMD :: MonadIO m => GLuint -> GLenum -> GLenum -> m ()
 glBlendEquationSeparateIndexedAMD = ffiuintenumenumIOV glBlendEquationSeparateIndexedAMDFunPtr
 
@@ -38,6 +51,11 @@
 
 {-# NOINLINE glBlendEquationSeparateIndexedAMDFunPtr #-}
 
+-- | Usage: @'glBlendFuncIndexedAMD' buf src dst@
+--
+-- This command is an alias for 'Graphics.GL.Raw.Profile.Core40.glBlendFunci'.
+
+
 glBlendFuncIndexedAMD :: MonadIO m => GLuint -> GLenum -> GLenum -> m ()
 glBlendFuncIndexedAMD = ffiuintenumenumIOV glBlendFuncIndexedAMDFunPtr
 
@@ -45,6 +63,11 @@
 glBlendFuncIndexedAMDFunPtr = unsafePerformIO (getProcAddress "glBlendFuncIndexedAMD")
 
 {-# NOINLINE glBlendFuncIndexedAMDFunPtr #-}
+
+-- | Usage: @'glBlendFuncSeparateIndexedAMD' buf srcRGB dstRGB srcAlpha dstAlpha@
+--
+-- This command is an alias for 'Graphics.GL.Raw.Profile.Core40.glBlendFuncSeparatei'.
+
 
 glBlendFuncSeparateIndexedAMD :: MonadIO m => GLuint -> GLenum -> GLenum -> GLenum -> GLenum -> m ()
 glBlendFuncSeparateIndexedAMD = ffiuintenumenumenumenumIOV glBlendFuncSeparateIndexedAMDFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/GcnShader.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/GcnShader.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/GcnShader.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/GcnShader.hs
@@ -8,5 +8,8 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/AMD/gcn_shader.txt GL_AMD_gcn_shader> extension is available.
+
 gl_AMD_gcn_shader :: Bool
 gl_AMD_gcn_shader = member "GL_AMD_gcn_shader" extensions
+{-# NOINLINE gl_AMD_gcn_shader #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/GpuShaderInt64.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/GpuShaderInt64.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/GpuShaderInt64.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/GpuShaderInt64.hs
@@ -73,5 +73,8 @@
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/AMD/gpu_shader_int64.txt GL_AMD_gpu_shader_int64> extension is available.
+
 gl_AMD_gpu_shader_int64 :: Bool
 gl_AMD_gpu_shader_int64 = member "GL_AMD_gpu_shader_int64" extensions
+{-# NOINLINE gl_AMD_gpu_shader_int64 #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/InterleavedElements.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/InterleavedElements.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/InterleavedElements.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/InterleavedElements.hs
@@ -26,8 +26,14 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/AMD/interleaved_elements.txt GL_AMD_interleaved_elements> extension is available.
+
 gl_AMD_interleaved_elements :: Bool
 gl_AMD_interleaved_elements = member "GL_AMD_interleaved_elements" extensions
+{-# NOINLINE gl_AMD_interleaved_elements #-}
+
+-- | Usage: @'glVertexAttribParameteriAMD' index pname param@
+
 
 glVertexAttribParameteriAMD :: MonadIO m => GLuint -> GLenum -> GLint -> m ()
 glVertexAttribParameteriAMD = ffiuintenumintIOV glVertexAttribParameteriAMDFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/MultiDrawIndirect.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/MultiDrawIndirect.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/MultiDrawIndirect.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/MultiDrawIndirect.hs
@@ -17,9 +17,17 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/AMD/multi_draw_indirect.txt GL_AMD_multi_draw_indirect> extension is available.
+
 gl_AMD_multi_draw_indirect :: Bool
 gl_AMD_multi_draw_indirect = member "GL_AMD_multi_draw_indirect" extensions
+{-# NOINLINE gl_AMD_multi_draw_indirect #-}
 
+-- | Usage: @'glMultiDrawArraysIndirectAMD' mode indirect primcount stride@
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glMultiDrawArraysIndirect'.
+
+
 glMultiDrawArraysIndirectAMD :: MonadIO m => GLenum -> Ptr () -> GLsizei -> GLsizei -> m ()
 glMultiDrawArraysIndirectAMD = ffienumPtrVsizeisizeiIOV glMultiDrawArraysIndirectAMDFunPtr
 
@@ -27,6 +35,11 @@
 glMultiDrawArraysIndirectAMDFunPtr = unsafePerformIO (getProcAddress "glMultiDrawArraysIndirectAMD")
 
 {-# NOINLINE glMultiDrawArraysIndirectAMDFunPtr #-}
+
+-- | Usage: @'glMultiDrawElementsIndirectAMD' mode type indirect primcount stride@
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glMultiDrawElementsIndirect'.
+
 
 glMultiDrawElementsIndirectAMD :: MonadIO m => GLenum -> GLenum -> Ptr () -> GLsizei -> GLsizei -> m ()
 glMultiDrawElementsIndirectAMD = ffienumenumPtrVsizeisizeiIOV glMultiDrawElementsIndirectAMDFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/NameGenDelete.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/NameGenDelete.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/NameGenDelete.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/NameGenDelete.hs
@@ -23,9 +23,17 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/AMD/name_gen_delete.txt GL_AMD_name_gen_delete> extension is available.
+
 gl_AMD_name_gen_delete :: Bool
 gl_AMD_name_gen_delete = member "GL_AMD_name_gen_delete" extensions
+{-# NOINLINE gl_AMD_name_gen_delete #-}
 
+-- | Usage: @'glDeleteNamesAMD' identifier num names@
+--
+-- The length of @names@ should be @num@.
+
+
 glDeleteNamesAMD :: MonadIO m => GLenum -> GLuint -> Ptr GLuint -> m ()
 glDeleteNamesAMD = ffienumuintPtruintIOV glDeleteNamesAMDFunPtr
 
@@ -34,6 +42,11 @@
 
 {-# NOINLINE glDeleteNamesAMDFunPtr #-}
 
+-- | Usage: @'glGenNamesAMD' identifier num names@
+--
+-- The length of @names@ should be @num@.
+
+
 glGenNamesAMD :: MonadIO m => GLenum -> GLuint -> Ptr GLuint -> m ()
 glGenNamesAMD = ffienumuintPtruintIOV glGenNamesAMDFunPtr
 
@@ -41,6 +54,9 @@
 glGenNamesAMDFunPtr = unsafePerformIO (getProcAddress "glGenNamesAMD")
 
 {-# NOINLINE glGenNamesAMDFunPtr #-}
+
+-- | Usage: @'glIsNameAMD' identifier name@
+
 
 glIsNameAMD :: MonadIO m => GLenum -> GLuint -> m GLboolean
 glIsNameAMD = ffienumuintIOboolean glIsNameAMDFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/OcclusionQueryEvent.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/OcclusionQueryEvent.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/OcclusionQueryEvent.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/OcclusionQueryEvent.hs
@@ -22,8 +22,16 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/AMD/occlusion_query_event.txt GL_AMD_occlusion_query_event> extension is available.
+
 gl_AMD_occlusion_query_event :: Bool
 gl_AMD_occlusion_query_event = member "GL_AMD_occlusion_query_event" extensions
+{-# NOINLINE gl_AMD_occlusion_query_event #-}
+
+-- | Usage: @'glQueryObjectParameteruiAMD' target id pname param@
+--
+-- The parameter @param@ is a @OcclusionQueryEventMaskAMD@, one of: 'Graphics.GL.Raw.Extension.AMD.OcclusionQueryEvent.GL_QUERY_DEPTH_PASS_EVENT_BIT_AMD', 'Graphics.GL.Raw.Extension.AMD.OcclusionQueryEvent.GL_QUERY_DEPTH_FAIL_EVENT_BIT_AMD', 'Graphics.GL.Raw.Extension.AMD.OcclusionQueryEvent.GL_QUERY_STENCIL_FAIL_EVENT_BIT_AMD', 'Graphics.GL.Raw.Extension.AMD.OcclusionQueryEvent.GL_QUERY_DEPTH_BOUNDS_FAIL_EVENT_BIT_AMD', 'Graphics.GL.Raw.Extension.AMD.OcclusionQueryEvent.GL_QUERY_ALL_EVENT_BITS_AMD'.
+
 
 glQueryObjectParameteruiAMD :: MonadIO m => GLenum -> GLuint -> GLenum -> GLuint -> m ()
 glQueryObjectParameteruiAMD = ffienumuintenumuintIOV glQueryObjectParameteruiAMDFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/PerformanceMonitor.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/PerformanceMonitor.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/PerformanceMonitor.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/PerformanceMonitor.hs
@@ -33,9 +33,15 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/AMD/performance_monitor.txt GL_AMD_performance_monitor> extension is available.
+
 gl_AMD_performance_monitor :: Bool
 gl_AMD_performance_monitor = member "GL_AMD_performance_monitor" extensions
+{-# NOINLINE gl_AMD_performance_monitor #-}
 
+-- | Usage: @'glBeginPerfMonitorAMD' monitor@
+
+
 glBeginPerfMonitorAMD :: MonadIO m => GLuint -> m ()
 glBeginPerfMonitorAMD = ffiuintIOV glBeginPerfMonitorAMDFunPtr
 
@@ -44,6 +50,11 @@
 
 {-# NOINLINE glBeginPerfMonitorAMDFunPtr #-}
 
+-- | Usage: @'glDeletePerfMonitorsAMD' n monitors@
+--
+-- The length of @monitors@ should be @n@.
+
+
 glDeletePerfMonitorsAMD :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
 glDeletePerfMonitorsAMD = ffisizeiPtruintIOV glDeletePerfMonitorsAMDFunPtr
 
@@ -52,6 +63,9 @@
 
 {-# NOINLINE glDeletePerfMonitorsAMDFunPtr #-}
 
+-- | Usage: @'glEndPerfMonitorAMD' monitor@
+
+
 glEndPerfMonitorAMD :: MonadIO m => GLuint -> m ()
 glEndPerfMonitorAMD = ffiuintIOV glEndPerfMonitorAMDFunPtr
 
@@ -60,6 +74,11 @@
 
 {-# NOINLINE glEndPerfMonitorAMDFunPtr #-}
 
+-- | Usage: @'glGenPerfMonitorsAMD' n monitors@
+--
+-- The length of @monitors@ should be @n@.
+
+
 glGenPerfMonitorsAMD :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
 glGenPerfMonitorsAMD = ffisizeiPtruintIOV glGenPerfMonitorsAMDFunPtr
 
@@ -68,6 +87,13 @@
 
 {-# NOINLINE glGenPerfMonitorsAMDFunPtr #-}
 
+-- | Usage: @'glGetPerfMonitorCounterDataAMD' monitor pname dataSize data bytesWritten@
+--
+-- The length of @data@ should be @dataSize@.
+--
+-- The length of @bytesWritten@ should be @1@.
+
+
 glGetPerfMonitorCounterDataAMD :: MonadIO m => GLuint -> GLenum -> GLsizei -> Ptr GLuint -> Ptr GLint -> m ()
 glGetPerfMonitorCounterDataAMD = ffiuintenumsizeiPtruintPtrintIOV glGetPerfMonitorCounterDataAMDFunPtr
 
@@ -76,6 +102,11 @@
 
 {-# NOINLINE glGetPerfMonitorCounterDataAMDFunPtr #-}
 
+-- | Usage: @'glGetPerfMonitorCounterInfoAMD' group counter pname data@
+--
+-- The length of @data@ should be @COMPSIZE(pname)@.
+
+
 glGetPerfMonitorCounterInfoAMD :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr () -> m ()
 glGetPerfMonitorCounterInfoAMD = ffiuintuintenumPtrVIOV glGetPerfMonitorCounterInfoAMDFunPtr
 
@@ -84,6 +115,13 @@
 
 {-# NOINLINE glGetPerfMonitorCounterInfoAMDFunPtr #-}
 
+-- | Usage: @'glGetPerfMonitorCounterStringAMD' group counter bufSize length counterString@
+--
+-- The length of @length@ should be @1@.
+--
+-- The length of @counterString@ should be @bufSize@.
+
+
 glGetPerfMonitorCounterStringAMD :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
 glGetPerfMonitorCounterStringAMD = ffiuintuintsizeiPtrsizeiPtrcharIOV glGetPerfMonitorCounterStringAMDFunPtr
 
@@ -92,6 +130,15 @@
 
 {-# NOINLINE glGetPerfMonitorCounterStringAMDFunPtr #-}
 
+-- | Usage: @'glGetPerfMonitorCountersAMD' group numCounters maxActiveCounters counterSize counters@
+--
+-- The length of @numCounters@ should be @1@.
+--
+-- The length of @maxActiveCounters@ should be @1@.
+--
+-- The length of @counters@ should be @counterSize@.
+
+
 glGetPerfMonitorCountersAMD :: MonadIO m => GLuint -> Ptr GLint -> Ptr GLint -> GLsizei -> Ptr GLuint -> m ()
 glGetPerfMonitorCountersAMD = ffiuintPtrintPtrintsizeiPtruintIOV glGetPerfMonitorCountersAMDFunPtr
 
@@ -100,6 +147,13 @@
 
 {-# NOINLINE glGetPerfMonitorCountersAMDFunPtr #-}
 
+-- | Usage: @'glGetPerfMonitorGroupStringAMD' group bufSize length groupString@
+--
+-- The length of @length@ should be @1@.
+--
+-- The length of @groupString@ should be @bufSize@.
+
+
 glGetPerfMonitorGroupStringAMD :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
 glGetPerfMonitorGroupStringAMD = ffiuintsizeiPtrsizeiPtrcharIOV glGetPerfMonitorGroupStringAMDFunPtr
 
@@ -108,6 +162,13 @@
 
 {-# NOINLINE glGetPerfMonitorGroupStringAMDFunPtr #-}
 
+-- | Usage: @'glGetPerfMonitorGroupsAMD' numGroups groupsSize groups@
+--
+-- The length of @numGroups@ should be @1@.
+--
+-- The length of @groups@ should be @groupsSize@.
+
+
 glGetPerfMonitorGroupsAMD :: MonadIO m => Ptr GLint -> GLsizei -> Ptr GLuint -> m ()
 glGetPerfMonitorGroupsAMD = ffiPtrintsizeiPtruintIOV glGetPerfMonitorGroupsAMDFunPtr
 
@@ -115,6 +176,13 @@
 glGetPerfMonitorGroupsAMDFunPtr = unsafePerformIO (getProcAddress "glGetPerfMonitorGroupsAMD")
 
 {-# NOINLINE glGetPerfMonitorGroupsAMDFunPtr #-}
+
+-- | Usage: @'glSelectPerfMonitorCountersAMD' monitor enable group numCounters counterList@
+--
+-- The parameter @enable@ is a @Boolean@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FALSE', 'Graphics.GL.Raw.Internal.Shared.GL_TRUE'.
+--
+-- The length of @counterList@ should be @numCounters@.
+
 
 glSelectPerfMonitorCountersAMD :: MonadIO m => GLuint -> GLboolean -> GLuint -> GLint -> Ptr GLuint -> m ()
 glSelectPerfMonitorCountersAMD = ffiuintbooleanuintintPtruintIOV glSelectPerfMonitorCountersAMDFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/PinnedMemory.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/PinnedMemory.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/PinnedMemory.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/PinnedMemory.hs
@@ -11,7 +11,10 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/AMD/pinned_memory.txt GL_AMD_pinned_memory> extension is available.
+
 gl_AMD_pinned_memory :: Bool
 gl_AMD_pinned_memory = member "GL_AMD_pinned_memory" extensions
+{-# NOINLINE gl_AMD_pinned_memory #-}
 
 pattern GL_EXTERNAL_VIRTUAL_MEMORY_BUFFER_AMD = 0x9160
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/ProgramBinaryZ400.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/ProgramBinaryZ400.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/ProgramBinaryZ400.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/ProgramBinaryZ400.hs
@@ -11,7 +11,10 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the GL_AMD_program_binary_Z400 extension is available.
+
 gl_AMD_program_binary_Z400 :: Bool
 gl_AMD_program_binary_Z400 = member "GL_AMD_program_binary_Z400" extensions
+{-# NOINLINE gl_AMD_program_binary_Z400 #-}
 
 pattern GL_Z400_BINARY_AMD = 0x8740
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/QueryBufferObject.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/QueryBufferObject.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/QueryBufferObject.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/QueryBufferObject.hs
@@ -13,8 +13,11 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/AMD/query_buffer_object.txt GL_AMD_query_buffer_object> extension is available.
+
 gl_AMD_query_buffer_object :: Bool
 gl_AMD_query_buffer_object = member "GL_AMD_query_buffer_object" extensions
+{-# NOINLINE gl_AMD_query_buffer_object #-}
 
 pattern GL_QUERY_BUFFER_AMD = 0x9192
 
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/SamplePositions.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/SamplePositions.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/SamplePositions.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/SamplePositions.hs
@@ -17,8 +17,16 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/AMD/sample_positions.txt GL_AMD_sample_positions> extension is available.
+
 gl_AMD_sample_positions :: Bool
 gl_AMD_sample_positions = member "GL_AMD_sample_positions" extensions
+{-# NOINLINE gl_AMD_sample_positions #-}
+
+-- | Usage: @'glSetMultisamplefvAMD' pname index val@
+--
+-- The length of @val@ should be @2@.
+
 
 glSetMultisamplefvAMD :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()
 glSetMultisamplefvAMD = ffienumuintPtrfloatIOV glSetMultisamplefvAMDFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/SeamlessCubemapPerTexture.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/SeamlessCubemapPerTexture.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/SeamlessCubemapPerTexture.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/SeamlessCubemapPerTexture.hs
@@ -12,5 +12,8 @@
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/AMD/seamless_cubemap_per_texture.txt GL_AMD_seamless_cubemap_per_texture> extension is available.
+
 gl_AMD_seamless_cubemap_per_texture :: Bool
 gl_AMD_seamless_cubemap_per_texture = member "GL_AMD_seamless_cubemap_per_texture" extensions
+{-# NOINLINE gl_AMD_seamless_cubemap_per_texture #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/ShaderAtomicCounterOps.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/ShaderAtomicCounterOps.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/ShaderAtomicCounterOps.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/ShaderAtomicCounterOps.hs
@@ -8,5 +8,8 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/AMD/shader_atomic_counter_ops.txt GL_AMD_shader_atomic_counter_ops> extension is available.
+
 gl_AMD_shader_atomic_counter_ops :: Bool
 gl_AMD_shader_atomic_counter_ops = member "GL_AMD_shader_atomic_counter_ops" extensions
+{-# NOINLINE gl_AMD_shader_atomic_counter_ops #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/ShaderStencilExport.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/ShaderStencilExport.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/ShaderStencilExport.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/ShaderStencilExport.hs
@@ -8,5 +8,8 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/AMD/shader_stencil_export.txt GL_AMD_shader_stencil_export> extension is available.
+
 gl_AMD_shader_stencil_export :: Bool
 gl_AMD_shader_stencil_export = member "GL_AMD_shader_stencil_export" extensions
+{-# NOINLINE gl_AMD_shader_stencil_export #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/ShaderTrinaryMinmax.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/ShaderTrinaryMinmax.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/ShaderTrinaryMinmax.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/ShaderTrinaryMinmax.hs
@@ -8,5 +8,8 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/AMD/shader_trinary_minmax.txt GL_AMD_shader_trinary_minmax> extension is available.
+
 gl_AMD_shader_trinary_minmax :: Bool
 gl_AMD_shader_trinary_minmax = member "GL_AMD_shader_trinary_minmax" extensions
+{-# NOINLINE gl_AMD_shader_trinary_minmax #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/SparseTexture.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/SparseTexture.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/SparseTexture.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/SparseTexture.hs
@@ -26,9 +26,15 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/AMD/sparse_texture.txt GL_AMD_sparse_texture> extension is available.
+
 gl_AMD_sparse_texture :: Bool
 gl_AMD_sparse_texture = member "GL_AMD_sparse_texture" extensions
+{-# NOINLINE gl_AMD_sparse_texture #-}
 
+-- | Usage: @'glTexStorageSparseAMD' target internalFormat width height depth layers flags@
+
+
 glTexStorageSparseAMD :: MonadIO m => GLenum -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> GLbitfield -> m ()
 glTexStorageSparseAMD = ffienumenumsizeisizeisizeisizeibitfieldIOV glTexStorageSparseAMDFunPtr
 
@@ -36,6 +42,9 @@
 glTexStorageSparseAMDFunPtr = unsafePerformIO (getProcAddress "glTexStorageSparseAMD")
 
 {-# NOINLINE glTexStorageSparseAMDFunPtr #-}
+
+-- | Usage: @'glTextureStorageSparseAMD' texture target internalFormat width height depth layers flags@
+
 
 glTextureStorageSparseAMD :: MonadIO m => GLuint -> GLenum -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> GLbitfield -> m ()
 glTextureStorageSparseAMD = ffiuintenumenumsizeisizeisizeisizeibitfieldIOV glTextureStorageSparseAMDFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/StencilOperationExtended.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/StencilOperationExtended.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/StencilOperationExtended.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/StencilOperationExtended.hs
@@ -20,8 +20,16 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/AMD/stencil_operation_extended.txt GL_AMD_stencil_operation_extended> extension is available.
+
 gl_AMD_stencil_operation_extended :: Bool
 gl_AMD_stencil_operation_extended = member "GL_AMD_stencil_operation_extended" extensions
+{-# NOINLINE gl_AMD_stencil_operation_extended #-}
+
+-- | Usage: @'glStencilOpValueAMD' face value@
+--
+-- The parameter @face@ is a @StencilFaceDirection@.
+
 
 glStencilOpValueAMD :: MonadIO m => GLenum -> GLuint -> m ()
 glStencilOpValueAMD = ffienumuintIOV glStencilOpValueAMDFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/TextureTexture4.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/TextureTexture4.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/TextureTexture4.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/TextureTexture4.hs
@@ -8,5 +8,8 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/AMD/texture_texture4.txt GL_AMD_texture_texture4> extension is available.
+
 gl_AMD_texture_texture4 :: Bool
 gl_AMD_texture_texture4 = member "GL_AMD_texture_texture4" extensions
+{-# NOINLINE gl_AMD_texture_texture4 #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/TransformFeedback3LinesTriangles.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/TransformFeedback3LinesTriangles.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/TransformFeedback3LinesTriangles.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/TransformFeedback3LinesTriangles.hs
@@ -8,5 +8,8 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/AMD/transform_feedback3_lines_triangles.txt GL_AMD_transform_feedback3_lines_triangles> extension is available.
+
 gl_AMD_transform_feedback3_lines_triangles :: Bool
 gl_AMD_transform_feedback3_lines_triangles = member "GL_AMD_transform_feedback3_lines_triangles" extensions
+{-# NOINLINE gl_AMD_transform_feedback3_lines_triangles #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/TransformFeedback4.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/TransformFeedback4.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/TransformFeedback4.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/TransformFeedback4.hs
@@ -11,7 +11,10 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/AMD/transform_feedback4.txt GL_AMD_transform_feedback4> extension is available.
+
 gl_AMD_transform_feedback4 :: Bool
 gl_AMD_transform_feedback4 = member "GL_AMD_transform_feedback4" extensions
+{-# NOINLINE gl_AMD_transform_feedback4 #-}
 
 pattern GL_STREAM_RASTERIZATION_AMD = 0x91A0
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/VertexShaderLayer.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/VertexShaderLayer.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/VertexShaderLayer.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/VertexShaderLayer.hs
@@ -8,5 +8,8 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/AMD/vertex_shader_layer.txt GL_AMD_vertex_shader_layer> extension is available.
+
 gl_AMD_vertex_shader_layer :: Bool
 gl_AMD_vertex_shader_layer = member "GL_AMD_vertex_shader_layer" extensions
+{-# NOINLINE gl_AMD_vertex_shader_layer #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/VertexShaderTessellator.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/VertexShaderTessellator.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/VertexShaderTessellator.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/VertexShaderTessellator.hs
@@ -24,9 +24,15 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/AMD/vertex_shader_tessellator.txt GL_AMD_vertex_shader_tessellator> extension is available.
+
 gl_AMD_vertex_shader_tessellator :: Bool
 gl_AMD_vertex_shader_tessellator = member "GL_AMD_vertex_shader_tessellator" extensions
+{-# NOINLINE gl_AMD_vertex_shader_tessellator #-}
 
+-- | Usage: @'glTessellationFactorAMD' factor@
+
+
 glTessellationFactorAMD :: MonadIO m => GLfloat -> m ()
 glTessellationFactorAMD = ffifloatIOV glTessellationFactorAMDFunPtr
 
@@ -34,6 +40,9 @@
 glTessellationFactorAMDFunPtr = unsafePerformIO (getProcAddress "glTessellationFactorAMD")
 
 {-# NOINLINE glTessellationFactorAMDFunPtr #-}
+
+-- | Usage: @'glTessellationModeAMD' mode@
+
 
 glTessellationModeAMD :: MonadIO m => GLenum -> m ()
 glTessellationModeAMD = ffienumIOV glTessellationModeAMDFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/VertexShaderViewportIndex.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/VertexShaderViewportIndex.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/VertexShaderViewportIndex.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/VertexShaderViewportIndex.hs
@@ -8,5 +8,8 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/AMD/vertex_shader_viewport_index.txt GL_AMD_vertex_shader_viewport_index> extension is available.
+
 gl_AMD_vertex_shader_viewport_index :: Bool
 gl_AMD_vertex_shader_viewport_index = member "GL_AMD_vertex_shader_viewport_index" extensions
+{-# NOINLINE gl_AMD_vertex_shader_viewport_index #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ANDROID/ExtensionPackEs31a.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ANDROID/ExtensionPackEs31a.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ANDROID/ExtensionPackEs31a.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ANDROID/ExtensionPackEs31a.hs
@@ -3,10 +3,56 @@
 module Graphics.GL.Raw.Extension.ANDROID.ExtensionPackEs31a (
   -- * Extension Support
     gl_ANDROID_extension_pack_es31a
+
+  -- * GL_ANDROID_extension_pack_es31a
+  , module Graphics.GL.Raw.Extension.KHR.Debug
+  , module Graphics.GL.Raw.Extension.KHR.TextureCompressionAstcLdr
+  , module Graphics.GL.Raw.Extension.KHR.BlendEquationAdvanced
+  , module Graphics.GL.Raw.Extension.OES.SampleShading
+  , module Graphics.GL.Raw.Extension.OES.SampleVariables
+  , module Graphics.GL.Raw.Extension.OES.ShaderImageAtomic
+  , module Graphics.GL.Raw.Extension.OES.ShaderMultisampleInterpolation
+  , module Graphics.GL.Raw.Extension.OES.TextureStencil8
+  , module Graphics.GL.Raw.Extension.OES.TextureStorageMultisample2dArray
+  , module Graphics.GL.Raw.Extension.EXT.CopyImage
+  , module Graphics.GL.Raw.Extension.EXT.DrawBuffersIndexed
+  , module Graphics.GL.Raw.Extension.EXT.GeometryShader
+  , module Graphics.GL.Raw.Extension.EXT.GpuShader5
+  , module Graphics.GL.Raw.Extension.EXT.PrimitiveBoundingBox
+  , module Graphics.GL.Raw.Extension.EXT.ShaderIoBlocks
+  , module Graphics.GL.Raw.Extension.EXT.TessellationShader
+  , module Graphics.GL.Raw.Extension.EXT.TextureBorderClamp
+  , module Graphics.GL.Raw.Extension.EXT.TextureBuffer
+  , module Graphics.GL.Raw.Extension.EXT.TextureCubeMapArray
+  , module Graphics.GL.Raw.Extension.EXT.TextureSRGBDecode
 ) where
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+import Graphics.GL.Raw.Extension.KHR.Debug
+import Graphics.GL.Raw.Extension.KHR.TextureCompressionAstcLdr
+import Graphics.GL.Raw.Extension.KHR.BlendEquationAdvanced
+import Graphics.GL.Raw.Extension.OES.SampleShading
+import Graphics.GL.Raw.Extension.OES.SampleVariables
+import Graphics.GL.Raw.Extension.OES.ShaderImageAtomic
+import Graphics.GL.Raw.Extension.OES.ShaderMultisampleInterpolation
+import Graphics.GL.Raw.Extension.OES.TextureStencil8
+import Graphics.GL.Raw.Extension.OES.TextureStorageMultisample2dArray
+import Graphics.GL.Raw.Extension.EXT.CopyImage
+import Graphics.GL.Raw.Extension.EXT.DrawBuffersIndexed
+import Graphics.GL.Raw.Extension.EXT.GeometryShader
+import Graphics.GL.Raw.Extension.EXT.GpuShader5
+import Graphics.GL.Raw.Extension.EXT.PrimitiveBoundingBox
+import Graphics.GL.Raw.Extension.EXT.ShaderIoBlocks
+import Graphics.GL.Raw.Extension.EXT.TessellationShader
+import Graphics.GL.Raw.Extension.EXT.TextureBorderClamp
+import Graphics.GL.Raw.Extension.EXT.TextureBuffer
+import Graphics.GL.Raw.Extension.EXT.TextureCubeMapArray
+import Graphics.GL.Raw.Extension.EXT.TextureSRGBDecode
+
+-- | Checks that the GL_ANDROID_extension_pack_es31a extension is available.
+
 gl_ANDROID_extension_pack_es31a :: Bool
 gl_ANDROID_extension_pack_es31a = member "GL_ANDROID_extension_pack_es31a" extensions
+{-# NOINLINE gl_ANDROID_extension_pack_es31a #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ANGLE/DepthTexture.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ANGLE/DepthTexture.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ANGLE/DepthTexture.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ANGLE/DepthTexture.hs
@@ -19,5 +19,8 @@
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
 
+-- | Checks that the GL_ANGLE_depth_texture extension is available.
+
 gl_ANGLE_depth_texture :: Bool
 gl_ANGLE_depth_texture = member "GL_ANGLE_depth_texture" extensions
+{-# NOINLINE gl_ANGLE_depth_texture #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ANGLE/FramebufferBlit.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ANGLE/FramebufferBlit.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ANGLE/FramebufferBlit.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ANGLE/FramebufferBlit.hs
@@ -20,8 +20,14 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the GL_ANGLE_framebuffer_blit extension is available.
+
 gl_ANGLE_framebuffer_blit :: Bool
 gl_ANGLE_framebuffer_blit = member "GL_ANGLE_framebuffer_blit" extensions
+{-# NOINLINE gl_ANGLE_framebuffer_blit #-}
+
+-- | Usage: @'glBlitFramebufferANGLE' srcX0 srcY0 srcX1 srcY1 dstX0 dstY0 dstX1 dstY1 mask filter@
+
 
 glBlitFramebufferANGLE :: MonadIO m => GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLbitfield -> GLenum -> m ()
 glBlitFramebufferANGLE = ffiintintintintintintintintbitfieldenumIOV glBlitFramebufferANGLEFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ANGLE/FramebufferMultisample.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ANGLE/FramebufferMultisample.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ANGLE/FramebufferMultisample.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ANGLE/FramebufferMultisample.hs
@@ -19,8 +19,14 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the GL_ANGLE_framebuffer_multisample extension is available.
+
 gl_ANGLE_framebuffer_multisample :: Bool
 gl_ANGLE_framebuffer_multisample = member "GL_ANGLE_framebuffer_multisample" extensions
+{-# NOINLINE gl_ANGLE_framebuffer_multisample #-}
+
+-- | Usage: @'glRenderbufferStorageMultisampleANGLE' target samples internalformat width height@
+
 
 glRenderbufferStorageMultisampleANGLE :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()
 glRenderbufferStorageMultisampleANGLE = ffienumsizeienumsizeisizeiIOV glRenderbufferStorageMultisampleANGLEFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ANGLE/InstancedArrays.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ANGLE/InstancedArrays.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ANGLE/InstancedArrays.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ANGLE/InstancedArrays.hs
@@ -19,9 +19,19 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the GL_ANGLE_instanced_arrays extension is available.
+
 gl_ANGLE_instanced_arrays :: Bool
 gl_ANGLE_instanced_arrays = member "GL_ANGLE_instanced_arrays" extensions
+{-# NOINLINE gl_ANGLE_instanced_arrays #-}
 
+-- | Usage: @'glDrawArraysInstancedANGLE' mode first count primcount@
+--
+-- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_LINES', 'Graphics.GL.Raw.Profile.Core32.GL_LINES_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Raw.Profile.Core32.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PATCHES', 'Graphics.GL.Raw.Extension.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_POINTS', 'Graphics.GL.Raw.Internal.Shared.GL_POLYGON', 'Graphics.GL.Raw.Internal.Shared.GL_QUADS', 'Graphics.GL.Raw.Extension.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Raw.Profile.Core32.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Raw.Profile.Core32.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glDrawArraysInstanced'.
+
+
 glDrawArraysInstancedANGLE :: MonadIO m => GLenum -> GLint -> GLsizei -> GLsizei -> m ()
 glDrawArraysInstancedANGLE = ffienumintsizeisizeiIOV glDrawArraysInstancedANGLEFunPtr
 
@@ -30,6 +40,15 @@
 
 {-# NOINLINE glDrawArraysInstancedANGLEFunPtr #-}
 
+-- | Usage: @'glDrawElementsInstancedANGLE' mode count type indices primcount@
+--
+-- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_LINES', 'Graphics.GL.Raw.Profile.Core32.GL_LINES_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Raw.Profile.Core32.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PATCHES', 'Graphics.GL.Raw.Extension.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_POINTS', 'Graphics.GL.Raw.Internal.Shared.GL_POLYGON', 'Graphics.GL.Raw.Internal.Shared.GL_QUADS', 'Graphics.GL.Raw.Extension.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Raw.Profile.Core32.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Raw.Profile.Core32.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
+--
+-- The length of @indices@ should be @COMPSIZE(count,type)@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glDrawElementsInstanced'.
+
+
 glDrawElementsInstancedANGLE :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> m ()
 glDrawElementsInstancedANGLE = ffienumsizeienumPtrVsizeiIOV glDrawElementsInstancedANGLEFunPtr
 
@@ -37,6 +56,11 @@
 glDrawElementsInstancedANGLEFunPtr = unsafePerformIO (getProcAddress "glDrawElementsInstancedANGLE")
 
 {-# NOINLINE glDrawElementsInstancedANGLEFunPtr #-}
+
+-- | Usage: @'glVertexAttribDivisorANGLE' index divisor@
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glVertexAttribDivisor'.
+
 
 glVertexAttribDivisorANGLE :: MonadIO m => GLuint -> GLuint -> m ()
 glVertexAttribDivisorANGLE = ffiuintuintIOV glVertexAttribDivisorANGLEFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ANGLE/PackReverseRowOrder.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ANGLE/PackReverseRowOrder.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ANGLE/PackReverseRowOrder.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ANGLE/PackReverseRowOrder.hs
@@ -11,7 +11,10 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the GL_ANGLE_pack_reverse_row_order extension is available.
+
 gl_ANGLE_pack_reverse_row_order :: Bool
 gl_ANGLE_pack_reverse_row_order = member "GL_ANGLE_pack_reverse_row_order" extensions
+{-# NOINLINE gl_ANGLE_pack_reverse_row_order #-}
 
 pattern GL_PACK_REVERSE_ROW_ORDER_ANGLE = 0x93A4
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ANGLE/ProgramBinary.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ANGLE/ProgramBinary.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ANGLE/ProgramBinary.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ANGLE/ProgramBinary.hs
@@ -11,7 +11,10 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the GL_ANGLE_program_binary extension is available.
+
 gl_ANGLE_program_binary :: Bool
 gl_ANGLE_program_binary = member "GL_ANGLE_program_binary" extensions
+{-# NOINLINE gl_ANGLE_program_binary #-}
 
 pattern GL_PROGRAM_BINARY_ANGLE = 0x93A6
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ANGLE/TextureCompressionDxt3.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ANGLE/TextureCompressionDxt3.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ANGLE/TextureCompressionDxt3.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ANGLE/TextureCompressionDxt3.hs
@@ -11,7 +11,10 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the GL_ANGLE_texture_compression_dxt3 extension is available.
+
 gl_ANGLE_texture_compression_dxt3 :: Bool
 gl_ANGLE_texture_compression_dxt3 = member "GL_ANGLE_texture_compression_dxt3" extensions
+{-# NOINLINE gl_ANGLE_texture_compression_dxt3 #-}
 
 pattern GL_COMPRESSED_RGBA_S3TC_DXT3_ANGLE = 0x83F2
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ANGLE/TextureCompressionDxt5.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ANGLE/TextureCompressionDxt5.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ANGLE/TextureCompressionDxt5.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ANGLE/TextureCompressionDxt5.hs
@@ -11,7 +11,10 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the GL_ANGLE_texture_compression_dxt5 extension is available.
+
 gl_ANGLE_texture_compression_dxt5 :: Bool
 gl_ANGLE_texture_compression_dxt5 = member "GL_ANGLE_texture_compression_dxt5" extensions
+{-# NOINLINE gl_ANGLE_texture_compression_dxt5 #-}
 
 pattern GL_COMPRESSED_RGBA_S3TC_DXT5_ANGLE = 0x83F3
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ANGLE/TextureUsage.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ANGLE/TextureUsage.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ANGLE/TextureUsage.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ANGLE/TextureUsage.hs
@@ -12,8 +12,11 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the GL_ANGLE_texture_usage extension is available.
+
 gl_ANGLE_texture_usage :: Bool
 gl_ANGLE_texture_usage = member "GL_ANGLE_texture_usage" extensions
+{-# NOINLINE gl_ANGLE_texture_usage #-}
 
 pattern GL_FRAMEBUFFER_ATTACHMENT_ANGLE = 0x93A3
 
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ANGLE/TranslatedShaderSource.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ANGLE/TranslatedShaderSource.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ANGLE/TranslatedShaderSource.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ANGLE/TranslatedShaderSource.hs
@@ -17,8 +17,16 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the GL_ANGLE_translated_shader_source extension is available.
+
 gl_ANGLE_translated_shader_source :: Bool
 gl_ANGLE_translated_shader_source = member "GL_ANGLE_translated_shader_source" extensions
+{-# NOINLINE gl_ANGLE_translated_shader_source #-}
+
+-- | Usage: @'glGetTranslatedShaderSourceANGLE' shader bufsize length source@
+--
+-- The length of @length@ should be @1@.
+
 
 glGetTranslatedShaderSourceANGLE :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
 glGetTranslatedShaderSourceANGLE = ffiuintsizeiPtrsizeiPtrcharIOV glGetTranslatedShaderSourceANGLEFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/AuxDepthStencil.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/AuxDepthStencil.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/AuxDepthStencil.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/AuxDepthStencil.hs
@@ -11,7 +11,10 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/APPLE/aux_depth_stencil.txt GL_APPLE_aux_depth_stencil> extension is available.
+
 gl_APPLE_aux_depth_stencil :: Bool
 gl_APPLE_aux_depth_stencil = member "GL_APPLE_aux_depth_stencil" extensions
+{-# NOINLINE gl_APPLE_aux_depth_stencil #-}
 
 pattern GL_AUX_DEPTH_STENCIL_APPLE = 0x8A14
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/ClientStorage.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/ClientStorage.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/ClientStorage.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/ClientStorage.hs
@@ -11,7 +11,10 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/APPLE/client_storage.txt GL_APPLE_client_storage> extension is available.
+
 gl_APPLE_client_storage :: Bool
 gl_APPLE_client_storage = member "GL_APPLE_client_storage" extensions
+{-# NOINLINE gl_APPLE_client_storage #-}
 
 pattern GL_UNPACK_CLIENT_STORAGE_APPLE = 0x85B2
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/ClipDistance.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/ClipDistance.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/ClipDistance.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/ClipDistance.hs
@@ -19,8 +19,11 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the GL_APPLE_clip_distance extension is available.
+
 gl_APPLE_clip_distance :: Bool
 gl_APPLE_clip_distance = member "GL_APPLE_clip_distance" extensions
+{-# NOINLINE gl_APPLE_clip_distance #-}
 
 pattern GL_CLIP_DISTANCE0_APPLE = 0x3000
 
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/ColorBufferPackedFloat.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/ColorBufferPackedFloat.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/ColorBufferPackedFloat.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/ColorBufferPackedFloat.hs
@@ -8,5 +8,8 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the GL_APPLE_color_buffer_packed_float extension is available.
+
 gl_APPLE_color_buffer_packed_float :: Bool
 gl_APPLE_color_buffer_packed_float = member "GL_APPLE_color_buffer_packed_float" extensions
+{-# NOINLINE gl_APPLE_color_buffer_packed_float #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/CopyTextureLevels.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/CopyTextureLevels.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/CopyTextureLevels.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/CopyTextureLevels.hs
@@ -16,8 +16,14 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the GL_APPLE_copy_texture_levels extension is available.
+
 gl_APPLE_copy_texture_levels :: Bool
 gl_APPLE_copy_texture_levels = member "GL_APPLE_copy_texture_levels" extensions
+{-# NOINLINE gl_APPLE_copy_texture_levels #-}
+
+-- | Usage: @'glCopyTextureLevelsAPPLE' destinationTexture sourceTexture sourceBaseLevel sourceLevelCount@
+
 
 glCopyTextureLevelsAPPLE :: MonadIO m => GLuint -> GLuint -> GLint -> GLsizei -> m ()
 glCopyTextureLevelsAPPLE = ffiuintuintintsizeiIOV glCopyTextureLevelsAPPLEFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/ElementArray.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/ElementArray.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/ElementArray.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/ElementArray.hs
@@ -23,9 +23,17 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/APPLE/element_array.txt GL_APPLE_element_array> extension is available.
+
 gl_APPLE_element_array :: Bool
 gl_APPLE_element_array = member "GL_APPLE_element_array" extensions
+{-# NOINLINE gl_APPLE_element_array #-}
 
+-- | Usage: @'glDrawElementArrayAPPLE' mode first count@
+--
+-- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_LINES', 'Graphics.GL.Raw.Profile.Core32.GL_LINES_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Raw.Profile.Core32.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PATCHES', 'Graphics.GL.Raw.Extension.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_POINTS', 'Graphics.GL.Raw.Internal.Shared.GL_POLYGON', 'Graphics.GL.Raw.Internal.Shared.GL_QUADS', 'Graphics.GL.Raw.Extension.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Raw.Profile.Core32.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Raw.Profile.Core32.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
+
+
 glDrawElementArrayAPPLE :: MonadIO m => GLenum -> GLint -> GLsizei -> m ()
 glDrawElementArrayAPPLE = ffienumintsizeiIOV glDrawElementArrayAPPLEFunPtr
 
@@ -34,6 +42,11 @@
 
 {-# NOINLINE glDrawElementArrayAPPLEFunPtr #-}
 
+-- | Usage: @'glDrawRangeElementArrayAPPLE' mode start end first count@
+--
+-- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_LINES', 'Graphics.GL.Raw.Profile.Core32.GL_LINES_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Raw.Profile.Core32.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PATCHES', 'Graphics.GL.Raw.Extension.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_POINTS', 'Graphics.GL.Raw.Internal.Shared.GL_POLYGON', 'Graphics.GL.Raw.Internal.Shared.GL_QUADS', 'Graphics.GL.Raw.Extension.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Raw.Profile.Core32.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Raw.Profile.Core32.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
+
+
 glDrawRangeElementArrayAPPLE :: MonadIO m => GLenum -> GLuint -> GLuint -> GLint -> GLsizei -> m ()
 glDrawRangeElementArrayAPPLE = ffienumuintuintintsizeiIOV glDrawRangeElementArrayAPPLEFunPtr
 
@@ -42,6 +55,13 @@
 
 {-# NOINLINE glDrawRangeElementArrayAPPLEFunPtr #-}
 
+-- | Usage: @'glElementPointerAPPLE' type pointer@
+--
+-- The parameter @type@ is a @ElementPointerTypeATI@.
+--
+-- The length of @pointer@ should be @COMPSIZE(type)@.
+
+
 glElementPointerAPPLE :: MonadIO m => GLenum -> Ptr () -> m ()
 glElementPointerAPPLE = ffienumPtrVIOV glElementPointerAPPLEFunPtr
 
@@ -50,6 +70,15 @@
 
 {-# NOINLINE glElementPointerAPPLEFunPtr #-}
 
+-- | Usage: @'glMultiDrawElementArrayAPPLE' mode first count primcount@
+--
+-- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_LINES', 'Graphics.GL.Raw.Profile.Core32.GL_LINES_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Raw.Profile.Core32.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PATCHES', 'Graphics.GL.Raw.Extension.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_POINTS', 'Graphics.GL.Raw.Internal.Shared.GL_POLYGON', 'Graphics.GL.Raw.Internal.Shared.GL_QUADS', 'Graphics.GL.Raw.Extension.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Raw.Profile.Core32.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Raw.Profile.Core32.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
+--
+-- The length of @first@ should be @primcount@.
+--
+-- The length of @count@ should be @primcount@.
+
+
 glMultiDrawElementArrayAPPLE :: MonadIO m => GLenum -> Ptr GLint -> Ptr GLsizei -> GLsizei -> m ()
 glMultiDrawElementArrayAPPLE = ffienumPtrintPtrsizeisizeiIOV glMultiDrawElementArrayAPPLEFunPtr
 
@@ -57,6 +86,15 @@
 glMultiDrawElementArrayAPPLEFunPtr = unsafePerformIO (getProcAddress "glMultiDrawElementArrayAPPLE")
 
 {-# NOINLINE glMultiDrawElementArrayAPPLEFunPtr #-}
+
+-- | Usage: @'glMultiDrawRangeElementArrayAPPLE' mode start end first count primcount@
+--
+-- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_LINES', 'Graphics.GL.Raw.Profile.Core32.GL_LINES_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Raw.Profile.Core32.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PATCHES', 'Graphics.GL.Raw.Extension.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_POINTS', 'Graphics.GL.Raw.Internal.Shared.GL_POLYGON', 'Graphics.GL.Raw.Internal.Shared.GL_QUADS', 'Graphics.GL.Raw.Extension.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Raw.Profile.Core32.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Raw.Profile.Core32.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
+--
+-- The length of @first@ should be @primcount@.
+--
+-- The length of @count@ should be @primcount@.
+
 
 glMultiDrawRangeElementArrayAPPLE :: MonadIO m => GLenum -> GLuint -> GLuint -> Ptr GLint -> Ptr GLsizei -> GLsizei -> m ()
 glMultiDrawRangeElementArrayAPPLE = ffienumuintuintPtrintPtrsizeisizeiIOV glMultiDrawRangeElementArrayAPPLEFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/Fence.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/Fence.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/Fence.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/Fence.hs
@@ -25,9 +25,19 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/APPLE/fence.txt GL_APPLE_fence> extension is available.
+
 gl_APPLE_fence :: Bool
 gl_APPLE_fence = member "GL_APPLE_fence" extensions
+{-# NOINLINE gl_APPLE_fence #-}
 
+-- | Usage: @'glDeleteFencesAPPLE' n fences@
+--
+-- The parameter @fences@ is a @FenceNV@.
+--
+-- The length of @fences@ should be @n@.
+
+
 glDeleteFencesAPPLE :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
 glDeleteFencesAPPLE = ffisizeiPtruintIOV glDeleteFencesAPPLEFunPtr
 
@@ -36,6 +46,11 @@
 
 {-# NOINLINE glDeleteFencesAPPLEFunPtr #-}
 
+-- | Usage: @'glFinishFenceAPPLE' fence@
+--
+-- The parameter @fence@ is a @FenceNV@.
+
+
 glFinishFenceAPPLE :: MonadIO m => GLuint -> m ()
 glFinishFenceAPPLE = ffiuintIOV glFinishFenceAPPLEFunPtr
 
@@ -44,6 +59,11 @@
 
 {-# NOINLINE glFinishFenceAPPLEFunPtr #-}
 
+-- | Usage: @'glFinishObjectAPPLE' object name@
+--
+-- The parameter @object@ is a @ObjectTypeAPPLE@.
+
+
 glFinishObjectAPPLE :: MonadIO m => GLenum -> GLint -> m ()
 glFinishObjectAPPLE = ffienumintIOV glFinishObjectAPPLEFunPtr
 
@@ -52,6 +72,13 @@
 
 {-# NOINLINE glFinishObjectAPPLEFunPtr #-}
 
+-- | Usage: @'glGenFencesAPPLE' n fences@
+--
+-- The parameter @fences@ is a @FenceNV@.
+--
+-- The length of @fences@ should be @n@.
+
+
 glGenFencesAPPLE :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
 glGenFencesAPPLE = ffisizeiPtruintIOV glGenFencesAPPLEFunPtr
 
@@ -60,6 +87,11 @@
 
 {-# NOINLINE glGenFencesAPPLEFunPtr #-}
 
+-- | Usage: @'glIsFenceAPPLE' fence@
+--
+-- The parameter @fence@ is a @FenceNV@.
+
+
 glIsFenceAPPLE :: MonadIO m => GLuint -> m GLboolean
 glIsFenceAPPLE = ffiuintIOboolean glIsFenceAPPLEFunPtr
 
@@ -68,6 +100,11 @@
 
 {-# NOINLINE glIsFenceAPPLEFunPtr #-}
 
+-- | Usage: @'glSetFenceAPPLE' fence@
+--
+-- The parameter @fence@ is a @FenceNV@.
+
+
 glSetFenceAPPLE :: MonadIO m => GLuint -> m ()
 glSetFenceAPPLE = ffiuintIOV glSetFenceAPPLEFunPtr
 
@@ -76,6 +113,11 @@
 
 {-# NOINLINE glSetFenceAPPLEFunPtr #-}
 
+-- | Usage: @'glTestFenceAPPLE' fence@
+--
+-- The parameter @fence@ is a @FenceNV@.
+
+
 glTestFenceAPPLE :: MonadIO m => GLuint -> m GLboolean
 glTestFenceAPPLE = ffiuintIOboolean glTestFenceAPPLEFunPtr
 
@@ -83,6 +125,11 @@
 glTestFenceAPPLEFunPtr = unsafePerformIO (getProcAddress "glTestFenceAPPLE")
 
 {-# NOINLINE glTestFenceAPPLEFunPtr #-}
+
+-- | Usage: @'glTestObjectAPPLE' object name@
+--
+-- The parameter @object@ is a @ObjectTypeAPPLE@.
+
 
 glTestObjectAPPLE :: MonadIO m => GLenum -> GLuint -> m GLboolean
 glTestObjectAPPLE = ffienumuintIOboolean glTestObjectAPPLEFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/FloatPixels.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/FloatPixels.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/FloatPixels.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/FloatPixels.hs
@@ -24,8 +24,11 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/APPLE/float_pixels.txt GL_APPLE_float_pixels> extension is available.
+
 gl_APPLE_float_pixels :: Bool
 gl_APPLE_float_pixels = member "GL_APPLE_float_pixels" extensions
+{-# NOINLINE gl_APPLE_float_pixels #-}
 
 pattern GL_ALPHA_FLOAT16_APPLE = 0x881C
 
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/FlushBufferRange.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/FlushBufferRange.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/FlushBufferRange.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/FlushBufferRange.hs
@@ -19,9 +19,15 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/APPLE/flush_buffer_range.txt GL_APPLE_flush_buffer_range> extension is available.
+
 gl_APPLE_flush_buffer_range :: Bool
 gl_APPLE_flush_buffer_range = member "GL_APPLE_flush_buffer_range" extensions
+{-# NOINLINE gl_APPLE_flush_buffer_range #-}
 
+-- | Usage: @'glBufferParameteriAPPLE' target pname param@
+
+
 glBufferParameteriAPPLE :: MonadIO m => GLenum -> GLenum -> GLint -> m ()
 glBufferParameteriAPPLE = ffienumenumintIOV glBufferParameteriAPPLEFunPtr
 
@@ -29,6 +35,15 @@
 glBufferParameteriAPPLEFunPtr = unsafePerformIO (getProcAddress "glBufferParameteriAPPLE")
 
 {-# NOINLINE glBufferParameteriAPPLEFunPtr #-}
+
+-- | Usage: @'glFlushMappedBufferRangeAPPLE' target offset size@
+--
+-- The parameter @offset@ is a @BufferOffset@.
+--
+-- The parameter @size@ is a @BufferSize@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glFlushMappedBufferRange'.
+
 
 glFlushMappedBufferRangeAPPLE :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> m ()
 glFlushMappedBufferRangeAPPLE = ffienumintptrsizeiptrIOV glFlushMappedBufferRangeAPPLEFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/FramebufferMultisample.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/FramebufferMultisample.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/FramebufferMultisample.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/FramebufferMultisample.hs
@@ -24,9 +24,15 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the GL_APPLE_framebuffer_multisample extension is available.
+
 gl_APPLE_framebuffer_multisample :: Bool
 gl_APPLE_framebuffer_multisample = member "GL_APPLE_framebuffer_multisample" extensions
+{-# NOINLINE gl_APPLE_framebuffer_multisample #-}
 
+-- | Usage: @'glRenderbufferStorageMultisampleAPPLE' target samples internalformat width height@
+
+
 glRenderbufferStorageMultisampleAPPLE :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()
 glRenderbufferStorageMultisampleAPPLE = ffienumsizeienumsizeisizeiIOV glRenderbufferStorageMultisampleAPPLEFunPtr
 
@@ -34,6 +40,9 @@
 glRenderbufferStorageMultisampleAPPLEFunPtr = unsafePerformIO (getProcAddress "glRenderbufferStorageMultisampleAPPLE")
 
 {-# NOINLINE glRenderbufferStorageMultisampleAPPLEFunPtr #-}
+
+-- | Usage: @'glResolveMultisampleFramebufferAPPLE'@
+
 
 glResolveMultisampleFramebufferAPPLE :: MonadIO m => m ()
 glResolveMultisampleFramebufferAPPLE = ffiIOV glResolveMultisampleFramebufferAPPLEFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/ObjectPurgeable.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/ObjectPurgeable.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/ObjectPurgeable.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/ObjectPurgeable.hs
@@ -24,9 +24,17 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/APPLE/object_purgeable.txt GL_APPLE_object_purgeable> extension is available.
+
 gl_APPLE_object_purgeable :: Bool
 gl_APPLE_object_purgeable = member "GL_APPLE_object_purgeable" extensions
+{-# NOINLINE gl_APPLE_object_purgeable #-}
 
+-- | Usage: @'glGetObjectParameterivAPPLE' objectType name pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
 glGetObjectParameterivAPPLE :: MonadIO m => GLenum -> GLuint -> GLenum -> Ptr GLint -> m ()
 glGetObjectParameterivAPPLE = ffienumuintenumPtrintIOV glGetObjectParameterivAPPLEFunPtr
 
@@ -35,6 +43,9 @@
 
 {-# NOINLINE glGetObjectParameterivAPPLEFunPtr #-}
 
+-- | Usage: @'glObjectPurgeableAPPLE' objectType name option@
+
+
 glObjectPurgeableAPPLE :: MonadIO m => GLenum -> GLuint -> GLenum -> m GLenum
 glObjectPurgeableAPPLE = ffienumuintenumIOenum glObjectPurgeableAPPLEFunPtr
 
@@ -42,6 +53,9 @@
 glObjectPurgeableAPPLEFunPtr = unsafePerformIO (getProcAddress "glObjectPurgeableAPPLE")
 
 {-# NOINLINE glObjectPurgeableAPPLEFunPtr #-}
+
+-- | Usage: @'glObjectUnpurgeableAPPLE' objectType name option@
+
 
 glObjectUnpurgeableAPPLE :: MonadIO m => GLenum -> GLuint -> GLenum -> m GLenum
 glObjectUnpurgeableAPPLE = ffienumuintenumIOenum glObjectUnpurgeableAPPLEFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/Rgb422.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/Rgb422.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/Rgb422.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/Rgb422.hs
@@ -15,8 +15,11 @@
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/APPLE/rgb_422.txt GL_APPLE_rgb_422> extension is available.
+
 gl_APPLE_rgb_422 :: Bool
 gl_APPLE_rgb_422 = member "GL_APPLE_rgb_422" extensions
+{-# NOINLINE gl_APPLE_rgb_422 #-}
 
 pattern GL_RGB_422_APPLE = 0x8A1F
 
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/RowBytes.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/RowBytes.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/RowBytes.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/RowBytes.hs
@@ -12,8 +12,11 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/APPLE/row_bytes.txt GL_APPLE_row_bytes> extension is available.
+
 gl_APPLE_row_bytes :: Bool
 gl_APPLE_row_bytes = member "GL_APPLE_row_bytes" extensions
+{-# NOINLINE gl_APPLE_row_bytes #-}
 
 pattern GL_PACK_ROW_BYTES_APPLE = 0x8A15
 
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/SpecularVector.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/SpecularVector.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/SpecularVector.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/SpecularVector.hs
@@ -11,7 +11,10 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/APPLE/specular_vector.txt GL_APPLE_specular_vector> extension is available.
+
 gl_APPLE_specular_vector :: Bool
 gl_APPLE_specular_vector = member "GL_APPLE_specular_vector" extensions
+{-# NOINLINE gl_APPLE_specular_vector #-}
 
 pattern GL_LIGHT_MODEL_SPECULAR_VECTOR_APPLE = 0x85B0
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/Sync.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/Sync.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/Sync.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/Sync.hs
@@ -38,9 +38,17 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the GL_APPLE_sync extension is available.
+
 gl_APPLE_sync :: Bool
 gl_APPLE_sync = member "GL_APPLE_sync" extensions
+{-# NOINLINE gl_APPLE_sync #-}
 
+-- | Usage: @'glClientWaitSyncAPPLE' sync flags timeout@
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glClientWaitSync'.
+
+
 glClientWaitSyncAPPLE :: MonadIO m => GLsync -> GLbitfield -> GLuint64 -> m GLenum
 glClientWaitSyncAPPLE = ffisyncbitfielduint64IOenum glClientWaitSyncAPPLEFunPtr
 
@@ -49,6 +57,11 @@
 
 {-# NOINLINE glClientWaitSyncAPPLEFunPtr #-}
 
+-- | Usage: @'glDeleteSyncAPPLE' sync@
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glDeleteSync'.
+
+
 glDeleteSyncAPPLE :: MonadIO m => GLsync -> m ()
 glDeleteSyncAPPLE = ffisyncIOV glDeleteSyncAPPLEFunPtr
 
@@ -57,6 +70,11 @@
 
 {-# NOINLINE glDeleteSyncAPPLEFunPtr #-}
 
+-- | Usage: @'glFenceSyncAPPLE' condition flags@
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glFenceSync'.
+
+
 glFenceSyncAPPLE :: MonadIO m => GLenum -> GLbitfield -> m GLsync
 glFenceSyncAPPLE = ffienumbitfieldIOsync glFenceSyncAPPLEFunPtr
 
@@ -65,6 +83,11 @@
 
 {-# NOINLINE glFenceSyncAPPLEFunPtr #-}
 
+-- | Usage: @'glGetInteger64vAPPLE' pname params@
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glGetInteger64v'.
+
+
 glGetInteger64vAPPLE :: MonadIO m => GLenum -> Ptr GLint64 -> m ()
 glGetInteger64vAPPLE = ffienumPtrint64IOV glGetInteger64vAPPLEFunPtr
 
@@ -73,6 +96,13 @@
 
 {-# NOINLINE glGetInteger64vAPPLEFunPtr #-}
 
+-- | Usage: @'glGetSyncivAPPLE' sync pname bufSize length values@
+--
+-- The length of @values@ should be @bufSize@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glGetSynciv'.
+
+
 glGetSyncivAPPLE :: MonadIO m => GLsync -> GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLint -> m ()
 glGetSyncivAPPLE = ffisyncenumsizeiPtrsizeiPtrintIOV glGetSyncivAPPLEFunPtr
 
@@ -81,6 +111,11 @@
 
 {-# NOINLINE glGetSyncivAPPLEFunPtr #-}
 
+-- | Usage: @'glIsSyncAPPLE' sync@
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glIsSync'.
+
+
 glIsSyncAPPLE :: MonadIO m => GLsync -> m GLboolean
 glIsSyncAPPLE = ffisyncIOboolean glIsSyncAPPLEFunPtr
 
@@ -88,6 +123,11 @@
 glIsSyncAPPLEFunPtr = unsafePerformIO (getProcAddress "glIsSyncAPPLE")
 
 {-# NOINLINE glIsSyncAPPLEFunPtr #-}
+
+-- | Usage: @'glWaitSyncAPPLE' sync flags timeout@
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glWaitSync'.
+
 
 glWaitSyncAPPLE :: MonadIO m => GLsync -> GLbitfield -> GLuint64 -> m ()
 glWaitSyncAPPLE = ffisyncbitfielduint64IOV glWaitSyncAPPLEFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/Texture2DLimitedNpot.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/Texture2DLimitedNpot.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/Texture2DLimitedNpot.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/Texture2DLimitedNpot.hs
@@ -8,5 +8,8 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the GL_APPLE_texture_2D_limited_npot extension is available.
+
 gl_APPLE_texture_2D_limited_npot :: Bool
 gl_APPLE_texture_2D_limited_npot = member "GL_APPLE_texture_2D_limited_npot" extensions
+{-# NOINLINE gl_APPLE_texture_2D_limited_npot #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/TextureFormatBGRA8888.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/TextureFormatBGRA8888.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/TextureFormatBGRA8888.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/TextureFormatBGRA8888.hs
@@ -13,5 +13,8 @@
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
 
+-- | Checks that the GL_APPLE_texture_format_BGRA8888 extension is available.
+
 gl_APPLE_texture_format_BGRA8888 :: Bool
 gl_APPLE_texture_format_BGRA8888 = member "GL_APPLE_texture_format_BGRA8888" extensions
+{-# NOINLINE gl_APPLE_texture_format_BGRA8888 #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/TextureMaxLevel.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/TextureMaxLevel.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/TextureMaxLevel.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/TextureMaxLevel.hs
@@ -11,7 +11,10 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the GL_APPLE_texture_max_level extension is available.
+
 gl_APPLE_texture_max_level :: Bool
 gl_APPLE_texture_max_level = member "GL_APPLE_texture_max_level" extensions
+{-# NOINLINE gl_APPLE_texture_max_level #-}
 
 pattern GL_TEXTURE_MAX_LEVEL_APPLE = 0x813D
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/TexturePackedFloat.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/TexturePackedFloat.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/TexturePackedFloat.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/TexturePackedFloat.hs
@@ -14,8 +14,11 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the GL_APPLE_texture_packed_float extension is available.
+
 gl_APPLE_texture_packed_float :: Bool
 gl_APPLE_texture_packed_float = member "GL_APPLE_texture_packed_float" extensions
+{-# NOINLINE gl_APPLE_texture_packed_float #-}
 
 pattern GL_R11F_G11F_B10F_APPLE = 0x8C3A
 
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/TextureRange.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/TextureRange.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/TextureRange.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/TextureRange.hs
@@ -24,16 +24,29 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/APPLE/texture_range.txt GL_APPLE_texture_range> extension is available.
+
 gl_APPLE_texture_range :: Bool
 gl_APPLE_texture_range = member "GL_APPLE_texture_range" extensions
+{-# NOINLINE gl_APPLE_texture_range #-}
 
-glGetTexParameterPointervAPPLE :: MonadIO m => GLenum -> GLenum -> Ptr () -> m ()
-glGetTexParameterPointervAPPLE = ffienumenumPtrVIOV glGetTexParameterPointervAPPLEFunPtr
+-- | Usage: @'glGetTexParameterPointervAPPLE' target pname params@
+--
+-- The length of @params@ should be @1@.
 
-glGetTexParameterPointervAPPLEFunPtr :: FunPtr (GLenum -> GLenum -> Ptr () -> IO ())
+
+glGetTexParameterPointervAPPLE :: MonadIO m => GLenum -> GLenum -> Ptr (Ptr ()) -> m ()
+glGetTexParameterPointervAPPLE = ffienumenumPtrPtrVIOV glGetTexParameterPointervAPPLEFunPtr
+
+glGetTexParameterPointervAPPLEFunPtr :: FunPtr (GLenum -> GLenum -> Ptr (Ptr ()) -> IO ())
 glGetTexParameterPointervAPPLEFunPtr = unsafePerformIO (getProcAddress "glGetTexParameterPointervAPPLE")
 
 {-# NOINLINE glGetTexParameterPointervAPPLEFunPtr #-}
+
+-- | Usage: @'glTextureRangeAPPLE' target length pointer@
+--
+-- The length of @pointer@ should be @length@.
+
 
 glTextureRangeAPPLE :: MonadIO m => GLenum -> GLsizei -> Ptr () -> m ()
 glTextureRangeAPPLE = ffienumsizeiPtrVIOV glTextureRangeAPPLEFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/TransformHint.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/TransformHint.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/TransformHint.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/TransformHint.hs
@@ -11,7 +11,10 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/APPLE/transform_hint.txt GL_APPLE_transform_hint> extension is available.
+
 gl_APPLE_transform_hint :: Bool
 gl_APPLE_transform_hint = member "GL_APPLE_transform_hint" extensions
+{-# NOINLINE gl_APPLE_transform_hint #-}
 
 pattern GL_TRANSFORM_HINT_APPLE = 0x85B1
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/VertexArrayObject.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/VertexArrayObject.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/VertexArrayObject.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/VertexArrayObject.hs
@@ -20,9 +20,15 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/APPLE/vertex_array_object.txt GL_APPLE_vertex_array_object> extension is available.
+
 gl_APPLE_vertex_array_object :: Bool
 gl_APPLE_vertex_array_object = member "GL_APPLE_vertex_array_object" extensions
+{-# NOINLINE gl_APPLE_vertex_array_object #-}
 
+-- | Usage: @'glBindVertexArrayAPPLE' array@
+
+
 glBindVertexArrayAPPLE :: MonadIO m => GLuint -> m ()
 glBindVertexArrayAPPLE = ffiuintIOV glBindVertexArrayAPPLEFunPtr
 
@@ -31,6 +37,13 @@
 
 {-# NOINLINE glBindVertexArrayAPPLEFunPtr #-}
 
+-- | Usage: @'glDeleteVertexArraysAPPLE' n arrays@
+--
+-- The length of @arrays@ should be @n@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glDeleteVertexArrays'.
+
+
 glDeleteVertexArraysAPPLE :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
 glDeleteVertexArraysAPPLE = ffisizeiPtruintIOV glDeleteVertexArraysAPPLEFunPtr
 
@@ -39,6 +52,13 @@
 
 {-# NOINLINE glDeleteVertexArraysAPPLEFunPtr #-}
 
+-- | Usage: @'glGenVertexArraysAPPLE' n arrays@
+--
+-- The length of @arrays@ should be @n@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glGenVertexArrays'.
+
+
 glGenVertexArraysAPPLE :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
 glGenVertexArraysAPPLE = ffisizeiPtruintIOV glGenVertexArraysAPPLEFunPtr
 
@@ -46,6 +66,11 @@
 glGenVertexArraysAPPLEFunPtr = unsafePerformIO (getProcAddress "glGenVertexArraysAPPLE")
 
 {-# NOINLINE glGenVertexArraysAPPLEFunPtr #-}
+
+-- | Usage: @'glIsVertexArrayAPPLE' array@
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glIsVertexArray'.
+
 
 glIsVertexArrayAPPLE :: MonadIO m => GLuint -> m GLboolean
 glIsVertexArrayAPPLE = ffiuintIOboolean glIsVertexArrayAPPLEFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/VertexArrayRange.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/VertexArrayRange.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/VertexArrayRange.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/VertexArrayRange.hs
@@ -26,9 +26,17 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/APPLE/vertex_array_range.txt GL_APPLE_vertex_array_range> extension is available.
+
 gl_APPLE_vertex_array_range :: Bool
 gl_APPLE_vertex_array_range = member "GL_APPLE_vertex_array_range" extensions
+{-# NOINLINE gl_APPLE_vertex_array_range #-}
 
+-- | Usage: @'glFlushVertexArrayRangeAPPLE' length pointer@
+--
+-- The length of @pointer@ should be @length@.
+
+
 glFlushVertexArrayRangeAPPLE :: MonadIO m => GLsizei -> Ptr () -> m ()
 glFlushVertexArrayRangeAPPLE = ffisizeiPtrVIOV glFlushVertexArrayRangeAPPLEFunPtr
 
@@ -37,6 +45,11 @@
 
 {-# NOINLINE glFlushVertexArrayRangeAPPLEFunPtr #-}
 
+-- | Usage: @'glVertexArrayParameteriAPPLE' pname param@
+--
+-- The parameter @pname@ is a @VertexArrayPNameAPPLE@.
+
+
 glVertexArrayParameteriAPPLE :: MonadIO m => GLenum -> GLint -> m ()
 glVertexArrayParameteriAPPLE = ffienumintIOV glVertexArrayParameteriAPPLEFunPtr
 
@@ -44,6 +57,11 @@
 glVertexArrayParameteriAPPLEFunPtr = unsafePerformIO (getProcAddress "glVertexArrayParameteriAPPLE")
 
 {-# NOINLINE glVertexArrayParameteriAPPLEFunPtr #-}
+
+-- | Usage: @'glVertexArrayRangeAPPLE' length pointer@
+--
+-- The length of @pointer@ should be @length@.
+
 
 glVertexArrayRangeAPPLE :: MonadIO m => GLsizei -> Ptr () -> m ()
 glVertexArrayRangeAPPLE = ffisizeiPtrVIOV glVertexArrayRangeAPPLEFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/VertexProgramEvaluators.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/VertexProgramEvaluators.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/VertexProgramEvaluators.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/VertexProgramEvaluators.hs
@@ -32,9 +32,15 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/APPLE/vertex_program_evaluators.txt GL_APPLE_vertex_program_evaluators> extension is available.
+
 gl_APPLE_vertex_program_evaluators :: Bool
 gl_APPLE_vertex_program_evaluators = member "GL_APPLE_vertex_program_evaluators" extensions
+{-# NOINLINE gl_APPLE_vertex_program_evaluators #-}
 
+-- | Usage: @'glDisableVertexAttribAPPLE' index pname@
+
+
 glDisableVertexAttribAPPLE :: MonadIO m => GLuint -> GLenum -> m ()
 glDisableVertexAttribAPPLE = ffiuintenumIOV glDisableVertexAttribAPPLEFunPtr
 
@@ -43,6 +49,9 @@
 
 {-# NOINLINE glDisableVertexAttribAPPLEFunPtr #-}
 
+-- | Usage: @'glEnableVertexAttribAPPLE' index pname@
+
+
 glEnableVertexAttribAPPLE :: MonadIO m => GLuint -> GLenum -> m ()
 glEnableVertexAttribAPPLE = ffiuintenumIOV glEnableVertexAttribAPPLEFunPtr
 
@@ -51,6 +60,9 @@
 
 {-# NOINLINE glEnableVertexAttribAPPLEFunPtr #-}
 
+-- | Usage: @'glIsVertexAttribEnabledAPPLE' index pname@
+
+
 glIsVertexAttribEnabledAPPLE :: MonadIO m => GLuint -> GLenum -> m GLboolean
 glIsVertexAttribEnabledAPPLE = ffiuintenumIOboolean glIsVertexAttribEnabledAPPLEFunPtr
 
@@ -59,6 +71,19 @@
 
 {-# NOINLINE glIsVertexAttribEnabledAPPLEFunPtr #-}
 
+-- | Usage: @'glMapVertexAttrib1dAPPLE' index size u1 u2 stride order points@
+--
+-- The parameter @u1@ is a @CoordD@.
+--
+-- The parameter @u2@ is a @CoordD@.
+--
+-- The parameter @order@ is a @CheckedInt32@.
+--
+-- The parameter @points@ is a @CoordD@.
+--
+-- The length of @points@ should be @COMPSIZE(size,stride,order)@.
+
+
 glMapVertexAttrib1dAPPLE :: MonadIO m => GLuint -> GLuint -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> m ()
 glMapVertexAttrib1dAPPLE = ffiuintuintdoubledoubleintintPtrdoubleIOV glMapVertexAttrib1dAPPLEFunPtr
 
@@ -67,6 +92,19 @@
 
 {-# NOINLINE glMapVertexAttrib1dAPPLEFunPtr #-}
 
+-- | Usage: @'glMapVertexAttrib1fAPPLE' index size u1 u2 stride order points@
+--
+-- The parameter @u1@ is a @CoordF@.
+--
+-- The parameter @u2@ is a @CoordF@.
+--
+-- The parameter @order@ is a @CheckedInt32@.
+--
+-- The parameter @points@ is a @CoordF@.
+--
+-- The length of @points@ should be @COMPSIZE(size,stride,order)@.
+
+
 glMapVertexAttrib1fAPPLE :: MonadIO m => GLuint -> GLuint -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> m ()
 glMapVertexAttrib1fAPPLE = ffiuintuintfloatfloatintintPtrfloatIOV glMapVertexAttrib1fAPPLEFunPtr
 
@@ -75,6 +113,25 @@
 
 {-# NOINLINE glMapVertexAttrib1fAPPLEFunPtr #-}
 
+-- | Usage: @'glMapVertexAttrib2dAPPLE' index size u1 u2 ustride uorder v1 v2 vstride vorder points@
+--
+-- The parameter @u1@ is a @CoordD@.
+--
+-- The parameter @u2@ is a @CoordD@.
+--
+-- The parameter @uorder@ is a @CheckedInt32@.
+--
+-- The parameter @v1@ is a @CoordD@.
+--
+-- The parameter @v2@ is a @CoordD@.
+--
+-- The parameter @vorder@ is a @CheckedInt32@.
+--
+-- The parameter @points@ is a @CoordD@.
+--
+-- The length of @points@ should be @COMPSIZE(size,ustride,uorder,vstride,vorder)@.
+
+
 glMapVertexAttrib2dAPPLE :: MonadIO m => GLuint -> GLuint -> GLdouble -> GLdouble -> GLint -> GLint -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> m ()
 glMapVertexAttrib2dAPPLE = ffiuintuintdoubledoubleintintdoubledoubleintintPtrdoubleIOV glMapVertexAttrib2dAPPLEFunPtr
 
@@ -82,6 +139,25 @@
 glMapVertexAttrib2dAPPLEFunPtr = unsafePerformIO (getProcAddress "glMapVertexAttrib2dAPPLE")
 
 {-# NOINLINE glMapVertexAttrib2dAPPLEFunPtr #-}
+
+-- | Usage: @'glMapVertexAttrib2fAPPLE' index size u1 u2 ustride uorder v1 v2 vstride vorder points@
+--
+-- The parameter @u1@ is a @CoordF@.
+--
+-- The parameter @u2@ is a @CoordF@.
+--
+-- The parameter @uorder@ is a @CheckedInt32@.
+--
+-- The parameter @v1@ is a @CoordF@.
+--
+-- The parameter @v2@ is a @CoordF@.
+--
+-- The parameter @vorder@ is a @CheckedInt32@.
+--
+-- The parameter @points@ is a @CoordF@.
+--
+-- The length of @points@ should be @COMPSIZE(size,ustride,uorder,vstride,vorder)@.
+
 
 glMapVertexAttrib2fAPPLE :: MonadIO m => GLuint -> GLuint -> GLfloat -> GLfloat -> GLint -> GLint -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> m ()
 glMapVertexAttrib2fAPPLE = ffiuintuintfloatfloatintintfloatfloatintintPtrfloatIOV glMapVertexAttrib2fAPPLEFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/Ycbcr422.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/Ycbcr422.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/Ycbcr422.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/Ycbcr422.hs
@@ -14,7 +14,10 @@
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/APPLE/ycbcr_422.txt GL_APPLE_ycbcr_422> extension is available.
+
 gl_APPLE_ycbcr_422 :: Bool
 gl_APPLE_ycbcr_422 = member "GL_APPLE_ycbcr_422" extensions
+{-# NOINLINE gl_APPLE_ycbcr_422 #-}
 
 pattern GL_YCBCR_422_APPLE = 0x85B9
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ArraysOfArrays.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ArraysOfArrays.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ArraysOfArrays.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ArraysOfArrays.hs
@@ -8,5 +8,8 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/arrays_of_arrays.txt GL_ARB_arrays_of_arrays> extension is available.
+
 gl_ARB_arrays_of_arrays :: Bool
 gl_ARB_arrays_of_arrays = member "GL_ARB_arrays_of_arrays" extensions
+{-# NOINLINE gl_ARB_arrays_of_arrays #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/BaseInstance.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/BaseInstance.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/BaseInstance.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/BaseInstance.hs
@@ -14,5 +14,8 @@
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/base_instance.txt GL_ARB_base_instance> extension is available.
+
 gl_ARB_base_instance :: Bool
 gl_ARB_base_instance = member "GL_ARB_base_instance" extensions
+{-# NOINLINE gl_ARB_base_instance #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/BindlessTexture.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/BindlessTexture.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/BindlessTexture.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/BindlessTexture.hs
@@ -32,9 +32,15 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/bindless_texture.txt GL_ARB_bindless_texture> extension is available.
+
 gl_ARB_bindless_texture :: Bool
 gl_ARB_bindless_texture = member "GL_ARB_bindless_texture" extensions
+{-# NOINLINE gl_ARB_bindless_texture #-}
 
+-- | Usage: @'glGetImageHandleARB' texture level layered layer format@
+
+
 glGetImageHandleARB :: MonadIO m => GLuint -> GLint -> GLboolean -> GLint -> GLenum -> m GLuint64
 glGetImageHandleARB = ffiuintintbooleanintenumIOuint64 glGetImageHandleARBFunPtr
 
@@ -43,6 +49,9 @@
 
 {-# NOINLINE glGetImageHandleARBFunPtr #-}
 
+-- | Usage: @'glGetTextureHandleARB' texture@
+
+
 glGetTextureHandleARB :: MonadIO m => GLuint -> m GLuint64
 glGetTextureHandleARB = ffiuintIOuint64 glGetTextureHandleARBFunPtr
 
@@ -51,6 +60,9 @@
 
 {-# NOINLINE glGetTextureHandleARBFunPtr #-}
 
+-- | Usage: @'glGetTextureSamplerHandleARB' texture sampler@
+
+
 glGetTextureSamplerHandleARB :: MonadIO m => GLuint -> GLuint -> m GLuint64
 glGetTextureSamplerHandleARB = ffiuintuintIOuint64 glGetTextureSamplerHandleARBFunPtr
 
@@ -59,6 +71,9 @@
 
 {-# NOINLINE glGetTextureSamplerHandleARBFunPtr #-}
 
+-- | Usage: @'glGetVertexAttribLui64vARB' index pname params@
+
+
 glGetVertexAttribLui64vARB :: MonadIO m => GLuint -> GLenum -> Ptr GLuint64EXT -> m ()
 glGetVertexAttribLui64vARB = ffiuintenumPtruint64EXTIOV glGetVertexAttribLui64vARBFunPtr
 
@@ -67,6 +82,9 @@
 
 {-# NOINLINE glGetVertexAttribLui64vARBFunPtr #-}
 
+-- | Usage: @'glIsImageHandleResidentARB' handle@
+
+
 glIsImageHandleResidentARB :: MonadIO m => GLuint64 -> m GLboolean
 glIsImageHandleResidentARB = ffiuint64IOboolean glIsImageHandleResidentARBFunPtr
 
@@ -75,6 +93,9 @@
 
 {-# NOINLINE glIsImageHandleResidentARBFunPtr #-}
 
+-- | Usage: @'glIsTextureHandleResidentARB' handle@
+
+
 glIsTextureHandleResidentARB :: MonadIO m => GLuint64 -> m GLboolean
 glIsTextureHandleResidentARB = ffiuint64IOboolean glIsTextureHandleResidentARBFunPtr
 
@@ -83,6 +104,9 @@
 
 {-# NOINLINE glIsTextureHandleResidentARBFunPtr #-}
 
+-- | Usage: @'glMakeImageHandleNonResidentARB' handle@
+
+
 glMakeImageHandleNonResidentARB :: MonadIO m => GLuint64 -> m ()
 glMakeImageHandleNonResidentARB = ffiuint64IOV glMakeImageHandleNonResidentARBFunPtr
 
@@ -91,6 +115,9 @@
 
 {-# NOINLINE glMakeImageHandleNonResidentARBFunPtr #-}
 
+-- | Usage: @'glMakeImageHandleResidentARB' handle access@
+
+
 glMakeImageHandleResidentARB :: MonadIO m => GLuint64 -> GLenum -> m ()
 glMakeImageHandleResidentARB = ffiuint64enumIOV glMakeImageHandleResidentARBFunPtr
 
@@ -99,6 +126,9 @@
 
 {-# NOINLINE glMakeImageHandleResidentARBFunPtr #-}
 
+-- | Usage: @'glMakeTextureHandleNonResidentARB' handle@
+
+
 glMakeTextureHandleNonResidentARB :: MonadIO m => GLuint64 -> m ()
 glMakeTextureHandleNonResidentARB = ffiuint64IOV glMakeTextureHandleNonResidentARBFunPtr
 
@@ -107,6 +137,9 @@
 
 {-# NOINLINE glMakeTextureHandleNonResidentARBFunPtr #-}
 
+-- | Usage: @'glMakeTextureHandleResidentARB' handle@
+
+
 glMakeTextureHandleResidentARB :: MonadIO m => GLuint64 -> m ()
 glMakeTextureHandleResidentARB = ffiuint64IOV glMakeTextureHandleResidentARBFunPtr
 
@@ -115,6 +148,9 @@
 
 {-# NOINLINE glMakeTextureHandleResidentARBFunPtr #-}
 
+-- | Usage: @'glProgramUniformHandleui64ARB' program location value@
+
+
 glProgramUniformHandleui64ARB :: MonadIO m => GLuint -> GLint -> GLuint64 -> m ()
 glProgramUniformHandleui64ARB = ffiuintintuint64IOV glProgramUniformHandleui64ARBFunPtr
 
@@ -123,6 +159,11 @@
 
 {-# NOINLINE glProgramUniformHandleui64ARBFunPtr #-}
 
+-- | Usage: @'glProgramUniformHandleui64vARB' program location count values@
+--
+-- The length of @values@ should be @count@.
+
+
 glProgramUniformHandleui64vARB :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint64 -> m ()
 glProgramUniformHandleui64vARB = ffiuintintsizeiPtruint64IOV glProgramUniformHandleui64vARBFunPtr
 
@@ -131,6 +172,9 @@
 
 {-# NOINLINE glProgramUniformHandleui64vARBFunPtr #-}
 
+-- | Usage: @'glUniformHandleui64ARB' location value@
+
+
 glUniformHandleui64ARB :: MonadIO m => GLint -> GLuint64 -> m ()
 glUniformHandleui64ARB = ffiintuint64IOV glUniformHandleui64ARBFunPtr
 
@@ -139,6 +183,11 @@
 
 {-# NOINLINE glUniformHandleui64ARBFunPtr #-}
 
+-- | Usage: @'glUniformHandleui64vARB' location count value@
+--
+-- The length of @value@ should be @count@.
+
+
 glUniformHandleui64vARB :: MonadIO m => GLint -> GLsizei -> Ptr GLuint64 -> m ()
 glUniformHandleui64vARB = ffiintsizeiPtruint64IOV glUniformHandleui64vARBFunPtr
 
@@ -147,6 +196,9 @@
 
 {-# NOINLINE glUniformHandleui64vARBFunPtr #-}
 
+-- | Usage: @'glVertexAttribL1ui64ARB' index x@
+
+
 glVertexAttribL1ui64ARB :: MonadIO m => GLuint -> GLuint64EXT -> m ()
 glVertexAttribL1ui64ARB = ffiuintuint64EXTIOV glVertexAttribL1ui64ARBFunPtr
 
@@ -154,6 +206,9 @@
 glVertexAttribL1ui64ARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttribL1ui64ARB")
 
 {-# NOINLINE glVertexAttribL1ui64ARBFunPtr #-}
+
+-- | Usage: @'glVertexAttribL1ui64vARB' index v@
+
 
 glVertexAttribL1ui64vARB :: MonadIO m => GLuint -> Ptr GLuint64EXT -> m ()
 glVertexAttribL1ui64vARB = ffiuintPtruint64EXTIOV glVertexAttribL1ui64vARBFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/BlendFuncExtended.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/BlendFuncExtended.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/BlendFuncExtended.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/BlendFuncExtended.hs
@@ -18,5 +18,8 @@
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/blend_func_extended.txt GL_ARB_blend_func_extended> extension is available.
+
 gl_ARB_blend_func_extended :: Bool
 gl_ARB_blend_func_extended = member "GL_ARB_blend_func_extended" extensions
+{-# NOINLINE gl_ARB_blend_func_extended #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/BufferStorage.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/BufferStorage.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/BufferStorage.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/BufferStorage.hs
@@ -21,5 +21,8 @@
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/buffer_storage.txt GL_ARB_buffer_storage> extension is available.
+
 gl_ARB_buffer_storage :: Bool
 gl_ARB_buffer_storage = member "GL_ARB_buffer_storage" extensions
+{-# NOINLINE gl_ARB_buffer_storage #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ClEvent.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ClEvent.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ClEvent.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ClEvent.hs
@@ -18,8 +18,18 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/cl_event.txt GL_ARB_cl_event> extension is available.
+
 gl_ARB_cl_event :: Bool
 gl_ARB_cl_event = member "GL_ARB_cl_event" extensions
+{-# NOINLINE gl_ARB_cl_event #-}
+
+-- | Usage: @'glCreateSyncFromCLeventARB' context event flags@
+--
+-- The parameter @context@ is a @cl_context@.
+--
+-- The parameter @event@ is a @cl_event@.
+
 
 glCreateSyncFromCLeventARB :: MonadIO m => Ptr () -> Ptr () -> GLbitfield -> m GLsync
 glCreateSyncFromCLeventARB = ffiPtrVPtrVbitfieldIOsync glCreateSyncFromCLeventARBFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ClearBufferObject.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ClearBufferObject.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ClearBufferObject.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ClearBufferObject.hs
@@ -13,5 +13,8 @@
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/clear_buffer_object.txt GL_ARB_clear_buffer_object> extension is available.
+
 gl_ARB_clear_buffer_object :: Bool
 gl_ARB_clear_buffer_object = member "GL_ARB_clear_buffer_object" extensions
+{-# NOINLINE gl_ARB_clear_buffer_object #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ClearTexture.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ClearTexture.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ClearTexture.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ClearTexture.hs
@@ -14,5 +14,8 @@
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/clear_texture.txt GL_ARB_clear_texture> extension is available.
+
 gl_ARB_clear_texture :: Bool
 gl_ARB_clear_texture = member "GL_ARB_clear_texture" extensions
+{-# NOINLINE gl_ARB_clear_texture #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ClipControl.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ClipControl.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ClipControl.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ClipControl.hs
@@ -18,5 +18,8 @@
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/clip_control.txt GL_ARB_clip_control> extension is available.
+
 gl_ARB_clip_control :: Bool
 gl_ARB_clip_control = member "GL_ARB_clip_control" extensions
+{-# NOINLINE gl_ARB_clip_control #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ColorBufferFloat.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ColorBufferFloat.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ColorBufferFloat.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ColorBufferFloat.hs
@@ -21,8 +21,20 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/color_buffer_float.txt GL_ARB_color_buffer_float> extension is available.
+
 gl_ARB_color_buffer_float :: Bool
 gl_ARB_color_buffer_float = member "GL_ARB_color_buffer_float" extensions
+{-# NOINLINE gl_ARB_color_buffer_float #-}
+
+-- | Usage: @'glClampColorARB' target clamp@
+--
+-- The parameter @target@ is a @ClampColorTargetARB@.
+--
+-- The parameter @clamp@ is a @ClampColorModeARB@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glClampColor'.
+
 
 glClampColorARB :: MonadIO m => GLenum -> GLenum -> m ()
 glClampColorARB = ffienumenumIOV glClampColorARBFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/Compatibility.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/Compatibility.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/Compatibility.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/Compatibility.hs
@@ -8,5 +8,8 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/compatibility.txt GL_ARB_compatibility> extension is available.
+
 gl_ARB_compatibility :: Bool
 gl_ARB_compatibility = member "GL_ARB_compatibility" extensions
+{-# NOINLINE gl_ARB_compatibility #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/CompressedTexturePixelStorage.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/CompressedTexturePixelStorage.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/CompressedTexturePixelStorage.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/CompressedTexturePixelStorage.hs
@@ -19,5 +19,8 @@
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/compressed_texture_pixel_storage.txt GL_ARB_compressed_texture_pixel_storage> extension is available.
+
 gl_ARB_compressed_texture_pixel_storage :: Bool
 gl_ARB_compressed_texture_pixel_storage = member "GL_ARB_compressed_texture_pixel_storage" extensions
+{-# NOINLINE gl_ARB_compressed_texture_pixel_storage #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ComputeShader.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ComputeShader.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ComputeShader.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ComputeShader.hs
@@ -31,5 +31,8 @@
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/compute_shader.txt GL_ARB_compute_shader> extension is available.
+
 gl_ARB_compute_shader :: Bool
 gl_ARB_compute_shader = member "GL_ARB_compute_shader" extensions
+{-# NOINLINE gl_ARB_compute_shader #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ComputeVariableGroupSize.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ComputeVariableGroupSize.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ComputeVariableGroupSize.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ComputeVariableGroupSize.hs
@@ -20,8 +20,14 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/compute_variable_group_size.txt GL_ARB_compute_variable_group_size> extension is available.
+
 gl_ARB_compute_variable_group_size :: Bool
 gl_ARB_compute_variable_group_size = member "GL_ARB_compute_variable_group_size" extensions
+{-# NOINLINE gl_ARB_compute_variable_group_size #-}
+
+-- | Usage: @'glDispatchComputeGroupSizeARB' num_groups_x num_groups_y num_groups_z group_size_x group_size_y group_size_z@
+
 
 glDispatchComputeGroupSizeARB :: MonadIO m => GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
 glDispatchComputeGroupSizeARB = ffiuintuintuintuintuintuintIOV glDispatchComputeGroupSizeARBFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ConditionalRenderInverted.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ConditionalRenderInverted.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ConditionalRenderInverted.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ConditionalRenderInverted.hs
@@ -15,5 +15,8 @@
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/conditional_render_inverted.txt GL_ARB_conditional_render_inverted> extension is available.
+
 gl_ARB_conditional_render_inverted :: Bool
 gl_ARB_conditional_render_inverted = member "GL_ARB_conditional_render_inverted" extensions
+{-# NOINLINE gl_ARB_conditional_render_inverted #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ConservativeDepth.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ConservativeDepth.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ConservativeDepth.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ConservativeDepth.hs
@@ -8,5 +8,8 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/conservative_depth.txt GL_ARB_conservative_depth> extension is available.
+
 gl_ARB_conservative_depth :: Bool
 gl_ARB_conservative_depth = member "GL_ARB_conservative_depth" extensions
+{-# NOINLINE gl_ARB_conservative_depth #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/CopyBuffer.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/CopyBuffer.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/CopyBuffer.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/CopyBuffer.hs
@@ -14,5 +14,8 @@
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/copy_buffer.txt GL_ARB_copy_buffer> extension is available.
+
 gl_ARB_copy_buffer :: Bool
 gl_ARB_copy_buffer = member "GL_ARB_copy_buffer" extensions
+{-# NOINLINE gl_ARB_copy_buffer #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/CopyImage.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/CopyImage.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/CopyImage.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/CopyImage.hs
@@ -12,5 +12,8 @@
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/copy_image.txt GL_ARB_copy_image> extension is available.
+
 gl_ARB_copy_image :: Bool
 gl_ARB_copy_image = member "GL_ARB_copy_image" extensions
+{-# NOINLINE gl_ARB_copy_image #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/CullDistance.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/CullDistance.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/CullDistance.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/CullDistance.hs
@@ -13,5 +13,8 @@
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/cull_distance.txt GL_ARB_cull_distance> extension is available.
+
 gl_ARB_cull_distance :: Bool
 gl_ARB_cull_distance = member "GL_ARB_cull_distance" extensions
+{-# NOINLINE gl_ARB_cull_distance #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/DebugOutput.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/DebugOutput.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/DebugOutput.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/DebugOutput.hs
@@ -41,9 +41,19 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/debug_output.txt GL_ARB_debug_output> extension is available.
+
 gl_ARB_debug_output :: Bool
 gl_ARB_debug_output = member "GL_ARB_debug_output" extensions
+{-# NOINLINE gl_ARB_debug_output #-}
 
+-- | Usage: @'glDebugMessageCallbackARB' callback userParam@
+--
+-- The length of @userParam@ should be @COMPSIZE(callback)@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glDebugMessageCallback'.
+
+
 glDebugMessageCallbackARB :: MonadIO m => GLDEBUGPROCARB -> Ptr () -> m ()
 glDebugMessageCallbackARB = ffiDEBUGPROCARBPtrVIOV glDebugMessageCallbackARBFunPtr
 
@@ -52,6 +62,15 @@
 
 {-# NOINLINE glDebugMessageCallbackARBFunPtr #-}
 
+-- | Usage: @'glDebugMessageControlARB' source type severity count ids enabled@
+--
+-- The parameter @enabled@ is a @Boolean@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FALSE', 'Graphics.GL.Raw.Internal.Shared.GL_TRUE'.
+--
+-- The length of @ids@ should be @count@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glDebugMessageControl'.
+
+
 glDebugMessageControlARB :: MonadIO m => GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLuint -> GLboolean -> m ()
 glDebugMessageControlARB = ffienumenumenumsizeiPtruintbooleanIOV glDebugMessageControlARBFunPtr
 
@@ -60,6 +79,13 @@
 
 {-# NOINLINE glDebugMessageControlARBFunPtr #-}
 
+-- | Usage: @'glDebugMessageInsertARB' source type id severity length buf@
+--
+-- The length of @buf@ should be @length@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glDebugMessageInsert'.
+
+
 glDebugMessageInsertARB :: MonadIO m => GLenum -> GLenum -> GLuint -> GLenum -> GLsizei -> Ptr GLchar -> m ()
 glDebugMessageInsertARB = ffienumenumuintenumsizeiPtrcharIOV glDebugMessageInsertARBFunPtr
 
@@ -67,6 +93,23 @@
 glDebugMessageInsertARBFunPtr = unsafePerformIO (getProcAddress "glDebugMessageInsertARB")
 
 {-# NOINLINE glDebugMessageInsertARBFunPtr #-}
+
+-- | Usage: @'glGetDebugMessageLogARB' count bufSize sources types ids severities lengths messageLog@
+--
+-- The length of @sources@ should be @count@.
+--
+-- The length of @types@ should be @count@.
+--
+-- The length of @ids@ should be @count@.
+--
+-- The length of @severities@ should be @count@.
+--
+-- The length of @lengths@ should be @count@.
+--
+-- The length of @messageLog@ should be @bufSize@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glGetDebugMessageLog'.
+
 
 glGetDebugMessageLogARB :: MonadIO m => GLuint -> GLsizei -> Ptr GLenum -> Ptr GLenum -> Ptr GLuint -> Ptr GLenum -> Ptr GLsizei -> Ptr GLchar -> m GLuint
 glGetDebugMessageLogARB = ffiuintsizeiPtrenumPtrenumPtruintPtrenumPtrsizeiPtrcharIOuint glGetDebugMessageLogARBFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/DepthBufferFloat.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/DepthBufferFloat.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/DepthBufferFloat.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/DepthBufferFloat.hs
@@ -14,5 +14,8 @@
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/depth_buffer_float.txt GL_ARB_depth_buffer_float> extension is available.
+
 gl_ARB_depth_buffer_float :: Bool
 gl_ARB_depth_buffer_float = member "GL_ARB_depth_buffer_float" extensions
+{-# NOINLINE gl_ARB_depth_buffer_float #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/DepthClamp.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/DepthClamp.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/DepthClamp.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/DepthClamp.hs
@@ -12,5 +12,8 @@
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/depth_clamp.txt GL_ARB_depth_clamp> extension is available.
+
 gl_ARB_depth_clamp :: Bool
 gl_ARB_depth_clamp = member "GL_ARB_depth_clamp" extensions
+{-# NOINLINE gl_ARB_depth_clamp #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/DepthTexture.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/DepthTexture.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/DepthTexture.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/DepthTexture.hs
@@ -15,8 +15,11 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/depth_texture.txt GL_ARB_depth_texture> extension is available.
+
 gl_ARB_depth_texture :: Bool
 gl_ARB_depth_texture = member "GL_ARB_depth_texture" extensions
+{-# NOINLINE gl_ARB_depth_texture #-}
 
 pattern GL_DEPTH_COMPONENT16_ARB = 0x81A5
 
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/DerivativeControl.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/DerivativeControl.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/DerivativeControl.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/DerivativeControl.hs
@@ -8,5 +8,8 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/derivative_control.txt GL_ARB_derivative_control> extension is available.
+
 gl_ARB_derivative_control :: Bool
 gl_ARB_derivative_control = member "GL_ARB_derivative_control" extensions
+{-# NOINLINE gl_ARB_derivative_control #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/DirectStateAccess.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/DirectStateAccess.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/DirectStateAccess.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/DirectStateAccess.hs
@@ -122,5 +122,8 @@
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/direct_state_access.txt GL_ARB_direct_state_access> extension is available.
+
 gl_ARB_direct_state_access :: Bool
 gl_ARB_direct_state_access = member "GL_ARB_direct_state_access" extensions
+{-# NOINLINE gl_ARB_direct_state_access #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/DrawBuffers.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/DrawBuffers.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/DrawBuffers.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/DrawBuffers.hs
@@ -33,8 +33,20 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/draw_buffers.txt GL_ARB_draw_buffers> extension is available.
+
 gl_ARB_draw_buffers :: Bool
 gl_ARB_draw_buffers = member "GL_ARB_draw_buffers" extensions
+{-# NOINLINE gl_ARB_draw_buffers #-}
+
+-- | Usage: @'glDrawBuffersARB' n bufs@
+--
+-- The parameter @bufs@ is a @DrawBufferModeATI@.
+--
+-- The length of @bufs@ should be @n@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glDrawBuffers'.
+
 
 glDrawBuffersARB :: MonadIO m => GLsizei -> Ptr GLenum -> m ()
 glDrawBuffersARB = ffisizeiPtrenumIOV glDrawBuffersARBFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/DrawBuffersBlend.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/DrawBuffersBlend.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/DrawBuffersBlend.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/DrawBuffersBlend.hs
@@ -19,9 +19,17 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/draw_buffers_blend.txt GL_ARB_draw_buffers_blend> extension is available.
+
 gl_ARB_draw_buffers_blend :: Bool
 gl_ARB_draw_buffers_blend = member "GL_ARB_draw_buffers_blend" extensions
+{-# NOINLINE gl_ARB_draw_buffers_blend #-}
 
+-- | Usage: @'glBlendEquationSeparateiARB' buf modeRGB modeAlpha@
+--
+-- This command is an alias for 'Graphics.GL.Raw.Profile.Core40.glBlendEquationSeparatei'.
+
+
 glBlendEquationSeparateiARB :: MonadIO m => GLuint -> GLenum -> GLenum -> m ()
 glBlendEquationSeparateiARB = ffiuintenumenumIOV glBlendEquationSeparateiARBFunPtr
 
@@ -30,6 +38,11 @@
 
 {-# NOINLINE glBlendEquationSeparateiARBFunPtr #-}
 
+-- | Usage: @'glBlendEquationiARB' buf mode@
+--
+-- This command is an alias for 'Graphics.GL.Raw.Profile.Core40.glBlendEquationi'.
+
+
 glBlendEquationiARB :: MonadIO m => GLuint -> GLenum -> m ()
 glBlendEquationiARB = ffiuintenumIOV glBlendEquationiARBFunPtr
 
@@ -38,6 +51,11 @@
 
 {-# NOINLINE glBlendEquationiARBFunPtr #-}
 
+-- | Usage: @'glBlendFuncSeparateiARB' buf srcRGB dstRGB srcAlpha dstAlpha@
+--
+-- This command is an alias for 'Graphics.GL.Raw.Profile.Core40.glBlendFuncSeparatei'.
+
+
 glBlendFuncSeparateiARB :: MonadIO m => GLuint -> GLenum -> GLenum -> GLenum -> GLenum -> m ()
 glBlendFuncSeparateiARB = ffiuintenumenumenumenumIOV glBlendFuncSeparateiARBFunPtr
 
@@ -45,6 +63,11 @@
 glBlendFuncSeparateiARBFunPtr = unsafePerformIO (getProcAddress "glBlendFuncSeparateiARB")
 
 {-# NOINLINE glBlendFuncSeparateiARBFunPtr #-}
+
+-- | Usage: @'glBlendFunciARB' buf src dst@
+--
+-- This command is an alias for 'Graphics.GL.Raw.Profile.Core40.glBlendFunci'.
+
 
 glBlendFunciARB :: MonadIO m => GLuint -> GLenum -> GLenum -> m ()
 glBlendFunciARB = ffiuintenumenumIOV glBlendFunciARBFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/DrawElementsBaseVertex.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/DrawElementsBaseVertex.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/DrawElementsBaseVertex.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/DrawElementsBaseVertex.hs
@@ -15,5 +15,8 @@
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/draw_elements_base_vertex.txt GL_ARB_draw_elements_base_vertex> extension is available.
+
 gl_ARB_draw_elements_base_vertex :: Bool
 gl_ARB_draw_elements_base_vertex = member "GL_ARB_draw_elements_base_vertex" extensions
+{-# NOINLINE gl_ARB_draw_elements_base_vertex #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/DrawIndirect.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/DrawIndirect.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/DrawIndirect.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/DrawIndirect.hs
@@ -15,5 +15,8 @@
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/draw_indirect.txt GL_ARB_draw_indirect> extension is available.
+
 gl_ARB_draw_indirect :: Bool
 gl_ARB_draw_indirect = member "GL_ARB_draw_indirect" extensions
+{-# NOINLINE gl_ARB_draw_indirect #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/DrawInstanced.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/DrawInstanced.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/DrawInstanced.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/DrawInstanced.hs
@@ -17,9 +17,19 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/draw_instanced.txt GL_ARB_draw_instanced> extension is available.
+
 gl_ARB_draw_instanced :: Bool
 gl_ARB_draw_instanced = member "GL_ARB_draw_instanced" extensions
+{-# NOINLINE gl_ARB_draw_instanced #-}
 
+-- | Usage: @'glDrawArraysInstancedARB' mode first count primcount@
+--
+-- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_LINES', 'Graphics.GL.Raw.Profile.Core32.GL_LINES_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Raw.Profile.Core32.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PATCHES', 'Graphics.GL.Raw.Extension.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_POINTS', 'Graphics.GL.Raw.Internal.Shared.GL_POLYGON', 'Graphics.GL.Raw.Internal.Shared.GL_QUADS', 'Graphics.GL.Raw.Extension.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Raw.Profile.Core32.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Raw.Profile.Core32.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glDrawArraysInstanced'.
+
+
 glDrawArraysInstancedARB :: MonadIO m => GLenum -> GLint -> GLsizei -> GLsizei -> m ()
 glDrawArraysInstancedARB = ffienumintsizeisizeiIOV glDrawArraysInstancedARBFunPtr
 
@@ -27,6 +37,17 @@
 glDrawArraysInstancedARBFunPtr = unsafePerformIO (getProcAddress "glDrawArraysInstancedARB")
 
 {-# NOINLINE glDrawArraysInstancedARBFunPtr #-}
+
+-- | Usage: @'glDrawElementsInstancedARB' mode count type indices primcount@
+--
+-- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_LINES', 'Graphics.GL.Raw.Profile.Core32.GL_LINES_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Raw.Profile.Core32.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PATCHES', 'Graphics.GL.Raw.Extension.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_POINTS', 'Graphics.GL.Raw.Internal.Shared.GL_POLYGON', 'Graphics.GL.Raw.Internal.Shared.GL_QUADS', 'Graphics.GL.Raw.Extension.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Raw.Profile.Core32.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Raw.Profile.Core32.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
+--
+-- The parameter @type@ is a @DrawElementsType@.
+--
+-- The length of @indices@ should be @COMPSIZE(count,type)@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glDrawElementsInstanced'.
+
 
 glDrawElementsInstancedARB :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> m ()
 glDrawElementsInstancedARB = ffienumsizeienumPtrVsizeiIOV glDrawElementsInstancedARBFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ES2Compatibility.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ES2Compatibility.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ES2Compatibility.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ES2Compatibility.hs
@@ -32,5 +32,8 @@
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/ES2_compatibility.txt GL_ARB_ES2_compatibility> extension is available.
+
 gl_ARB_ES2_compatibility :: Bool
 gl_ARB_ES2_compatibility = member "GL_ARB_ES2_compatibility" extensions
+{-# NOINLINE gl_ARB_ES2_compatibility #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ES31Compatibility.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ES31Compatibility.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ES31Compatibility.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ES31Compatibility.hs
@@ -13,5 +13,8 @@
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/ES3_1_compatibility.txt GL_ARB_ES3_1_compatibility> extension is available.
+
 gl_ARB_ES3_1_compatibility :: Bool
 gl_ARB_ES3_1_compatibility = member "GL_ARB_ES3_1_compatibility" extensions
+{-# NOINLINE gl_ARB_ES3_1_compatibility #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ES3Compatibility.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ES3Compatibility.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ES3Compatibility.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ES3Compatibility.hs
@@ -24,5 +24,8 @@
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/ES3_compatibility.txt GL_ARB_ES3_compatibility> extension is available.
+
 gl_ARB_ES3_compatibility :: Bool
 gl_ARB_ES3_compatibility = member "GL_ARB_ES3_compatibility" extensions
+{-# NOINLINE gl_ARB_ES3_compatibility #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/EnhancedLayouts.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/EnhancedLayouts.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/EnhancedLayouts.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/EnhancedLayouts.hs
@@ -15,5 +15,8 @@
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/enhanced_layouts.txt GL_ARB_enhanced_layouts> extension is available.
+
 gl_ARB_enhanced_layouts :: Bool
 gl_ARB_enhanced_layouts = member "GL_ARB_enhanced_layouts" extensions
+{-# NOINLINE gl_ARB_enhanced_layouts #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ExplicitAttribLocation.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ExplicitAttribLocation.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ExplicitAttribLocation.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ExplicitAttribLocation.hs
@@ -8,5 +8,8 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/explicit_attrib_location.txt GL_ARB_explicit_attrib_location> extension is available.
+
 gl_ARB_explicit_attrib_location :: Bool
 gl_ARB_explicit_attrib_location = member "GL_ARB_explicit_attrib_location" extensions
+{-# NOINLINE gl_ARB_explicit_attrib_location #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ExplicitUniformLocation.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ExplicitUniformLocation.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ExplicitUniformLocation.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ExplicitUniformLocation.hs
@@ -12,5 +12,8 @@
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/explicit_uniform_location.txt GL_ARB_explicit_uniform_location> extension is available.
+
 gl_ARB_explicit_uniform_location :: Bool
 gl_ARB_explicit_uniform_location = member "GL_ARB_explicit_uniform_location" extensions
+{-# NOINLINE gl_ARB_explicit_uniform_location #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/FragmentCoordConventions.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/FragmentCoordConventions.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/FragmentCoordConventions.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/FragmentCoordConventions.hs
@@ -8,5 +8,8 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/fragment_coord_conventions.txt GL_ARB_fragment_coord_conventions> extension is available.
+
 gl_ARB_fragment_coord_conventions :: Bool
 gl_ARB_fragment_coord_conventions = member "GL_ARB_fragment_coord_conventions" extensions
+{-# NOINLINE gl_ARB_fragment_coord_conventions #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/FragmentLayerViewport.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/FragmentLayerViewport.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/FragmentLayerViewport.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/FragmentLayerViewport.hs
@@ -8,5 +8,8 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/fragment_layer_viewport.txt GL_ARB_fragment_layer_viewport> extension is available.
+
 gl_ARB_fragment_layer_viewport :: Bool
 gl_ARB_fragment_layer_viewport = member "GL_ARB_fragment_layer_viewport" extensions
+{-# NOINLINE gl_ARB_fragment_layer_viewport #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/FragmentProgram.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/FragmentProgram.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/FragmentProgram.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/FragmentProgram.hs
@@ -108,8 +108,11 @@
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/fragment_program.txt GL_ARB_fragment_program> extension is available.
+
 gl_ARB_fragment_program :: Bool
 gl_ARB_fragment_program = member "GL_ARB_fragment_program" extensions
+{-# NOINLINE gl_ARB_fragment_program #-}
 
 pattern GL_FRAGMENT_PROGRAM_ARB = 0x8804
 
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/FragmentProgramShadow.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/FragmentProgramShadow.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/FragmentProgramShadow.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/FragmentProgramShadow.hs
@@ -8,5 +8,8 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/fragment_program_shadow.txt GL_ARB_fragment_program_shadow> extension is available.
+
 gl_ARB_fragment_program_shadow :: Bool
 gl_ARB_fragment_program_shadow = member "GL_ARB_fragment_program_shadow" extensions
+{-# NOINLINE gl_ARB_fragment_program_shadow #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/FragmentShader.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/FragmentShader.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/FragmentShader.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/FragmentShader.hs
@@ -13,8 +13,11 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/fragment_shader.txt GL_ARB_fragment_shader> extension is available.
+
 gl_ARB_fragment_shader :: Bool
 gl_ARB_fragment_shader = member "GL_ARB_fragment_shader" extensions
+{-# NOINLINE gl_ARB_fragment_shader #-}
 
 pattern GL_FRAGMENT_SHADER_ARB = 0x8B30
 
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/FramebufferNoAttachments.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/FramebufferNoAttachments.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/FramebufferNoAttachments.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/FramebufferNoAttachments.hs
@@ -22,5 +22,8 @@
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/framebuffer_no_attachments.txt GL_ARB_framebuffer_no_attachments> extension is available.
+
 gl_ARB_framebuffer_no_attachments :: Bool
 gl_ARB_framebuffer_no_attachments = member "GL_ARB_framebuffer_no_attachments" extensions
+{-# NOINLINE gl_ARB_framebuffer_no_attachments #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/FramebufferObject.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/FramebufferObject.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/FramebufferObject.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/FramebufferObject.hs
@@ -104,5 +104,8 @@
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/framebuffer_object.txt GL_ARB_framebuffer_object> extension is available.
+
 gl_ARB_framebuffer_object :: Bool
 gl_ARB_framebuffer_object = member "GL_ARB_framebuffer_object" extensions
+{-# NOINLINE gl_ARB_framebuffer_object #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/FramebufferSRGB.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/FramebufferSRGB.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/FramebufferSRGB.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/FramebufferSRGB.hs
@@ -12,5 +12,8 @@
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/framebuffer_sRGB.txt GL_ARB_framebuffer_sRGB> extension is available.
+
 gl_ARB_framebuffer_sRGB :: Bool
 gl_ARB_framebuffer_sRGB = member "GL_ARB_framebuffer_sRGB" extensions
+{-# NOINLINE gl_ARB_framebuffer_sRGB #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/GeometryShader4.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/GeometryShader4.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/GeometryShader4.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/GeometryShader4.hs
@@ -40,9 +40,25 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/geometry_shader4.txt GL_ARB_geometry_shader4> extension is available.
+
 gl_ARB_geometry_shader4 :: Bool
 gl_ARB_geometry_shader4 = member "GL_ARB_geometry_shader4" extensions
+{-# NOINLINE gl_ARB_geometry_shader4 #-}
 
+-- | Usage: @'glFramebufferTextureARB' target attachment texture level@
+--
+-- The parameter @target@ is a @FramebufferTarget@.
+--
+-- The parameter @attachment@ is a @FramebufferAttachment@.
+--
+-- The parameter @texture@ is a @Texture@.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Profile.Core32.glFramebufferTexture'.
+
+
 glFramebufferTextureARB :: MonadIO m => GLenum -> GLenum -> GLuint -> GLint -> m ()
 glFramebufferTextureARB = ffienumenumuintintIOV glFramebufferTextureARBFunPtr
 
@@ -51,6 +67,19 @@
 
 {-# NOINLINE glFramebufferTextureARBFunPtr #-}
 
+-- | Usage: @'glFramebufferTextureFaceARB' target attachment texture level face@
+--
+-- The parameter @target@ is a @FramebufferTarget@.
+--
+-- The parameter @attachment@ is a @FramebufferAttachment@.
+--
+-- The parameter @texture@ is a @Texture@.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @face@ is a @TextureTarget@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+
+
 glFramebufferTextureFaceARB :: MonadIO m => GLenum -> GLenum -> GLuint -> GLint -> GLenum -> m ()
 glFramebufferTextureFaceARB = ffienumenumuintintenumIOV glFramebufferTextureFaceARBFunPtr
 
@@ -59,6 +88,21 @@
 
 {-# NOINLINE glFramebufferTextureFaceARBFunPtr #-}
 
+-- | Usage: @'glFramebufferTextureLayerARB' target attachment texture level layer@
+--
+-- The parameter @target@ is a @FramebufferTarget@.
+--
+-- The parameter @attachment@ is a @FramebufferAttachment@.
+--
+-- The parameter @texture@ is a @Texture@.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @layer@ is a @CheckedInt32@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glFramebufferTextureLayer'.
+
+
 glFramebufferTextureLayerARB :: MonadIO m => GLenum -> GLenum -> GLuint -> GLint -> GLint -> m ()
 glFramebufferTextureLayerARB = ffienumenumuintintintIOV glFramebufferTextureLayerARBFunPtr
 
@@ -66,6 +110,13 @@
 glFramebufferTextureLayerARBFunPtr = unsafePerformIO (getProcAddress "glFramebufferTextureLayerARB")
 
 {-# NOINLINE glFramebufferTextureLayerARBFunPtr #-}
+
+-- | Usage: @'glProgramParameteriARB' program pname value@
+--
+-- The parameter @pname@ is a @ProgramParameterPName@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glProgramParameteri'.
+
 
 glProgramParameteriARB :: MonadIO m => GLuint -> GLenum -> GLint -> m ()
 glProgramParameteriARB = ffiuintenumintIOV glProgramParameteriARBFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/GetProgramBinary.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/GetProgramBinary.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/GetProgramBinary.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/GetProgramBinary.hs
@@ -18,5 +18,8 @@
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/get_program_binary.txt GL_ARB_get_program_binary> extension is available.
+
 gl_ARB_get_program_binary :: Bool
 gl_ARB_get_program_binary = member "GL_ARB_get_program_binary" extensions
+{-# NOINLINE gl_ARB_get_program_binary #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/GetTextureSubImage.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/GetTextureSubImage.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/GetTextureSubImage.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/GetTextureSubImage.hs
@@ -13,5 +13,8 @@
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/get_texture_sub_image.txt GL_ARB_get_texture_sub_image> extension is available.
+
 gl_ARB_get_texture_sub_image :: Bool
 gl_ARB_get_texture_sub_image = member "GL_ARB_get_texture_sub_image" extensions
+{-# NOINLINE gl_ARB_get_texture_sub_image #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/GpuShader5.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/GpuShader5.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/GpuShader5.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/GpuShader5.hs
@@ -17,5 +17,8 @@
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/gpu_shader5.txt GL_ARB_gpu_shader5> extension is available.
+
 gl_ARB_gpu_shader5 :: Bool
 gl_ARB_gpu_shader5 = member "GL_ARB_gpu_shader5" extensions
+{-# NOINLINE gl_ARB_gpu_shader5 #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/GpuShaderFp64.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/GpuShaderFp64.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/GpuShaderFp64.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/GpuShaderFp64.hs
@@ -42,5 +42,8 @@
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/gpu_shader_fp64.txt GL_ARB_gpu_shader_fp64> extension is available.
+
 gl_ARB_gpu_shader_fp64 :: Bool
 gl_ARB_gpu_shader_fp64 = member "GL_ARB_gpu_shader_fp64" extensions
+{-# NOINLINE gl_ARB_gpu_shader_fp64 #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/HalfFloatPixel.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/HalfFloatPixel.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/HalfFloatPixel.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/HalfFloatPixel.hs
@@ -11,7 +11,10 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/half_float_pixel.txt GL_ARB_half_float_pixel> extension is available.
+
 gl_ARB_half_float_pixel :: Bool
 gl_ARB_half_float_pixel = member "GL_ARB_half_float_pixel" extensions
+{-# NOINLINE gl_ARB_half_float_pixel #-}
 
 pattern GL_HALF_FLOAT_ARB = 0x140B
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/HalfFloatVertex.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/HalfFloatVertex.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/HalfFloatVertex.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/HalfFloatVertex.hs
@@ -12,5 +12,8 @@
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/half_float_vertex.txt GL_ARB_half_float_vertex> extension is available.
+
 gl_ARB_half_float_vertex :: Bool
 gl_ARB_half_float_vertex = member "GL_ARB_half_float_vertex" extensions
+{-# NOINLINE gl_ARB_half_float_vertex #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/Imaging.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/Imaging.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/Imaging.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/Imaging.hs
@@ -125,9 +125,23 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the GL_ARB_imaging extension is available.
+
 gl_ARB_imaging :: Bool
 gl_ARB_imaging = member "GL_ARB_imaging" extensions
+{-# NOINLINE gl_ARB_imaging #-}
 
+-- | Usage: @'glColorSubTable' target start count format type data@
+--
+-- The parameter @target@ is a @ColorTableTarget@.
+--
+-- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Raw.Extension.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_ALPHA', 'Graphics.GL.Raw.Internal.Shared.GL_BLUE', 'Graphics.GL.Raw.Extension.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Raw.Extension.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Raw.Internal.Shared.GL_GREEN', 'Graphics.GL.Raw.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Raw.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Raw.Internal.Shared.GL_RED', 'Graphics.GL.Raw.Extension.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_RGB', 'Graphics.GL.Raw.Internal.Shared.GL_RGBA', 'Graphics.GL.Raw.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Raw.Extension.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
+--
+-- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_BITMAP', 'Graphics.GL.Raw.Internal.Shared.GL_BYTE', 'Graphics.GL.Raw.Internal.Shared.GL_FLOAT', 'Graphics.GL.Raw.Internal.Shared.GL_INT', 'Graphics.GL.Raw.Internal.Shared.GL_SHORT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
+--
+-- The length of @data@ should be @COMPSIZE(format,type,count)@.
+
+
 glColorSubTable :: MonadIO m => GLenum -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
 glColorSubTable = ffienumsizeisizeienumenumPtrVIOV glColorSubTableFunPtr
 
@@ -136,6 +150,19 @@
 
 {-# NOINLINE glColorSubTableFunPtr #-}
 
+-- | Usage: @'glColorTable' target internalformat width format type table@
+--
+-- The parameter @target@ is a @ColorTableTarget@.
+--
+-- The parameter @internalformat@ is a @PixelInternalFormat@.
+--
+-- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Raw.Extension.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_ALPHA', 'Graphics.GL.Raw.Internal.Shared.GL_BLUE', 'Graphics.GL.Raw.Extension.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Raw.Extension.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Raw.Internal.Shared.GL_GREEN', 'Graphics.GL.Raw.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Raw.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Raw.Internal.Shared.GL_RED', 'Graphics.GL.Raw.Extension.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_RGB', 'Graphics.GL.Raw.Internal.Shared.GL_RGBA', 'Graphics.GL.Raw.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Raw.Extension.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
+--
+-- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_BITMAP', 'Graphics.GL.Raw.Internal.Shared.GL_BYTE', 'Graphics.GL.Raw.Internal.Shared.GL_FLOAT', 'Graphics.GL.Raw.Internal.Shared.GL_INT', 'Graphics.GL.Raw.Internal.Shared.GL_SHORT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
+--
+-- The length of @table@ should be @COMPSIZE(format,type,width)@.
+
+
 glColorTable :: MonadIO m => GLenum -> GLenum -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
 glColorTable = ffienumenumsizeienumenumPtrVIOV glColorTableFunPtr
 
@@ -144,6 +171,17 @@
 
 {-# NOINLINE glColorTableFunPtr #-}
 
+-- | Usage: @'glColorTableParameterfv' target pname params@
+--
+-- The parameter @target@ is a @ColorTableTarget@.
+--
+-- The parameter @pname@ is a @ColorTableParameterPName@.
+--
+-- The parameter @params@ is a @CheckedFloat32@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
 glColorTableParameterfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
 glColorTableParameterfv = ffienumenumPtrfloatIOV glColorTableParameterfvFunPtr
 
@@ -152,6 +190,17 @@
 
 {-# NOINLINE glColorTableParameterfvFunPtr #-}
 
+-- | Usage: @'glColorTableParameteriv' target pname params@
+--
+-- The parameter @target@ is a @ColorTableTarget@.
+--
+-- The parameter @pname@ is a @ColorTableParameterPName@.
+--
+-- The parameter @params@ is a @CheckedInt32@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
 glColorTableParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
 glColorTableParameteriv = ffienumenumPtrintIOV glColorTableParameterivFunPtr
 
@@ -160,6 +209,19 @@
 
 {-# NOINLINE glColorTableParameterivFunPtr #-}
 
+-- | Usage: @'glConvolutionFilter1D' target internalformat width format type image@
+--
+-- The parameter @target@ is a @ConvolutionTarget@.
+--
+-- The parameter @internalformat@ is a @PixelInternalFormat@.
+--
+-- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Raw.Extension.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_ALPHA', 'Graphics.GL.Raw.Internal.Shared.GL_BLUE', 'Graphics.GL.Raw.Extension.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Raw.Extension.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Raw.Internal.Shared.GL_GREEN', 'Graphics.GL.Raw.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Raw.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Raw.Internal.Shared.GL_RED', 'Graphics.GL.Raw.Extension.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_RGB', 'Graphics.GL.Raw.Internal.Shared.GL_RGBA', 'Graphics.GL.Raw.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Raw.Extension.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
+--
+-- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_BITMAP', 'Graphics.GL.Raw.Internal.Shared.GL_BYTE', 'Graphics.GL.Raw.Internal.Shared.GL_FLOAT', 'Graphics.GL.Raw.Internal.Shared.GL_INT', 'Graphics.GL.Raw.Internal.Shared.GL_SHORT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
+--
+-- The length of @image@ should be @COMPSIZE(format,type,width)@.
+
+
 glConvolutionFilter1D :: MonadIO m => GLenum -> GLenum -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
 glConvolutionFilter1D = ffienumenumsizeienumenumPtrVIOV glConvolutionFilter1DFunPtr
 
@@ -168,6 +230,19 @@
 
 {-# NOINLINE glConvolutionFilter1DFunPtr #-}
 
+-- | Usage: @'glConvolutionFilter2D' target internalformat width height format type image@
+--
+-- The parameter @target@ is a @ConvolutionTarget@.
+--
+-- The parameter @internalformat@ is a @PixelInternalFormat@.
+--
+-- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Raw.Extension.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_ALPHA', 'Graphics.GL.Raw.Internal.Shared.GL_BLUE', 'Graphics.GL.Raw.Extension.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Raw.Extension.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Raw.Internal.Shared.GL_GREEN', 'Graphics.GL.Raw.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Raw.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Raw.Internal.Shared.GL_RED', 'Graphics.GL.Raw.Extension.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_RGB', 'Graphics.GL.Raw.Internal.Shared.GL_RGBA', 'Graphics.GL.Raw.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Raw.Extension.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
+--
+-- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_BITMAP', 'Graphics.GL.Raw.Internal.Shared.GL_BYTE', 'Graphics.GL.Raw.Internal.Shared.GL_FLOAT', 'Graphics.GL.Raw.Internal.Shared.GL_INT', 'Graphics.GL.Raw.Internal.Shared.GL_SHORT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
+--
+-- The length of @image@ should be @COMPSIZE(format,type,width,height)@.
+
+
 glConvolutionFilter2D :: MonadIO m => GLenum -> GLenum -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
 glConvolutionFilter2D = ffienumenumsizeisizeienumenumPtrVIOV glConvolutionFilter2DFunPtr
 
@@ -176,6 +251,15 @@
 
 {-# NOINLINE glConvolutionFilter2DFunPtr #-}
 
+-- | Usage: @'glConvolutionParameterf' target pname params@
+--
+-- The parameter @target@ is a @ConvolutionTarget@.
+--
+-- The parameter @pname@ is a @ConvolutionParameter@.
+--
+-- The parameter @params@ is a @CheckedFloat32@.
+
+
 glConvolutionParameterf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()
 glConvolutionParameterf = ffienumenumfloatIOV glConvolutionParameterfFunPtr
 
@@ -184,6 +268,17 @@
 
 {-# NOINLINE glConvolutionParameterfFunPtr #-}
 
+-- | Usage: @'glConvolutionParameterfv' target pname params@
+--
+-- The parameter @target@ is a @ConvolutionTarget@.
+--
+-- The parameter @pname@ is a @ConvolutionParameter@.
+--
+-- The parameter @params@ is a @CheckedFloat32@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
 glConvolutionParameterfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
 glConvolutionParameterfv = ffienumenumPtrfloatIOV glConvolutionParameterfvFunPtr
 
@@ -192,6 +287,15 @@
 
 {-# NOINLINE glConvolutionParameterfvFunPtr #-}
 
+-- | Usage: @'glConvolutionParameteri' target pname params@
+--
+-- The parameter @target@ is a @ConvolutionTarget@.
+--
+-- The parameter @pname@ is a @ConvolutionParameter@.
+--
+-- The parameter @params@ is a @CheckedInt32@.
+
+
 glConvolutionParameteri :: MonadIO m => GLenum -> GLenum -> GLint -> m ()
 glConvolutionParameteri = ffienumenumintIOV glConvolutionParameteriFunPtr
 
@@ -200,6 +304,17 @@
 
 {-# NOINLINE glConvolutionParameteriFunPtr #-}
 
+-- | Usage: @'glConvolutionParameteriv' target pname params@
+--
+-- The parameter @target@ is a @ConvolutionTarget@.
+--
+-- The parameter @pname@ is a @ConvolutionParameter@.
+--
+-- The parameter @params@ is a @CheckedInt32@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
 glConvolutionParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
 glConvolutionParameteriv = ffienumenumPtrintIOV glConvolutionParameterivFunPtr
 
@@ -208,6 +323,15 @@
 
 {-# NOINLINE glConvolutionParameterivFunPtr #-}
 
+-- | Usage: @'glCopyColorSubTable' target start x y width@
+--
+-- The parameter @target@ is a @ColorTableTarget@.
+--
+-- The parameter @x@ is a @WinCoord@.
+--
+-- The parameter @y@ is a @WinCoord@.
+
+
 glCopyColorSubTable :: MonadIO m => GLenum -> GLsizei -> GLint -> GLint -> GLsizei -> m ()
 glCopyColorSubTable = ffienumsizeiintintsizeiIOV glCopyColorSubTableFunPtr
 
@@ -216,6 +340,17 @@
 
 {-# NOINLINE glCopyColorSubTableFunPtr #-}
 
+-- | Usage: @'glCopyColorTable' target internalformat x y width@
+--
+-- The parameter @target@ is a @ColorTableTarget@.
+--
+-- The parameter @internalformat@ is a @PixelInternalFormat@.
+--
+-- The parameter @x@ is a @WinCoord@.
+--
+-- The parameter @y@ is a @WinCoord@.
+
+
 glCopyColorTable :: MonadIO m => GLenum -> GLenum -> GLint -> GLint -> GLsizei -> m ()
 glCopyColorTable = ffienumenumintintsizeiIOV glCopyColorTableFunPtr
 
@@ -224,6 +359,17 @@
 
 {-# NOINLINE glCopyColorTableFunPtr #-}
 
+-- | Usage: @'glCopyConvolutionFilter1D' target internalformat x y width@
+--
+-- The parameter @target@ is a @ConvolutionTarget@.
+--
+-- The parameter @internalformat@ is a @PixelInternalFormat@.
+--
+-- The parameter @x@ is a @WinCoord@.
+--
+-- The parameter @y@ is a @WinCoord@.
+
+
 glCopyConvolutionFilter1D :: MonadIO m => GLenum -> GLenum -> GLint -> GLint -> GLsizei -> m ()
 glCopyConvolutionFilter1D = ffienumenumintintsizeiIOV glCopyConvolutionFilter1DFunPtr
 
@@ -232,6 +378,17 @@
 
 {-# NOINLINE glCopyConvolutionFilter1DFunPtr #-}
 
+-- | Usage: @'glCopyConvolutionFilter2D' target internalformat x y width height@
+--
+-- The parameter @target@ is a @ConvolutionTarget@.
+--
+-- The parameter @internalformat@ is a @PixelInternalFormat@.
+--
+-- The parameter @x@ is a @WinCoord@.
+--
+-- The parameter @y@ is a @WinCoord@.
+
+
 glCopyConvolutionFilter2D :: MonadIO m => GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> m ()
 glCopyConvolutionFilter2D = ffienumenumintintsizeisizeiIOV glCopyConvolutionFilter2DFunPtr
 
@@ -240,6 +397,17 @@
 
 {-# NOINLINE glCopyConvolutionFilter2DFunPtr #-}
 
+-- | Usage: @'glGetColorTable' target format type table@
+--
+-- The parameter @target@ is a @ColorTableTarget@.
+--
+-- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Raw.Extension.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_ALPHA', 'Graphics.GL.Raw.Internal.Shared.GL_BLUE', 'Graphics.GL.Raw.Extension.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Raw.Extension.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Raw.Internal.Shared.GL_GREEN', 'Graphics.GL.Raw.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Raw.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Raw.Internal.Shared.GL_RED', 'Graphics.GL.Raw.Extension.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_RGB', 'Graphics.GL.Raw.Internal.Shared.GL_RGBA', 'Graphics.GL.Raw.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Raw.Extension.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
+--
+-- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_BITMAP', 'Graphics.GL.Raw.Internal.Shared.GL_BYTE', 'Graphics.GL.Raw.Internal.Shared.GL_FLOAT', 'Graphics.GL.Raw.Internal.Shared.GL_INT', 'Graphics.GL.Raw.Internal.Shared.GL_SHORT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
+--
+-- The length of @table@ should be @COMPSIZE(target,format,type)@.
+
+
 glGetColorTable :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr () -> m ()
 glGetColorTable = ffienumenumenumPtrVIOV glGetColorTableFunPtr
 
@@ -248,6 +416,15 @@
 
 {-# NOINLINE glGetColorTableFunPtr #-}
 
+-- | Usage: @'glGetColorTableParameterfv' target pname params@
+--
+-- The parameter @target@ is a @ColorTableTarget@.
+--
+-- The parameter @pname@ is a @GetColorTableParameterPName@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
 glGetColorTableParameterfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
 glGetColorTableParameterfv = ffienumenumPtrfloatIOV glGetColorTableParameterfvFunPtr
 
@@ -256,6 +433,15 @@
 
 {-# NOINLINE glGetColorTableParameterfvFunPtr #-}
 
+-- | Usage: @'glGetColorTableParameteriv' target pname params@
+--
+-- The parameter @target@ is a @ColorTableTarget@.
+--
+-- The parameter @pname@ is a @GetColorTableParameterPName@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
 glGetColorTableParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
 glGetColorTableParameteriv = ffienumenumPtrintIOV glGetColorTableParameterivFunPtr
 
@@ -264,6 +450,17 @@
 
 {-# NOINLINE glGetColorTableParameterivFunPtr #-}
 
+-- | Usage: @'glGetConvolutionFilter' target format type image@
+--
+-- The parameter @target@ is a @ConvolutionTarget@.
+--
+-- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Raw.Extension.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_ALPHA', 'Graphics.GL.Raw.Internal.Shared.GL_BLUE', 'Graphics.GL.Raw.Extension.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Raw.Extension.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Raw.Internal.Shared.GL_GREEN', 'Graphics.GL.Raw.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Raw.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Raw.Internal.Shared.GL_RED', 'Graphics.GL.Raw.Extension.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_RGB', 'Graphics.GL.Raw.Internal.Shared.GL_RGBA', 'Graphics.GL.Raw.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Raw.Extension.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
+--
+-- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_BITMAP', 'Graphics.GL.Raw.Internal.Shared.GL_BYTE', 'Graphics.GL.Raw.Internal.Shared.GL_FLOAT', 'Graphics.GL.Raw.Internal.Shared.GL_INT', 'Graphics.GL.Raw.Internal.Shared.GL_SHORT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
+--
+-- The length of @image@ should be @COMPSIZE(target,format,type)@.
+
+
 glGetConvolutionFilter :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr () -> m ()
 glGetConvolutionFilter = ffienumenumenumPtrVIOV glGetConvolutionFilterFunPtr
 
@@ -272,6 +469,15 @@
 
 {-# NOINLINE glGetConvolutionFilterFunPtr #-}
 
+-- | Usage: @'glGetConvolutionParameterfv' target pname params@
+--
+-- The parameter @target@ is a @ConvolutionTarget@.
+--
+-- The parameter @pname@ is a @GetConvolutionParameterPName@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
 glGetConvolutionParameterfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
 glGetConvolutionParameterfv = ffienumenumPtrfloatIOV glGetConvolutionParameterfvFunPtr
 
@@ -280,6 +486,15 @@
 
 {-# NOINLINE glGetConvolutionParameterfvFunPtr #-}
 
+-- | Usage: @'glGetConvolutionParameteriv' target pname params@
+--
+-- The parameter @target@ is a @ConvolutionTarget@.
+--
+-- The parameter @pname@ is a @GetConvolutionParameterPName@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
 glGetConvolutionParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
 glGetConvolutionParameteriv = ffienumenumPtrintIOV glGetConvolutionParameterivFunPtr
 
@@ -288,6 +503,19 @@
 
 {-# NOINLINE glGetConvolutionParameterivFunPtr #-}
 
+-- | Usage: @'glGetHistogram' target reset format type values@
+--
+-- The parameter @target@ is a @HistogramTarget@.
+--
+-- The parameter @reset@ is a @Boolean@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FALSE', 'Graphics.GL.Raw.Internal.Shared.GL_TRUE'.
+--
+-- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Raw.Extension.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_ALPHA', 'Graphics.GL.Raw.Internal.Shared.GL_BLUE', 'Graphics.GL.Raw.Extension.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Raw.Extension.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Raw.Internal.Shared.GL_GREEN', 'Graphics.GL.Raw.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Raw.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Raw.Internal.Shared.GL_RED', 'Graphics.GL.Raw.Extension.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_RGB', 'Graphics.GL.Raw.Internal.Shared.GL_RGBA', 'Graphics.GL.Raw.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Raw.Extension.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
+--
+-- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_BITMAP', 'Graphics.GL.Raw.Internal.Shared.GL_BYTE', 'Graphics.GL.Raw.Internal.Shared.GL_FLOAT', 'Graphics.GL.Raw.Internal.Shared.GL_INT', 'Graphics.GL.Raw.Internal.Shared.GL_SHORT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
+--
+-- The length of @values@ should be @COMPSIZE(target,format,type)@.
+
+
 glGetHistogram :: MonadIO m => GLenum -> GLboolean -> GLenum -> GLenum -> Ptr () -> m ()
 glGetHistogram = ffienumbooleanenumenumPtrVIOV glGetHistogramFunPtr
 
@@ -296,6 +524,15 @@
 
 {-# NOINLINE glGetHistogramFunPtr #-}
 
+-- | Usage: @'glGetHistogramParameterfv' target pname params@
+--
+-- The parameter @target@ is a @HistogramTarget@.
+--
+-- The parameter @pname@ is a @GetHistogramParameterPName@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
 glGetHistogramParameterfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
 glGetHistogramParameterfv = ffienumenumPtrfloatIOV glGetHistogramParameterfvFunPtr
 
@@ -304,6 +541,15 @@
 
 {-# NOINLINE glGetHistogramParameterfvFunPtr #-}
 
+-- | Usage: @'glGetHistogramParameteriv' target pname params@
+--
+-- The parameter @target@ is a @HistogramTarget@.
+--
+-- The parameter @pname@ is a @GetHistogramParameterPName@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
 glGetHistogramParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
 glGetHistogramParameteriv = ffienumenumPtrintIOV glGetHistogramParameterivFunPtr
 
@@ -312,6 +558,19 @@
 
 {-# NOINLINE glGetHistogramParameterivFunPtr #-}
 
+-- | Usage: @'glGetMinmax' target reset format type values@
+--
+-- The parameter @target@ is a @MinmaxTarget@.
+--
+-- The parameter @reset@ is a @Boolean@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FALSE', 'Graphics.GL.Raw.Internal.Shared.GL_TRUE'.
+--
+-- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Raw.Extension.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_ALPHA', 'Graphics.GL.Raw.Internal.Shared.GL_BLUE', 'Graphics.GL.Raw.Extension.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Raw.Extension.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Raw.Internal.Shared.GL_GREEN', 'Graphics.GL.Raw.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Raw.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Raw.Internal.Shared.GL_RED', 'Graphics.GL.Raw.Extension.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_RGB', 'Graphics.GL.Raw.Internal.Shared.GL_RGBA', 'Graphics.GL.Raw.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Raw.Extension.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
+--
+-- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_BITMAP', 'Graphics.GL.Raw.Internal.Shared.GL_BYTE', 'Graphics.GL.Raw.Internal.Shared.GL_FLOAT', 'Graphics.GL.Raw.Internal.Shared.GL_INT', 'Graphics.GL.Raw.Internal.Shared.GL_SHORT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
+--
+-- The length of @values@ should be @COMPSIZE(target,format,type)@.
+
+
 glGetMinmax :: MonadIO m => GLenum -> GLboolean -> GLenum -> GLenum -> Ptr () -> m ()
 glGetMinmax = ffienumbooleanenumenumPtrVIOV glGetMinmaxFunPtr
 
@@ -320,6 +579,15 @@
 
 {-# NOINLINE glGetMinmaxFunPtr #-}
 
+-- | Usage: @'glGetMinmaxParameterfv' target pname params@
+--
+-- The parameter @target@ is a @MinmaxTarget@.
+--
+-- The parameter @pname@ is a @GetMinmaxParameterPName@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
 glGetMinmaxParameterfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
 glGetMinmaxParameterfv = ffienumenumPtrfloatIOV glGetMinmaxParameterfvFunPtr
 
@@ -328,6 +596,15 @@
 
 {-# NOINLINE glGetMinmaxParameterfvFunPtr #-}
 
+-- | Usage: @'glGetMinmaxParameteriv' target pname params@
+--
+-- The parameter @target@ is a @MinmaxTarget@.
+--
+-- The parameter @pname@ is a @GetMinmaxParameterPName@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
 glGetMinmaxParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
 glGetMinmaxParameteriv = ffienumenumPtrintIOV glGetMinmaxParameterivFunPtr
 
@@ -336,6 +613,21 @@
 
 {-# NOINLINE glGetMinmaxParameterivFunPtr #-}
 
+-- | Usage: @'glGetSeparableFilter' target format type row column span@
+--
+-- The parameter @target@ is a @SeparableTarget@.
+--
+-- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Raw.Extension.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_ALPHA', 'Graphics.GL.Raw.Internal.Shared.GL_BLUE', 'Graphics.GL.Raw.Extension.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Raw.Extension.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Raw.Internal.Shared.GL_GREEN', 'Graphics.GL.Raw.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Raw.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Raw.Internal.Shared.GL_RED', 'Graphics.GL.Raw.Extension.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_RGB', 'Graphics.GL.Raw.Internal.Shared.GL_RGBA', 'Graphics.GL.Raw.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Raw.Extension.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
+--
+-- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_BITMAP', 'Graphics.GL.Raw.Internal.Shared.GL_BYTE', 'Graphics.GL.Raw.Internal.Shared.GL_FLOAT', 'Graphics.GL.Raw.Internal.Shared.GL_INT', 'Graphics.GL.Raw.Internal.Shared.GL_SHORT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
+--
+-- The length of @row@ should be @COMPSIZE(target,format,type)@.
+--
+-- The length of @column@ should be @COMPSIZE(target,format,type)@.
+--
+-- The length of @span@ should be @COMPSIZE(target,format,type)@.
+
+
 glGetSeparableFilter :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr () -> Ptr () -> Ptr () -> m ()
 glGetSeparableFilter = ffienumenumenumPtrVPtrVPtrVIOV glGetSeparableFilterFunPtr
 
@@ -344,6 +636,15 @@
 
 {-# NOINLINE glGetSeparableFilterFunPtr #-}
 
+-- | Usage: @'glHistogram' target width internalformat sink@
+--
+-- The parameter @target@ is a @HistogramTarget@.
+--
+-- The parameter @internalformat@ is a @PixelInternalFormat@.
+--
+-- The parameter @sink@ is a @Boolean@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FALSE', 'Graphics.GL.Raw.Internal.Shared.GL_TRUE'.
+
+
 glHistogram :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLboolean -> m ()
 glHistogram = ffienumsizeienumbooleanIOV glHistogramFunPtr
 
@@ -352,6 +653,15 @@
 
 {-# NOINLINE glHistogramFunPtr #-}
 
+-- | Usage: @'glMinmax' target internalformat sink@
+--
+-- The parameter @target@ is a @MinmaxTarget@.
+--
+-- The parameter @internalformat@ is a @PixelInternalFormat@.
+--
+-- The parameter @sink@ is a @Boolean@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FALSE', 'Graphics.GL.Raw.Internal.Shared.GL_TRUE'.
+
+
 glMinmax :: MonadIO m => GLenum -> GLenum -> GLboolean -> m ()
 glMinmax = ffienumenumbooleanIOV glMinmaxFunPtr
 
@@ -360,6 +670,11 @@
 
 {-# NOINLINE glMinmaxFunPtr #-}
 
+-- | Usage: @'glResetHistogram' target@
+--
+-- The parameter @target@ is a @HistogramTarget@.
+
+
 glResetHistogram :: MonadIO m => GLenum -> m ()
 glResetHistogram = ffienumIOV glResetHistogramFunPtr
 
@@ -368,6 +683,11 @@
 
 {-# NOINLINE glResetHistogramFunPtr #-}
 
+-- | Usage: @'glResetMinmax' target@
+--
+-- The parameter @target@ is a @MinmaxTarget@.
+
+
 glResetMinmax :: MonadIO m => GLenum -> m ()
 glResetMinmax = ffienumIOV glResetMinmaxFunPtr
 
@@ -375,6 +695,21 @@
 glResetMinmaxFunPtr = unsafePerformIO (getProcAddress "glResetMinmax")
 
 {-# NOINLINE glResetMinmaxFunPtr #-}
+
+-- | Usage: @'glSeparableFilter2D' target internalformat width height format type row column@
+--
+-- The parameter @target@ is a @SeparableTarget@.
+--
+-- The parameter @internalformat@ is a @PixelInternalFormat@.
+--
+-- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Raw.Extension.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_ALPHA', 'Graphics.GL.Raw.Internal.Shared.GL_BLUE', 'Graphics.GL.Raw.Extension.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Raw.Extension.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Raw.Internal.Shared.GL_GREEN', 'Graphics.GL.Raw.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Raw.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Raw.Internal.Shared.GL_RED', 'Graphics.GL.Raw.Extension.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_RGB', 'Graphics.GL.Raw.Internal.Shared.GL_RGBA', 'Graphics.GL.Raw.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Raw.Extension.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
+--
+-- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_BITMAP', 'Graphics.GL.Raw.Internal.Shared.GL_BYTE', 'Graphics.GL.Raw.Internal.Shared.GL_FLOAT', 'Graphics.GL.Raw.Internal.Shared.GL_INT', 'Graphics.GL.Raw.Internal.Shared.GL_SHORT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
+--
+-- The length of @row@ should be @COMPSIZE(target,format,type,width)@.
+--
+-- The length of @column@ should be @COMPSIZE(target,format,type,height)@.
+
 
 glSeparableFilter2D :: MonadIO m => GLenum -> GLenum -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> Ptr () -> m ()
 glSeparableFilter2D = ffienumenumsizeisizeienumenumPtrVPtrVIOV glSeparableFilter2DFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/IndirectParameters.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/IndirectParameters.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/IndirectParameters.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/IndirectParameters.hs
@@ -19,9 +19,15 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/indirect_parameters.txt GL_ARB_indirect_parameters> extension is available.
+
 gl_ARB_indirect_parameters :: Bool
 gl_ARB_indirect_parameters = member "GL_ARB_indirect_parameters" extensions
+{-# NOINLINE gl_ARB_indirect_parameters #-}
 
+-- | Usage: @'glMultiDrawArraysIndirectCountARB' mode indirect drawcount maxdrawcount stride@
+
+
 glMultiDrawArraysIndirectCountARB :: MonadIO m => GLenum -> GLintptr -> GLintptr -> GLsizei -> GLsizei -> m ()
 glMultiDrawArraysIndirectCountARB = ffienumintptrintptrsizeisizeiIOV glMultiDrawArraysIndirectCountARBFunPtr
 
@@ -29,6 +35,9 @@
 glMultiDrawArraysIndirectCountARBFunPtr = unsafePerformIO (getProcAddress "glMultiDrawArraysIndirectCountARB")
 
 {-# NOINLINE glMultiDrawArraysIndirectCountARBFunPtr #-}
+
+-- | Usage: @'glMultiDrawElementsIndirectCountARB' mode type indirect drawcount maxdrawcount stride@
+
 
 glMultiDrawElementsIndirectCountARB :: MonadIO m => GLenum -> GLenum -> GLintptr -> GLintptr -> GLsizei -> GLsizei -> m ()
 glMultiDrawElementsIndirectCountARB = ffienumenumintptrintptrsizeisizeiIOV glMultiDrawElementsIndirectCountARBFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/InstancedArrays.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/InstancedArrays.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/InstancedArrays.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/InstancedArrays.hs
@@ -17,8 +17,16 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/instanced_arrays.txt GL_ARB_instanced_arrays> extension is available.
+
 gl_ARB_instanced_arrays :: Bool
 gl_ARB_instanced_arrays = member "GL_ARB_instanced_arrays" extensions
+{-# NOINLINE gl_ARB_instanced_arrays #-}
+
+-- | Usage: @'glVertexAttribDivisorARB' index divisor@
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glVertexAttribDivisor'.
+
 
 glVertexAttribDivisorARB :: MonadIO m => GLuint -> GLuint -> m ()
 glVertexAttribDivisorARB = ffiuintuintIOV glVertexAttribDivisorARBFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/InternalformatQuery.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/InternalformatQuery.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/InternalformatQuery.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/InternalformatQuery.hs
@@ -13,5 +13,8 @@
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/internalformat_query.txt GL_ARB_internalformat_query> extension is available.
+
 gl_ARB_internalformat_query :: Bool
 gl_ARB_internalformat_query = member "GL_ARB_internalformat_query" extensions
+{-# NOINLINE gl_ARB_internalformat_query #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/InternalformatQuery2.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/InternalformatQuery2.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/InternalformatQuery2.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/InternalformatQuery2.hs
@@ -127,7 +127,10 @@
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/internalformat_query2.txt GL_ARB_internalformat_query2> extension is available.
+
 gl_ARB_internalformat_query2 :: Bool
 gl_ARB_internalformat_query2 = member "GL_ARB_internalformat_query2" extensions
+{-# NOINLINE gl_ARB_internalformat_query2 #-}
 
 pattern GL_SRGB_DECODE_ARB = 0x8299
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/InvalidateSubdata.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/InvalidateSubdata.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/InvalidateSubdata.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/InvalidateSubdata.hs
@@ -17,5 +17,8 @@
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/invalidate_subdata.txt GL_ARB_invalidate_subdata> extension is available.
+
 gl_ARB_invalidate_subdata :: Bool
 gl_ARB_invalidate_subdata = member "GL_ARB_invalidate_subdata" extensions
+{-# NOINLINE gl_ARB_invalidate_subdata #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/MapBufferAlignment.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/MapBufferAlignment.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/MapBufferAlignment.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/MapBufferAlignment.hs
@@ -12,5 +12,8 @@
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/map_buffer_alignment.txt GL_ARB_map_buffer_alignment> extension is available.
+
 gl_ARB_map_buffer_alignment :: Bool
 gl_ARB_map_buffer_alignment = member "GL_ARB_map_buffer_alignment" extensions
+{-# NOINLINE gl_ARB_map_buffer_alignment #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/MapBufferRange.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/MapBufferRange.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/MapBufferRange.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/MapBufferRange.hs
@@ -19,5 +19,8 @@
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/map_buffer_range.txt GL_ARB_map_buffer_range> extension is available.
+
 gl_ARB_map_buffer_range :: Bool
 gl_ARB_map_buffer_range = member "GL_ARB_map_buffer_range" extensions
+{-# NOINLINE gl_ARB_map_buffer_range #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/MatrixPalette.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/MatrixPalette.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/MatrixPalette.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/MatrixPalette.hs
@@ -30,9 +30,15 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/matrix_palette.txt GL_ARB_matrix_palette> extension is available.
+
 gl_ARB_matrix_palette :: Bool
 gl_ARB_matrix_palette = member "GL_ARB_matrix_palette" extensions
+{-# NOINLINE gl_ARB_matrix_palette #-}
 
+-- | Usage: @'glCurrentPaletteMatrixARB' index@
+
+
 glCurrentPaletteMatrixARB :: MonadIO m => GLint -> m ()
 glCurrentPaletteMatrixARB = ffiintIOV glCurrentPaletteMatrixARBFunPtr
 
@@ -41,6 +47,13 @@
 
 {-# NOINLINE glCurrentPaletteMatrixARBFunPtr #-}
 
+-- | Usage: @'glMatrixIndexPointerARB' size type stride pointer@
+--
+-- The parameter @type@ is a @MatrixIndexPointerTypeARB@.
+--
+-- The length of @pointer@ should be @COMPSIZE(size,type,stride)@.
+
+
 glMatrixIndexPointerARB :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr () -> m ()
 glMatrixIndexPointerARB = ffiintenumsizeiPtrVIOV glMatrixIndexPointerARBFunPtr
 
@@ -49,6 +62,11 @@
 
 {-# NOINLINE glMatrixIndexPointerARBFunPtr #-}
 
+-- | Usage: @'glMatrixIndexubvARB' size indices@
+--
+-- The length of @indices@ should be @size@.
+
+
 glMatrixIndexubvARB :: MonadIO m => GLint -> Ptr GLubyte -> m ()
 glMatrixIndexubvARB = ffiintPtrubyteIOV glMatrixIndexubvARBFunPtr
 
@@ -57,6 +75,11 @@
 
 {-# NOINLINE glMatrixIndexubvARBFunPtr #-}
 
+-- | Usage: @'glMatrixIndexuivARB' size indices@
+--
+-- The length of @indices@ should be @size@.
+
+
 glMatrixIndexuivARB :: MonadIO m => GLint -> Ptr GLuint -> m ()
 glMatrixIndexuivARB = ffiintPtruintIOV glMatrixIndexuivARBFunPtr
 
@@ -64,6 +87,11 @@
 glMatrixIndexuivARBFunPtr = unsafePerformIO (getProcAddress "glMatrixIndexuivARB")
 
 {-# NOINLINE glMatrixIndexuivARBFunPtr #-}
+
+-- | Usage: @'glMatrixIndexusvARB' size indices@
+--
+-- The length of @indices@ should be @size@.
+
 
 glMatrixIndexusvARB :: MonadIO m => GLint -> Ptr GLushort -> m ()
 glMatrixIndexusvARB = ffiintPtrushortIOV glMatrixIndexusvARBFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/MultiBind.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/MultiBind.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/MultiBind.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/MultiBind.hs
@@ -17,5 +17,8 @@
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/multi_bind.txt GL_ARB_multi_bind> extension is available.
+
 gl_ARB_multi_bind :: Bool
 gl_ARB_multi_bind = member "GL_ARB_multi_bind" extensions
+{-# NOINLINE gl_ARB_multi_bind #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/MultiDrawIndirect.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/MultiDrawIndirect.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/MultiDrawIndirect.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/MultiDrawIndirect.hs
@@ -13,5 +13,8 @@
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/multi_draw_indirect.txt GL_ARB_multi_draw_indirect> extension is available.
+
 gl_ARB_multi_draw_indirect :: Bool
 gl_ARB_multi_draw_indirect = member "GL_ARB_multi_draw_indirect" extensions
+{-# NOINLINE gl_ARB_multi_draw_indirect #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/Multisample.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/Multisample.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/Multisample.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/Multisample.hs
@@ -26,8 +26,18 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/multisample.txt GL_ARB_multisample> extension is available.
+
 gl_ARB_multisample :: Bool
 gl_ARB_multisample = member "GL_ARB_multisample" extensions
+{-# NOINLINE gl_ARB_multisample #-}
+
+-- | Usage: @'glSampleCoverageARB' value invert@
+--
+-- The parameter @invert@ is a @Boolean@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FALSE', 'Graphics.GL.Raw.Internal.Shared.GL_TRUE'.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glSampleCoverage'.
+
 
 glSampleCoverageARB :: MonadIO m => GLfloat -> GLboolean -> m ()
 glSampleCoverageARB = ffifloatbooleanIOV glSampleCoverageARBFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/Multitexture.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/Multitexture.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/Multitexture.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/Multitexture.hs
@@ -85,9 +85,19 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/multitexture.txt GL_ARB_multitexture> extension is available.
+
 gl_ARB_multitexture :: Bool
 gl_ARB_multitexture = member "GL_ARB_multitexture" extensions
+{-# NOINLINE gl_ARB_multitexture #-}
 
+-- | Usage: @'glActiveTextureARB' texture@
+--
+-- The parameter @texture@ is a @TextureUnit@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glActiveTexture'.
+
+
 glActiveTextureARB :: MonadIO m => GLenum -> m ()
 glActiveTextureARB = ffienumIOV glActiveTextureARBFunPtr
 
@@ -96,6 +106,13 @@
 
 {-# NOINLINE glActiveTextureARBFunPtr #-}
 
+-- | Usage: @'glClientActiveTextureARB' texture@
+--
+-- The parameter @texture@ is a @TextureUnit@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glClientActiveTexture'.
+
+
 glClientActiveTextureARB :: MonadIO m => GLenum -> m ()
 glClientActiveTextureARB = ffienumIOV glClientActiveTextureARBFunPtr
 
@@ -104,6 +121,17 @@
 
 {-# NOINLINE glClientActiveTextureARBFunPtr #-}
 
+-- | Usage: @'glMultiTexCoord1dARB' target s@
+--
+-- The parameter @target@ is a @TextureUnit@.
+--
+-- The parameter @s@ is a @CoordD@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glMultiTexCoord1d'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glMultiTexCoord1dv'.
+
+
 glMultiTexCoord1dARB :: MonadIO m => GLenum -> GLdouble -> m ()
 glMultiTexCoord1dARB = ffienumdoubleIOV glMultiTexCoord1dARBFunPtr
 
@@ -112,6 +140,17 @@
 
 {-# NOINLINE glMultiTexCoord1dARBFunPtr #-}
 
+-- | Usage: @'glMultiTexCoord1dvARB' target v@
+--
+-- The parameter @target@ is a @TextureUnit@.
+--
+-- The parameter @v@ is a @CoordD@.
+--
+-- The length of @v@ should be @1@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glMultiTexCoord1dv'.
+
+
 glMultiTexCoord1dvARB :: MonadIO m => GLenum -> Ptr GLdouble -> m ()
 glMultiTexCoord1dvARB = ffienumPtrdoubleIOV glMultiTexCoord1dvARBFunPtr
 
@@ -120,6 +159,17 @@
 
 {-# NOINLINE glMultiTexCoord1dvARBFunPtr #-}
 
+-- | Usage: @'glMultiTexCoord1fARB' target s@
+--
+-- The parameter @target@ is a @TextureUnit@.
+--
+-- The parameter @s@ is a @CoordF@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glMultiTexCoord1f'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glMultiTexCoord1fv'.
+
+
 glMultiTexCoord1fARB :: MonadIO m => GLenum -> GLfloat -> m ()
 glMultiTexCoord1fARB = ffienumfloatIOV glMultiTexCoord1fARBFunPtr
 
@@ -128,6 +178,17 @@
 
 {-# NOINLINE glMultiTexCoord1fARBFunPtr #-}
 
+-- | Usage: @'glMultiTexCoord1fvARB' target v@
+--
+-- The parameter @target@ is a @TextureUnit@.
+--
+-- The parameter @v@ is a @CoordF@.
+--
+-- The length of @v@ should be @1@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glMultiTexCoord1fv'.
+
+
 glMultiTexCoord1fvARB :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
 glMultiTexCoord1fvARB = ffienumPtrfloatIOV glMultiTexCoord1fvARBFunPtr
 
@@ -136,6 +197,17 @@
 
 {-# NOINLINE glMultiTexCoord1fvARBFunPtr #-}
 
+-- | Usage: @'glMultiTexCoord1iARB' target s@
+--
+-- The parameter @target@ is a @TextureUnit@.
+--
+-- The parameter @s@ is a @CoordI@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glMultiTexCoord1i'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glMultiTexCoord1iv'.
+
+
 glMultiTexCoord1iARB :: MonadIO m => GLenum -> GLint -> m ()
 glMultiTexCoord1iARB = ffienumintIOV glMultiTexCoord1iARBFunPtr
 
@@ -144,6 +216,17 @@
 
 {-# NOINLINE glMultiTexCoord1iARBFunPtr #-}
 
+-- | Usage: @'glMultiTexCoord1ivARB' target v@
+--
+-- The parameter @target@ is a @TextureUnit@.
+--
+-- The parameter @v@ is a @CoordI@.
+--
+-- The length of @v@ should be @1@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glMultiTexCoord1iv'.
+
+
 glMultiTexCoord1ivARB :: MonadIO m => GLenum -> Ptr GLint -> m ()
 glMultiTexCoord1ivARB = ffienumPtrintIOV glMultiTexCoord1ivARBFunPtr
 
@@ -152,6 +235,17 @@
 
 {-# NOINLINE glMultiTexCoord1ivARBFunPtr #-}
 
+-- | Usage: @'glMultiTexCoord1sARB' target s@
+--
+-- The parameter @target@ is a @TextureUnit@.
+--
+-- The parameter @s@ is a @CoordS@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glMultiTexCoord1s'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glMultiTexCoord1sv'.
+
+
 glMultiTexCoord1sARB :: MonadIO m => GLenum -> GLshort -> m ()
 glMultiTexCoord1sARB = ffienumshortIOV glMultiTexCoord1sARBFunPtr
 
@@ -160,6 +254,17 @@
 
 {-# NOINLINE glMultiTexCoord1sARBFunPtr #-}
 
+-- | Usage: @'glMultiTexCoord1svARB' target v@
+--
+-- The parameter @target@ is a @TextureUnit@.
+--
+-- The parameter @v@ is a @CoordS@.
+--
+-- The length of @v@ should be @1@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glMultiTexCoord1sv'.
+
+
 glMultiTexCoord1svARB :: MonadIO m => GLenum -> Ptr GLshort -> m ()
 glMultiTexCoord1svARB = ffienumPtrshortIOV glMultiTexCoord1svARBFunPtr
 
@@ -168,6 +273,19 @@
 
 {-# NOINLINE glMultiTexCoord1svARBFunPtr #-}
 
+-- | Usage: @'glMultiTexCoord2dARB' target s t@
+--
+-- The parameter @target@ is a @TextureUnit@.
+--
+-- The parameter @s@ is a @CoordD@.
+--
+-- The parameter @t@ is a @CoordD@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glMultiTexCoord2d'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glMultiTexCoord2dv'.
+
+
 glMultiTexCoord2dARB :: MonadIO m => GLenum -> GLdouble -> GLdouble -> m ()
 glMultiTexCoord2dARB = ffienumdoubledoubleIOV glMultiTexCoord2dARBFunPtr
 
@@ -176,6 +294,17 @@
 
 {-# NOINLINE glMultiTexCoord2dARBFunPtr #-}
 
+-- | Usage: @'glMultiTexCoord2dvARB' target v@
+--
+-- The parameter @target@ is a @TextureUnit@.
+--
+-- The parameter @v@ is a @CoordD@.
+--
+-- The length of @v@ should be @2@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glMultiTexCoord2dv'.
+
+
 glMultiTexCoord2dvARB :: MonadIO m => GLenum -> Ptr GLdouble -> m ()
 glMultiTexCoord2dvARB = ffienumPtrdoubleIOV glMultiTexCoord2dvARBFunPtr
 
@@ -184,6 +313,19 @@
 
 {-# NOINLINE glMultiTexCoord2dvARBFunPtr #-}
 
+-- | Usage: @'glMultiTexCoord2fARB' target s t@
+--
+-- The parameter @target@ is a @TextureUnit@.
+--
+-- The parameter @s@ is a @CoordF@.
+--
+-- The parameter @t@ is a @CoordF@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glMultiTexCoord2f'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glMultiTexCoord2fv'.
+
+
 glMultiTexCoord2fARB :: MonadIO m => GLenum -> GLfloat -> GLfloat -> m ()
 glMultiTexCoord2fARB = ffienumfloatfloatIOV glMultiTexCoord2fARBFunPtr
 
@@ -192,6 +334,17 @@
 
 {-# NOINLINE glMultiTexCoord2fARBFunPtr #-}
 
+-- | Usage: @'glMultiTexCoord2fvARB' target v@
+--
+-- The parameter @target@ is a @TextureUnit@.
+--
+-- The parameter @v@ is a @CoordF@.
+--
+-- The length of @v@ should be @2@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glMultiTexCoord2fv'.
+
+
 glMultiTexCoord2fvARB :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
 glMultiTexCoord2fvARB = ffienumPtrfloatIOV glMultiTexCoord2fvARBFunPtr
 
@@ -200,6 +353,19 @@
 
 {-# NOINLINE glMultiTexCoord2fvARBFunPtr #-}
 
+-- | Usage: @'glMultiTexCoord2iARB' target s t@
+--
+-- The parameter @target@ is a @TextureUnit@.
+--
+-- The parameter @s@ is a @CoordI@.
+--
+-- The parameter @t@ is a @CoordI@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glMultiTexCoord2i'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glMultiTexCoord2iv'.
+
+
 glMultiTexCoord2iARB :: MonadIO m => GLenum -> GLint -> GLint -> m ()
 glMultiTexCoord2iARB = ffienumintintIOV glMultiTexCoord2iARBFunPtr
 
@@ -208,6 +374,17 @@
 
 {-# NOINLINE glMultiTexCoord2iARBFunPtr #-}
 
+-- | Usage: @'glMultiTexCoord2ivARB' target v@
+--
+-- The parameter @target@ is a @TextureUnit@.
+--
+-- The parameter @v@ is a @CoordI@.
+--
+-- The length of @v@ should be @2@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glMultiTexCoord2iv'.
+
+
 glMultiTexCoord2ivARB :: MonadIO m => GLenum -> Ptr GLint -> m ()
 glMultiTexCoord2ivARB = ffienumPtrintIOV glMultiTexCoord2ivARBFunPtr
 
@@ -216,6 +393,19 @@
 
 {-# NOINLINE glMultiTexCoord2ivARBFunPtr #-}
 
+-- | Usage: @'glMultiTexCoord2sARB' target s t@
+--
+-- The parameter @target@ is a @TextureUnit@.
+--
+-- The parameter @s@ is a @CoordS@.
+--
+-- The parameter @t@ is a @CoordS@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glMultiTexCoord2s'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glMultiTexCoord2sv'.
+
+
 glMultiTexCoord2sARB :: MonadIO m => GLenum -> GLshort -> GLshort -> m ()
 glMultiTexCoord2sARB = ffienumshortshortIOV glMultiTexCoord2sARBFunPtr
 
@@ -224,6 +414,17 @@
 
 {-# NOINLINE glMultiTexCoord2sARBFunPtr #-}
 
+-- | Usage: @'glMultiTexCoord2svARB' target v@
+--
+-- The parameter @target@ is a @TextureUnit@.
+--
+-- The parameter @v@ is a @CoordS@.
+--
+-- The length of @v@ should be @2@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glMultiTexCoord2sv'.
+
+
 glMultiTexCoord2svARB :: MonadIO m => GLenum -> Ptr GLshort -> m ()
 glMultiTexCoord2svARB = ffienumPtrshortIOV glMultiTexCoord2svARBFunPtr
 
@@ -232,6 +433,21 @@
 
 {-# NOINLINE glMultiTexCoord2svARBFunPtr #-}
 
+-- | Usage: @'glMultiTexCoord3dARB' target s t r@
+--
+-- The parameter @target@ is a @TextureUnit@.
+--
+-- The parameter @s@ is a @CoordD@.
+--
+-- The parameter @t@ is a @CoordD@.
+--
+-- The parameter @r@ is a @CoordD@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glMultiTexCoord3d'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glMultiTexCoord3dv'.
+
+
 glMultiTexCoord3dARB :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLdouble -> m ()
 glMultiTexCoord3dARB = ffienumdoubledoubledoubleIOV glMultiTexCoord3dARBFunPtr
 
@@ -240,6 +456,17 @@
 
 {-# NOINLINE glMultiTexCoord3dARBFunPtr #-}
 
+-- | Usage: @'glMultiTexCoord3dvARB' target v@
+--
+-- The parameter @target@ is a @TextureUnit@.
+--
+-- The parameter @v@ is a @CoordD@.
+--
+-- The length of @v@ should be @3@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glMultiTexCoord3dv'.
+
+
 glMultiTexCoord3dvARB :: MonadIO m => GLenum -> Ptr GLdouble -> m ()
 glMultiTexCoord3dvARB = ffienumPtrdoubleIOV glMultiTexCoord3dvARBFunPtr
 
@@ -248,6 +475,21 @@
 
 {-# NOINLINE glMultiTexCoord3dvARBFunPtr #-}
 
+-- | Usage: @'glMultiTexCoord3fARB' target s t r@
+--
+-- The parameter @target@ is a @TextureUnit@.
+--
+-- The parameter @s@ is a @CoordF@.
+--
+-- The parameter @t@ is a @CoordF@.
+--
+-- The parameter @r@ is a @CoordF@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glMultiTexCoord3f'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glMultiTexCoord3fv'.
+
+
 glMultiTexCoord3fARB :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLfloat -> m ()
 glMultiTexCoord3fARB = ffienumfloatfloatfloatIOV glMultiTexCoord3fARBFunPtr
 
@@ -256,6 +498,17 @@
 
 {-# NOINLINE glMultiTexCoord3fARBFunPtr #-}
 
+-- | Usage: @'glMultiTexCoord3fvARB' target v@
+--
+-- The parameter @target@ is a @TextureUnit@.
+--
+-- The parameter @v@ is a @CoordF@.
+--
+-- The length of @v@ should be @3@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glMultiTexCoord3fv'.
+
+
 glMultiTexCoord3fvARB :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
 glMultiTexCoord3fvARB = ffienumPtrfloatIOV glMultiTexCoord3fvARBFunPtr
 
@@ -264,6 +517,21 @@
 
 {-# NOINLINE glMultiTexCoord3fvARBFunPtr #-}
 
+-- | Usage: @'glMultiTexCoord3iARB' target s t r@
+--
+-- The parameter @target@ is a @TextureUnit@.
+--
+-- The parameter @s@ is a @CoordI@.
+--
+-- The parameter @t@ is a @CoordI@.
+--
+-- The parameter @r@ is a @CoordI@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glMultiTexCoord3i'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glMultiTexCoord3iv'.
+
+
 glMultiTexCoord3iARB :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> m ()
 glMultiTexCoord3iARB = ffienumintintintIOV glMultiTexCoord3iARBFunPtr
 
@@ -272,6 +540,17 @@
 
 {-# NOINLINE glMultiTexCoord3iARBFunPtr #-}
 
+-- | Usage: @'glMultiTexCoord3ivARB' target v@
+--
+-- The parameter @target@ is a @TextureUnit@.
+--
+-- The parameter @v@ is a @CoordI@.
+--
+-- The length of @v@ should be @3@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glMultiTexCoord3iv'.
+
+
 glMultiTexCoord3ivARB :: MonadIO m => GLenum -> Ptr GLint -> m ()
 glMultiTexCoord3ivARB = ffienumPtrintIOV glMultiTexCoord3ivARBFunPtr
 
@@ -280,6 +559,21 @@
 
 {-# NOINLINE glMultiTexCoord3ivARBFunPtr #-}
 
+-- | Usage: @'glMultiTexCoord3sARB' target s t r@
+--
+-- The parameter @target@ is a @TextureUnit@.
+--
+-- The parameter @s@ is a @CoordS@.
+--
+-- The parameter @t@ is a @CoordS@.
+--
+-- The parameter @r@ is a @CoordS@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glMultiTexCoord3s'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glMultiTexCoord3sv'.
+
+
 glMultiTexCoord3sARB :: MonadIO m => GLenum -> GLshort -> GLshort -> GLshort -> m ()
 glMultiTexCoord3sARB = ffienumshortshortshortIOV glMultiTexCoord3sARBFunPtr
 
@@ -288,6 +582,17 @@
 
 {-# NOINLINE glMultiTexCoord3sARBFunPtr #-}
 
+-- | Usage: @'glMultiTexCoord3svARB' target v@
+--
+-- The parameter @target@ is a @TextureUnit@.
+--
+-- The parameter @v@ is a @CoordS@.
+--
+-- The length of @v@ should be @3@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glMultiTexCoord3sv'.
+
+
 glMultiTexCoord3svARB :: MonadIO m => GLenum -> Ptr GLshort -> m ()
 glMultiTexCoord3svARB = ffienumPtrshortIOV glMultiTexCoord3svARBFunPtr
 
@@ -296,6 +601,23 @@
 
 {-# NOINLINE glMultiTexCoord3svARBFunPtr #-}
 
+-- | Usage: @'glMultiTexCoord4dARB' target s t r q@
+--
+-- The parameter @target@ is a @TextureUnit@.
+--
+-- The parameter @s@ is a @CoordD@.
+--
+-- The parameter @t@ is a @CoordD@.
+--
+-- The parameter @r@ is a @CoordD@.
+--
+-- The parameter @q@ is a @CoordD@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glMultiTexCoord4d'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glMultiTexCoord4dv'.
+
+
 glMultiTexCoord4dARB :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
 glMultiTexCoord4dARB = ffienumdoubledoubledoubledoubleIOV glMultiTexCoord4dARBFunPtr
 
@@ -304,6 +626,17 @@
 
 {-# NOINLINE glMultiTexCoord4dARBFunPtr #-}
 
+-- | Usage: @'glMultiTexCoord4dvARB' target v@
+--
+-- The parameter @target@ is a @TextureUnit@.
+--
+-- The parameter @v@ is a @CoordD@.
+--
+-- The length of @v@ should be @4@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glMultiTexCoord4dv'.
+
+
 glMultiTexCoord4dvARB :: MonadIO m => GLenum -> Ptr GLdouble -> m ()
 glMultiTexCoord4dvARB = ffienumPtrdoubleIOV glMultiTexCoord4dvARBFunPtr
 
@@ -312,6 +645,23 @@
 
 {-# NOINLINE glMultiTexCoord4dvARBFunPtr #-}
 
+-- | Usage: @'glMultiTexCoord4fARB' target s t r q@
+--
+-- The parameter @target@ is a @TextureUnit@.
+--
+-- The parameter @s@ is a @CoordF@.
+--
+-- The parameter @t@ is a @CoordF@.
+--
+-- The parameter @r@ is a @CoordF@.
+--
+-- The parameter @q@ is a @CoordF@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glMultiTexCoord4f'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glMultiTexCoord4fv'.
+
+
 glMultiTexCoord4fARB :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
 glMultiTexCoord4fARB = ffienumfloatfloatfloatfloatIOV glMultiTexCoord4fARBFunPtr
 
@@ -320,6 +670,17 @@
 
 {-# NOINLINE glMultiTexCoord4fARBFunPtr #-}
 
+-- | Usage: @'glMultiTexCoord4fvARB' target v@
+--
+-- The parameter @target@ is a @TextureUnit@.
+--
+-- The parameter @v@ is a @CoordF@.
+--
+-- The length of @v@ should be @4@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glMultiTexCoord4fv'.
+
+
 glMultiTexCoord4fvARB :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
 glMultiTexCoord4fvARB = ffienumPtrfloatIOV glMultiTexCoord4fvARBFunPtr
 
@@ -328,6 +689,23 @@
 
 {-# NOINLINE glMultiTexCoord4fvARBFunPtr #-}
 
+-- | Usage: @'glMultiTexCoord4iARB' target s t r q@
+--
+-- The parameter @target@ is a @TextureUnit@.
+--
+-- The parameter @s@ is a @CoordI@.
+--
+-- The parameter @t@ is a @CoordI@.
+--
+-- The parameter @r@ is a @CoordI@.
+--
+-- The parameter @q@ is a @CoordI@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glMultiTexCoord4i'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glMultiTexCoord4iv'.
+
+
 glMultiTexCoord4iARB :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> m ()
 glMultiTexCoord4iARB = ffienumintintintintIOV glMultiTexCoord4iARBFunPtr
 
@@ -336,6 +714,17 @@
 
 {-# NOINLINE glMultiTexCoord4iARBFunPtr #-}
 
+-- | Usage: @'glMultiTexCoord4ivARB' target v@
+--
+-- The parameter @target@ is a @TextureUnit@.
+--
+-- The parameter @v@ is a @CoordI@.
+--
+-- The length of @v@ should be @4@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glMultiTexCoord4iv'.
+
+
 glMultiTexCoord4ivARB :: MonadIO m => GLenum -> Ptr GLint -> m ()
 glMultiTexCoord4ivARB = ffienumPtrintIOV glMultiTexCoord4ivARBFunPtr
 
@@ -344,6 +733,23 @@
 
 {-# NOINLINE glMultiTexCoord4ivARBFunPtr #-}
 
+-- | Usage: @'glMultiTexCoord4sARB' target s t r q@
+--
+-- The parameter @target@ is a @TextureUnit@.
+--
+-- The parameter @s@ is a @CoordS@.
+--
+-- The parameter @t@ is a @CoordS@.
+--
+-- The parameter @r@ is a @CoordS@.
+--
+-- The parameter @q@ is a @CoordS@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glMultiTexCoord4s'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glMultiTexCoord4sv'.
+
+
 glMultiTexCoord4sARB :: MonadIO m => GLenum -> GLshort -> GLshort -> GLshort -> GLshort -> m ()
 glMultiTexCoord4sARB = ffienumshortshortshortshortIOV glMultiTexCoord4sARBFunPtr
 
@@ -351,6 +757,17 @@
 glMultiTexCoord4sARBFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord4sARB")
 
 {-# NOINLINE glMultiTexCoord4sARBFunPtr #-}
+
+-- | Usage: @'glMultiTexCoord4svARB' target v@
+--
+-- The parameter @target@ is a @TextureUnit@.
+--
+-- The parameter @v@ is a @CoordS@.
+--
+-- The length of @v@ should be @4@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glMultiTexCoord4sv'.
+
 
 glMultiTexCoord4svARB :: MonadIO m => GLenum -> Ptr GLshort -> m ()
 glMultiTexCoord4svARB = ffienumPtrshortIOV glMultiTexCoord4svARBFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/OcclusionQuery.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/OcclusionQuery.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/OcclusionQuery.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/OcclusionQuery.hs
@@ -28,9 +28,17 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/occlusion_query.txt GL_ARB_occlusion_query> extension is available.
+
 gl_ARB_occlusion_query :: Bool
 gl_ARB_occlusion_query = member "GL_ARB_occlusion_query" extensions
+{-# NOINLINE gl_ARB_occlusion_query #-}
 
+-- | Usage: @'glBeginQueryARB' target id@
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glBeginQuery'.
+
+
 glBeginQueryARB :: MonadIO m => GLenum -> GLuint -> m ()
 glBeginQueryARB = ffienumuintIOV glBeginQueryARBFunPtr
 
@@ -39,6 +47,13 @@
 
 {-# NOINLINE glBeginQueryARBFunPtr #-}
 
+-- | Usage: @'glDeleteQueriesARB' n ids@
+--
+-- The length of @ids@ should be @n@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glDeleteQueries'.
+
+
 glDeleteQueriesARB :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
 glDeleteQueriesARB = ffisizeiPtruintIOV glDeleteQueriesARBFunPtr
 
@@ -47,6 +62,11 @@
 
 {-# NOINLINE glDeleteQueriesARBFunPtr #-}
 
+-- | Usage: @'glEndQueryARB' target@
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glEndQuery'.
+
+
 glEndQueryARB :: MonadIO m => GLenum -> m ()
 glEndQueryARB = ffienumIOV glEndQueryARBFunPtr
 
@@ -55,6 +75,13 @@
 
 {-# NOINLINE glEndQueryARBFunPtr #-}
 
+-- | Usage: @'glGenQueriesARB' n ids@
+--
+-- The length of @ids@ should be @n@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glGenQueries'.
+
+
 glGenQueriesARB :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
 glGenQueriesARB = ffisizeiPtruintIOV glGenQueriesARBFunPtr
 
@@ -63,6 +90,13 @@
 
 {-# NOINLINE glGenQueriesARBFunPtr #-}
 
+-- | Usage: @'glGetQueryObjectivARB' id pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glGetQueryObjectiv'.
+
+
 glGetQueryObjectivARB :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
 glGetQueryObjectivARB = ffiuintenumPtrintIOV glGetQueryObjectivARBFunPtr
 
@@ -71,6 +105,13 @@
 
 {-# NOINLINE glGetQueryObjectivARBFunPtr #-}
 
+-- | Usage: @'glGetQueryObjectuivARB' id pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glGetQueryObjectuiv'.
+
+
 glGetQueryObjectuivARB :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()
 glGetQueryObjectuivARB = ffiuintenumPtruintIOV glGetQueryObjectuivARBFunPtr
 
@@ -79,6 +120,13 @@
 
 {-# NOINLINE glGetQueryObjectuivARBFunPtr #-}
 
+-- | Usage: @'glGetQueryivARB' target pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glGetQueryiv'.
+
+
 glGetQueryivARB :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
 glGetQueryivARB = ffienumenumPtrintIOV glGetQueryivARBFunPtr
 
@@ -86,6 +134,11 @@
 glGetQueryivARBFunPtr = unsafePerformIO (getProcAddress "glGetQueryivARB")
 
 {-# NOINLINE glGetQueryivARBFunPtr #-}
+
+-- | Usage: @'glIsQueryARB' id@
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glIsQuery'.
+
 
 glIsQueryARB :: MonadIO m => GLuint -> m GLboolean
 glIsQueryARB = ffiuintIOboolean glIsQueryARBFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/OcclusionQuery2.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/OcclusionQuery2.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/OcclusionQuery2.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/OcclusionQuery2.hs
@@ -12,5 +12,8 @@
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/occlusion_query2.txt GL_ARB_occlusion_query2> extension is available.
+
 gl_ARB_occlusion_query2 :: Bool
 gl_ARB_occlusion_query2 = member "GL_ARB_occlusion_query2" extensions
+{-# NOINLINE gl_ARB_occlusion_query2 #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/PipelineStatisticsQuery.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/PipelineStatisticsQuery.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/PipelineStatisticsQuery.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/PipelineStatisticsQuery.hs
@@ -22,8 +22,11 @@
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/pipeline_statistics_query.txt GL_ARB_pipeline_statistics_query> extension is available.
+
 gl_ARB_pipeline_statistics_query :: Bool
 gl_ARB_pipeline_statistics_query = member "GL_ARB_pipeline_statistics_query" extensions
+{-# NOINLINE gl_ARB_pipeline_statistics_query #-}
 
 pattern GL_CLIPPING_INPUT_PRIMITIVES_ARB = 0x82F6
 
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/PixelBufferObject.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/PixelBufferObject.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/PixelBufferObject.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/PixelBufferObject.hs
@@ -14,8 +14,11 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/pixel_buffer_object.txt GL_ARB_pixel_buffer_object> extension is available.
+
 gl_ARB_pixel_buffer_object :: Bool
 gl_ARB_pixel_buffer_object = member "GL_ARB_pixel_buffer_object" extensions
+{-# NOINLINE gl_ARB_pixel_buffer_object #-}
 
 pattern GL_PIXEL_PACK_BUFFER_ARB = 0x88EB
 
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/PointParameters.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/PointParameters.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/PointParameters.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/PointParameters.hs
@@ -21,9 +21,21 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/point_parameters.txt GL_ARB_point_parameters> extension is available.
+
 gl_ARB_point_parameters :: Bool
 gl_ARB_point_parameters = member "GL_ARB_point_parameters" extensions
+{-# NOINLINE gl_ARB_point_parameters #-}
 
+-- | Usage: @'glPointParameterfARB' pname param@
+--
+-- The parameter @pname@ is a @PointParameterNameARB@.
+--
+-- The parameter @param@ is a @CheckedFloat32@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glPointParameterf'.
+
+
 glPointParameterfARB :: MonadIO m => GLenum -> GLfloat -> m ()
 glPointParameterfARB = ffienumfloatIOV glPointParameterfARBFunPtr
 
@@ -31,6 +43,17 @@
 glPointParameterfARBFunPtr = unsafePerformIO (getProcAddress "glPointParameterfARB")
 
 {-# NOINLINE glPointParameterfARBFunPtr #-}
+
+-- | Usage: @'glPointParameterfvARB' pname params@
+--
+-- The parameter @pname@ is a @PointParameterNameARB@.
+--
+-- The parameter @params@ is a @CheckedFloat32@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glPointParameterfv'.
+
 
 glPointParameterfvARB :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
 glPointParameterfvARB = ffienumPtrfloatIOV glPointParameterfvARBFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/PointSprite.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/PointSprite.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/PointSprite.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/PointSprite.hs
@@ -12,8 +12,11 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/point_sprite.txt GL_ARB_point_sprite> extension is available.
+
 gl_ARB_point_sprite :: Bool
 gl_ARB_point_sprite = member "GL_ARB_point_sprite" extensions
+{-# NOINLINE gl_ARB_point_sprite #-}
 
 pattern GL_COORD_REPLACE_ARB = 0x8862
 
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ProgramInterfaceQuery.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ProgramInterfaceQuery.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ProgramInterfaceQuery.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ProgramInterfaceQuery.hs
@@ -67,5 +67,8 @@
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/program_interface_query.txt GL_ARB_program_interface_query> extension is available.
+
 gl_ARB_program_interface_query :: Bool
 gl_ARB_program_interface_query = member "GL_ARB_program_interface_query" extensions
+{-# NOINLINE gl_ARB_program_interface_query #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ProvokingVertex.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ProvokingVertex.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ProvokingVertex.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ProvokingVertex.hs
@@ -16,5 +16,8 @@
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/provoking_vertex.txt GL_ARB_provoking_vertex> extension is available.
+
 gl_ARB_provoking_vertex :: Bool
 gl_ARB_provoking_vertex = member "GL_ARB_provoking_vertex" extensions
+{-# NOINLINE gl_ARB_provoking_vertex #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/QueryBufferObject.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/QueryBufferObject.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/QueryBufferObject.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/QueryBufferObject.hs
@@ -15,5 +15,8 @@
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/query_buffer_object.txt GL_ARB_query_buffer_object> extension is available.
+
 gl_ARB_query_buffer_object :: Bool
 gl_ARB_query_buffer_object = member "GL_ARB_query_buffer_object" extensions
+{-# NOINLINE gl_ARB_query_buffer_object #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/RobustBufferAccessBehavior.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/RobustBufferAccessBehavior.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/RobustBufferAccessBehavior.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/RobustBufferAccessBehavior.hs
@@ -8,5 +8,8 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/robust_buffer_access_behavior.txt GL_ARB_robust_buffer_access_behavior> extension is available.
+
 gl_ARB_robust_buffer_access_behavior :: Bool
 gl_ARB_robust_buffer_access_behavior = member "GL_ARB_robust_buffer_access_behavior" extensions
+{-# NOINLINE gl_ARB_robust_buffer_access_behavior #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/Robustness.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/Robustness.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/Robustness.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/Robustness.hs
@@ -44,9 +44,15 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/robustness.txt GL_ARB_robustness> extension is available.
+
 gl_ARB_robustness :: Bool
 gl_ARB_robustness = member "GL_ARB_robustness" extensions
+{-# NOINLINE gl_ARB_robustness #-}
 
+-- | Usage: @'glGetGraphicsResetStatusARB'@
+
+
 glGetGraphicsResetStatusARB :: MonadIO m => m GLenum
 glGetGraphicsResetStatusARB = ffiIOenum glGetGraphicsResetStatusARBFunPtr
 
@@ -55,6 +61,11 @@
 
 {-# NOINLINE glGetGraphicsResetStatusARBFunPtr #-}
 
+-- | Usage: @'glGetnColorTableARB' target format type bufSize table@
+--
+-- The length of @table@ should be @bufSize@.
+
+
 glGetnColorTableARB :: MonadIO m => GLenum -> GLenum -> GLenum -> GLsizei -> Ptr () -> m ()
 glGetnColorTableARB = ffienumenumenumsizeiPtrVIOV glGetnColorTableARBFunPtr
 
@@ -63,6 +74,11 @@
 
 {-# NOINLINE glGetnColorTableARBFunPtr #-}
 
+-- | Usage: @'glGetnCompressedTexImageARB' target lod bufSize img@
+--
+-- The length of @img@ should be @bufSize@.
+
+
 glGetnCompressedTexImageARB :: MonadIO m => GLenum -> GLint -> GLsizei -> Ptr () -> m ()
 glGetnCompressedTexImageARB = ffienumintsizeiPtrVIOV glGetnCompressedTexImageARBFunPtr
 
@@ -71,6 +87,11 @@
 
 {-# NOINLINE glGetnCompressedTexImageARBFunPtr #-}
 
+-- | Usage: @'glGetnConvolutionFilterARB' target format type bufSize image@
+--
+-- The length of @image@ should be @bufSize@.
+
+
 glGetnConvolutionFilterARB :: MonadIO m => GLenum -> GLenum -> GLenum -> GLsizei -> Ptr () -> m ()
 glGetnConvolutionFilterARB = ffienumenumenumsizeiPtrVIOV glGetnConvolutionFilterARBFunPtr
 
@@ -79,6 +100,13 @@
 
 {-# NOINLINE glGetnConvolutionFilterARBFunPtr #-}
 
+-- | Usage: @'glGetnHistogramARB' target reset format type bufSize values@
+--
+-- The parameter @reset@ is a @Boolean@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FALSE', 'Graphics.GL.Raw.Internal.Shared.GL_TRUE'.
+--
+-- The length of @values@ should be @bufSize@.
+
+
 glGetnHistogramARB :: MonadIO m => GLenum -> GLboolean -> GLenum -> GLenum -> GLsizei -> Ptr () -> m ()
 glGetnHistogramARB = ffienumbooleanenumenumsizeiPtrVIOV glGetnHistogramARBFunPtr
 
@@ -87,6 +115,11 @@
 
 {-# NOINLINE glGetnHistogramARBFunPtr #-}
 
+-- | Usage: @'glGetnMapdvARB' target query bufSize v@
+--
+-- The length of @v@ should be @bufSize@.
+
+
 glGetnMapdvARB :: MonadIO m => GLenum -> GLenum -> GLsizei -> Ptr GLdouble -> m ()
 glGetnMapdvARB = ffienumenumsizeiPtrdoubleIOV glGetnMapdvARBFunPtr
 
@@ -95,6 +128,11 @@
 
 {-# NOINLINE glGetnMapdvARBFunPtr #-}
 
+-- | Usage: @'glGetnMapfvARB' target query bufSize v@
+--
+-- The length of @v@ should be @bufSize@.
+
+
 glGetnMapfvARB :: MonadIO m => GLenum -> GLenum -> GLsizei -> Ptr GLfloat -> m ()
 glGetnMapfvARB = ffienumenumsizeiPtrfloatIOV glGetnMapfvARBFunPtr
 
@@ -103,6 +141,11 @@
 
 {-# NOINLINE glGetnMapfvARBFunPtr #-}
 
+-- | Usage: @'glGetnMapivARB' target query bufSize v@
+--
+-- The length of @v@ should be @bufSize@.
+
+
 glGetnMapivARB :: MonadIO m => GLenum -> GLenum -> GLsizei -> Ptr GLint -> m ()
 glGetnMapivARB = ffienumenumsizeiPtrintIOV glGetnMapivARBFunPtr
 
@@ -111,6 +154,13 @@
 
 {-# NOINLINE glGetnMapivARBFunPtr #-}
 
+-- | Usage: @'glGetnMinmaxARB' target reset format type bufSize values@
+--
+-- The parameter @reset@ is a @Boolean@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FALSE', 'Graphics.GL.Raw.Internal.Shared.GL_TRUE'.
+--
+-- The length of @values@ should be @bufSize@.
+
+
 glGetnMinmaxARB :: MonadIO m => GLenum -> GLboolean -> GLenum -> GLenum -> GLsizei -> Ptr () -> m ()
 glGetnMinmaxARB = ffienumbooleanenumenumsizeiPtrVIOV glGetnMinmaxARBFunPtr
 
@@ -119,6 +169,11 @@
 
 {-# NOINLINE glGetnMinmaxARBFunPtr #-}
 
+-- | Usage: @'glGetnPixelMapfvARB' map bufSize values@
+--
+-- The length of @values@ should be @bufSize@.
+
+
 glGetnPixelMapfvARB :: MonadIO m => GLenum -> GLsizei -> Ptr GLfloat -> m ()
 glGetnPixelMapfvARB = ffienumsizeiPtrfloatIOV glGetnPixelMapfvARBFunPtr
 
@@ -127,6 +182,11 @@
 
 {-# NOINLINE glGetnPixelMapfvARBFunPtr #-}
 
+-- | Usage: @'glGetnPixelMapuivARB' map bufSize values@
+--
+-- The length of @values@ should be @bufSize@.
+
+
 glGetnPixelMapuivARB :: MonadIO m => GLenum -> GLsizei -> Ptr GLuint -> m ()
 glGetnPixelMapuivARB = ffienumsizeiPtruintIOV glGetnPixelMapuivARBFunPtr
 
@@ -135,6 +195,11 @@
 
 {-# NOINLINE glGetnPixelMapuivARBFunPtr #-}
 
+-- | Usage: @'glGetnPixelMapusvARB' map bufSize values@
+--
+-- The length of @values@ should be @bufSize@.
+
+
 glGetnPixelMapusvARB :: MonadIO m => GLenum -> GLsizei -> Ptr GLushort -> m ()
 glGetnPixelMapusvARB = ffienumsizeiPtrushortIOV glGetnPixelMapusvARBFunPtr
 
@@ -143,6 +208,11 @@
 
 {-# NOINLINE glGetnPixelMapusvARBFunPtr #-}
 
+-- | Usage: @'glGetnPolygonStippleARB' bufSize pattern@
+--
+-- The length of @pattern@ should be @bufSize@.
+
+
 glGetnPolygonStippleARB :: MonadIO m => GLsizei -> Ptr GLubyte -> m ()
 glGetnPolygonStippleARB = ffisizeiPtrubyteIOV glGetnPolygonStippleARBFunPtr
 
@@ -151,6 +221,15 @@
 
 {-# NOINLINE glGetnPolygonStippleARBFunPtr #-}
 
+-- | Usage: @'glGetnSeparableFilterARB' target format type rowBufSize row columnBufSize column span@
+--
+-- The length of @row@ should be @rowBufSize@.
+--
+-- The length of @column@ should be @columnBufSize@.
+--
+-- The length of @span@ should be @0@.
+
+
 glGetnSeparableFilterARB :: MonadIO m => GLenum -> GLenum -> GLenum -> GLsizei -> Ptr () -> GLsizei -> Ptr () -> Ptr () -> m ()
 glGetnSeparableFilterARB = ffienumenumenumsizeiPtrVsizeiPtrVPtrVIOV glGetnSeparableFilterARBFunPtr
 
@@ -159,6 +238,11 @@
 
 {-# NOINLINE glGetnSeparableFilterARBFunPtr #-}
 
+-- | Usage: @'glGetnTexImageARB' target level format type bufSize img@
+--
+-- The length of @img@ should be @bufSize@.
+
+
 glGetnTexImageARB :: MonadIO m => GLenum -> GLint -> GLenum -> GLenum -> GLsizei -> Ptr () -> m ()
 glGetnTexImageARB = ffienumintenumenumsizeiPtrVIOV glGetnTexImageARBFunPtr
 
@@ -167,6 +251,11 @@
 
 {-# NOINLINE glGetnTexImageARBFunPtr #-}
 
+-- | Usage: @'glGetnUniformdvARB' program location bufSize params@
+--
+-- The length of @params@ should be @bufSize@.
+
+
 glGetnUniformdvARB :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLdouble -> m ()
 glGetnUniformdvARB = ffiuintintsizeiPtrdoubleIOV glGetnUniformdvARBFunPtr
 
@@ -175,6 +264,11 @@
 
 {-# NOINLINE glGetnUniformdvARBFunPtr #-}
 
+-- | Usage: @'glGetnUniformfvARB' program location bufSize params@
+--
+-- The length of @params@ should be @bufSize@.
+
+
 glGetnUniformfvARB :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()
 glGetnUniformfvARB = ffiuintintsizeiPtrfloatIOV glGetnUniformfvARBFunPtr
 
@@ -183,6 +277,11 @@
 
 {-# NOINLINE glGetnUniformfvARBFunPtr #-}
 
+-- | Usage: @'glGetnUniformivARB' program location bufSize params@
+--
+-- The length of @params@ should be @bufSize@.
+
+
 glGetnUniformivARB :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()
 glGetnUniformivARB = ffiuintintsizeiPtrintIOV glGetnUniformivARBFunPtr
 
@@ -191,6 +290,11 @@
 
 {-# NOINLINE glGetnUniformivARBFunPtr #-}
 
+-- | Usage: @'glGetnUniformuivARB' program location bufSize params@
+--
+-- The length of @params@ should be @bufSize@.
+
+
 glGetnUniformuivARB :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()
 glGetnUniformuivARB = ffiuintintsizeiPtruintIOV glGetnUniformuivARBFunPtr
 
@@ -198,6 +302,13 @@
 glGetnUniformuivARBFunPtr = unsafePerformIO (getProcAddress "glGetnUniformuivARB")
 
 {-# NOINLINE glGetnUniformuivARBFunPtr #-}
+
+-- | Usage: @'glReadnPixelsARB' x y width height format type bufSize data@
+--
+-- The length of @data@ should be @bufSize@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glReadnPixels'.
+
 
 glReadnPixelsARB :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> GLsizei -> Ptr () -> m ()
 glReadnPixelsARB = ffiintintsizeisizeienumenumsizeiPtrVIOV glReadnPixelsARBFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/RobustnessIsolation.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/RobustnessIsolation.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/RobustnessIsolation.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/RobustnessIsolation.hs
@@ -8,5 +8,8 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/robustness_isolation.txt GL_ARB_robustness_isolation> extension is available.
+
 gl_ARB_robustness_isolation :: Bool
 gl_ARB_robustness_isolation = member "GL_ARB_robustness_isolation" extensions
+{-# NOINLINE gl_ARB_robustness_isolation #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/SampleShading.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/SampleShading.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/SampleShading.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/SampleShading.hs
@@ -18,8 +18,18 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/sample_shading.txt GL_ARB_sample_shading> extension is available.
+
 gl_ARB_sample_shading :: Bool
 gl_ARB_sample_shading = member "GL_ARB_sample_shading" extensions
+{-# NOINLINE gl_ARB_sample_shading #-}
+
+-- | Usage: @'glMinSampleShadingARB' value@
+--
+-- The parameter @value@ is a @ColorF@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Profile.Core40.glMinSampleShading'.
+
 
 glMinSampleShadingARB :: MonadIO m => GLfloat -> m ()
 glMinSampleShadingARB = ffifloatIOV glMinSampleShadingARBFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/SamplerObjects.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/SamplerObjects.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/SamplerObjects.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/SamplerObjects.hs
@@ -26,5 +26,8 @@
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/sampler_objects.txt GL_ARB_sampler_objects> extension is available.
+
 gl_ARB_sampler_objects :: Bool
 gl_ARB_sampler_objects = member "GL_ARB_sampler_objects" extensions
+{-# NOINLINE gl_ARB_sampler_objects #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/SeamlessCubeMap.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/SeamlessCubeMap.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/SeamlessCubeMap.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/SeamlessCubeMap.hs
@@ -12,5 +12,8 @@
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/seamless_cube_map.txt GL_ARB_seamless_cube_map> extension is available.
+
 gl_ARB_seamless_cube_map :: Bool
 gl_ARB_seamless_cube_map = member "GL_ARB_seamless_cube_map" extensions
+{-# NOINLINE gl_ARB_seamless_cube_map #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/SeamlessCubemapPerTexture.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/SeamlessCubemapPerTexture.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/SeamlessCubemapPerTexture.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/SeamlessCubemapPerTexture.hs
@@ -12,5 +12,8 @@
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/seamless_cubemap_per_texture.txt GL_ARB_seamless_cubemap_per_texture> extension is available.
+
 gl_ARB_seamless_cubemap_per_texture :: Bool
 gl_ARB_seamless_cubemap_per_texture = member "GL_ARB_seamless_cubemap_per_texture" extensions
+{-# NOINLINE gl_ARB_seamless_cubemap_per_texture #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/SeparateShaderObjects.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/SeparateShaderObjects.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/SeparateShaderObjects.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/SeparateShaderObjects.hs
@@ -80,5 +80,8 @@
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/separate_shader_objects.txt GL_ARB_separate_shader_objects> extension is available.
+
 gl_ARB_separate_shader_objects :: Bool
 gl_ARB_separate_shader_objects = member "GL_ARB_separate_shader_objects" extensions
+{-# NOINLINE gl_ARB_separate_shader_objects #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ShaderAtomicCounters.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ShaderAtomicCounters.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ShaderAtomicCounters.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ShaderAtomicCounters.hs
@@ -41,5 +41,8 @@
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/shader_atomic_counters.txt GL_ARB_shader_atomic_counters> extension is available.
+
 gl_ARB_shader_atomic_counters :: Bool
 gl_ARB_shader_atomic_counters = member "GL_ARB_shader_atomic_counters" extensions
+{-# NOINLINE gl_ARB_shader_atomic_counters #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ShaderBitEncoding.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ShaderBitEncoding.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ShaderBitEncoding.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ShaderBitEncoding.hs
@@ -8,5 +8,8 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/shader_bit_encoding.txt GL_ARB_shader_bit_encoding> extension is available.
+
 gl_ARB_shader_bit_encoding :: Bool
 gl_ARB_shader_bit_encoding = member "GL_ARB_shader_bit_encoding" extensions
+{-# NOINLINE gl_ARB_shader_bit_encoding #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ShaderDrawParameters.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ShaderDrawParameters.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ShaderDrawParameters.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ShaderDrawParameters.hs
@@ -8,5 +8,8 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/shader_draw_parameters.txt GL_ARB_shader_draw_parameters> extension is available.
+
 gl_ARB_shader_draw_parameters :: Bool
 gl_ARB_shader_draw_parameters = member "GL_ARB_shader_draw_parameters" extensions
+{-# NOINLINE gl_ARB_shader_draw_parameters #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ShaderGroupVote.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ShaderGroupVote.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ShaderGroupVote.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ShaderGroupVote.hs
@@ -8,5 +8,8 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/shader_group_vote.txt GL_ARB_shader_group_vote> extension is available.
+
 gl_ARB_shader_group_vote :: Bool
 gl_ARB_shader_group_vote = member "GL_ARB_shader_group_vote" extensions
+{-# NOINLINE gl_ARB_shader_group_vote #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ShaderImageLoadStore.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ShaderImageLoadStore.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ShaderImageLoadStore.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ShaderImageLoadStore.hs
@@ -77,5 +77,8 @@
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/shader_image_load_store.txt GL_ARB_shader_image_load_store> extension is available.
+
 gl_ARB_shader_image_load_store :: Bool
 gl_ARB_shader_image_load_store = member "GL_ARB_shader_image_load_store" extensions
+{-# NOINLINE gl_ARB_shader_image_load_store #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ShaderImageSize.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ShaderImageSize.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ShaderImageSize.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ShaderImageSize.hs
@@ -8,5 +8,8 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/shader_image_size.txt GL_ARB_shader_image_size> extension is available.
+
 gl_ARB_shader_image_size :: Bool
 gl_ARB_shader_image_size = member "GL_ARB_shader_image_size" extensions
+{-# NOINLINE gl_ARB_shader_image_size #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ShaderObjects.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ShaderObjects.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ShaderObjects.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ShaderObjects.hs
@@ -89,9 +89,21 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/shader_objects.txt GL_ARB_shader_objects> extension is available.
+
 gl_ARB_shader_objects :: Bool
 gl_ARB_shader_objects = member "GL_ARB_shader_objects" extensions
+{-# NOINLINE gl_ARB_shader_objects #-}
 
+-- | Usage: @'glAttachObjectARB' containerObj obj@
+--
+-- The parameter @containerObj@ is a @handleARB@.
+--
+-- The parameter @obj@ is a @handleARB@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glAttachShader'.
+
+
 glAttachObjectARB :: MonadIO m => GLhandleARB -> GLhandleARB -> m ()
 glAttachObjectARB = ffihandleARBhandleARBIOV glAttachObjectARBFunPtr
 
@@ -100,6 +112,13 @@
 
 {-# NOINLINE glAttachObjectARBFunPtr #-}
 
+-- | Usage: @'glCompileShaderARB' shaderObj@
+--
+-- The parameter @shaderObj@ is a @handleARB@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glCompileShader'.
+
+
 glCompileShaderARB :: MonadIO m => GLhandleARB -> m ()
 glCompileShaderARB = ffihandleARBIOV glCompileShaderARBFunPtr
 
@@ -108,6 +127,11 @@
 
 {-# NOINLINE glCompileShaderARBFunPtr #-}
 
+-- | Usage: @'glCreateProgramObjectARB'@
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glCreateProgram'.
+
+
 glCreateProgramObjectARB :: MonadIO m => m GLhandleARB
 glCreateProgramObjectARB = ffiIOhandleARB glCreateProgramObjectARBFunPtr
 
@@ -116,6 +140,11 @@
 
 {-# NOINLINE glCreateProgramObjectARBFunPtr #-}
 
+-- | Usage: @'glCreateShaderObjectARB' shaderType@
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glCreateShader'.
+
+
 glCreateShaderObjectARB :: MonadIO m => GLenum -> m GLhandleARB
 glCreateShaderObjectARB = ffienumIOhandleARB glCreateShaderObjectARBFunPtr
 
@@ -124,6 +153,11 @@
 
 {-# NOINLINE glCreateShaderObjectARBFunPtr #-}
 
+-- | Usage: @'glDeleteObjectARB' obj@
+--
+-- The parameter @obj@ is a @handleARB@.
+
+
 glDeleteObjectARB :: MonadIO m => GLhandleARB -> m ()
 glDeleteObjectARB = ffihandleARBIOV glDeleteObjectARBFunPtr
 
@@ -132,6 +166,15 @@
 
 {-# NOINLINE glDeleteObjectARBFunPtr #-}
 
+-- | Usage: @'glDetachObjectARB' containerObj attachedObj@
+--
+-- The parameter @containerObj@ is a @handleARB@.
+--
+-- The parameter @attachedObj@ is a @handleARB@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glDetachShader'.
+
+
 glDetachObjectARB :: MonadIO m => GLhandleARB -> GLhandleARB -> m ()
 glDetachObjectARB = ffihandleARBhandleARBIOV glDetachObjectARBFunPtr
 
@@ -140,6 +183,21 @@
 
 {-# NOINLINE glDetachObjectARBFunPtr #-}
 
+-- | Usage: @'glGetActiveUniformARB' programObj index maxLength length size type name@
+--
+-- The parameter @programObj@ is a @handleARB@.
+--
+-- The length of @length@ should be @1@.
+--
+-- The length of @size@ should be @1@.
+--
+-- The length of @type@ should be @1@.
+--
+-- The length of @name@ should be @maxLength@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glGetActiveUniform'.
+
+
 glGetActiveUniformARB :: MonadIO m => GLhandleARB -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLint -> Ptr GLenum -> Ptr GLcharARB -> m ()
 glGetActiveUniformARB = ffihandleARBuintsizeiPtrsizeiPtrintPtrenumPtrcharARBIOV glGetActiveUniformARBFunPtr
 
@@ -148,6 +206,17 @@
 
 {-# NOINLINE glGetActiveUniformARBFunPtr #-}
 
+-- | Usage: @'glGetAttachedObjectsARB' containerObj maxCount count obj@
+--
+-- The parameter @containerObj@ is a @handleARB@.
+--
+-- The parameter @obj@ is a @handleARB@.
+--
+-- The length of @count@ should be @1@.
+--
+-- The length of @obj@ should be @maxCount@.
+
+
 glGetAttachedObjectsARB :: MonadIO m => GLhandleARB -> GLsizei -> Ptr GLsizei -> Ptr GLhandleARB -> m ()
 glGetAttachedObjectsARB = ffihandleARBsizeiPtrsizeiPtrhandleARBIOV glGetAttachedObjectsARBFunPtr
 
@@ -156,6 +225,9 @@
 
 {-# NOINLINE glGetAttachedObjectsARBFunPtr #-}
 
+-- | Usage: @'glGetHandleARB' pname@
+
+
 glGetHandleARB :: MonadIO m => GLenum -> m GLhandleARB
 glGetHandleARB = ffienumIOhandleARB glGetHandleARBFunPtr
 
@@ -164,6 +236,15 @@
 
 {-# NOINLINE glGetHandleARBFunPtr #-}
 
+-- | Usage: @'glGetInfoLogARB' obj maxLength length infoLog@
+--
+-- The parameter @obj@ is a @handleARB@.
+--
+-- The length of @length@ should be @1@.
+--
+-- The length of @infoLog@ should be @maxLength@.
+
+
 glGetInfoLogARB :: MonadIO m => GLhandleARB -> GLsizei -> Ptr GLsizei -> Ptr GLcharARB -> m ()
 glGetInfoLogARB = ffihandleARBsizeiPtrsizeiPtrcharARBIOV glGetInfoLogARBFunPtr
 
@@ -172,6 +253,13 @@
 
 {-# NOINLINE glGetInfoLogARBFunPtr #-}
 
+-- | Usage: @'glGetObjectParameterfvARB' obj pname params@
+--
+-- The parameter @obj@ is a @handleARB@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
 glGetObjectParameterfvARB :: MonadIO m => GLhandleARB -> GLenum -> Ptr GLfloat -> m ()
 glGetObjectParameterfvARB = ffihandleARBenumPtrfloatIOV glGetObjectParameterfvARBFunPtr
 
@@ -180,6 +268,13 @@
 
 {-# NOINLINE glGetObjectParameterfvARBFunPtr #-}
 
+-- | Usage: @'glGetObjectParameterivARB' obj pname params@
+--
+-- The parameter @obj@ is a @handleARB@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
 glGetObjectParameterivARB :: MonadIO m => GLhandleARB -> GLenum -> Ptr GLint -> m ()
 glGetObjectParameterivARB = ffihandleARBenumPtrintIOV glGetObjectParameterivARBFunPtr
 
@@ -188,6 +283,17 @@
 
 {-# NOINLINE glGetObjectParameterivARBFunPtr #-}
 
+-- | Usage: @'glGetShaderSourceARB' obj maxLength length source@
+--
+-- The parameter @obj@ is a @handleARB@.
+--
+-- The length of @length@ should be @1@.
+--
+-- The length of @source@ should be @maxLength@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glGetShaderSource'.
+
+
 glGetShaderSourceARB :: MonadIO m => GLhandleARB -> GLsizei -> Ptr GLsizei -> Ptr GLcharARB -> m ()
 glGetShaderSourceARB = ffihandleARBsizeiPtrsizeiPtrcharARBIOV glGetShaderSourceARBFunPtr
 
@@ -196,6 +302,13 @@
 
 {-# NOINLINE glGetShaderSourceARBFunPtr #-}
 
+-- | Usage: @'glGetUniformLocationARB' programObj name@
+--
+-- The parameter @programObj@ is a @handleARB@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glGetUniformLocation'.
+
+
 glGetUniformLocationARB :: MonadIO m => GLhandleARB -> Ptr GLcharARB -> m GLint
 glGetUniformLocationARB = ffihandleARBPtrcharARBIOint glGetUniformLocationARBFunPtr
 
@@ -204,6 +317,15 @@
 
 {-# NOINLINE glGetUniformLocationARBFunPtr #-}
 
+-- | Usage: @'glGetUniformfvARB' programObj location params@
+--
+-- The parameter @programObj@ is a @handleARB@.
+--
+-- The length of @params@ should be @COMPSIZE(programObj,location)@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glGetUniformfv'.
+
+
 glGetUniformfvARB :: MonadIO m => GLhandleARB -> GLint -> Ptr GLfloat -> m ()
 glGetUniformfvARB = ffihandleARBintPtrfloatIOV glGetUniformfvARBFunPtr
 
@@ -212,6 +334,15 @@
 
 {-# NOINLINE glGetUniformfvARBFunPtr #-}
 
+-- | Usage: @'glGetUniformivARB' programObj location params@
+--
+-- The parameter @programObj@ is a @handleARB@.
+--
+-- The length of @params@ should be @COMPSIZE(programObj,location)@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glGetUniformiv'.
+
+
 glGetUniformivARB :: MonadIO m => GLhandleARB -> GLint -> Ptr GLint -> m ()
 glGetUniformivARB = ffihandleARBintPtrintIOV glGetUniformivARBFunPtr
 
@@ -220,6 +351,13 @@
 
 {-# NOINLINE glGetUniformivARBFunPtr #-}
 
+-- | Usage: @'glLinkProgramARB' programObj@
+--
+-- The parameter @programObj@ is a @handleARB@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glLinkProgram'.
+
+
 glLinkProgramARB :: MonadIO m => GLhandleARB -> m ()
 glLinkProgramARB = ffihandleARBIOV glLinkProgramARBFunPtr
 
@@ -228,14 +366,30 @@
 
 {-# NOINLINE glLinkProgramARBFunPtr #-}
 
-glShaderSourceARB :: MonadIO m => GLhandleARB -> GLsizei -> Ptr GLcharARB -> Ptr GLint -> m ()
-glShaderSourceARB = ffihandleARBsizeiPtrcharARBPtrintIOV glShaderSourceARBFunPtr
+-- | Usage: @'glShaderSourceARB' shaderObj count string length@
+--
+-- The parameter @shaderObj@ is a @handleARB@.
+--
+-- The length of @string@ should be @count@.
+--
+-- The length of @length@ should be @count@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glShaderSource'.
 
-glShaderSourceARBFunPtr :: FunPtr (GLhandleARB -> GLsizei -> Ptr GLcharARB -> Ptr GLint -> IO ())
+
+glShaderSourceARB :: MonadIO m => GLhandleARB -> GLsizei -> Ptr (Ptr GLcharARB) -> Ptr GLint -> m ()
+glShaderSourceARB = ffihandleARBsizeiPtrPtrcharARBPtrintIOV glShaderSourceARBFunPtr
+
+glShaderSourceARBFunPtr :: FunPtr (GLhandleARB -> GLsizei -> Ptr (Ptr GLcharARB) -> Ptr GLint -> IO ())
 glShaderSourceARBFunPtr = unsafePerformIO (getProcAddress "glShaderSourceARB")
 
 {-# NOINLINE glShaderSourceARBFunPtr #-}
 
+-- | Usage: @'glUniform1fARB' location v0@
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glUniform1f'.
+
+
 glUniform1fARB :: MonadIO m => GLint -> GLfloat -> m ()
 glUniform1fARB = ffiintfloatIOV glUniform1fARBFunPtr
 
@@ -244,6 +398,13 @@
 
 {-# NOINLINE glUniform1fARBFunPtr #-}
 
+-- | Usage: @'glUniform1fvARB' location count value@
+--
+-- The length of @value@ should be @count*1@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glUniform1fv'.
+
+
 glUniform1fvARB :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()
 glUniform1fvARB = ffiintsizeiPtrfloatIOV glUniform1fvARBFunPtr
 
@@ -252,6 +413,11 @@
 
 {-# NOINLINE glUniform1fvARBFunPtr #-}
 
+-- | Usage: @'glUniform1iARB' location v0@
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glUniform1i'.
+
+
 glUniform1iARB :: MonadIO m => GLint -> GLint -> m ()
 glUniform1iARB = ffiintintIOV glUniform1iARBFunPtr
 
@@ -260,6 +426,13 @@
 
 {-# NOINLINE glUniform1iARBFunPtr #-}
 
+-- | Usage: @'glUniform1ivARB' location count value@
+--
+-- The length of @value@ should be @count*1@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glUniform1iv'.
+
+
 glUniform1ivARB :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()
 glUniform1ivARB = ffiintsizeiPtrintIOV glUniform1ivARBFunPtr
 
@@ -268,6 +441,11 @@
 
 {-# NOINLINE glUniform1ivARBFunPtr #-}
 
+-- | Usage: @'glUniform2fARB' location v0 v1@
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glUniform2f'.
+
+
 glUniform2fARB :: MonadIO m => GLint -> GLfloat -> GLfloat -> m ()
 glUniform2fARB = ffiintfloatfloatIOV glUniform2fARBFunPtr
 
@@ -276,6 +454,13 @@
 
 {-# NOINLINE glUniform2fARBFunPtr #-}
 
+-- | Usage: @'glUniform2fvARB' location count value@
+--
+-- The length of @value@ should be @count*2@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glUniform2fv'.
+
+
 glUniform2fvARB :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()
 glUniform2fvARB = ffiintsizeiPtrfloatIOV glUniform2fvARBFunPtr
 
@@ -284,6 +469,11 @@
 
 {-# NOINLINE glUniform2fvARBFunPtr #-}
 
+-- | Usage: @'glUniform2iARB' location v0 v1@
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glUniform2i'.
+
+
 glUniform2iARB :: MonadIO m => GLint -> GLint -> GLint -> m ()
 glUniform2iARB = ffiintintintIOV glUniform2iARBFunPtr
 
@@ -292,6 +482,13 @@
 
 {-# NOINLINE glUniform2iARBFunPtr #-}
 
+-- | Usage: @'glUniform2ivARB' location count value@
+--
+-- The length of @value@ should be @count*2@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glUniform2iv'.
+
+
 glUniform2ivARB :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()
 glUniform2ivARB = ffiintsizeiPtrintIOV glUniform2ivARBFunPtr
 
@@ -300,6 +497,11 @@
 
 {-# NOINLINE glUniform2ivARBFunPtr #-}
 
+-- | Usage: @'glUniform3fARB' location v0 v1 v2@
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glUniform3f'.
+
+
 glUniform3fARB :: MonadIO m => GLint -> GLfloat -> GLfloat -> GLfloat -> m ()
 glUniform3fARB = ffiintfloatfloatfloatIOV glUniform3fARBFunPtr
 
@@ -308,6 +510,13 @@
 
 {-# NOINLINE glUniform3fARBFunPtr #-}
 
+-- | Usage: @'glUniform3fvARB' location count value@
+--
+-- The length of @value@ should be @count*3@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glUniform3fv'.
+
+
 glUniform3fvARB :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()
 glUniform3fvARB = ffiintsizeiPtrfloatIOV glUniform3fvARBFunPtr
 
@@ -316,6 +525,11 @@
 
 {-# NOINLINE glUniform3fvARBFunPtr #-}
 
+-- | Usage: @'glUniform3iARB' location v0 v1 v2@
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glUniform3i'.
+
+
 glUniform3iARB :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()
 glUniform3iARB = ffiintintintintIOV glUniform3iARBFunPtr
 
@@ -324,6 +538,13 @@
 
 {-# NOINLINE glUniform3iARBFunPtr #-}
 
+-- | Usage: @'glUniform3ivARB' location count value@
+--
+-- The length of @value@ should be @count*3@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glUniform3iv'.
+
+
 glUniform3ivARB :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()
 glUniform3ivARB = ffiintsizeiPtrintIOV glUniform3ivARBFunPtr
 
@@ -332,6 +553,11 @@
 
 {-# NOINLINE glUniform3ivARBFunPtr #-}
 
+-- | Usage: @'glUniform4fARB' location v0 v1 v2 v3@
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glUniform4f'.
+
+
 glUniform4fARB :: MonadIO m => GLint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
 glUniform4fARB = ffiintfloatfloatfloatfloatIOV glUniform4fARBFunPtr
 
@@ -340,6 +566,13 @@
 
 {-# NOINLINE glUniform4fARBFunPtr #-}
 
+-- | Usage: @'glUniform4fvARB' location count value@
+--
+-- The length of @value@ should be @count*4@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glUniform4fv'.
+
+
 glUniform4fvARB :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()
 glUniform4fvARB = ffiintsizeiPtrfloatIOV glUniform4fvARBFunPtr
 
@@ -348,6 +581,11 @@
 
 {-# NOINLINE glUniform4fvARBFunPtr #-}
 
+-- | Usage: @'glUniform4iARB' location v0 v1 v2 v3@
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glUniform4i'.
+
+
 glUniform4iARB :: MonadIO m => GLint -> GLint -> GLint -> GLint -> GLint -> m ()
 glUniform4iARB = ffiintintintintintIOV glUniform4iARBFunPtr
 
@@ -356,6 +594,13 @@
 
 {-# NOINLINE glUniform4iARBFunPtr #-}
 
+-- | Usage: @'glUniform4ivARB' location count value@
+--
+-- The length of @value@ should be @count*4@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glUniform4iv'.
+
+
 glUniform4ivARB :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()
 glUniform4ivARB = ffiintsizeiPtrintIOV glUniform4ivARBFunPtr
 
@@ -364,6 +609,15 @@
 
 {-# NOINLINE glUniform4ivARBFunPtr #-}
 
+-- | Usage: @'glUniformMatrix2fvARB' location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FALSE', 'Graphics.GL.Raw.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count*4@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glUniformMatrix2fv'.
+
+
 glUniformMatrix2fvARB :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
 glUniformMatrix2fvARB = ffiintsizeibooleanPtrfloatIOV glUniformMatrix2fvARBFunPtr
 
@@ -372,6 +626,15 @@
 
 {-# NOINLINE glUniformMatrix2fvARBFunPtr #-}
 
+-- | Usage: @'glUniformMatrix3fvARB' location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FALSE', 'Graphics.GL.Raw.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count*9@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glUniformMatrix3fv'.
+
+
 glUniformMatrix3fvARB :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
 glUniformMatrix3fvARB = ffiintsizeibooleanPtrfloatIOV glUniformMatrix3fvARBFunPtr
 
@@ -380,6 +643,15 @@
 
 {-# NOINLINE glUniformMatrix3fvARBFunPtr #-}
 
+-- | Usage: @'glUniformMatrix4fvARB' location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FALSE', 'Graphics.GL.Raw.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count*16@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glUniformMatrix4fv'.
+
+
 glUniformMatrix4fvARB :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
 glUniformMatrix4fvARB = ffiintsizeibooleanPtrfloatIOV glUniformMatrix4fvARBFunPtr
 
@@ -388,6 +660,13 @@
 
 {-# NOINLINE glUniformMatrix4fvARBFunPtr #-}
 
+-- | Usage: @'glUseProgramObjectARB' programObj@
+--
+-- The parameter @programObj@ is a @handleARB@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glUseProgram'.
+
+
 glUseProgramObjectARB :: MonadIO m => GLhandleARB -> m ()
 glUseProgramObjectARB = ffihandleARBIOV glUseProgramObjectARBFunPtr
 
@@ -395,6 +674,13 @@
 glUseProgramObjectARBFunPtr = unsafePerformIO (getProcAddress "glUseProgramObjectARB")
 
 {-# NOINLINE glUseProgramObjectARBFunPtr #-}
+
+-- | Usage: @'glValidateProgramARB' programObj@
+--
+-- The parameter @programObj@ is a @handleARB@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glValidateProgram'.
+
 
 glValidateProgramARB :: MonadIO m => GLhandleARB -> m ()
 glValidateProgramARB = ffihandleARBIOV glValidateProgramARBFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ShaderPrecision.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ShaderPrecision.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ShaderPrecision.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ShaderPrecision.hs
@@ -8,5 +8,8 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/shader_precision.txt GL_ARB_shader_precision> extension is available.
+
 gl_ARB_shader_precision :: Bool
 gl_ARB_shader_precision = member "GL_ARB_shader_precision" extensions
+{-# NOINLINE gl_ARB_shader_precision #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ShaderStencilExport.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ShaderStencilExport.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ShaderStencilExport.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ShaderStencilExport.hs
@@ -8,5 +8,8 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/shader_stencil_export.txt GL_ARB_shader_stencil_export> extension is available.
+
 gl_ARB_shader_stencil_export :: Bool
 gl_ARB_shader_stencil_export = member "GL_ARB_shader_stencil_export" extensions
+{-# NOINLINE gl_ARB_shader_stencil_export #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ShaderStorageBufferObject.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ShaderStorageBufferObject.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ShaderStorageBufferObject.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ShaderStorageBufferObject.hs
@@ -29,5 +29,8 @@
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/shader_storage_buffer_object.txt GL_ARB_shader_storage_buffer_object> extension is available.
+
 gl_ARB_shader_storage_buffer_object :: Bool
 gl_ARB_shader_storage_buffer_object = member "GL_ARB_shader_storage_buffer_object" extensions
+{-# NOINLINE gl_ARB_shader_storage_buffer_object #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ShaderSubroutine.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ShaderSubroutine.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ShaderSubroutine.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ShaderSubroutine.hs
@@ -30,5 +30,8 @@
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/shader_subroutine.txt GL_ARB_shader_subroutine> extension is available.
+
 gl_ARB_shader_subroutine :: Bool
 gl_ARB_shader_subroutine = member "GL_ARB_shader_subroutine" extensions
+{-# NOINLINE gl_ARB_shader_subroutine #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ShaderTextureImageSamples.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ShaderTextureImageSamples.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ShaderTextureImageSamples.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ShaderTextureImageSamples.hs
@@ -8,5 +8,8 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/shader_texture_image_samples.txt GL_ARB_shader_texture_image_samples> extension is available.
+
 gl_ARB_shader_texture_image_samples :: Bool
 gl_ARB_shader_texture_image_samples = member "GL_ARB_shader_texture_image_samples" extensions
+{-# NOINLINE gl_ARB_shader_texture_image_samples #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ShaderTextureLod.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ShaderTextureLod.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ShaderTextureLod.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ShaderTextureLod.hs
@@ -8,5 +8,8 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/shader_texture_lod.txt GL_ARB_shader_texture_lod> extension is available.
+
 gl_ARB_shader_texture_lod :: Bool
 gl_ARB_shader_texture_lod = member "GL_ARB_shader_texture_lod" extensions
+{-# NOINLINE gl_ARB_shader_texture_lod #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ShadingLanguage100.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ShadingLanguage100.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ShadingLanguage100.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ShadingLanguage100.hs
@@ -11,7 +11,10 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/shading_language_100.txt GL_ARB_shading_language_100> extension is available.
+
 gl_ARB_shading_language_100 :: Bool
 gl_ARB_shading_language_100 = member "GL_ARB_shading_language_100" extensions
+{-# NOINLINE gl_ARB_shading_language_100 #-}
 
 pattern GL_SHADING_LANGUAGE_VERSION_ARB = 0x8B8C
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ShadingLanguage420pack.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ShadingLanguage420pack.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ShadingLanguage420pack.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ShadingLanguage420pack.hs
@@ -8,5 +8,8 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/shading_language_420pack.txt GL_ARB_shading_language_420pack> extension is available.
+
 gl_ARB_shading_language_420pack :: Bool
 gl_ARB_shading_language_420pack = member "GL_ARB_shading_language_420pack" extensions
+{-# NOINLINE gl_ARB_shading_language_420pack #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ShadingLanguageInclude.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ShadingLanguageInclude.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ShadingLanguageInclude.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ShadingLanguageInclude.hs
@@ -24,17 +24,32 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/shading_language_include.txt GL_ARB_shading_language_include> extension is available.
+
 gl_ARB_shading_language_include :: Bool
 gl_ARB_shading_language_include = member "GL_ARB_shading_language_include" extensions
+{-# NOINLINE gl_ARB_shading_language_include #-}
 
-glCompileShaderIncludeARB :: MonadIO m => GLuint -> GLsizei -> Ptr GLchar -> Ptr GLint -> m ()
-glCompileShaderIncludeARB = ffiuintsizeiPtrcharPtrintIOV glCompileShaderIncludeARBFunPtr
+-- | Usage: @'glCompileShaderIncludeARB' shader count path length@
+--
+-- The length of @path@ should be @count@.
+--
+-- The length of @length@ should be @count@.
 
-glCompileShaderIncludeARBFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLchar -> Ptr GLint -> IO ())
+
+glCompileShaderIncludeARB :: MonadIO m => GLuint -> GLsizei -> Ptr (Ptr GLchar) -> Ptr GLint -> m ()
+glCompileShaderIncludeARB = ffiuintsizeiPtrPtrcharPtrintIOV glCompileShaderIncludeARBFunPtr
+
+glCompileShaderIncludeARBFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr (Ptr GLchar) -> Ptr GLint -> IO ())
 glCompileShaderIncludeARBFunPtr = unsafePerformIO (getProcAddress "glCompileShaderIncludeARB")
 
 {-# NOINLINE glCompileShaderIncludeARBFunPtr #-}
 
+-- | Usage: @'glDeleteNamedStringARB' namelen name@
+--
+-- The length of @name@ should be @namelen@.
+
+
 glDeleteNamedStringARB :: MonadIO m => GLint -> Ptr GLchar -> m ()
 glDeleteNamedStringARB = ffiintPtrcharIOV glDeleteNamedStringARBFunPtr
 
@@ -43,6 +58,15 @@
 
 {-# NOINLINE glDeleteNamedStringARBFunPtr #-}
 
+-- | Usage: @'glGetNamedStringARB' namelen name bufSize stringlen string@
+--
+-- The length of @name@ should be @namelen@.
+--
+-- The length of @stringlen@ should be @1@.
+--
+-- The length of @string@ should be @bufSize@.
+
+
 glGetNamedStringARB :: MonadIO m => GLint -> Ptr GLchar -> GLsizei -> Ptr GLint -> Ptr GLchar -> m ()
 glGetNamedStringARB = ffiintPtrcharsizeiPtrintPtrcharIOV glGetNamedStringARBFunPtr
 
@@ -51,6 +75,13 @@
 
 {-# NOINLINE glGetNamedStringARBFunPtr #-}
 
+-- | Usage: @'glGetNamedStringivARB' namelen name pname params@
+--
+-- The length of @name@ should be @namelen@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
 glGetNamedStringivARB :: MonadIO m => GLint -> Ptr GLchar -> GLenum -> Ptr GLint -> m ()
 glGetNamedStringivARB = ffiintPtrcharenumPtrintIOV glGetNamedStringivARBFunPtr
 
@@ -59,6 +90,11 @@
 
 {-# NOINLINE glGetNamedStringivARBFunPtr #-}
 
+-- | Usage: @'glIsNamedStringARB' namelen name@
+--
+-- The length of @name@ should be @namelen@.
+
+
 glIsNamedStringARB :: MonadIO m => GLint -> Ptr GLchar -> m GLboolean
 glIsNamedStringARB = ffiintPtrcharIOboolean glIsNamedStringARBFunPtr
 
@@ -66,6 +102,13 @@
 glIsNamedStringARBFunPtr = unsafePerformIO (getProcAddress "glIsNamedStringARB")
 
 {-# NOINLINE glIsNamedStringARBFunPtr #-}
+
+-- | Usage: @'glNamedStringARB' type namelen name stringlen string@
+--
+-- The length of @name@ should be @namelen@.
+--
+-- The length of @string@ should be @stringlen@.
+
 
 glNamedStringARB :: MonadIO m => GLenum -> GLint -> Ptr GLchar -> GLint -> Ptr GLchar -> m ()
 glNamedStringARB = ffienumintPtrcharintPtrcharIOV glNamedStringARBFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ShadingLanguagePacking.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ShadingLanguagePacking.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ShadingLanguagePacking.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ShadingLanguagePacking.hs
@@ -8,5 +8,8 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/shading_language_packing.txt GL_ARB_shading_language_packing> extension is available.
+
 gl_ARB_shading_language_packing :: Bool
 gl_ARB_shading_language_packing = member "GL_ARB_shading_language_packing" extensions
+{-# NOINLINE gl_ARB_shading_language_packing #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/Shadow.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/Shadow.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/Shadow.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/Shadow.hs
@@ -13,8 +13,11 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/shadow.txt GL_ARB_shadow> extension is available.
+
 gl_ARB_shadow :: Bool
 gl_ARB_shadow = member "GL_ARB_shadow" extensions
+{-# NOINLINE gl_ARB_shadow #-}
 
 pattern GL_COMPARE_R_TO_TEXTURE_ARB = 0x884E
 
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ShadowAmbient.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ShadowAmbient.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ShadowAmbient.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ShadowAmbient.hs
@@ -11,7 +11,10 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/shadow_ambient.txt GL_ARB_shadow_ambient> extension is available.
+
 gl_ARB_shadow_ambient :: Bool
 gl_ARB_shadow_ambient = member "GL_ARB_shadow_ambient" extensions
+{-# NOINLINE gl_ARB_shadow_ambient #-}
 
 pattern GL_TEXTURE_COMPARE_FAIL_VALUE_ARB = 0x80BF
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/SparseBuffer.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/SparseBuffer.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/SparseBuffer.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/SparseBuffer.hs
@@ -20,9 +20,15 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/sparse_buffer.txt GL_ARB_sparse_buffer> extension is available.
+
 gl_ARB_sparse_buffer :: Bool
 gl_ARB_sparse_buffer = member "GL_ARB_sparse_buffer" extensions
+{-# NOINLINE gl_ARB_sparse_buffer #-}
 
+-- | Usage: @'glBufferPageCommitmentARB' target offset size commit@
+
+
 glBufferPageCommitmentARB :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> GLboolean -> m ()
 glBufferPageCommitmentARB = ffienumintptrsizeiptrbooleanIOV glBufferPageCommitmentARBFunPtr
 
@@ -31,6 +37,9 @@
 
 {-# NOINLINE glBufferPageCommitmentARBFunPtr #-}
 
+-- | Usage: @'glNamedBufferPageCommitmentARB' buffer offset size commit@
+
+
 glNamedBufferPageCommitmentARB :: MonadIO m => GLuint -> GLintptr -> GLsizeiptr -> GLboolean -> m ()
 glNamedBufferPageCommitmentARB = ffiuintintptrsizeiptrbooleanIOV glNamedBufferPageCommitmentARBFunPtr
 
@@ -38,6 +47,9 @@
 glNamedBufferPageCommitmentARBFunPtr = unsafePerformIO (getProcAddress "glNamedBufferPageCommitmentARB")
 
 {-# NOINLINE glNamedBufferPageCommitmentARBFunPtr #-}
+
+-- | Usage: @'glNamedBufferPageCommitmentEXT' buffer offset size commit@
+
 
 glNamedBufferPageCommitmentEXT :: MonadIO m => GLuint -> GLintptr -> GLsizeiptr -> GLboolean -> m ()
 glNamedBufferPageCommitmentEXT = ffiuintintptrsizeiptrbooleanIOV glNamedBufferPageCommitmentEXTFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/SparseTexture.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/SparseTexture.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/SparseTexture.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/SparseTexture.hs
@@ -27,8 +27,14 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/sparse_texture.txt GL_ARB_sparse_texture> extension is available.
+
 gl_ARB_sparse_texture :: Bool
 gl_ARB_sparse_texture = member "GL_ARB_sparse_texture" extensions
+{-# NOINLINE gl_ARB_sparse_texture #-}
+
+-- | Usage: @'glTexPageCommitmentARB' target level xoffset yoffset zoffset width height depth resident@
+
 
 glTexPageCommitmentARB :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> m ()
 glTexPageCommitmentARB = ffienumintintintintsizeisizeisizeibooleanIOV glTexPageCommitmentARBFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/StencilTexturing.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/StencilTexturing.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/StencilTexturing.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/StencilTexturing.hs
@@ -12,5 +12,8 @@
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/stencil_texturing.txt GL_ARB_stencil_texturing> extension is available.
+
 gl_ARB_stencil_texturing :: Bool
 gl_ARB_stencil_texturing = member "GL_ARB_stencil_texturing" extensions
+{-# NOINLINE gl_ARB_stencil_texturing #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/Sync.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/Sync.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/Sync.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/Sync.hs
@@ -33,5 +33,8 @@
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/sync.txt GL_ARB_sync> extension is available.
+
 gl_ARB_sync :: Bool
 gl_ARB_sync = member "GL_ARB_sync" extensions
+{-# NOINLINE gl_ARB_sync #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TessellationShader.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TessellationShader.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TessellationShader.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TessellationShader.hs
@@ -50,5 +50,8 @@
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/tessellation_shader.txt GL_ARB_tessellation_shader> extension is available.
+
 gl_ARB_tessellation_shader :: Bool
 gl_ARB_tessellation_shader = member "GL_ARB_tessellation_shader" extensions
+{-# NOINLINE gl_ARB_tessellation_shader #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureBarrier.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureBarrier.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureBarrier.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureBarrier.hs
@@ -12,5 +12,8 @@
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/texture_barrier.txt GL_ARB_texture_barrier> extension is available.
+
 gl_ARB_texture_barrier :: Bool
 gl_ARB_texture_barrier = member "GL_ARB_texture_barrier" extensions
+{-# NOINLINE gl_ARB_texture_barrier #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureBorderClamp.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureBorderClamp.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureBorderClamp.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureBorderClamp.hs
@@ -11,7 +11,10 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/texture_border_clamp.txt GL_ARB_texture_border_clamp> extension is available.
+
 gl_ARB_texture_border_clamp :: Bool
 gl_ARB_texture_border_clamp = member "GL_ARB_texture_border_clamp" extensions
+{-# NOINLINE gl_ARB_texture_border_clamp #-}
 
 pattern GL_CLAMP_TO_BORDER_ARB = 0x812D
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureBufferObject.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureBufferObject.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureBufferObject.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureBufferObject.hs
@@ -21,8 +21,18 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/texture_buffer_object.txt GL_ARB_texture_buffer_object> extension is available.
+
 gl_ARB_texture_buffer_object :: Bool
 gl_ARB_texture_buffer_object = member "GL_ARB_texture_buffer_object" extensions
+{-# NOINLINE gl_ARB_texture_buffer_object #-}
+
+-- | Usage: @'glTexBufferARB' target internalformat buffer@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glTexBuffer'.
+
 
 glTexBufferARB :: MonadIO m => GLenum -> GLenum -> GLuint -> m ()
 glTexBufferARB = ffienumenumuintIOV glTexBufferARBFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureBufferObjectRgb32.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureBufferObjectRgb32.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureBufferObjectRgb32.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureBufferObjectRgb32.hs
@@ -14,5 +14,8 @@
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/texture_buffer_object_rgb32.txt GL_ARB_texture_buffer_object_rgb32> extension is available.
+
 gl_ARB_texture_buffer_object_rgb32 :: Bool
 gl_ARB_texture_buffer_object_rgb32 = member "GL_ARB_texture_buffer_object_rgb32" extensions
+{-# NOINLINE gl_ARB_texture_buffer_object_rgb32 #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureBufferRange.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureBufferRange.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureBufferRange.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureBufferRange.hs
@@ -15,5 +15,8 @@
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/texture_buffer_range.txt GL_ARB_texture_buffer_range> extension is available.
+
 gl_ARB_texture_buffer_range :: Bool
 gl_ARB_texture_buffer_range = member "GL_ARB_texture_buffer_range" extensions
+{-# NOINLINE gl_ARB_texture_buffer_range #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureCompression.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureCompression.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureCompression.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureCompression.hs
@@ -33,9 +33,29 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/texture_compression.txt GL_ARB_texture_compression> extension is available.
+
 gl_ARB_texture_compression :: Bool
 gl_ARB_texture_compression = member "GL_ARB_texture_compression" extensions
+{-# NOINLINE gl_ARB_texture_compression #-}
 
+-- | Usage: @'glCompressedTexImage1DARB' target level internalformat width border imageSize data@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @internalformat@ is a @PixelInternalFormat@.
+--
+-- The parameter @border@ is a @CheckedInt32@.
+--
+-- The parameter @data@ is a @CompressedTextureARB@.
+--
+-- The length of @data@ should be @imageSize@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glCompressedTexImage1D'.
+
+
 glCompressedTexImage1DARB :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLint -> GLsizei -> Ptr () -> m ()
 glCompressedTexImage1DARB = ffienumintenumsizeiintsizeiPtrVIOV glCompressedTexImage1DARBFunPtr
 
@@ -44,6 +64,23 @@
 
 {-# NOINLINE glCompressedTexImage1DARBFunPtr #-}
 
+-- | Usage: @'glCompressedTexImage2DARB' target level internalformat width height border imageSize data@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @internalformat@ is a @PixelInternalFormat@.
+--
+-- The parameter @border@ is a @CheckedInt32@.
+--
+-- The parameter @data@ is a @CompressedTextureARB@.
+--
+-- The length of @data@ should be @imageSize@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glCompressedTexImage2D'.
+
+
 glCompressedTexImage2DARB :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> m ()
 glCompressedTexImage2DARB = ffienumintenumsizeisizeiintsizeiPtrVIOV glCompressedTexImage2DARBFunPtr
 
@@ -52,6 +89,23 @@
 
 {-# NOINLINE glCompressedTexImage2DARBFunPtr #-}
 
+-- | Usage: @'glCompressedTexImage3DARB' target level internalformat width height depth border imageSize data@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @internalformat@ is a @PixelInternalFormat@.
+--
+-- The parameter @border@ is a @CheckedInt32@.
+--
+-- The parameter @data@ is a @CompressedTextureARB@.
+--
+-- The length of @data@ should be @imageSize@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glCompressedTexImage3D'.
+
+
 glCompressedTexImage3DARB :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> m ()
 glCompressedTexImage3DARB = ffienumintenumsizeisizeisizeiintsizeiPtrVIOV glCompressedTexImage3DARBFunPtr
 
@@ -60,6 +114,23 @@
 
 {-# NOINLINE glCompressedTexImage3DARBFunPtr #-}
 
+-- | Usage: @'glCompressedTexSubImage1DARB' target level xoffset width format imageSize data@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @xoffset@ is a @CheckedInt32@.
+--
+-- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Raw.Extension.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_ALPHA', 'Graphics.GL.Raw.Internal.Shared.GL_BLUE', 'Graphics.GL.Raw.Extension.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Raw.Extension.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Raw.Internal.Shared.GL_GREEN', 'Graphics.GL.Raw.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Raw.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Raw.Internal.Shared.GL_RED', 'Graphics.GL.Raw.Extension.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_RGB', 'Graphics.GL.Raw.Internal.Shared.GL_RGBA', 'Graphics.GL.Raw.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Raw.Extension.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
+--
+-- The parameter @data@ is a @CompressedTextureARB@.
+--
+-- The length of @data@ should be @imageSize@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glCompressedTexSubImage1D'.
+
+
 glCompressedTexSubImage1DARB :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr () -> m ()
 glCompressedTexSubImage1DARB = ffienumintintsizeienumsizeiPtrVIOV glCompressedTexSubImage1DARBFunPtr
 
@@ -68,6 +139,25 @@
 
 {-# NOINLINE glCompressedTexSubImage1DARBFunPtr #-}
 
+-- | Usage: @'glCompressedTexSubImage2DARB' target level xoffset yoffset width height format imageSize data@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @xoffset@ is a @CheckedInt32@.
+--
+-- The parameter @yoffset@ is a @CheckedInt32@.
+--
+-- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Raw.Extension.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_ALPHA', 'Graphics.GL.Raw.Internal.Shared.GL_BLUE', 'Graphics.GL.Raw.Extension.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Raw.Extension.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Raw.Internal.Shared.GL_GREEN', 'Graphics.GL.Raw.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Raw.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Raw.Internal.Shared.GL_RED', 'Graphics.GL.Raw.Extension.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_RGB', 'Graphics.GL.Raw.Internal.Shared.GL_RGBA', 'Graphics.GL.Raw.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Raw.Extension.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
+--
+-- The parameter @data@ is a @CompressedTextureARB@.
+--
+-- The length of @data@ should be @imageSize@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glCompressedTexSubImage2D'.
+
+
 glCompressedTexSubImage2DARB :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> m ()
 glCompressedTexSubImage2DARB = ffienumintintintsizeisizeienumsizeiPtrVIOV glCompressedTexSubImage2DARBFunPtr
 
@@ -76,6 +166,27 @@
 
 {-# NOINLINE glCompressedTexSubImage2DARBFunPtr #-}
 
+-- | Usage: @'glCompressedTexSubImage3DARB' target level xoffset yoffset zoffset width height depth format imageSize data@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @xoffset@ is a @CheckedInt32@.
+--
+-- The parameter @yoffset@ is a @CheckedInt32@.
+--
+-- The parameter @zoffset@ is a @CheckedInt32@.
+--
+-- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Raw.Extension.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_ALPHA', 'Graphics.GL.Raw.Internal.Shared.GL_BLUE', 'Graphics.GL.Raw.Extension.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Raw.Extension.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Raw.Internal.Shared.GL_GREEN', 'Graphics.GL.Raw.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Raw.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Raw.Internal.Shared.GL_RED', 'Graphics.GL.Raw.Extension.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_RGB', 'Graphics.GL.Raw.Internal.Shared.GL_RGBA', 'Graphics.GL.Raw.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Raw.Extension.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
+--
+-- The parameter @data@ is a @CompressedTextureARB@.
+--
+-- The length of @data@ should be @imageSize@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glCompressedTexSubImage3D'.
+
+
 glCompressedTexSubImage3DARB :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> m ()
 glCompressedTexSubImage3DARB = ffienumintintintintsizeisizeisizeienumsizeiPtrVIOV glCompressedTexSubImage3DARBFunPtr
 
@@ -83,6 +194,19 @@
 glCompressedTexSubImage3DARBFunPtr = unsafePerformIO (getProcAddress "glCompressedTexSubImage3DARB")
 
 {-# NOINLINE glCompressedTexSubImage3DARBFunPtr #-}
+
+-- | Usage: @'glGetCompressedTexImageARB' target level img@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @img@ is a @CompressedTextureARB@.
+--
+-- The length of @img@ should be @COMPSIZE(target,level)@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glGetCompressedTexImage'.
+
 
 glGetCompressedTexImageARB :: MonadIO m => GLenum -> GLint -> Ptr () -> m ()
 glGetCompressedTexImageARB = ffienumintPtrVIOV glGetCompressedTexImageARBFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureCompressionBptc.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureCompressionBptc.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureCompressionBptc.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureCompressionBptc.hs
@@ -14,8 +14,11 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/texture_compression_bptc.txt GL_ARB_texture_compression_bptc> extension is available.
+
 gl_ARB_texture_compression_bptc :: Bool
 gl_ARB_texture_compression_bptc = member "GL_ARB_texture_compression_bptc" extensions
+{-# NOINLINE gl_ARB_texture_compression_bptc #-}
 
 pattern GL_COMPRESSED_RGBA_BPTC_UNORM_ARB = 0x8E8C
 
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureCompressionRgtc.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureCompressionRgtc.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureCompressionRgtc.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureCompressionRgtc.hs
@@ -15,5 +15,8 @@
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/texture_compression_rgtc.txt GL_ARB_texture_compression_rgtc> extension is available.
+
 gl_ARB_texture_compression_rgtc :: Bool
 gl_ARB_texture_compression_rgtc = member "GL_ARB_texture_compression_rgtc" extensions
+{-# NOINLINE gl_ARB_texture_compression_rgtc #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureCubeMap.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureCubeMap.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureCubeMap.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureCubeMap.hs
@@ -22,8 +22,11 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/texture_cube_map.txt GL_ARB_texture_cube_map> extension is available.
+
 gl_ARB_texture_cube_map :: Bool
 gl_ARB_texture_cube_map = member "GL_ARB_texture_cube_map" extensions
+{-# NOINLINE gl_ARB_texture_cube_map #-}
 
 pattern GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB = 0x851C
 
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureCubeMapArray.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureCubeMapArray.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureCubeMapArray.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureCubeMapArray.hs
@@ -17,8 +17,11 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/texture_cube_map_array.txt GL_ARB_texture_cube_map_array> extension is available.
+
 gl_ARB_texture_cube_map_array :: Bool
 gl_ARB_texture_cube_map_array = member "GL_ARB_texture_cube_map_array" extensions
+{-# NOINLINE gl_ARB_texture_cube_map_array #-}
 
 pattern GL_INT_SAMPLER_CUBE_MAP_ARRAY_ARB = 0x900E
 
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureEnvAdd.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureEnvAdd.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureEnvAdd.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureEnvAdd.hs
@@ -8,5 +8,8 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/texture_env_add.txt GL_ARB_texture_env_add> extension is available.
+
 gl_ARB_texture_env_add :: Bool
 gl_ARB_texture_env_add = member "GL_ARB_texture_env_add" extensions
+{-# NOINLINE gl_ARB_texture_env_add #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureEnvCombine.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureEnvCombine.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureEnvCombine.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureEnvCombine.hs
@@ -32,8 +32,11 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/texture_env_combine.txt GL_ARB_texture_env_combine> extension is available.
+
 gl_ARB_texture_env_combine :: Bool
 gl_ARB_texture_env_combine = member "GL_ARB_texture_env_combine" extensions
+{-# NOINLINE gl_ARB_texture_env_combine #-}
 
 pattern GL_ADD_SIGNED_ARB = 0x8574
 
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureEnvCrossbar.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureEnvCrossbar.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureEnvCrossbar.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureEnvCrossbar.hs
@@ -8,5 +8,8 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/texture_env_crossbar.txt GL_ARB_texture_env_crossbar> extension is available.
+
 gl_ARB_texture_env_crossbar :: Bool
 gl_ARB_texture_env_crossbar = member "GL_ARB_texture_env_crossbar" extensions
+{-# NOINLINE gl_ARB_texture_env_crossbar #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureEnvDot3.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureEnvDot3.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureEnvDot3.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureEnvDot3.hs
@@ -12,8 +12,11 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/texture_env_dot3.txt GL_ARB_texture_env_dot3> extension is available.
+
 gl_ARB_texture_env_dot3 :: Bool
 gl_ARB_texture_env_dot3 = member "GL_ARB_texture_env_dot3" extensions
+{-# NOINLINE gl_ARB_texture_env_dot3 #-}
 
 pattern GL_DOT3_RGBA_ARB = 0x86AF
 
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureFloat.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureFloat.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureFloat.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureFloat.hs
@@ -30,8 +30,11 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/texture_float.txt GL_ARB_texture_float> extension is available.
+
 gl_ARB_texture_float :: Bool
 gl_ARB_texture_float = member "GL_ARB_texture_float" extensions
+{-# NOINLINE gl_ARB_texture_float #-}
 
 pattern GL_ALPHA16F_ARB = 0x881C
 
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureGather.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureGather.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureGather.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureGather.hs
@@ -13,8 +13,11 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/texture_gather.txt GL_ARB_texture_gather> extension is available.
+
 gl_ARB_texture_gather :: Bool
 gl_ARB_texture_gather = member "GL_ARB_texture_gather" extensions
+{-# NOINLINE gl_ARB_texture_gather #-}
 
 pattern GL_MAX_PROGRAM_TEXTURE_GATHER_COMPONENTS_ARB = 0x8F9F
 
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureMirrorClampToEdge.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureMirrorClampToEdge.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureMirrorClampToEdge.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureMirrorClampToEdge.hs
@@ -12,5 +12,8 @@
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/texture_mirror_clamp_to_edge.txt GL_ARB_texture_mirror_clamp_to_edge> extension is available.
+
 gl_ARB_texture_mirror_clamp_to_edge :: Bool
 gl_ARB_texture_mirror_clamp_to_edge = member "GL_ARB_texture_mirror_clamp_to_edge" extensions
+{-# NOINLINE gl_ARB_texture_mirror_clamp_to_edge #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureMirroredRepeat.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureMirroredRepeat.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureMirroredRepeat.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureMirroredRepeat.hs
@@ -11,7 +11,10 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/texture_mirrored_repeat.txt GL_ARB_texture_mirrored_repeat> extension is available.
+
 gl_ARB_texture_mirrored_repeat :: Bool
 gl_ARB_texture_mirrored_repeat = member "GL_ARB_texture_mirrored_repeat" extensions
+{-# NOINLINE gl_ARB_texture_mirrored_repeat #-}
 
 pattern GL_MIRRORED_REPEAT_ARB = 0x8370
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureMultisample.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureMultisample.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureMultisample.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureMultisample.hs
@@ -36,5 +36,8 @@
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/texture_multisample.txt GL_ARB_texture_multisample> extension is available.
+
 gl_ARB_texture_multisample :: Bool
 gl_ARB_texture_multisample = member "GL_ARB_texture_multisample" extensions
+{-# NOINLINE gl_ARB_texture_multisample #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureNonPowerOfTwo.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureNonPowerOfTwo.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureNonPowerOfTwo.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureNonPowerOfTwo.hs
@@ -8,5 +8,8 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/texture_non_power_of_two.txt GL_ARB_texture_non_power_of_two> extension is available.
+
 gl_ARB_texture_non_power_of_two :: Bool
 gl_ARB_texture_non_power_of_two = member "GL_ARB_texture_non_power_of_two" extensions
+{-# NOINLINE gl_ARB_texture_non_power_of_two #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureQueryLevels.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureQueryLevels.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureQueryLevels.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureQueryLevels.hs
@@ -8,5 +8,8 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/texture_query_levels.txt GL_ARB_texture_query_levels> extension is available.
+
 gl_ARB_texture_query_levels :: Bool
 gl_ARB_texture_query_levels = member "GL_ARB_texture_query_levels" extensions
+{-# NOINLINE gl_ARB_texture_query_levels #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureQueryLod.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureQueryLod.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureQueryLod.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureQueryLod.hs
@@ -8,5 +8,8 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/texture_query_lod.txt GL_ARB_texture_query_lod> extension is available.
+
 gl_ARB_texture_query_lod :: Bool
 gl_ARB_texture_query_lod = member "GL_ARB_texture_query_lod" extensions
+{-# NOINLINE gl_ARB_texture_query_lod #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureRectangle.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureRectangle.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureRectangle.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureRectangle.hs
@@ -14,8 +14,11 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/texture_rectangle.txt GL_ARB_texture_rectangle> extension is available.
+
 gl_ARB_texture_rectangle :: Bool
 gl_ARB_texture_rectangle = member "GL_ARB_texture_rectangle" extensions
+{-# NOINLINE gl_ARB_texture_rectangle #-}
 
 pattern GL_MAX_RECTANGLE_TEXTURE_SIZE_ARB = 0x84F8
 
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureRg.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureRg.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureRg.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureRg.hs
@@ -33,5 +33,8 @@
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/texture_rg.txt GL_ARB_texture_rg> extension is available.
+
 gl_ARB_texture_rg :: Bool
 gl_ARB_texture_rg = member "GL_ARB_texture_rg" extensions
+{-# NOINLINE gl_ARB_texture_rg #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureRgb10A2ui.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureRgb10A2ui.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureRgb10A2ui.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureRgb10A2ui.hs
@@ -12,5 +12,8 @@
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/texture_rgb10_a2ui.txt GL_ARB_texture_rgb10_a2ui> extension is available.
+
 gl_ARB_texture_rgb10_a2ui :: Bool
 gl_ARB_texture_rgb10_a2ui = member "GL_ARB_texture_rgb10_a2ui" extensions
+{-# NOINLINE gl_ARB_texture_rgb10_a2ui #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureStencil8.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureStencil8.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureStencil8.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureStencil8.hs
@@ -13,5 +13,8 @@
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/texture_stencil8.txt GL_ARB_texture_stencil8> extension is available.
+
 gl_ARB_texture_stencil8 :: Bool
 gl_ARB_texture_stencil8 = member "GL_ARB_texture_stencil8" extensions
+{-# NOINLINE gl_ARB_texture_stencil8 #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureStorage.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureStorage.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureStorage.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureStorage.hs
@@ -15,5 +15,8 @@
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/texture_storage.txt GL_ARB_texture_storage> extension is available.
+
 gl_ARB_texture_storage :: Bool
 gl_ARB_texture_storage = member "GL_ARB_texture_storage" extensions
+{-# NOINLINE gl_ARB_texture_storage #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureStorageMultisample.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureStorageMultisample.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureStorageMultisample.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureStorageMultisample.hs
@@ -13,5 +13,8 @@
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/texture_storage_multisample.txt GL_ARB_texture_storage_multisample> extension is available.
+
 gl_ARB_texture_storage_multisample :: Bool
 gl_ARB_texture_storage_multisample = member "GL_ARB_texture_storage_multisample" extensions
+{-# NOINLINE gl_ARB_texture_storage_multisample #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureSwizzle.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureSwizzle.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureSwizzle.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureSwizzle.hs
@@ -16,5 +16,8 @@
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/texture_swizzle.txt GL_ARB_texture_swizzle> extension is available.
+
 gl_ARB_texture_swizzle :: Bool
 gl_ARB_texture_swizzle = member "GL_ARB_texture_swizzle" extensions
+{-# NOINLINE gl_ARB_texture_swizzle #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureView.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureView.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureView.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureView.hs
@@ -17,5 +17,8 @@
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/texture_view.txt GL_ARB_texture_view> extension is available.
+
 gl_ARB_texture_view :: Bool
 gl_ARB_texture_view = member "GL_ARB_texture_view" extensions
+{-# NOINLINE gl_ARB_texture_view #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TimerQuery.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TimerQuery.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TimerQuery.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TimerQuery.hs
@@ -16,5 +16,8 @@
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/timer_query.txt GL_ARB_timer_query> extension is available.
+
 gl_ARB_timer_query :: Bool
 gl_ARB_timer_query = member "GL_ARB_timer_query" extensions
+{-# NOINLINE gl_ARB_timer_query #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TransformFeedback2.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TransformFeedback2.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TransformFeedback2.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TransformFeedback2.hs
@@ -22,5 +22,8 @@
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/transform_feedback2.txt GL_ARB_transform_feedback2> extension is available.
+
 gl_ARB_transform_feedback2 :: Bool
 gl_ARB_transform_feedback2 = member "GL_ARB_transform_feedback2" extensions
+{-# NOINLINE gl_ARB_transform_feedback2 #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TransformFeedback3.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TransformFeedback3.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TransformFeedback3.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TransformFeedback3.hs
@@ -17,5 +17,8 @@
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/transform_feedback3.txt GL_ARB_transform_feedback3> extension is available.
+
 gl_ARB_transform_feedback3 :: Bool
 gl_ARB_transform_feedback3 = member "GL_ARB_transform_feedback3" extensions
+{-# NOINLINE gl_ARB_transform_feedback3 #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TransformFeedbackInstanced.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TransformFeedbackInstanced.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TransformFeedbackInstanced.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TransformFeedbackInstanced.hs
@@ -13,5 +13,8 @@
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/transform_feedback_instanced.txt GL_ARB_transform_feedback_instanced> extension is available.
+
 gl_ARB_transform_feedback_instanced :: Bool
 gl_ARB_transform_feedback_instanced = member "GL_ARB_transform_feedback_instanced" extensions
+{-# NOINLINE gl_ARB_transform_feedback_instanced #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TransformFeedbackOverflowQuery.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TransformFeedbackOverflowQuery.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TransformFeedbackOverflowQuery.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TransformFeedbackOverflowQuery.hs
@@ -12,8 +12,11 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/transform_feedback_overflow_query.txt GL_ARB_transform_feedback_overflow_query> extension is available.
+
 gl_ARB_transform_feedback_overflow_query :: Bool
 gl_ARB_transform_feedback_overflow_query = member "GL_ARB_transform_feedback_overflow_query" extensions
+{-# NOINLINE gl_ARB_transform_feedback_overflow_query #-}
 
 pattern GL_TRANSFORM_FEEDBACK_OVERFLOW_ARB = 0x82EC
 
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TransposeMatrix.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TransposeMatrix.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TransposeMatrix.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TransposeMatrix.hs
@@ -23,9 +23,19 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/transpose_matrix.txt GL_ARB_transpose_matrix> extension is available.
+
 gl_ARB_transpose_matrix :: Bool
 gl_ARB_transpose_matrix = member "GL_ARB_transpose_matrix" extensions
+{-# NOINLINE gl_ARB_transpose_matrix #-}
 
+-- | Usage: @'glLoadTransposeMatrixdARB' m@
+--
+-- The length of @m@ should be @16@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glLoadTransposeMatrixd'.
+
+
 glLoadTransposeMatrixdARB :: MonadIO m => Ptr GLdouble -> m ()
 glLoadTransposeMatrixdARB = ffiPtrdoubleIOV glLoadTransposeMatrixdARBFunPtr
 
@@ -34,6 +44,13 @@
 
 {-# NOINLINE glLoadTransposeMatrixdARBFunPtr #-}
 
+-- | Usage: @'glLoadTransposeMatrixfARB' m@
+--
+-- The length of @m@ should be @16@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glLoadTransposeMatrixf'.
+
+
 glLoadTransposeMatrixfARB :: MonadIO m => Ptr GLfloat -> m ()
 glLoadTransposeMatrixfARB = ffiPtrfloatIOV glLoadTransposeMatrixfARBFunPtr
 
@@ -42,6 +59,13 @@
 
 {-# NOINLINE glLoadTransposeMatrixfARBFunPtr #-}
 
+-- | Usage: @'glMultTransposeMatrixdARB' m@
+--
+-- The length of @m@ should be @16@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glMultTransposeMatrixd'.
+
+
 glMultTransposeMatrixdARB :: MonadIO m => Ptr GLdouble -> m ()
 glMultTransposeMatrixdARB = ffiPtrdoubleIOV glMultTransposeMatrixdARBFunPtr
 
@@ -49,6 +73,13 @@
 glMultTransposeMatrixdARBFunPtr = unsafePerformIO (getProcAddress "glMultTransposeMatrixdARB")
 
 {-# NOINLINE glMultTransposeMatrixdARBFunPtr #-}
+
+-- | Usage: @'glMultTransposeMatrixfARB' m@
+--
+-- The length of @m@ should be @16@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glMultTransposeMatrixf'.
+
 
 glMultTransposeMatrixfARB :: MonadIO m => Ptr GLfloat -> m ()
 glMultTransposeMatrixfARB = ffiPtrfloatIOV glMultTransposeMatrixfARBFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/UniformBufferObject.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/UniformBufferObject.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/UniformBufferObject.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/UniformBufferObject.hs
@@ -51,5 +51,8 @@
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/uniform_buffer_object.txt GL_ARB_uniform_buffer_object> extension is available.
+
 gl_ARB_uniform_buffer_object :: Bool
 gl_ARB_uniform_buffer_object = member "GL_ARB_uniform_buffer_object" extensions
+{-# NOINLINE gl_ARB_uniform_buffer_object #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/VertexArrayBgra.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/VertexArrayBgra.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/VertexArrayBgra.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/VertexArrayBgra.hs
@@ -12,5 +12,8 @@
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/vertex_array_bgra.txt GL_ARB_vertex_array_bgra> extension is available.
+
 gl_ARB_vertex_array_bgra :: Bool
 gl_ARB_vertex_array_bgra = member "GL_ARB_vertex_array_bgra" extensions
+{-# NOINLINE gl_ARB_vertex_array_bgra #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/VertexArrayObject.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/VertexArrayObject.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/VertexArrayObject.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/VertexArrayObject.hs
@@ -16,5 +16,8 @@
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/vertex_array_object.txt GL_ARB_vertex_array_object> extension is available.
+
 gl_ARB_vertex_array_object :: Bool
 gl_ARB_vertex_array_object = member "GL_ARB_vertex_array_object" extensions
+{-# NOINLINE gl_ARB_vertex_array_object #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/VertexAttrib64bit.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/VertexAttrib64bit.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/VertexAttrib64bit.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/VertexAttrib64bit.hs
@@ -34,5 +34,8 @@
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/vertex_attrib_64bit.txt GL_ARB_vertex_attrib_64bit> extension is available.
+
 gl_ARB_vertex_attrib_64bit :: Bool
 gl_ARB_vertex_attrib_64bit = member "GL_ARB_vertex_attrib_64bit" extensions
+{-# NOINLINE gl_ARB_vertex_attrib_64bit #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/VertexAttribBinding.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/VertexAttribBinding.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/VertexAttribBinding.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/VertexAttribBinding.hs
@@ -24,5 +24,8 @@
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/vertex_attrib_binding.txt GL_ARB_vertex_attrib_binding> extension is available.
+
 gl_ARB_vertex_attrib_binding :: Bool
 gl_ARB_vertex_attrib_binding = member "GL_ARB_vertex_attrib_binding" extensions
+{-# NOINLINE gl_ARB_vertex_attrib_binding #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/VertexBlend.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/VertexBlend.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/VertexBlend.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/VertexBlend.hs
@@ -67,9 +67,15 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/vertex_blend.txt GL_ARB_vertex_blend> extension is available.
+
 gl_ARB_vertex_blend :: Bool
 gl_ARB_vertex_blend = member "GL_ARB_vertex_blend" extensions
+{-# NOINLINE gl_ARB_vertex_blend #-}
 
+-- | Usage: @'glVertexBlendARB' count@
+
+
 glVertexBlendARB :: MonadIO m => GLint -> m ()
 glVertexBlendARB = ffiintIOV glVertexBlendARBFunPtr
 
@@ -78,6 +84,13 @@
 
 {-# NOINLINE glVertexBlendARBFunPtr #-}
 
+-- | Usage: @'glWeightPointerARB' size type stride pointer@
+--
+-- The parameter @type@ is a @WeightPointerTypeARB@.
+--
+-- The length of @pointer@ should be @COMPSIZE(type,stride)@.
+
+
 glWeightPointerARB :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr () -> m ()
 glWeightPointerARB = ffiintenumsizeiPtrVIOV glWeightPointerARBFunPtr
 
@@ -86,6 +99,11 @@
 
 {-# NOINLINE glWeightPointerARBFunPtr #-}
 
+-- | Usage: @'glWeightbvARB' size weights@
+--
+-- The length of @weights@ should be @size@.
+
+
 glWeightbvARB :: MonadIO m => GLint -> Ptr GLbyte -> m ()
 glWeightbvARB = ffiintPtrbyteIOV glWeightbvARBFunPtr
 
@@ -94,6 +112,11 @@
 
 {-# NOINLINE glWeightbvARBFunPtr #-}
 
+-- | Usage: @'glWeightdvARB' size weights@
+--
+-- The length of @weights@ should be @size@.
+
+
 glWeightdvARB :: MonadIO m => GLint -> Ptr GLdouble -> m ()
 glWeightdvARB = ffiintPtrdoubleIOV glWeightdvARBFunPtr
 
@@ -102,6 +125,11 @@
 
 {-# NOINLINE glWeightdvARBFunPtr #-}
 
+-- | Usage: @'glWeightfvARB' size weights@
+--
+-- The length of @weights@ should be @size@.
+
+
 glWeightfvARB :: MonadIO m => GLint -> Ptr GLfloat -> m ()
 glWeightfvARB = ffiintPtrfloatIOV glWeightfvARBFunPtr
 
@@ -110,6 +138,11 @@
 
 {-# NOINLINE glWeightfvARBFunPtr #-}
 
+-- | Usage: @'glWeightivARB' size weights@
+--
+-- The length of @weights@ should be @size@.
+
+
 glWeightivARB :: MonadIO m => GLint -> Ptr GLint -> m ()
 glWeightivARB = ffiintPtrintIOV glWeightivARBFunPtr
 
@@ -118,6 +151,11 @@
 
 {-# NOINLINE glWeightivARBFunPtr #-}
 
+-- | Usage: @'glWeightsvARB' size weights@
+--
+-- The length of @weights@ should be @size@.
+
+
 glWeightsvARB :: MonadIO m => GLint -> Ptr GLshort -> m ()
 glWeightsvARB = ffiintPtrshortIOV glWeightsvARBFunPtr
 
@@ -126,6 +164,11 @@
 
 {-# NOINLINE glWeightsvARBFunPtr #-}
 
+-- | Usage: @'glWeightubvARB' size weights@
+--
+-- The length of @weights@ should be @size@.
+
+
 glWeightubvARB :: MonadIO m => GLint -> Ptr GLubyte -> m ()
 glWeightubvARB = ffiintPtrubyteIOV glWeightubvARBFunPtr
 
@@ -134,6 +177,11 @@
 
 {-# NOINLINE glWeightubvARBFunPtr #-}
 
+-- | Usage: @'glWeightuivARB' size weights@
+--
+-- The length of @weights@ should be @size@.
+
+
 glWeightuivARB :: MonadIO m => GLint -> Ptr GLuint -> m ()
 glWeightuivARB = ffiintPtruintIOV glWeightuivARBFunPtr
 
@@ -141,6 +189,11 @@
 glWeightuivARBFunPtr = unsafePerformIO (getProcAddress "glWeightuivARB")
 
 {-# NOINLINE glWeightuivARBFunPtr #-}
+
+-- | Usage: @'glWeightusvARB' size weights@
+--
+-- The length of @weights@ should be @size@.
+
 
 glWeightusvARB :: MonadIO m => GLint -> Ptr GLushort -> m ()
 glWeightusvARB = ffiintPtrushortIOV glWeightusvARBFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/VertexBufferObject.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/VertexBufferObject.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/VertexBufferObject.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/VertexBufferObject.hs
@@ -57,9 +57,19 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/vertex_buffer_object.txt GL_ARB_vertex_buffer_object> extension is available.
+
 gl_ARB_vertex_buffer_object :: Bool
 gl_ARB_vertex_buffer_object = member "GL_ARB_vertex_buffer_object" extensions
+{-# NOINLINE gl_ARB_vertex_buffer_object #-}
 
+-- | Usage: @'glBindBufferARB' target buffer@
+--
+-- The parameter @target@ is a @BufferTargetARB@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glBindBuffer'.
+
+
 glBindBufferARB :: MonadIO m => GLenum -> GLuint -> m ()
 glBindBufferARB = ffienumuintIOV glBindBufferARBFunPtr
 
@@ -68,6 +78,19 @@
 
 {-# NOINLINE glBindBufferARBFunPtr #-}
 
+-- | Usage: @'glBufferDataARB' target size data usage@
+--
+-- The parameter @target@ is a @BufferTargetARB@.
+--
+-- The parameter @size@ is a @BufferSizeARB@.
+--
+-- The parameter @usage@ is a @BufferUsageARB@.
+--
+-- The length of @data@ should be @size@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glBufferData'.
+
+
 glBufferDataARB :: MonadIO m => GLenum -> GLsizeiptrARB -> Ptr () -> GLenum -> m ()
 glBufferDataARB = ffienumsizeiptrARBPtrVenumIOV glBufferDataARBFunPtr
 
@@ -76,6 +99,19 @@
 
 {-# NOINLINE glBufferDataARBFunPtr #-}
 
+-- | Usage: @'glBufferSubDataARB' target offset size data@
+--
+-- The parameter @target@ is a @BufferTargetARB@.
+--
+-- The parameter @offset@ is a @BufferOffsetARB@.
+--
+-- The parameter @size@ is a @BufferSizeARB@.
+--
+-- The length of @data@ should be @size@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glBufferSubData'.
+
+
 glBufferSubDataARB :: MonadIO m => GLenum -> GLintptrARB -> GLsizeiptrARB -> Ptr () -> m ()
 glBufferSubDataARB = ffienumintptrARBsizeiptrARBPtrVIOV glBufferSubDataARBFunPtr
 
@@ -84,6 +120,13 @@
 
 {-# NOINLINE glBufferSubDataARBFunPtr #-}
 
+-- | Usage: @'glDeleteBuffersARB' n buffers@
+--
+-- The length of @buffers@ should be @n@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glDeleteBuffers'.
+
+
 glDeleteBuffersARB :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
 glDeleteBuffersARB = ffisizeiPtruintIOV glDeleteBuffersARBFunPtr
 
@@ -92,6 +135,13 @@
 
 {-# NOINLINE glDeleteBuffersARBFunPtr #-}
 
+-- | Usage: @'glGenBuffersARB' n buffers@
+--
+-- The length of @buffers@ should be @n@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glGenBuffers'.
+
+
 glGenBuffersARB :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
 glGenBuffersARB = ffisizeiPtruintIOV glGenBuffersARBFunPtr
 
@@ -100,6 +150,17 @@
 
 {-# NOINLINE glGenBuffersARBFunPtr #-}
 
+-- | Usage: @'glGetBufferParameterivARB' target pname params@
+--
+-- The parameter @target@ is a @BufferTargetARB@.
+--
+-- The parameter @pname@ is a @BufferPNameARB@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glGetBufferParameteriv'.
+
+
 glGetBufferParameterivARB :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
 glGetBufferParameterivARB = ffienumenumPtrintIOV glGetBufferParameterivARBFunPtr
 
@@ -108,14 +169,38 @@
 
 {-# NOINLINE glGetBufferParameterivARBFunPtr #-}
 
-glGetBufferPointervARB :: MonadIO m => GLenum -> GLenum -> Ptr () -> m ()
-glGetBufferPointervARB = ffienumenumPtrVIOV glGetBufferPointervARBFunPtr
+-- | Usage: @'glGetBufferPointervARB' target pname params@
+--
+-- The parameter @target@ is a @BufferTargetARB@.
+--
+-- The parameter @pname@ is a @BufferPointerNameARB@.
+--
+-- The length of @params@ should be @1@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glGetBufferPointerv'.
 
-glGetBufferPointervARBFunPtr :: FunPtr (GLenum -> GLenum -> Ptr () -> IO ())
+
+glGetBufferPointervARB :: MonadIO m => GLenum -> GLenum -> Ptr (Ptr ()) -> m ()
+glGetBufferPointervARB = ffienumenumPtrPtrVIOV glGetBufferPointervARBFunPtr
+
+glGetBufferPointervARBFunPtr :: FunPtr (GLenum -> GLenum -> Ptr (Ptr ()) -> IO ())
 glGetBufferPointervARBFunPtr = unsafePerformIO (getProcAddress "glGetBufferPointervARB")
 
 {-# NOINLINE glGetBufferPointervARBFunPtr #-}
 
+-- | Usage: @'glGetBufferSubDataARB' target offset size data@
+--
+-- The parameter @target@ is a @BufferTargetARB@.
+--
+-- The parameter @offset@ is a @BufferOffsetARB@.
+--
+-- The parameter @size@ is a @BufferSizeARB@.
+--
+-- The length of @data@ should be @size@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glGetBufferSubData'.
+
+
 glGetBufferSubDataARB :: MonadIO m => GLenum -> GLintptrARB -> GLsizeiptrARB -> Ptr () -> m ()
 glGetBufferSubDataARB = ffienumintptrARBsizeiptrARBPtrVIOV glGetBufferSubDataARBFunPtr
 
@@ -124,6 +209,11 @@
 
 {-# NOINLINE glGetBufferSubDataARBFunPtr #-}
 
+-- | Usage: @'glIsBufferARB' buffer@
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glIsBuffer'.
+
+
 glIsBufferARB :: MonadIO m => GLuint -> m GLboolean
 glIsBufferARB = ffiuintIOboolean glIsBufferARBFunPtr
 
@@ -132,6 +222,15 @@
 
 {-# NOINLINE glIsBufferARBFunPtr #-}
 
+-- | Usage: @'glMapBufferARB' target access@
+--
+-- The parameter @target@ is a @BufferTargetARB@.
+--
+-- The parameter @access@ is a @BufferAccessARB@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glMapBuffer'.
+
+
 glMapBufferARB :: MonadIO m => GLenum -> GLenum -> m (Ptr ())
 glMapBufferARB = ffienumenumIOPtrV glMapBufferARBFunPtr
 
@@ -139,6 +238,13 @@
 glMapBufferARBFunPtr = unsafePerformIO (getProcAddress "glMapBufferARB")
 
 {-# NOINLINE glMapBufferARBFunPtr #-}
+
+-- | Usage: @'glUnmapBufferARB' target@
+--
+-- The parameter @target@ is a @BufferTargetARB@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glUnmapBuffer'.
+
 
 glUnmapBufferARB :: MonadIO m => GLenum -> m GLboolean
 glUnmapBufferARB = ffienumIOboolean glUnmapBufferARBFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/VertexProgram.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/VertexProgram.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/VertexProgram.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/VertexProgram.hs
@@ -152,8 +152,11 @@
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/vertex_program.txt GL_ARB_vertex_program> extension is available.
+
 gl_ARB_vertex_program :: Bool
 gl_ARB_vertex_program = member "GL_ARB_vertex_program" extensions
+{-# NOINLINE gl_ARB_vertex_program #-}
 
 pattern GL_COLOR_SUM_ARB = 0x8458
 
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/VertexShader.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/VertexShader.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/VertexShader.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/VertexShader.hs
@@ -88,9 +88,19 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/vertex_shader.txt GL_ARB_vertex_shader> extension is available.
+
 gl_ARB_vertex_shader :: Bool
 gl_ARB_vertex_shader = member "GL_ARB_vertex_shader" extensions
+{-# NOINLINE gl_ARB_vertex_shader #-}
 
+-- | Usage: @'glBindAttribLocationARB' programObj index name@
+--
+-- The parameter @programObj@ is a @handleARB@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glBindAttribLocation'.
+
+
 glBindAttribLocationARB :: MonadIO m => GLhandleARB -> GLuint -> Ptr GLcharARB -> m ()
 glBindAttribLocationARB = ffihandleARBuintPtrcharARBIOV glBindAttribLocationARBFunPtr
 
@@ -99,6 +109,21 @@
 
 {-# NOINLINE glBindAttribLocationARBFunPtr #-}
 
+-- | Usage: @'glGetActiveAttribARB' programObj index maxLength length size type name@
+--
+-- The parameter @programObj@ is a @handleARB@.
+--
+-- The length of @length@ should be @1@.
+--
+-- The length of @size@ should be @1@.
+--
+-- The length of @type@ should be @1@.
+--
+-- The length of @name@ should be @maxLength@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glGetActiveAttrib'.
+
+
 glGetActiveAttribARB :: MonadIO m => GLhandleARB -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLint -> Ptr GLenum -> Ptr GLcharARB -> m ()
 glGetActiveAttribARB = ffihandleARBuintsizeiPtrsizeiPtrintPtrenumPtrcharARBIOV glGetActiveAttribARBFunPtr
 
@@ -106,6 +131,13 @@
 glGetActiveAttribARBFunPtr = unsafePerformIO (getProcAddress "glGetActiveAttribARB")
 
 {-# NOINLINE glGetActiveAttribARBFunPtr #-}
+
+-- | Usage: @'glGetAttribLocationARB' programObj name@
+--
+-- The parameter @programObj@ is a @handleARB@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glGetAttribLocation'.
+
 
 glGetAttribLocationARB :: MonadIO m => GLhandleARB -> Ptr GLcharARB -> m GLint
 glGetAttribLocationARB = ffihandleARBPtrcharARBIOint glGetAttribLocationARBFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/VertexType10f11f11fRev.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/VertexType10f11f11fRev.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/VertexType10f11f11fRev.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/VertexType10f11f11fRev.hs
@@ -12,5 +12,8 @@
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/vertex_type_10f_11f_11f_rev.txt GL_ARB_vertex_type_10f_11f_11f_rev> extension is available.
+
 gl_ARB_vertex_type_10f_11f_11f_rev :: Bool
 gl_ARB_vertex_type_10f_11f_11f_rev = member "GL_ARB_vertex_type_10f_11f_11f_rev" extensions
+{-# NOINLINE gl_ARB_vertex_type_10f_11f_11f_rev #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/VertexType2101010Rev.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/VertexType2101010Rev.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/VertexType2101010Rev.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/VertexType2101010Rev.hs
@@ -51,5 +51,8 @@
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/vertex_type_2_10_10_10_rev.txt GL_ARB_vertex_type_2_10_10_10_rev> extension is available.
+
 gl_ARB_vertex_type_2_10_10_10_rev :: Bool
 gl_ARB_vertex_type_2_10_10_10_rev = member "GL_ARB_vertex_type_2_10_10_10_rev" extensions
+{-# NOINLINE gl_ARB_vertex_type_2_10_10_10_rev #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ViewportArray.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ViewportArray.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ViewportArray.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ViewportArray.hs
@@ -34,5 +34,8 @@
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/viewport_array.txt GL_ARB_viewport_array> extension is available.
+
 gl_ARB_viewport_array :: Bool
 gl_ARB_viewport_array = member "GL_ARB_viewport_array" extensions
+{-# NOINLINE gl_ARB_viewport_array #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/WindowPos.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/WindowPos.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/WindowPos.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/WindowPos.hs
@@ -31,9 +31,23 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/window_pos.txt GL_ARB_window_pos> extension is available.
+
 gl_ARB_window_pos :: Bool
 gl_ARB_window_pos = member "GL_ARB_window_pos" extensions
+{-# NOINLINE gl_ARB_window_pos #-}
 
+-- | Usage: @'glWindowPos2dARB' x y@
+--
+-- The parameter @x@ is a @CoordD@.
+--
+-- The parameter @y@ is a @CoordD@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glWindowPos2d'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Extension.ARB.WindowPos.glWindowPos2dvARB'.
+
+
 glWindowPos2dARB :: MonadIO m => GLdouble -> GLdouble -> m ()
 glWindowPos2dARB = ffidoubledoubleIOV glWindowPos2dARBFunPtr
 
@@ -42,6 +56,15 @@
 
 {-# NOINLINE glWindowPos2dARBFunPtr #-}
 
+-- | Usage: @'glWindowPos2dvARB' v@
+--
+-- The parameter @v@ is a @CoordD@.
+--
+-- The length of @v@ should be @2@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glWindowPos2dv'.
+
+
 glWindowPos2dvARB :: MonadIO m => Ptr GLdouble -> m ()
 glWindowPos2dvARB = ffiPtrdoubleIOV glWindowPos2dvARBFunPtr
 
@@ -50,6 +73,17 @@
 
 {-# NOINLINE glWindowPos2dvARBFunPtr #-}
 
+-- | Usage: @'glWindowPos2fARB' x y@
+--
+-- The parameter @x@ is a @CoordF@.
+--
+-- The parameter @y@ is a @CoordF@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glWindowPos2f'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Extension.ARB.WindowPos.glWindowPos2fvARB'.
+
+
 glWindowPos2fARB :: MonadIO m => GLfloat -> GLfloat -> m ()
 glWindowPos2fARB = ffifloatfloatIOV glWindowPos2fARBFunPtr
 
@@ -58,6 +92,15 @@
 
 {-# NOINLINE glWindowPos2fARBFunPtr #-}
 
+-- | Usage: @'glWindowPos2fvARB' v@
+--
+-- The parameter @v@ is a @CoordF@.
+--
+-- The length of @v@ should be @2@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glWindowPos2fv'.
+
+
 glWindowPos2fvARB :: MonadIO m => Ptr GLfloat -> m ()
 glWindowPos2fvARB = ffiPtrfloatIOV glWindowPos2fvARBFunPtr
 
@@ -66,6 +109,17 @@
 
 {-# NOINLINE glWindowPos2fvARBFunPtr #-}
 
+-- | Usage: @'glWindowPos2iARB' x y@
+--
+-- The parameter @x@ is a @CoordI@.
+--
+-- The parameter @y@ is a @CoordI@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glWindowPos2i'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Extension.ARB.WindowPos.glWindowPos2ivARB'.
+
+
 glWindowPos2iARB :: MonadIO m => GLint -> GLint -> m ()
 glWindowPos2iARB = ffiintintIOV glWindowPos2iARBFunPtr
 
@@ -74,6 +128,15 @@
 
 {-# NOINLINE glWindowPos2iARBFunPtr #-}
 
+-- | Usage: @'glWindowPos2ivARB' v@
+--
+-- The parameter @v@ is a @CoordI@.
+--
+-- The length of @v@ should be @2@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glWindowPos2iv'.
+
+
 glWindowPos2ivARB :: MonadIO m => Ptr GLint -> m ()
 glWindowPos2ivARB = ffiPtrintIOV glWindowPos2ivARBFunPtr
 
@@ -82,6 +145,17 @@
 
 {-# NOINLINE glWindowPos2ivARBFunPtr #-}
 
+-- | Usage: @'glWindowPos2sARB' x y@
+--
+-- The parameter @x@ is a @CoordS@.
+--
+-- The parameter @y@ is a @CoordS@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glWindowPos2s'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Extension.ARB.WindowPos.glWindowPos2svARB'.
+
+
 glWindowPos2sARB :: MonadIO m => GLshort -> GLshort -> m ()
 glWindowPos2sARB = ffishortshortIOV glWindowPos2sARBFunPtr
 
@@ -90,6 +164,15 @@
 
 {-# NOINLINE glWindowPos2sARBFunPtr #-}
 
+-- | Usage: @'glWindowPos2svARB' v@
+--
+-- The parameter @v@ is a @CoordS@.
+--
+-- The length of @v@ should be @2@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glWindowPos2sv'.
+
+
 glWindowPos2svARB :: MonadIO m => Ptr GLshort -> m ()
 glWindowPos2svARB = ffiPtrshortIOV glWindowPos2svARBFunPtr
 
@@ -98,6 +181,19 @@
 
 {-# NOINLINE glWindowPos2svARBFunPtr #-}
 
+-- | Usage: @'glWindowPos3dARB' x y z@
+--
+-- The parameter @x@ is a @CoordD@.
+--
+-- The parameter @y@ is a @CoordD@.
+--
+-- The parameter @z@ is a @CoordD@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glWindowPos3d'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Extension.ARB.WindowPos.glWindowPos3dvARB'.
+
+
 glWindowPos3dARB :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()
 glWindowPos3dARB = ffidoubledoubledoubleIOV glWindowPos3dARBFunPtr
 
@@ -106,6 +202,15 @@
 
 {-# NOINLINE glWindowPos3dARBFunPtr #-}
 
+-- | Usage: @'glWindowPos3dvARB' v@
+--
+-- The parameter @v@ is a @CoordD@.
+--
+-- The length of @v@ should be @3@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glWindowPos3dv'.
+
+
 glWindowPos3dvARB :: MonadIO m => Ptr GLdouble -> m ()
 glWindowPos3dvARB = ffiPtrdoubleIOV glWindowPos3dvARBFunPtr
 
@@ -114,6 +219,19 @@
 
 {-# NOINLINE glWindowPos3dvARBFunPtr #-}
 
+-- | Usage: @'glWindowPos3fARB' x y z@
+--
+-- The parameter @x@ is a @CoordF@.
+--
+-- The parameter @y@ is a @CoordF@.
+--
+-- The parameter @z@ is a @CoordF@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glWindowPos3f'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Extension.ARB.WindowPos.glWindowPos3fvARB'.
+
+
 glWindowPos3fARB :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()
 glWindowPos3fARB = ffifloatfloatfloatIOV glWindowPos3fARBFunPtr
 
@@ -122,6 +240,15 @@
 
 {-# NOINLINE glWindowPos3fARBFunPtr #-}
 
+-- | Usage: @'glWindowPos3fvARB' v@
+--
+-- The parameter @v@ is a @CoordF@.
+--
+-- The length of @v@ should be @3@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glWindowPos3fv'.
+
+
 glWindowPos3fvARB :: MonadIO m => Ptr GLfloat -> m ()
 glWindowPos3fvARB = ffiPtrfloatIOV glWindowPos3fvARBFunPtr
 
@@ -130,6 +257,19 @@
 
 {-# NOINLINE glWindowPos3fvARBFunPtr #-}
 
+-- | Usage: @'glWindowPos3iARB' x y z@
+--
+-- The parameter @x@ is a @CoordI@.
+--
+-- The parameter @y@ is a @CoordI@.
+--
+-- The parameter @z@ is a @CoordI@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glWindowPos3i'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Extension.ARB.WindowPos.glWindowPos3ivARB'.
+
+
 glWindowPos3iARB :: MonadIO m => GLint -> GLint -> GLint -> m ()
 glWindowPos3iARB = ffiintintintIOV glWindowPos3iARBFunPtr
 
@@ -138,6 +278,15 @@
 
 {-# NOINLINE glWindowPos3iARBFunPtr #-}
 
+-- | Usage: @'glWindowPos3ivARB' v@
+--
+-- The parameter @v@ is a @CoordI@.
+--
+-- The length of @v@ should be @3@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glWindowPos3iv'.
+
+
 glWindowPos3ivARB :: MonadIO m => Ptr GLint -> m ()
 glWindowPos3ivARB = ffiPtrintIOV glWindowPos3ivARBFunPtr
 
@@ -146,6 +295,19 @@
 
 {-# NOINLINE glWindowPos3ivARBFunPtr #-}
 
+-- | Usage: @'glWindowPos3sARB' x y z@
+--
+-- The parameter @x@ is a @CoordS@.
+--
+-- The parameter @y@ is a @CoordS@.
+--
+-- The parameter @z@ is a @CoordS@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glWindowPos3s'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Extension.ARB.WindowPos.glWindowPos3svARB'.
+
+
 glWindowPos3sARB :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()
 glWindowPos3sARB = ffishortshortshortIOV glWindowPos3sARBFunPtr
 
@@ -153,6 +315,15 @@
 glWindowPos3sARBFunPtr = unsafePerformIO (getProcAddress "glWindowPos3sARB")
 
 {-# NOINLINE glWindowPos3sARBFunPtr #-}
+
+-- | Usage: @'glWindowPos3svARB' v@
+--
+-- The parameter @v@ is a @CoordS@.
+--
+-- The length of @v@ should be @3@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glWindowPos3sv'.
+
 
 glWindowPos3svARB :: MonadIO m => Ptr GLshort -> m ()
 glWindowPos3svARB = ffiPtrshortIOV glWindowPos3svARBFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARM/MaliProgramBinary.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARM/MaliProgramBinary.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARM/MaliProgramBinary.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARM/MaliProgramBinary.hs
@@ -11,7 +11,10 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the GL_ARM_mali_program_binary extension is available.
+
 gl_ARM_mali_program_binary :: Bool
 gl_ARM_mali_program_binary = member "GL_ARM_mali_program_binary" extensions
+{-# NOINLINE gl_ARM_mali_program_binary #-}
 
 pattern GL_MALI_PROGRAM_BINARY_ARM = 0x8F61
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARM/MaliShaderBinary.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARM/MaliShaderBinary.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARM/MaliShaderBinary.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARM/MaliShaderBinary.hs
@@ -11,7 +11,10 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the GL_ARM_mali_shader_binary extension is available.
+
 gl_ARM_mali_shader_binary :: Bool
 gl_ARM_mali_shader_binary = member "GL_ARM_mali_shader_binary" extensions
+{-# NOINLINE gl_ARM_mali_shader_binary #-}
 
 pattern GL_MALI_SHADER_BINARY_ARM = 0x8F60
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARM/Rgba8.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARM/Rgba8.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARM/Rgba8.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARM/Rgba8.hs
@@ -8,5 +8,8 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the GL_ARM_rgba8 extension is available.
+
 gl_ARM_rgba8 :: Bool
 gl_ARM_rgba8 = member "GL_ARM_rgba8" extensions
+{-# NOINLINE gl_ARM_rgba8 #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARM/ShaderFramebufferFetch.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARM/ShaderFramebufferFetch.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARM/ShaderFramebufferFetch.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARM/ShaderFramebufferFetch.hs
@@ -12,8 +12,11 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the GL_ARM_shader_framebuffer_fetch extension is available.
+
 gl_ARM_shader_framebuffer_fetch :: Bool
 gl_ARM_shader_framebuffer_fetch = member "GL_ARM_shader_framebuffer_fetch" extensions
+{-# NOINLINE gl_ARM_shader_framebuffer_fetch #-}
 
 pattern GL_FETCH_PER_SAMPLE_ARM = 0x8F65
 
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARM/ShaderFramebufferFetchDepthStencil.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARM/ShaderFramebufferFetchDepthStencil.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARM/ShaderFramebufferFetchDepthStencil.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARM/ShaderFramebufferFetchDepthStencil.hs
@@ -8,5 +8,8 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the GL_ARM_shader_framebuffer_fetch_depth_stencil extension is available.
+
 gl_ARM_shader_framebuffer_fetch_depth_stencil :: Bool
 gl_ARM_shader_framebuffer_fetch_depth_stencil = member "GL_ARM_shader_framebuffer_fetch_depth_stencil" extensions
+{-# NOINLINE gl_ARM_shader_framebuffer_fetch_depth_stencil #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ATI/DrawBuffers.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ATI/DrawBuffers.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ATI/DrawBuffers.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ATI/DrawBuffers.hs
@@ -33,8 +33,20 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ATI/draw_buffers.txt GL_ATI_draw_buffers> extension is available.
+
 gl_ATI_draw_buffers :: Bool
 gl_ATI_draw_buffers = member "GL_ATI_draw_buffers" extensions
+{-# NOINLINE gl_ATI_draw_buffers #-}
+
+-- | Usage: @'glDrawBuffersATI' n bufs@
+--
+-- The parameter @bufs@ is a @DrawBufferModeATI@.
+--
+-- The length of @bufs@ should be @n@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glDrawBuffers'.
+
 
 glDrawBuffersATI :: MonadIO m => GLsizei -> Ptr GLenum -> m ()
 glDrawBuffersATI = ffisizeiPtrenumIOV glDrawBuffersATIFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ATI/ElementArray.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ATI/ElementArray.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ATI/ElementArray.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ATI/ElementArray.hs
@@ -21,9 +21,17 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ATI/element_array.txt GL_ATI_element_array> extension is available.
+
 gl_ATI_element_array :: Bool
 gl_ATI_element_array = member "GL_ATI_element_array" extensions
+{-# NOINLINE gl_ATI_element_array #-}
 
+-- | Usage: @'glDrawElementArrayATI' mode count@
+--
+-- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_LINES', 'Graphics.GL.Raw.Profile.Core32.GL_LINES_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Raw.Profile.Core32.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PATCHES', 'Graphics.GL.Raw.Extension.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_POINTS', 'Graphics.GL.Raw.Internal.Shared.GL_POLYGON', 'Graphics.GL.Raw.Internal.Shared.GL_QUADS', 'Graphics.GL.Raw.Extension.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Raw.Profile.Core32.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Raw.Profile.Core32.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
+
+
 glDrawElementArrayATI :: MonadIO m => GLenum -> GLsizei -> m ()
 glDrawElementArrayATI = ffienumsizeiIOV glDrawElementArrayATIFunPtr
 
@@ -32,6 +40,11 @@
 
 {-# NOINLINE glDrawElementArrayATIFunPtr #-}
 
+-- | Usage: @'glDrawRangeElementArrayATI' mode start end count@
+--
+-- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_LINES', 'Graphics.GL.Raw.Profile.Core32.GL_LINES_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Raw.Profile.Core32.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PATCHES', 'Graphics.GL.Raw.Extension.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_POINTS', 'Graphics.GL.Raw.Internal.Shared.GL_POLYGON', 'Graphics.GL.Raw.Internal.Shared.GL_QUADS', 'Graphics.GL.Raw.Extension.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Raw.Profile.Core32.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Raw.Profile.Core32.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
+
+
 glDrawRangeElementArrayATI :: MonadIO m => GLenum -> GLuint -> GLuint -> GLsizei -> m ()
 glDrawRangeElementArrayATI = ffienumuintuintsizeiIOV glDrawRangeElementArrayATIFunPtr
 
@@ -39,6 +52,13 @@
 glDrawRangeElementArrayATIFunPtr = unsafePerformIO (getProcAddress "glDrawRangeElementArrayATI")
 
 {-# NOINLINE glDrawRangeElementArrayATIFunPtr #-}
+
+-- | Usage: @'glElementPointerATI' type pointer@
+--
+-- The parameter @type@ is a @ElementPointerTypeATI@.
+--
+-- The length of @pointer@ should be @COMPSIZE(type)@.
+
 
 glElementPointerATI :: MonadIO m => GLenum -> Ptr () -> m ()
 glElementPointerATI = ffienumPtrVIOV glElementPointerATIFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ATI/EnvmapBumpmap.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ATI/EnvmapBumpmap.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ATI/EnvmapBumpmap.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ATI/EnvmapBumpmap.hs
@@ -27,9 +27,19 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ATI/envmap_bumpmap.txt GL_ATI_envmap_bumpmap> extension is available.
+
 gl_ATI_envmap_bumpmap :: Bool
 gl_ATI_envmap_bumpmap = member "GL_ATI_envmap_bumpmap" extensions
+{-# NOINLINE gl_ATI_envmap_bumpmap #-}
 
+-- | Usage: @'glGetTexBumpParameterfvATI' pname param@
+--
+-- The parameter @pname@ is a @GetTexBumpParameterATI@.
+--
+-- The length of @param@ should be @COMPSIZE(pname)@.
+
+
 glGetTexBumpParameterfvATI :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
 glGetTexBumpParameterfvATI = ffienumPtrfloatIOV glGetTexBumpParameterfvATIFunPtr
 
@@ -38,6 +48,13 @@
 
 {-# NOINLINE glGetTexBumpParameterfvATIFunPtr #-}
 
+-- | Usage: @'glGetTexBumpParameterivATI' pname param@
+--
+-- The parameter @pname@ is a @GetTexBumpParameterATI@.
+--
+-- The length of @param@ should be @COMPSIZE(pname)@.
+
+
 glGetTexBumpParameterivATI :: MonadIO m => GLenum -> Ptr GLint -> m ()
 glGetTexBumpParameterivATI = ffienumPtrintIOV glGetTexBumpParameterivATIFunPtr
 
@@ -46,6 +63,13 @@
 
 {-# NOINLINE glGetTexBumpParameterivATIFunPtr #-}
 
+-- | Usage: @'glTexBumpParameterfvATI' pname param@
+--
+-- The parameter @pname@ is a @TexBumpParameterATI@.
+--
+-- The length of @param@ should be @COMPSIZE(pname)@.
+
+
 glTexBumpParameterfvATI :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
 glTexBumpParameterfvATI = ffienumPtrfloatIOV glTexBumpParameterfvATIFunPtr
 
@@ -53,6 +77,13 @@
 glTexBumpParameterfvATIFunPtr = unsafePerformIO (getProcAddress "glTexBumpParameterfvATI")
 
 {-# NOINLINE glTexBumpParameterfvATIFunPtr #-}
+
+-- | Usage: @'glTexBumpParameterivATI' pname param@
+--
+-- The parameter @pname@ is a @TexBumpParameterATI@.
+--
+-- The length of @param@ should be @COMPSIZE(pname)@.
+
 
 glTexBumpParameterivATI :: MonadIO m => GLenum -> Ptr GLint -> m ()
 glTexBumpParameterivATI = ffienumPtrintIOV glTexBumpParameterivATIFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ATI/FragmentShader.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ATI/FragmentShader.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ATI/FragmentShader.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ATI/FragmentShader.hs
@@ -133,9 +133,17 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ATI/fragment_shader.txt GL_ATI_fragment_shader> extension is available.
+
 gl_ATI_fragment_shader :: Bool
 gl_ATI_fragment_shader = member "GL_ATI_fragment_shader" extensions
+{-# NOINLINE gl_ATI_fragment_shader #-}
 
+-- | Usage: @'glAlphaFragmentOp1ATI' op dst dstMod arg1 arg1Rep arg1Mod@
+--
+-- The parameter @op@ is a @FragmentOpATI@.
+
+
 glAlphaFragmentOp1ATI :: MonadIO m => GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
 glAlphaFragmentOp1ATI = ffienumuintuintuintuintuintIOV glAlphaFragmentOp1ATIFunPtr
 
@@ -144,6 +152,11 @@
 
 {-# NOINLINE glAlphaFragmentOp1ATIFunPtr #-}
 
+-- | Usage: @'glAlphaFragmentOp2ATI' op dst dstMod arg1 arg1Rep arg1Mod arg2 arg2Rep arg2Mod@
+--
+-- The parameter @op@ is a @FragmentOpATI@.
+
+
 glAlphaFragmentOp2ATI :: MonadIO m => GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
 glAlphaFragmentOp2ATI = ffienumuintuintuintuintuintuintuintuintIOV glAlphaFragmentOp2ATIFunPtr
 
@@ -152,6 +165,11 @@
 
 {-# NOINLINE glAlphaFragmentOp2ATIFunPtr #-}
 
+-- | Usage: @'glAlphaFragmentOp3ATI' op dst dstMod arg1 arg1Rep arg1Mod arg2 arg2Rep arg2Mod arg3 arg3Rep arg3Mod@
+--
+-- The parameter @op@ is a @FragmentOpATI@.
+
+
 glAlphaFragmentOp3ATI :: MonadIO m => GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
 glAlphaFragmentOp3ATI = ffienumuintuintuintuintuintuintuintuintuintuintuintIOV glAlphaFragmentOp3ATIFunPtr
 
@@ -160,6 +178,9 @@
 
 {-# NOINLINE glAlphaFragmentOp3ATIFunPtr #-}
 
+-- | Usage: @'glBeginFragmentShaderATI'@
+
+
 glBeginFragmentShaderATI :: MonadIO m => m ()
 glBeginFragmentShaderATI = ffiIOV glBeginFragmentShaderATIFunPtr
 
@@ -168,6 +189,9 @@
 
 {-# NOINLINE glBeginFragmentShaderATIFunPtr #-}
 
+-- | Usage: @'glBindFragmentShaderATI' id@
+
+
 glBindFragmentShaderATI :: MonadIO m => GLuint -> m ()
 glBindFragmentShaderATI = ffiuintIOV glBindFragmentShaderATIFunPtr
 
@@ -176,6 +200,11 @@
 
 {-# NOINLINE glBindFragmentShaderATIFunPtr #-}
 
+-- | Usage: @'glColorFragmentOp1ATI' op dst dstMask dstMod arg1 arg1Rep arg1Mod@
+--
+-- The parameter @op@ is a @FragmentOpATI@.
+
+
 glColorFragmentOp1ATI :: MonadIO m => GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
 glColorFragmentOp1ATI = ffienumuintuintuintuintuintuintIOV glColorFragmentOp1ATIFunPtr
 
@@ -184,6 +213,11 @@
 
 {-# NOINLINE glColorFragmentOp1ATIFunPtr #-}
 
+-- | Usage: @'glColorFragmentOp2ATI' op dst dstMask dstMod arg1 arg1Rep arg1Mod arg2 arg2Rep arg2Mod@
+--
+-- The parameter @op@ is a @FragmentOpATI@.
+
+
 glColorFragmentOp2ATI :: MonadIO m => GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
 glColorFragmentOp2ATI = ffienumuintuintuintuintuintuintuintuintuintIOV glColorFragmentOp2ATIFunPtr
 
@@ -192,6 +226,11 @@
 
 {-# NOINLINE glColorFragmentOp2ATIFunPtr #-}
 
+-- | Usage: @'glColorFragmentOp3ATI' op dst dstMask dstMod arg1 arg1Rep arg1Mod arg2 arg2Rep arg2Mod arg3 arg3Rep arg3Mod@
+--
+-- The parameter @op@ is a @FragmentOpATI@.
+
+
 glColorFragmentOp3ATI :: MonadIO m => GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
 glColorFragmentOp3ATI = ffienumuintuintuintuintuintuintuintuintuintuintuintuintIOV glColorFragmentOp3ATIFunPtr
 
@@ -200,6 +239,9 @@
 
 {-# NOINLINE glColorFragmentOp3ATIFunPtr #-}
 
+-- | Usage: @'glDeleteFragmentShaderATI' id@
+
+
 glDeleteFragmentShaderATI :: MonadIO m => GLuint -> m ()
 glDeleteFragmentShaderATI = ffiuintIOV glDeleteFragmentShaderATIFunPtr
 
@@ -208,6 +250,9 @@
 
 {-# NOINLINE glDeleteFragmentShaderATIFunPtr #-}
 
+-- | Usage: @'glEndFragmentShaderATI'@
+
+
 glEndFragmentShaderATI :: MonadIO m => m ()
 glEndFragmentShaderATI = ffiIOV glEndFragmentShaderATIFunPtr
 
@@ -216,6 +261,9 @@
 
 {-# NOINLINE glEndFragmentShaderATIFunPtr #-}
 
+-- | Usage: @'glGenFragmentShadersATI' range@
+
+
 glGenFragmentShadersATI :: MonadIO m => GLuint -> m GLuint
 glGenFragmentShadersATI = ffiuintIOuint glGenFragmentShadersATIFunPtr
 
@@ -224,6 +272,11 @@
 
 {-# NOINLINE glGenFragmentShadersATIFunPtr #-}
 
+-- | Usage: @'glPassTexCoordATI' dst coord swizzle@
+--
+-- The parameter @swizzle@ is a @SwizzleOpATI@.
+
+
 glPassTexCoordATI :: MonadIO m => GLuint -> GLuint -> GLenum -> m ()
 glPassTexCoordATI = ffiuintuintenumIOV glPassTexCoordATIFunPtr
 
@@ -232,6 +285,11 @@
 
 {-# NOINLINE glPassTexCoordATIFunPtr #-}
 
+-- | Usage: @'glSampleMapATI' dst interp swizzle@
+--
+-- The parameter @swizzle@ is a @SwizzleOpATI@.
+
+
 glSampleMapATI :: MonadIO m => GLuint -> GLuint -> GLenum -> m ()
 glSampleMapATI = ffiuintuintenumIOV glSampleMapATIFunPtr
 
@@ -239,6 +297,11 @@
 glSampleMapATIFunPtr = unsafePerformIO (getProcAddress "glSampleMapATI")
 
 {-# NOINLINE glSampleMapATIFunPtr #-}
+
+-- | Usage: @'glSetFragmentShaderConstantATI' dst value@
+--
+-- The length of @value@ should be @4@.
+
 
 glSetFragmentShaderConstantATI :: MonadIO m => GLuint -> Ptr GLfloat -> m ()
 glSetFragmentShaderConstantATI = ffiuintPtrfloatIOV glSetFragmentShaderConstantATIFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ATI/MapObjectBuffer.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ATI/MapObjectBuffer.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ATI/MapObjectBuffer.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ATI/MapObjectBuffer.hs
@@ -17,9 +17,15 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ATI/map_object_buffer.txt GL_ATI_map_object_buffer> extension is available.
+
 gl_ATI_map_object_buffer :: Bool
 gl_ATI_map_object_buffer = member "GL_ATI_map_object_buffer" extensions
+{-# NOINLINE gl_ATI_map_object_buffer #-}
 
+-- | Usage: @'glMapObjectBufferATI' buffer@
+
+
 glMapObjectBufferATI :: MonadIO m => GLuint -> m (Ptr ())
 glMapObjectBufferATI = ffiuintIOPtrV glMapObjectBufferATIFunPtr
 
@@ -27,6 +33,9 @@
 glMapObjectBufferATIFunPtr = unsafePerformIO (getProcAddress "glMapObjectBufferATI")
 
 {-# NOINLINE glMapObjectBufferATIFunPtr #-}
+
+-- | Usage: @'glUnmapObjectBufferATI' buffer@
+
 
 glUnmapObjectBufferATI :: MonadIO m => GLuint -> m ()
 glUnmapObjectBufferATI = ffiuintIOV glUnmapObjectBufferATIFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ATI/Meminfo.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ATI/Meminfo.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ATI/Meminfo.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ATI/Meminfo.hs
@@ -13,8 +13,11 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ATI/meminfo.txt GL_ATI_meminfo> extension is available.
+
 gl_ATI_meminfo :: Bool
 gl_ATI_meminfo = member "GL_ATI_meminfo" extensions
+{-# NOINLINE gl_ATI_meminfo #-}
 
 pattern GL_RENDERBUFFER_FREE_MEMORY_ATI = 0x87FD
 
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ATI/PixelFormatFloat.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ATI/PixelFormatFloat.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ATI/PixelFormatFloat.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ATI/PixelFormatFloat.hs
@@ -12,8 +12,11 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ATI/pixel_format_float.txt GL_ATI_pixel_format_float> extension is available.
+
 gl_ATI_pixel_format_float :: Bool
 gl_ATI_pixel_format_float = member "GL_ATI_pixel_format_float" extensions
+{-# NOINLINE gl_ATI_pixel_format_float #-}
 
 pattern GL_COLOR_CLEAR_UNCLAMPED_VALUE_ATI = 0x8835
 
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ATI/PnTriangles.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ATI/PnTriangles.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ATI/PnTriangles.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ATI/PnTriangles.hs
@@ -26,9 +26,17 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ATI/pn_triangles.txt GL_ATI_pn_triangles> extension is available.
+
 gl_ATI_pn_triangles :: Bool
 gl_ATI_pn_triangles = member "GL_ATI_pn_triangles" extensions
+{-# NOINLINE gl_ATI_pn_triangles #-}
 
+-- | Usage: @'glPNTrianglesfATI' pname param@
+--
+-- The parameter @pname@ is a @PNTrianglesPNameATI@.
+
+
 glPNTrianglesfATI :: MonadIO m => GLenum -> GLfloat -> m ()
 glPNTrianglesfATI = ffienumfloatIOV glPNTrianglesfATIFunPtr
 
@@ -36,6 +44,11 @@
 glPNTrianglesfATIFunPtr = unsafePerformIO (getProcAddress "glPNTrianglesfATI")
 
 {-# NOINLINE glPNTrianglesfATIFunPtr #-}
+
+-- | Usage: @'glPNTrianglesiATI' pname param@
+--
+-- The parameter @pname@ is a @PNTrianglesPNameATI@.
+
 
 glPNTrianglesiATI :: MonadIO m => GLenum -> GLint -> m ()
 glPNTrianglesiATI = ffienumintIOV glPNTrianglesiATIFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ATI/SeparateStencil.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ATI/SeparateStencil.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ATI/SeparateStencil.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ATI/SeparateStencil.hs
@@ -21,9 +21,23 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ATI/separate_stencil.txt GL_ATI_separate_stencil> extension is available.
+
 gl_ATI_separate_stencil :: Bool
 gl_ATI_separate_stencil = member "GL_ATI_separate_stencil" extensions
+{-# NOINLINE gl_ATI_separate_stencil #-}
 
+-- | Usage: @'glStencilFuncSeparateATI' frontfunc backfunc ref mask@
+--
+-- The parameter @frontfunc@ is a @StencilFunction@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_ALWAYS', 'Graphics.GL.Raw.Internal.Shared.GL_EQUAL', 'Graphics.GL.Raw.Internal.Shared.GL_GEQUAL', 'Graphics.GL.Raw.Internal.Shared.GL_GREATER', 'Graphics.GL.Raw.Internal.Shared.GL_LEQUAL', 'Graphics.GL.Raw.Internal.Shared.GL_LESS', 'Graphics.GL.Raw.Internal.Shared.GL_NEVER', 'Graphics.GL.Raw.Internal.Shared.GL_NOTEQUAL'.
+--
+-- The parameter @backfunc@ is a @StencilFunction@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_ALWAYS', 'Graphics.GL.Raw.Internal.Shared.GL_EQUAL', 'Graphics.GL.Raw.Internal.Shared.GL_GEQUAL', 'Graphics.GL.Raw.Internal.Shared.GL_GREATER', 'Graphics.GL.Raw.Internal.Shared.GL_LEQUAL', 'Graphics.GL.Raw.Internal.Shared.GL_LESS', 'Graphics.GL.Raw.Internal.Shared.GL_NEVER', 'Graphics.GL.Raw.Internal.Shared.GL_NOTEQUAL'.
+--
+-- The parameter @ref@ is a @ClampedStencilValue@.
+--
+-- The parameter @mask@ is a @MaskedStencilValue@.
+
+
 glStencilFuncSeparateATI :: MonadIO m => GLenum -> GLenum -> GLint -> GLuint -> m ()
 glStencilFuncSeparateATI = ffienumenumintuintIOV glStencilFuncSeparateATIFunPtr
 
@@ -31,6 +45,19 @@
 glStencilFuncSeparateATIFunPtr = unsafePerformIO (getProcAddress "glStencilFuncSeparateATI")
 
 {-# NOINLINE glStencilFuncSeparateATIFunPtr #-}
+
+-- | Usage: @'glStencilOpSeparateATI' face sfail dpfail dppass@
+--
+-- The parameter @face@ is a @StencilFaceDirection@.
+--
+-- The parameter @sfail@ is a @StencilOp@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_DECR', 'Graphics.GL.Raw.Internal.Shared.GL_INCR', 'Graphics.GL.Raw.Internal.Shared.GL_INVERT', 'Graphics.GL.Raw.Internal.Shared.GL_KEEP', 'Graphics.GL.Raw.Internal.Shared.GL_REPLACE', 'Graphics.GL.Raw.Internal.Shared.GL_ZERO'.
+--
+-- The parameter @dpfail@ is a @StencilOp@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_DECR', 'Graphics.GL.Raw.Internal.Shared.GL_INCR', 'Graphics.GL.Raw.Internal.Shared.GL_INVERT', 'Graphics.GL.Raw.Internal.Shared.GL_KEEP', 'Graphics.GL.Raw.Internal.Shared.GL_REPLACE', 'Graphics.GL.Raw.Internal.Shared.GL_ZERO'.
+--
+-- The parameter @dppass@ is a @StencilOp@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_DECR', 'Graphics.GL.Raw.Internal.Shared.GL_INCR', 'Graphics.GL.Raw.Internal.Shared.GL_INVERT', 'Graphics.GL.Raw.Internal.Shared.GL_KEEP', 'Graphics.GL.Raw.Internal.Shared.GL_REPLACE', 'Graphics.GL.Raw.Internal.Shared.GL_ZERO'.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glStencilOpSeparate'.
+
 
 glStencilOpSeparateATI :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> m ()
 glStencilOpSeparateATI = ffienumenumenumenumIOV glStencilOpSeparateATIFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ATI/TextFragmentShader.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ATI/TextFragmentShader.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ATI/TextFragmentShader.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ATI/TextFragmentShader.hs
@@ -11,7 +11,10 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ATI/text_fragment_shader.txt GL_ATI_text_fragment_shader> extension is available.
+
 gl_ATI_text_fragment_shader :: Bool
 gl_ATI_text_fragment_shader = member "GL_ATI_text_fragment_shader" extensions
+{-# NOINLINE gl_ATI_text_fragment_shader #-}
 
 pattern GL_TEXT_FRAGMENT_SHADER_ATI = 0x8200
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ATI/TextureEnvCombine3.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ATI/TextureEnvCombine3.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ATI/TextureEnvCombine3.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ATI/TextureEnvCombine3.hs
@@ -13,8 +13,11 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ATI/texture_env_combine3.txt GL_ATI_texture_env_combine3> extension is available.
+
 gl_ATI_texture_env_combine3 :: Bool
 gl_ATI_texture_env_combine3 = member "GL_ATI_texture_env_combine3" extensions
+{-# NOINLINE gl_ATI_texture_env_combine3 #-}
 
 pattern GL_MODULATE_ADD_ATI = 0x8744
 
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ATI/TextureFloat.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ATI/TextureFloat.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ATI/TextureFloat.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ATI/TextureFloat.hs
@@ -22,8 +22,11 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ATI/texture_float.txt GL_ATI_texture_float> extension is available.
+
 gl_ATI_texture_float :: Bool
 gl_ATI_texture_float = member "GL_ATI_texture_float" extensions
+{-# NOINLINE gl_ATI_texture_float #-}
 
 pattern GL_ALPHA_FLOAT16_ATI = 0x881C
 
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ATI/TextureMirrorOnce.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ATI/TextureMirrorOnce.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ATI/TextureMirrorOnce.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ATI/TextureMirrorOnce.hs
@@ -12,8 +12,11 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ATI/texture_mirror_once.txt GL_ATI_texture_mirror_once> extension is available.
+
 gl_ATI_texture_mirror_once :: Bool
 gl_ATI_texture_mirror_once = member "GL_ATI_texture_mirror_once" extensions
+{-# NOINLINE gl_ATI_texture_mirror_once #-}
 
 pattern GL_MIRROR_CLAMP_ATI = 0x8742
 
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ATI/VertexArrayObject.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ATI/VertexArrayObject.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ATI/VertexArrayObject.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ATI/VertexArrayObject.hs
@@ -35,9 +35,19 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ATI/vertex_array_object.txt GL_ATI_vertex_array_object> extension is available.
+
 gl_ATI_vertex_array_object :: Bool
 gl_ATI_vertex_array_object = member "GL_ATI_vertex_array_object" extensions
+{-# NOINLINE gl_ATI_vertex_array_object #-}
 
+-- | Usage: @'glArrayObjectATI' array size type stride buffer offset@
+--
+-- The parameter @array@ is a @EnableCap@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_ALPHA_TEST', 'Graphics.GL.Raw.Extension.SGIX.AsyncPixel.GL_ASYNC_DRAW_PIXELS_SGIX', 'Graphics.GL.Raw.Extension.SGIX.AsyncHistogram.GL_ASYNC_HISTOGRAM_SGIX', 'Graphics.GL.Raw.Extension.SGIX.AsyncPixel.GL_ASYNC_READ_PIXELS_SGIX', 'Graphics.GL.Raw.Extension.SGIX.AsyncPixel.GL_ASYNC_TEX_IMAGE_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_AUTO_NORMAL', 'Graphics.GL.Raw.Internal.Shared.GL_BLEND', 'Graphics.GL.Raw.Extension.SGIX.CalligraphicFragment.GL_CALLIGRAPHIC_FRAGMENT_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_CLIP_PLANE0', 'Graphics.GL.Raw.Internal.Shared.GL_CLIP_PLANE1', 'Graphics.GL.Raw.Internal.Shared.GL_CLIP_PLANE2', 'Graphics.GL.Raw.Internal.Shared.GL_CLIP_PLANE3', 'Graphics.GL.Raw.Internal.Shared.GL_CLIP_PLANE4', 'Graphics.GL.Raw.Internal.Shared.GL_CLIP_PLANE5', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_ARRAY', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_LOGIC_OP', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_MATERIAL', 'Graphics.GL.Raw.Extension.SGI.ColorTable.GL_COLOR_TABLE_SGI', 'Graphics.GL.Raw.Extension.EXT.Convolution.GL_CONVOLUTION_1D_EXT', 'Graphics.GL.Raw.Extension.EXT.Convolution.GL_CONVOLUTION_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_CULL_FACE', 'Graphics.GL.Raw.Internal.Shared.GL_DEPTH_TEST', 'Graphics.GL.Raw.Internal.Shared.GL_DITHER', 'Graphics.GL.Raw.Internal.Shared.GL_EDGE_FLAG_ARRAY', 'Graphics.GL.Raw.Internal.Shared.GL_FOG', 'Graphics.GL.Raw.Extension.SGIX.FogOffset.GL_FOG_OFFSET_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_COLOR_MATERIAL_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT0_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT1_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT2_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT3_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT4_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT5_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT6_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT7_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHTING_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Framezoom.GL_FRAMEZOOM_SGIX', 'Graphics.GL.Raw.Extension.EXT.Histogram.GL_HISTOGRAM_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_INDEX_ARRAY', 'Graphics.GL.Raw.Internal.Shared.GL_INDEX_LOGIC_OP', 'Graphics.GL.Raw.Extension.SGIX.Interlace.GL_INTERLACE_SGIX', 'Graphics.GL.Raw.Extension.SGIX.IrInstrument1.GL_IR_INSTRUMENT1_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT0', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT1', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT2', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT3', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT4', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT5', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT6', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT7', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHTING', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_SMOOTH', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_STIPPLE', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_COLOR_4', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_NORMAL', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_TEXTURE_COORD_1', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_TEXTURE_COORD_2', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_TEXTURE_COORD_3', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_TEXTURE_COORD_4', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_VERTEX_3', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_VERTEX_4', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_COLOR_4', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_NORMAL', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_TEXTURE_COORD_1', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_TEXTURE_COORD_2', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_TEXTURE_COORD_3', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_TEXTURE_COORD_4', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_VERTEX_3', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_VERTEX_4', 'Graphics.GL.Raw.Extension.EXT.Histogram.GL_MINMAX_EXT', 'Graphics.GL.Raw.Extension.SGIS.Multisample.GL_MULTISAMPLE_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_NORMALIZE', 'Graphics.GL.Raw.Internal.Shared.GL_NORMAL_ARRAY', 'Graphics.GL.Raw.Extension.SGIS.PixelTexture.GL_PIXEL_TEXTURE_SGIS', 'Graphics.GL.Raw.Extension.SGIX.PixelTexture.GL_PIXEL_TEX_GEN_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_POINT_SMOOTH', 'Graphics.GL.Raw.Internal.Shared.GL_POLYGON_OFFSET_FILL', 'Graphics.GL.Raw.Internal.Shared.GL_POLYGON_OFFSET_LINE', 'Graphics.GL.Raw.Internal.Shared.GL_POLYGON_OFFSET_POINT', 'Graphics.GL.Raw.Internal.Shared.GL_POLYGON_SMOOTH', 'Graphics.GL.Raw.Internal.Shared.GL_POLYGON_STIPPLE', 'Graphics.GL.Raw.Extension.SGI.ColorTable.GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI', 'Graphics.GL.Raw.Extension.SGI.ColorTable.GL_POST_CONVOLUTION_COLOR_TABLE_SGI', 'Graphics.GL.Raw.Extension.SGIX.ReferencePlane.GL_REFERENCE_PLANE_SGIX', 'Graphics.GL.Raw.Extension.EXT.RescaleNormal.GL_RESCALE_NORMAL_EXT', 'Graphics.GL.Raw.Extension.SGIS.Multisample.GL_SAMPLE_ALPHA_TO_MASK_SGIS', 'Graphics.GL.Raw.Extension.SGIS.Multisample.GL_SAMPLE_ALPHA_TO_ONE_SGIS', 'Graphics.GL.Raw.Extension.SGIS.Multisample.GL_SAMPLE_MASK_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_SCISSOR_TEST', 'Graphics.GL.Raw.Extension.EXT.Convolution.GL_SEPARABLE_2D_EXT', 'Graphics.GL.Raw.Extension.EXT.SharedTexturePalette.GL_SHARED_TEXTURE_PALETTE_EXT', 'Graphics.GL.Raw.Extension.SGIX.Sprite.GL_SPRITE_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_STENCIL_TEST', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Extension.SGI.TextureColorTable.GL_TEXTURE_COLOR_TABLE_SGI', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_COORD_ARRAY', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_GEN_Q', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_GEN_R', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_GEN_S', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_GEN_T', 'Graphics.GL.Raw.Internal.Shared.GL_VERTEX_ARRAY'.
+--
+-- The parameter @type@ is a @ScalarType@.
+
+
 glArrayObjectATI :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLuint -> GLuint -> m ()
 glArrayObjectATI = ffienumintenumsizeiuintuintIOV glArrayObjectATIFunPtr
 
@@ -46,6 +56,9 @@
 
 {-# NOINLINE glArrayObjectATIFunPtr #-}
 
+-- | Usage: @'glFreeObjectBufferATI' buffer@
+
+
 glFreeObjectBufferATI :: MonadIO m => GLuint -> m ()
 glFreeObjectBufferATI = ffiuintIOV glFreeObjectBufferATIFunPtr
 
@@ -54,6 +67,15 @@
 
 {-# NOINLINE glFreeObjectBufferATIFunPtr #-}
 
+-- | Usage: @'glGetArrayObjectfvATI' array pname params@
+--
+-- The parameter @array@ is a @EnableCap@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_ALPHA_TEST', 'Graphics.GL.Raw.Extension.SGIX.AsyncPixel.GL_ASYNC_DRAW_PIXELS_SGIX', 'Graphics.GL.Raw.Extension.SGIX.AsyncHistogram.GL_ASYNC_HISTOGRAM_SGIX', 'Graphics.GL.Raw.Extension.SGIX.AsyncPixel.GL_ASYNC_READ_PIXELS_SGIX', 'Graphics.GL.Raw.Extension.SGIX.AsyncPixel.GL_ASYNC_TEX_IMAGE_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_AUTO_NORMAL', 'Graphics.GL.Raw.Internal.Shared.GL_BLEND', 'Graphics.GL.Raw.Extension.SGIX.CalligraphicFragment.GL_CALLIGRAPHIC_FRAGMENT_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_CLIP_PLANE0', 'Graphics.GL.Raw.Internal.Shared.GL_CLIP_PLANE1', 'Graphics.GL.Raw.Internal.Shared.GL_CLIP_PLANE2', 'Graphics.GL.Raw.Internal.Shared.GL_CLIP_PLANE3', 'Graphics.GL.Raw.Internal.Shared.GL_CLIP_PLANE4', 'Graphics.GL.Raw.Internal.Shared.GL_CLIP_PLANE5', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_ARRAY', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_LOGIC_OP', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_MATERIAL', 'Graphics.GL.Raw.Extension.SGI.ColorTable.GL_COLOR_TABLE_SGI', 'Graphics.GL.Raw.Extension.EXT.Convolution.GL_CONVOLUTION_1D_EXT', 'Graphics.GL.Raw.Extension.EXT.Convolution.GL_CONVOLUTION_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_CULL_FACE', 'Graphics.GL.Raw.Internal.Shared.GL_DEPTH_TEST', 'Graphics.GL.Raw.Internal.Shared.GL_DITHER', 'Graphics.GL.Raw.Internal.Shared.GL_EDGE_FLAG_ARRAY', 'Graphics.GL.Raw.Internal.Shared.GL_FOG', 'Graphics.GL.Raw.Extension.SGIX.FogOffset.GL_FOG_OFFSET_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_COLOR_MATERIAL_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT0_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT1_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT2_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT3_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT4_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT5_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT6_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT7_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHTING_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Framezoom.GL_FRAMEZOOM_SGIX', 'Graphics.GL.Raw.Extension.EXT.Histogram.GL_HISTOGRAM_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_INDEX_ARRAY', 'Graphics.GL.Raw.Internal.Shared.GL_INDEX_LOGIC_OP', 'Graphics.GL.Raw.Extension.SGIX.Interlace.GL_INTERLACE_SGIX', 'Graphics.GL.Raw.Extension.SGIX.IrInstrument1.GL_IR_INSTRUMENT1_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT0', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT1', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT2', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT3', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT4', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT5', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT6', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT7', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHTING', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_SMOOTH', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_STIPPLE', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_COLOR_4', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_NORMAL', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_TEXTURE_COORD_1', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_TEXTURE_COORD_2', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_TEXTURE_COORD_3', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_TEXTURE_COORD_4', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_VERTEX_3', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_VERTEX_4', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_COLOR_4', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_NORMAL', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_TEXTURE_COORD_1', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_TEXTURE_COORD_2', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_TEXTURE_COORD_3', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_TEXTURE_COORD_4', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_VERTEX_3', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_VERTEX_4', 'Graphics.GL.Raw.Extension.EXT.Histogram.GL_MINMAX_EXT', 'Graphics.GL.Raw.Extension.SGIS.Multisample.GL_MULTISAMPLE_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_NORMALIZE', 'Graphics.GL.Raw.Internal.Shared.GL_NORMAL_ARRAY', 'Graphics.GL.Raw.Extension.SGIS.PixelTexture.GL_PIXEL_TEXTURE_SGIS', 'Graphics.GL.Raw.Extension.SGIX.PixelTexture.GL_PIXEL_TEX_GEN_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_POINT_SMOOTH', 'Graphics.GL.Raw.Internal.Shared.GL_POLYGON_OFFSET_FILL', 'Graphics.GL.Raw.Internal.Shared.GL_POLYGON_OFFSET_LINE', 'Graphics.GL.Raw.Internal.Shared.GL_POLYGON_OFFSET_POINT', 'Graphics.GL.Raw.Internal.Shared.GL_POLYGON_SMOOTH', 'Graphics.GL.Raw.Internal.Shared.GL_POLYGON_STIPPLE', 'Graphics.GL.Raw.Extension.SGI.ColorTable.GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI', 'Graphics.GL.Raw.Extension.SGI.ColorTable.GL_POST_CONVOLUTION_COLOR_TABLE_SGI', 'Graphics.GL.Raw.Extension.SGIX.ReferencePlane.GL_REFERENCE_PLANE_SGIX', 'Graphics.GL.Raw.Extension.EXT.RescaleNormal.GL_RESCALE_NORMAL_EXT', 'Graphics.GL.Raw.Extension.SGIS.Multisample.GL_SAMPLE_ALPHA_TO_MASK_SGIS', 'Graphics.GL.Raw.Extension.SGIS.Multisample.GL_SAMPLE_ALPHA_TO_ONE_SGIS', 'Graphics.GL.Raw.Extension.SGIS.Multisample.GL_SAMPLE_MASK_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_SCISSOR_TEST', 'Graphics.GL.Raw.Extension.EXT.Convolution.GL_SEPARABLE_2D_EXT', 'Graphics.GL.Raw.Extension.EXT.SharedTexturePalette.GL_SHARED_TEXTURE_PALETTE_EXT', 'Graphics.GL.Raw.Extension.SGIX.Sprite.GL_SPRITE_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_STENCIL_TEST', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Extension.SGI.TextureColorTable.GL_TEXTURE_COLOR_TABLE_SGI', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_COORD_ARRAY', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_GEN_Q', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_GEN_R', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_GEN_S', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_GEN_T', 'Graphics.GL.Raw.Internal.Shared.GL_VERTEX_ARRAY'.
+--
+-- The parameter @pname@ is a @ArrayObjectPNameATI@.
+--
+-- The length of @params@ should be @1@.
+
+
 glGetArrayObjectfvATI :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
 glGetArrayObjectfvATI = ffienumenumPtrfloatIOV glGetArrayObjectfvATIFunPtr
 
@@ -62,6 +84,15 @@
 
 {-# NOINLINE glGetArrayObjectfvATIFunPtr #-}
 
+-- | Usage: @'glGetArrayObjectivATI' array pname params@
+--
+-- The parameter @array@ is a @EnableCap@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_ALPHA_TEST', 'Graphics.GL.Raw.Extension.SGIX.AsyncPixel.GL_ASYNC_DRAW_PIXELS_SGIX', 'Graphics.GL.Raw.Extension.SGIX.AsyncHistogram.GL_ASYNC_HISTOGRAM_SGIX', 'Graphics.GL.Raw.Extension.SGIX.AsyncPixel.GL_ASYNC_READ_PIXELS_SGIX', 'Graphics.GL.Raw.Extension.SGIX.AsyncPixel.GL_ASYNC_TEX_IMAGE_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_AUTO_NORMAL', 'Graphics.GL.Raw.Internal.Shared.GL_BLEND', 'Graphics.GL.Raw.Extension.SGIX.CalligraphicFragment.GL_CALLIGRAPHIC_FRAGMENT_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_CLIP_PLANE0', 'Graphics.GL.Raw.Internal.Shared.GL_CLIP_PLANE1', 'Graphics.GL.Raw.Internal.Shared.GL_CLIP_PLANE2', 'Graphics.GL.Raw.Internal.Shared.GL_CLIP_PLANE3', 'Graphics.GL.Raw.Internal.Shared.GL_CLIP_PLANE4', 'Graphics.GL.Raw.Internal.Shared.GL_CLIP_PLANE5', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_ARRAY', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_LOGIC_OP', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_MATERIAL', 'Graphics.GL.Raw.Extension.SGI.ColorTable.GL_COLOR_TABLE_SGI', 'Graphics.GL.Raw.Extension.EXT.Convolution.GL_CONVOLUTION_1D_EXT', 'Graphics.GL.Raw.Extension.EXT.Convolution.GL_CONVOLUTION_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_CULL_FACE', 'Graphics.GL.Raw.Internal.Shared.GL_DEPTH_TEST', 'Graphics.GL.Raw.Internal.Shared.GL_DITHER', 'Graphics.GL.Raw.Internal.Shared.GL_EDGE_FLAG_ARRAY', 'Graphics.GL.Raw.Internal.Shared.GL_FOG', 'Graphics.GL.Raw.Extension.SGIX.FogOffset.GL_FOG_OFFSET_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_COLOR_MATERIAL_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT0_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT1_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT2_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT3_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT4_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT5_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT6_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT7_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHTING_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Framezoom.GL_FRAMEZOOM_SGIX', 'Graphics.GL.Raw.Extension.EXT.Histogram.GL_HISTOGRAM_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_INDEX_ARRAY', 'Graphics.GL.Raw.Internal.Shared.GL_INDEX_LOGIC_OP', 'Graphics.GL.Raw.Extension.SGIX.Interlace.GL_INTERLACE_SGIX', 'Graphics.GL.Raw.Extension.SGIX.IrInstrument1.GL_IR_INSTRUMENT1_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT0', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT1', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT2', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT3', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT4', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT5', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT6', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT7', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHTING', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_SMOOTH', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_STIPPLE', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_COLOR_4', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_NORMAL', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_TEXTURE_COORD_1', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_TEXTURE_COORD_2', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_TEXTURE_COORD_3', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_TEXTURE_COORD_4', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_VERTEX_3', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_VERTEX_4', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_COLOR_4', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_NORMAL', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_TEXTURE_COORD_1', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_TEXTURE_COORD_2', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_TEXTURE_COORD_3', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_TEXTURE_COORD_4', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_VERTEX_3', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_VERTEX_4', 'Graphics.GL.Raw.Extension.EXT.Histogram.GL_MINMAX_EXT', 'Graphics.GL.Raw.Extension.SGIS.Multisample.GL_MULTISAMPLE_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_NORMALIZE', 'Graphics.GL.Raw.Internal.Shared.GL_NORMAL_ARRAY', 'Graphics.GL.Raw.Extension.SGIS.PixelTexture.GL_PIXEL_TEXTURE_SGIS', 'Graphics.GL.Raw.Extension.SGIX.PixelTexture.GL_PIXEL_TEX_GEN_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_POINT_SMOOTH', 'Graphics.GL.Raw.Internal.Shared.GL_POLYGON_OFFSET_FILL', 'Graphics.GL.Raw.Internal.Shared.GL_POLYGON_OFFSET_LINE', 'Graphics.GL.Raw.Internal.Shared.GL_POLYGON_OFFSET_POINT', 'Graphics.GL.Raw.Internal.Shared.GL_POLYGON_SMOOTH', 'Graphics.GL.Raw.Internal.Shared.GL_POLYGON_STIPPLE', 'Graphics.GL.Raw.Extension.SGI.ColorTable.GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI', 'Graphics.GL.Raw.Extension.SGI.ColorTable.GL_POST_CONVOLUTION_COLOR_TABLE_SGI', 'Graphics.GL.Raw.Extension.SGIX.ReferencePlane.GL_REFERENCE_PLANE_SGIX', 'Graphics.GL.Raw.Extension.EXT.RescaleNormal.GL_RESCALE_NORMAL_EXT', 'Graphics.GL.Raw.Extension.SGIS.Multisample.GL_SAMPLE_ALPHA_TO_MASK_SGIS', 'Graphics.GL.Raw.Extension.SGIS.Multisample.GL_SAMPLE_ALPHA_TO_ONE_SGIS', 'Graphics.GL.Raw.Extension.SGIS.Multisample.GL_SAMPLE_MASK_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_SCISSOR_TEST', 'Graphics.GL.Raw.Extension.EXT.Convolution.GL_SEPARABLE_2D_EXT', 'Graphics.GL.Raw.Extension.EXT.SharedTexturePalette.GL_SHARED_TEXTURE_PALETTE_EXT', 'Graphics.GL.Raw.Extension.SGIX.Sprite.GL_SPRITE_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_STENCIL_TEST', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Extension.SGI.TextureColorTable.GL_TEXTURE_COLOR_TABLE_SGI', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_COORD_ARRAY', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_GEN_Q', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_GEN_R', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_GEN_S', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_GEN_T', 'Graphics.GL.Raw.Internal.Shared.GL_VERTEX_ARRAY'.
+--
+-- The parameter @pname@ is a @ArrayObjectPNameATI@.
+--
+-- The length of @params@ should be @1@.
+
+
 glGetArrayObjectivATI :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
 glGetArrayObjectivATI = ffienumenumPtrintIOV glGetArrayObjectivATIFunPtr
 
@@ -70,6 +101,13 @@
 
 {-# NOINLINE glGetArrayObjectivATIFunPtr #-}
 
+-- | Usage: @'glGetObjectBufferfvATI' buffer pname params@
+--
+-- The parameter @pname@ is a @ArrayObjectPNameATI@.
+--
+-- The length of @params@ should be @1@.
+
+
 glGetObjectBufferfvATI :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()
 glGetObjectBufferfvATI = ffiuintenumPtrfloatIOV glGetObjectBufferfvATIFunPtr
 
@@ -78,6 +116,13 @@
 
 {-# NOINLINE glGetObjectBufferfvATIFunPtr #-}
 
+-- | Usage: @'glGetObjectBufferivATI' buffer pname params@
+--
+-- The parameter @pname@ is a @ArrayObjectPNameATI@.
+--
+-- The length of @params@ should be @1@.
+
+
 glGetObjectBufferivATI :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
 glGetObjectBufferivATI = ffiuintenumPtrintIOV glGetObjectBufferivATIFunPtr
 
@@ -86,6 +131,13 @@
 
 {-# NOINLINE glGetObjectBufferivATIFunPtr #-}
 
+-- | Usage: @'glGetVariantArrayObjectfvATI' id pname params@
+--
+-- The parameter @pname@ is a @ArrayObjectPNameATI@.
+--
+-- The length of @params@ should be @1@.
+
+
 glGetVariantArrayObjectfvATI :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()
 glGetVariantArrayObjectfvATI = ffiuintenumPtrfloatIOV glGetVariantArrayObjectfvATIFunPtr
 
@@ -94,6 +146,13 @@
 
 {-# NOINLINE glGetVariantArrayObjectfvATIFunPtr #-}
 
+-- | Usage: @'glGetVariantArrayObjectivATI' id pname params@
+--
+-- The parameter @pname@ is a @ArrayObjectPNameATI@.
+--
+-- The length of @params@ should be @1@.
+
+
 glGetVariantArrayObjectivATI :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
 glGetVariantArrayObjectivATI = ffiuintenumPtrintIOV glGetVariantArrayObjectivATIFunPtr
 
@@ -102,6 +161,9 @@
 
 {-# NOINLINE glGetVariantArrayObjectivATIFunPtr #-}
 
+-- | Usage: @'glIsObjectBufferATI' buffer@
+
+
 glIsObjectBufferATI :: MonadIO m => GLuint -> m GLboolean
 glIsObjectBufferATI = ffiuintIOboolean glIsObjectBufferATIFunPtr
 
@@ -110,6 +172,13 @@
 
 {-# NOINLINE glIsObjectBufferATIFunPtr #-}
 
+-- | Usage: @'glNewObjectBufferATI' size pointer usage@
+--
+-- The parameter @usage@ is a @ArrayObjectUsageATI@.
+--
+-- The length of @pointer@ should be @size@.
+
+
 glNewObjectBufferATI :: MonadIO m => GLsizei -> Ptr () -> GLenum -> m GLuint
 glNewObjectBufferATI = ffisizeiPtrVenumIOuint glNewObjectBufferATIFunPtr
 
@@ -118,6 +187,13 @@
 
 {-# NOINLINE glNewObjectBufferATIFunPtr #-}
 
+-- | Usage: @'glUpdateObjectBufferATI' buffer offset size pointer preserve@
+--
+-- The parameter @preserve@ is a @PreserveModeATI@.
+--
+-- The length of @pointer@ should be @size@.
+
+
 glUpdateObjectBufferATI :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr () -> GLenum -> m ()
 glUpdateObjectBufferATI = ffiuintuintsizeiPtrVenumIOV glUpdateObjectBufferATIFunPtr
 
@@ -125,6 +201,11 @@
 glUpdateObjectBufferATIFunPtr = unsafePerformIO (getProcAddress "glUpdateObjectBufferATI")
 
 {-# NOINLINE glUpdateObjectBufferATIFunPtr #-}
+
+-- | Usage: @'glVariantArrayObjectATI' id type stride buffer offset@
+--
+-- The parameter @type@ is a @ScalarType@.
+
 
 glVariantArrayObjectATI :: MonadIO m => GLuint -> GLenum -> GLsizei -> GLuint -> GLuint -> m ()
 glVariantArrayObjectATI = ffiuintenumsizeiuintuintIOV glVariantArrayObjectATIFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ATI/VertexAttribArrayObject.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ATI/VertexAttribArrayObject.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ATI/VertexAttribArrayObject.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ATI/VertexAttribArrayObject.hs
@@ -18,9 +18,19 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ATI/vertex_attrib_array_object.txt GL_ATI_vertex_attrib_array_object> extension is available.
+
 gl_ATI_vertex_attrib_array_object :: Bool
 gl_ATI_vertex_attrib_array_object = member "GL_ATI_vertex_attrib_array_object" extensions
+{-# NOINLINE gl_ATI_vertex_attrib_array_object #-}
 
+-- | Usage: @'glGetVertexAttribArrayObjectfvATI' index pname params@
+--
+-- The parameter @pname@ is a @ArrayObjectPNameATI@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
 glGetVertexAttribArrayObjectfvATI :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()
 glGetVertexAttribArrayObjectfvATI = ffiuintenumPtrfloatIOV glGetVertexAttribArrayObjectfvATIFunPtr
 
@@ -29,6 +39,13 @@
 
 {-# NOINLINE glGetVertexAttribArrayObjectfvATIFunPtr #-}
 
+-- | Usage: @'glGetVertexAttribArrayObjectivATI' index pname params@
+--
+-- The parameter @pname@ is a @ArrayObjectPNameATI@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
 glGetVertexAttribArrayObjectivATI :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
 glGetVertexAttribArrayObjectivATI = ffiuintenumPtrintIOV glGetVertexAttribArrayObjectivATIFunPtr
 
@@ -36,6 +53,13 @@
 glGetVertexAttribArrayObjectivATIFunPtr = unsafePerformIO (getProcAddress "glGetVertexAttribArrayObjectivATI")
 
 {-# NOINLINE glGetVertexAttribArrayObjectivATIFunPtr #-}
+
+-- | Usage: @'glVertexAttribArrayObjectATI' index size type normalized stride buffer offset@
+--
+-- The parameter @type@ is a @VertexAttribPointerType@.
+--
+-- The parameter @normalized@ is a @Boolean@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FALSE', 'Graphics.GL.Raw.Internal.Shared.GL_TRUE'.
+
 
 glVertexAttribArrayObjectATI :: MonadIO m => GLuint -> GLint -> GLenum -> GLboolean -> GLsizei -> GLuint -> GLuint -> m ()
 glVertexAttribArrayObjectATI = ffiuintintenumbooleansizeiuintuintIOV glVertexAttribArrayObjectATIFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ATI/VertexStreams.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ATI/VertexStreams.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ATI/VertexStreams.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ATI/VertexStreams.hs
@@ -70,9 +70,17 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ATI/vertex_streams.txt GL_ATI_vertex_streams> extension is available.
+
 gl_ATI_vertex_streams :: Bool
 gl_ATI_vertex_streams = member "GL_ATI_vertex_streams" extensions
+{-# NOINLINE gl_ATI_vertex_streams #-}
 
+-- | Usage: @'glClientActiveVertexStreamATI' stream@
+--
+-- The parameter @stream@ is a @VertexStreamATI@.
+
+
 glClientActiveVertexStreamATI :: MonadIO m => GLenum -> m ()
 glClientActiveVertexStreamATI = ffienumIOV glClientActiveVertexStreamATIFunPtr
 
@@ -81,6 +89,11 @@
 
 {-# NOINLINE glClientActiveVertexStreamATIFunPtr #-}
 
+-- | Usage: @'glNormalStream3bATI' stream nx ny nz@
+--
+-- The parameter @stream@ is a @VertexStreamATI@.
+
+
 glNormalStream3bATI :: MonadIO m => GLenum -> GLbyte -> GLbyte -> GLbyte -> m ()
 glNormalStream3bATI = ffienumbytebytebyteIOV glNormalStream3bATIFunPtr
 
@@ -89,6 +102,13 @@
 
 {-# NOINLINE glNormalStream3bATIFunPtr #-}
 
+-- | Usage: @'glNormalStream3bvATI' stream coords@
+--
+-- The parameter @stream@ is a @VertexStreamATI@.
+--
+-- The length of @coords@ should be @3@.
+
+
 glNormalStream3bvATI :: MonadIO m => GLenum -> Ptr GLbyte -> m ()
 glNormalStream3bvATI = ffienumPtrbyteIOV glNormalStream3bvATIFunPtr
 
@@ -97,6 +117,11 @@
 
 {-# NOINLINE glNormalStream3bvATIFunPtr #-}
 
+-- | Usage: @'glNormalStream3dATI' stream nx ny nz@
+--
+-- The parameter @stream@ is a @VertexStreamATI@.
+
+
 glNormalStream3dATI :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLdouble -> m ()
 glNormalStream3dATI = ffienumdoubledoubledoubleIOV glNormalStream3dATIFunPtr
 
@@ -105,6 +130,13 @@
 
 {-# NOINLINE glNormalStream3dATIFunPtr #-}
 
+-- | Usage: @'glNormalStream3dvATI' stream coords@
+--
+-- The parameter @stream@ is a @VertexStreamATI@.
+--
+-- The length of @coords@ should be @3@.
+
+
 glNormalStream3dvATI :: MonadIO m => GLenum -> Ptr GLdouble -> m ()
 glNormalStream3dvATI = ffienumPtrdoubleIOV glNormalStream3dvATIFunPtr
 
@@ -113,6 +145,11 @@
 
 {-# NOINLINE glNormalStream3dvATIFunPtr #-}
 
+-- | Usage: @'glNormalStream3fATI' stream nx ny nz@
+--
+-- The parameter @stream@ is a @VertexStreamATI@.
+
+
 glNormalStream3fATI :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLfloat -> m ()
 glNormalStream3fATI = ffienumfloatfloatfloatIOV glNormalStream3fATIFunPtr
 
@@ -121,6 +158,13 @@
 
 {-# NOINLINE glNormalStream3fATIFunPtr #-}
 
+-- | Usage: @'glNormalStream3fvATI' stream coords@
+--
+-- The parameter @stream@ is a @VertexStreamATI@.
+--
+-- The length of @coords@ should be @3@.
+
+
 glNormalStream3fvATI :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
 glNormalStream3fvATI = ffienumPtrfloatIOV glNormalStream3fvATIFunPtr
 
@@ -129,6 +173,11 @@
 
 {-# NOINLINE glNormalStream3fvATIFunPtr #-}
 
+-- | Usage: @'glNormalStream3iATI' stream nx ny nz@
+--
+-- The parameter @stream@ is a @VertexStreamATI@.
+
+
 glNormalStream3iATI :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> m ()
 glNormalStream3iATI = ffienumintintintIOV glNormalStream3iATIFunPtr
 
@@ -137,6 +186,13 @@
 
 {-# NOINLINE glNormalStream3iATIFunPtr #-}
 
+-- | Usage: @'glNormalStream3ivATI' stream coords@
+--
+-- The parameter @stream@ is a @VertexStreamATI@.
+--
+-- The length of @coords@ should be @3@.
+
+
 glNormalStream3ivATI :: MonadIO m => GLenum -> Ptr GLint -> m ()
 glNormalStream3ivATI = ffienumPtrintIOV glNormalStream3ivATIFunPtr
 
@@ -145,6 +201,11 @@
 
 {-# NOINLINE glNormalStream3ivATIFunPtr #-}
 
+-- | Usage: @'glNormalStream3sATI' stream nx ny nz@
+--
+-- The parameter @stream@ is a @VertexStreamATI@.
+
+
 glNormalStream3sATI :: MonadIO m => GLenum -> GLshort -> GLshort -> GLshort -> m ()
 glNormalStream3sATI = ffienumshortshortshortIOV glNormalStream3sATIFunPtr
 
@@ -153,6 +214,13 @@
 
 {-# NOINLINE glNormalStream3sATIFunPtr #-}
 
+-- | Usage: @'glNormalStream3svATI' stream coords@
+--
+-- The parameter @stream@ is a @VertexStreamATI@.
+--
+-- The length of @coords@ should be @3@.
+
+
 glNormalStream3svATI :: MonadIO m => GLenum -> Ptr GLshort -> m ()
 glNormalStream3svATI = ffienumPtrshortIOV glNormalStream3svATIFunPtr
 
@@ -161,6 +229,11 @@
 
 {-# NOINLINE glNormalStream3svATIFunPtr #-}
 
+-- | Usage: @'glVertexBlendEnvfATI' pname param@
+--
+-- The parameter @pname@ is a @VertexStreamATI@.
+
+
 glVertexBlendEnvfATI :: MonadIO m => GLenum -> GLfloat -> m ()
 glVertexBlendEnvfATI = ffienumfloatIOV glVertexBlendEnvfATIFunPtr
 
@@ -169,6 +242,11 @@
 
 {-# NOINLINE glVertexBlendEnvfATIFunPtr #-}
 
+-- | Usage: @'glVertexBlendEnviATI' pname param@
+--
+-- The parameter @pname@ is a @VertexStreamATI@.
+
+
 glVertexBlendEnviATI :: MonadIO m => GLenum -> GLint -> m ()
 glVertexBlendEnviATI = ffienumintIOV glVertexBlendEnviATIFunPtr
 
@@ -177,6 +255,11 @@
 
 {-# NOINLINE glVertexBlendEnviATIFunPtr #-}
 
+-- | Usage: @'glVertexStream1dATI' stream x@
+--
+-- The parameter @stream@ is a @VertexStreamATI@.
+
+
 glVertexStream1dATI :: MonadIO m => GLenum -> GLdouble -> m ()
 glVertexStream1dATI = ffienumdoubleIOV glVertexStream1dATIFunPtr
 
@@ -185,6 +268,13 @@
 
 {-# NOINLINE glVertexStream1dATIFunPtr #-}
 
+-- | Usage: @'glVertexStream1dvATI' stream coords@
+--
+-- The parameter @stream@ is a @VertexStreamATI@.
+--
+-- The length of @coords@ should be @1@.
+
+
 glVertexStream1dvATI :: MonadIO m => GLenum -> Ptr GLdouble -> m ()
 glVertexStream1dvATI = ffienumPtrdoubleIOV glVertexStream1dvATIFunPtr
 
@@ -193,6 +283,11 @@
 
 {-# NOINLINE glVertexStream1dvATIFunPtr #-}
 
+-- | Usage: @'glVertexStream1fATI' stream x@
+--
+-- The parameter @stream@ is a @VertexStreamATI@.
+
+
 glVertexStream1fATI :: MonadIO m => GLenum -> GLfloat -> m ()
 glVertexStream1fATI = ffienumfloatIOV glVertexStream1fATIFunPtr
 
@@ -201,6 +296,13 @@
 
 {-# NOINLINE glVertexStream1fATIFunPtr #-}
 
+-- | Usage: @'glVertexStream1fvATI' stream coords@
+--
+-- The parameter @stream@ is a @VertexStreamATI@.
+--
+-- The length of @coords@ should be @1@.
+
+
 glVertexStream1fvATI :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
 glVertexStream1fvATI = ffienumPtrfloatIOV glVertexStream1fvATIFunPtr
 
@@ -209,6 +311,11 @@
 
 {-# NOINLINE glVertexStream1fvATIFunPtr #-}
 
+-- | Usage: @'glVertexStream1iATI' stream x@
+--
+-- The parameter @stream@ is a @VertexStreamATI@.
+
+
 glVertexStream1iATI :: MonadIO m => GLenum -> GLint -> m ()
 glVertexStream1iATI = ffienumintIOV glVertexStream1iATIFunPtr
 
@@ -217,6 +324,13 @@
 
 {-# NOINLINE glVertexStream1iATIFunPtr #-}
 
+-- | Usage: @'glVertexStream1ivATI' stream coords@
+--
+-- The parameter @stream@ is a @VertexStreamATI@.
+--
+-- The length of @coords@ should be @1@.
+
+
 glVertexStream1ivATI :: MonadIO m => GLenum -> Ptr GLint -> m ()
 glVertexStream1ivATI = ffienumPtrintIOV glVertexStream1ivATIFunPtr
 
@@ -225,6 +339,11 @@
 
 {-# NOINLINE glVertexStream1ivATIFunPtr #-}
 
+-- | Usage: @'glVertexStream1sATI' stream x@
+--
+-- The parameter @stream@ is a @VertexStreamATI@.
+
+
 glVertexStream1sATI :: MonadIO m => GLenum -> GLshort -> m ()
 glVertexStream1sATI = ffienumshortIOV glVertexStream1sATIFunPtr
 
@@ -233,6 +352,13 @@
 
 {-# NOINLINE glVertexStream1sATIFunPtr #-}
 
+-- | Usage: @'glVertexStream1svATI' stream coords@
+--
+-- The parameter @stream@ is a @VertexStreamATI@.
+--
+-- The length of @coords@ should be @1@.
+
+
 glVertexStream1svATI :: MonadIO m => GLenum -> Ptr GLshort -> m ()
 glVertexStream1svATI = ffienumPtrshortIOV glVertexStream1svATIFunPtr
 
@@ -241,6 +367,11 @@
 
 {-# NOINLINE glVertexStream1svATIFunPtr #-}
 
+-- | Usage: @'glVertexStream2dATI' stream x y@
+--
+-- The parameter @stream@ is a @VertexStreamATI@.
+
+
 glVertexStream2dATI :: MonadIO m => GLenum -> GLdouble -> GLdouble -> m ()
 glVertexStream2dATI = ffienumdoubledoubleIOV glVertexStream2dATIFunPtr
 
@@ -249,6 +380,13 @@
 
 {-# NOINLINE glVertexStream2dATIFunPtr #-}
 
+-- | Usage: @'glVertexStream2dvATI' stream coords@
+--
+-- The parameter @stream@ is a @VertexStreamATI@.
+--
+-- The length of @coords@ should be @2@.
+
+
 glVertexStream2dvATI :: MonadIO m => GLenum -> Ptr GLdouble -> m ()
 glVertexStream2dvATI = ffienumPtrdoubleIOV glVertexStream2dvATIFunPtr
 
@@ -257,6 +395,11 @@
 
 {-# NOINLINE glVertexStream2dvATIFunPtr #-}
 
+-- | Usage: @'glVertexStream2fATI' stream x y@
+--
+-- The parameter @stream@ is a @VertexStreamATI@.
+
+
 glVertexStream2fATI :: MonadIO m => GLenum -> GLfloat -> GLfloat -> m ()
 glVertexStream2fATI = ffienumfloatfloatIOV glVertexStream2fATIFunPtr
 
@@ -265,6 +408,13 @@
 
 {-# NOINLINE glVertexStream2fATIFunPtr #-}
 
+-- | Usage: @'glVertexStream2fvATI' stream coords@
+--
+-- The parameter @stream@ is a @VertexStreamATI@.
+--
+-- The length of @coords@ should be @2@.
+
+
 glVertexStream2fvATI :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
 glVertexStream2fvATI = ffienumPtrfloatIOV glVertexStream2fvATIFunPtr
 
@@ -273,6 +423,11 @@
 
 {-# NOINLINE glVertexStream2fvATIFunPtr #-}
 
+-- | Usage: @'glVertexStream2iATI' stream x y@
+--
+-- The parameter @stream@ is a @VertexStreamATI@.
+
+
 glVertexStream2iATI :: MonadIO m => GLenum -> GLint -> GLint -> m ()
 glVertexStream2iATI = ffienumintintIOV glVertexStream2iATIFunPtr
 
@@ -281,6 +436,13 @@
 
 {-# NOINLINE glVertexStream2iATIFunPtr #-}
 
+-- | Usage: @'glVertexStream2ivATI' stream coords@
+--
+-- The parameter @stream@ is a @VertexStreamATI@.
+--
+-- The length of @coords@ should be @2@.
+
+
 glVertexStream2ivATI :: MonadIO m => GLenum -> Ptr GLint -> m ()
 glVertexStream2ivATI = ffienumPtrintIOV glVertexStream2ivATIFunPtr
 
@@ -289,6 +451,11 @@
 
 {-# NOINLINE glVertexStream2ivATIFunPtr #-}
 
+-- | Usage: @'glVertexStream2sATI' stream x y@
+--
+-- The parameter @stream@ is a @VertexStreamATI@.
+
+
 glVertexStream2sATI :: MonadIO m => GLenum -> GLshort -> GLshort -> m ()
 glVertexStream2sATI = ffienumshortshortIOV glVertexStream2sATIFunPtr
 
@@ -297,6 +464,13 @@
 
 {-# NOINLINE glVertexStream2sATIFunPtr #-}
 
+-- | Usage: @'glVertexStream2svATI' stream coords@
+--
+-- The parameter @stream@ is a @VertexStreamATI@.
+--
+-- The length of @coords@ should be @2@.
+
+
 glVertexStream2svATI :: MonadIO m => GLenum -> Ptr GLshort -> m ()
 glVertexStream2svATI = ffienumPtrshortIOV glVertexStream2svATIFunPtr
 
@@ -305,6 +479,11 @@
 
 {-# NOINLINE glVertexStream2svATIFunPtr #-}
 
+-- | Usage: @'glVertexStream3dATI' stream x y z@
+--
+-- The parameter @stream@ is a @VertexStreamATI@.
+
+
 glVertexStream3dATI :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLdouble -> m ()
 glVertexStream3dATI = ffienumdoubledoubledoubleIOV glVertexStream3dATIFunPtr
 
@@ -313,6 +492,13 @@
 
 {-# NOINLINE glVertexStream3dATIFunPtr #-}
 
+-- | Usage: @'glVertexStream3dvATI' stream coords@
+--
+-- The parameter @stream@ is a @VertexStreamATI@.
+--
+-- The length of @coords@ should be @3@.
+
+
 glVertexStream3dvATI :: MonadIO m => GLenum -> Ptr GLdouble -> m ()
 glVertexStream3dvATI = ffienumPtrdoubleIOV glVertexStream3dvATIFunPtr
 
@@ -321,6 +507,11 @@
 
 {-# NOINLINE glVertexStream3dvATIFunPtr #-}
 
+-- | Usage: @'glVertexStream3fATI' stream x y z@
+--
+-- The parameter @stream@ is a @VertexStreamATI@.
+
+
 glVertexStream3fATI :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLfloat -> m ()
 glVertexStream3fATI = ffienumfloatfloatfloatIOV glVertexStream3fATIFunPtr
 
@@ -329,6 +520,13 @@
 
 {-# NOINLINE glVertexStream3fATIFunPtr #-}
 
+-- | Usage: @'glVertexStream3fvATI' stream coords@
+--
+-- The parameter @stream@ is a @VertexStreamATI@.
+--
+-- The length of @coords@ should be @3@.
+
+
 glVertexStream3fvATI :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
 glVertexStream3fvATI = ffienumPtrfloatIOV glVertexStream3fvATIFunPtr
 
@@ -337,6 +535,11 @@
 
 {-# NOINLINE glVertexStream3fvATIFunPtr #-}
 
+-- | Usage: @'glVertexStream3iATI' stream x y z@
+--
+-- The parameter @stream@ is a @VertexStreamATI@.
+
+
 glVertexStream3iATI :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> m ()
 glVertexStream3iATI = ffienumintintintIOV glVertexStream3iATIFunPtr
 
@@ -345,6 +548,13 @@
 
 {-# NOINLINE glVertexStream3iATIFunPtr #-}
 
+-- | Usage: @'glVertexStream3ivATI' stream coords@
+--
+-- The parameter @stream@ is a @VertexStreamATI@.
+--
+-- The length of @coords@ should be @3@.
+
+
 glVertexStream3ivATI :: MonadIO m => GLenum -> Ptr GLint -> m ()
 glVertexStream3ivATI = ffienumPtrintIOV glVertexStream3ivATIFunPtr
 
@@ -353,6 +563,11 @@
 
 {-# NOINLINE glVertexStream3ivATIFunPtr #-}
 
+-- | Usage: @'glVertexStream3sATI' stream x y z@
+--
+-- The parameter @stream@ is a @VertexStreamATI@.
+
+
 glVertexStream3sATI :: MonadIO m => GLenum -> GLshort -> GLshort -> GLshort -> m ()
 glVertexStream3sATI = ffienumshortshortshortIOV glVertexStream3sATIFunPtr
 
@@ -361,6 +576,13 @@
 
 {-# NOINLINE glVertexStream3sATIFunPtr #-}
 
+-- | Usage: @'glVertexStream3svATI' stream coords@
+--
+-- The parameter @stream@ is a @VertexStreamATI@.
+--
+-- The length of @coords@ should be @3@.
+
+
 glVertexStream3svATI :: MonadIO m => GLenum -> Ptr GLshort -> m ()
 glVertexStream3svATI = ffienumPtrshortIOV glVertexStream3svATIFunPtr
 
@@ -369,6 +591,11 @@
 
 {-# NOINLINE glVertexStream3svATIFunPtr #-}
 
+-- | Usage: @'glVertexStream4dATI' stream x y z w@
+--
+-- The parameter @stream@ is a @VertexStreamATI@.
+
+
 glVertexStream4dATI :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
 glVertexStream4dATI = ffienumdoubledoubledoubledoubleIOV glVertexStream4dATIFunPtr
 
@@ -377,6 +604,13 @@
 
 {-# NOINLINE glVertexStream4dATIFunPtr #-}
 
+-- | Usage: @'glVertexStream4dvATI' stream coords@
+--
+-- The parameter @stream@ is a @VertexStreamATI@.
+--
+-- The length of @coords@ should be @4@.
+
+
 glVertexStream4dvATI :: MonadIO m => GLenum -> Ptr GLdouble -> m ()
 glVertexStream4dvATI = ffienumPtrdoubleIOV glVertexStream4dvATIFunPtr
 
@@ -385,6 +619,11 @@
 
 {-# NOINLINE glVertexStream4dvATIFunPtr #-}
 
+-- | Usage: @'glVertexStream4fATI' stream x y z w@
+--
+-- The parameter @stream@ is a @VertexStreamATI@.
+
+
 glVertexStream4fATI :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
 glVertexStream4fATI = ffienumfloatfloatfloatfloatIOV glVertexStream4fATIFunPtr
 
@@ -393,6 +632,13 @@
 
 {-# NOINLINE glVertexStream4fATIFunPtr #-}
 
+-- | Usage: @'glVertexStream4fvATI' stream coords@
+--
+-- The parameter @stream@ is a @VertexStreamATI@.
+--
+-- The length of @coords@ should be @4@.
+
+
 glVertexStream4fvATI :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
 glVertexStream4fvATI = ffienumPtrfloatIOV glVertexStream4fvATIFunPtr
 
@@ -401,6 +647,11 @@
 
 {-# NOINLINE glVertexStream4fvATIFunPtr #-}
 
+-- | Usage: @'glVertexStream4iATI' stream x y z w@
+--
+-- The parameter @stream@ is a @VertexStreamATI@.
+
+
 glVertexStream4iATI :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> m ()
 glVertexStream4iATI = ffienumintintintintIOV glVertexStream4iATIFunPtr
 
@@ -409,6 +660,13 @@
 
 {-# NOINLINE glVertexStream4iATIFunPtr #-}
 
+-- | Usage: @'glVertexStream4ivATI' stream coords@
+--
+-- The parameter @stream@ is a @VertexStreamATI@.
+--
+-- The length of @coords@ should be @4@.
+
+
 glVertexStream4ivATI :: MonadIO m => GLenum -> Ptr GLint -> m ()
 glVertexStream4ivATI = ffienumPtrintIOV glVertexStream4ivATIFunPtr
 
@@ -417,6 +675,11 @@
 
 {-# NOINLINE glVertexStream4ivATIFunPtr #-}
 
+-- | Usage: @'glVertexStream4sATI' stream x y z w@
+--
+-- The parameter @stream@ is a @VertexStreamATI@.
+
+
 glVertexStream4sATI :: MonadIO m => GLenum -> GLshort -> GLshort -> GLshort -> GLshort -> m ()
 glVertexStream4sATI = ffienumshortshortshortshortIOV glVertexStream4sATIFunPtr
 
@@ -424,6 +687,13 @@
 glVertexStream4sATIFunPtr = unsafePerformIO (getProcAddress "glVertexStream4sATI")
 
 {-# NOINLINE glVertexStream4sATIFunPtr #-}
+
+-- | Usage: @'glVertexStream4svATI' stream coords@
+--
+-- The parameter @stream@ is a @VertexStreamATI@.
+--
+-- The length of @coords@ should be @4@.
+
 
 glVertexStream4svATI :: MonadIO m => GLenum -> Ptr GLshort -> m ()
 glVertexStream4svATI = ffienumPtrshortIOV glVertexStream4svATIFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/DMP/ProgramBinary.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/DMP/ProgramBinary.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/DMP/ProgramBinary.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/DMP/ProgramBinary.hs
@@ -13,8 +13,11 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the GL_DMP_program_binary extension is available.
+
 gl_DMP_program_binary :: Bool
 gl_DMP_program_binary = member "GL_DMP_program_binary" extensions
+{-# NOINLINE gl_DMP_program_binary #-}
 
 pattern GL_DMP_PROGRAM_BINARY_DMP = 0x9253
 
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/DMP/ShaderBinary.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/DMP/ShaderBinary.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/DMP/ShaderBinary.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/DMP/ShaderBinary.hs
@@ -11,7 +11,10 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the GL_DMP_shader_binary extension is available.
+
 gl_DMP_shader_binary :: Bool
 gl_DMP_shader_binary = member "GL_DMP_shader_binary" extensions
+{-# NOINLINE gl_DMP_shader_binary #-}
 
 pattern GL_SHADER_BINARY_DMP = 0x9250
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/Abgr.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/Abgr.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/Abgr.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/Abgr.hs
@@ -11,7 +11,10 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/abgr.txt GL_EXT_abgr> extension is available.
+
 gl_EXT_abgr :: Bool
 gl_EXT_abgr = member "GL_EXT_abgr" extensions
+{-# NOINLINE gl_EXT_abgr #-}
 
 pattern GL_ABGR_EXT = 0x8000
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/Bgra.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/Bgra.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/Bgra.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/Bgra.hs
@@ -13,7 +13,10 @@
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/bgra.txt GL_EXT_bgra> extension is available.
+
 gl_EXT_bgra :: Bool
 gl_EXT_bgra = member "GL_EXT_bgra" extensions
+{-# NOINLINE gl_EXT_bgra #-}
 
 pattern GL_BGR_EXT = 0x80E0
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/BindableUniform.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/BindableUniform.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/BindableUniform.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/BindableUniform.hs
@@ -24,9 +24,15 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/bindable_uniform.txt GL_EXT_bindable_uniform> extension is available.
+
 gl_EXT_bindable_uniform :: Bool
 gl_EXT_bindable_uniform = member "GL_EXT_bindable_uniform" extensions
+{-# NOINLINE gl_EXT_bindable_uniform #-}
 
+-- | Usage: @'glGetUniformBufferSizeEXT' program location@
+
+
 glGetUniformBufferSizeEXT :: MonadIO m => GLuint -> GLint -> m GLint
 glGetUniformBufferSizeEXT = ffiuintintIOint glGetUniformBufferSizeEXTFunPtr
 
@@ -35,6 +41,9 @@
 
 {-# NOINLINE glGetUniformBufferSizeEXTFunPtr #-}
 
+-- | Usage: @'glGetUniformOffsetEXT' program location@
+
+
 glGetUniformOffsetEXT :: MonadIO m => GLuint -> GLint -> m GLintptr
 glGetUniformOffsetEXT = ffiuintintIOintptr glGetUniformOffsetEXTFunPtr
 
@@ -42,6 +51,9 @@
 glGetUniformOffsetEXTFunPtr = unsafePerformIO (getProcAddress "glGetUniformOffsetEXT")
 
 {-# NOINLINE glGetUniformOffsetEXTFunPtr #-}
+
+-- | Usage: @'glUniformBufferEXT' program location buffer@
+
 
 glUniformBufferEXT :: MonadIO m => GLuint -> GLint -> GLuint -> m ()
 glUniformBufferEXT = ffiuintintuintIOV glUniformBufferEXTFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/BlendColor.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/BlendColor.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/BlendColor.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/BlendColor.hs
@@ -21,8 +21,24 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/blend_color.txt GL_EXT_blend_color> extension is available.
+
 gl_EXT_blend_color :: Bool
 gl_EXT_blend_color = member "GL_EXT_blend_color" extensions
+{-# NOINLINE gl_EXT_blend_color #-}
+
+-- | Usage: @'glBlendColorEXT' red green blue alpha@
+--
+-- The parameter @red@ is a @ColorF@.
+--
+-- The parameter @green@ is a @ColorF@.
+--
+-- The parameter @blue@ is a @ColorF@.
+--
+-- The parameter @alpha@ is a @ColorF@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glBlendColor'.
+
 
 glBlendColorEXT :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
 glBlendColorEXT = ffifloatfloatfloatfloatIOV glBlendColorEXTFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/BlendEquationSeparate.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/BlendEquationSeparate.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/BlendEquationSeparate.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/BlendEquationSeparate.hs
@@ -18,8 +18,20 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/blend_equation_separate.txt GL_EXT_blend_equation_separate> extension is available.
+
 gl_EXT_blend_equation_separate :: Bool
 gl_EXT_blend_equation_separate = member "GL_EXT_blend_equation_separate" extensions
+{-# NOINLINE gl_EXT_blend_equation_separate #-}
+
+-- | Usage: @'glBlendEquationSeparateEXT' modeRGB modeAlpha@
+--
+-- The parameter @modeRGB@ is a @BlendEquationModeEXT@, one of: 'Graphics.GL.Raw.Extension.SGIX.BlendAlphaMinmax.GL_ALPHA_MAX_SGIX', 'Graphics.GL.Raw.Extension.SGIX.BlendAlphaMinmax.GL_ALPHA_MIN_SGIX', 'Graphics.GL.Raw.Extension.EXT.BlendMinmax.GL_FUNC_ADD_EXT', 'Graphics.GL.Raw.Extension.EXT.BlendSubtract.GL_FUNC_REVERSE_SUBTRACT_EXT', 'Graphics.GL.Raw.Extension.EXT.BlendSubtract.GL_FUNC_SUBTRACT_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_LOGIC_OP', 'Graphics.GL.Raw.Extension.EXT.BlendMinmax.GL_MAX_EXT', 'Graphics.GL.Raw.Extension.EXT.BlendMinmax.GL_MIN_EXT'.
+--
+-- The parameter @modeAlpha@ is a @BlendEquationModeEXT@, one of: 'Graphics.GL.Raw.Extension.SGIX.BlendAlphaMinmax.GL_ALPHA_MAX_SGIX', 'Graphics.GL.Raw.Extension.SGIX.BlendAlphaMinmax.GL_ALPHA_MIN_SGIX', 'Graphics.GL.Raw.Extension.EXT.BlendMinmax.GL_FUNC_ADD_EXT', 'Graphics.GL.Raw.Extension.EXT.BlendSubtract.GL_FUNC_REVERSE_SUBTRACT_EXT', 'Graphics.GL.Raw.Extension.EXT.BlendSubtract.GL_FUNC_SUBTRACT_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_LOGIC_OP', 'Graphics.GL.Raw.Extension.EXT.BlendMinmax.GL_MAX_EXT', 'Graphics.GL.Raw.Extension.EXT.BlendMinmax.GL_MIN_EXT'.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glBlendEquationSeparate'.
+
 
 glBlendEquationSeparateEXT :: MonadIO m => GLenum -> GLenum -> m ()
 glBlendEquationSeparateEXT = ffienumenumIOV glBlendEquationSeparateEXTFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/BlendFuncSeparate.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/BlendFuncSeparate.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/BlendFuncSeparate.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/BlendFuncSeparate.hs
@@ -20,8 +20,24 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/blend_func_separate.txt GL_EXT_blend_func_separate> extension is available.
+
 gl_EXT_blend_func_separate :: Bool
 gl_EXT_blend_func_separate = member "GL_EXT_blend_func_separate" extensions
+{-# NOINLINE gl_EXT_blend_func_separate #-}
+
+-- | Usage: @'glBlendFuncSeparateEXT' sfactorRGB dfactorRGB sfactorAlpha dfactorAlpha@
+--
+-- The parameter @sfactorRGB@ is a @BlendFuncSeparateParameterEXT@.
+--
+-- The parameter @dfactorRGB@ is a @BlendFuncSeparateParameterEXT@.
+--
+-- The parameter @sfactorAlpha@ is a @BlendFuncSeparateParameterEXT@.
+--
+-- The parameter @dfactorAlpha@ is a @BlendFuncSeparateParameterEXT@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glBlendFuncSeparate'.
+
 
 glBlendFuncSeparateEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> m ()
 glBlendFuncSeparateEXT = ffienumenumenumenumIOV glBlendFuncSeparateEXTFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/BlendLogicOp.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/BlendLogicOp.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/BlendLogicOp.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/BlendLogicOp.hs
@@ -8,5 +8,8 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/blend_logic_op.txt GL_EXT_blend_logic_op> extension is available.
+
 gl_EXT_blend_logic_op :: Bool
 gl_EXT_blend_logic_op = member "GL_EXT_blend_logic_op" extensions
+{-# NOINLINE gl_EXT_blend_logic_op #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/BlendMinmax.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/BlendMinmax.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/BlendMinmax.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/BlendMinmax.hs
@@ -20,8 +20,18 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/blend_minmax.txt GL_EXT_blend_minmax> extension is available.
+
 gl_EXT_blend_minmax :: Bool
 gl_EXT_blend_minmax = member "GL_EXT_blend_minmax" extensions
+{-# NOINLINE gl_EXT_blend_minmax #-}
+
+-- | Usage: @'glBlendEquationEXT' mode@
+--
+-- The parameter @mode@ is a @BlendEquationModeEXT@, one of: 'Graphics.GL.Raw.Extension.SGIX.BlendAlphaMinmax.GL_ALPHA_MAX_SGIX', 'Graphics.GL.Raw.Extension.SGIX.BlendAlphaMinmax.GL_ALPHA_MIN_SGIX', 'Graphics.GL.Raw.Extension.EXT.BlendMinmax.GL_FUNC_ADD_EXT', 'Graphics.GL.Raw.Extension.EXT.BlendSubtract.GL_FUNC_REVERSE_SUBTRACT_EXT', 'Graphics.GL.Raw.Extension.EXT.BlendSubtract.GL_FUNC_SUBTRACT_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_LOGIC_OP', 'Graphics.GL.Raw.Extension.EXT.BlendMinmax.GL_MAX_EXT', 'Graphics.GL.Raw.Extension.EXT.BlendMinmax.GL_MIN_EXT'.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glBlendEquation'.
+
 
 glBlendEquationEXT :: MonadIO m => GLenum -> m ()
 glBlendEquationEXT = ffienumIOV glBlendEquationEXTFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/BlendSubtract.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/BlendSubtract.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/BlendSubtract.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/BlendSubtract.hs
@@ -12,8 +12,11 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/blend_subtract.txt GL_EXT_blend_subtract> extension is available.
+
 gl_EXT_blend_subtract :: Bool
 gl_EXT_blend_subtract = member "GL_EXT_blend_subtract" extensions
+{-# NOINLINE gl_EXT_blend_subtract #-}
 
 pattern GL_FUNC_REVERSE_SUBTRACT_EXT = 0x800B
 
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/ClipVolumeHint.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/ClipVolumeHint.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/ClipVolumeHint.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/ClipVolumeHint.hs
@@ -11,7 +11,10 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/clip_volume_hint.txt GL_EXT_clip_volume_hint> extension is available.
+
 gl_EXT_clip_volume_hint :: Bool
 gl_EXT_clip_volume_hint = member "GL_EXT_clip_volume_hint" extensions
+{-# NOINLINE gl_EXT_clip_volume_hint #-}
 
 pattern GL_CLIP_VOLUME_CLIPPING_HINT_EXT = 0x80F0
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/Cmyka.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/Cmyka.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/Cmyka.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/Cmyka.hs
@@ -14,8 +14,11 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/cmyka.txt GL_EXT_cmyka> extension is available.
+
 gl_EXT_cmyka :: Bool
 gl_EXT_cmyka = member "GL_EXT_cmyka" extensions
+{-# NOINLINE gl_EXT_cmyka #-}
 
 pattern GL_CMYKA_EXT = 0x800D
 
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/ColorBufferHalfFloat.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/ColorBufferHalfFloat.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/ColorBufferHalfFloat.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/ColorBufferHalfFloat.hs
@@ -17,8 +17,11 @@
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
 
+-- | Checks that the GL_EXT_color_buffer_half_float extension is available.
+
 gl_EXT_color_buffer_half_float :: Bool
 gl_EXT_color_buffer_half_float = member "GL_EXT_color_buffer_half_float" extensions
+{-# NOINLINE gl_EXT_color_buffer_half_float #-}
 
 pattern GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE_EXT = 0x8211
 
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/ColorSubtable.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/ColorSubtable.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/ColorSubtable.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/ColorSubtable.hs
@@ -17,9 +17,25 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/color_subtable.txt GL_EXT_color_subtable> extension is available.
+
 gl_EXT_color_subtable :: Bool
 gl_EXT_color_subtable = member "GL_EXT_color_subtable" extensions
+{-# NOINLINE gl_EXT_color_subtable #-}
 
+-- | Usage: @'glColorSubTableEXT' target start count format type data@
+--
+-- The parameter @target@ is a @ColorTableTarget@.
+--
+-- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Raw.Extension.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_ALPHA', 'Graphics.GL.Raw.Internal.Shared.GL_BLUE', 'Graphics.GL.Raw.Extension.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Raw.Extension.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Raw.Internal.Shared.GL_GREEN', 'Graphics.GL.Raw.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Raw.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Raw.Internal.Shared.GL_RED', 'Graphics.GL.Raw.Extension.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_RGB', 'Graphics.GL.Raw.Internal.Shared.GL_RGBA', 'Graphics.GL.Raw.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Raw.Extension.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
+--
+-- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_BITMAP', 'Graphics.GL.Raw.Internal.Shared.GL_BYTE', 'Graphics.GL.Raw.Internal.Shared.GL_FLOAT', 'Graphics.GL.Raw.Internal.Shared.GL_INT', 'Graphics.GL.Raw.Internal.Shared.GL_SHORT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
+--
+-- The length of @data@ should be @COMPSIZE(format,type,count)@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Extension.ARB.Imaging.glColorSubTable'.
+
+
 glColorSubTableEXT :: MonadIO m => GLenum -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
 glColorSubTableEXT = ffienumsizeisizeienumenumPtrVIOV glColorSubTableEXTFunPtr
 
@@ -27,6 +43,17 @@
 glColorSubTableEXTFunPtr = unsafePerformIO (getProcAddress "glColorSubTableEXT")
 
 {-# NOINLINE glColorSubTableEXTFunPtr #-}
+
+-- | Usage: @'glCopyColorSubTableEXT' target start x y width@
+--
+-- The parameter @target@ is a @ColorTableTarget@.
+--
+-- The parameter @x@ is a @WinCoord@.
+--
+-- The parameter @y@ is a @WinCoord@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Extension.ARB.Imaging.glCopyColorSubTable'.
+
 
 glCopyColorSubTableEXT :: MonadIO m => GLenum -> GLsizei -> GLint -> GLint -> GLsizei -> m ()
 glCopyColorSubTableEXT = ffienumsizeiintintsizeiIOV glCopyColorSubTableEXTFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/CompiledVertexArray.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/CompiledVertexArray.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/CompiledVertexArray.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/CompiledVertexArray.hs
@@ -19,9 +19,15 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/compiled_vertex_array.txt GL_EXT_compiled_vertex_array> extension is available.
+
 gl_EXT_compiled_vertex_array :: Bool
 gl_EXT_compiled_vertex_array = member "GL_EXT_compiled_vertex_array" extensions
+{-# NOINLINE gl_EXT_compiled_vertex_array #-}
 
+-- | Usage: @'glLockArraysEXT' first count@
+
+
 glLockArraysEXT :: MonadIO m => GLint -> GLsizei -> m ()
 glLockArraysEXT = ffiintsizeiIOV glLockArraysEXTFunPtr
 
@@ -29,6 +35,9 @@
 glLockArraysEXTFunPtr = unsafePerformIO (getProcAddress "glLockArraysEXT")
 
 {-# NOINLINE glLockArraysEXTFunPtr #-}
+
+-- | Usage: @'glUnlockArraysEXT'@
+
 
 glUnlockArraysEXT :: MonadIO m => m ()
 glUnlockArraysEXT = ffiIOV glUnlockArraysEXTFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/Convolution.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/Convolution.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/Convolution.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/Convolution.hs
@@ -48,9 +48,27 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/convolution.txt GL_EXT_convolution> extension is available.
+
 gl_EXT_convolution :: Bool
 gl_EXT_convolution = member "GL_EXT_convolution" extensions
+{-# NOINLINE gl_EXT_convolution #-}
 
+-- | Usage: @'glConvolutionFilter1DEXT' target internalformat width format type image@
+--
+-- The parameter @target@ is a @ConvolutionTargetEXT@, one of: 'Graphics.GL.Raw.Extension.ARB.Imaging.GL_CONVOLUTION_1D', 'Graphics.GL.Raw.Extension.EXT.Convolution.GL_CONVOLUTION_1D_EXT', 'Graphics.GL.Raw.Extension.ARB.Imaging.GL_CONVOLUTION_2D', 'Graphics.GL.Raw.Extension.EXT.Convolution.GL_CONVOLUTION_2D_EXT'.
+--
+-- The parameter @internalformat@ is a @PixelInternalFormat@.
+--
+-- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Raw.Extension.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_ALPHA', 'Graphics.GL.Raw.Internal.Shared.GL_BLUE', 'Graphics.GL.Raw.Extension.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Raw.Extension.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Raw.Internal.Shared.GL_GREEN', 'Graphics.GL.Raw.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Raw.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Raw.Internal.Shared.GL_RED', 'Graphics.GL.Raw.Extension.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_RGB', 'Graphics.GL.Raw.Internal.Shared.GL_RGBA', 'Graphics.GL.Raw.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Raw.Extension.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
+--
+-- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_BITMAP', 'Graphics.GL.Raw.Internal.Shared.GL_BYTE', 'Graphics.GL.Raw.Internal.Shared.GL_FLOAT', 'Graphics.GL.Raw.Internal.Shared.GL_INT', 'Graphics.GL.Raw.Internal.Shared.GL_SHORT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
+--
+-- The length of @image@ should be @COMPSIZE(format,type,width)@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Extension.ARB.Imaging.glConvolutionFilter1D'.
+
+
 glConvolutionFilter1DEXT :: MonadIO m => GLenum -> GLenum -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
 glConvolutionFilter1DEXT = ffienumenumsizeienumenumPtrVIOV glConvolutionFilter1DEXTFunPtr
 
@@ -59,6 +77,21 @@
 
 {-# NOINLINE glConvolutionFilter1DEXTFunPtr #-}
 
+-- | Usage: @'glConvolutionFilter2DEXT' target internalformat width height format type image@
+--
+-- The parameter @target@ is a @ConvolutionTargetEXT@, one of: 'Graphics.GL.Raw.Extension.ARB.Imaging.GL_CONVOLUTION_1D', 'Graphics.GL.Raw.Extension.EXT.Convolution.GL_CONVOLUTION_1D_EXT', 'Graphics.GL.Raw.Extension.ARB.Imaging.GL_CONVOLUTION_2D', 'Graphics.GL.Raw.Extension.EXT.Convolution.GL_CONVOLUTION_2D_EXT'.
+--
+-- The parameter @internalformat@ is a @PixelInternalFormat@.
+--
+-- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Raw.Extension.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_ALPHA', 'Graphics.GL.Raw.Internal.Shared.GL_BLUE', 'Graphics.GL.Raw.Extension.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Raw.Extension.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Raw.Internal.Shared.GL_GREEN', 'Graphics.GL.Raw.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Raw.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Raw.Internal.Shared.GL_RED', 'Graphics.GL.Raw.Extension.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_RGB', 'Graphics.GL.Raw.Internal.Shared.GL_RGBA', 'Graphics.GL.Raw.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Raw.Extension.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
+--
+-- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_BITMAP', 'Graphics.GL.Raw.Internal.Shared.GL_BYTE', 'Graphics.GL.Raw.Internal.Shared.GL_FLOAT', 'Graphics.GL.Raw.Internal.Shared.GL_INT', 'Graphics.GL.Raw.Internal.Shared.GL_SHORT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
+--
+-- The length of @image@ should be @COMPSIZE(format,type,width,height)@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Extension.ARB.Imaging.glConvolutionFilter2D'.
+
+
 glConvolutionFilter2DEXT :: MonadIO m => GLenum -> GLenum -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
 glConvolutionFilter2DEXT = ffienumenumsizeisizeienumenumPtrVIOV glConvolutionFilter2DEXTFunPtr
 
@@ -67,6 +100,17 @@
 
 {-# NOINLINE glConvolutionFilter2DEXTFunPtr #-}
 
+-- | Usage: @'glConvolutionParameterfEXT' target pname params@
+--
+-- The parameter @target@ is a @ConvolutionTargetEXT@, one of: 'Graphics.GL.Raw.Extension.ARB.Imaging.GL_CONVOLUTION_1D', 'Graphics.GL.Raw.Extension.EXT.Convolution.GL_CONVOLUTION_1D_EXT', 'Graphics.GL.Raw.Extension.ARB.Imaging.GL_CONVOLUTION_2D', 'Graphics.GL.Raw.Extension.EXT.Convolution.GL_CONVOLUTION_2D_EXT'.
+--
+-- The parameter @pname@ is a @ConvolutionParameterEXT@, one of: 'Graphics.GL.Raw.Extension.ARB.Imaging.GL_CONVOLUTION_BORDER_MODE', 'Graphics.GL.Raw.Extension.EXT.Convolution.GL_CONVOLUTION_BORDER_MODE_EXT', 'Graphics.GL.Raw.Extension.ARB.Imaging.GL_CONVOLUTION_FILTER_BIAS', 'Graphics.GL.Raw.Extension.EXT.Convolution.GL_CONVOLUTION_FILTER_BIAS_EXT', 'Graphics.GL.Raw.Extension.ARB.Imaging.GL_CONVOLUTION_FILTER_SCALE', 'Graphics.GL.Raw.Extension.EXT.Convolution.GL_CONVOLUTION_FILTER_SCALE_EXT'.
+--
+-- The parameter @params@ is a @CheckedFloat32@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Extension.ARB.Imaging.glConvolutionParameterf'.
+
+
 glConvolutionParameterfEXT :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()
 glConvolutionParameterfEXT = ffienumenumfloatIOV glConvolutionParameterfEXTFunPtr
 
@@ -75,6 +119,19 @@
 
 {-# NOINLINE glConvolutionParameterfEXTFunPtr #-}
 
+-- | Usage: @'glConvolutionParameterfvEXT' target pname params@
+--
+-- The parameter @target@ is a @ConvolutionTargetEXT@, one of: 'Graphics.GL.Raw.Extension.ARB.Imaging.GL_CONVOLUTION_1D', 'Graphics.GL.Raw.Extension.EXT.Convolution.GL_CONVOLUTION_1D_EXT', 'Graphics.GL.Raw.Extension.ARB.Imaging.GL_CONVOLUTION_2D', 'Graphics.GL.Raw.Extension.EXT.Convolution.GL_CONVOLUTION_2D_EXT'.
+--
+-- The parameter @pname@ is a @ConvolutionParameterEXT@, one of: 'Graphics.GL.Raw.Extension.ARB.Imaging.GL_CONVOLUTION_BORDER_MODE', 'Graphics.GL.Raw.Extension.EXT.Convolution.GL_CONVOLUTION_BORDER_MODE_EXT', 'Graphics.GL.Raw.Extension.ARB.Imaging.GL_CONVOLUTION_FILTER_BIAS', 'Graphics.GL.Raw.Extension.EXT.Convolution.GL_CONVOLUTION_FILTER_BIAS_EXT', 'Graphics.GL.Raw.Extension.ARB.Imaging.GL_CONVOLUTION_FILTER_SCALE', 'Graphics.GL.Raw.Extension.EXT.Convolution.GL_CONVOLUTION_FILTER_SCALE_EXT'.
+--
+-- The parameter @params@ is a @CheckedFloat32@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Extension.ARB.Imaging.glConvolutionParameterfv'.
+
+
 glConvolutionParameterfvEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
 glConvolutionParameterfvEXT = ffienumenumPtrfloatIOV glConvolutionParameterfvEXTFunPtr
 
@@ -83,6 +140,17 @@
 
 {-# NOINLINE glConvolutionParameterfvEXTFunPtr #-}
 
+-- | Usage: @'glConvolutionParameteriEXT' target pname params@
+--
+-- The parameter @target@ is a @ConvolutionTargetEXT@, one of: 'Graphics.GL.Raw.Extension.ARB.Imaging.GL_CONVOLUTION_1D', 'Graphics.GL.Raw.Extension.EXT.Convolution.GL_CONVOLUTION_1D_EXT', 'Graphics.GL.Raw.Extension.ARB.Imaging.GL_CONVOLUTION_2D', 'Graphics.GL.Raw.Extension.EXT.Convolution.GL_CONVOLUTION_2D_EXT'.
+--
+-- The parameter @pname@ is a @ConvolutionParameterEXT@, one of: 'Graphics.GL.Raw.Extension.ARB.Imaging.GL_CONVOLUTION_BORDER_MODE', 'Graphics.GL.Raw.Extension.EXT.Convolution.GL_CONVOLUTION_BORDER_MODE_EXT', 'Graphics.GL.Raw.Extension.ARB.Imaging.GL_CONVOLUTION_FILTER_BIAS', 'Graphics.GL.Raw.Extension.EXT.Convolution.GL_CONVOLUTION_FILTER_BIAS_EXT', 'Graphics.GL.Raw.Extension.ARB.Imaging.GL_CONVOLUTION_FILTER_SCALE', 'Graphics.GL.Raw.Extension.EXT.Convolution.GL_CONVOLUTION_FILTER_SCALE_EXT'.
+--
+-- The parameter @params@ is a @CheckedInt32@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Extension.ARB.Imaging.glConvolutionParameteri'.
+
+
 glConvolutionParameteriEXT :: MonadIO m => GLenum -> GLenum -> GLint -> m ()
 glConvolutionParameteriEXT = ffienumenumintIOV glConvolutionParameteriEXTFunPtr
 
@@ -91,6 +159,19 @@
 
 {-# NOINLINE glConvolutionParameteriEXTFunPtr #-}
 
+-- | Usage: @'glConvolutionParameterivEXT' target pname params@
+--
+-- The parameter @target@ is a @ConvolutionTargetEXT@, one of: 'Graphics.GL.Raw.Extension.ARB.Imaging.GL_CONVOLUTION_1D', 'Graphics.GL.Raw.Extension.EXT.Convolution.GL_CONVOLUTION_1D_EXT', 'Graphics.GL.Raw.Extension.ARB.Imaging.GL_CONVOLUTION_2D', 'Graphics.GL.Raw.Extension.EXT.Convolution.GL_CONVOLUTION_2D_EXT'.
+--
+-- The parameter @pname@ is a @ConvolutionParameterEXT@, one of: 'Graphics.GL.Raw.Extension.ARB.Imaging.GL_CONVOLUTION_BORDER_MODE', 'Graphics.GL.Raw.Extension.EXT.Convolution.GL_CONVOLUTION_BORDER_MODE_EXT', 'Graphics.GL.Raw.Extension.ARB.Imaging.GL_CONVOLUTION_FILTER_BIAS', 'Graphics.GL.Raw.Extension.EXT.Convolution.GL_CONVOLUTION_FILTER_BIAS_EXT', 'Graphics.GL.Raw.Extension.ARB.Imaging.GL_CONVOLUTION_FILTER_SCALE', 'Graphics.GL.Raw.Extension.EXT.Convolution.GL_CONVOLUTION_FILTER_SCALE_EXT'.
+--
+-- The parameter @params@ is a @CheckedInt32@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Extension.ARB.Imaging.glConvolutionParameteriv'.
+
+
 glConvolutionParameterivEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
 glConvolutionParameterivEXT = ffienumenumPtrintIOV glConvolutionParameterivEXTFunPtr
 
@@ -99,6 +180,19 @@
 
 {-# NOINLINE glConvolutionParameterivEXTFunPtr #-}
 
+-- | Usage: @'glCopyConvolutionFilter1DEXT' target internalformat x y width@
+--
+-- The parameter @target@ is a @ConvolutionTargetEXT@, one of: 'Graphics.GL.Raw.Extension.ARB.Imaging.GL_CONVOLUTION_1D', 'Graphics.GL.Raw.Extension.EXT.Convolution.GL_CONVOLUTION_1D_EXT', 'Graphics.GL.Raw.Extension.ARB.Imaging.GL_CONVOLUTION_2D', 'Graphics.GL.Raw.Extension.EXT.Convolution.GL_CONVOLUTION_2D_EXT'.
+--
+-- The parameter @internalformat@ is a @PixelInternalFormat@.
+--
+-- The parameter @x@ is a @WinCoord@.
+--
+-- The parameter @y@ is a @WinCoord@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Extension.ARB.Imaging.glCopyConvolutionFilter1D'.
+
+
 glCopyConvolutionFilter1DEXT :: MonadIO m => GLenum -> GLenum -> GLint -> GLint -> GLsizei -> m ()
 glCopyConvolutionFilter1DEXT = ffienumenumintintsizeiIOV glCopyConvolutionFilter1DEXTFunPtr
 
@@ -107,6 +201,19 @@
 
 {-# NOINLINE glCopyConvolutionFilter1DEXTFunPtr #-}
 
+-- | Usage: @'glCopyConvolutionFilter2DEXT' target internalformat x y width height@
+--
+-- The parameter @target@ is a @ConvolutionTargetEXT@, one of: 'Graphics.GL.Raw.Extension.ARB.Imaging.GL_CONVOLUTION_1D', 'Graphics.GL.Raw.Extension.EXT.Convolution.GL_CONVOLUTION_1D_EXT', 'Graphics.GL.Raw.Extension.ARB.Imaging.GL_CONVOLUTION_2D', 'Graphics.GL.Raw.Extension.EXT.Convolution.GL_CONVOLUTION_2D_EXT'.
+--
+-- The parameter @internalformat@ is a @PixelInternalFormat@.
+--
+-- The parameter @x@ is a @WinCoord@.
+--
+-- The parameter @y@ is a @WinCoord@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Extension.ARB.Imaging.glCopyConvolutionFilter2D'.
+
+
 glCopyConvolutionFilter2DEXT :: MonadIO m => GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> m ()
 glCopyConvolutionFilter2DEXT = ffienumenumintintsizeisizeiIOV glCopyConvolutionFilter2DEXTFunPtr
 
@@ -115,6 +222,17 @@
 
 {-# NOINLINE glCopyConvolutionFilter2DEXTFunPtr #-}
 
+-- | Usage: @'glGetConvolutionFilterEXT' target format type image@
+--
+-- The parameter @target@ is a @ConvolutionTargetEXT@, one of: 'Graphics.GL.Raw.Extension.ARB.Imaging.GL_CONVOLUTION_1D', 'Graphics.GL.Raw.Extension.EXT.Convolution.GL_CONVOLUTION_1D_EXT', 'Graphics.GL.Raw.Extension.ARB.Imaging.GL_CONVOLUTION_2D', 'Graphics.GL.Raw.Extension.EXT.Convolution.GL_CONVOLUTION_2D_EXT'.
+--
+-- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Raw.Extension.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_ALPHA', 'Graphics.GL.Raw.Internal.Shared.GL_BLUE', 'Graphics.GL.Raw.Extension.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Raw.Extension.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Raw.Internal.Shared.GL_GREEN', 'Graphics.GL.Raw.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Raw.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Raw.Internal.Shared.GL_RED', 'Graphics.GL.Raw.Extension.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_RGB', 'Graphics.GL.Raw.Internal.Shared.GL_RGBA', 'Graphics.GL.Raw.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Raw.Extension.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
+--
+-- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_BITMAP', 'Graphics.GL.Raw.Internal.Shared.GL_BYTE', 'Graphics.GL.Raw.Internal.Shared.GL_FLOAT', 'Graphics.GL.Raw.Internal.Shared.GL_INT', 'Graphics.GL.Raw.Internal.Shared.GL_SHORT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
+--
+-- The length of @image@ should be @COMPSIZE(target,format,type)@.
+
+
 glGetConvolutionFilterEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr () -> m ()
 glGetConvolutionFilterEXT = ffienumenumenumPtrVIOV glGetConvolutionFilterEXTFunPtr
 
@@ -123,6 +241,15 @@
 
 {-# NOINLINE glGetConvolutionFilterEXTFunPtr #-}
 
+-- | Usage: @'glGetConvolutionParameterfvEXT' target pname params@
+--
+-- The parameter @target@ is a @ConvolutionTargetEXT@, one of: 'Graphics.GL.Raw.Extension.ARB.Imaging.GL_CONVOLUTION_1D', 'Graphics.GL.Raw.Extension.EXT.Convolution.GL_CONVOLUTION_1D_EXT', 'Graphics.GL.Raw.Extension.ARB.Imaging.GL_CONVOLUTION_2D', 'Graphics.GL.Raw.Extension.EXT.Convolution.GL_CONVOLUTION_2D_EXT'.
+--
+-- The parameter @pname@ is a @ConvolutionParameterEXT@, one of: 'Graphics.GL.Raw.Extension.ARB.Imaging.GL_CONVOLUTION_BORDER_MODE', 'Graphics.GL.Raw.Extension.EXT.Convolution.GL_CONVOLUTION_BORDER_MODE_EXT', 'Graphics.GL.Raw.Extension.ARB.Imaging.GL_CONVOLUTION_FILTER_BIAS', 'Graphics.GL.Raw.Extension.EXT.Convolution.GL_CONVOLUTION_FILTER_BIAS_EXT', 'Graphics.GL.Raw.Extension.ARB.Imaging.GL_CONVOLUTION_FILTER_SCALE', 'Graphics.GL.Raw.Extension.EXT.Convolution.GL_CONVOLUTION_FILTER_SCALE_EXT'.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
 glGetConvolutionParameterfvEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
 glGetConvolutionParameterfvEXT = ffienumenumPtrfloatIOV glGetConvolutionParameterfvEXTFunPtr
 
@@ -131,6 +258,15 @@
 
 {-# NOINLINE glGetConvolutionParameterfvEXTFunPtr #-}
 
+-- | Usage: @'glGetConvolutionParameterivEXT' target pname params@
+--
+-- The parameter @target@ is a @ConvolutionTargetEXT@, one of: 'Graphics.GL.Raw.Extension.ARB.Imaging.GL_CONVOLUTION_1D', 'Graphics.GL.Raw.Extension.EXT.Convolution.GL_CONVOLUTION_1D_EXT', 'Graphics.GL.Raw.Extension.ARB.Imaging.GL_CONVOLUTION_2D', 'Graphics.GL.Raw.Extension.EXT.Convolution.GL_CONVOLUTION_2D_EXT'.
+--
+-- The parameter @pname@ is a @ConvolutionParameterEXT@, one of: 'Graphics.GL.Raw.Extension.ARB.Imaging.GL_CONVOLUTION_BORDER_MODE', 'Graphics.GL.Raw.Extension.EXT.Convolution.GL_CONVOLUTION_BORDER_MODE_EXT', 'Graphics.GL.Raw.Extension.ARB.Imaging.GL_CONVOLUTION_FILTER_BIAS', 'Graphics.GL.Raw.Extension.EXT.Convolution.GL_CONVOLUTION_FILTER_BIAS_EXT', 'Graphics.GL.Raw.Extension.ARB.Imaging.GL_CONVOLUTION_FILTER_SCALE', 'Graphics.GL.Raw.Extension.EXT.Convolution.GL_CONVOLUTION_FILTER_SCALE_EXT'.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
 glGetConvolutionParameterivEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
 glGetConvolutionParameterivEXT = ffienumenumPtrintIOV glGetConvolutionParameterivEXTFunPtr
 
@@ -139,6 +275,21 @@
 
 {-# NOINLINE glGetConvolutionParameterivEXTFunPtr #-}
 
+-- | Usage: @'glGetSeparableFilterEXT' target format type row column span@
+--
+-- The parameter @target@ is a @SeparableTargetEXT@, one of: 'Graphics.GL.Raw.Extension.ARB.Imaging.GL_SEPARABLE_2D', 'Graphics.GL.Raw.Extension.EXT.Convolution.GL_SEPARABLE_2D_EXT'.
+--
+-- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Raw.Extension.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_ALPHA', 'Graphics.GL.Raw.Internal.Shared.GL_BLUE', 'Graphics.GL.Raw.Extension.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Raw.Extension.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Raw.Internal.Shared.GL_GREEN', 'Graphics.GL.Raw.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Raw.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Raw.Internal.Shared.GL_RED', 'Graphics.GL.Raw.Extension.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_RGB', 'Graphics.GL.Raw.Internal.Shared.GL_RGBA', 'Graphics.GL.Raw.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Raw.Extension.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
+--
+-- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_BITMAP', 'Graphics.GL.Raw.Internal.Shared.GL_BYTE', 'Graphics.GL.Raw.Internal.Shared.GL_FLOAT', 'Graphics.GL.Raw.Internal.Shared.GL_INT', 'Graphics.GL.Raw.Internal.Shared.GL_SHORT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
+--
+-- The length of @row@ should be @COMPSIZE(target,format,type)@.
+--
+-- The length of @column@ should be @COMPSIZE(target,format,type)@.
+--
+-- The length of @span@ should be @COMPSIZE(target,format,type)@.
+
+
 glGetSeparableFilterEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr () -> Ptr () -> Ptr () -> m ()
 glGetSeparableFilterEXT = ffienumenumenumPtrVPtrVPtrVIOV glGetSeparableFilterEXTFunPtr
 
@@ -146,6 +297,23 @@
 glGetSeparableFilterEXTFunPtr = unsafePerformIO (getProcAddress "glGetSeparableFilterEXT")
 
 {-# NOINLINE glGetSeparableFilterEXTFunPtr #-}
+
+-- | Usage: @'glSeparableFilter2DEXT' target internalformat width height format type row column@
+--
+-- The parameter @target@ is a @SeparableTargetEXT@, one of: 'Graphics.GL.Raw.Extension.ARB.Imaging.GL_SEPARABLE_2D', 'Graphics.GL.Raw.Extension.EXT.Convolution.GL_SEPARABLE_2D_EXT'.
+--
+-- The parameter @internalformat@ is a @PixelInternalFormat@.
+--
+-- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Raw.Extension.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_ALPHA', 'Graphics.GL.Raw.Internal.Shared.GL_BLUE', 'Graphics.GL.Raw.Extension.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Raw.Extension.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Raw.Internal.Shared.GL_GREEN', 'Graphics.GL.Raw.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Raw.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Raw.Internal.Shared.GL_RED', 'Graphics.GL.Raw.Extension.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_RGB', 'Graphics.GL.Raw.Internal.Shared.GL_RGBA', 'Graphics.GL.Raw.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Raw.Extension.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
+--
+-- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_BITMAP', 'Graphics.GL.Raw.Internal.Shared.GL_BYTE', 'Graphics.GL.Raw.Internal.Shared.GL_FLOAT', 'Graphics.GL.Raw.Internal.Shared.GL_INT', 'Graphics.GL.Raw.Internal.Shared.GL_SHORT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
+--
+-- The length of @row@ should be @COMPSIZE(target,format,type,width)@.
+--
+-- The length of @column@ should be @COMPSIZE(target,format,type,height)@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Extension.ARB.Imaging.glSeparableFilter2D'.
+
 
 glSeparableFilter2DEXT :: MonadIO m => GLenum -> GLenum -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> Ptr () -> m ()
 glSeparableFilter2DEXT = ffienumenumsizeisizeienumenumPtrVPtrVIOV glSeparableFilter2DEXTFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/CoordinateFrame.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/CoordinateFrame.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/CoordinateFrame.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/CoordinateFrame.hs
@@ -51,9 +51,17 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/coordinate_frame.txt GL_EXT_coordinate_frame> extension is available.
+
 gl_EXT_coordinate_frame :: Bool
 gl_EXT_coordinate_frame = member "GL_EXT_coordinate_frame" extensions
+{-# NOINLINE gl_EXT_coordinate_frame #-}
 
+-- | Usage: @'glBinormal3bEXT' bx by bz@
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Extension.EXT.CoordinateFrame.glBinormal3bvEXT'.
+
+
 glBinormal3bEXT :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> m ()
 glBinormal3bEXT = ffibytebytebyteIOV glBinormal3bEXTFunPtr
 
@@ -62,6 +70,11 @@
 
 {-# NOINLINE glBinormal3bEXTFunPtr #-}
 
+-- | Usage: @'glBinormal3bvEXT' v@
+--
+-- The length of @v@ should be @3@.
+
+
 glBinormal3bvEXT :: MonadIO m => Ptr GLbyte -> m ()
 glBinormal3bvEXT = ffiPtrbyteIOV glBinormal3bvEXTFunPtr
 
@@ -70,6 +83,17 @@
 
 {-# NOINLINE glBinormal3bvEXTFunPtr #-}
 
+-- | Usage: @'glBinormal3dEXT' bx by bz@
+--
+-- The parameter @bx@ is a @CoordD@.
+--
+-- The parameter @by@ is a @CoordD@.
+--
+-- The parameter @bz@ is a @CoordD@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Extension.EXT.CoordinateFrame.glBinormal3dvEXT'.
+
+
 glBinormal3dEXT :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()
 glBinormal3dEXT = ffidoubledoubledoubleIOV glBinormal3dEXTFunPtr
 
@@ -78,6 +102,13 @@
 
 {-# NOINLINE glBinormal3dEXTFunPtr #-}
 
+-- | Usage: @'glBinormal3dvEXT' v@
+--
+-- The parameter @v@ is a @CoordD@.
+--
+-- The length of @v@ should be @3@.
+
+
 glBinormal3dvEXT :: MonadIO m => Ptr GLdouble -> m ()
 glBinormal3dvEXT = ffiPtrdoubleIOV glBinormal3dvEXTFunPtr
 
@@ -86,6 +117,17 @@
 
 {-# NOINLINE glBinormal3dvEXTFunPtr #-}
 
+-- | Usage: @'glBinormal3fEXT' bx by bz@
+--
+-- The parameter @bx@ is a @CoordF@.
+--
+-- The parameter @by@ is a @CoordF@.
+--
+-- The parameter @bz@ is a @CoordF@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Extension.EXT.CoordinateFrame.glBinormal3fvEXT'.
+
+
 glBinormal3fEXT :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()
 glBinormal3fEXT = ffifloatfloatfloatIOV glBinormal3fEXTFunPtr
 
@@ -94,6 +136,13 @@
 
 {-# NOINLINE glBinormal3fEXTFunPtr #-}
 
+-- | Usage: @'glBinormal3fvEXT' v@
+--
+-- The parameter @v@ is a @CoordF@.
+--
+-- The length of @v@ should be @3@.
+
+
 glBinormal3fvEXT :: MonadIO m => Ptr GLfloat -> m ()
 glBinormal3fvEXT = ffiPtrfloatIOV glBinormal3fvEXTFunPtr
 
@@ -102,6 +151,11 @@
 
 {-# NOINLINE glBinormal3fvEXTFunPtr #-}
 
+-- | Usage: @'glBinormal3iEXT' bx by bz@
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Extension.EXT.CoordinateFrame.glBinormal3ivEXT'.
+
+
 glBinormal3iEXT :: MonadIO m => GLint -> GLint -> GLint -> m ()
 glBinormal3iEXT = ffiintintintIOV glBinormal3iEXTFunPtr
 
@@ -110,6 +164,11 @@
 
 {-# NOINLINE glBinormal3iEXTFunPtr #-}
 
+-- | Usage: @'glBinormal3ivEXT' v@
+--
+-- The length of @v@ should be @3@.
+
+
 glBinormal3ivEXT :: MonadIO m => Ptr GLint -> m ()
 glBinormal3ivEXT = ffiPtrintIOV glBinormal3ivEXTFunPtr
 
@@ -118,6 +177,11 @@
 
 {-# NOINLINE glBinormal3ivEXTFunPtr #-}
 
+-- | Usage: @'glBinormal3sEXT' bx by bz@
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Extension.EXT.CoordinateFrame.glBinormal3svEXT'.
+
+
 glBinormal3sEXT :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()
 glBinormal3sEXT = ffishortshortshortIOV glBinormal3sEXTFunPtr
 
@@ -126,6 +190,11 @@
 
 {-# NOINLINE glBinormal3sEXTFunPtr #-}
 
+-- | Usage: @'glBinormal3svEXT' v@
+--
+-- The length of @v@ should be @3@.
+
+
 glBinormal3svEXT :: MonadIO m => Ptr GLshort -> m ()
 glBinormal3svEXT = ffiPtrshortIOV glBinormal3svEXTFunPtr
 
@@ -134,6 +203,13 @@
 
 {-# NOINLINE glBinormal3svEXTFunPtr #-}
 
+-- | Usage: @'glBinormalPointerEXT' type stride pointer@
+--
+-- The parameter @type@ is a @BinormalPointerTypeEXT@.
+--
+-- The length of @pointer@ should be @COMPSIZE(type,stride)@.
+
+
 glBinormalPointerEXT :: MonadIO m => GLenum -> GLsizei -> Ptr () -> m ()
 glBinormalPointerEXT = ffienumsizeiPtrVIOV glBinormalPointerEXTFunPtr
 
@@ -142,6 +218,11 @@
 
 {-# NOINLINE glBinormalPointerEXTFunPtr #-}
 
+-- | Usage: @'glTangent3bEXT' tx ty tz@
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Extension.EXT.CoordinateFrame.glTangent3bvEXT'.
+
+
 glTangent3bEXT :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> m ()
 glTangent3bEXT = ffibytebytebyteIOV glTangent3bEXTFunPtr
 
@@ -150,6 +231,11 @@
 
 {-# NOINLINE glTangent3bEXTFunPtr #-}
 
+-- | Usage: @'glTangent3bvEXT' v@
+--
+-- The length of @v@ should be @3@.
+
+
 glTangent3bvEXT :: MonadIO m => Ptr GLbyte -> m ()
 glTangent3bvEXT = ffiPtrbyteIOV glTangent3bvEXTFunPtr
 
@@ -158,6 +244,17 @@
 
 {-# NOINLINE glTangent3bvEXTFunPtr #-}
 
+-- | Usage: @'glTangent3dEXT' tx ty tz@
+--
+-- The parameter @tx@ is a @CoordD@.
+--
+-- The parameter @ty@ is a @CoordD@.
+--
+-- The parameter @tz@ is a @CoordD@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Extension.EXT.CoordinateFrame.glTangent3dvEXT'.
+
+
 glTangent3dEXT :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()
 glTangent3dEXT = ffidoubledoubledoubleIOV glTangent3dEXTFunPtr
 
@@ -166,6 +263,13 @@
 
 {-# NOINLINE glTangent3dEXTFunPtr #-}
 
+-- | Usage: @'glTangent3dvEXT' v@
+--
+-- The parameter @v@ is a @CoordD@.
+--
+-- The length of @v@ should be @3@.
+
+
 glTangent3dvEXT :: MonadIO m => Ptr GLdouble -> m ()
 glTangent3dvEXT = ffiPtrdoubleIOV glTangent3dvEXTFunPtr
 
@@ -174,6 +278,17 @@
 
 {-# NOINLINE glTangent3dvEXTFunPtr #-}
 
+-- | Usage: @'glTangent3fEXT' tx ty tz@
+--
+-- The parameter @tx@ is a @CoordF@.
+--
+-- The parameter @ty@ is a @CoordF@.
+--
+-- The parameter @tz@ is a @CoordF@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Extension.EXT.CoordinateFrame.glTangent3fvEXT'.
+
+
 glTangent3fEXT :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()
 glTangent3fEXT = ffifloatfloatfloatIOV glTangent3fEXTFunPtr
 
@@ -182,6 +297,13 @@
 
 {-# NOINLINE glTangent3fEXTFunPtr #-}
 
+-- | Usage: @'glTangent3fvEXT' v@
+--
+-- The parameter @v@ is a @CoordF@.
+--
+-- The length of @v@ should be @3@.
+
+
 glTangent3fvEXT :: MonadIO m => Ptr GLfloat -> m ()
 glTangent3fvEXT = ffiPtrfloatIOV glTangent3fvEXTFunPtr
 
@@ -190,6 +312,11 @@
 
 {-# NOINLINE glTangent3fvEXTFunPtr #-}
 
+-- | Usage: @'glTangent3iEXT' tx ty tz@
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Extension.EXT.CoordinateFrame.glTangent3ivEXT'.
+
+
 glTangent3iEXT :: MonadIO m => GLint -> GLint -> GLint -> m ()
 glTangent3iEXT = ffiintintintIOV glTangent3iEXTFunPtr
 
@@ -198,6 +325,11 @@
 
 {-# NOINLINE glTangent3iEXTFunPtr #-}
 
+-- | Usage: @'glTangent3ivEXT' v@
+--
+-- The length of @v@ should be @3@.
+
+
 glTangent3ivEXT :: MonadIO m => Ptr GLint -> m ()
 glTangent3ivEXT = ffiPtrintIOV glTangent3ivEXTFunPtr
 
@@ -206,6 +338,11 @@
 
 {-# NOINLINE glTangent3ivEXTFunPtr #-}
 
+-- | Usage: @'glTangent3sEXT' tx ty tz@
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Extension.EXT.CoordinateFrame.glTangent3svEXT'.
+
+
 glTangent3sEXT :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()
 glTangent3sEXT = ffishortshortshortIOV glTangent3sEXTFunPtr
 
@@ -214,6 +351,11 @@
 
 {-# NOINLINE glTangent3sEXTFunPtr #-}
 
+-- | Usage: @'glTangent3svEXT' v@
+--
+-- The length of @v@ should be @3@.
+
+
 glTangent3svEXT :: MonadIO m => Ptr GLshort -> m ()
 glTangent3svEXT = ffiPtrshortIOV glTangent3svEXTFunPtr
 
@@ -221,6 +363,13 @@
 glTangent3svEXTFunPtr = unsafePerformIO (getProcAddress "glTangent3svEXT")
 
 {-# NOINLINE glTangent3svEXTFunPtr #-}
+
+-- | Usage: @'glTangentPointerEXT' type stride pointer@
+--
+-- The parameter @type@ is a @TangentPointerTypeEXT@.
+--
+-- The length of @pointer@ should be @COMPSIZE(type,stride)@.
+
 
 glTangentPointerEXT :: MonadIO m => GLenum -> GLsizei -> Ptr () -> m ()
 glTangentPointerEXT = ffienumsizeiPtrVIOV glTangentPointerEXTFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/CopyImage.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/CopyImage.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/CopyImage.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/CopyImage.hs
@@ -16,8 +16,16 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the GL_EXT_copy_image extension is available.
+
 gl_EXT_copy_image :: Bool
 gl_EXT_copy_image = member "GL_EXT_copy_image" extensions
+{-# NOINLINE gl_EXT_copy_image #-}
+
+-- | Usage: @'glCopyImageSubDataEXT' srcName srcTarget srcLevel srcX srcY srcZ dstName dstTarget dstLevel dstX dstY dstZ srcWidth srcHeight srcDepth@
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glCopyImageSubData'.
+
 
 glCopyImageSubDataEXT :: MonadIO m => GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> m ()
 glCopyImageSubDataEXT = ffiuintenumintintintintuintenumintintintintsizeisizeisizeiIOV glCopyImageSubDataEXTFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/CopyTexture.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/CopyTexture.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/CopyTexture.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/CopyTexture.hs
@@ -20,9 +20,29 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/copy_texture.txt GL_EXT_copy_texture> extension is available.
+
 gl_EXT_copy_texture :: Bool
 gl_EXT_copy_texture = member "GL_EXT_copy_texture" extensions
+{-# NOINLINE gl_EXT_copy_texture #-}
 
+-- | Usage: @'glCopyTexImage1DEXT' target level internalformat x y width border@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @internalformat@ is a @PixelInternalFormat@.
+--
+-- The parameter @x@ is a @WinCoord@.
+--
+-- The parameter @y@ is a @WinCoord@.
+--
+-- The parameter @border@ is a @CheckedInt32@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glCopyTexImage1D'.
+
+
 glCopyTexImage1DEXT :: MonadIO m => GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> m ()
 glCopyTexImage1DEXT = ffienumintenumintintsizeiintIOV glCopyTexImage1DEXTFunPtr
 
@@ -31,6 +51,23 @@
 
 {-# NOINLINE glCopyTexImage1DEXTFunPtr #-}
 
+-- | Usage: @'glCopyTexImage2DEXT' target level internalformat x y width height border@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @internalformat@ is a @PixelInternalFormat@.
+--
+-- The parameter @x@ is a @WinCoord@.
+--
+-- The parameter @y@ is a @WinCoord@.
+--
+-- The parameter @border@ is a @CheckedInt32@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glCopyTexImage2D'.
+
+
 glCopyTexImage2DEXT :: MonadIO m => GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> m ()
 glCopyTexImage2DEXT = ffienumintenumintintsizeisizeiintIOV glCopyTexImage2DEXTFunPtr
 
@@ -39,6 +76,21 @@
 
 {-# NOINLINE glCopyTexImage2DEXTFunPtr #-}
 
+-- | Usage: @'glCopyTexSubImage1DEXT' target level xoffset x y width@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @xoffset@ is a @CheckedInt32@.
+--
+-- The parameter @x@ is a @WinCoord@.
+--
+-- The parameter @y@ is a @WinCoord@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glCopyTexSubImage1D'.
+
+
 glCopyTexSubImage1DEXT :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> m ()
 glCopyTexSubImage1DEXT = ffienumintintintintsizeiIOV glCopyTexSubImage1DEXTFunPtr
 
@@ -47,6 +99,23 @@
 
 {-# NOINLINE glCopyTexSubImage1DEXTFunPtr #-}
 
+-- | Usage: @'glCopyTexSubImage2DEXT' target level xoffset yoffset x y width height@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @xoffset@ is a @CheckedInt32@.
+--
+-- The parameter @yoffset@ is a @CheckedInt32@.
+--
+-- The parameter @x@ is a @WinCoord@.
+--
+-- The parameter @y@ is a @WinCoord@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glCopyTexSubImage2D'.
+
+
 glCopyTexSubImage2DEXT :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()
 glCopyTexSubImage2DEXT = ffienumintintintintintsizeisizeiIOV glCopyTexSubImage2DEXTFunPtr
 
@@ -54,6 +123,25 @@
 glCopyTexSubImage2DEXTFunPtr = unsafePerformIO (getProcAddress "glCopyTexSubImage2DEXT")
 
 {-# NOINLINE glCopyTexSubImage2DEXTFunPtr #-}
+
+-- | Usage: @'glCopyTexSubImage3DEXT' target level xoffset yoffset zoffset x y width height@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @xoffset@ is a @CheckedInt32@.
+--
+-- The parameter @yoffset@ is a @CheckedInt32@.
+--
+-- The parameter @zoffset@ is a @CheckedInt32@.
+--
+-- The parameter @x@ is a @WinCoord@.
+--
+-- The parameter @y@ is a @WinCoord@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glCopyTexSubImage3D'.
+
 
 glCopyTexSubImage3DEXT :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()
 glCopyTexSubImage3DEXT = ffienumintintintintintintsizeisizeiIOV glCopyTexSubImage3DEXTFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/CullVertex.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/CullVertex.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/CullVertex.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/CullVertex.hs
@@ -20,9 +20,19 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/cull_vertex.txt GL_EXT_cull_vertex> extension is available.
+
 gl_EXT_cull_vertex :: Bool
 gl_EXT_cull_vertex = member "GL_EXT_cull_vertex" extensions
+{-# NOINLINE gl_EXT_cull_vertex #-}
 
+-- | Usage: @'glCullParameterdvEXT' pname params@
+--
+-- The parameter @pname@ is a @CullParameterEXT@.
+--
+-- The length of @params@ should be @4@.
+
+
 glCullParameterdvEXT :: MonadIO m => GLenum -> Ptr GLdouble -> m ()
 glCullParameterdvEXT = ffienumPtrdoubleIOV glCullParameterdvEXTFunPtr
 
@@ -30,6 +40,13 @@
 glCullParameterdvEXTFunPtr = unsafePerformIO (getProcAddress "glCullParameterdvEXT")
 
 {-# NOINLINE glCullParameterdvEXTFunPtr #-}
+
+-- | Usage: @'glCullParameterfvEXT' pname params@
+--
+-- The parameter @pname@ is a @CullParameterEXT@.
+--
+-- The length of @params@ should be @4@.
+
 
 glCullParameterfvEXT :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
 glCullParameterfvEXT = ffienumPtrfloatIOV glCullParameterfvEXTFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/DebugLabel.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/DebugLabel.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/DebugLabel.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/DebugLabel.hs
@@ -26,9 +26,19 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the GL_EXT_debug_label extension is available.
+
 gl_EXT_debug_label :: Bool
 gl_EXT_debug_label = member "GL_EXT_debug_label" extensions
+{-# NOINLINE gl_EXT_debug_label #-}
 
+-- | Usage: @'glGetObjectLabelEXT' type object bufSize length label@
+--
+-- The length of @length@ should be @1@.
+--
+-- The length of @label@ should be @bufSize@.
+
+
 glGetObjectLabelEXT :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
 glGetObjectLabelEXT = ffienumuintsizeiPtrsizeiPtrcharIOV glGetObjectLabelEXTFunPtr
 
@@ -36,6 +46,9 @@
 glGetObjectLabelEXTFunPtr = unsafePerformIO (getProcAddress "glGetObjectLabelEXT")
 
 {-# NOINLINE glGetObjectLabelEXTFunPtr #-}
+
+-- | Usage: @'glLabelObjectEXT' type object length label@
+
 
 glLabelObjectEXT :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLchar -> m ()
 glLabelObjectEXT = ffienumuintsizeiPtrcharIOV glLabelObjectEXTFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/DebugMarker.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/DebugMarker.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/DebugMarker.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/DebugMarker.hs
@@ -18,9 +18,15 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the GL_EXT_debug_marker extension is available.
+
 gl_EXT_debug_marker :: Bool
 gl_EXT_debug_marker = member "GL_EXT_debug_marker" extensions
+{-# NOINLINE gl_EXT_debug_marker #-}
 
+-- | Usage: @'glInsertEventMarkerEXT' length marker@
+
+
 glInsertEventMarkerEXT :: MonadIO m => GLsizei -> Ptr GLchar -> m ()
 glInsertEventMarkerEXT = ffisizeiPtrcharIOV glInsertEventMarkerEXTFunPtr
 
@@ -29,6 +35,9 @@
 
 {-# NOINLINE glInsertEventMarkerEXTFunPtr #-}
 
+-- | Usage: @'glPopGroupMarkerEXT'@
+
+
 glPopGroupMarkerEXT :: MonadIO m => m ()
 glPopGroupMarkerEXT = ffiIOV glPopGroupMarkerEXTFunPtr
 
@@ -36,6 +45,9 @@
 glPopGroupMarkerEXTFunPtr = unsafePerformIO (getProcAddress "glPopGroupMarkerEXT")
 
 {-# NOINLINE glPopGroupMarkerEXTFunPtr #-}
+
+-- | Usage: @'glPushGroupMarkerEXT' length marker@
+
 
 glPushGroupMarkerEXT :: MonadIO m => GLsizei -> Ptr GLchar -> m ()
 glPushGroupMarkerEXT = ffisizeiPtrcharIOV glPushGroupMarkerEXTFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/DepthBoundsTest.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/DepthBoundsTest.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/DepthBoundsTest.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/DepthBoundsTest.hs
@@ -18,8 +18,18 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/depth_bounds_test.txt GL_EXT_depth_bounds_test> extension is available.
+
 gl_EXT_depth_bounds_test :: Bool
 gl_EXT_depth_bounds_test = member "GL_EXT_depth_bounds_test" extensions
+{-# NOINLINE gl_EXT_depth_bounds_test #-}
+
+-- | Usage: @'glDepthBoundsEXT' zmin zmax@
+--
+-- The parameter @zmin@ is a @ClampedFloat64@.
+--
+-- The parameter @zmax@ is a @ClampedFloat64@.
+
 
 glDepthBoundsEXT :: MonadIO m => GLclampd -> GLclampd -> m ()
 glDepthBoundsEXT = fficlampdclampdIOV glDepthBoundsEXTFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/DirectStateAccess.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/DirectStateAccess.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/DirectStateAccess.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/DirectStateAccess.hs
@@ -274,1712 +274,3719 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
-gl_EXT_direct_state_access :: Bool
-gl_EXT_direct_state_access = member "GL_EXT_direct_state_access" extensions
-
-glBindMultiTextureEXT :: MonadIO m => GLenum -> GLenum -> GLuint -> m ()
-glBindMultiTextureEXT = ffienumenumuintIOV glBindMultiTextureEXTFunPtr
-
-glBindMultiTextureEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLuint -> IO ())
-glBindMultiTextureEXTFunPtr = unsafePerformIO (getProcAddress "glBindMultiTextureEXT")
-
-{-# NOINLINE glBindMultiTextureEXTFunPtr #-}
-
-glCheckNamedFramebufferStatusEXT :: MonadIO m => GLuint -> GLenum -> m GLenum
-glCheckNamedFramebufferStatusEXT = ffiuintenumIOenum glCheckNamedFramebufferStatusEXTFunPtr
-
-glCheckNamedFramebufferStatusEXTFunPtr :: FunPtr (GLuint -> GLenum -> IO GLenum)
-glCheckNamedFramebufferStatusEXTFunPtr = unsafePerformIO (getProcAddress "glCheckNamedFramebufferStatusEXT")
-
-{-# NOINLINE glCheckNamedFramebufferStatusEXTFunPtr #-}
-
-glClearNamedBufferDataEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> GLenum -> Ptr () -> m ()
-glClearNamedBufferDataEXT = ffiuintenumenumenumPtrVIOV glClearNamedBufferDataEXTFunPtr
-
-glClearNamedBufferDataEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> GLenum -> Ptr () -> IO ())
-glClearNamedBufferDataEXTFunPtr = unsafePerformIO (getProcAddress "glClearNamedBufferDataEXT")
-
-{-# NOINLINE glClearNamedBufferDataEXTFunPtr #-}
-
-glClearNamedBufferSubDataEXT :: MonadIO m => GLuint -> GLenum -> GLsizeiptr -> GLsizeiptr -> GLenum -> GLenum -> Ptr () -> m ()
-glClearNamedBufferSubDataEXT = ffiuintenumsizeiptrsizeiptrenumenumPtrVIOV glClearNamedBufferSubDataEXTFunPtr
-
-glClearNamedBufferSubDataEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLsizeiptr -> GLsizeiptr -> GLenum -> GLenum -> Ptr () -> IO ())
-glClearNamedBufferSubDataEXTFunPtr = unsafePerformIO (getProcAddress "glClearNamedBufferSubDataEXT")
-
-{-# NOINLINE glClearNamedBufferSubDataEXTFunPtr #-}
-
-glClientAttribDefaultEXT :: MonadIO m => GLbitfield -> m ()
-glClientAttribDefaultEXT = ffibitfieldIOV glClientAttribDefaultEXTFunPtr
-
-glClientAttribDefaultEXTFunPtr :: FunPtr (GLbitfield -> IO ())
-glClientAttribDefaultEXTFunPtr = unsafePerformIO (getProcAddress "glClientAttribDefaultEXT")
-
-{-# NOINLINE glClientAttribDefaultEXTFunPtr #-}
-
-glCompressedMultiTexImage1DEXT :: MonadIO m => GLenum -> GLenum -> GLint -> GLenum -> GLsizei -> GLint -> GLsizei -> Ptr () -> m ()
-glCompressedMultiTexImage1DEXT = ffienumenumintenumsizeiintsizeiPtrVIOV glCompressedMultiTexImage1DEXTFunPtr
-
-glCompressedMultiTexImage1DEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> GLenum -> GLsizei -> GLint -> GLsizei -> Ptr () -> IO ())
-glCompressedMultiTexImage1DEXTFunPtr = unsafePerformIO (getProcAddress "glCompressedMultiTexImage1DEXT")
-
-{-# NOINLINE glCompressedMultiTexImage1DEXTFunPtr #-}
-
-glCompressedMultiTexImage2DEXT :: MonadIO m => GLenum -> GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> m ()
-glCompressedMultiTexImage2DEXT = ffienumenumintenumsizeisizeiintsizeiPtrVIOV glCompressedMultiTexImage2DEXTFunPtr
-
-glCompressedMultiTexImage2DEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> IO ())
-glCompressedMultiTexImage2DEXTFunPtr = unsafePerformIO (getProcAddress "glCompressedMultiTexImage2DEXT")
-
-{-# NOINLINE glCompressedMultiTexImage2DEXTFunPtr #-}
-
-glCompressedMultiTexImage3DEXT :: MonadIO m => GLenum -> GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> m ()
-glCompressedMultiTexImage3DEXT = ffienumenumintenumsizeisizeisizeiintsizeiPtrVIOV glCompressedMultiTexImage3DEXTFunPtr
-
-glCompressedMultiTexImage3DEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> IO ())
-glCompressedMultiTexImage3DEXTFunPtr = unsafePerformIO (getProcAddress "glCompressedMultiTexImage3DEXT")
-
-{-# NOINLINE glCompressedMultiTexImage3DEXTFunPtr #-}
-
-glCompressedMultiTexSubImage1DEXT :: MonadIO m => GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr () -> m ()
-glCompressedMultiTexSubImage1DEXT = ffienumenumintintsizeienumsizeiPtrVIOV glCompressedMultiTexSubImage1DEXTFunPtr
-
-glCompressedMultiTexSubImage1DEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ())
-glCompressedMultiTexSubImage1DEXTFunPtr = unsafePerformIO (getProcAddress "glCompressedMultiTexSubImage1DEXT")
-
-{-# NOINLINE glCompressedMultiTexSubImage1DEXTFunPtr #-}
-
-glCompressedMultiTexSubImage2DEXT :: MonadIO m => GLenum -> GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> m ()
-glCompressedMultiTexSubImage2DEXT = ffienumenumintintintsizeisizeienumsizeiPtrVIOV glCompressedMultiTexSubImage2DEXTFunPtr
-
-glCompressedMultiTexSubImage2DEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ())
-glCompressedMultiTexSubImage2DEXTFunPtr = unsafePerformIO (getProcAddress "glCompressedMultiTexSubImage2DEXT")
-
-{-# NOINLINE glCompressedMultiTexSubImage2DEXTFunPtr #-}
-
-glCompressedMultiTexSubImage3DEXT :: MonadIO m => GLenum -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> m ()
-glCompressedMultiTexSubImage3DEXT = ffienumenumintintintintsizeisizeisizeienumsizeiPtrVIOV glCompressedMultiTexSubImage3DEXTFunPtr
-
-glCompressedMultiTexSubImage3DEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ())
-glCompressedMultiTexSubImage3DEXTFunPtr = unsafePerformIO (getProcAddress "glCompressedMultiTexSubImage3DEXT")
-
-{-# NOINLINE glCompressedMultiTexSubImage3DEXTFunPtr #-}
-
-glCompressedTextureImage1DEXT :: MonadIO m => GLuint -> GLenum -> GLint -> GLenum -> GLsizei -> GLint -> GLsizei -> Ptr () -> m ()
-glCompressedTextureImage1DEXT = ffiuintenumintenumsizeiintsizeiPtrVIOV glCompressedTextureImage1DEXTFunPtr
-
-glCompressedTextureImage1DEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> GLenum -> GLsizei -> GLint -> GLsizei -> Ptr () -> IO ())
-glCompressedTextureImage1DEXTFunPtr = unsafePerformIO (getProcAddress "glCompressedTextureImage1DEXT")
-
-{-# NOINLINE glCompressedTextureImage1DEXTFunPtr #-}
-
-glCompressedTextureImage2DEXT :: MonadIO m => GLuint -> GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> m ()
-glCompressedTextureImage2DEXT = ffiuintenumintenumsizeisizeiintsizeiPtrVIOV glCompressedTextureImage2DEXTFunPtr
-
-glCompressedTextureImage2DEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> IO ())
-glCompressedTextureImage2DEXTFunPtr = unsafePerformIO (getProcAddress "glCompressedTextureImage2DEXT")
-
-{-# NOINLINE glCompressedTextureImage2DEXTFunPtr #-}
-
-glCompressedTextureImage3DEXT :: MonadIO m => GLuint -> GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> m ()
-glCompressedTextureImage3DEXT = ffiuintenumintenumsizeisizeisizeiintsizeiPtrVIOV glCompressedTextureImage3DEXTFunPtr
-
-glCompressedTextureImage3DEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> IO ())
-glCompressedTextureImage3DEXTFunPtr = unsafePerformIO (getProcAddress "glCompressedTextureImage3DEXT")
-
-{-# NOINLINE glCompressedTextureImage3DEXTFunPtr #-}
-
-glCompressedTextureSubImage1DEXT :: MonadIO m => GLuint -> GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr () -> m ()
-glCompressedTextureSubImage1DEXT = ffiuintenumintintsizeienumsizeiPtrVIOV glCompressedTextureSubImage1DEXTFunPtr
-
-glCompressedTextureSubImage1DEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ())
-glCompressedTextureSubImage1DEXTFunPtr = unsafePerformIO (getProcAddress "glCompressedTextureSubImage1DEXT")
-
-{-# NOINLINE glCompressedTextureSubImage1DEXTFunPtr #-}
-
-glCompressedTextureSubImage2DEXT :: MonadIO m => GLuint -> GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> m ()
-glCompressedTextureSubImage2DEXT = ffiuintenumintintintsizeisizeienumsizeiPtrVIOV glCompressedTextureSubImage2DEXTFunPtr
-
-glCompressedTextureSubImage2DEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ())
-glCompressedTextureSubImage2DEXTFunPtr = unsafePerformIO (getProcAddress "glCompressedTextureSubImage2DEXT")
-
-{-# NOINLINE glCompressedTextureSubImage2DEXTFunPtr #-}
-
-glCompressedTextureSubImage3DEXT :: MonadIO m => GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> m ()
-glCompressedTextureSubImage3DEXT = ffiuintenumintintintintsizeisizeisizeienumsizeiPtrVIOV glCompressedTextureSubImage3DEXTFunPtr
-
-glCompressedTextureSubImage3DEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ())
-glCompressedTextureSubImage3DEXTFunPtr = unsafePerformIO (getProcAddress "glCompressedTextureSubImage3DEXT")
-
-{-# NOINLINE glCompressedTextureSubImage3DEXTFunPtr #-}
-
-glCopyMultiTexImage1DEXT :: MonadIO m => GLenum -> GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> m ()
-glCopyMultiTexImage1DEXT = ffienumenumintenumintintsizeiintIOV glCopyMultiTexImage1DEXTFunPtr
-
-glCopyMultiTexImage1DEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> IO ())
-glCopyMultiTexImage1DEXTFunPtr = unsafePerformIO (getProcAddress "glCopyMultiTexImage1DEXT")
-
-{-# NOINLINE glCopyMultiTexImage1DEXTFunPtr #-}
-
-glCopyMultiTexImage2DEXT :: MonadIO m => GLenum -> GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> m ()
-glCopyMultiTexImage2DEXT = ffienumenumintenumintintsizeisizeiintIOV glCopyMultiTexImage2DEXTFunPtr
-
-glCopyMultiTexImage2DEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> IO ())
-glCopyMultiTexImage2DEXTFunPtr = unsafePerformIO (getProcAddress "glCopyMultiTexImage2DEXT")
-
-{-# NOINLINE glCopyMultiTexImage2DEXTFunPtr #-}
-
-glCopyMultiTexSubImage1DEXT :: MonadIO m => GLenum -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> m ()
-glCopyMultiTexSubImage1DEXT = ffienumenumintintintintsizeiIOV glCopyMultiTexSubImage1DEXTFunPtr
-
-glCopyMultiTexSubImage1DEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> IO ())
-glCopyMultiTexSubImage1DEXTFunPtr = unsafePerformIO (getProcAddress "glCopyMultiTexSubImage1DEXT")
-
-{-# NOINLINE glCopyMultiTexSubImage1DEXTFunPtr #-}
-
-glCopyMultiTexSubImage2DEXT :: MonadIO m => GLenum -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()
-glCopyMultiTexSubImage2DEXT = ffienumenumintintintintintsizeisizeiIOV glCopyMultiTexSubImage2DEXTFunPtr
-
-glCopyMultiTexSubImage2DEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ())
-glCopyMultiTexSubImage2DEXTFunPtr = unsafePerformIO (getProcAddress "glCopyMultiTexSubImage2DEXT")
-
-{-# NOINLINE glCopyMultiTexSubImage2DEXTFunPtr #-}
-
-glCopyMultiTexSubImage3DEXT :: MonadIO m => GLenum -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()
-glCopyMultiTexSubImage3DEXT = ffienumenumintintintintintintsizeisizeiIOV glCopyMultiTexSubImage3DEXTFunPtr
-
-glCopyMultiTexSubImage3DEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ())
-glCopyMultiTexSubImage3DEXTFunPtr = unsafePerformIO (getProcAddress "glCopyMultiTexSubImage3DEXT")
-
-{-# NOINLINE glCopyMultiTexSubImage3DEXTFunPtr #-}
-
-glCopyTextureImage1DEXT :: MonadIO m => GLuint -> GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> m ()
-glCopyTextureImage1DEXT = ffiuintenumintenumintintsizeiintIOV glCopyTextureImage1DEXTFunPtr
-
-glCopyTextureImage1DEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> IO ())
-glCopyTextureImage1DEXTFunPtr = unsafePerformIO (getProcAddress "glCopyTextureImage1DEXT")
-
-{-# NOINLINE glCopyTextureImage1DEXTFunPtr #-}
-
-glCopyTextureImage2DEXT :: MonadIO m => GLuint -> GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> m ()
-glCopyTextureImage2DEXT = ffiuintenumintenumintintsizeisizeiintIOV glCopyTextureImage2DEXTFunPtr
-
-glCopyTextureImage2DEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> IO ())
-glCopyTextureImage2DEXTFunPtr = unsafePerformIO (getProcAddress "glCopyTextureImage2DEXT")
-
-{-# NOINLINE glCopyTextureImage2DEXTFunPtr #-}
-
-glCopyTextureSubImage1DEXT :: MonadIO m => GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> m ()
-glCopyTextureSubImage1DEXT = ffiuintenumintintintintsizeiIOV glCopyTextureSubImage1DEXTFunPtr
-
-glCopyTextureSubImage1DEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> IO ())
-glCopyTextureSubImage1DEXTFunPtr = unsafePerformIO (getProcAddress "glCopyTextureSubImage1DEXT")
-
-{-# NOINLINE glCopyTextureSubImage1DEXTFunPtr #-}
-
-glCopyTextureSubImage2DEXT :: MonadIO m => GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()
-glCopyTextureSubImage2DEXT = ffiuintenumintintintintintsizeisizeiIOV glCopyTextureSubImage2DEXTFunPtr
-
-glCopyTextureSubImage2DEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ())
-glCopyTextureSubImage2DEXTFunPtr = unsafePerformIO (getProcAddress "glCopyTextureSubImage2DEXT")
-
-{-# NOINLINE glCopyTextureSubImage2DEXTFunPtr #-}
-
-glCopyTextureSubImage3DEXT :: MonadIO m => GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()
-glCopyTextureSubImage3DEXT = ffiuintenumintintintintintintsizeisizeiIOV glCopyTextureSubImage3DEXTFunPtr
-
-glCopyTextureSubImage3DEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ())
-glCopyTextureSubImage3DEXTFunPtr = unsafePerformIO (getProcAddress "glCopyTextureSubImage3DEXT")
-
-{-# NOINLINE glCopyTextureSubImage3DEXTFunPtr #-}
-
-glDisableClientStateIndexedEXT :: MonadIO m => GLenum -> GLuint -> m ()
-glDisableClientStateIndexedEXT = ffienumuintIOV glDisableClientStateIndexedEXTFunPtr
-
-glDisableClientStateIndexedEXTFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
-glDisableClientStateIndexedEXTFunPtr = unsafePerformIO (getProcAddress "glDisableClientStateIndexedEXT")
-
-{-# NOINLINE glDisableClientStateIndexedEXTFunPtr #-}
-
-glDisableClientStateiEXT :: MonadIO m => GLenum -> GLuint -> m ()
-glDisableClientStateiEXT = ffienumuintIOV glDisableClientStateiEXTFunPtr
-
-glDisableClientStateiEXTFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
-glDisableClientStateiEXTFunPtr = unsafePerformIO (getProcAddress "glDisableClientStateiEXT")
-
-{-# NOINLINE glDisableClientStateiEXTFunPtr #-}
-
-glDisableVertexArrayAttribEXT :: MonadIO m => GLuint -> GLuint -> m ()
-glDisableVertexArrayAttribEXT = ffiuintuintIOV glDisableVertexArrayAttribEXTFunPtr
-
-glDisableVertexArrayAttribEXTFunPtr :: FunPtr (GLuint -> GLuint -> IO ())
-glDisableVertexArrayAttribEXTFunPtr = unsafePerformIO (getProcAddress "glDisableVertexArrayAttribEXT")
-
-{-# NOINLINE glDisableVertexArrayAttribEXTFunPtr #-}
-
-glDisableVertexArrayEXT :: MonadIO m => GLuint -> GLenum -> m ()
-glDisableVertexArrayEXT = ffiuintenumIOV glDisableVertexArrayEXTFunPtr
-
-glDisableVertexArrayEXTFunPtr :: FunPtr (GLuint -> GLenum -> IO ())
-glDisableVertexArrayEXTFunPtr = unsafePerformIO (getProcAddress "glDisableVertexArrayEXT")
-
-{-# NOINLINE glDisableVertexArrayEXTFunPtr #-}
-
-glEnableClientStateIndexedEXT :: MonadIO m => GLenum -> GLuint -> m ()
-glEnableClientStateIndexedEXT = ffienumuintIOV glEnableClientStateIndexedEXTFunPtr
-
-glEnableClientStateIndexedEXTFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
-glEnableClientStateIndexedEXTFunPtr = unsafePerformIO (getProcAddress "glEnableClientStateIndexedEXT")
-
-{-# NOINLINE glEnableClientStateIndexedEXTFunPtr #-}
-
-glEnableClientStateiEXT :: MonadIO m => GLenum -> GLuint -> m ()
-glEnableClientStateiEXT = ffienumuintIOV glEnableClientStateiEXTFunPtr
-
-glEnableClientStateiEXTFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
-glEnableClientStateiEXTFunPtr = unsafePerformIO (getProcAddress "glEnableClientStateiEXT")
-
-{-# NOINLINE glEnableClientStateiEXTFunPtr #-}
-
-glEnableVertexArrayAttribEXT :: MonadIO m => GLuint -> GLuint -> m ()
-glEnableVertexArrayAttribEXT = ffiuintuintIOV glEnableVertexArrayAttribEXTFunPtr
-
-glEnableVertexArrayAttribEXTFunPtr :: FunPtr (GLuint -> GLuint -> IO ())
-glEnableVertexArrayAttribEXTFunPtr = unsafePerformIO (getProcAddress "glEnableVertexArrayAttribEXT")
-
-{-# NOINLINE glEnableVertexArrayAttribEXTFunPtr #-}
-
-glEnableVertexArrayEXT :: MonadIO m => GLuint -> GLenum -> m ()
-glEnableVertexArrayEXT = ffiuintenumIOV glEnableVertexArrayEXTFunPtr
-
-glEnableVertexArrayEXTFunPtr :: FunPtr (GLuint -> GLenum -> IO ())
-glEnableVertexArrayEXTFunPtr = unsafePerformIO (getProcAddress "glEnableVertexArrayEXT")
-
-{-# NOINLINE glEnableVertexArrayEXTFunPtr #-}
-
-glFlushMappedNamedBufferRangeEXT :: MonadIO m => GLuint -> GLintptr -> GLsizeiptr -> m ()
-glFlushMappedNamedBufferRangeEXT = ffiuintintptrsizeiptrIOV glFlushMappedNamedBufferRangeEXTFunPtr
-
-glFlushMappedNamedBufferRangeEXTFunPtr :: FunPtr (GLuint -> GLintptr -> GLsizeiptr -> IO ())
-glFlushMappedNamedBufferRangeEXTFunPtr = unsafePerformIO (getProcAddress "glFlushMappedNamedBufferRangeEXT")
-
-{-# NOINLINE glFlushMappedNamedBufferRangeEXTFunPtr #-}
-
-glFramebufferDrawBufferEXT :: MonadIO m => GLuint -> GLenum -> m ()
-glFramebufferDrawBufferEXT = ffiuintenumIOV glFramebufferDrawBufferEXTFunPtr
-
-glFramebufferDrawBufferEXTFunPtr :: FunPtr (GLuint -> GLenum -> IO ())
-glFramebufferDrawBufferEXTFunPtr = unsafePerformIO (getProcAddress "glFramebufferDrawBufferEXT")
-
-{-# NOINLINE glFramebufferDrawBufferEXTFunPtr #-}
-
-glFramebufferDrawBuffersEXT :: MonadIO m => GLuint -> GLsizei -> Ptr GLenum -> m ()
-glFramebufferDrawBuffersEXT = ffiuintsizeiPtrenumIOV glFramebufferDrawBuffersEXTFunPtr
-
-glFramebufferDrawBuffersEXTFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLenum -> IO ())
-glFramebufferDrawBuffersEXTFunPtr = unsafePerformIO (getProcAddress "glFramebufferDrawBuffersEXT")
-
-{-# NOINLINE glFramebufferDrawBuffersEXTFunPtr #-}
-
-glFramebufferReadBufferEXT :: MonadIO m => GLuint -> GLenum -> m ()
-glFramebufferReadBufferEXT = ffiuintenumIOV glFramebufferReadBufferEXTFunPtr
-
-glFramebufferReadBufferEXTFunPtr :: FunPtr (GLuint -> GLenum -> IO ())
-glFramebufferReadBufferEXTFunPtr = unsafePerformIO (getProcAddress "glFramebufferReadBufferEXT")
-
-{-# NOINLINE glFramebufferReadBufferEXTFunPtr #-}
-
-glGenerateMultiTexMipmapEXT :: MonadIO m => GLenum -> GLenum -> m ()
-glGenerateMultiTexMipmapEXT = ffienumenumIOV glGenerateMultiTexMipmapEXTFunPtr
-
-glGenerateMultiTexMipmapEXTFunPtr :: FunPtr (GLenum -> GLenum -> IO ())
-glGenerateMultiTexMipmapEXTFunPtr = unsafePerformIO (getProcAddress "glGenerateMultiTexMipmapEXT")
-
-{-# NOINLINE glGenerateMultiTexMipmapEXTFunPtr #-}
-
-glGenerateTextureMipmapEXT :: MonadIO m => GLuint -> GLenum -> m ()
-glGenerateTextureMipmapEXT = ffiuintenumIOV glGenerateTextureMipmapEXTFunPtr
-
-glGenerateTextureMipmapEXTFunPtr :: FunPtr (GLuint -> GLenum -> IO ())
-glGenerateTextureMipmapEXTFunPtr = unsafePerformIO (getProcAddress "glGenerateTextureMipmapEXT")
-
-{-# NOINLINE glGenerateTextureMipmapEXTFunPtr #-}
-
-glGetCompressedMultiTexImageEXT :: MonadIO m => GLenum -> GLenum -> GLint -> Ptr () -> m ()
-glGetCompressedMultiTexImageEXT = ffienumenumintPtrVIOV glGetCompressedMultiTexImageEXTFunPtr
-
-glGetCompressedMultiTexImageEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> Ptr () -> IO ())
-glGetCompressedMultiTexImageEXTFunPtr = unsafePerformIO (getProcAddress "glGetCompressedMultiTexImageEXT")
-
-{-# NOINLINE glGetCompressedMultiTexImageEXTFunPtr #-}
-
-glGetCompressedTextureImageEXT :: MonadIO m => GLuint -> GLenum -> GLint -> Ptr () -> m ()
-glGetCompressedTextureImageEXT = ffiuintenumintPtrVIOV glGetCompressedTextureImageEXTFunPtr
-
-glGetCompressedTextureImageEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> Ptr () -> IO ())
-glGetCompressedTextureImageEXTFunPtr = unsafePerformIO (getProcAddress "glGetCompressedTextureImageEXT")
-
-{-# NOINLINE glGetCompressedTextureImageEXTFunPtr #-}
-
-glGetDoubleIndexedvEXT :: MonadIO m => GLenum -> GLuint -> Ptr GLdouble -> m ()
-glGetDoubleIndexedvEXT = ffienumuintPtrdoubleIOV glGetDoubleIndexedvEXTFunPtr
-
-glGetDoubleIndexedvEXTFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLdouble -> IO ())
-glGetDoubleIndexedvEXTFunPtr = unsafePerformIO (getProcAddress "glGetDoubleIndexedvEXT")
-
-{-# NOINLINE glGetDoubleIndexedvEXTFunPtr #-}
-
-glGetDoublei_vEXT :: MonadIO m => GLenum -> GLuint -> Ptr GLdouble -> m ()
-glGetDoublei_vEXT = ffienumuintPtrdoubleIOV glGetDoublei_vEXTFunPtr
-
-glGetDoublei_vEXTFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLdouble -> IO ())
-glGetDoublei_vEXTFunPtr = unsafePerformIO (getProcAddress "glGetDoublei_vEXT")
-
-{-# NOINLINE glGetDoublei_vEXTFunPtr #-}
-
-glGetFloatIndexedvEXT :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()
-glGetFloatIndexedvEXT = ffienumuintPtrfloatIOV glGetFloatIndexedvEXTFunPtr
-
-glGetFloatIndexedvEXTFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLfloat -> IO ())
-glGetFloatIndexedvEXTFunPtr = unsafePerformIO (getProcAddress "glGetFloatIndexedvEXT")
-
-{-# NOINLINE glGetFloatIndexedvEXTFunPtr #-}
-
-glGetFloati_vEXT :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()
-glGetFloati_vEXT = ffienumuintPtrfloatIOV glGetFloati_vEXTFunPtr
-
-glGetFloati_vEXTFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLfloat -> IO ())
-glGetFloati_vEXTFunPtr = unsafePerformIO (getProcAddress "glGetFloati_vEXT")
-
-{-# NOINLINE glGetFloati_vEXTFunPtr #-}
-
-glGetFramebufferParameterivEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
-glGetFramebufferParameterivEXT = ffiuintenumPtrintIOV glGetFramebufferParameterivEXTFunPtr
-
-glGetFramebufferParameterivEXTFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
-glGetFramebufferParameterivEXTFunPtr = unsafePerformIO (getProcAddress "glGetFramebufferParameterivEXT")
-
-{-# NOINLINE glGetFramebufferParameterivEXTFunPtr #-}
-
-glGetMultiTexEnvfvEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLfloat -> m ()
-glGetMultiTexEnvfvEXT = ffienumenumenumPtrfloatIOV glGetMultiTexEnvfvEXTFunPtr
-
-glGetMultiTexEnvfvEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLfloat -> IO ())
-glGetMultiTexEnvfvEXTFunPtr = unsafePerformIO (getProcAddress "glGetMultiTexEnvfvEXT")
-
-{-# NOINLINE glGetMultiTexEnvfvEXTFunPtr #-}
-
-glGetMultiTexEnvivEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLint -> m ()
-glGetMultiTexEnvivEXT = ffienumenumenumPtrintIOV glGetMultiTexEnvivEXTFunPtr
-
-glGetMultiTexEnvivEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ())
-glGetMultiTexEnvivEXTFunPtr = unsafePerformIO (getProcAddress "glGetMultiTexEnvivEXT")
-
-{-# NOINLINE glGetMultiTexEnvivEXTFunPtr #-}
-
-glGetMultiTexGendvEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLdouble -> m ()
-glGetMultiTexGendvEXT = ffienumenumenumPtrdoubleIOV glGetMultiTexGendvEXTFunPtr
-
-glGetMultiTexGendvEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLdouble -> IO ())
-glGetMultiTexGendvEXTFunPtr = unsafePerformIO (getProcAddress "glGetMultiTexGendvEXT")
-
-{-# NOINLINE glGetMultiTexGendvEXTFunPtr #-}
-
-glGetMultiTexGenfvEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLfloat -> m ()
-glGetMultiTexGenfvEXT = ffienumenumenumPtrfloatIOV glGetMultiTexGenfvEXTFunPtr
-
-glGetMultiTexGenfvEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLfloat -> IO ())
-glGetMultiTexGenfvEXTFunPtr = unsafePerformIO (getProcAddress "glGetMultiTexGenfvEXT")
-
-{-# NOINLINE glGetMultiTexGenfvEXTFunPtr #-}
-
-glGetMultiTexGenivEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLint -> m ()
-glGetMultiTexGenivEXT = ffienumenumenumPtrintIOV glGetMultiTexGenivEXTFunPtr
-
-glGetMultiTexGenivEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ())
-glGetMultiTexGenivEXTFunPtr = unsafePerformIO (getProcAddress "glGetMultiTexGenivEXT")
-
-{-# NOINLINE glGetMultiTexGenivEXTFunPtr #-}
-
-glGetMultiTexImageEXT :: MonadIO m => GLenum -> GLenum -> GLint -> GLenum -> GLenum -> Ptr () -> m ()
-glGetMultiTexImageEXT = ffienumenumintenumenumPtrVIOV glGetMultiTexImageEXTFunPtr
-
-glGetMultiTexImageEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> GLenum -> GLenum -> Ptr () -> IO ())
-glGetMultiTexImageEXTFunPtr = unsafePerformIO (getProcAddress "glGetMultiTexImageEXT")
-
-{-# NOINLINE glGetMultiTexImageEXTFunPtr #-}
-
-glGetMultiTexLevelParameterfvEXT :: MonadIO m => GLenum -> GLenum -> GLint -> GLenum -> Ptr GLfloat -> m ()
-glGetMultiTexLevelParameterfvEXT = ffienumenumintenumPtrfloatIOV glGetMultiTexLevelParameterfvEXTFunPtr
-
-glGetMultiTexLevelParameterfvEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> GLenum -> Ptr GLfloat -> IO ())
-glGetMultiTexLevelParameterfvEXTFunPtr = unsafePerformIO (getProcAddress "glGetMultiTexLevelParameterfvEXT")
-
-{-# NOINLINE glGetMultiTexLevelParameterfvEXTFunPtr #-}
-
-glGetMultiTexLevelParameterivEXT :: MonadIO m => GLenum -> GLenum -> GLint -> GLenum -> Ptr GLint -> m ()
-glGetMultiTexLevelParameterivEXT = ffienumenumintenumPtrintIOV glGetMultiTexLevelParameterivEXTFunPtr
-
-glGetMultiTexLevelParameterivEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> GLenum -> Ptr GLint -> IO ())
-glGetMultiTexLevelParameterivEXTFunPtr = unsafePerformIO (getProcAddress "glGetMultiTexLevelParameterivEXT")
-
-{-# NOINLINE glGetMultiTexLevelParameterivEXTFunPtr #-}
-
-glGetMultiTexParameterIivEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLint -> m ()
-glGetMultiTexParameterIivEXT = ffienumenumenumPtrintIOV glGetMultiTexParameterIivEXTFunPtr
-
-glGetMultiTexParameterIivEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ())
-glGetMultiTexParameterIivEXTFunPtr = unsafePerformIO (getProcAddress "glGetMultiTexParameterIivEXT")
-
-{-# NOINLINE glGetMultiTexParameterIivEXTFunPtr #-}
-
-glGetMultiTexParameterIuivEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLuint -> m ()
-glGetMultiTexParameterIuivEXT = ffienumenumenumPtruintIOV glGetMultiTexParameterIuivEXTFunPtr
-
-glGetMultiTexParameterIuivEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLuint -> IO ())
-glGetMultiTexParameterIuivEXTFunPtr = unsafePerformIO (getProcAddress "glGetMultiTexParameterIuivEXT")
-
-{-# NOINLINE glGetMultiTexParameterIuivEXTFunPtr #-}
-
-glGetMultiTexParameterfvEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLfloat -> m ()
-glGetMultiTexParameterfvEXT = ffienumenumenumPtrfloatIOV glGetMultiTexParameterfvEXTFunPtr
-
-glGetMultiTexParameterfvEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLfloat -> IO ())
-glGetMultiTexParameterfvEXTFunPtr = unsafePerformIO (getProcAddress "glGetMultiTexParameterfvEXT")
-
-{-# NOINLINE glGetMultiTexParameterfvEXTFunPtr #-}
-
-glGetMultiTexParameterivEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLint -> m ()
-glGetMultiTexParameterivEXT = ffienumenumenumPtrintIOV glGetMultiTexParameterivEXTFunPtr
-
-glGetMultiTexParameterivEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ())
-glGetMultiTexParameterivEXTFunPtr = unsafePerformIO (getProcAddress "glGetMultiTexParameterivEXT")
-
-{-# NOINLINE glGetMultiTexParameterivEXTFunPtr #-}
-
-glGetNamedBufferParameterivEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
-glGetNamedBufferParameterivEXT = ffiuintenumPtrintIOV glGetNamedBufferParameterivEXTFunPtr
-
-glGetNamedBufferParameterivEXTFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
-glGetNamedBufferParameterivEXTFunPtr = unsafePerformIO (getProcAddress "glGetNamedBufferParameterivEXT")
-
-{-# NOINLINE glGetNamedBufferParameterivEXTFunPtr #-}
-
-glGetNamedBufferPointervEXT :: MonadIO m => GLuint -> GLenum -> Ptr () -> m ()
-glGetNamedBufferPointervEXT = ffiuintenumPtrVIOV glGetNamedBufferPointervEXTFunPtr
-
-glGetNamedBufferPointervEXTFunPtr :: FunPtr (GLuint -> GLenum -> Ptr () -> IO ())
-glGetNamedBufferPointervEXTFunPtr = unsafePerformIO (getProcAddress "glGetNamedBufferPointervEXT")
-
-{-# NOINLINE glGetNamedBufferPointervEXTFunPtr #-}
-
-glGetNamedBufferSubDataEXT :: MonadIO m => GLuint -> GLintptr -> GLsizeiptr -> Ptr () -> m ()
-glGetNamedBufferSubDataEXT = ffiuintintptrsizeiptrPtrVIOV glGetNamedBufferSubDataEXTFunPtr
-
-glGetNamedBufferSubDataEXTFunPtr :: FunPtr (GLuint -> GLintptr -> GLsizeiptr -> Ptr () -> IO ())
-glGetNamedBufferSubDataEXTFunPtr = unsafePerformIO (getProcAddress "glGetNamedBufferSubDataEXT")
-
-{-# NOINLINE glGetNamedBufferSubDataEXTFunPtr #-}
-
-glGetNamedFramebufferAttachmentParameterivEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> Ptr GLint -> m ()
-glGetNamedFramebufferAttachmentParameterivEXT = ffiuintenumenumPtrintIOV glGetNamedFramebufferAttachmentParameterivEXTFunPtr
-
-glGetNamedFramebufferAttachmentParameterivEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> Ptr GLint -> IO ())
-glGetNamedFramebufferAttachmentParameterivEXTFunPtr = unsafePerformIO (getProcAddress "glGetNamedFramebufferAttachmentParameterivEXT")
-
-{-# NOINLINE glGetNamedFramebufferAttachmentParameterivEXTFunPtr #-}
-
-glGetNamedFramebufferParameterivEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
-glGetNamedFramebufferParameterivEXT = ffiuintenumPtrintIOV glGetNamedFramebufferParameterivEXTFunPtr
-
-glGetNamedFramebufferParameterivEXTFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
-glGetNamedFramebufferParameterivEXTFunPtr = unsafePerformIO (getProcAddress "glGetNamedFramebufferParameterivEXT")
-
-{-# NOINLINE glGetNamedFramebufferParameterivEXTFunPtr #-}
-
-glGetNamedProgramLocalParameterIivEXT :: MonadIO m => GLuint -> GLenum -> GLuint -> Ptr GLint -> m ()
-glGetNamedProgramLocalParameterIivEXT = ffiuintenumuintPtrintIOV glGetNamedProgramLocalParameterIivEXTFunPtr
-
-glGetNamedProgramLocalParameterIivEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> Ptr GLint -> IO ())
-glGetNamedProgramLocalParameterIivEXTFunPtr = unsafePerformIO (getProcAddress "glGetNamedProgramLocalParameterIivEXT")
-
-{-# NOINLINE glGetNamedProgramLocalParameterIivEXTFunPtr #-}
-
-glGetNamedProgramLocalParameterIuivEXT :: MonadIO m => GLuint -> GLenum -> GLuint -> Ptr GLuint -> m ()
-glGetNamedProgramLocalParameterIuivEXT = ffiuintenumuintPtruintIOV glGetNamedProgramLocalParameterIuivEXTFunPtr
-
-glGetNamedProgramLocalParameterIuivEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> Ptr GLuint -> IO ())
-glGetNamedProgramLocalParameterIuivEXTFunPtr = unsafePerformIO (getProcAddress "glGetNamedProgramLocalParameterIuivEXT")
-
-{-# NOINLINE glGetNamedProgramLocalParameterIuivEXTFunPtr #-}
-
-glGetNamedProgramLocalParameterdvEXT :: MonadIO m => GLuint -> GLenum -> GLuint -> Ptr GLdouble -> m ()
-glGetNamedProgramLocalParameterdvEXT = ffiuintenumuintPtrdoubleIOV glGetNamedProgramLocalParameterdvEXTFunPtr
-
-glGetNamedProgramLocalParameterdvEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> Ptr GLdouble -> IO ())
-glGetNamedProgramLocalParameterdvEXTFunPtr = unsafePerformIO (getProcAddress "glGetNamedProgramLocalParameterdvEXT")
-
-{-# NOINLINE glGetNamedProgramLocalParameterdvEXTFunPtr #-}
-
-glGetNamedProgramLocalParameterfvEXT :: MonadIO m => GLuint -> GLenum -> GLuint -> Ptr GLfloat -> m ()
-glGetNamedProgramLocalParameterfvEXT = ffiuintenumuintPtrfloatIOV glGetNamedProgramLocalParameterfvEXTFunPtr
-
-glGetNamedProgramLocalParameterfvEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> Ptr GLfloat -> IO ())
-glGetNamedProgramLocalParameterfvEXTFunPtr = unsafePerformIO (getProcAddress "glGetNamedProgramLocalParameterfvEXT")
-
-{-# NOINLINE glGetNamedProgramLocalParameterfvEXTFunPtr #-}
-
-glGetNamedProgramStringEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> Ptr () -> m ()
-glGetNamedProgramStringEXT = ffiuintenumenumPtrVIOV glGetNamedProgramStringEXTFunPtr
-
-glGetNamedProgramStringEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> Ptr () -> IO ())
-glGetNamedProgramStringEXTFunPtr = unsafePerformIO (getProcAddress "glGetNamedProgramStringEXT")
-
-{-# NOINLINE glGetNamedProgramStringEXTFunPtr #-}
-
-glGetNamedProgramivEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> Ptr GLint -> m ()
-glGetNamedProgramivEXT = ffiuintenumenumPtrintIOV glGetNamedProgramivEXTFunPtr
-
-glGetNamedProgramivEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> Ptr GLint -> IO ())
-glGetNamedProgramivEXTFunPtr = unsafePerformIO (getProcAddress "glGetNamedProgramivEXT")
-
-{-# NOINLINE glGetNamedProgramivEXTFunPtr #-}
-
-glGetNamedRenderbufferParameterivEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
-glGetNamedRenderbufferParameterivEXT = ffiuintenumPtrintIOV glGetNamedRenderbufferParameterivEXTFunPtr
-
-glGetNamedRenderbufferParameterivEXTFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
-glGetNamedRenderbufferParameterivEXTFunPtr = unsafePerformIO (getProcAddress "glGetNamedRenderbufferParameterivEXT")
-
-{-# NOINLINE glGetNamedRenderbufferParameterivEXTFunPtr #-}
-
-glGetPointerIndexedvEXT :: MonadIO m => GLenum -> GLuint -> Ptr () -> m ()
-glGetPointerIndexedvEXT = ffienumuintPtrVIOV glGetPointerIndexedvEXTFunPtr
-
-glGetPointerIndexedvEXTFunPtr :: FunPtr (GLenum -> GLuint -> Ptr () -> IO ())
-glGetPointerIndexedvEXTFunPtr = unsafePerformIO (getProcAddress "glGetPointerIndexedvEXT")
-
-{-# NOINLINE glGetPointerIndexedvEXTFunPtr #-}
-
-glGetPointeri_vEXT :: MonadIO m => GLenum -> GLuint -> Ptr () -> m ()
-glGetPointeri_vEXT = ffienumuintPtrVIOV glGetPointeri_vEXTFunPtr
-
-glGetPointeri_vEXTFunPtr :: FunPtr (GLenum -> GLuint -> Ptr () -> IO ())
-glGetPointeri_vEXTFunPtr = unsafePerformIO (getProcAddress "glGetPointeri_vEXT")
-
-{-# NOINLINE glGetPointeri_vEXTFunPtr #-}
-
-glGetTextureImageEXT :: MonadIO m => GLuint -> GLenum -> GLint -> GLenum -> GLenum -> Ptr () -> m ()
-glGetTextureImageEXT = ffiuintenumintenumenumPtrVIOV glGetTextureImageEXTFunPtr
-
-glGetTextureImageEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> GLenum -> GLenum -> Ptr () -> IO ())
-glGetTextureImageEXTFunPtr = unsafePerformIO (getProcAddress "glGetTextureImageEXT")
-
-{-# NOINLINE glGetTextureImageEXTFunPtr #-}
-
-glGetTextureLevelParameterfvEXT :: MonadIO m => GLuint -> GLenum -> GLint -> GLenum -> Ptr GLfloat -> m ()
-glGetTextureLevelParameterfvEXT = ffiuintenumintenumPtrfloatIOV glGetTextureLevelParameterfvEXTFunPtr
-
-glGetTextureLevelParameterfvEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> GLenum -> Ptr GLfloat -> IO ())
-glGetTextureLevelParameterfvEXTFunPtr = unsafePerformIO (getProcAddress "glGetTextureLevelParameterfvEXT")
-
-{-# NOINLINE glGetTextureLevelParameterfvEXTFunPtr #-}
-
-glGetTextureLevelParameterivEXT :: MonadIO m => GLuint -> GLenum -> GLint -> GLenum -> Ptr GLint -> m ()
-glGetTextureLevelParameterivEXT = ffiuintenumintenumPtrintIOV glGetTextureLevelParameterivEXTFunPtr
-
-glGetTextureLevelParameterivEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> GLenum -> Ptr GLint -> IO ())
-glGetTextureLevelParameterivEXTFunPtr = unsafePerformIO (getProcAddress "glGetTextureLevelParameterivEXT")
-
-{-# NOINLINE glGetTextureLevelParameterivEXTFunPtr #-}
-
-glGetTextureParameterIivEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> Ptr GLint -> m ()
-glGetTextureParameterIivEXT = ffiuintenumenumPtrintIOV glGetTextureParameterIivEXTFunPtr
-
-glGetTextureParameterIivEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> Ptr GLint -> IO ())
-glGetTextureParameterIivEXTFunPtr = unsafePerformIO (getProcAddress "glGetTextureParameterIivEXT")
-
-{-# NOINLINE glGetTextureParameterIivEXTFunPtr #-}
-
-glGetTextureParameterIuivEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> Ptr GLuint -> m ()
-glGetTextureParameterIuivEXT = ffiuintenumenumPtruintIOV glGetTextureParameterIuivEXTFunPtr
-
-glGetTextureParameterIuivEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> Ptr GLuint -> IO ())
-glGetTextureParameterIuivEXTFunPtr = unsafePerformIO (getProcAddress "glGetTextureParameterIuivEXT")
-
-{-# NOINLINE glGetTextureParameterIuivEXTFunPtr #-}
-
-glGetTextureParameterfvEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> Ptr GLfloat -> m ()
-glGetTextureParameterfvEXT = ffiuintenumenumPtrfloatIOV glGetTextureParameterfvEXTFunPtr
-
-glGetTextureParameterfvEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> Ptr GLfloat -> IO ())
-glGetTextureParameterfvEXTFunPtr = unsafePerformIO (getProcAddress "glGetTextureParameterfvEXT")
-
-{-# NOINLINE glGetTextureParameterfvEXTFunPtr #-}
-
-glGetTextureParameterivEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> Ptr GLint -> m ()
-glGetTextureParameterivEXT = ffiuintenumenumPtrintIOV glGetTextureParameterivEXTFunPtr
-
-glGetTextureParameterivEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> Ptr GLint -> IO ())
-glGetTextureParameterivEXTFunPtr = unsafePerformIO (getProcAddress "glGetTextureParameterivEXT")
-
-{-# NOINLINE glGetTextureParameterivEXTFunPtr #-}
-
-glGetVertexArrayIntegeri_vEXT :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr GLint -> m ()
-glGetVertexArrayIntegeri_vEXT = ffiuintuintenumPtrintIOV glGetVertexArrayIntegeri_vEXTFunPtr
-
-glGetVertexArrayIntegeri_vEXTFunPtr :: FunPtr (GLuint -> GLuint -> GLenum -> Ptr GLint -> IO ())
-glGetVertexArrayIntegeri_vEXTFunPtr = unsafePerformIO (getProcAddress "glGetVertexArrayIntegeri_vEXT")
-
-{-# NOINLINE glGetVertexArrayIntegeri_vEXTFunPtr #-}
-
-glGetVertexArrayIntegervEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
-glGetVertexArrayIntegervEXT = ffiuintenumPtrintIOV glGetVertexArrayIntegervEXTFunPtr
-
-glGetVertexArrayIntegervEXTFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
-glGetVertexArrayIntegervEXTFunPtr = unsafePerformIO (getProcAddress "glGetVertexArrayIntegervEXT")
-
-{-# NOINLINE glGetVertexArrayIntegervEXTFunPtr #-}
-
-glGetVertexArrayPointeri_vEXT :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr () -> m ()
-glGetVertexArrayPointeri_vEXT = ffiuintuintenumPtrVIOV glGetVertexArrayPointeri_vEXTFunPtr
-
-glGetVertexArrayPointeri_vEXTFunPtr :: FunPtr (GLuint -> GLuint -> GLenum -> Ptr () -> IO ())
-glGetVertexArrayPointeri_vEXTFunPtr = unsafePerformIO (getProcAddress "glGetVertexArrayPointeri_vEXT")
-
-{-# NOINLINE glGetVertexArrayPointeri_vEXTFunPtr #-}
-
-glGetVertexArrayPointervEXT :: MonadIO m => GLuint -> GLenum -> Ptr () -> m ()
-glGetVertexArrayPointervEXT = ffiuintenumPtrVIOV glGetVertexArrayPointervEXTFunPtr
-
-glGetVertexArrayPointervEXTFunPtr :: FunPtr (GLuint -> GLenum -> Ptr () -> IO ())
-glGetVertexArrayPointervEXTFunPtr = unsafePerformIO (getProcAddress "glGetVertexArrayPointervEXT")
-
-{-# NOINLINE glGetVertexArrayPointervEXTFunPtr #-}
-
-glMapNamedBufferEXT :: MonadIO m => GLuint -> GLenum -> m (Ptr ())
-glMapNamedBufferEXT = ffiuintenumIOPtrV glMapNamedBufferEXTFunPtr
-
-glMapNamedBufferEXTFunPtr :: FunPtr (GLuint -> GLenum -> IO (Ptr ()))
-glMapNamedBufferEXTFunPtr = unsafePerformIO (getProcAddress "glMapNamedBufferEXT")
-
-{-# NOINLINE glMapNamedBufferEXTFunPtr #-}
-
-glMapNamedBufferRangeEXT :: MonadIO m => GLuint -> GLintptr -> GLsizeiptr -> GLbitfield -> m (Ptr ())
-glMapNamedBufferRangeEXT = ffiuintintptrsizeiptrbitfieldIOPtrV glMapNamedBufferRangeEXTFunPtr
-
-glMapNamedBufferRangeEXTFunPtr :: FunPtr (GLuint -> GLintptr -> GLsizeiptr -> GLbitfield -> IO (Ptr ()))
-glMapNamedBufferRangeEXTFunPtr = unsafePerformIO (getProcAddress "glMapNamedBufferRangeEXT")
-
-{-# NOINLINE glMapNamedBufferRangeEXTFunPtr #-}
-
-glMatrixFrustumEXT :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
-glMatrixFrustumEXT = ffienumdoubledoubledoubledoubledoubledoubleIOV glMatrixFrustumEXTFunPtr
-
-glMatrixFrustumEXTFunPtr :: FunPtr (GLenum -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
-glMatrixFrustumEXTFunPtr = unsafePerformIO (getProcAddress "glMatrixFrustumEXT")
-
-{-# NOINLINE glMatrixFrustumEXTFunPtr #-}
-
-glMatrixLoadIdentityEXT :: MonadIO m => GLenum -> m ()
-glMatrixLoadIdentityEXT = ffienumIOV glMatrixLoadIdentityEXTFunPtr
-
-glMatrixLoadIdentityEXTFunPtr :: FunPtr (GLenum -> IO ())
-glMatrixLoadIdentityEXTFunPtr = unsafePerformIO (getProcAddress "glMatrixLoadIdentityEXT")
-
-{-# NOINLINE glMatrixLoadIdentityEXTFunPtr #-}
-
-glMatrixLoadTransposedEXT :: MonadIO m => GLenum -> Ptr GLdouble -> m ()
-glMatrixLoadTransposedEXT = ffienumPtrdoubleIOV glMatrixLoadTransposedEXTFunPtr
-
-glMatrixLoadTransposedEXTFunPtr :: FunPtr (GLenum -> Ptr GLdouble -> IO ())
-glMatrixLoadTransposedEXTFunPtr = unsafePerformIO (getProcAddress "glMatrixLoadTransposedEXT")
-
-{-# NOINLINE glMatrixLoadTransposedEXTFunPtr #-}
-
-glMatrixLoadTransposefEXT :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
-glMatrixLoadTransposefEXT = ffienumPtrfloatIOV glMatrixLoadTransposefEXTFunPtr
-
-glMatrixLoadTransposefEXTFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
-glMatrixLoadTransposefEXTFunPtr = unsafePerformIO (getProcAddress "glMatrixLoadTransposefEXT")
-
-{-# NOINLINE glMatrixLoadTransposefEXTFunPtr #-}
-
-glMatrixLoaddEXT :: MonadIO m => GLenum -> Ptr GLdouble -> m ()
-glMatrixLoaddEXT = ffienumPtrdoubleIOV glMatrixLoaddEXTFunPtr
-
-glMatrixLoaddEXTFunPtr :: FunPtr (GLenum -> Ptr GLdouble -> IO ())
-glMatrixLoaddEXTFunPtr = unsafePerformIO (getProcAddress "glMatrixLoaddEXT")
-
-{-# NOINLINE glMatrixLoaddEXTFunPtr #-}
-
-glMatrixLoadfEXT :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
-glMatrixLoadfEXT = ffienumPtrfloatIOV glMatrixLoadfEXTFunPtr
-
-glMatrixLoadfEXTFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
-glMatrixLoadfEXTFunPtr = unsafePerformIO (getProcAddress "glMatrixLoadfEXT")
-
-{-# NOINLINE glMatrixLoadfEXTFunPtr #-}
-
-glMatrixMultTransposedEXT :: MonadIO m => GLenum -> Ptr GLdouble -> m ()
-glMatrixMultTransposedEXT = ffienumPtrdoubleIOV glMatrixMultTransposedEXTFunPtr
-
-glMatrixMultTransposedEXTFunPtr :: FunPtr (GLenum -> Ptr GLdouble -> IO ())
-glMatrixMultTransposedEXTFunPtr = unsafePerformIO (getProcAddress "glMatrixMultTransposedEXT")
-
-{-# NOINLINE glMatrixMultTransposedEXTFunPtr #-}
-
-glMatrixMultTransposefEXT :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
-glMatrixMultTransposefEXT = ffienumPtrfloatIOV glMatrixMultTransposefEXTFunPtr
-
-glMatrixMultTransposefEXTFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
-glMatrixMultTransposefEXTFunPtr = unsafePerformIO (getProcAddress "glMatrixMultTransposefEXT")
-
-{-# NOINLINE glMatrixMultTransposefEXTFunPtr #-}
-
-glMatrixMultdEXT :: MonadIO m => GLenum -> Ptr GLdouble -> m ()
-glMatrixMultdEXT = ffienumPtrdoubleIOV glMatrixMultdEXTFunPtr
-
-glMatrixMultdEXTFunPtr :: FunPtr (GLenum -> Ptr GLdouble -> IO ())
-glMatrixMultdEXTFunPtr = unsafePerformIO (getProcAddress "glMatrixMultdEXT")
-
-{-# NOINLINE glMatrixMultdEXTFunPtr #-}
-
-glMatrixMultfEXT :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
-glMatrixMultfEXT = ffienumPtrfloatIOV glMatrixMultfEXTFunPtr
-
-glMatrixMultfEXTFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
-glMatrixMultfEXTFunPtr = unsafePerformIO (getProcAddress "glMatrixMultfEXT")
-
-{-# NOINLINE glMatrixMultfEXTFunPtr #-}
-
-glMatrixOrthoEXT :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
-glMatrixOrthoEXT = ffienumdoubledoubledoubledoubledoubledoubleIOV glMatrixOrthoEXTFunPtr
-
-glMatrixOrthoEXTFunPtr :: FunPtr (GLenum -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
-glMatrixOrthoEXTFunPtr = unsafePerformIO (getProcAddress "glMatrixOrthoEXT")
-
-{-# NOINLINE glMatrixOrthoEXTFunPtr #-}
-
-glMatrixPopEXT :: MonadIO m => GLenum -> m ()
-glMatrixPopEXT = ffienumIOV glMatrixPopEXTFunPtr
-
-glMatrixPopEXTFunPtr :: FunPtr (GLenum -> IO ())
-glMatrixPopEXTFunPtr = unsafePerformIO (getProcAddress "glMatrixPopEXT")
-
-{-# NOINLINE glMatrixPopEXTFunPtr #-}
-
-glMatrixPushEXT :: MonadIO m => GLenum -> m ()
-glMatrixPushEXT = ffienumIOV glMatrixPushEXTFunPtr
-
-glMatrixPushEXTFunPtr :: FunPtr (GLenum -> IO ())
-glMatrixPushEXTFunPtr = unsafePerformIO (getProcAddress "glMatrixPushEXT")
-
-{-# NOINLINE glMatrixPushEXTFunPtr #-}
-
-glMatrixRotatedEXT :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
-glMatrixRotatedEXT = ffienumdoubledoubledoubledoubleIOV glMatrixRotatedEXTFunPtr
-
-glMatrixRotatedEXTFunPtr :: FunPtr (GLenum -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
-glMatrixRotatedEXTFunPtr = unsafePerformIO (getProcAddress "glMatrixRotatedEXT")
-
-{-# NOINLINE glMatrixRotatedEXTFunPtr #-}
-
-glMatrixRotatefEXT :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
-glMatrixRotatefEXT = ffienumfloatfloatfloatfloatIOV glMatrixRotatefEXTFunPtr
-
-glMatrixRotatefEXTFunPtr :: FunPtr (GLenum -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
-glMatrixRotatefEXTFunPtr = unsafePerformIO (getProcAddress "glMatrixRotatefEXT")
-
-{-# NOINLINE glMatrixRotatefEXTFunPtr #-}
-
-glMatrixScaledEXT :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLdouble -> m ()
-glMatrixScaledEXT = ffienumdoubledoubledoubleIOV glMatrixScaledEXTFunPtr
-
-glMatrixScaledEXTFunPtr :: FunPtr (GLenum -> GLdouble -> GLdouble -> GLdouble -> IO ())
-glMatrixScaledEXTFunPtr = unsafePerformIO (getProcAddress "glMatrixScaledEXT")
-
-{-# NOINLINE glMatrixScaledEXTFunPtr #-}
-
-glMatrixScalefEXT :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLfloat -> m ()
-glMatrixScalefEXT = ffienumfloatfloatfloatIOV glMatrixScalefEXTFunPtr
-
-glMatrixScalefEXTFunPtr :: FunPtr (GLenum -> GLfloat -> GLfloat -> GLfloat -> IO ())
-glMatrixScalefEXTFunPtr = unsafePerformIO (getProcAddress "glMatrixScalefEXT")
-
-{-# NOINLINE glMatrixScalefEXTFunPtr #-}
-
-glMatrixTranslatedEXT :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLdouble -> m ()
-glMatrixTranslatedEXT = ffienumdoubledoubledoubleIOV glMatrixTranslatedEXTFunPtr
-
-glMatrixTranslatedEXTFunPtr :: FunPtr (GLenum -> GLdouble -> GLdouble -> GLdouble -> IO ())
-glMatrixTranslatedEXTFunPtr = unsafePerformIO (getProcAddress "glMatrixTranslatedEXT")
-
-{-# NOINLINE glMatrixTranslatedEXTFunPtr #-}
-
-glMatrixTranslatefEXT :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLfloat -> m ()
-glMatrixTranslatefEXT = ffienumfloatfloatfloatIOV glMatrixTranslatefEXTFunPtr
-
-glMatrixTranslatefEXTFunPtr :: FunPtr (GLenum -> GLfloat -> GLfloat -> GLfloat -> IO ())
-glMatrixTranslatefEXTFunPtr = unsafePerformIO (getProcAddress "glMatrixTranslatefEXT")
-
-{-# NOINLINE glMatrixTranslatefEXTFunPtr #-}
-
-glMultiTexBufferEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> m ()
-glMultiTexBufferEXT = ffienumenumenumuintIOV glMultiTexBufferEXTFunPtr
-
-glMultiTexBufferEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLuint -> IO ())
-glMultiTexBufferEXTFunPtr = unsafePerformIO (getProcAddress "glMultiTexBufferEXT")
-
-{-# NOINLINE glMultiTexBufferEXTFunPtr #-}
-
-glMultiTexCoordPointerEXT :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> Ptr () -> m ()
-glMultiTexCoordPointerEXT = ffienumintenumsizeiPtrVIOV glMultiTexCoordPointerEXTFunPtr
-
-glMultiTexCoordPointerEXTFunPtr :: FunPtr (GLenum -> GLint -> GLenum -> GLsizei -> Ptr () -> IO ())
-glMultiTexCoordPointerEXTFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoordPointerEXT")
-
-{-# NOINLINE glMultiTexCoordPointerEXTFunPtr #-}
-
-glMultiTexEnvfEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> GLfloat -> m ()
-glMultiTexEnvfEXT = ffienumenumenumfloatIOV glMultiTexEnvfEXTFunPtr
-
-glMultiTexEnvfEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLfloat -> IO ())
-glMultiTexEnvfEXTFunPtr = unsafePerformIO (getProcAddress "glMultiTexEnvfEXT")
-
-{-# NOINLINE glMultiTexEnvfEXTFunPtr #-}
-
-glMultiTexEnvfvEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLfloat -> m ()
-glMultiTexEnvfvEXT = ffienumenumenumPtrfloatIOV glMultiTexEnvfvEXTFunPtr
-
-glMultiTexEnvfvEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLfloat -> IO ())
-glMultiTexEnvfvEXTFunPtr = unsafePerformIO (getProcAddress "glMultiTexEnvfvEXT")
-
-{-# NOINLINE glMultiTexEnvfvEXTFunPtr #-}
-
-glMultiTexEnviEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> GLint -> m ()
-glMultiTexEnviEXT = ffienumenumenumintIOV glMultiTexEnviEXTFunPtr
-
-glMultiTexEnviEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLint -> IO ())
-glMultiTexEnviEXTFunPtr = unsafePerformIO (getProcAddress "glMultiTexEnviEXT")
-
-{-# NOINLINE glMultiTexEnviEXTFunPtr #-}
-
-glMultiTexEnvivEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLint -> m ()
-glMultiTexEnvivEXT = ffienumenumenumPtrintIOV glMultiTexEnvivEXTFunPtr
-
-glMultiTexEnvivEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ())
-glMultiTexEnvivEXTFunPtr = unsafePerformIO (getProcAddress "glMultiTexEnvivEXT")
-
-{-# NOINLINE glMultiTexEnvivEXTFunPtr #-}
-
-glMultiTexGendEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> GLdouble -> m ()
-glMultiTexGendEXT = ffienumenumenumdoubleIOV glMultiTexGendEXTFunPtr
-
-glMultiTexGendEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLdouble -> IO ())
-glMultiTexGendEXTFunPtr = unsafePerformIO (getProcAddress "glMultiTexGendEXT")
-
-{-# NOINLINE glMultiTexGendEXTFunPtr #-}
-
-glMultiTexGendvEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLdouble -> m ()
-glMultiTexGendvEXT = ffienumenumenumPtrdoubleIOV glMultiTexGendvEXTFunPtr
-
-glMultiTexGendvEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLdouble -> IO ())
-glMultiTexGendvEXTFunPtr = unsafePerformIO (getProcAddress "glMultiTexGendvEXT")
-
-{-# NOINLINE glMultiTexGendvEXTFunPtr #-}
-
-glMultiTexGenfEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> GLfloat -> m ()
-glMultiTexGenfEXT = ffienumenumenumfloatIOV glMultiTexGenfEXTFunPtr
-
-glMultiTexGenfEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLfloat -> IO ())
-glMultiTexGenfEXTFunPtr = unsafePerformIO (getProcAddress "glMultiTexGenfEXT")
-
-{-# NOINLINE glMultiTexGenfEXTFunPtr #-}
-
-glMultiTexGenfvEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLfloat -> m ()
-glMultiTexGenfvEXT = ffienumenumenumPtrfloatIOV glMultiTexGenfvEXTFunPtr
-
-glMultiTexGenfvEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLfloat -> IO ())
-glMultiTexGenfvEXTFunPtr = unsafePerformIO (getProcAddress "glMultiTexGenfvEXT")
-
-{-# NOINLINE glMultiTexGenfvEXTFunPtr #-}
-
-glMultiTexGeniEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> GLint -> m ()
-glMultiTexGeniEXT = ffienumenumenumintIOV glMultiTexGeniEXTFunPtr
-
-glMultiTexGeniEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLint -> IO ())
-glMultiTexGeniEXTFunPtr = unsafePerformIO (getProcAddress "glMultiTexGeniEXT")
-
-{-# NOINLINE glMultiTexGeniEXTFunPtr #-}
-
-glMultiTexGenivEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLint -> m ()
-glMultiTexGenivEXT = ffienumenumenumPtrintIOV glMultiTexGenivEXTFunPtr
-
-glMultiTexGenivEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ())
-glMultiTexGenivEXTFunPtr = unsafePerformIO (getProcAddress "glMultiTexGenivEXT")
-
-{-# NOINLINE glMultiTexGenivEXTFunPtr #-}
-
-glMultiTexImage1DEXT :: MonadIO m => GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> m ()
-glMultiTexImage1DEXT = ffienumenumintintsizeiintenumenumPtrVIOV glMultiTexImage1DEXTFunPtr
-
-glMultiTexImage1DEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> IO ())
-glMultiTexImage1DEXTFunPtr = unsafePerformIO (getProcAddress "glMultiTexImage1DEXT")
-
-{-# NOINLINE glMultiTexImage1DEXTFunPtr #-}
-
-glMultiTexImage2DEXT :: MonadIO m => GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> m ()
-glMultiTexImage2DEXT = ffienumenumintintsizeisizeiintenumenumPtrVIOV glMultiTexImage2DEXTFunPtr
-
-glMultiTexImage2DEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> IO ())
-glMultiTexImage2DEXTFunPtr = unsafePerformIO (getProcAddress "glMultiTexImage2DEXT")
-
-{-# NOINLINE glMultiTexImage2DEXTFunPtr #-}
-
-glMultiTexImage3DEXT :: MonadIO m => GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> m ()
-glMultiTexImage3DEXT = ffienumenumintintsizeisizeisizeiintenumenumPtrVIOV glMultiTexImage3DEXTFunPtr
-
-glMultiTexImage3DEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> IO ())
-glMultiTexImage3DEXTFunPtr = unsafePerformIO (getProcAddress "glMultiTexImage3DEXT")
-
-{-# NOINLINE glMultiTexImage3DEXTFunPtr #-}
-
-glMultiTexParameterIivEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLint -> m ()
-glMultiTexParameterIivEXT = ffienumenumenumPtrintIOV glMultiTexParameterIivEXTFunPtr
-
-glMultiTexParameterIivEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ())
-glMultiTexParameterIivEXTFunPtr = unsafePerformIO (getProcAddress "glMultiTexParameterIivEXT")
-
-{-# NOINLINE glMultiTexParameterIivEXTFunPtr #-}
-
-glMultiTexParameterIuivEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLuint -> m ()
-glMultiTexParameterIuivEXT = ffienumenumenumPtruintIOV glMultiTexParameterIuivEXTFunPtr
-
-glMultiTexParameterIuivEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLuint -> IO ())
-glMultiTexParameterIuivEXTFunPtr = unsafePerformIO (getProcAddress "glMultiTexParameterIuivEXT")
-
-{-# NOINLINE glMultiTexParameterIuivEXTFunPtr #-}
-
-glMultiTexParameterfEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> GLfloat -> m ()
-glMultiTexParameterfEXT = ffienumenumenumfloatIOV glMultiTexParameterfEXTFunPtr
-
-glMultiTexParameterfEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLfloat -> IO ())
-glMultiTexParameterfEXTFunPtr = unsafePerformIO (getProcAddress "glMultiTexParameterfEXT")
-
-{-# NOINLINE glMultiTexParameterfEXTFunPtr #-}
-
-glMultiTexParameterfvEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLfloat -> m ()
-glMultiTexParameterfvEXT = ffienumenumenumPtrfloatIOV glMultiTexParameterfvEXTFunPtr
-
-glMultiTexParameterfvEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLfloat -> IO ())
-glMultiTexParameterfvEXTFunPtr = unsafePerformIO (getProcAddress "glMultiTexParameterfvEXT")
-
-{-# NOINLINE glMultiTexParameterfvEXTFunPtr #-}
-
-glMultiTexParameteriEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> GLint -> m ()
-glMultiTexParameteriEXT = ffienumenumenumintIOV glMultiTexParameteriEXTFunPtr
-
-glMultiTexParameteriEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLint -> IO ())
-glMultiTexParameteriEXTFunPtr = unsafePerformIO (getProcAddress "glMultiTexParameteriEXT")
-
-{-# NOINLINE glMultiTexParameteriEXTFunPtr #-}
-
-glMultiTexParameterivEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLint -> m ()
-glMultiTexParameterivEXT = ffienumenumenumPtrintIOV glMultiTexParameterivEXTFunPtr
-
-glMultiTexParameterivEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ())
-glMultiTexParameterivEXTFunPtr = unsafePerformIO (getProcAddress "glMultiTexParameterivEXT")
-
-{-# NOINLINE glMultiTexParameterivEXTFunPtr #-}
-
-glMultiTexRenderbufferEXT :: MonadIO m => GLenum -> GLenum -> GLuint -> m ()
-glMultiTexRenderbufferEXT = ffienumenumuintIOV glMultiTexRenderbufferEXTFunPtr
-
-glMultiTexRenderbufferEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLuint -> IO ())
-glMultiTexRenderbufferEXTFunPtr = unsafePerformIO (getProcAddress "glMultiTexRenderbufferEXT")
-
-{-# NOINLINE glMultiTexRenderbufferEXTFunPtr #-}
-
-glMultiTexSubImage1DEXT :: MonadIO m => GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
-glMultiTexSubImage1DEXT = ffienumenumintintsizeienumenumPtrVIOV glMultiTexSubImage1DEXTFunPtr
-
-glMultiTexSubImage1DEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ())
-glMultiTexSubImage1DEXTFunPtr = unsafePerformIO (getProcAddress "glMultiTexSubImage1DEXT")
-
-{-# NOINLINE glMultiTexSubImage1DEXTFunPtr #-}
-
-glMultiTexSubImage2DEXT :: MonadIO m => GLenum -> GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
-glMultiTexSubImage2DEXT = ffienumenumintintintsizeisizeienumenumPtrVIOV glMultiTexSubImage2DEXTFunPtr
-
-glMultiTexSubImage2DEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ())
-glMultiTexSubImage2DEXTFunPtr = unsafePerformIO (getProcAddress "glMultiTexSubImage2DEXT")
-
-{-# NOINLINE glMultiTexSubImage2DEXTFunPtr #-}
-
-glMultiTexSubImage3DEXT :: MonadIO m => GLenum -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
-glMultiTexSubImage3DEXT = ffienumenumintintintintsizeisizeisizeienumenumPtrVIOV glMultiTexSubImage3DEXTFunPtr
-
-glMultiTexSubImage3DEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ())
-glMultiTexSubImage3DEXTFunPtr = unsafePerformIO (getProcAddress "glMultiTexSubImage3DEXT")
-
-{-# NOINLINE glMultiTexSubImage3DEXTFunPtr #-}
-
-glNamedBufferDataEXT :: MonadIO m => GLuint -> GLsizeiptr -> Ptr () -> GLenum -> m ()
-glNamedBufferDataEXT = ffiuintsizeiptrPtrVenumIOV glNamedBufferDataEXTFunPtr
-
-glNamedBufferDataEXTFunPtr :: FunPtr (GLuint -> GLsizeiptr -> Ptr () -> GLenum -> IO ())
-glNamedBufferDataEXTFunPtr = unsafePerformIO (getProcAddress "glNamedBufferDataEXT")
-
-{-# NOINLINE glNamedBufferDataEXTFunPtr #-}
-
-glNamedBufferStorageEXT :: MonadIO m => GLuint -> GLsizeiptr -> Ptr () -> GLbitfield -> m ()
-glNamedBufferStorageEXT = ffiuintsizeiptrPtrVbitfieldIOV glNamedBufferStorageEXTFunPtr
-
-glNamedBufferStorageEXTFunPtr :: FunPtr (GLuint -> GLsizeiptr -> Ptr () -> GLbitfield -> IO ())
-glNamedBufferStorageEXTFunPtr = unsafePerformIO (getProcAddress "glNamedBufferStorageEXT")
-
-{-# NOINLINE glNamedBufferStorageEXTFunPtr #-}
-
-glNamedBufferSubDataEXT :: MonadIO m => GLuint -> GLintptr -> GLsizeiptr -> Ptr () -> m ()
-glNamedBufferSubDataEXT = ffiuintintptrsizeiptrPtrVIOV glNamedBufferSubDataEXTFunPtr
-
-glNamedBufferSubDataEXTFunPtr :: FunPtr (GLuint -> GLintptr -> GLsizeiptr -> Ptr () -> IO ())
-glNamedBufferSubDataEXTFunPtr = unsafePerformIO (getProcAddress "glNamedBufferSubDataEXT")
-
-{-# NOINLINE glNamedBufferSubDataEXTFunPtr #-}
-
-glNamedCopyBufferSubDataEXT :: MonadIO m => GLuint -> GLuint -> GLintptr -> GLintptr -> GLsizeiptr -> m ()
-glNamedCopyBufferSubDataEXT = ffiuintuintintptrintptrsizeiptrIOV glNamedCopyBufferSubDataEXTFunPtr
-
-glNamedCopyBufferSubDataEXTFunPtr :: FunPtr (GLuint -> GLuint -> GLintptr -> GLintptr -> GLsizeiptr -> IO ())
-glNamedCopyBufferSubDataEXTFunPtr = unsafePerformIO (getProcAddress "glNamedCopyBufferSubDataEXT")
-
-{-# NOINLINE glNamedCopyBufferSubDataEXTFunPtr #-}
-
-glNamedFramebufferParameteriEXT :: MonadIO m => GLuint -> GLenum -> GLint -> m ()
-glNamedFramebufferParameteriEXT = ffiuintenumintIOV glNamedFramebufferParameteriEXTFunPtr
-
-glNamedFramebufferParameteriEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> IO ())
-glNamedFramebufferParameteriEXTFunPtr = unsafePerformIO (getProcAddress "glNamedFramebufferParameteriEXT")
-
-{-# NOINLINE glNamedFramebufferParameteriEXTFunPtr #-}
-
-glNamedFramebufferRenderbufferEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> GLuint -> m ()
-glNamedFramebufferRenderbufferEXT = ffiuintenumenumuintIOV glNamedFramebufferRenderbufferEXTFunPtr
-
-glNamedFramebufferRenderbufferEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> GLuint -> IO ())
-glNamedFramebufferRenderbufferEXTFunPtr = unsafePerformIO (getProcAddress "glNamedFramebufferRenderbufferEXT")
-
-{-# NOINLINE glNamedFramebufferRenderbufferEXTFunPtr #-}
-
-glNamedFramebufferTexture1DEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> GLuint -> GLint -> m ()
-glNamedFramebufferTexture1DEXT = ffiuintenumenumuintintIOV glNamedFramebufferTexture1DEXTFunPtr
-
-glNamedFramebufferTexture1DEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> GLuint -> GLint -> IO ())
-glNamedFramebufferTexture1DEXTFunPtr = unsafePerformIO (getProcAddress "glNamedFramebufferTexture1DEXT")
-
-{-# NOINLINE glNamedFramebufferTexture1DEXTFunPtr #-}
-
-glNamedFramebufferTexture2DEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> GLuint -> GLint -> m ()
-glNamedFramebufferTexture2DEXT = ffiuintenumenumuintintIOV glNamedFramebufferTexture2DEXTFunPtr
-
-glNamedFramebufferTexture2DEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> GLuint -> GLint -> IO ())
-glNamedFramebufferTexture2DEXTFunPtr = unsafePerformIO (getProcAddress "glNamedFramebufferTexture2DEXT")
-
-{-# NOINLINE glNamedFramebufferTexture2DEXTFunPtr #-}
-
-glNamedFramebufferTexture3DEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> GLuint -> GLint -> GLint -> m ()
-glNamedFramebufferTexture3DEXT = ffiuintenumenumuintintintIOV glNamedFramebufferTexture3DEXTFunPtr
-
-glNamedFramebufferTexture3DEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> GLuint -> GLint -> GLint -> IO ())
-glNamedFramebufferTexture3DEXTFunPtr = unsafePerformIO (getProcAddress "glNamedFramebufferTexture3DEXT")
-
-{-# NOINLINE glNamedFramebufferTexture3DEXTFunPtr #-}
-
-glNamedFramebufferTextureEXT :: MonadIO m => GLuint -> GLenum -> GLuint -> GLint -> m ()
-glNamedFramebufferTextureEXT = ffiuintenumuintintIOV glNamedFramebufferTextureEXTFunPtr
-
-glNamedFramebufferTextureEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> GLint -> IO ())
-glNamedFramebufferTextureEXTFunPtr = unsafePerformIO (getProcAddress "glNamedFramebufferTextureEXT")
-
-{-# NOINLINE glNamedFramebufferTextureEXTFunPtr #-}
-
-glNamedFramebufferTextureFaceEXT :: MonadIO m => GLuint -> GLenum -> GLuint -> GLint -> GLenum -> m ()
-glNamedFramebufferTextureFaceEXT = ffiuintenumuintintenumIOV glNamedFramebufferTextureFaceEXTFunPtr
-
-glNamedFramebufferTextureFaceEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> GLint -> GLenum -> IO ())
-glNamedFramebufferTextureFaceEXTFunPtr = unsafePerformIO (getProcAddress "glNamedFramebufferTextureFaceEXT")
-
-{-# NOINLINE glNamedFramebufferTextureFaceEXTFunPtr #-}
-
-glNamedFramebufferTextureLayerEXT :: MonadIO m => GLuint -> GLenum -> GLuint -> GLint -> GLint -> m ()
-glNamedFramebufferTextureLayerEXT = ffiuintenumuintintintIOV glNamedFramebufferTextureLayerEXTFunPtr
-
-glNamedFramebufferTextureLayerEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> GLint -> GLint -> IO ())
-glNamedFramebufferTextureLayerEXTFunPtr = unsafePerformIO (getProcAddress "glNamedFramebufferTextureLayerEXT")
-
-{-# NOINLINE glNamedFramebufferTextureLayerEXTFunPtr #-}
-
-glNamedProgramLocalParameter4dEXT :: MonadIO m => GLuint -> GLenum -> GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
-glNamedProgramLocalParameter4dEXT = ffiuintenumuintdoubledoubledoubledoubleIOV glNamedProgramLocalParameter4dEXTFunPtr
-
-glNamedProgramLocalParameter4dEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
-glNamedProgramLocalParameter4dEXTFunPtr = unsafePerformIO (getProcAddress "glNamedProgramLocalParameter4dEXT")
-
-{-# NOINLINE glNamedProgramLocalParameter4dEXTFunPtr #-}
-
-glNamedProgramLocalParameter4dvEXT :: MonadIO m => GLuint -> GLenum -> GLuint -> Ptr GLdouble -> m ()
-glNamedProgramLocalParameter4dvEXT = ffiuintenumuintPtrdoubleIOV glNamedProgramLocalParameter4dvEXTFunPtr
-
-glNamedProgramLocalParameter4dvEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> Ptr GLdouble -> IO ())
-glNamedProgramLocalParameter4dvEXTFunPtr = unsafePerformIO (getProcAddress "glNamedProgramLocalParameter4dvEXT")
-
-{-# NOINLINE glNamedProgramLocalParameter4dvEXTFunPtr #-}
-
-glNamedProgramLocalParameter4fEXT :: MonadIO m => GLuint -> GLenum -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
-glNamedProgramLocalParameter4fEXT = ffiuintenumuintfloatfloatfloatfloatIOV glNamedProgramLocalParameter4fEXTFunPtr
-
-glNamedProgramLocalParameter4fEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
-glNamedProgramLocalParameter4fEXTFunPtr = unsafePerformIO (getProcAddress "glNamedProgramLocalParameter4fEXT")
-
-{-# NOINLINE glNamedProgramLocalParameter4fEXTFunPtr #-}
-
-glNamedProgramLocalParameter4fvEXT :: MonadIO m => GLuint -> GLenum -> GLuint -> Ptr GLfloat -> m ()
-glNamedProgramLocalParameter4fvEXT = ffiuintenumuintPtrfloatIOV glNamedProgramLocalParameter4fvEXTFunPtr
-
-glNamedProgramLocalParameter4fvEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> Ptr GLfloat -> IO ())
-glNamedProgramLocalParameter4fvEXTFunPtr = unsafePerformIO (getProcAddress "glNamedProgramLocalParameter4fvEXT")
-
-{-# NOINLINE glNamedProgramLocalParameter4fvEXTFunPtr #-}
-
-glNamedProgramLocalParameterI4iEXT :: MonadIO m => GLuint -> GLenum -> GLuint -> GLint -> GLint -> GLint -> GLint -> m ()
-glNamedProgramLocalParameterI4iEXT = ffiuintenumuintintintintintIOV glNamedProgramLocalParameterI4iEXTFunPtr
-
-glNamedProgramLocalParameterI4iEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> GLint -> GLint -> GLint -> GLint -> IO ())
-glNamedProgramLocalParameterI4iEXTFunPtr = unsafePerformIO (getProcAddress "glNamedProgramLocalParameterI4iEXT")
-
-{-# NOINLINE glNamedProgramLocalParameterI4iEXTFunPtr #-}
-
-glNamedProgramLocalParameterI4ivEXT :: MonadIO m => GLuint -> GLenum -> GLuint -> Ptr GLint -> m ()
-glNamedProgramLocalParameterI4ivEXT = ffiuintenumuintPtrintIOV glNamedProgramLocalParameterI4ivEXTFunPtr
-
-glNamedProgramLocalParameterI4ivEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> Ptr GLint -> IO ())
-glNamedProgramLocalParameterI4ivEXTFunPtr = unsafePerformIO (getProcAddress "glNamedProgramLocalParameterI4ivEXT")
-
-{-# NOINLINE glNamedProgramLocalParameterI4ivEXTFunPtr #-}
-
-glNamedProgramLocalParameterI4uiEXT :: MonadIO m => GLuint -> GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
-glNamedProgramLocalParameterI4uiEXT = ffiuintenumuintuintuintuintuintIOV glNamedProgramLocalParameterI4uiEXTFunPtr
-
-glNamedProgramLocalParameterI4uiEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ())
-glNamedProgramLocalParameterI4uiEXTFunPtr = unsafePerformIO (getProcAddress "glNamedProgramLocalParameterI4uiEXT")
-
-{-# NOINLINE glNamedProgramLocalParameterI4uiEXTFunPtr #-}
-
-glNamedProgramLocalParameterI4uivEXT :: MonadIO m => GLuint -> GLenum -> GLuint -> Ptr GLuint -> m ()
-glNamedProgramLocalParameterI4uivEXT = ffiuintenumuintPtruintIOV glNamedProgramLocalParameterI4uivEXTFunPtr
-
-glNamedProgramLocalParameterI4uivEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> Ptr GLuint -> IO ())
-glNamedProgramLocalParameterI4uivEXTFunPtr = unsafePerformIO (getProcAddress "glNamedProgramLocalParameterI4uivEXT")
-
-{-# NOINLINE glNamedProgramLocalParameterI4uivEXTFunPtr #-}
-
-glNamedProgramLocalParameters4fvEXT :: MonadIO m => GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLfloat -> m ()
-glNamedProgramLocalParameters4fvEXT = ffiuintenumuintsizeiPtrfloatIOV glNamedProgramLocalParameters4fvEXTFunPtr
-
-glNamedProgramLocalParameters4fvEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLfloat -> IO ())
-glNamedProgramLocalParameters4fvEXTFunPtr = unsafePerformIO (getProcAddress "glNamedProgramLocalParameters4fvEXT")
-
-{-# NOINLINE glNamedProgramLocalParameters4fvEXTFunPtr #-}
-
-glNamedProgramLocalParametersI4ivEXT :: MonadIO m => GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLint -> m ()
-glNamedProgramLocalParametersI4ivEXT = ffiuintenumuintsizeiPtrintIOV glNamedProgramLocalParametersI4ivEXTFunPtr
-
-glNamedProgramLocalParametersI4ivEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLint -> IO ())
-glNamedProgramLocalParametersI4ivEXTFunPtr = unsafePerformIO (getProcAddress "glNamedProgramLocalParametersI4ivEXT")
-
-{-# NOINLINE glNamedProgramLocalParametersI4ivEXTFunPtr #-}
-
-glNamedProgramLocalParametersI4uivEXT :: MonadIO m => GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLuint -> m ()
-glNamedProgramLocalParametersI4uivEXT = ffiuintenumuintsizeiPtruintIOV glNamedProgramLocalParametersI4uivEXTFunPtr
-
-glNamedProgramLocalParametersI4uivEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLuint -> IO ())
-glNamedProgramLocalParametersI4uivEXTFunPtr = unsafePerformIO (getProcAddress "glNamedProgramLocalParametersI4uivEXT")
-
-{-# NOINLINE glNamedProgramLocalParametersI4uivEXTFunPtr #-}
-
-glNamedProgramStringEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> GLsizei -> Ptr () -> m ()
-glNamedProgramStringEXT = ffiuintenumenumsizeiPtrVIOV glNamedProgramStringEXTFunPtr
-
-glNamedProgramStringEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> GLsizei -> Ptr () -> IO ())
-glNamedProgramStringEXTFunPtr = unsafePerformIO (getProcAddress "glNamedProgramStringEXT")
-
-{-# NOINLINE glNamedProgramStringEXTFunPtr #-}
-
-glNamedRenderbufferStorageEXT :: MonadIO m => GLuint -> GLenum -> GLsizei -> GLsizei -> m ()
-glNamedRenderbufferStorageEXT = ffiuintenumsizeisizeiIOV glNamedRenderbufferStorageEXTFunPtr
-
-glNamedRenderbufferStorageEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLsizei -> GLsizei -> IO ())
-glNamedRenderbufferStorageEXTFunPtr = unsafePerformIO (getProcAddress "glNamedRenderbufferStorageEXT")
-
-{-# NOINLINE glNamedRenderbufferStorageEXTFunPtr #-}
-
-glNamedRenderbufferStorageMultisampleCoverageEXT :: MonadIO m => GLuint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()
-glNamedRenderbufferStorageMultisampleCoverageEXT = ffiuintsizeisizeienumsizeisizeiIOV glNamedRenderbufferStorageMultisampleCoverageEXTFunPtr
-
-glNamedRenderbufferStorageMultisampleCoverageEXTFunPtr :: FunPtr (GLuint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> GLsizei -> IO ())
-glNamedRenderbufferStorageMultisampleCoverageEXTFunPtr = unsafePerformIO (getProcAddress "glNamedRenderbufferStorageMultisampleCoverageEXT")
-
-{-# NOINLINE glNamedRenderbufferStorageMultisampleCoverageEXTFunPtr #-}
-
-glNamedRenderbufferStorageMultisampleEXT :: MonadIO m => GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()
-glNamedRenderbufferStorageMultisampleEXT = ffiuintsizeienumsizeisizeiIOV glNamedRenderbufferStorageMultisampleEXTFunPtr
-
-glNamedRenderbufferStorageMultisampleEXTFunPtr :: FunPtr (GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> IO ())
-glNamedRenderbufferStorageMultisampleEXTFunPtr = unsafePerformIO (getProcAddress "glNamedRenderbufferStorageMultisampleEXT")
-
-{-# NOINLINE glNamedRenderbufferStorageMultisampleEXTFunPtr #-}
-
-glProgramUniform1dEXT :: MonadIO m => GLuint -> GLint -> GLdouble -> m ()
-glProgramUniform1dEXT = ffiuintintdoubleIOV glProgramUniform1dEXTFunPtr
-
-glProgramUniform1dEXTFunPtr :: FunPtr (GLuint -> GLint -> GLdouble -> IO ())
-glProgramUniform1dEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform1dEXT")
-
-{-# NOINLINE glProgramUniform1dEXTFunPtr #-}
-
-glProgramUniform1dvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLdouble -> m ()
-glProgramUniform1dvEXT = ffiuintintsizeiPtrdoubleIOV glProgramUniform1dvEXTFunPtr
-
-glProgramUniform1dvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLdouble -> IO ())
-glProgramUniform1dvEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform1dvEXT")
-
-{-# NOINLINE glProgramUniform1dvEXTFunPtr #-}
-
-glProgramUniform2dEXT :: MonadIO m => GLuint -> GLint -> GLdouble -> GLdouble -> m ()
-glProgramUniform2dEXT = ffiuintintdoubledoubleIOV glProgramUniform2dEXTFunPtr
-
-glProgramUniform2dEXTFunPtr :: FunPtr (GLuint -> GLint -> GLdouble -> GLdouble -> IO ())
-glProgramUniform2dEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform2dEXT")
-
-{-# NOINLINE glProgramUniform2dEXTFunPtr #-}
-
-glProgramUniform2dvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLdouble -> m ()
-glProgramUniform2dvEXT = ffiuintintsizeiPtrdoubleIOV glProgramUniform2dvEXTFunPtr
-
-glProgramUniform2dvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLdouble -> IO ())
-glProgramUniform2dvEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform2dvEXT")
-
-{-# NOINLINE glProgramUniform2dvEXTFunPtr #-}
-
-glProgramUniform3dEXT :: MonadIO m => GLuint -> GLint -> GLdouble -> GLdouble -> GLdouble -> m ()
-glProgramUniform3dEXT = ffiuintintdoubledoubledoubleIOV glProgramUniform3dEXTFunPtr
-
-glProgramUniform3dEXTFunPtr :: FunPtr (GLuint -> GLint -> GLdouble -> GLdouble -> GLdouble -> IO ())
-glProgramUniform3dEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform3dEXT")
-
-{-# NOINLINE glProgramUniform3dEXTFunPtr #-}
-
-glProgramUniform3dvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLdouble -> m ()
-glProgramUniform3dvEXT = ffiuintintsizeiPtrdoubleIOV glProgramUniform3dvEXTFunPtr
-
-glProgramUniform3dvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLdouble -> IO ())
-glProgramUniform3dvEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform3dvEXT")
-
-{-# NOINLINE glProgramUniform3dvEXTFunPtr #-}
-
-glProgramUniform4dEXT :: MonadIO m => GLuint -> GLint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
-glProgramUniform4dEXT = ffiuintintdoubledoubledoubledoubleIOV glProgramUniform4dEXTFunPtr
-
-glProgramUniform4dEXTFunPtr :: FunPtr (GLuint -> GLint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
-glProgramUniform4dEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform4dEXT")
-
-{-# NOINLINE glProgramUniform4dEXTFunPtr #-}
-
-glProgramUniform4dvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLdouble -> m ()
-glProgramUniform4dvEXT = ffiuintintsizeiPtrdoubleIOV glProgramUniform4dvEXTFunPtr
-
-glProgramUniform4dvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLdouble -> IO ())
-glProgramUniform4dvEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform4dvEXT")
-
-{-# NOINLINE glProgramUniform4dvEXTFunPtr #-}
-
-glProgramUniformMatrix2dvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
-glProgramUniformMatrix2dvEXT = ffiuintintsizeibooleanPtrdoubleIOV glProgramUniformMatrix2dvEXTFunPtr
-
-glProgramUniformMatrix2dvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
-glProgramUniformMatrix2dvEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix2dvEXT")
-
-{-# NOINLINE glProgramUniformMatrix2dvEXTFunPtr #-}
-
-glProgramUniformMatrix2x3dvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
-glProgramUniformMatrix2x3dvEXT = ffiuintintsizeibooleanPtrdoubleIOV glProgramUniformMatrix2x3dvEXTFunPtr
-
-glProgramUniformMatrix2x3dvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
-glProgramUniformMatrix2x3dvEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix2x3dvEXT")
-
-{-# NOINLINE glProgramUniformMatrix2x3dvEXTFunPtr #-}
-
-glProgramUniformMatrix2x4dvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
-glProgramUniformMatrix2x4dvEXT = ffiuintintsizeibooleanPtrdoubleIOV glProgramUniformMatrix2x4dvEXTFunPtr
-
-glProgramUniformMatrix2x4dvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
-glProgramUniformMatrix2x4dvEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix2x4dvEXT")
-
-{-# NOINLINE glProgramUniformMatrix2x4dvEXTFunPtr #-}
-
-glProgramUniformMatrix3dvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
-glProgramUniformMatrix3dvEXT = ffiuintintsizeibooleanPtrdoubleIOV glProgramUniformMatrix3dvEXTFunPtr
-
-glProgramUniformMatrix3dvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
-glProgramUniformMatrix3dvEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix3dvEXT")
-
-{-# NOINLINE glProgramUniformMatrix3dvEXTFunPtr #-}
-
-glProgramUniformMatrix3x2dvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
-glProgramUniformMatrix3x2dvEXT = ffiuintintsizeibooleanPtrdoubleIOV glProgramUniformMatrix3x2dvEXTFunPtr
-
-glProgramUniformMatrix3x2dvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
-glProgramUniformMatrix3x2dvEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix3x2dvEXT")
-
-{-# NOINLINE glProgramUniformMatrix3x2dvEXTFunPtr #-}
-
-glProgramUniformMatrix3x4dvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
-glProgramUniformMatrix3x4dvEXT = ffiuintintsizeibooleanPtrdoubleIOV glProgramUniformMatrix3x4dvEXTFunPtr
-
-glProgramUniformMatrix3x4dvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
-glProgramUniformMatrix3x4dvEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix3x4dvEXT")
-
-{-# NOINLINE glProgramUniformMatrix3x4dvEXTFunPtr #-}
-
-glProgramUniformMatrix4dvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
-glProgramUniformMatrix4dvEXT = ffiuintintsizeibooleanPtrdoubleIOV glProgramUniformMatrix4dvEXTFunPtr
-
-glProgramUniformMatrix4dvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
-glProgramUniformMatrix4dvEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix4dvEXT")
-
-{-# NOINLINE glProgramUniformMatrix4dvEXTFunPtr #-}
-
-glProgramUniformMatrix4x2dvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
-glProgramUniformMatrix4x2dvEXT = ffiuintintsizeibooleanPtrdoubleIOV glProgramUniformMatrix4x2dvEXTFunPtr
-
-glProgramUniformMatrix4x2dvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
-glProgramUniformMatrix4x2dvEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix4x2dvEXT")
-
-{-# NOINLINE glProgramUniformMatrix4x2dvEXTFunPtr #-}
-
-glProgramUniformMatrix4x3dvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
-glProgramUniformMatrix4x3dvEXT = ffiuintintsizeibooleanPtrdoubleIOV glProgramUniformMatrix4x3dvEXTFunPtr
-
-glProgramUniformMatrix4x3dvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
-glProgramUniformMatrix4x3dvEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix4x3dvEXT")
-
-{-# NOINLINE glProgramUniformMatrix4x3dvEXTFunPtr #-}
-
-glPushClientAttribDefaultEXT :: MonadIO m => GLbitfield -> m ()
-glPushClientAttribDefaultEXT = ffibitfieldIOV glPushClientAttribDefaultEXTFunPtr
-
-glPushClientAttribDefaultEXTFunPtr :: FunPtr (GLbitfield -> IO ())
-glPushClientAttribDefaultEXTFunPtr = unsafePerformIO (getProcAddress "glPushClientAttribDefaultEXT")
-
-{-# NOINLINE glPushClientAttribDefaultEXTFunPtr #-}
-
-glTextureBufferEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> GLuint -> m ()
-glTextureBufferEXT = ffiuintenumenumuintIOV glTextureBufferEXTFunPtr
-
-glTextureBufferEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> GLuint -> IO ())
-glTextureBufferEXTFunPtr = unsafePerformIO (getProcAddress "glTextureBufferEXT")
-
-{-# NOINLINE glTextureBufferEXTFunPtr #-}
-
-glTextureBufferRangeEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> GLuint -> GLintptr -> GLsizeiptr -> m ()
-glTextureBufferRangeEXT = ffiuintenumenumuintintptrsizeiptrIOV glTextureBufferRangeEXTFunPtr
-
-glTextureBufferRangeEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> GLuint -> GLintptr -> GLsizeiptr -> IO ())
-glTextureBufferRangeEXTFunPtr = unsafePerformIO (getProcAddress "glTextureBufferRangeEXT")
-
-{-# NOINLINE glTextureBufferRangeEXTFunPtr #-}
-
-glTextureImage1DEXT :: MonadIO m => GLuint -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> m ()
-glTextureImage1DEXT = ffiuintenumintintsizeiintenumenumPtrVIOV glTextureImage1DEXTFunPtr
-
-glTextureImage1DEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> IO ())
-glTextureImage1DEXTFunPtr = unsafePerformIO (getProcAddress "glTextureImage1DEXT")
-
-{-# NOINLINE glTextureImage1DEXTFunPtr #-}
-
-glTextureImage2DEXT :: MonadIO m => GLuint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> m ()
-glTextureImage2DEXT = ffiuintenumintintsizeisizeiintenumenumPtrVIOV glTextureImage2DEXTFunPtr
-
-glTextureImage2DEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> IO ())
-glTextureImage2DEXTFunPtr = unsafePerformIO (getProcAddress "glTextureImage2DEXT")
-
-{-# NOINLINE glTextureImage2DEXTFunPtr #-}
-
-glTextureImage3DEXT :: MonadIO m => GLuint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> m ()
-glTextureImage3DEXT = ffiuintenumintintsizeisizeisizeiintenumenumPtrVIOV glTextureImage3DEXTFunPtr
-
-glTextureImage3DEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> IO ())
-glTextureImage3DEXTFunPtr = unsafePerformIO (getProcAddress "glTextureImage3DEXT")
-
-{-# NOINLINE glTextureImage3DEXTFunPtr #-}
-
-glTexturePageCommitmentEXT :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> m ()
-glTexturePageCommitmentEXT = ffiuintintintintintsizeisizeisizeibooleanIOV glTexturePageCommitmentEXTFunPtr
-
-glTexturePageCommitmentEXTFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> IO ())
-glTexturePageCommitmentEXTFunPtr = unsafePerformIO (getProcAddress "glTexturePageCommitmentEXT")
-
-{-# NOINLINE glTexturePageCommitmentEXTFunPtr #-}
-
-glTextureParameterIivEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> Ptr GLint -> m ()
-glTextureParameterIivEXT = ffiuintenumenumPtrintIOV glTextureParameterIivEXTFunPtr
-
-glTextureParameterIivEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> Ptr GLint -> IO ())
-glTextureParameterIivEXTFunPtr = unsafePerformIO (getProcAddress "glTextureParameterIivEXT")
-
-{-# NOINLINE glTextureParameterIivEXTFunPtr #-}
-
-glTextureParameterIuivEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> Ptr GLuint -> m ()
-glTextureParameterIuivEXT = ffiuintenumenumPtruintIOV glTextureParameterIuivEXTFunPtr
-
-glTextureParameterIuivEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> Ptr GLuint -> IO ())
-glTextureParameterIuivEXTFunPtr = unsafePerformIO (getProcAddress "glTextureParameterIuivEXT")
-
-{-# NOINLINE glTextureParameterIuivEXTFunPtr #-}
-
-glTextureParameterfEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> GLfloat -> m ()
-glTextureParameterfEXT = ffiuintenumenumfloatIOV glTextureParameterfEXTFunPtr
-
-glTextureParameterfEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> GLfloat -> IO ())
-glTextureParameterfEXTFunPtr = unsafePerformIO (getProcAddress "glTextureParameterfEXT")
-
-{-# NOINLINE glTextureParameterfEXTFunPtr #-}
-
-glTextureParameterfvEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> Ptr GLfloat -> m ()
-glTextureParameterfvEXT = ffiuintenumenumPtrfloatIOV glTextureParameterfvEXTFunPtr
-
-glTextureParameterfvEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> Ptr GLfloat -> IO ())
-glTextureParameterfvEXTFunPtr = unsafePerformIO (getProcAddress "glTextureParameterfvEXT")
-
-{-# NOINLINE glTextureParameterfvEXTFunPtr #-}
-
-glTextureParameteriEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> GLint -> m ()
-glTextureParameteriEXT = ffiuintenumenumintIOV glTextureParameteriEXTFunPtr
-
-glTextureParameteriEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> GLint -> IO ())
-glTextureParameteriEXTFunPtr = unsafePerformIO (getProcAddress "glTextureParameteriEXT")
-
-{-# NOINLINE glTextureParameteriEXTFunPtr #-}
-
-glTextureParameterivEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> Ptr GLint -> m ()
-glTextureParameterivEXT = ffiuintenumenumPtrintIOV glTextureParameterivEXTFunPtr
-
-glTextureParameterivEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> Ptr GLint -> IO ())
-glTextureParameterivEXTFunPtr = unsafePerformIO (getProcAddress "glTextureParameterivEXT")
-
-{-# NOINLINE glTextureParameterivEXTFunPtr #-}
-
-glTextureRenderbufferEXT :: MonadIO m => GLuint -> GLenum -> GLuint -> m ()
-glTextureRenderbufferEXT = ffiuintenumuintIOV glTextureRenderbufferEXTFunPtr
-
-glTextureRenderbufferEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> IO ())
-glTextureRenderbufferEXTFunPtr = unsafePerformIO (getProcAddress "glTextureRenderbufferEXT")
-
-{-# NOINLINE glTextureRenderbufferEXTFunPtr #-}
-
-glTextureStorage2DMultisampleEXT :: MonadIO m => GLuint -> GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> m ()
-glTextureStorage2DMultisampleEXT = ffiuintenumsizeienumsizeisizeibooleanIOV glTextureStorage2DMultisampleEXTFunPtr
-
-glTextureStorage2DMultisampleEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> IO ())
-glTextureStorage2DMultisampleEXTFunPtr = unsafePerformIO (getProcAddress "glTextureStorage2DMultisampleEXT")
-
-{-# NOINLINE glTextureStorage2DMultisampleEXTFunPtr #-}
-
-glTextureStorage3DMultisampleEXT :: MonadIO m => GLuint -> GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> m ()
-glTextureStorage3DMultisampleEXT = ffiuintenumsizeienumsizeisizeisizeibooleanIOV glTextureStorage3DMultisampleEXTFunPtr
-
-glTextureStorage3DMultisampleEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> IO ())
-glTextureStorage3DMultisampleEXTFunPtr = unsafePerformIO (getProcAddress "glTextureStorage3DMultisampleEXT")
-
-{-# NOINLINE glTextureStorage3DMultisampleEXTFunPtr #-}
-
-glTextureSubImage1DEXT :: MonadIO m => GLuint -> GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
-glTextureSubImage1DEXT = ffiuintenumintintsizeienumenumPtrVIOV glTextureSubImage1DEXTFunPtr
-
-glTextureSubImage1DEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ())
-glTextureSubImage1DEXTFunPtr = unsafePerformIO (getProcAddress "glTextureSubImage1DEXT")
-
-{-# NOINLINE glTextureSubImage1DEXTFunPtr #-}
-
-glTextureSubImage2DEXT :: MonadIO m => GLuint -> GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
-glTextureSubImage2DEXT = ffiuintenumintintintsizeisizeienumenumPtrVIOV glTextureSubImage2DEXTFunPtr
-
-glTextureSubImage2DEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ())
-glTextureSubImage2DEXTFunPtr = unsafePerformIO (getProcAddress "glTextureSubImage2DEXT")
-
-{-# NOINLINE glTextureSubImage2DEXTFunPtr #-}
-
-glTextureSubImage3DEXT :: MonadIO m => GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
-glTextureSubImage3DEXT = ffiuintenumintintintintsizeisizeisizeienumenumPtrVIOV glTextureSubImage3DEXTFunPtr
-
-glTextureSubImage3DEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ())
-glTextureSubImage3DEXTFunPtr = unsafePerformIO (getProcAddress "glTextureSubImage3DEXT")
-
-{-# NOINLINE glTextureSubImage3DEXTFunPtr #-}
-
-glUnmapNamedBufferEXT :: MonadIO m => GLuint -> m GLboolean
-glUnmapNamedBufferEXT = ffiuintIOboolean glUnmapNamedBufferEXTFunPtr
-
-glUnmapNamedBufferEXTFunPtr :: FunPtr (GLuint -> IO GLboolean)
-glUnmapNamedBufferEXTFunPtr = unsafePerformIO (getProcAddress "glUnmapNamedBufferEXT")
-
-{-# NOINLINE glUnmapNamedBufferEXTFunPtr #-}
-
-glVertexArrayBindVertexBufferEXT :: MonadIO m => GLuint -> GLuint -> GLuint -> GLintptr -> GLsizei -> m ()
-glVertexArrayBindVertexBufferEXT = ffiuintuintuintintptrsizeiIOV glVertexArrayBindVertexBufferEXTFunPtr
-
-glVertexArrayBindVertexBufferEXTFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> GLintptr -> GLsizei -> IO ())
-glVertexArrayBindVertexBufferEXTFunPtr = unsafePerformIO (getProcAddress "glVertexArrayBindVertexBufferEXT")
-
-{-# NOINLINE glVertexArrayBindVertexBufferEXTFunPtr #-}
-
-glVertexArrayColorOffsetEXT :: MonadIO m => GLuint -> GLuint -> GLint -> GLenum -> GLsizei -> GLintptr -> m ()
-glVertexArrayColorOffsetEXT = ffiuintuintintenumsizeiintptrIOV glVertexArrayColorOffsetEXTFunPtr
-
-glVertexArrayColorOffsetEXTFunPtr :: FunPtr (GLuint -> GLuint -> GLint -> GLenum -> GLsizei -> GLintptr -> IO ())
-glVertexArrayColorOffsetEXTFunPtr = unsafePerformIO (getProcAddress "glVertexArrayColorOffsetEXT")
-
-{-# NOINLINE glVertexArrayColorOffsetEXTFunPtr #-}
-
-glVertexArrayEdgeFlagOffsetEXT :: MonadIO m => GLuint -> GLuint -> GLsizei -> GLintptr -> m ()
-glVertexArrayEdgeFlagOffsetEXT = ffiuintuintsizeiintptrIOV glVertexArrayEdgeFlagOffsetEXTFunPtr
-
-glVertexArrayEdgeFlagOffsetEXTFunPtr :: FunPtr (GLuint -> GLuint -> GLsizei -> GLintptr -> IO ())
-glVertexArrayEdgeFlagOffsetEXTFunPtr = unsafePerformIO (getProcAddress "glVertexArrayEdgeFlagOffsetEXT")
-
-{-# NOINLINE glVertexArrayEdgeFlagOffsetEXTFunPtr #-}
-
-glVertexArrayFogCoordOffsetEXT :: MonadIO m => GLuint -> GLuint -> GLenum -> GLsizei -> GLintptr -> m ()
-glVertexArrayFogCoordOffsetEXT = ffiuintuintenumsizeiintptrIOV glVertexArrayFogCoordOffsetEXTFunPtr
-
-glVertexArrayFogCoordOffsetEXTFunPtr :: FunPtr (GLuint -> GLuint -> GLenum -> GLsizei -> GLintptr -> IO ())
-glVertexArrayFogCoordOffsetEXTFunPtr = unsafePerformIO (getProcAddress "glVertexArrayFogCoordOffsetEXT")
-
-{-# NOINLINE glVertexArrayFogCoordOffsetEXTFunPtr #-}
-
-glVertexArrayIndexOffsetEXT :: MonadIO m => GLuint -> GLuint -> GLenum -> GLsizei -> GLintptr -> m ()
-glVertexArrayIndexOffsetEXT = ffiuintuintenumsizeiintptrIOV glVertexArrayIndexOffsetEXTFunPtr
-
-glVertexArrayIndexOffsetEXTFunPtr :: FunPtr (GLuint -> GLuint -> GLenum -> GLsizei -> GLintptr -> IO ())
-glVertexArrayIndexOffsetEXTFunPtr = unsafePerformIO (getProcAddress "glVertexArrayIndexOffsetEXT")
-
-{-# NOINLINE glVertexArrayIndexOffsetEXTFunPtr #-}
-
-glVertexArrayMultiTexCoordOffsetEXT :: MonadIO m => GLuint -> GLuint -> GLenum -> GLint -> GLenum -> GLsizei -> GLintptr -> m ()
-glVertexArrayMultiTexCoordOffsetEXT = ffiuintuintenumintenumsizeiintptrIOV glVertexArrayMultiTexCoordOffsetEXTFunPtr
-
-glVertexArrayMultiTexCoordOffsetEXTFunPtr :: FunPtr (GLuint -> GLuint -> GLenum -> GLint -> GLenum -> GLsizei -> GLintptr -> IO ())
-glVertexArrayMultiTexCoordOffsetEXTFunPtr = unsafePerformIO (getProcAddress "glVertexArrayMultiTexCoordOffsetEXT")
-
-{-# NOINLINE glVertexArrayMultiTexCoordOffsetEXTFunPtr #-}
-
-glVertexArrayNormalOffsetEXT :: MonadIO m => GLuint -> GLuint -> GLenum -> GLsizei -> GLintptr -> m ()
-glVertexArrayNormalOffsetEXT = ffiuintuintenumsizeiintptrIOV glVertexArrayNormalOffsetEXTFunPtr
-
-glVertexArrayNormalOffsetEXTFunPtr :: FunPtr (GLuint -> GLuint -> GLenum -> GLsizei -> GLintptr -> IO ())
-glVertexArrayNormalOffsetEXTFunPtr = unsafePerformIO (getProcAddress "glVertexArrayNormalOffsetEXT")
-
-{-# NOINLINE glVertexArrayNormalOffsetEXTFunPtr #-}
-
-glVertexArraySecondaryColorOffsetEXT :: MonadIO m => GLuint -> GLuint -> GLint -> GLenum -> GLsizei -> GLintptr -> m ()
-glVertexArraySecondaryColorOffsetEXT = ffiuintuintintenumsizeiintptrIOV glVertexArraySecondaryColorOffsetEXTFunPtr
-
-glVertexArraySecondaryColorOffsetEXTFunPtr :: FunPtr (GLuint -> GLuint -> GLint -> GLenum -> GLsizei -> GLintptr -> IO ())
-glVertexArraySecondaryColorOffsetEXTFunPtr = unsafePerformIO (getProcAddress "glVertexArraySecondaryColorOffsetEXT")
-
-{-# NOINLINE glVertexArraySecondaryColorOffsetEXTFunPtr #-}
-
-glVertexArrayTexCoordOffsetEXT :: MonadIO m => GLuint -> GLuint -> GLint -> GLenum -> GLsizei -> GLintptr -> m ()
-glVertexArrayTexCoordOffsetEXT = ffiuintuintintenumsizeiintptrIOV glVertexArrayTexCoordOffsetEXTFunPtr
-
-glVertexArrayTexCoordOffsetEXTFunPtr :: FunPtr (GLuint -> GLuint -> GLint -> GLenum -> GLsizei -> GLintptr -> IO ())
-glVertexArrayTexCoordOffsetEXTFunPtr = unsafePerformIO (getProcAddress "glVertexArrayTexCoordOffsetEXT")
-
-{-# NOINLINE glVertexArrayTexCoordOffsetEXTFunPtr #-}
-
-glVertexArrayVertexAttribBindingEXT :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()
-glVertexArrayVertexAttribBindingEXT = ffiuintuintuintIOV glVertexArrayVertexAttribBindingEXTFunPtr
-
-glVertexArrayVertexAttribBindingEXTFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> IO ())
-glVertexArrayVertexAttribBindingEXTFunPtr = unsafePerformIO (getProcAddress "glVertexArrayVertexAttribBindingEXT")
-
-{-# NOINLINE glVertexArrayVertexAttribBindingEXTFunPtr #-}
-
-glVertexArrayVertexAttribDivisorEXT :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()
-glVertexArrayVertexAttribDivisorEXT = ffiuintuintuintIOV glVertexArrayVertexAttribDivisorEXTFunPtr
-
-glVertexArrayVertexAttribDivisorEXTFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> IO ())
-glVertexArrayVertexAttribDivisorEXTFunPtr = unsafePerformIO (getProcAddress "glVertexArrayVertexAttribDivisorEXT")
-
-{-# NOINLINE glVertexArrayVertexAttribDivisorEXTFunPtr #-}
-
-glVertexArrayVertexAttribFormatEXT :: MonadIO m => GLuint -> GLuint -> GLint -> GLenum -> GLboolean -> GLuint -> m ()
-glVertexArrayVertexAttribFormatEXT = ffiuintuintintenumbooleanuintIOV glVertexArrayVertexAttribFormatEXTFunPtr
-
-glVertexArrayVertexAttribFormatEXTFunPtr :: FunPtr (GLuint -> GLuint -> GLint -> GLenum -> GLboolean -> GLuint -> IO ())
-glVertexArrayVertexAttribFormatEXTFunPtr = unsafePerformIO (getProcAddress "glVertexArrayVertexAttribFormatEXT")
-
-{-# NOINLINE glVertexArrayVertexAttribFormatEXTFunPtr #-}
-
-glVertexArrayVertexAttribIFormatEXT :: MonadIO m => GLuint -> GLuint -> GLint -> GLenum -> GLuint -> m ()
-glVertexArrayVertexAttribIFormatEXT = ffiuintuintintenumuintIOV glVertexArrayVertexAttribIFormatEXTFunPtr
-
-glVertexArrayVertexAttribIFormatEXTFunPtr :: FunPtr (GLuint -> GLuint -> GLint -> GLenum -> GLuint -> IO ())
-glVertexArrayVertexAttribIFormatEXTFunPtr = unsafePerformIO (getProcAddress "glVertexArrayVertexAttribIFormatEXT")
-
-{-# NOINLINE glVertexArrayVertexAttribIFormatEXTFunPtr #-}
-
-glVertexArrayVertexAttribIOffsetEXT :: MonadIO m => GLuint -> GLuint -> GLuint -> GLint -> GLenum -> GLsizei -> GLintptr -> m ()
-glVertexArrayVertexAttribIOffsetEXT = ffiuintuintuintintenumsizeiintptrIOV glVertexArrayVertexAttribIOffsetEXTFunPtr
-
-glVertexArrayVertexAttribIOffsetEXTFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> GLint -> GLenum -> GLsizei -> GLintptr -> IO ())
-glVertexArrayVertexAttribIOffsetEXTFunPtr = unsafePerformIO (getProcAddress "glVertexArrayVertexAttribIOffsetEXT")
-
-{-# NOINLINE glVertexArrayVertexAttribIOffsetEXTFunPtr #-}
-
-glVertexArrayVertexAttribLFormatEXT :: MonadIO m => GLuint -> GLuint -> GLint -> GLenum -> GLuint -> m ()
-glVertexArrayVertexAttribLFormatEXT = ffiuintuintintenumuintIOV glVertexArrayVertexAttribLFormatEXTFunPtr
-
-glVertexArrayVertexAttribLFormatEXTFunPtr :: FunPtr (GLuint -> GLuint -> GLint -> GLenum -> GLuint -> IO ())
-glVertexArrayVertexAttribLFormatEXTFunPtr = unsafePerformIO (getProcAddress "glVertexArrayVertexAttribLFormatEXT")
-
-{-# NOINLINE glVertexArrayVertexAttribLFormatEXTFunPtr #-}
-
-glVertexArrayVertexAttribLOffsetEXT :: MonadIO m => GLuint -> GLuint -> GLuint -> GLint -> GLenum -> GLsizei -> GLintptr -> m ()
-glVertexArrayVertexAttribLOffsetEXT = ffiuintuintuintintenumsizeiintptrIOV glVertexArrayVertexAttribLOffsetEXTFunPtr
-
-glVertexArrayVertexAttribLOffsetEXTFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> GLint -> GLenum -> GLsizei -> GLintptr -> IO ())
-glVertexArrayVertexAttribLOffsetEXTFunPtr = unsafePerformIO (getProcAddress "glVertexArrayVertexAttribLOffsetEXT")
-
-{-# NOINLINE glVertexArrayVertexAttribLOffsetEXTFunPtr #-}
-
-glVertexArrayVertexAttribOffsetEXT :: MonadIO m => GLuint -> GLuint -> GLuint -> GLint -> GLenum -> GLboolean -> GLsizei -> GLintptr -> m ()
-glVertexArrayVertexAttribOffsetEXT = ffiuintuintuintintenumbooleansizeiintptrIOV glVertexArrayVertexAttribOffsetEXTFunPtr
-
-glVertexArrayVertexAttribOffsetEXTFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> GLint -> GLenum -> GLboolean -> GLsizei -> GLintptr -> IO ())
-glVertexArrayVertexAttribOffsetEXTFunPtr = unsafePerformIO (getProcAddress "glVertexArrayVertexAttribOffsetEXT")
-
-{-# NOINLINE glVertexArrayVertexAttribOffsetEXTFunPtr #-}
-
-glVertexArrayVertexBindingDivisorEXT :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()
-glVertexArrayVertexBindingDivisorEXT = ffiuintuintuintIOV glVertexArrayVertexBindingDivisorEXTFunPtr
-
-glVertexArrayVertexBindingDivisorEXTFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> IO ())
-glVertexArrayVertexBindingDivisorEXTFunPtr = unsafePerformIO (getProcAddress "glVertexArrayVertexBindingDivisorEXT")
-
-{-# NOINLINE glVertexArrayVertexBindingDivisorEXTFunPtr #-}
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/direct_state_access.txt GL_EXT_direct_state_access> extension is available.
+
+gl_EXT_direct_state_access :: Bool
+gl_EXT_direct_state_access = member "GL_EXT_direct_state_access" extensions
+{-# NOINLINE gl_EXT_direct_state_access #-}
+
+-- | Usage: @'glBindMultiTextureEXT' texunit target texture@
+--
+-- The parameter @texunit@ is a @TextureUnit@.
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @texture@ is a @Texture@.
+
+
+glBindMultiTextureEXT :: MonadIO m => GLenum -> GLenum -> GLuint -> m ()
+glBindMultiTextureEXT = ffienumenumuintIOV glBindMultiTextureEXTFunPtr
+
+glBindMultiTextureEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLuint -> IO ())
+glBindMultiTextureEXTFunPtr = unsafePerformIO (getProcAddress "glBindMultiTextureEXT")
+
+{-# NOINLINE glBindMultiTextureEXTFunPtr #-}
+
+-- | Usage: @'glCheckNamedFramebufferStatusEXT' framebuffer target@
+--
+-- The parameter @framebuffer@ is a @Framebuffer@.
+--
+-- The parameter @target@ is a @FramebufferTarget@.
+
+
+glCheckNamedFramebufferStatusEXT :: MonadIO m => GLuint -> GLenum -> m GLenum
+glCheckNamedFramebufferStatusEXT = ffiuintenumIOenum glCheckNamedFramebufferStatusEXTFunPtr
+
+glCheckNamedFramebufferStatusEXTFunPtr :: FunPtr (GLuint -> GLenum -> IO GLenum)
+glCheckNamedFramebufferStatusEXTFunPtr = unsafePerformIO (getProcAddress "glCheckNamedFramebufferStatusEXT")
+
+{-# NOINLINE glCheckNamedFramebufferStatusEXTFunPtr #-}
+
+-- | Usage: @'glClearNamedBufferDataEXT' buffer internalformat format type data@
+--
+-- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Raw.Extension.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_ALPHA', 'Graphics.GL.Raw.Internal.Shared.GL_BLUE', 'Graphics.GL.Raw.Extension.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Raw.Extension.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Raw.Internal.Shared.GL_GREEN', 'Graphics.GL.Raw.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Raw.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Raw.Internal.Shared.GL_RED', 'Graphics.GL.Raw.Extension.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_RGB', 'Graphics.GL.Raw.Internal.Shared.GL_RGBA', 'Graphics.GL.Raw.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Raw.Extension.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
+--
+-- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_BITMAP', 'Graphics.GL.Raw.Internal.Shared.GL_BYTE', 'Graphics.GL.Raw.Internal.Shared.GL_FLOAT', 'Graphics.GL.Raw.Internal.Shared.GL_INT', 'Graphics.GL.Raw.Internal.Shared.GL_SHORT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
+--
+-- The length of @data@ should be @COMPSIZE(format,type)@.
+
+
+glClearNamedBufferDataEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> GLenum -> Ptr () -> m ()
+glClearNamedBufferDataEXT = ffiuintenumenumenumPtrVIOV glClearNamedBufferDataEXTFunPtr
+
+glClearNamedBufferDataEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> GLenum -> Ptr () -> IO ())
+glClearNamedBufferDataEXTFunPtr = unsafePerformIO (getProcAddress "glClearNamedBufferDataEXT")
+
+{-# NOINLINE glClearNamedBufferDataEXTFunPtr #-}
+
+-- | Usage: @'glClearNamedBufferSubDataEXT' buffer internalformat offset size format type data@
+--
+-- The parameter @offset@ is a @BufferSize@.
+--
+-- The parameter @size@ is a @BufferSize@.
+--
+-- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Raw.Extension.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_ALPHA', 'Graphics.GL.Raw.Internal.Shared.GL_BLUE', 'Graphics.GL.Raw.Extension.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Raw.Extension.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Raw.Internal.Shared.GL_GREEN', 'Graphics.GL.Raw.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Raw.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Raw.Internal.Shared.GL_RED', 'Graphics.GL.Raw.Extension.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_RGB', 'Graphics.GL.Raw.Internal.Shared.GL_RGBA', 'Graphics.GL.Raw.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Raw.Extension.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
+--
+-- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_BITMAP', 'Graphics.GL.Raw.Internal.Shared.GL_BYTE', 'Graphics.GL.Raw.Internal.Shared.GL_FLOAT', 'Graphics.GL.Raw.Internal.Shared.GL_INT', 'Graphics.GL.Raw.Internal.Shared.GL_SHORT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
+--
+-- The length of @data@ should be @COMPSIZE(format,type)@.
+
+
+glClearNamedBufferSubDataEXT :: MonadIO m => GLuint -> GLenum -> GLsizeiptr -> GLsizeiptr -> GLenum -> GLenum -> Ptr () -> m ()
+glClearNamedBufferSubDataEXT = ffiuintenumsizeiptrsizeiptrenumenumPtrVIOV glClearNamedBufferSubDataEXTFunPtr
+
+glClearNamedBufferSubDataEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLsizeiptr -> GLsizeiptr -> GLenum -> GLenum -> Ptr () -> IO ())
+glClearNamedBufferSubDataEXTFunPtr = unsafePerformIO (getProcAddress "glClearNamedBufferSubDataEXT")
+
+{-# NOINLINE glClearNamedBufferSubDataEXTFunPtr #-}
+
+-- | Usage: @'glClientAttribDefaultEXT' mask@
+--
+-- The parameter @mask@ is a @ClientAttribMask@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_CLIENT_ALL_ATTRIB_BITS', 'Graphics.GL.Raw.Internal.Shared.GL_CLIENT_PIXEL_STORE_BIT', 'Graphics.GL.Raw.Internal.Shared.GL_CLIENT_VERTEX_ARRAY_BIT'.
+
+
+glClientAttribDefaultEXT :: MonadIO m => GLbitfield -> m ()
+glClientAttribDefaultEXT = ffibitfieldIOV glClientAttribDefaultEXTFunPtr
+
+glClientAttribDefaultEXTFunPtr :: FunPtr (GLbitfield -> IO ())
+glClientAttribDefaultEXTFunPtr = unsafePerformIO (getProcAddress "glClientAttribDefaultEXT")
+
+{-# NOINLINE glClientAttribDefaultEXTFunPtr #-}
+
+-- | Usage: @'glCompressedMultiTexImage1DEXT' texunit target level internalformat width border imageSize bits@
+--
+-- The parameter @texunit@ is a @TextureUnit@.
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @internalformat@ is a @TextureInternalFormat@.
+--
+-- The parameter @border@ is a @CheckedInt32@.
+--
+-- The length of @bits@ should be @imageSize@.
+
+
+glCompressedMultiTexImage1DEXT :: MonadIO m => GLenum -> GLenum -> GLint -> GLenum -> GLsizei -> GLint -> GLsizei -> Ptr () -> m ()
+glCompressedMultiTexImage1DEXT = ffienumenumintenumsizeiintsizeiPtrVIOV glCompressedMultiTexImage1DEXTFunPtr
+
+glCompressedMultiTexImage1DEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> GLenum -> GLsizei -> GLint -> GLsizei -> Ptr () -> IO ())
+glCompressedMultiTexImage1DEXTFunPtr = unsafePerformIO (getProcAddress "glCompressedMultiTexImage1DEXT")
+
+{-# NOINLINE glCompressedMultiTexImage1DEXTFunPtr #-}
+
+-- | Usage: @'glCompressedMultiTexImage2DEXT' texunit target level internalformat width height border imageSize bits@
+--
+-- The parameter @texunit@ is a @TextureUnit@.
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @internalformat@ is a @TextureInternalFormat@.
+--
+-- The parameter @border@ is a @CheckedInt32@.
+--
+-- The length of @bits@ should be @imageSize@.
+
+
+glCompressedMultiTexImage2DEXT :: MonadIO m => GLenum -> GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> m ()
+glCompressedMultiTexImage2DEXT = ffienumenumintenumsizeisizeiintsizeiPtrVIOV glCompressedMultiTexImage2DEXTFunPtr
+
+glCompressedMultiTexImage2DEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> IO ())
+glCompressedMultiTexImage2DEXTFunPtr = unsafePerformIO (getProcAddress "glCompressedMultiTexImage2DEXT")
+
+{-# NOINLINE glCompressedMultiTexImage2DEXTFunPtr #-}
+
+-- | Usage: @'glCompressedMultiTexImage3DEXT' texunit target level internalformat width height depth border imageSize bits@
+--
+-- The parameter @texunit@ is a @TextureUnit@.
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @internalformat@ is a @TextureInternalFormat@.
+--
+-- The parameter @border@ is a @CheckedInt32@.
+--
+-- The length of @bits@ should be @imageSize@.
+
+
+glCompressedMultiTexImage3DEXT :: MonadIO m => GLenum -> GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> m ()
+glCompressedMultiTexImage3DEXT = ffienumenumintenumsizeisizeisizeiintsizeiPtrVIOV glCompressedMultiTexImage3DEXTFunPtr
+
+glCompressedMultiTexImage3DEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> IO ())
+glCompressedMultiTexImage3DEXTFunPtr = unsafePerformIO (getProcAddress "glCompressedMultiTexImage3DEXT")
+
+{-# NOINLINE glCompressedMultiTexImage3DEXTFunPtr #-}
+
+-- | Usage: @'glCompressedMultiTexSubImage1DEXT' texunit target level xoffset width format imageSize bits@
+--
+-- The parameter @texunit@ is a @TextureUnit@.
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @xoffset@ is a @CheckedInt32@.
+--
+-- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Raw.Extension.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_ALPHA', 'Graphics.GL.Raw.Internal.Shared.GL_BLUE', 'Graphics.GL.Raw.Extension.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Raw.Extension.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Raw.Internal.Shared.GL_GREEN', 'Graphics.GL.Raw.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Raw.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Raw.Internal.Shared.GL_RED', 'Graphics.GL.Raw.Extension.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_RGB', 'Graphics.GL.Raw.Internal.Shared.GL_RGBA', 'Graphics.GL.Raw.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Raw.Extension.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
+--
+-- The length of @bits@ should be @imageSize@.
+
+
+glCompressedMultiTexSubImage1DEXT :: MonadIO m => GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr () -> m ()
+glCompressedMultiTexSubImage1DEXT = ffienumenumintintsizeienumsizeiPtrVIOV glCompressedMultiTexSubImage1DEXTFunPtr
+
+glCompressedMultiTexSubImage1DEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ())
+glCompressedMultiTexSubImage1DEXTFunPtr = unsafePerformIO (getProcAddress "glCompressedMultiTexSubImage1DEXT")
+
+{-# NOINLINE glCompressedMultiTexSubImage1DEXTFunPtr #-}
+
+-- | Usage: @'glCompressedMultiTexSubImage2DEXT' texunit target level xoffset yoffset width height format imageSize bits@
+--
+-- The parameter @texunit@ is a @TextureUnit@.
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @xoffset@ is a @CheckedInt32@.
+--
+-- The parameter @yoffset@ is a @CheckedInt32@.
+--
+-- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Raw.Extension.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_ALPHA', 'Graphics.GL.Raw.Internal.Shared.GL_BLUE', 'Graphics.GL.Raw.Extension.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Raw.Extension.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Raw.Internal.Shared.GL_GREEN', 'Graphics.GL.Raw.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Raw.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Raw.Internal.Shared.GL_RED', 'Graphics.GL.Raw.Extension.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_RGB', 'Graphics.GL.Raw.Internal.Shared.GL_RGBA', 'Graphics.GL.Raw.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Raw.Extension.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
+--
+-- The length of @bits@ should be @imageSize@.
+
+
+glCompressedMultiTexSubImage2DEXT :: MonadIO m => GLenum -> GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> m ()
+glCompressedMultiTexSubImage2DEXT = ffienumenumintintintsizeisizeienumsizeiPtrVIOV glCompressedMultiTexSubImage2DEXTFunPtr
+
+glCompressedMultiTexSubImage2DEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ())
+glCompressedMultiTexSubImage2DEXTFunPtr = unsafePerformIO (getProcAddress "glCompressedMultiTexSubImage2DEXT")
+
+{-# NOINLINE glCompressedMultiTexSubImage2DEXTFunPtr #-}
+
+-- | Usage: @'glCompressedMultiTexSubImage3DEXT' texunit target level xoffset yoffset zoffset width height depth format imageSize bits@
+--
+-- The parameter @texunit@ is a @TextureUnit@.
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @xoffset@ is a @CheckedInt32@.
+--
+-- The parameter @yoffset@ is a @CheckedInt32@.
+--
+-- The parameter @zoffset@ is a @CheckedInt32@.
+--
+-- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Raw.Extension.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_ALPHA', 'Graphics.GL.Raw.Internal.Shared.GL_BLUE', 'Graphics.GL.Raw.Extension.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Raw.Extension.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Raw.Internal.Shared.GL_GREEN', 'Graphics.GL.Raw.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Raw.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Raw.Internal.Shared.GL_RED', 'Graphics.GL.Raw.Extension.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_RGB', 'Graphics.GL.Raw.Internal.Shared.GL_RGBA', 'Graphics.GL.Raw.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Raw.Extension.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
+--
+-- The length of @bits@ should be @imageSize@.
+
+
+glCompressedMultiTexSubImage3DEXT :: MonadIO m => GLenum -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> m ()
+glCompressedMultiTexSubImage3DEXT = ffienumenumintintintintsizeisizeisizeienumsizeiPtrVIOV glCompressedMultiTexSubImage3DEXTFunPtr
+
+glCompressedMultiTexSubImage3DEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ())
+glCompressedMultiTexSubImage3DEXTFunPtr = unsafePerformIO (getProcAddress "glCompressedMultiTexSubImage3DEXT")
+
+{-# NOINLINE glCompressedMultiTexSubImage3DEXTFunPtr #-}
+
+-- | Usage: @'glCompressedTextureImage1DEXT' texture target level internalformat width border imageSize bits@
+--
+-- The parameter @texture@ is a @Texture@.
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @internalformat@ is a @TextureInternalFormat@.
+--
+-- The parameter @border@ is a @CheckedInt32@.
+--
+-- The length of @bits@ should be @imageSize@.
+
+
+glCompressedTextureImage1DEXT :: MonadIO m => GLuint -> GLenum -> GLint -> GLenum -> GLsizei -> GLint -> GLsizei -> Ptr () -> m ()
+glCompressedTextureImage1DEXT = ffiuintenumintenumsizeiintsizeiPtrVIOV glCompressedTextureImage1DEXTFunPtr
+
+glCompressedTextureImage1DEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> GLenum -> GLsizei -> GLint -> GLsizei -> Ptr () -> IO ())
+glCompressedTextureImage1DEXTFunPtr = unsafePerformIO (getProcAddress "glCompressedTextureImage1DEXT")
+
+{-# NOINLINE glCompressedTextureImage1DEXTFunPtr #-}
+
+-- | Usage: @'glCompressedTextureImage2DEXT' texture target level internalformat width height border imageSize bits@
+--
+-- The parameter @texture@ is a @Texture@.
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @internalformat@ is a @TextureInternalFormat@.
+--
+-- The parameter @border@ is a @CheckedInt32@.
+--
+-- The length of @bits@ should be @imageSize@.
+
+
+glCompressedTextureImage2DEXT :: MonadIO m => GLuint -> GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> m ()
+glCompressedTextureImage2DEXT = ffiuintenumintenumsizeisizeiintsizeiPtrVIOV glCompressedTextureImage2DEXTFunPtr
+
+glCompressedTextureImage2DEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> IO ())
+glCompressedTextureImage2DEXTFunPtr = unsafePerformIO (getProcAddress "glCompressedTextureImage2DEXT")
+
+{-# NOINLINE glCompressedTextureImage2DEXTFunPtr #-}
+
+-- | Usage: @'glCompressedTextureImage3DEXT' texture target level internalformat width height depth border imageSize bits@
+--
+-- The parameter @texture@ is a @Texture@.
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @internalformat@ is a @TextureInternalFormat@.
+--
+-- The parameter @border@ is a @CheckedInt32@.
+--
+-- The length of @bits@ should be @imageSize@.
+
+
+glCompressedTextureImage3DEXT :: MonadIO m => GLuint -> GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> m ()
+glCompressedTextureImage3DEXT = ffiuintenumintenumsizeisizeisizeiintsizeiPtrVIOV glCompressedTextureImage3DEXTFunPtr
+
+glCompressedTextureImage3DEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> IO ())
+glCompressedTextureImage3DEXTFunPtr = unsafePerformIO (getProcAddress "glCompressedTextureImage3DEXT")
+
+{-# NOINLINE glCompressedTextureImage3DEXTFunPtr #-}
+
+-- | Usage: @'glCompressedTextureSubImage1DEXT' texture target level xoffset width format imageSize bits@
+--
+-- The parameter @texture@ is a @Texture@.
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @xoffset@ is a @CheckedInt32@.
+--
+-- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Raw.Extension.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_ALPHA', 'Graphics.GL.Raw.Internal.Shared.GL_BLUE', 'Graphics.GL.Raw.Extension.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Raw.Extension.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Raw.Internal.Shared.GL_GREEN', 'Graphics.GL.Raw.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Raw.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Raw.Internal.Shared.GL_RED', 'Graphics.GL.Raw.Extension.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_RGB', 'Graphics.GL.Raw.Internal.Shared.GL_RGBA', 'Graphics.GL.Raw.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Raw.Extension.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
+--
+-- The length of @bits@ should be @imageSize@.
+
+
+glCompressedTextureSubImage1DEXT :: MonadIO m => GLuint -> GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr () -> m ()
+glCompressedTextureSubImage1DEXT = ffiuintenumintintsizeienumsizeiPtrVIOV glCompressedTextureSubImage1DEXTFunPtr
+
+glCompressedTextureSubImage1DEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ())
+glCompressedTextureSubImage1DEXTFunPtr = unsafePerformIO (getProcAddress "glCompressedTextureSubImage1DEXT")
+
+{-# NOINLINE glCompressedTextureSubImage1DEXTFunPtr #-}
+
+-- | Usage: @'glCompressedTextureSubImage2DEXT' texture target level xoffset yoffset width height format imageSize bits@
+--
+-- The parameter @texture@ is a @Texture@.
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @xoffset@ is a @CheckedInt32@.
+--
+-- The parameter @yoffset@ is a @CheckedInt32@.
+--
+-- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Raw.Extension.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_ALPHA', 'Graphics.GL.Raw.Internal.Shared.GL_BLUE', 'Graphics.GL.Raw.Extension.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Raw.Extension.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Raw.Internal.Shared.GL_GREEN', 'Graphics.GL.Raw.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Raw.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Raw.Internal.Shared.GL_RED', 'Graphics.GL.Raw.Extension.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_RGB', 'Graphics.GL.Raw.Internal.Shared.GL_RGBA', 'Graphics.GL.Raw.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Raw.Extension.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
+--
+-- The length of @bits@ should be @imageSize@.
+
+
+glCompressedTextureSubImage2DEXT :: MonadIO m => GLuint -> GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> m ()
+glCompressedTextureSubImage2DEXT = ffiuintenumintintintsizeisizeienumsizeiPtrVIOV glCompressedTextureSubImage2DEXTFunPtr
+
+glCompressedTextureSubImage2DEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ())
+glCompressedTextureSubImage2DEXTFunPtr = unsafePerformIO (getProcAddress "glCompressedTextureSubImage2DEXT")
+
+{-# NOINLINE glCompressedTextureSubImage2DEXTFunPtr #-}
+
+-- | Usage: @'glCompressedTextureSubImage3DEXT' texture target level xoffset yoffset zoffset width height depth format imageSize bits@
+--
+-- The parameter @texture@ is a @Texture@.
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @xoffset@ is a @CheckedInt32@.
+--
+-- The parameter @yoffset@ is a @CheckedInt32@.
+--
+-- The parameter @zoffset@ is a @CheckedInt32@.
+--
+-- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Raw.Extension.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_ALPHA', 'Graphics.GL.Raw.Internal.Shared.GL_BLUE', 'Graphics.GL.Raw.Extension.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Raw.Extension.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Raw.Internal.Shared.GL_GREEN', 'Graphics.GL.Raw.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Raw.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Raw.Internal.Shared.GL_RED', 'Graphics.GL.Raw.Extension.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_RGB', 'Graphics.GL.Raw.Internal.Shared.GL_RGBA', 'Graphics.GL.Raw.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Raw.Extension.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
+--
+-- The length of @bits@ should be @imageSize@.
+
+
+glCompressedTextureSubImage3DEXT :: MonadIO m => GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> m ()
+glCompressedTextureSubImage3DEXT = ffiuintenumintintintintsizeisizeisizeienumsizeiPtrVIOV glCompressedTextureSubImage3DEXTFunPtr
+
+glCompressedTextureSubImage3DEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ())
+glCompressedTextureSubImage3DEXTFunPtr = unsafePerformIO (getProcAddress "glCompressedTextureSubImage3DEXT")
+
+{-# NOINLINE glCompressedTextureSubImage3DEXTFunPtr #-}
+
+-- | Usage: @'glCopyMultiTexImage1DEXT' texunit target level internalformat x y width border@
+--
+-- The parameter @texunit@ is a @TextureUnit@.
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @internalformat@ is a @TextureInternalFormat@.
+--
+-- The parameter @x@ is a @WinCoord@.
+--
+-- The parameter @y@ is a @WinCoord@.
+--
+-- The parameter @border@ is a @CheckedInt32@.
+
+
+glCopyMultiTexImage1DEXT :: MonadIO m => GLenum -> GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> m ()
+glCopyMultiTexImage1DEXT = ffienumenumintenumintintsizeiintIOV glCopyMultiTexImage1DEXTFunPtr
+
+glCopyMultiTexImage1DEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> IO ())
+glCopyMultiTexImage1DEXTFunPtr = unsafePerformIO (getProcAddress "glCopyMultiTexImage1DEXT")
+
+{-# NOINLINE glCopyMultiTexImage1DEXTFunPtr #-}
+
+-- | Usage: @'glCopyMultiTexImage2DEXT' texunit target level internalformat x y width height border@
+--
+-- The parameter @texunit@ is a @TextureUnit@.
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @internalformat@ is a @TextureInternalFormat@.
+--
+-- The parameter @x@ is a @WinCoord@.
+--
+-- The parameter @y@ is a @WinCoord@.
+--
+-- The parameter @border@ is a @CheckedInt32@.
+
+
+glCopyMultiTexImage2DEXT :: MonadIO m => GLenum -> GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> m ()
+glCopyMultiTexImage2DEXT = ffienumenumintenumintintsizeisizeiintIOV glCopyMultiTexImage2DEXTFunPtr
+
+glCopyMultiTexImage2DEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> IO ())
+glCopyMultiTexImage2DEXTFunPtr = unsafePerformIO (getProcAddress "glCopyMultiTexImage2DEXT")
+
+{-# NOINLINE glCopyMultiTexImage2DEXTFunPtr #-}
+
+-- | Usage: @'glCopyMultiTexSubImage1DEXT' texunit target level xoffset x y width@
+--
+-- The parameter @texunit@ is a @TextureUnit@.
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @xoffset@ is a @CheckedInt32@.
+--
+-- The parameter @x@ is a @WinCoord@.
+--
+-- The parameter @y@ is a @WinCoord@.
+
+
+glCopyMultiTexSubImage1DEXT :: MonadIO m => GLenum -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> m ()
+glCopyMultiTexSubImage1DEXT = ffienumenumintintintintsizeiIOV glCopyMultiTexSubImage1DEXTFunPtr
+
+glCopyMultiTexSubImage1DEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> IO ())
+glCopyMultiTexSubImage1DEXTFunPtr = unsafePerformIO (getProcAddress "glCopyMultiTexSubImage1DEXT")
+
+{-# NOINLINE glCopyMultiTexSubImage1DEXTFunPtr #-}
+
+-- | Usage: @'glCopyMultiTexSubImage2DEXT' texunit target level xoffset yoffset x y width height@
+--
+-- The parameter @texunit@ is a @TextureUnit@.
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @xoffset@ is a @CheckedInt32@.
+--
+-- The parameter @yoffset@ is a @CheckedInt32@.
+--
+-- The parameter @x@ is a @WinCoord@.
+--
+-- The parameter @y@ is a @WinCoord@.
+
+
+glCopyMultiTexSubImage2DEXT :: MonadIO m => GLenum -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()
+glCopyMultiTexSubImage2DEXT = ffienumenumintintintintintsizeisizeiIOV glCopyMultiTexSubImage2DEXTFunPtr
+
+glCopyMultiTexSubImage2DEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ())
+glCopyMultiTexSubImage2DEXTFunPtr = unsafePerformIO (getProcAddress "glCopyMultiTexSubImage2DEXT")
+
+{-# NOINLINE glCopyMultiTexSubImage2DEXTFunPtr #-}
+
+-- | Usage: @'glCopyMultiTexSubImage3DEXT' texunit target level xoffset yoffset zoffset x y width height@
+--
+-- The parameter @texunit@ is a @TextureUnit@.
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @xoffset@ is a @CheckedInt32@.
+--
+-- The parameter @yoffset@ is a @CheckedInt32@.
+--
+-- The parameter @zoffset@ is a @CheckedInt32@.
+--
+-- The parameter @x@ is a @WinCoord@.
+--
+-- The parameter @y@ is a @WinCoord@.
+
+
+glCopyMultiTexSubImage3DEXT :: MonadIO m => GLenum -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()
+glCopyMultiTexSubImage3DEXT = ffienumenumintintintintintintsizeisizeiIOV glCopyMultiTexSubImage3DEXTFunPtr
+
+glCopyMultiTexSubImage3DEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ())
+glCopyMultiTexSubImage3DEXTFunPtr = unsafePerformIO (getProcAddress "glCopyMultiTexSubImage3DEXT")
+
+{-# NOINLINE glCopyMultiTexSubImage3DEXTFunPtr #-}
+
+-- | Usage: @'glCopyTextureImage1DEXT' texture target level internalformat x y width border@
+--
+-- The parameter @texture@ is a @Texture@.
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @internalformat@ is a @TextureInternalFormat@.
+--
+-- The parameter @x@ is a @WinCoord@.
+--
+-- The parameter @y@ is a @WinCoord@.
+--
+-- The parameter @border@ is a @CheckedInt32@.
+
+
+glCopyTextureImage1DEXT :: MonadIO m => GLuint -> GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> m ()
+glCopyTextureImage1DEXT = ffiuintenumintenumintintsizeiintIOV glCopyTextureImage1DEXTFunPtr
+
+glCopyTextureImage1DEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> IO ())
+glCopyTextureImage1DEXTFunPtr = unsafePerformIO (getProcAddress "glCopyTextureImage1DEXT")
+
+{-# NOINLINE glCopyTextureImage1DEXTFunPtr #-}
+
+-- | Usage: @'glCopyTextureImage2DEXT' texture target level internalformat x y width height border@
+--
+-- The parameter @texture@ is a @Texture@.
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @internalformat@ is a @TextureInternalFormat@.
+--
+-- The parameter @x@ is a @WinCoord@.
+--
+-- The parameter @y@ is a @WinCoord@.
+--
+-- The parameter @border@ is a @CheckedInt32@.
+
+
+glCopyTextureImage2DEXT :: MonadIO m => GLuint -> GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> m ()
+glCopyTextureImage2DEXT = ffiuintenumintenumintintsizeisizeiintIOV glCopyTextureImage2DEXTFunPtr
+
+glCopyTextureImage2DEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> IO ())
+glCopyTextureImage2DEXTFunPtr = unsafePerformIO (getProcAddress "glCopyTextureImage2DEXT")
+
+{-# NOINLINE glCopyTextureImage2DEXTFunPtr #-}
+
+-- | Usage: @'glCopyTextureSubImage1DEXT' texture target level xoffset x y width@
+--
+-- The parameter @texture@ is a @Texture@.
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @xoffset@ is a @CheckedInt32@.
+--
+-- The parameter @x@ is a @WinCoord@.
+--
+-- The parameter @y@ is a @WinCoord@.
+
+
+glCopyTextureSubImage1DEXT :: MonadIO m => GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> m ()
+glCopyTextureSubImage1DEXT = ffiuintenumintintintintsizeiIOV glCopyTextureSubImage1DEXTFunPtr
+
+glCopyTextureSubImage1DEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> IO ())
+glCopyTextureSubImage1DEXTFunPtr = unsafePerformIO (getProcAddress "glCopyTextureSubImage1DEXT")
+
+{-# NOINLINE glCopyTextureSubImage1DEXTFunPtr #-}
+
+-- | Usage: @'glCopyTextureSubImage2DEXT' texture target level xoffset yoffset x y width height@
+--
+-- The parameter @texture@ is a @Texture@.
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @xoffset@ is a @CheckedInt32@.
+--
+-- The parameter @yoffset@ is a @CheckedInt32@.
+--
+-- The parameter @x@ is a @WinCoord@.
+--
+-- The parameter @y@ is a @WinCoord@.
+
+
+glCopyTextureSubImage2DEXT :: MonadIO m => GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()
+glCopyTextureSubImage2DEXT = ffiuintenumintintintintintsizeisizeiIOV glCopyTextureSubImage2DEXTFunPtr
+
+glCopyTextureSubImage2DEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ())
+glCopyTextureSubImage2DEXTFunPtr = unsafePerformIO (getProcAddress "glCopyTextureSubImage2DEXT")
+
+{-# NOINLINE glCopyTextureSubImage2DEXTFunPtr #-}
+
+-- | Usage: @'glCopyTextureSubImage3DEXT' texture target level xoffset yoffset zoffset x y width height@
+--
+-- The parameter @texture@ is a @Texture@.
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @xoffset@ is a @CheckedInt32@.
+--
+-- The parameter @yoffset@ is a @CheckedInt32@.
+--
+-- The parameter @zoffset@ is a @CheckedInt32@.
+--
+-- The parameter @x@ is a @WinCoord@.
+--
+-- The parameter @y@ is a @WinCoord@.
+
+
+glCopyTextureSubImage3DEXT :: MonadIO m => GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()
+glCopyTextureSubImage3DEXT = ffiuintenumintintintintintintsizeisizeiIOV glCopyTextureSubImage3DEXTFunPtr
+
+glCopyTextureSubImage3DEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ())
+glCopyTextureSubImage3DEXTFunPtr = unsafePerformIO (getProcAddress "glCopyTextureSubImage3DEXT")
+
+{-# NOINLINE glCopyTextureSubImage3DEXTFunPtr #-}
+
+-- | Usage: @'glDisableClientStateIndexedEXT' array index@
+--
+-- The parameter @array@ is a @EnableCap@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_ALPHA_TEST', 'Graphics.GL.Raw.Extension.SGIX.AsyncPixel.GL_ASYNC_DRAW_PIXELS_SGIX', 'Graphics.GL.Raw.Extension.SGIX.AsyncHistogram.GL_ASYNC_HISTOGRAM_SGIX', 'Graphics.GL.Raw.Extension.SGIX.AsyncPixel.GL_ASYNC_READ_PIXELS_SGIX', 'Graphics.GL.Raw.Extension.SGIX.AsyncPixel.GL_ASYNC_TEX_IMAGE_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_AUTO_NORMAL', 'Graphics.GL.Raw.Internal.Shared.GL_BLEND', 'Graphics.GL.Raw.Extension.SGIX.CalligraphicFragment.GL_CALLIGRAPHIC_FRAGMENT_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_CLIP_PLANE0', 'Graphics.GL.Raw.Internal.Shared.GL_CLIP_PLANE1', 'Graphics.GL.Raw.Internal.Shared.GL_CLIP_PLANE2', 'Graphics.GL.Raw.Internal.Shared.GL_CLIP_PLANE3', 'Graphics.GL.Raw.Internal.Shared.GL_CLIP_PLANE4', 'Graphics.GL.Raw.Internal.Shared.GL_CLIP_PLANE5', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_ARRAY', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_LOGIC_OP', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_MATERIAL', 'Graphics.GL.Raw.Extension.SGI.ColorTable.GL_COLOR_TABLE_SGI', 'Graphics.GL.Raw.Extension.EXT.Convolution.GL_CONVOLUTION_1D_EXT', 'Graphics.GL.Raw.Extension.EXT.Convolution.GL_CONVOLUTION_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_CULL_FACE', 'Graphics.GL.Raw.Internal.Shared.GL_DEPTH_TEST', 'Graphics.GL.Raw.Internal.Shared.GL_DITHER', 'Graphics.GL.Raw.Internal.Shared.GL_EDGE_FLAG_ARRAY', 'Graphics.GL.Raw.Internal.Shared.GL_FOG', 'Graphics.GL.Raw.Extension.SGIX.FogOffset.GL_FOG_OFFSET_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_COLOR_MATERIAL_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT0_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT1_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT2_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT3_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT4_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT5_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT6_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT7_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHTING_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Framezoom.GL_FRAMEZOOM_SGIX', 'Graphics.GL.Raw.Extension.EXT.Histogram.GL_HISTOGRAM_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_INDEX_ARRAY', 'Graphics.GL.Raw.Internal.Shared.GL_INDEX_LOGIC_OP', 'Graphics.GL.Raw.Extension.SGIX.Interlace.GL_INTERLACE_SGIX', 'Graphics.GL.Raw.Extension.SGIX.IrInstrument1.GL_IR_INSTRUMENT1_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT0', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT1', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT2', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT3', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT4', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT5', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT6', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT7', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHTING', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_SMOOTH', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_STIPPLE', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_COLOR_4', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_NORMAL', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_TEXTURE_COORD_1', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_TEXTURE_COORD_2', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_TEXTURE_COORD_3', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_TEXTURE_COORD_4', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_VERTEX_3', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_VERTEX_4', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_COLOR_4', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_NORMAL', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_TEXTURE_COORD_1', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_TEXTURE_COORD_2', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_TEXTURE_COORD_3', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_TEXTURE_COORD_4', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_VERTEX_3', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_VERTEX_4', 'Graphics.GL.Raw.Extension.EXT.Histogram.GL_MINMAX_EXT', 'Graphics.GL.Raw.Extension.SGIS.Multisample.GL_MULTISAMPLE_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_NORMALIZE', 'Graphics.GL.Raw.Internal.Shared.GL_NORMAL_ARRAY', 'Graphics.GL.Raw.Extension.SGIS.PixelTexture.GL_PIXEL_TEXTURE_SGIS', 'Graphics.GL.Raw.Extension.SGIX.PixelTexture.GL_PIXEL_TEX_GEN_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_POINT_SMOOTH', 'Graphics.GL.Raw.Internal.Shared.GL_POLYGON_OFFSET_FILL', 'Graphics.GL.Raw.Internal.Shared.GL_POLYGON_OFFSET_LINE', 'Graphics.GL.Raw.Internal.Shared.GL_POLYGON_OFFSET_POINT', 'Graphics.GL.Raw.Internal.Shared.GL_POLYGON_SMOOTH', 'Graphics.GL.Raw.Internal.Shared.GL_POLYGON_STIPPLE', 'Graphics.GL.Raw.Extension.SGI.ColorTable.GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI', 'Graphics.GL.Raw.Extension.SGI.ColorTable.GL_POST_CONVOLUTION_COLOR_TABLE_SGI', 'Graphics.GL.Raw.Extension.SGIX.ReferencePlane.GL_REFERENCE_PLANE_SGIX', 'Graphics.GL.Raw.Extension.EXT.RescaleNormal.GL_RESCALE_NORMAL_EXT', 'Graphics.GL.Raw.Extension.SGIS.Multisample.GL_SAMPLE_ALPHA_TO_MASK_SGIS', 'Graphics.GL.Raw.Extension.SGIS.Multisample.GL_SAMPLE_ALPHA_TO_ONE_SGIS', 'Graphics.GL.Raw.Extension.SGIS.Multisample.GL_SAMPLE_MASK_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_SCISSOR_TEST', 'Graphics.GL.Raw.Extension.EXT.Convolution.GL_SEPARABLE_2D_EXT', 'Graphics.GL.Raw.Extension.EXT.SharedTexturePalette.GL_SHARED_TEXTURE_PALETTE_EXT', 'Graphics.GL.Raw.Extension.SGIX.Sprite.GL_SPRITE_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_STENCIL_TEST', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Extension.SGI.TextureColorTable.GL_TEXTURE_COLOR_TABLE_SGI', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_COORD_ARRAY', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_GEN_Q', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_GEN_R', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_GEN_S', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_GEN_T', 'Graphics.GL.Raw.Internal.Shared.GL_VERTEX_ARRAY'.
+
+
+glDisableClientStateIndexedEXT :: MonadIO m => GLenum -> GLuint -> m ()
+glDisableClientStateIndexedEXT = ffienumuintIOV glDisableClientStateIndexedEXTFunPtr
+
+glDisableClientStateIndexedEXTFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
+glDisableClientStateIndexedEXTFunPtr = unsafePerformIO (getProcAddress "glDisableClientStateIndexedEXT")
+
+{-# NOINLINE glDisableClientStateIndexedEXTFunPtr #-}
+
+-- | Usage: @'glDisableClientStateiEXT' array index@
+--
+-- The parameter @array@ is a @EnableCap@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_ALPHA_TEST', 'Graphics.GL.Raw.Extension.SGIX.AsyncPixel.GL_ASYNC_DRAW_PIXELS_SGIX', 'Graphics.GL.Raw.Extension.SGIX.AsyncHistogram.GL_ASYNC_HISTOGRAM_SGIX', 'Graphics.GL.Raw.Extension.SGIX.AsyncPixel.GL_ASYNC_READ_PIXELS_SGIX', 'Graphics.GL.Raw.Extension.SGIX.AsyncPixel.GL_ASYNC_TEX_IMAGE_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_AUTO_NORMAL', 'Graphics.GL.Raw.Internal.Shared.GL_BLEND', 'Graphics.GL.Raw.Extension.SGIX.CalligraphicFragment.GL_CALLIGRAPHIC_FRAGMENT_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_CLIP_PLANE0', 'Graphics.GL.Raw.Internal.Shared.GL_CLIP_PLANE1', 'Graphics.GL.Raw.Internal.Shared.GL_CLIP_PLANE2', 'Graphics.GL.Raw.Internal.Shared.GL_CLIP_PLANE3', 'Graphics.GL.Raw.Internal.Shared.GL_CLIP_PLANE4', 'Graphics.GL.Raw.Internal.Shared.GL_CLIP_PLANE5', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_ARRAY', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_LOGIC_OP', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_MATERIAL', 'Graphics.GL.Raw.Extension.SGI.ColorTable.GL_COLOR_TABLE_SGI', 'Graphics.GL.Raw.Extension.EXT.Convolution.GL_CONVOLUTION_1D_EXT', 'Graphics.GL.Raw.Extension.EXT.Convolution.GL_CONVOLUTION_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_CULL_FACE', 'Graphics.GL.Raw.Internal.Shared.GL_DEPTH_TEST', 'Graphics.GL.Raw.Internal.Shared.GL_DITHER', 'Graphics.GL.Raw.Internal.Shared.GL_EDGE_FLAG_ARRAY', 'Graphics.GL.Raw.Internal.Shared.GL_FOG', 'Graphics.GL.Raw.Extension.SGIX.FogOffset.GL_FOG_OFFSET_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_COLOR_MATERIAL_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT0_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT1_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT2_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT3_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT4_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT5_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT6_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT7_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHTING_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Framezoom.GL_FRAMEZOOM_SGIX', 'Graphics.GL.Raw.Extension.EXT.Histogram.GL_HISTOGRAM_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_INDEX_ARRAY', 'Graphics.GL.Raw.Internal.Shared.GL_INDEX_LOGIC_OP', 'Graphics.GL.Raw.Extension.SGIX.Interlace.GL_INTERLACE_SGIX', 'Graphics.GL.Raw.Extension.SGIX.IrInstrument1.GL_IR_INSTRUMENT1_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT0', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT1', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT2', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT3', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT4', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT5', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT6', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT7', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHTING', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_SMOOTH', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_STIPPLE', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_COLOR_4', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_NORMAL', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_TEXTURE_COORD_1', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_TEXTURE_COORD_2', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_TEXTURE_COORD_3', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_TEXTURE_COORD_4', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_VERTEX_3', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_VERTEX_4', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_COLOR_4', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_NORMAL', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_TEXTURE_COORD_1', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_TEXTURE_COORD_2', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_TEXTURE_COORD_3', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_TEXTURE_COORD_4', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_VERTEX_3', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_VERTEX_4', 'Graphics.GL.Raw.Extension.EXT.Histogram.GL_MINMAX_EXT', 'Graphics.GL.Raw.Extension.SGIS.Multisample.GL_MULTISAMPLE_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_NORMALIZE', 'Graphics.GL.Raw.Internal.Shared.GL_NORMAL_ARRAY', 'Graphics.GL.Raw.Extension.SGIS.PixelTexture.GL_PIXEL_TEXTURE_SGIS', 'Graphics.GL.Raw.Extension.SGIX.PixelTexture.GL_PIXEL_TEX_GEN_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_POINT_SMOOTH', 'Graphics.GL.Raw.Internal.Shared.GL_POLYGON_OFFSET_FILL', 'Graphics.GL.Raw.Internal.Shared.GL_POLYGON_OFFSET_LINE', 'Graphics.GL.Raw.Internal.Shared.GL_POLYGON_OFFSET_POINT', 'Graphics.GL.Raw.Internal.Shared.GL_POLYGON_SMOOTH', 'Graphics.GL.Raw.Internal.Shared.GL_POLYGON_STIPPLE', 'Graphics.GL.Raw.Extension.SGI.ColorTable.GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI', 'Graphics.GL.Raw.Extension.SGI.ColorTable.GL_POST_CONVOLUTION_COLOR_TABLE_SGI', 'Graphics.GL.Raw.Extension.SGIX.ReferencePlane.GL_REFERENCE_PLANE_SGIX', 'Graphics.GL.Raw.Extension.EXT.RescaleNormal.GL_RESCALE_NORMAL_EXT', 'Graphics.GL.Raw.Extension.SGIS.Multisample.GL_SAMPLE_ALPHA_TO_MASK_SGIS', 'Graphics.GL.Raw.Extension.SGIS.Multisample.GL_SAMPLE_ALPHA_TO_ONE_SGIS', 'Graphics.GL.Raw.Extension.SGIS.Multisample.GL_SAMPLE_MASK_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_SCISSOR_TEST', 'Graphics.GL.Raw.Extension.EXT.Convolution.GL_SEPARABLE_2D_EXT', 'Graphics.GL.Raw.Extension.EXT.SharedTexturePalette.GL_SHARED_TEXTURE_PALETTE_EXT', 'Graphics.GL.Raw.Extension.SGIX.Sprite.GL_SPRITE_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_STENCIL_TEST', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Extension.SGI.TextureColorTable.GL_TEXTURE_COLOR_TABLE_SGI', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_COORD_ARRAY', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_GEN_Q', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_GEN_R', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_GEN_S', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_GEN_T', 'Graphics.GL.Raw.Internal.Shared.GL_VERTEX_ARRAY'.
+
+
+glDisableClientStateiEXT :: MonadIO m => GLenum -> GLuint -> m ()
+glDisableClientStateiEXT = ffienumuintIOV glDisableClientStateiEXTFunPtr
+
+glDisableClientStateiEXTFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
+glDisableClientStateiEXTFunPtr = unsafePerformIO (getProcAddress "glDisableClientStateiEXT")
+
+{-# NOINLINE glDisableClientStateiEXTFunPtr #-}
+
+-- | Usage: @'glDisableVertexArrayAttribEXT' vaobj index@
+
+
+glDisableVertexArrayAttribEXT :: MonadIO m => GLuint -> GLuint -> m ()
+glDisableVertexArrayAttribEXT = ffiuintuintIOV glDisableVertexArrayAttribEXTFunPtr
+
+glDisableVertexArrayAttribEXTFunPtr :: FunPtr (GLuint -> GLuint -> IO ())
+glDisableVertexArrayAttribEXTFunPtr = unsafePerformIO (getProcAddress "glDisableVertexArrayAttribEXT")
+
+{-# NOINLINE glDisableVertexArrayAttribEXTFunPtr #-}
+
+-- | Usage: @'glDisableVertexArrayEXT' vaobj array@
+--
+-- The parameter @array@ is a @EnableCap@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_ALPHA_TEST', 'Graphics.GL.Raw.Extension.SGIX.AsyncPixel.GL_ASYNC_DRAW_PIXELS_SGIX', 'Graphics.GL.Raw.Extension.SGIX.AsyncHistogram.GL_ASYNC_HISTOGRAM_SGIX', 'Graphics.GL.Raw.Extension.SGIX.AsyncPixel.GL_ASYNC_READ_PIXELS_SGIX', 'Graphics.GL.Raw.Extension.SGIX.AsyncPixel.GL_ASYNC_TEX_IMAGE_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_AUTO_NORMAL', 'Graphics.GL.Raw.Internal.Shared.GL_BLEND', 'Graphics.GL.Raw.Extension.SGIX.CalligraphicFragment.GL_CALLIGRAPHIC_FRAGMENT_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_CLIP_PLANE0', 'Graphics.GL.Raw.Internal.Shared.GL_CLIP_PLANE1', 'Graphics.GL.Raw.Internal.Shared.GL_CLIP_PLANE2', 'Graphics.GL.Raw.Internal.Shared.GL_CLIP_PLANE3', 'Graphics.GL.Raw.Internal.Shared.GL_CLIP_PLANE4', 'Graphics.GL.Raw.Internal.Shared.GL_CLIP_PLANE5', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_ARRAY', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_LOGIC_OP', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_MATERIAL', 'Graphics.GL.Raw.Extension.SGI.ColorTable.GL_COLOR_TABLE_SGI', 'Graphics.GL.Raw.Extension.EXT.Convolution.GL_CONVOLUTION_1D_EXT', 'Graphics.GL.Raw.Extension.EXT.Convolution.GL_CONVOLUTION_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_CULL_FACE', 'Graphics.GL.Raw.Internal.Shared.GL_DEPTH_TEST', 'Graphics.GL.Raw.Internal.Shared.GL_DITHER', 'Graphics.GL.Raw.Internal.Shared.GL_EDGE_FLAG_ARRAY', 'Graphics.GL.Raw.Internal.Shared.GL_FOG', 'Graphics.GL.Raw.Extension.SGIX.FogOffset.GL_FOG_OFFSET_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_COLOR_MATERIAL_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT0_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT1_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT2_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT3_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT4_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT5_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT6_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT7_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHTING_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Framezoom.GL_FRAMEZOOM_SGIX', 'Graphics.GL.Raw.Extension.EXT.Histogram.GL_HISTOGRAM_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_INDEX_ARRAY', 'Graphics.GL.Raw.Internal.Shared.GL_INDEX_LOGIC_OP', 'Graphics.GL.Raw.Extension.SGIX.Interlace.GL_INTERLACE_SGIX', 'Graphics.GL.Raw.Extension.SGIX.IrInstrument1.GL_IR_INSTRUMENT1_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT0', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT1', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT2', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT3', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT4', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT5', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT6', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT7', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHTING', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_SMOOTH', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_STIPPLE', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_COLOR_4', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_NORMAL', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_TEXTURE_COORD_1', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_TEXTURE_COORD_2', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_TEXTURE_COORD_3', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_TEXTURE_COORD_4', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_VERTEX_3', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_VERTEX_4', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_COLOR_4', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_NORMAL', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_TEXTURE_COORD_1', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_TEXTURE_COORD_2', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_TEXTURE_COORD_3', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_TEXTURE_COORD_4', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_VERTEX_3', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_VERTEX_4', 'Graphics.GL.Raw.Extension.EXT.Histogram.GL_MINMAX_EXT', 'Graphics.GL.Raw.Extension.SGIS.Multisample.GL_MULTISAMPLE_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_NORMALIZE', 'Graphics.GL.Raw.Internal.Shared.GL_NORMAL_ARRAY', 'Graphics.GL.Raw.Extension.SGIS.PixelTexture.GL_PIXEL_TEXTURE_SGIS', 'Graphics.GL.Raw.Extension.SGIX.PixelTexture.GL_PIXEL_TEX_GEN_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_POINT_SMOOTH', 'Graphics.GL.Raw.Internal.Shared.GL_POLYGON_OFFSET_FILL', 'Graphics.GL.Raw.Internal.Shared.GL_POLYGON_OFFSET_LINE', 'Graphics.GL.Raw.Internal.Shared.GL_POLYGON_OFFSET_POINT', 'Graphics.GL.Raw.Internal.Shared.GL_POLYGON_SMOOTH', 'Graphics.GL.Raw.Internal.Shared.GL_POLYGON_STIPPLE', 'Graphics.GL.Raw.Extension.SGI.ColorTable.GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI', 'Graphics.GL.Raw.Extension.SGI.ColorTable.GL_POST_CONVOLUTION_COLOR_TABLE_SGI', 'Graphics.GL.Raw.Extension.SGIX.ReferencePlane.GL_REFERENCE_PLANE_SGIX', 'Graphics.GL.Raw.Extension.EXT.RescaleNormal.GL_RESCALE_NORMAL_EXT', 'Graphics.GL.Raw.Extension.SGIS.Multisample.GL_SAMPLE_ALPHA_TO_MASK_SGIS', 'Graphics.GL.Raw.Extension.SGIS.Multisample.GL_SAMPLE_ALPHA_TO_ONE_SGIS', 'Graphics.GL.Raw.Extension.SGIS.Multisample.GL_SAMPLE_MASK_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_SCISSOR_TEST', 'Graphics.GL.Raw.Extension.EXT.Convolution.GL_SEPARABLE_2D_EXT', 'Graphics.GL.Raw.Extension.EXT.SharedTexturePalette.GL_SHARED_TEXTURE_PALETTE_EXT', 'Graphics.GL.Raw.Extension.SGIX.Sprite.GL_SPRITE_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_STENCIL_TEST', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Extension.SGI.TextureColorTable.GL_TEXTURE_COLOR_TABLE_SGI', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_COORD_ARRAY', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_GEN_Q', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_GEN_R', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_GEN_S', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_GEN_T', 'Graphics.GL.Raw.Internal.Shared.GL_VERTEX_ARRAY'.
+
+
+glDisableVertexArrayEXT :: MonadIO m => GLuint -> GLenum -> m ()
+glDisableVertexArrayEXT = ffiuintenumIOV glDisableVertexArrayEXTFunPtr
+
+glDisableVertexArrayEXTFunPtr :: FunPtr (GLuint -> GLenum -> IO ())
+glDisableVertexArrayEXTFunPtr = unsafePerformIO (getProcAddress "glDisableVertexArrayEXT")
+
+{-# NOINLINE glDisableVertexArrayEXTFunPtr #-}
+
+-- | Usage: @'glEnableClientStateIndexedEXT' array index@
+--
+-- The parameter @array@ is a @EnableCap@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_ALPHA_TEST', 'Graphics.GL.Raw.Extension.SGIX.AsyncPixel.GL_ASYNC_DRAW_PIXELS_SGIX', 'Graphics.GL.Raw.Extension.SGIX.AsyncHistogram.GL_ASYNC_HISTOGRAM_SGIX', 'Graphics.GL.Raw.Extension.SGIX.AsyncPixel.GL_ASYNC_READ_PIXELS_SGIX', 'Graphics.GL.Raw.Extension.SGIX.AsyncPixel.GL_ASYNC_TEX_IMAGE_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_AUTO_NORMAL', 'Graphics.GL.Raw.Internal.Shared.GL_BLEND', 'Graphics.GL.Raw.Extension.SGIX.CalligraphicFragment.GL_CALLIGRAPHIC_FRAGMENT_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_CLIP_PLANE0', 'Graphics.GL.Raw.Internal.Shared.GL_CLIP_PLANE1', 'Graphics.GL.Raw.Internal.Shared.GL_CLIP_PLANE2', 'Graphics.GL.Raw.Internal.Shared.GL_CLIP_PLANE3', 'Graphics.GL.Raw.Internal.Shared.GL_CLIP_PLANE4', 'Graphics.GL.Raw.Internal.Shared.GL_CLIP_PLANE5', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_ARRAY', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_LOGIC_OP', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_MATERIAL', 'Graphics.GL.Raw.Extension.SGI.ColorTable.GL_COLOR_TABLE_SGI', 'Graphics.GL.Raw.Extension.EXT.Convolution.GL_CONVOLUTION_1D_EXT', 'Graphics.GL.Raw.Extension.EXT.Convolution.GL_CONVOLUTION_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_CULL_FACE', 'Graphics.GL.Raw.Internal.Shared.GL_DEPTH_TEST', 'Graphics.GL.Raw.Internal.Shared.GL_DITHER', 'Graphics.GL.Raw.Internal.Shared.GL_EDGE_FLAG_ARRAY', 'Graphics.GL.Raw.Internal.Shared.GL_FOG', 'Graphics.GL.Raw.Extension.SGIX.FogOffset.GL_FOG_OFFSET_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_COLOR_MATERIAL_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT0_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT1_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT2_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT3_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT4_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT5_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT6_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT7_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHTING_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Framezoom.GL_FRAMEZOOM_SGIX', 'Graphics.GL.Raw.Extension.EXT.Histogram.GL_HISTOGRAM_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_INDEX_ARRAY', 'Graphics.GL.Raw.Internal.Shared.GL_INDEX_LOGIC_OP', 'Graphics.GL.Raw.Extension.SGIX.Interlace.GL_INTERLACE_SGIX', 'Graphics.GL.Raw.Extension.SGIX.IrInstrument1.GL_IR_INSTRUMENT1_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT0', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT1', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT2', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT3', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT4', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT5', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT6', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT7', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHTING', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_SMOOTH', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_STIPPLE', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_COLOR_4', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_NORMAL', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_TEXTURE_COORD_1', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_TEXTURE_COORD_2', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_TEXTURE_COORD_3', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_TEXTURE_COORD_4', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_VERTEX_3', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_VERTEX_4', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_COLOR_4', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_NORMAL', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_TEXTURE_COORD_1', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_TEXTURE_COORD_2', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_TEXTURE_COORD_3', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_TEXTURE_COORD_4', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_VERTEX_3', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_VERTEX_4', 'Graphics.GL.Raw.Extension.EXT.Histogram.GL_MINMAX_EXT', 'Graphics.GL.Raw.Extension.SGIS.Multisample.GL_MULTISAMPLE_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_NORMALIZE', 'Graphics.GL.Raw.Internal.Shared.GL_NORMAL_ARRAY', 'Graphics.GL.Raw.Extension.SGIS.PixelTexture.GL_PIXEL_TEXTURE_SGIS', 'Graphics.GL.Raw.Extension.SGIX.PixelTexture.GL_PIXEL_TEX_GEN_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_POINT_SMOOTH', 'Graphics.GL.Raw.Internal.Shared.GL_POLYGON_OFFSET_FILL', 'Graphics.GL.Raw.Internal.Shared.GL_POLYGON_OFFSET_LINE', 'Graphics.GL.Raw.Internal.Shared.GL_POLYGON_OFFSET_POINT', 'Graphics.GL.Raw.Internal.Shared.GL_POLYGON_SMOOTH', 'Graphics.GL.Raw.Internal.Shared.GL_POLYGON_STIPPLE', 'Graphics.GL.Raw.Extension.SGI.ColorTable.GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI', 'Graphics.GL.Raw.Extension.SGI.ColorTable.GL_POST_CONVOLUTION_COLOR_TABLE_SGI', 'Graphics.GL.Raw.Extension.SGIX.ReferencePlane.GL_REFERENCE_PLANE_SGIX', 'Graphics.GL.Raw.Extension.EXT.RescaleNormal.GL_RESCALE_NORMAL_EXT', 'Graphics.GL.Raw.Extension.SGIS.Multisample.GL_SAMPLE_ALPHA_TO_MASK_SGIS', 'Graphics.GL.Raw.Extension.SGIS.Multisample.GL_SAMPLE_ALPHA_TO_ONE_SGIS', 'Graphics.GL.Raw.Extension.SGIS.Multisample.GL_SAMPLE_MASK_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_SCISSOR_TEST', 'Graphics.GL.Raw.Extension.EXT.Convolution.GL_SEPARABLE_2D_EXT', 'Graphics.GL.Raw.Extension.EXT.SharedTexturePalette.GL_SHARED_TEXTURE_PALETTE_EXT', 'Graphics.GL.Raw.Extension.SGIX.Sprite.GL_SPRITE_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_STENCIL_TEST', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Extension.SGI.TextureColorTable.GL_TEXTURE_COLOR_TABLE_SGI', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_COORD_ARRAY', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_GEN_Q', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_GEN_R', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_GEN_S', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_GEN_T', 'Graphics.GL.Raw.Internal.Shared.GL_VERTEX_ARRAY'.
+
+
+glEnableClientStateIndexedEXT :: MonadIO m => GLenum -> GLuint -> m ()
+glEnableClientStateIndexedEXT = ffienumuintIOV glEnableClientStateIndexedEXTFunPtr
+
+glEnableClientStateIndexedEXTFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
+glEnableClientStateIndexedEXTFunPtr = unsafePerformIO (getProcAddress "glEnableClientStateIndexedEXT")
+
+{-# NOINLINE glEnableClientStateIndexedEXTFunPtr #-}
+
+-- | Usage: @'glEnableClientStateiEXT' array index@
+--
+-- The parameter @array@ is a @EnableCap@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_ALPHA_TEST', 'Graphics.GL.Raw.Extension.SGIX.AsyncPixel.GL_ASYNC_DRAW_PIXELS_SGIX', 'Graphics.GL.Raw.Extension.SGIX.AsyncHistogram.GL_ASYNC_HISTOGRAM_SGIX', 'Graphics.GL.Raw.Extension.SGIX.AsyncPixel.GL_ASYNC_READ_PIXELS_SGIX', 'Graphics.GL.Raw.Extension.SGIX.AsyncPixel.GL_ASYNC_TEX_IMAGE_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_AUTO_NORMAL', 'Graphics.GL.Raw.Internal.Shared.GL_BLEND', 'Graphics.GL.Raw.Extension.SGIX.CalligraphicFragment.GL_CALLIGRAPHIC_FRAGMENT_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_CLIP_PLANE0', 'Graphics.GL.Raw.Internal.Shared.GL_CLIP_PLANE1', 'Graphics.GL.Raw.Internal.Shared.GL_CLIP_PLANE2', 'Graphics.GL.Raw.Internal.Shared.GL_CLIP_PLANE3', 'Graphics.GL.Raw.Internal.Shared.GL_CLIP_PLANE4', 'Graphics.GL.Raw.Internal.Shared.GL_CLIP_PLANE5', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_ARRAY', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_LOGIC_OP', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_MATERIAL', 'Graphics.GL.Raw.Extension.SGI.ColorTable.GL_COLOR_TABLE_SGI', 'Graphics.GL.Raw.Extension.EXT.Convolution.GL_CONVOLUTION_1D_EXT', 'Graphics.GL.Raw.Extension.EXT.Convolution.GL_CONVOLUTION_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_CULL_FACE', 'Graphics.GL.Raw.Internal.Shared.GL_DEPTH_TEST', 'Graphics.GL.Raw.Internal.Shared.GL_DITHER', 'Graphics.GL.Raw.Internal.Shared.GL_EDGE_FLAG_ARRAY', 'Graphics.GL.Raw.Internal.Shared.GL_FOG', 'Graphics.GL.Raw.Extension.SGIX.FogOffset.GL_FOG_OFFSET_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_COLOR_MATERIAL_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT0_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT1_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT2_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT3_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT4_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT5_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT6_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT7_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHTING_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Framezoom.GL_FRAMEZOOM_SGIX', 'Graphics.GL.Raw.Extension.EXT.Histogram.GL_HISTOGRAM_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_INDEX_ARRAY', 'Graphics.GL.Raw.Internal.Shared.GL_INDEX_LOGIC_OP', 'Graphics.GL.Raw.Extension.SGIX.Interlace.GL_INTERLACE_SGIX', 'Graphics.GL.Raw.Extension.SGIX.IrInstrument1.GL_IR_INSTRUMENT1_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT0', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT1', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT2', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT3', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT4', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT5', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT6', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT7', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHTING', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_SMOOTH', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_STIPPLE', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_COLOR_4', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_NORMAL', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_TEXTURE_COORD_1', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_TEXTURE_COORD_2', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_TEXTURE_COORD_3', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_TEXTURE_COORD_4', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_VERTEX_3', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_VERTEX_4', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_COLOR_4', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_NORMAL', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_TEXTURE_COORD_1', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_TEXTURE_COORD_2', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_TEXTURE_COORD_3', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_TEXTURE_COORD_4', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_VERTEX_3', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_VERTEX_4', 'Graphics.GL.Raw.Extension.EXT.Histogram.GL_MINMAX_EXT', 'Graphics.GL.Raw.Extension.SGIS.Multisample.GL_MULTISAMPLE_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_NORMALIZE', 'Graphics.GL.Raw.Internal.Shared.GL_NORMAL_ARRAY', 'Graphics.GL.Raw.Extension.SGIS.PixelTexture.GL_PIXEL_TEXTURE_SGIS', 'Graphics.GL.Raw.Extension.SGIX.PixelTexture.GL_PIXEL_TEX_GEN_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_POINT_SMOOTH', 'Graphics.GL.Raw.Internal.Shared.GL_POLYGON_OFFSET_FILL', 'Graphics.GL.Raw.Internal.Shared.GL_POLYGON_OFFSET_LINE', 'Graphics.GL.Raw.Internal.Shared.GL_POLYGON_OFFSET_POINT', 'Graphics.GL.Raw.Internal.Shared.GL_POLYGON_SMOOTH', 'Graphics.GL.Raw.Internal.Shared.GL_POLYGON_STIPPLE', 'Graphics.GL.Raw.Extension.SGI.ColorTable.GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI', 'Graphics.GL.Raw.Extension.SGI.ColorTable.GL_POST_CONVOLUTION_COLOR_TABLE_SGI', 'Graphics.GL.Raw.Extension.SGIX.ReferencePlane.GL_REFERENCE_PLANE_SGIX', 'Graphics.GL.Raw.Extension.EXT.RescaleNormal.GL_RESCALE_NORMAL_EXT', 'Graphics.GL.Raw.Extension.SGIS.Multisample.GL_SAMPLE_ALPHA_TO_MASK_SGIS', 'Graphics.GL.Raw.Extension.SGIS.Multisample.GL_SAMPLE_ALPHA_TO_ONE_SGIS', 'Graphics.GL.Raw.Extension.SGIS.Multisample.GL_SAMPLE_MASK_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_SCISSOR_TEST', 'Graphics.GL.Raw.Extension.EXT.Convolution.GL_SEPARABLE_2D_EXT', 'Graphics.GL.Raw.Extension.EXT.SharedTexturePalette.GL_SHARED_TEXTURE_PALETTE_EXT', 'Graphics.GL.Raw.Extension.SGIX.Sprite.GL_SPRITE_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_STENCIL_TEST', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Extension.SGI.TextureColorTable.GL_TEXTURE_COLOR_TABLE_SGI', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_COORD_ARRAY', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_GEN_Q', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_GEN_R', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_GEN_S', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_GEN_T', 'Graphics.GL.Raw.Internal.Shared.GL_VERTEX_ARRAY'.
+
+
+glEnableClientStateiEXT :: MonadIO m => GLenum -> GLuint -> m ()
+glEnableClientStateiEXT = ffienumuintIOV glEnableClientStateiEXTFunPtr
+
+glEnableClientStateiEXTFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
+glEnableClientStateiEXTFunPtr = unsafePerformIO (getProcAddress "glEnableClientStateiEXT")
+
+{-# NOINLINE glEnableClientStateiEXTFunPtr #-}
+
+-- | Usage: @'glEnableVertexArrayAttribEXT' vaobj index@
+
+
+glEnableVertexArrayAttribEXT :: MonadIO m => GLuint -> GLuint -> m ()
+glEnableVertexArrayAttribEXT = ffiuintuintIOV glEnableVertexArrayAttribEXTFunPtr
+
+glEnableVertexArrayAttribEXTFunPtr :: FunPtr (GLuint -> GLuint -> IO ())
+glEnableVertexArrayAttribEXTFunPtr = unsafePerformIO (getProcAddress "glEnableVertexArrayAttribEXT")
+
+{-# NOINLINE glEnableVertexArrayAttribEXTFunPtr #-}
+
+-- | Usage: @'glEnableVertexArrayEXT' vaobj array@
+--
+-- The parameter @array@ is a @EnableCap@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_ALPHA_TEST', 'Graphics.GL.Raw.Extension.SGIX.AsyncPixel.GL_ASYNC_DRAW_PIXELS_SGIX', 'Graphics.GL.Raw.Extension.SGIX.AsyncHistogram.GL_ASYNC_HISTOGRAM_SGIX', 'Graphics.GL.Raw.Extension.SGIX.AsyncPixel.GL_ASYNC_READ_PIXELS_SGIX', 'Graphics.GL.Raw.Extension.SGIX.AsyncPixel.GL_ASYNC_TEX_IMAGE_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_AUTO_NORMAL', 'Graphics.GL.Raw.Internal.Shared.GL_BLEND', 'Graphics.GL.Raw.Extension.SGIX.CalligraphicFragment.GL_CALLIGRAPHIC_FRAGMENT_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_CLIP_PLANE0', 'Graphics.GL.Raw.Internal.Shared.GL_CLIP_PLANE1', 'Graphics.GL.Raw.Internal.Shared.GL_CLIP_PLANE2', 'Graphics.GL.Raw.Internal.Shared.GL_CLIP_PLANE3', 'Graphics.GL.Raw.Internal.Shared.GL_CLIP_PLANE4', 'Graphics.GL.Raw.Internal.Shared.GL_CLIP_PLANE5', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_ARRAY', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_LOGIC_OP', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_MATERIAL', 'Graphics.GL.Raw.Extension.SGI.ColorTable.GL_COLOR_TABLE_SGI', 'Graphics.GL.Raw.Extension.EXT.Convolution.GL_CONVOLUTION_1D_EXT', 'Graphics.GL.Raw.Extension.EXT.Convolution.GL_CONVOLUTION_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_CULL_FACE', 'Graphics.GL.Raw.Internal.Shared.GL_DEPTH_TEST', 'Graphics.GL.Raw.Internal.Shared.GL_DITHER', 'Graphics.GL.Raw.Internal.Shared.GL_EDGE_FLAG_ARRAY', 'Graphics.GL.Raw.Internal.Shared.GL_FOG', 'Graphics.GL.Raw.Extension.SGIX.FogOffset.GL_FOG_OFFSET_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_COLOR_MATERIAL_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT0_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT1_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT2_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT3_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT4_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT5_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT6_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT7_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHTING_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Framezoom.GL_FRAMEZOOM_SGIX', 'Graphics.GL.Raw.Extension.EXT.Histogram.GL_HISTOGRAM_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_INDEX_ARRAY', 'Graphics.GL.Raw.Internal.Shared.GL_INDEX_LOGIC_OP', 'Graphics.GL.Raw.Extension.SGIX.Interlace.GL_INTERLACE_SGIX', 'Graphics.GL.Raw.Extension.SGIX.IrInstrument1.GL_IR_INSTRUMENT1_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT0', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT1', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT2', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT3', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT4', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT5', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT6', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT7', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHTING', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_SMOOTH', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_STIPPLE', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_COLOR_4', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_NORMAL', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_TEXTURE_COORD_1', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_TEXTURE_COORD_2', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_TEXTURE_COORD_3', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_TEXTURE_COORD_4', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_VERTEX_3', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_VERTEX_4', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_COLOR_4', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_NORMAL', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_TEXTURE_COORD_1', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_TEXTURE_COORD_2', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_TEXTURE_COORD_3', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_TEXTURE_COORD_4', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_VERTEX_3', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_VERTEX_4', 'Graphics.GL.Raw.Extension.EXT.Histogram.GL_MINMAX_EXT', 'Graphics.GL.Raw.Extension.SGIS.Multisample.GL_MULTISAMPLE_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_NORMALIZE', 'Graphics.GL.Raw.Internal.Shared.GL_NORMAL_ARRAY', 'Graphics.GL.Raw.Extension.SGIS.PixelTexture.GL_PIXEL_TEXTURE_SGIS', 'Graphics.GL.Raw.Extension.SGIX.PixelTexture.GL_PIXEL_TEX_GEN_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_POINT_SMOOTH', 'Graphics.GL.Raw.Internal.Shared.GL_POLYGON_OFFSET_FILL', 'Graphics.GL.Raw.Internal.Shared.GL_POLYGON_OFFSET_LINE', 'Graphics.GL.Raw.Internal.Shared.GL_POLYGON_OFFSET_POINT', 'Graphics.GL.Raw.Internal.Shared.GL_POLYGON_SMOOTH', 'Graphics.GL.Raw.Internal.Shared.GL_POLYGON_STIPPLE', 'Graphics.GL.Raw.Extension.SGI.ColorTable.GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI', 'Graphics.GL.Raw.Extension.SGI.ColorTable.GL_POST_CONVOLUTION_COLOR_TABLE_SGI', 'Graphics.GL.Raw.Extension.SGIX.ReferencePlane.GL_REFERENCE_PLANE_SGIX', 'Graphics.GL.Raw.Extension.EXT.RescaleNormal.GL_RESCALE_NORMAL_EXT', 'Graphics.GL.Raw.Extension.SGIS.Multisample.GL_SAMPLE_ALPHA_TO_MASK_SGIS', 'Graphics.GL.Raw.Extension.SGIS.Multisample.GL_SAMPLE_ALPHA_TO_ONE_SGIS', 'Graphics.GL.Raw.Extension.SGIS.Multisample.GL_SAMPLE_MASK_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_SCISSOR_TEST', 'Graphics.GL.Raw.Extension.EXT.Convolution.GL_SEPARABLE_2D_EXT', 'Graphics.GL.Raw.Extension.EXT.SharedTexturePalette.GL_SHARED_TEXTURE_PALETTE_EXT', 'Graphics.GL.Raw.Extension.SGIX.Sprite.GL_SPRITE_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_STENCIL_TEST', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Extension.SGI.TextureColorTable.GL_TEXTURE_COLOR_TABLE_SGI', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_COORD_ARRAY', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_GEN_Q', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_GEN_R', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_GEN_S', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_GEN_T', 'Graphics.GL.Raw.Internal.Shared.GL_VERTEX_ARRAY'.
+
+
+glEnableVertexArrayEXT :: MonadIO m => GLuint -> GLenum -> m ()
+glEnableVertexArrayEXT = ffiuintenumIOV glEnableVertexArrayEXTFunPtr
+
+glEnableVertexArrayEXTFunPtr :: FunPtr (GLuint -> GLenum -> IO ())
+glEnableVertexArrayEXTFunPtr = unsafePerformIO (getProcAddress "glEnableVertexArrayEXT")
+
+{-# NOINLINE glEnableVertexArrayEXTFunPtr #-}
+
+-- | Usage: @'glFlushMappedNamedBufferRangeEXT' buffer offset length@
+
+
+glFlushMappedNamedBufferRangeEXT :: MonadIO m => GLuint -> GLintptr -> GLsizeiptr -> m ()
+glFlushMappedNamedBufferRangeEXT = ffiuintintptrsizeiptrIOV glFlushMappedNamedBufferRangeEXTFunPtr
+
+glFlushMappedNamedBufferRangeEXTFunPtr :: FunPtr (GLuint -> GLintptr -> GLsizeiptr -> IO ())
+glFlushMappedNamedBufferRangeEXTFunPtr = unsafePerformIO (getProcAddress "glFlushMappedNamedBufferRangeEXT")
+
+{-# NOINLINE glFlushMappedNamedBufferRangeEXTFunPtr #-}
+
+-- | Usage: @'glFramebufferDrawBufferEXT' framebuffer mode@
+--
+-- The parameter @framebuffer@ is a @Framebuffer@.
+--
+-- The parameter @mode@ is a @DrawBufferMode@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_AUX0', 'Graphics.GL.Raw.Internal.Shared.GL_AUX1', 'Graphics.GL.Raw.Internal.Shared.GL_AUX2', 'Graphics.GL.Raw.Internal.Shared.GL_AUX3', 'Graphics.GL.Raw.Internal.Shared.GL_BACK', 'Graphics.GL.Raw.Internal.Shared.GL_BACK_LEFT', 'Graphics.GL.Raw.Internal.Shared.GL_BACK_RIGHT', 'Graphics.GL.Raw.Internal.Shared.GL_FRONT', 'Graphics.GL.Raw.Internal.Shared.GL_FRONT_AND_BACK', 'Graphics.GL.Raw.Internal.Shared.GL_FRONT_LEFT', 'Graphics.GL.Raw.Internal.Shared.GL_FRONT_RIGHT', 'Graphics.GL.Raw.Internal.Shared.GL_LEFT', 'Graphics.GL.Raw.Internal.Shared.GL_NONE', 'Graphics.GL.Raw.Extension.OES.FramebufferObject.GL_NONE_OES', 'Graphics.GL.Raw.Internal.Shared.GL_RIGHT'.
+
+
+glFramebufferDrawBufferEXT :: MonadIO m => GLuint -> GLenum -> m ()
+glFramebufferDrawBufferEXT = ffiuintenumIOV glFramebufferDrawBufferEXTFunPtr
+
+glFramebufferDrawBufferEXTFunPtr :: FunPtr (GLuint -> GLenum -> IO ())
+glFramebufferDrawBufferEXTFunPtr = unsafePerformIO (getProcAddress "glFramebufferDrawBufferEXT")
+
+{-# NOINLINE glFramebufferDrawBufferEXTFunPtr #-}
+
+-- | Usage: @'glFramebufferDrawBuffersEXT' framebuffer n bufs@
+--
+-- The parameter @framebuffer@ is a @Framebuffer@.
+--
+-- The parameter @bufs@ is a @DrawBufferMode@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_AUX0', 'Graphics.GL.Raw.Internal.Shared.GL_AUX1', 'Graphics.GL.Raw.Internal.Shared.GL_AUX2', 'Graphics.GL.Raw.Internal.Shared.GL_AUX3', 'Graphics.GL.Raw.Internal.Shared.GL_BACK', 'Graphics.GL.Raw.Internal.Shared.GL_BACK_LEFT', 'Graphics.GL.Raw.Internal.Shared.GL_BACK_RIGHT', 'Graphics.GL.Raw.Internal.Shared.GL_FRONT', 'Graphics.GL.Raw.Internal.Shared.GL_FRONT_AND_BACK', 'Graphics.GL.Raw.Internal.Shared.GL_FRONT_LEFT', 'Graphics.GL.Raw.Internal.Shared.GL_FRONT_RIGHT', 'Graphics.GL.Raw.Internal.Shared.GL_LEFT', 'Graphics.GL.Raw.Internal.Shared.GL_NONE', 'Graphics.GL.Raw.Extension.OES.FramebufferObject.GL_NONE_OES', 'Graphics.GL.Raw.Internal.Shared.GL_RIGHT'.
+--
+-- The length of @bufs@ should be @n@.
+
+
+glFramebufferDrawBuffersEXT :: MonadIO m => GLuint -> GLsizei -> Ptr GLenum -> m ()
+glFramebufferDrawBuffersEXT = ffiuintsizeiPtrenumIOV glFramebufferDrawBuffersEXTFunPtr
+
+glFramebufferDrawBuffersEXTFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLenum -> IO ())
+glFramebufferDrawBuffersEXTFunPtr = unsafePerformIO (getProcAddress "glFramebufferDrawBuffersEXT")
+
+{-# NOINLINE glFramebufferDrawBuffersEXTFunPtr #-}
+
+-- | Usage: @'glFramebufferReadBufferEXT' framebuffer mode@
+--
+-- The parameter @framebuffer@ is a @Framebuffer@.
+--
+-- The parameter @mode@ is a @ReadBufferMode@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_AUX0', 'Graphics.GL.Raw.Internal.Shared.GL_AUX1', 'Graphics.GL.Raw.Internal.Shared.GL_AUX2', 'Graphics.GL.Raw.Internal.Shared.GL_AUX3', 'Graphics.GL.Raw.Internal.Shared.GL_BACK', 'Graphics.GL.Raw.Internal.Shared.GL_BACK_LEFT', 'Graphics.GL.Raw.Internal.Shared.GL_BACK_RIGHT', 'Graphics.GL.Raw.Internal.Shared.GL_FRONT', 'Graphics.GL.Raw.Internal.Shared.GL_FRONT_LEFT', 'Graphics.GL.Raw.Internal.Shared.GL_FRONT_RIGHT', 'Graphics.GL.Raw.Internal.Shared.GL_LEFT', 'Graphics.GL.Raw.Internal.Shared.GL_RIGHT'.
+
+
+glFramebufferReadBufferEXT :: MonadIO m => GLuint -> GLenum -> m ()
+glFramebufferReadBufferEXT = ffiuintenumIOV glFramebufferReadBufferEXTFunPtr
+
+glFramebufferReadBufferEXTFunPtr :: FunPtr (GLuint -> GLenum -> IO ())
+glFramebufferReadBufferEXTFunPtr = unsafePerformIO (getProcAddress "glFramebufferReadBufferEXT")
+
+{-# NOINLINE glFramebufferReadBufferEXTFunPtr #-}
+
+-- | Usage: @'glGenerateMultiTexMipmapEXT' texunit target@
+--
+-- The parameter @texunit@ is a @TextureUnit@.
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+
+
+glGenerateMultiTexMipmapEXT :: MonadIO m => GLenum -> GLenum -> m ()
+glGenerateMultiTexMipmapEXT = ffienumenumIOV glGenerateMultiTexMipmapEXTFunPtr
+
+glGenerateMultiTexMipmapEXTFunPtr :: FunPtr (GLenum -> GLenum -> IO ())
+glGenerateMultiTexMipmapEXTFunPtr = unsafePerformIO (getProcAddress "glGenerateMultiTexMipmapEXT")
+
+{-# NOINLINE glGenerateMultiTexMipmapEXTFunPtr #-}
+
+-- | Usage: @'glGenerateTextureMipmapEXT' texture target@
+--
+-- The parameter @texture@ is a @Texture@.
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+
+
+glGenerateTextureMipmapEXT :: MonadIO m => GLuint -> GLenum -> m ()
+glGenerateTextureMipmapEXT = ffiuintenumIOV glGenerateTextureMipmapEXTFunPtr
+
+glGenerateTextureMipmapEXTFunPtr :: FunPtr (GLuint -> GLenum -> IO ())
+glGenerateTextureMipmapEXTFunPtr = unsafePerformIO (getProcAddress "glGenerateTextureMipmapEXT")
+
+{-# NOINLINE glGenerateTextureMipmapEXTFunPtr #-}
+
+-- | Usage: @'glGetCompressedMultiTexImageEXT' texunit target lod img@
+--
+-- The parameter @texunit@ is a @TextureUnit@.
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @lod@ is a @CheckedInt32@.
+--
+-- The length of @img@ should be @COMPSIZE(target,lod)@.
+
+
+glGetCompressedMultiTexImageEXT :: MonadIO m => GLenum -> GLenum -> GLint -> Ptr () -> m ()
+glGetCompressedMultiTexImageEXT = ffienumenumintPtrVIOV glGetCompressedMultiTexImageEXTFunPtr
+
+glGetCompressedMultiTexImageEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> Ptr () -> IO ())
+glGetCompressedMultiTexImageEXTFunPtr = unsafePerformIO (getProcAddress "glGetCompressedMultiTexImageEXT")
+
+{-# NOINLINE glGetCompressedMultiTexImageEXTFunPtr #-}
+
+-- | Usage: @'glGetCompressedTextureImageEXT' texture target lod img@
+--
+-- The parameter @texture@ is a @Texture@.
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @lod@ is a @CheckedInt32@.
+--
+-- The length of @img@ should be @COMPSIZE(target,lod)@.
+
+
+glGetCompressedTextureImageEXT :: MonadIO m => GLuint -> GLenum -> GLint -> Ptr () -> m ()
+glGetCompressedTextureImageEXT = ffiuintenumintPtrVIOV glGetCompressedTextureImageEXTFunPtr
+
+glGetCompressedTextureImageEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> Ptr () -> IO ())
+glGetCompressedTextureImageEXTFunPtr = unsafePerformIO (getProcAddress "glGetCompressedTextureImageEXT")
+
+{-# NOINLINE glGetCompressedTextureImageEXTFunPtr #-}
+
+-- | Usage: @'glGetDoubleIndexedvEXT' target index data@
+--
+-- The parameter @target@ is a @TypeEnum@.
+--
+-- The length of @data@ should be @COMPSIZE(target)@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glGetDoublei_v'.
+
+
+glGetDoubleIndexedvEXT :: MonadIO m => GLenum -> GLuint -> Ptr GLdouble -> m ()
+glGetDoubleIndexedvEXT = ffienumuintPtrdoubleIOV glGetDoubleIndexedvEXTFunPtr
+
+glGetDoubleIndexedvEXTFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLdouble -> IO ())
+glGetDoubleIndexedvEXTFunPtr = unsafePerformIO (getProcAddress "glGetDoubleIndexedvEXT")
+
+{-# NOINLINE glGetDoubleIndexedvEXTFunPtr #-}
+
+-- | Usage: @'glGetDoublei_vEXT' pname index params@
+--
+-- The parameter @pname@ is a @TypeEnum@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glGetDoublei_v'.
+
+
+glGetDoublei_vEXT :: MonadIO m => GLenum -> GLuint -> Ptr GLdouble -> m ()
+glGetDoublei_vEXT = ffienumuintPtrdoubleIOV glGetDoublei_vEXTFunPtr
+
+glGetDoublei_vEXTFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLdouble -> IO ())
+glGetDoublei_vEXTFunPtr = unsafePerformIO (getProcAddress "glGetDoublei_vEXT")
+
+{-# NOINLINE glGetDoublei_vEXTFunPtr #-}
+
+-- | Usage: @'glGetFloatIndexedvEXT' target index data@
+--
+-- The parameter @target@ is a @TypeEnum@.
+--
+-- The length of @data@ should be @COMPSIZE(target)@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glGetFloati_v'.
+
+
+glGetFloatIndexedvEXT :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()
+glGetFloatIndexedvEXT = ffienumuintPtrfloatIOV glGetFloatIndexedvEXTFunPtr
+
+glGetFloatIndexedvEXTFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLfloat -> IO ())
+glGetFloatIndexedvEXTFunPtr = unsafePerformIO (getProcAddress "glGetFloatIndexedvEXT")
+
+{-# NOINLINE glGetFloatIndexedvEXTFunPtr #-}
+
+-- | Usage: @'glGetFloati_vEXT' pname index params@
+--
+-- The parameter @pname@ is a @TypeEnum@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glGetFloati_v'.
+
+
+glGetFloati_vEXT :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()
+glGetFloati_vEXT = ffienumuintPtrfloatIOV glGetFloati_vEXTFunPtr
+
+glGetFloati_vEXTFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLfloat -> IO ())
+glGetFloati_vEXTFunPtr = unsafePerformIO (getProcAddress "glGetFloati_vEXT")
+
+{-# NOINLINE glGetFloati_vEXTFunPtr #-}
+
+-- | Usage: @'glGetFramebufferParameterivEXT' framebuffer pname params@
+--
+-- The parameter @framebuffer@ is a @Framebuffer@.
+--
+-- The parameter @pname@ is a @GetFramebufferParameter@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetFramebufferParameterivEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
+glGetFramebufferParameterivEXT = ffiuintenumPtrintIOV glGetFramebufferParameterivEXTFunPtr
+
+glGetFramebufferParameterivEXTFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+glGetFramebufferParameterivEXTFunPtr = unsafePerformIO (getProcAddress "glGetFramebufferParameterivEXT")
+
+{-# NOINLINE glGetFramebufferParameterivEXTFunPtr #-}
+
+-- | Usage: @'glGetMultiTexEnvfvEXT' texunit target pname params@
+--
+-- The parameter @texunit@ is a @TextureUnit@.
+--
+-- The parameter @target@ is a @TextureEnvTarget@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_ENV'.
+--
+-- The parameter @pname@ is a @TextureEnvParameter@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_ENV_COLOR', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_ENV_MODE'.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetMultiTexEnvfvEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLfloat -> m ()
+glGetMultiTexEnvfvEXT = ffienumenumenumPtrfloatIOV glGetMultiTexEnvfvEXTFunPtr
+
+glGetMultiTexEnvfvEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLfloat -> IO ())
+glGetMultiTexEnvfvEXTFunPtr = unsafePerformIO (getProcAddress "glGetMultiTexEnvfvEXT")
+
+{-# NOINLINE glGetMultiTexEnvfvEXTFunPtr #-}
+
+-- | Usage: @'glGetMultiTexEnvivEXT' texunit target pname params@
+--
+-- The parameter @texunit@ is a @TextureUnit@.
+--
+-- The parameter @target@ is a @TextureEnvTarget@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_ENV'.
+--
+-- The parameter @pname@ is a @TextureEnvParameter@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_ENV_COLOR', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_ENV_MODE'.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetMultiTexEnvivEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLint -> m ()
+glGetMultiTexEnvivEXT = ffienumenumenumPtrintIOV glGetMultiTexEnvivEXTFunPtr
+
+glGetMultiTexEnvivEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ())
+glGetMultiTexEnvivEXTFunPtr = unsafePerformIO (getProcAddress "glGetMultiTexEnvivEXT")
+
+{-# NOINLINE glGetMultiTexEnvivEXTFunPtr #-}
+
+-- | Usage: @'glGetMultiTexGendvEXT' texunit coord pname params@
+--
+-- The parameter @texunit@ is a @TextureUnit@.
+--
+-- The parameter @coord@ is a @TextureCoordName@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_S', 'Graphics.GL.Raw.Internal.Shared.GL_T', 'Graphics.GL.Raw.Internal.Shared.GL_R', 'Graphics.GL.Raw.Internal.Shared.GL_Q'.
+--
+-- The parameter @pname@ is a @TextureGenParameter@, one of: 'Graphics.GL.Raw.Extension.SGIS.PointLineTexgen.GL_EYE_LINE_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_EYE_PLANE', 'Graphics.GL.Raw.Extension.SGIS.PointLineTexgen.GL_EYE_POINT_SGIS', 'Graphics.GL.Raw.Extension.SGIS.PointLineTexgen.GL_OBJECT_LINE_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_OBJECT_PLANE', 'Graphics.GL.Raw.Extension.SGIS.PointLineTexgen.GL_OBJECT_POINT_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_GEN_MODE'.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetMultiTexGendvEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLdouble -> m ()
+glGetMultiTexGendvEXT = ffienumenumenumPtrdoubleIOV glGetMultiTexGendvEXTFunPtr
+
+glGetMultiTexGendvEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLdouble -> IO ())
+glGetMultiTexGendvEXTFunPtr = unsafePerformIO (getProcAddress "glGetMultiTexGendvEXT")
+
+{-# NOINLINE glGetMultiTexGendvEXTFunPtr #-}
+
+-- | Usage: @'glGetMultiTexGenfvEXT' texunit coord pname params@
+--
+-- The parameter @texunit@ is a @TextureUnit@.
+--
+-- The parameter @coord@ is a @TextureCoordName@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_S', 'Graphics.GL.Raw.Internal.Shared.GL_T', 'Graphics.GL.Raw.Internal.Shared.GL_R', 'Graphics.GL.Raw.Internal.Shared.GL_Q'.
+--
+-- The parameter @pname@ is a @TextureGenParameter@, one of: 'Graphics.GL.Raw.Extension.SGIS.PointLineTexgen.GL_EYE_LINE_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_EYE_PLANE', 'Graphics.GL.Raw.Extension.SGIS.PointLineTexgen.GL_EYE_POINT_SGIS', 'Graphics.GL.Raw.Extension.SGIS.PointLineTexgen.GL_OBJECT_LINE_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_OBJECT_PLANE', 'Graphics.GL.Raw.Extension.SGIS.PointLineTexgen.GL_OBJECT_POINT_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_GEN_MODE'.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetMultiTexGenfvEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLfloat -> m ()
+glGetMultiTexGenfvEXT = ffienumenumenumPtrfloatIOV glGetMultiTexGenfvEXTFunPtr
+
+glGetMultiTexGenfvEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLfloat -> IO ())
+glGetMultiTexGenfvEXTFunPtr = unsafePerformIO (getProcAddress "glGetMultiTexGenfvEXT")
+
+{-# NOINLINE glGetMultiTexGenfvEXTFunPtr #-}
+
+-- | Usage: @'glGetMultiTexGenivEXT' texunit coord pname params@
+--
+-- The parameter @texunit@ is a @TextureUnit@.
+--
+-- The parameter @coord@ is a @TextureCoordName@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_S', 'Graphics.GL.Raw.Internal.Shared.GL_T', 'Graphics.GL.Raw.Internal.Shared.GL_R', 'Graphics.GL.Raw.Internal.Shared.GL_Q'.
+--
+-- The parameter @pname@ is a @TextureGenParameter@, one of: 'Graphics.GL.Raw.Extension.SGIS.PointLineTexgen.GL_EYE_LINE_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_EYE_PLANE', 'Graphics.GL.Raw.Extension.SGIS.PointLineTexgen.GL_EYE_POINT_SGIS', 'Graphics.GL.Raw.Extension.SGIS.PointLineTexgen.GL_OBJECT_LINE_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_OBJECT_PLANE', 'Graphics.GL.Raw.Extension.SGIS.PointLineTexgen.GL_OBJECT_POINT_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_GEN_MODE'.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetMultiTexGenivEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLint -> m ()
+glGetMultiTexGenivEXT = ffienumenumenumPtrintIOV glGetMultiTexGenivEXTFunPtr
+
+glGetMultiTexGenivEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ())
+glGetMultiTexGenivEXTFunPtr = unsafePerformIO (getProcAddress "glGetMultiTexGenivEXT")
+
+{-# NOINLINE glGetMultiTexGenivEXTFunPtr #-}
+
+-- | Usage: @'glGetMultiTexImageEXT' texunit target level format type pixels@
+--
+-- The parameter @texunit@ is a @TextureUnit@.
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Raw.Extension.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_ALPHA', 'Graphics.GL.Raw.Internal.Shared.GL_BLUE', 'Graphics.GL.Raw.Extension.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Raw.Extension.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Raw.Internal.Shared.GL_GREEN', 'Graphics.GL.Raw.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Raw.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Raw.Internal.Shared.GL_RED', 'Graphics.GL.Raw.Extension.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_RGB', 'Graphics.GL.Raw.Internal.Shared.GL_RGBA', 'Graphics.GL.Raw.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Raw.Extension.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
+--
+-- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_BITMAP', 'Graphics.GL.Raw.Internal.Shared.GL_BYTE', 'Graphics.GL.Raw.Internal.Shared.GL_FLOAT', 'Graphics.GL.Raw.Internal.Shared.GL_INT', 'Graphics.GL.Raw.Internal.Shared.GL_SHORT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
+--
+-- The length of @pixels@ should be @COMPSIZE(target,level,format,type)@.
+
+
+glGetMultiTexImageEXT :: MonadIO m => GLenum -> GLenum -> GLint -> GLenum -> GLenum -> Ptr () -> m ()
+glGetMultiTexImageEXT = ffienumenumintenumenumPtrVIOV glGetMultiTexImageEXTFunPtr
+
+glGetMultiTexImageEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> GLenum -> GLenum -> Ptr () -> IO ())
+glGetMultiTexImageEXTFunPtr = unsafePerformIO (getProcAddress "glGetMultiTexImageEXT")
+
+{-# NOINLINE glGetMultiTexImageEXTFunPtr #-}
+
+-- | Usage: @'glGetMultiTexLevelParameterfvEXT' texunit target level pname params@
+--
+-- The parameter @texunit@ is a @TextureUnit@.
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @pname@ is a @GetTextureParameter@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Raw.Extension.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Raw.Extension.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Raw.Extension.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Raw.Extension.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Raw.Extension.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Raw.Extension.SGIS.SharpenTexture.GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4DSIZE_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_ALPHA_SIZE', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BLUE_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BORDER', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Raw.Extension.NV.TextureBorderClamp.GL_TEXTURE_BORDER_COLOR_NV', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Shadow.GL_TEXTURE_COMPARE_OPERATOR_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_COMPONENTS', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_DEPTH_EXT', 'Graphics.GL.Raw.Extension.SGIS.TextureFilter4.GL_TEXTURE_FILTER4_SIZE_SGIS', 'Graphics.GL.Raw.Extension.SGIX.Shadow.GL_TEXTURE_GEQUAL_R_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_GREEN_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_HEIGHT', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_INTENSITY_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_INTERNAL_FORMAT', 'Graphics.GL.Raw.Extension.SGIX.Shadow.GL_TEXTURE_LEQUAL_R_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_LUMINANCE_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Raw.Extension.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_RED_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_RESIDENT', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_WIDTH', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_WRAP_T'.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetMultiTexLevelParameterfvEXT :: MonadIO m => GLenum -> GLenum -> GLint -> GLenum -> Ptr GLfloat -> m ()
+glGetMultiTexLevelParameterfvEXT = ffienumenumintenumPtrfloatIOV glGetMultiTexLevelParameterfvEXTFunPtr
+
+glGetMultiTexLevelParameterfvEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> GLenum -> Ptr GLfloat -> IO ())
+glGetMultiTexLevelParameterfvEXTFunPtr = unsafePerformIO (getProcAddress "glGetMultiTexLevelParameterfvEXT")
+
+{-# NOINLINE glGetMultiTexLevelParameterfvEXTFunPtr #-}
+
+-- | Usage: @'glGetMultiTexLevelParameterivEXT' texunit target level pname params@
+--
+-- The parameter @texunit@ is a @TextureUnit@.
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @pname@ is a @GetTextureParameter@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Raw.Extension.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Raw.Extension.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Raw.Extension.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Raw.Extension.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Raw.Extension.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Raw.Extension.SGIS.SharpenTexture.GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4DSIZE_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_ALPHA_SIZE', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BLUE_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BORDER', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Raw.Extension.NV.TextureBorderClamp.GL_TEXTURE_BORDER_COLOR_NV', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Shadow.GL_TEXTURE_COMPARE_OPERATOR_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_COMPONENTS', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_DEPTH_EXT', 'Graphics.GL.Raw.Extension.SGIS.TextureFilter4.GL_TEXTURE_FILTER4_SIZE_SGIS', 'Graphics.GL.Raw.Extension.SGIX.Shadow.GL_TEXTURE_GEQUAL_R_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_GREEN_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_HEIGHT', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_INTENSITY_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_INTERNAL_FORMAT', 'Graphics.GL.Raw.Extension.SGIX.Shadow.GL_TEXTURE_LEQUAL_R_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_LUMINANCE_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Raw.Extension.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_RED_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_RESIDENT', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_WIDTH', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_WRAP_T'.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetMultiTexLevelParameterivEXT :: MonadIO m => GLenum -> GLenum -> GLint -> GLenum -> Ptr GLint -> m ()
+glGetMultiTexLevelParameterivEXT = ffienumenumintenumPtrintIOV glGetMultiTexLevelParameterivEXTFunPtr
+
+glGetMultiTexLevelParameterivEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> GLenum -> Ptr GLint -> IO ())
+glGetMultiTexLevelParameterivEXTFunPtr = unsafePerformIO (getProcAddress "glGetMultiTexLevelParameterivEXT")
+
+{-# NOINLINE glGetMultiTexLevelParameterivEXTFunPtr #-}
+
+-- | Usage: @'glGetMultiTexParameterIivEXT' texunit target pname params@
+--
+-- The parameter @texunit@ is a @TextureUnit@.
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @pname@ is a @GetTextureParameter@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Raw.Extension.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Raw.Extension.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Raw.Extension.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Raw.Extension.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Raw.Extension.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Raw.Extension.SGIS.SharpenTexture.GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4DSIZE_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_ALPHA_SIZE', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BLUE_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BORDER', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Raw.Extension.NV.TextureBorderClamp.GL_TEXTURE_BORDER_COLOR_NV', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Shadow.GL_TEXTURE_COMPARE_OPERATOR_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_COMPONENTS', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_DEPTH_EXT', 'Graphics.GL.Raw.Extension.SGIS.TextureFilter4.GL_TEXTURE_FILTER4_SIZE_SGIS', 'Graphics.GL.Raw.Extension.SGIX.Shadow.GL_TEXTURE_GEQUAL_R_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_GREEN_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_HEIGHT', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_INTENSITY_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_INTERNAL_FORMAT', 'Graphics.GL.Raw.Extension.SGIX.Shadow.GL_TEXTURE_LEQUAL_R_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_LUMINANCE_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Raw.Extension.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_RED_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_RESIDENT', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_WIDTH', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_WRAP_T'.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetMultiTexParameterIivEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLint -> m ()
+glGetMultiTexParameterIivEXT = ffienumenumenumPtrintIOV glGetMultiTexParameterIivEXTFunPtr
+
+glGetMultiTexParameterIivEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ())
+glGetMultiTexParameterIivEXTFunPtr = unsafePerformIO (getProcAddress "glGetMultiTexParameterIivEXT")
+
+{-# NOINLINE glGetMultiTexParameterIivEXTFunPtr #-}
+
+-- | Usage: @'glGetMultiTexParameterIuivEXT' texunit target pname params@
+--
+-- The parameter @texunit@ is a @TextureUnit@.
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @pname@ is a @GetTextureParameter@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Raw.Extension.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Raw.Extension.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Raw.Extension.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Raw.Extension.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Raw.Extension.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Raw.Extension.SGIS.SharpenTexture.GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4DSIZE_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_ALPHA_SIZE', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BLUE_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BORDER', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Raw.Extension.NV.TextureBorderClamp.GL_TEXTURE_BORDER_COLOR_NV', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Shadow.GL_TEXTURE_COMPARE_OPERATOR_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_COMPONENTS', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_DEPTH_EXT', 'Graphics.GL.Raw.Extension.SGIS.TextureFilter4.GL_TEXTURE_FILTER4_SIZE_SGIS', 'Graphics.GL.Raw.Extension.SGIX.Shadow.GL_TEXTURE_GEQUAL_R_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_GREEN_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_HEIGHT', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_INTENSITY_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_INTERNAL_FORMAT', 'Graphics.GL.Raw.Extension.SGIX.Shadow.GL_TEXTURE_LEQUAL_R_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_LUMINANCE_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Raw.Extension.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_RED_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_RESIDENT', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_WIDTH', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_WRAP_T'.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetMultiTexParameterIuivEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLuint -> m ()
+glGetMultiTexParameterIuivEXT = ffienumenumenumPtruintIOV glGetMultiTexParameterIuivEXTFunPtr
+
+glGetMultiTexParameterIuivEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLuint -> IO ())
+glGetMultiTexParameterIuivEXTFunPtr = unsafePerformIO (getProcAddress "glGetMultiTexParameterIuivEXT")
+
+{-# NOINLINE glGetMultiTexParameterIuivEXTFunPtr #-}
+
+-- | Usage: @'glGetMultiTexParameterfvEXT' texunit target pname params@
+--
+-- The parameter @texunit@ is a @TextureUnit@.
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @pname@ is a @GetTextureParameter@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Raw.Extension.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Raw.Extension.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Raw.Extension.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Raw.Extension.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Raw.Extension.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Raw.Extension.SGIS.SharpenTexture.GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4DSIZE_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_ALPHA_SIZE', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BLUE_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BORDER', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Raw.Extension.NV.TextureBorderClamp.GL_TEXTURE_BORDER_COLOR_NV', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Shadow.GL_TEXTURE_COMPARE_OPERATOR_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_COMPONENTS', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_DEPTH_EXT', 'Graphics.GL.Raw.Extension.SGIS.TextureFilter4.GL_TEXTURE_FILTER4_SIZE_SGIS', 'Graphics.GL.Raw.Extension.SGIX.Shadow.GL_TEXTURE_GEQUAL_R_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_GREEN_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_HEIGHT', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_INTENSITY_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_INTERNAL_FORMAT', 'Graphics.GL.Raw.Extension.SGIX.Shadow.GL_TEXTURE_LEQUAL_R_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_LUMINANCE_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Raw.Extension.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_RED_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_RESIDENT', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_WIDTH', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_WRAP_T'.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetMultiTexParameterfvEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLfloat -> m ()
+glGetMultiTexParameterfvEXT = ffienumenumenumPtrfloatIOV glGetMultiTexParameterfvEXTFunPtr
+
+glGetMultiTexParameterfvEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLfloat -> IO ())
+glGetMultiTexParameterfvEXTFunPtr = unsafePerformIO (getProcAddress "glGetMultiTexParameterfvEXT")
+
+{-# NOINLINE glGetMultiTexParameterfvEXTFunPtr #-}
+
+-- | Usage: @'glGetMultiTexParameterivEXT' texunit target pname params@
+--
+-- The parameter @texunit@ is a @TextureUnit@.
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @pname@ is a @GetTextureParameter@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Raw.Extension.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Raw.Extension.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Raw.Extension.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Raw.Extension.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Raw.Extension.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Raw.Extension.SGIS.SharpenTexture.GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4DSIZE_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_ALPHA_SIZE', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BLUE_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BORDER', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Raw.Extension.NV.TextureBorderClamp.GL_TEXTURE_BORDER_COLOR_NV', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Shadow.GL_TEXTURE_COMPARE_OPERATOR_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_COMPONENTS', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_DEPTH_EXT', 'Graphics.GL.Raw.Extension.SGIS.TextureFilter4.GL_TEXTURE_FILTER4_SIZE_SGIS', 'Graphics.GL.Raw.Extension.SGIX.Shadow.GL_TEXTURE_GEQUAL_R_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_GREEN_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_HEIGHT', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_INTENSITY_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_INTERNAL_FORMAT', 'Graphics.GL.Raw.Extension.SGIX.Shadow.GL_TEXTURE_LEQUAL_R_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_LUMINANCE_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Raw.Extension.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_RED_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_RESIDENT', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_WIDTH', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_WRAP_T'.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetMultiTexParameterivEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLint -> m ()
+glGetMultiTexParameterivEXT = ffienumenumenumPtrintIOV glGetMultiTexParameterivEXTFunPtr
+
+glGetMultiTexParameterivEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ())
+glGetMultiTexParameterivEXTFunPtr = unsafePerformIO (getProcAddress "glGetMultiTexParameterivEXT")
+
+{-# NOINLINE glGetMultiTexParameterivEXTFunPtr #-}
+
+-- | Usage: @'glGetNamedBufferParameterivEXT' buffer pname params@
+--
+-- The parameter @pname@ is a @VertexBufferObjectParameter@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetNamedBufferParameterivEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
+glGetNamedBufferParameterivEXT = ffiuintenumPtrintIOV glGetNamedBufferParameterivEXTFunPtr
+
+glGetNamedBufferParameterivEXTFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+glGetNamedBufferParameterivEXTFunPtr = unsafePerformIO (getProcAddress "glGetNamedBufferParameterivEXT")
+
+{-# NOINLINE glGetNamedBufferParameterivEXTFunPtr #-}
+
+-- | Usage: @'glGetNamedBufferPointervEXT' buffer pname params@
+--
+-- The parameter @pname@ is a @VertexBufferObjectParameter@.
+--
+-- The length of @params@ should be @1@.
+
+
+glGetNamedBufferPointervEXT :: MonadIO m => GLuint -> GLenum -> Ptr (Ptr ()) -> m ()
+glGetNamedBufferPointervEXT = ffiuintenumPtrPtrVIOV glGetNamedBufferPointervEXTFunPtr
+
+glGetNamedBufferPointervEXTFunPtr :: FunPtr (GLuint -> GLenum -> Ptr (Ptr ()) -> IO ())
+glGetNamedBufferPointervEXTFunPtr = unsafePerformIO (getProcAddress "glGetNamedBufferPointervEXT")
+
+{-# NOINLINE glGetNamedBufferPointervEXTFunPtr #-}
+
+-- | Usage: @'glGetNamedBufferSubDataEXT' buffer offset size data@
+--
+-- The length of @data@ should be @COMPSIZE(size)@.
+
+
+glGetNamedBufferSubDataEXT :: MonadIO m => GLuint -> GLintptr -> GLsizeiptr -> Ptr () -> m ()
+glGetNamedBufferSubDataEXT = ffiuintintptrsizeiptrPtrVIOV glGetNamedBufferSubDataEXTFunPtr
+
+glGetNamedBufferSubDataEXTFunPtr :: FunPtr (GLuint -> GLintptr -> GLsizeiptr -> Ptr () -> IO ())
+glGetNamedBufferSubDataEXTFunPtr = unsafePerformIO (getProcAddress "glGetNamedBufferSubDataEXT")
+
+{-# NOINLINE glGetNamedBufferSubDataEXTFunPtr #-}
+
+-- | Usage: @'glGetNamedFramebufferAttachmentParameterivEXT' framebuffer attachment pname params@
+--
+-- The parameter @framebuffer@ is a @Framebuffer@.
+--
+-- The parameter @attachment@ is a @FramebufferAttachment@.
+--
+-- The parameter @pname@ is a @FramebufferAttachmentParameterName@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetNamedFramebufferAttachmentParameterivEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> Ptr GLint -> m ()
+glGetNamedFramebufferAttachmentParameterivEXT = ffiuintenumenumPtrintIOV glGetNamedFramebufferAttachmentParameterivEXTFunPtr
+
+glGetNamedFramebufferAttachmentParameterivEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> Ptr GLint -> IO ())
+glGetNamedFramebufferAttachmentParameterivEXTFunPtr = unsafePerformIO (getProcAddress "glGetNamedFramebufferAttachmentParameterivEXT")
+
+{-# NOINLINE glGetNamedFramebufferAttachmentParameterivEXTFunPtr #-}
+
+-- | Usage: @'glGetNamedFramebufferParameterivEXT' framebuffer pname params@
+--
+-- The parameter @framebuffer@ is a @Framebuffer@.
+--
+-- The parameter @pname@ is a @GetFramebufferParameter@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetNamedFramebufferParameterivEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
+glGetNamedFramebufferParameterivEXT = ffiuintenumPtrintIOV glGetNamedFramebufferParameterivEXTFunPtr
+
+glGetNamedFramebufferParameterivEXTFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+glGetNamedFramebufferParameterivEXTFunPtr = unsafePerformIO (getProcAddress "glGetNamedFramebufferParameterivEXT")
+
+{-# NOINLINE glGetNamedFramebufferParameterivEXTFunPtr #-}
+
+-- | Usage: @'glGetNamedProgramLocalParameterIivEXT' program target index params@
+--
+-- The parameter @target@ is a @ProgramTarget@.
+--
+-- The length of @params@ should be @4@.
+
+
+glGetNamedProgramLocalParameterIivEXT :: MonadIO m => GLuint -> GLenum -> GLuint -> Ptr GLint -> m ()
+glGetNamedProgramLocalParameterIivEXT = ffiuintenumuintPtrintIOV glGetNamedProgramLocalParameterIivEXTFunPtr
+
+glGetNamedProgramLocalParameterIivEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> Ptr GLint -> IO ())
+glGetNamedProgramLocalParameterIivEXTFunPtr = unsafePerformIO (getProcAddress "glGetNamedProgramLocalParameterIivEXT")
+
+{-# NOINLINE glGetNamedProgramLocalParameterIivEXTFunPtr #-}
+
+-- | Usage: @'glGetNamedProgramLocalParameterIuivEXT' program target index params@
+--
+-- The parameter @target@ is a @ProgramTarget@.
+--
+-- The length of @params@ should be @4@.
+
+
+glGetNamedProgramLocalParameterIuivEXT :: MonadIO m => GLuint -> GLenum -> GLuint -> Ptr GLuint -> m ()
+glGetNamedProgramLocalParameterIuivEXT = ffiuintenumuintPtruintIOV glGetNamedProgramLocalParameterIuivEXTFunPtr
+
+glGetNamedProgramLocalParameterIuivEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> Ptr GLuint -> IO ())
+glGetNamedProgramLocalParameterIuivEXTFunPtr = unsafePerformIO (getProcAddress "glGetNamedProgramLocalParameterIuivEXT")
+
+{-# NOINLINE glGetNamedProgramLocalParameterIuivEXTFunPtr #-}
+
+-- | Usage: @'glGetNamedProgramLocalParameterdvEXT' program target index params@
+--
+-- The parameter @target@ is a @ProgramTarget@.
+--
+-- The length of @params@ should be @4@.
+
+
+glGetNamedProgramLocalParameterdvEXT :: MonadIO m => GLuint -> GLenum -> GLuint -> Ptr GLdouble -> m ()
+glGetNamedProgramLocalParameterdvEXT = ffiuintenumuintPtrdoubleIOV glGetNamedProgramLocalParameterdvEXTFunPtr
+
+glGetNamedProgramLocalParameterdvEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> Ptr GLdouble -> IO ())
+glGetNamedProgramLocalParameterdvEXTFunPtr = unsafePerformIO (getProcAddress "glGetNamedProgramLocalParameterdvEXT")
+
+{-# NOINLINE glGetNamedProgramLocalParameterdvEXTFunPtr #-}
+
+-- | Usage: @'glGetNamedProgramLocalParameterfvEXT' program target index params@
+--
+-- The parameter @target@ is a @ProgramTarget@.
+--
+-- The length of @params@ should be @4@.
+
+
+glGetNamedProgramLocalParameterfvEXT :: MonadIO m => GLuint -> GLenum -> GLuint -> Ptr GLfloat -> m ()
+glGetNamedProgramLocalParameterfvEXT = ffiuintenumuintPtrfloatIOV glGetNamedProgramLocalParameterfvEXTFunPtr
+
+glGetNamedProgramLocalParameterfvEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> Ptr GLfloat -> IO ())
+glGetNamedProgramLocalParameterfvEXTFunPtr = unsafePerformIO (getProcAddress "glGetNamedProgramLocalParameterfvEXT")
+
+{-# NOINLINE glGetNamedProgramLocalParameterfvEXTFunPtr #-}
+
+-- | Usage: @'glGetNamedProgramStringEXT' program target pname string@
+--
+-- The parameter @target@ is a @ProgramTarget@.
+--
+-- The parameter @pname@ is a @ProgramStringProperty@.
+--
+-- The length of @string@ should be @COMPSIZE(program,pname)@.
+
+
+glGetNamedProgramStringEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> Ptr () -> m ()
+glGetNamedProgramStringEXT = ffiuintenumenumPtrVIOV glGetNamedProgramStringEXTFunPtr
+
+glGetNamedProgramStringEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> Ptr () -> IO ())
+glGetNamedProgramStringEXTFunPtr = unsafePerformIO (getProcAddress "glGetNamedProgramStringEXT")
+
+{-# NOINLINE glGetNamedProgramStringEXTFunPtr #-}
+
+-- | Usage: @'glGetNamedProgramivEXT' program target pname params@
+--
+-- The parameter @target@ is a @ProgramTarget@.
+--
+-- The parameter @pname@ is a @ProgramProperty@.
+--
+-- The length of @params@ should be @1@.
+
+
+glGetNamedProgramivEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> Ptr GLint -> m ()
+glGetNamedProgramivEXT = ffiuintenumenumPtrintIOV glGetNamedProgramivEXTFunPtr
+
+glGetNamedProgramivEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> Ptr GLint -> IO ())
+glGetNamedProgramivEXTFunPtr = unsafePerformIO (getProcAddress "glGetNamedProgramivEXT")
+
+{-# NOINLINE glGetNamedProgramivEXTFunPtr #-}
+
+-- | Usage: @'glGetNamedRenderbufferParameterivEXT' renderbuffer pname params@
+--
+-- The parameter @renderbuffer@ is a @Renderbuffer@.
+--
+-- The parameter @pname@ is a @RenderbufferParameterName@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetNamedRenderbufferParameterivEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
+glGetNamedRenderbufferParameterivEXT = ffiuintenumPtrintIOV glGetNamedRenderbufferParameterivEXTFunPtr
+
+glGetNamedRenderbufferParameterivEXTFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+glGetNamedRenderbufferParameterivEXTFunPtr = unsafePerformIO (getProcAddress "glGetNamedRenderbufferParameterivEXT")
+
+{-# NOINLINE glGetNamedRenderbufferParameterivEXTFunPtr #-}
+
+-- | Usage: @'glGetPointerIndexedvEXT' target index data@
+--
+-- The parameter @target@ is a @TypeEnum@.
+--
+-- The length of @data@ should be @1@.
+
+
+glGetPointerIndexedvEXT :: MonadIO m => GLenum -> GLuint -> Ptr (Ptr ()) -> m ()
+glGetPointerIndexedvEXT = ffienumuintPtrPtrVIOV glGetPointerIndexedvEXTFunPtr
+
+glGetPointerIndexedvEXTFunPtr :: FunPtr (GLenum -> GLuint -> Ptr (Ptr ()) -> IO ())
+glGetPointerIndexedvEXTFunPtr = unsafePerformIO (getProcAddress "glGetPointerIndexedvEXT")
+
+{-# NOINLINE glGetPointerIndexedvEXTFunPtr #-}
+
+-- | Usage: @'glGetPointeri_vEXT' pname index params@
+--
+-- The parameter @pname@ is a @TypeEnum@.
+--
+-- The length of @params@ should be @1@.
+
+
+glGetPointeri_vEXT :: MonadIO m => GLenum -> GLuint -> Ptr (Ptr ()) -> m ()
+glGetPointeri_vEXT = ffienumuintPtrPtrVIOV glGetPointeri_vEXTFunPtr
+
+glGetPointeri_vEXTFunPtr :: FunPtr (GLenum -> GLuint -> Ptr (Ptr ()) -> IO ())
+glGetPointeri_vEXTFunPtr = unsafePerformIO (getProcAddress "glGetPointeri_vEXT")
+
+{-# NOINLINE glGetPointeri_vEXTFunPtr #-}
+
+-- | Usage: @'glGetTextureImageEXT' texture target level format type pixels@
+--
+-- The parameter @texture@ is a @Texture@.
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Raw.Extension.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_ALPHA', 'Graphics.GL.Raw.Internal.Shared.GL_BLUE', 'Graphics.GL.Raw.Extension.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Raw.Extension.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Raw.Internal.Shared.GL_GREEN', 'Graphics.GL.Raw.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Raw.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Raw.Internal.Shared.GL_RED', 'Graphics.GL.Raw.Extension.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_RGB', 'Graphics.GL.Raw.Internal.Shared.GL_RGBA', 'Graphics.GL.Raw.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Raw.Extension.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
+--
+-- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_BITMAP', 'Graphics.GL.Raw.Internal.Shared.GL_BYTE', 'Graphics.GL.Raw.Internal.Shared.GL_FLOAT', 'Graphics.GL.Raw.Internal.Shared.GL_INT', 'Graphics.GL.Raw.Internal.Shared.GL_SHORT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
+--
+-- The length of @pixels@ should be @COMPSIZE(target,level,format,type)@.
+
+
+glGetTextureImageEXT :: MonadIO m => GLuint -> GLenum -> GLint -> GLenum -> GLenum -> Ptr () -> m ()
+glGetTextureImageEXT = ffiuintenumintenumenumPtrVIOV glGetTextureImageEXTFunPtr
+
+glGetTextureImageEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> GLenum -> GLenum -> Ptr () -> IO ())
+glGetTextureImageEXTFunPtr = unsafePerformIO (getProcAddress "glGetTextureImageEXT")
+
+{-# NOINLINE glGetTextureImageEXTFunPtr #-}
+
+-- | Usage: @'glGetTextureLevelParameterfvEXT' texture target level pname params@
+--
+-- The parameter @texture@ is a @Texture@.
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @pname@ is a @GetTextureParameter@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Raw.Extension.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Raw.Extension.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Raw.Extension.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Raw.Extension.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Raw.Extension.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Raw.Extension.SGIS.SharpenTexture.GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4DSIZE_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_ALPHA_SIZE', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BLUE_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BORDER', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Raw.Extension.NV.TextureBorderClamp.GL_TEXTURE_BORDER_COLOR_NV', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Shadow.GL_TEXTURE_COMPARE_OPERATOR_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_COMPONENTS', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_DEPTH_EXT', 'Graphics.GL.Raw.Extension.SGIS.TextureFilter4.GL_TEXTURE_FILTER4_SIZE_SGIS', 'Graphics.GL.Raw.Extension.SGIX.Shadow.GL_TEXTURE_GEQUAL_R_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_GREEN_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_HEIGHT', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_INTENSITY_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_INTERNAL_FORMAT', 'Graphics.GL.Raw.Extension.SGIX.Shadow.GL_TEXTURE_LEQUAL_R_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_LUMINANCE_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Raw.Extension.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_RED_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_RESIDENT', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_WIDTH', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_WRAP_T'.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetTextureLevelParameterfvEXT :: MonadIO m => GLuint -> GLenum -> GLint -> GLenum -> Ptr GLfloat -> m ()
+glGetTextureLevelParameterfvEXT = ffiuintenumintenumPtrfloatIOV glGetTextureLevelParameterfvEXTFunPtr
+
+glGetTextureLevelParameterfvEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> GLenum -> Ptr GLfloat -> IO ())
+glGetTextureLevelParameterfvEXTFunPtr = unsafePerformIO (getProcAddress "glGetTextureLevelParameterfvEXT")
+
+{-# NOINLINE glGetTextureLevelParameterfvEXTFunPtr #-}
+
+-- | Usage: @'glGetTextureLevelParameterivEXT' texture target level pname params@
+--
+-- The parameter @texture@ is a @Texture@.
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @pname@ is a @GetTextureParameter@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Raw.Extension.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Raw.Extension.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Raw.Extension.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Raw.Extension.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Raw.Extension.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Raw.Extension.SGIS.SharpenTexture.GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4DSIZE_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_ALPHA_SIZE', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BLUE_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BORDER', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Raw.Extension.NV.TextureBorderClamp.GL_TEXTURE_BORDER_COLOR_NV', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Shadow.GL_TEXTURE_COMPARE_OPERATOR_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_COMPONENTS', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_DEPTH_EXT', 'Graphics.GL.Raw.Extension.SGIS.TextureFilter4.GL_TEXTURE_FILTER4_SIZE_SGIS', 'Graphics.GL.Raw.Extension.SGIX.Shadow.GL_TEXTURE_GEQUAL_R_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_GREEN_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_HEIGHT', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_INTENSITY_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_INTERNAL_FORMAT', 'Graphics.GL.Raw.Extension.SGIX.Shadow.GL_TEXTURE_LEQUAL_R_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_LUMINANCE_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Raw.Extension.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_RED_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_RESIDENT', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_WIDTH', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_WRAP_T'.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetTextureLevelParameterivEXT :: MonadIO m => GLuint -> GLenum -> GLint -> GLenum -> Ptr GLint -> m ()
+glGetTextureLevelParameterivEXT = ffiuintenumintenumPtrintIOV glGetTextureLevelParameterivEXTFunPtr
+
+glGetTextureLevelParameterivEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> GLenum -> Ptr GLint -> IO ())
+glGetTextureLevelParameterivEXTFunPtr = unsafePerformIO (getProcAddress "glGetTextureLevelParameterivEXT")
+
+{-# NOINLINE glGetTextureLevelParameterivEXTFunPtr #-}
+
+-- | Usage: @'glGetTextureParameterIivEXT' texture target pname params@
+--
+-- The parameter @texture@ is a @Texture@.
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @pname@ is a @GetTextureParameter@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Raw.Extension.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Raw.Extension.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Raw.Extension.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Raw.Extension.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Raw.Extension.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Raw.Extension.SGIS.SharpenTexture.GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4DSIZE_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_ALPHA_SIZE', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BLUE_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BORDER', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Raw.Extension.NV.TextureBorderClamp.GL_TEXTURE_BORDER_COLOR_NV', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Shadow.GL_TEXTURE_COMPARE_OPERATOR_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_COMPONENTS', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_DEPTH_EXT', 'Graphics.GL.Raw.Extension.SGIS.TextureFilter4.GL_TEXTURE_FILTER4_SIZE_SGIS', 'Graphics.GL.Raw.Extension.SGIX.Shadow.GL_TEXTURE_GEQUAL_R_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_GREEN_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_HEIGHT', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_INTENSITY_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_INTERNAL_FORMAT', 'Graphics.GL.Raw.Extension.SGIX.Shadow.GL_TEXTURE_LEQUAL_R_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_LUMINANCE_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Raw.Extension.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_RED_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_RESIDENT', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_WIDTH', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_WRAP_T'.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetTextureParameterIivEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> Ptr GLint -> m ()
+glGetTextureParameterIivEXT = ffiuintenumenumPtrintIOV glGetTextureParameterIivEXTFunPtr
+
+glGetTextureParameterIivEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> Ptr GLint -> IO ())
+glGetTextureParameterIivEXTFunPtr = unsafePerformIO (getProcAddress "glGetTextureParameterIivEXT")
+
+{-# NOINLINE glGetTextureParameterIivEXTFunPtr #-}
+
+-- | Usage: @'glGetTextureParameterIuivEXT' texture target pname params@
+--
+-- The parameter @texture@ is a @Texture@.
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @pname@ is a @GetTextureParameter@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Raw.Extension.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Raw.Extension.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Raw.Extension.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Raw.Extension.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Raw.Extension.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Raw.Extension.SGIS.SharpenTexture.GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4DSIZE_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_ALPHA_SIZE', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BLUE_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BORDER', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Raw.Extension.NV.TextureBorderClamp.GL_TEXTURE_BORDER_COLOR_NV', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Shadow.GL_TEXTURE_COMPARE_OPERATOR_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_COMPONENTS', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_DEPTH_EXT', 'Graphics.GL.Raw.Extension.SGIS.TextureFilter4.GL_TEXTURE_FILTER4_SIZE_SGIS', 'Graphics.GL.Raw.Extension.SGIX.Shadow.GL_TEXTURE_GEQUAL_R_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_GREEN_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_HEIGHT', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_INTENSITY_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_INTERNAL_FORMAT', 'Graphics.GL.Raw.Extension.SGIX.Shadow.GL_TEXTURE_LEQUAL_R_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_LUMINANCE_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Raw.Extension.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_RED_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_RESIDENT', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_WIDTH', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_WRAP_T'.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetTextureParameterIuivEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> Ptr GLuint -> m ()
+glGetTextureParameterIuivEXT = ffiuintenumenumPtruintIOV glGetTextureParameterIuivEXTFunPtr
+
+glGetTextureParameterIuivEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> Ptr GLuint -> IO ())
+glGetTextureParameterIuivEXTFunPtr = unsafePerformIO (getProcAddress "glGetTextureParameterIuivEXT")
+
+{-# NOINLINE glGetTextureParameterIuivEXTFunPtr #-}
+
+-- | Usage: @'glGetTextureParameterfvEXT' texture target pname params@
+--
+-- The parameter @texture@ is a @Texture@.
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @pname@ is a @GetTextureParameter@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Raw.Extension.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Raw.Extension.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Raw.Extension.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Raw.Extension.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Raw.Extension.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Raw.Extension.SGIS.SharpenTexture.GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4DSIZE_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_ALPHA_SIZE', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BLUE_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BORDER', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Raw.Extension.NV.TextureBorderClamp.GL_TEXTURE_BORDER_COLOR_NV', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Shadow.GL_TEXTURE_COMPARE_OPERATOR_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_COMPONENTS', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_DEPTH_EXT', 'Graphics.GL.Raw.Extension.SGIS.TextureFilter4.GL_TEXTURE_FILTER4_SIZE_SGIS', 'Graphics.GL.Raw.Extension.SGIX.Shadow.GL_TEXTURE_GEQUAL_R_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_GREEN_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_HEIGHT', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_INTENSITY_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_INTERNAL_FORMAT', 'Graphics.GL.Raw.Extension.SGIX.Shadow.GL_TEXTURE_LEQUAL_R_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_LUMINANCE_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Raw.Extension.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_RED_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_RESIDENT', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_WIDTH', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_WRAP_T'.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetTextureParameterfvEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> Ptr GLfloat -> m ()
+glGetTextureParameterfvEXT = ffiuintenumenumPtrfloatIOV glGetTextureParameterfvEXTFunPtr
+
+glGetTextureParameterfvEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> Ptr GLfloat -> IO ())
+glGetTextureParameterfvEXTFunPtr = unsafePerformIO (getProcAddress "glGetTextureParameterfvEXT")
+
+{-# NOINLINE glGetTextureParameterfvEXTFunPtr #-}
+
+-- | Usage: @'glGetTextureParameterivEXT' texture target pname params@
+--
+-- The parameter @texture@ is a @Texture@.
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @pname@ is a @GetTextureParameter@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Raw.Extension.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Raw.Extension.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Raw.Extension.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Raw.Extension.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Raw.Extension.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Raw.Extension.SGIS.SharpenTexture.GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4DSIZE_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_ALPHA_SIZE', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BLUE_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BORDER', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Raw.Extension.NV.TextureBorderClamp.GL_TEXTURE_BORDER_COLOR_NV', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Shadow.GL_TEXTURE_COMPARE_OPERATOR_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_COMPONENTS', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_DEPTH_EXT', 'Graphics.GL.Raw.Extension.SGIS.TextureFilter4.GL_TEXTURE_FILTER4_SIZE_SGIS', 'Graphics.GL.Raw.Extension.SGIX.Shadow.GL_TEXTURE_GEQUAL_R_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_GREEN_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_HEIGHT', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_INTENSITY_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_INTERNAL_FORMAT', 'Graphics.GL.Raw.Extension.SGIX.Shadow.GL_TEXTURE_LEQUAL_R_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_LUMINANCE_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Raw.Extension.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_RED_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_RESIDENT', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_WIDTH', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_WRAP_T'.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetTextureParameterivEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> Ptr GLint -> m ()
+glGetTextureParameterivEXT = ffiuintenumenumPtrintIOV glGetTextureParameterivEXTFunPtr
+
+glGetTextureParameterivEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> Ptr GLint -> IO ())
+glGetTextureParameterivEXTFunPtr = unsafePerformIO (getProcAddress "glGetTextureParameterivEXT")
+
+{-# NOINLINE glGetTextureParameterivEXTFunPtr #-}
+
+-- | Usage: @'glGetVertexArrayIntegeri_vEXT' vaobj index pname param@
+
+
+glGetVertexArrayIntegeri_vEXT :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr GLint -> m ()
+glGetVertexArrayIntegeri_vEXT = ffiuintuintenumPtrintIOV glGetVertexArrayIntegeri_vEXTFunPtr
+
+glGetVertexArrayIntegeri_vEXTFunPtr :: FunPtr (GLuint -> GLuint -> GLenum -> Ptr GLint -> IO ())
+glGetVertexArrayIntegeri_vEXTFunPtr = unsafePerformIO (getProcAddress "glGetVertexArrayIntegeri_vEXT")
+
+{-# NOINLINE glGetVertexArrayIntegeri_vEXTFunPtr #-}
+
+-- | Usage: @'glGetVertexArrayIntegervEXT' vaobj pname param@
+
+
+glGetVertexArrayIntegervEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
+glGetVertexArrayIntegervEXT = ffiuintenumPtrintIOV glGetVertexArrayIntegervEXTFunPtr
+
+glGetVertexArrayIntegervEXTFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+glGetVertexArrayIntegervEXTFunPtr = unsafePerformIO (getProcAddress "glGetVertexArrayIntegervEXT")
+
+{-# NOINLINE glGetVertexArrayIntegervEXTFunPtr #-}
+
+-- | Usage: @'glGetVertexArrayPointeri_vEXT' vaobj index pname param@
+
+
+glGetVertexArrayPointeri_vEXT :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr (Ptr ()) -> m ()
+glGetVertexArrayPointeri_vEXT = ffiuintuintenumPtrPtrVIOV glGetVertexArrayPointeri_vEXTFunPtr
+
+glGetVertexArrayPointeri_vEXTFunPtr :: FunPtr (GLuint -> GLuint -> GLenum -> Ptr (Ptr ()) -> IO ())
+glGetVertexArrayPointeri_vEXTFunPtr = unsafePerformIO (getProcAddress "glGetVertexArrayPointeri_vEXT")
+
+{-# NOINLINE glGetVertexArrayPointeri_vEXTFunPtr #-}
+
+-- | Usage: @'glGetVertexArrayPointervEXT' vaobj pname param@
+--
+-- The length of @param@ should be @1@.
+
+
+glGetVertexArrayPointervEXT :: MonadIO m => GLuint -> GLenum -> Ptr (Ptr ()) -> m ()
+glGetVertexArrayPointervEXT = ffiuintenumPtrPtrVIOV glGetVertexArrayPointervEXTFunPtr
+
+glGetVertexArrayPointervEXTFunPtr :: FunPtr (GLuint -> GLenum -> Ptr (Ptr ()) -> IO ())
+glGetVertexArrayPointervEXTFunPtr = unsafePerformIO (getProcAddress "glGetVertexArrayPointervEXT")
+
+{-# NOINLINE glGetVertexArrayPointervEXTFunPtr #-}
+
+-- | Usage: @'glMapNamedBufferEXT' buffer access@
+--
+-- The parameter @access@ is a @VertexBufferObjectAccess@.
+
+
+glMapNamedBufferEXT :: MonadIO m => GLuint -> GLenum -> m (Ptr ())
+glMapNamedBufferEXT = ffiuintenumIOPtrV glMapNamedBufferEXTFunPtr
+
+glMapNamedBufferEXTFunPtr :: FunPtr (GLuint -> GLenum -> IO (Ptr ()))
+glMapNamedBufferEXTFunPtr = unsafePerformIO (getProcAddress "glMapNamedBufferEXT")
+
+{-# NOINLINE glMapNamedBufferEXTFunPtr #-}
+
+-- | Usage: @'glMapNamedBufferRangeEXT' buffer offset length access@
+--
+-- The parameter @access@ is a @BufferAccessMask@.
+
+
+glMapNamedBufferRangeEXT :: MonadIO m => GLuint -> GLintptr -> GLsizeiptr -> GLbitfield -> m (Ptr ())
+glMapNamedBufferRangeEXT = ffiuintintptrsizeiptrbitfieldIOPtrV glMapNamedBufferRangeEXTFunPtr
+
+glMapNamedBufferRangeEXTFunPtr :: FunPtr (GLuint -> GLintptr -> GLsizeiptr -> GLbitfield -> IO (Ptr ()))
+glMapNamedBufferRangeEXTFunPtr = unsafePerformIO (getProcAddress "glMapNamedBufferRangeEXT")
+
+{-# NOINLINE glMapNamedBufferRangeEXTFunPtr #-}
+
+-- | Usage: @'glMatrixFrustumEXT' mode left right bottom top zNear zFar@
+--
+-- The parameter @mode@ is a @MatrixMode@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_MODELVIEW', 'Graphics.GL.Raw.Extension.EXT.VertexWeighting.GL_MODELVIEW0_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROJECTION', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE'.
+
+
+glMatrixFrustumEXT :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
+glMatrixFrustumEXT = ffienumdoubledoubledoubledoubledoubledoubleIOV glMatrixFrustumEXTFunPtr
+
+glMatrixFrustumEXTFunPtr :: FunPtr (GLenum -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
+glMatrixFrustumEXTFunPtr = unsafePerformIO (getProcAddress "glMatrixFrustumEXT")
+
+{-# NOINLINE glMatrixFrustumEXTFunPtr #-}
+
+-- | Usage: @'glMatrixLoadIdentityEXT' mode@
+--
+-- The parameter @mode@ is a @MatrixMode@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_MODELVIEW', 'Graphics.GL.Raw.Extension.EXT.VertexWeighting.GL_MODELVIEW0_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROJECTION', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE'.
+
+
+glMatrixLoadIdentityEXT :: MonadIO m => GLenum -> m ()
+glMatrixLoadIdentityEXT = ffienumIOV glMatrixLoadIdentityEXTFunPtr
+
+glMatrixLoadIdentityEXTFunPtr :: FunPtr (GLenum -> IO ())
+glMatrixLoadIdentityEXTFunPtr = unsafePerformIO (getProcAddress "glMatrixLoadIdentityEXT")
+
+{-# NOINLINE glMatrixLoadIdentityEXTFunPtr #-}
+
+-- | Usage: @'glMatrixLoadTransposedEXT' mode m@
+--
+-- The parameter @mode@ is a @MatrixMode@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_MODELVIEW', 'Graphics.GL.Raw.Extension.EXT.VertexWeighting.GL_MODELVIEW0_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROJECTION', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE'.
+--
+-- The length of @m@ should be @16@.
+
+
+glMatrixLoadTransposedEXT :: MonadIO m => GLenum -> Ptr GLdouble -> m ()
+glMatrixLoadTransposedEXT = ffienumPtrdoubleIOV glMatrixLoadTransposedEXTFunPtr
+
+glMatrixLoadTransposedEXTFunPtr :: FunPtr (GLenum -> Ptr GLdouble -> IO ())
+glMatrixLoadTransposedEXTFunPtr = unsafePerformIO (getProcAddress "glMatrixLoadTransposedEXT")
+
+{-# NOINLINE glMatrixLoadTransposedEXTFunPtr #-}
+
+-- | Usage: @'glMatrixLoadTransposefEXT' mode m@
+--
+-- The parameter @mode@ is a @MatrixMode@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_MODELVIEW', 'Graphics.GL.Raw.Extension.EXT.VertexWeighting.GL_MODELVIEW0_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROJECTION', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE'.
+--
+-- The length of @m@ should be @16@.
+
+
+glMatrixLoadTransposefEXT :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
+glMatrixLoadTransposefEXT = ffienumPtrfloatIOV glMatrixLoadTransposefEXTFunPtr
+
+glMatrixLoadTransposefEXTFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
+glMatrixLoadTransposefEXTFunPtr = unsafePerformIO (getProcAddress "glMatrixLoadTransposefEXT")
+
+{-# NOINLINE glMatrixLoadTransposefEXTFunPtr #-}
+
+-- | Usage: @'glMatrixLoaddEXT' mode m@
+--
+-- The parameter @mode@ is a @MatrixMode@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_MODELVIEW', 'Graphics.GL.Raw.Extension.EXT.VertexWeighting.GL_MODELVIEW0_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROJECTION', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE'.
+--
+-- The length of @m@ should be @16@.
+
+
+glMatrixLoaddEXT :: MonadIO m => GLenum -> Ptr GLdouble -> m ()
+glMatrixLoaddEXT = ffienumPtrdoubleIOV glMatrixLoaddEXTFunPtr
+
+glMatrixLoaddEXTFunPtr :: FunPtr (GLenum -> Ptr GLdouble -> IO ())
+glMatrixLoaddEXTFunPtr = unsafePerformIO (getProcAddress "glMatrixLoaddEXT")
+
+{-# NOINLINE glMatrixLoaddEXTFunPtr #-}
+
+-- | Usage: @'glMatrixLoadfEXT' mode m@
+--
+-- The parameter @mode@ is a @MatrixMode@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_MODELVIEW', 'Graphics.GL.Raw.Extension.EXT.VertexWeighting.GL_MODELVIEW0_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROJECTION', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE'.
+--
+-- The length of @m@ should be @16@.
+
+
+glMatrixLoadfEXT :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
+glMatrixLoadfEXT = ffienumPtrfloatIOV glMatrixLoadfEXTFunPtr
+
+glMatrixLoadfEXTFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
+glMatrixLoadfEXTFunPtr = unsafePerformIO (getProcAddress "glMatrixLoadfEXT")
+
+{-# NOINLINE glMatrixLoadfEXTFunPtr #-}
+
+-- | Usage: @'glMatrixMultTransposedEXT' mode m@
+--
+-- The parameter @mode@ is a @MatrixMode@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_MODELVIEW', 'Graphics.GL.Raw.Extension.EXT.VertexWeighting.GL_MODELVIEW0_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROJECTION', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE'.
+--
+-- The length of @m@ should be @16@.
+
+
+glMatrixMultTransposedEXT :: MonadIO m => GLenum -> Ptr GLdouble -> m ()
+glMatrixMultTransposedEXT = ffienumPtrdoubleIOV glMatrixMultTransposedEXTFunPtr
+
+glMatrixMultTransposedEXTFunPtr :: FunPtr (GLenum -> Ptr GLdouble -> IO ())
+glMatrixMultTransposedEXTFunPtr = unsafePerformIO (getProcAddress "glMatrixMultTransposedEXT")
+
+{-# NOINLINE glMatrixMultTransposedEXTFunPtr #-}
+
+-- | Usage: @'glMatrixMultTransposefEXT' mode m@
+--
+-- The parameter @mode@ is a @MatrixMode@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_MODELVIEW', 'Graphics.GL.Raw.Extension.EXT.VertexWeighting.GL_MODELVIEW0_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROJECTION', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE'.
+--
+-- The length of @m@ should be @16@.
+
+
+glMatrixMultTransposefEXT :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
+glMatrixMultTransposefEXT = ffienumPtrfloatIOV glMatrixMultTransposefEXTFunPtr
+
+glMatrixMultTransposefEXTFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
+glMatrixMultTransposefEXTFunPtr = unsafePerformIO (getProcAddress "glMatrixMultTransposefEXT")
+
+{-# NOINLINE glMatrixMultTransposefEXTFunPtr #-}
+
+-- | Usage: @'glMatrixMultdEXT' mode m@
+--
+-- The parameter @mode@ is a @MatrixMode@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_MODELVIEW', 'Graphics.GL.Raw.Extension.EXT.VertexWeighting.GL_MODELVIEW0_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROJECTION', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE'.
+--
+-- The length of @m@ should be @16@.
+
+
+glMatrixMultdEXT :: MonadIO m => GLenum -> Ptr GLdouble -> m ()
+glMatrixMultdEXT = ffienumPtrdoubleIOV glMatrixMultdEXTFunPtr
+
+glMatrixMultdEXTFunPtr :: FunPtr (GLenum -> Ptr GLdouble -> IO ())
+glMatrixMultdEXTFunPtr = unsafePerformIO (getProcAddress "glMatrixMultdEXT")
+
+{-# NOINLINE glMatrixMultdEXTFunPtr #-}
+
+-- | Usage: @'glMatrixMultfEXT' mode m@
+--
+-- The parameter @mode@ is a @MatrixMode@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_MODELVIEW', 'Graphics.GL.Raw.Extension.EXT.VertexWeighting.GL_MODELVIEW0_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROJECTION', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE'.
+--
+-- The length of @m@ should be @16@.
+
+
+glMatrixMultfEXT :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
+glMatrixMultfEXT = ffienumPtrfloatIOV glMatrixMultfEXTFunPtr
+
+glMatrixMultfEXTFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
+glMatrixMultfEXTFunPtr = unsafePerformIO (getProcAddress "glMatrixMultfEXT")
+
+{-# NOINLINE glMatrixMultfEXTFunPtr #-}
+
+-- | Usage: @'glMatrixOrthoEXT' mode left right bottom top zNear zFar@
+--
+-- The parameter @mode@ is a @MatrixMode@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_MODELVIEW', 'Graphics.GL.Raw.Extension.EXT.VertexWeighting.GL_MODELVIEW0_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROJECTION', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE'.
+
+
+glMatrixOrthoEXT :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
+glMatrixOrthoEXT = ffienumdoubledoubledoubledoubledoubledoubleIOV glMatrixOrthoEXTFunPtr
+
+glMatrixOrthoEXTFunPtr :: FunPtr (GLenum -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
+glMatrixOrthoEXTFunPtr = unsafePerformIO (getProcAddress "glMatrixOrthoEXT")
+
+{-# NOINLINE glMatrixOrthoEXTFunPtr #-}
+
+-- | Usage: @'glMatrixPopEXT' mode@
+--
+-- The parameter @mode@ is a @MatrixMode@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_MODELVIEW', 'Graphics.GL.Raw.Extension.EXT.VertexWeighting.GL_MODELVIEW0_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROJECTION', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE'.
+
+
+glMatrixPopEXT :: MonadIO m => GLenum -> m ()
+glMatrixPopEXT = ffienumIOV glMatrixPopEXTFunPtr
+
+glMatrixPopEXTFunPtr :: FunPtr (GLenum -> IO ())
+glMatrixPopEXTFunPtr = unsafePerformIO (getProcAddress "glMatrixPopEXT")
+
+{-# NOINLINE glMatrixPopEXTFunPtr #-}
+
+-- | Usage: @'glMatrixPushEXT' mode@
+--
+-- The parameter @mode@ is a @MatrixMode@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_MODELVIEW', 'Graphics.GL.Raw.Extension.EXT.VertexWeighting.GL_MODELVIEW0_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROJECTION', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE'.
+
+
+glMatrixPushEXT :: MonadIO m => GLenum -> m ()
+glMatrixPushEXT = ffienumIOV glMatrixPushEXTFunPtr
+
+glMatrixPushEXTFunPtr :: FunPtr (GLenum -> IO ())
+glMatrixPushEXTFunPtr = unsafePerformIO (getProcAddress "glMatrixPushEXT")
+
+{-# NOINLINE glMatrixPushEXTFunPtr #-}
+
+-- | Usage: @'glMatrixRotatedEXT' mode angle x y z@
+--
+-- The parameter @mode@ is a @MatrixMode@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_MODELVIEW', 'Graphics.GL.Raw.Extension.EXT.VertexWeighting.GL_MODELVIEW0_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROJECTION', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE'.
+
+
+glMatrixRotatedEXT :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
+glMatrixRotatedEXT = ffienumdoubledoubledoubledoubleIOV glMatrixRotatedEXTFunPtr
+
+glMatrixRotatedEXTFunPtr :: FunPtr (GLenum -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
+glMatrixRotatedEXTFunPtr = unsafePerformIO (getProcAddress "glMatrixRotatedEXT")
+
+{-# NOINLINE glMatrixRotatedEXTFunPtr #-}
+
+-- | Usage: @'glMatrixRotatefEXT' mode angle x y z@
+--
+-- The parameter @mode@ is a @MatrixMode@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_MODELVIEW', 'Graphics.GL.Raw.Extension.EXT.VertexWeighting.GL_MODELVIEW0_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROJECTION', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE'.
+
+
+glMatrixRotatefEXT :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
+glMatrixRotatefEXT = ffienumfloatfloatfloatfloatIOV glMatrixRotatefEXTFunPtr
+
+glMatrixRotatefEXTFunPtr :: FunPtr (GLenum -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+glMatrixRotatefEXTFunPtr = unsafePerformIO (getProcAddress "glMatrixRotatefEXT")
+
+{-# NOINLINE glMatrixRotatefEXTFunPtr #-}
+
+-- | Usage: @'glMatrixScaledEXT' mode x y z@
+--
+-- The parameter @mode@ is a @MatrixMode@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_MODELVIEW', 'Graphics.GL.Raw.Extension.EXT.VertexWeighting.GL_MODELVIEW0_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROJECTION', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE'.
+
+
+glMatrixScaledEXT :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLdouble -> m ()
+glMatrixScaledEXT = ffienumdoubledoubledoubleIOV glMatrixScaledEXTFunPtr
+
+glMatrixScaledEXTFunPtr :: FunPtr (GLenum -> GLdouble -> GLdouble -> GLdouble -> IO ())
+glMatrixScaledEXTFunPtr = unsafePerformIO (getProcAddress "glMatrixScaledEXT")
+
+{-# NOINLINE glMatrixScaledEXTFunPtr #-}
+
+-- | Usage: @'glMatrixScalefEXT' mode x y z@
+--
+-- The parameter @mode@ is a @MatrixMode@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_MODELVIEW', 'Graphics.GL.Raw.Extension.EXT.VertexWeighting.GL_MODELVIEW0_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROJECTION', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE'.
+
+
+glMatrixScalefEXT :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLfloat -> m ()
+glMatrixScalefEXT = ffienumfloatfloatfloatIOV glMatrixScalefEXTFunPtr
+
+glMatrixScalefEXTFunPtr :: FunPtr (GLenum -> GLfloat -> GLfloat -> GLfloat -> IO ())
+glMatrixScalefEXTFunPtr = unsafePerformIO (getProcAddress "glMatrixScalefEXT")
+
+{-# NOINLINE glMatrixScalefEXTFunPtr #-}
+
+-- | Usage: @'glMatrixTranslatedEXT' mode x y z@
+--
+-- The parameter @mode@ is a @MatrixMode@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_MODELVIEW', 'Graphics.GL.Raw.Extension.EXT.VertexWeighting.GL_MODELVIEW0_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROJECTION', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE'.
+
+
+glMatrixTranslatedEXT :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLdouble -> m ()
+glMatrixTranslatedEXT = ffienumdoubledoubledoubleIOV glMatrixTranslatedEXTFunPtr
+
+glMatrixTranslatedEXTFunPtr :: FunPtr (GLenum -> GLdouble -> GLdouble -> GLdouble -> IO ())
+glMatrixTranslatedEXTFunPtr = unsafePerformIO (getProcAddress "glMatrixTranslatedEXT")
+
+{-# NOINLINE glMatrixTranslatedEXTFunPtr #-}
+
+-- | Usage: @'glMatrixTranslatefEXT' mode x y z@
+--
+-- The parameter @mode@ is a @MatrixMode@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_MODELVIEW', 'Graphics.GL.Raw.Extension.EXT.VertexWeighting.GL_MODELVIEW0_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROJECTION', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE'.
+
+
+glMatrixTranslatefEXT :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLfloat -> m ()
+glMatrixTranslatefEXT = ffienumfloatfloatfloatIOV glMatrixTranslatefEXTFunPtr
+
+glMatrixTranslatefEXTFunPtr :: FunPtr (GLenum -> GLfloat -> GLfloat -> GLfloat -> IO ())
+glMatrixTranslatefEXTFunPtr = unsafePerformIO (getProcAddress "glMatrixTranslatefEXT")
+
+{-# NOINLINE glMatrixTranslatefEXTFunPtr #-}
+
+-- | Usage: @'glMultiTexBufferEXT' texunit target internalformat buffer@
+--
+-- The parameter @texunit@ is a @TextureUnit@.
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @internalformat@ is a @TypeEnum@.
+
+
+glMultiTexBufferEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> m ()
+glMultiTexBufferEXT = ffienumenumenumuintIOV glMultiTexBufferEXTFunPtr
+
+glMultiTexBufferEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLuint -> IO ())
+glMultiTexBufferEXTFunPtr = unsafePerformIO (getProcAddress "glMultiTexBufferEXT")
+
+{-# NOINLINE glMultiTexBufferEXTFunPtr #-}
+
+-- | Usage: @'glMultiTexCoordPointerEXT' texunit size type stride pointer@
+--
+-- The parameter @texunit@ is a @TextureUnit@.
+--
+-- The parameter @type@ is a @TexCoordPointerType@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_DOUBLE', 'Graphics.GL.Raw.Internal.Shared.GL_FLOAT', 'Graphics.GL.Raw.Internal.Shared.GL_INT', 'Graphics.GL.Raw.Internal.Shared.GL_SHORT'.
+--
+-- The length of @pointer@ should be @COMPSIZE(size,type,stride)@.
+
+
+glMultiTexCoordPointerEXT :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> Ptr () -> m ()
+glMultiTexCoordPointerEXT = ffienumintenumsizeiPtrVIOV glMultiTexCoordPointerEXTFunPtr
+
+glMultiTexCoordPointerEXTFunPtr :: FunPtr (GLenum -> GLint -> GLenum -> GLsizei -> Ptr () -> IO ())
+glMultiTexCoordPointerEXTFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoordPointerEXT")
+
+{-# NOINLINE glMultiTexCoordPointerEXTFunPtr #-}
+
+-- | Usage: @'glMultiTexEnvfEXT' texunit target pname param@
+--
+-- The parameter @texunit@ is a @TextureUnit@.
+--
+-- The parameter @target@ is a @TextureEnvTarget@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_ENV'.
+--
+-- The parameter @pname@ is a @TextureEnvParameter@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_ENV_COLOR', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_ENV_MODE'.
+--
+-- The parameter @param@ is a @CheckedFloat32@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Extension.EXT.DirectStateAccess.glMultiTexEnvfvEXT'.
+
+
+glMultiTexEnvfEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> GLfloat -> m ()
+glMultiTexEnvfEXT = ffienumenumenumfloatIOV glMultiTexEnvfEXTFunPtr
+
+glMultiTexEnvfEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLfloat -> IO ())
+glMultiTexEnvfEXTFunPtr = unsafePerformIO (getProcAddress "glMultiTexEnvfEXT")
+
+{-# NOINLINE glMultiTexEnvfEXTFunPtr #-}
+
+-- | Usage: @'glMultiTexEnvfvEXT' texunit target pname params@
+--
+-- The parameter @texunit@ is a @TextureUnit@.
+--
+-- The parameter @target@ is a @TextureEnvTarget@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_ENV'.
+--
+-- The parameter @pname@ is a @TextureEnvParameter@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_ENV_COLOR', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_ENV_MODE'.
+--
+-- The parameter @params@ is a @CheckedFloat32@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glMultiTexEnvfvEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLfloat -> m ()
+glMultiTexEnvfvEXT = ffienumenumenumPtrfloatIOV glMultiTexEnvfvEXTFunPtr
+
+glMultiTexEnvfvEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLfloat -> IO ())
+glMultiTexEnvfvEXTFunPtr = unsafePerformIO (getProcAddress "glMultiTexEnvfvEXT")
+
+{-# NOINLINE glMultiTexEnvfvEXTFunPtr #-}
+
+-- | Usage: @'glMultiTexEnviEXT' texunit target pname param@
+--
+-- The parameter @texunit@ is a @TextureUnit@.
+--
+-- The parameter @target@ is a @TextureEnvTarget@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_ENV'.
+--
+-- The parameter @pname@ is a @TextureEnvParameter@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_ENV_COLOR', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_ENV_MODE'.
+--
+-- The parameter @param@ is a @CheckedInt32@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Extension.EXT.DirectStateAccess.glMultiTexEnvivEXT'.
+
+
+glMultiTexEnviEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> GLint -> m ()
+glMultiTexEnviEXT = ffienumenumenumintIOV glMultiTexEnviEXTFunPtr
+
+glMultiTexEnviEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLint -> IO ())
+glMultiTexEnviEXTFunPtr = unsafePerformIO (getProcAddress "glMultiTexEnviEXT")
+
+{-# NOINLINE glMultiTexEnviEXTFunPtr #-}
+
+-- | Usage: @'glMultiTexEnvivEXT' texunit target pname params@
+--
+-- The parameter @texunit@ is a @TextureUnit@.
+--
+-- The parameter @target@ is a @TextureEnvTarget@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_ENV'.
+--
+-- The parameter @pname@ is a @TextureEnvParameter@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_ENV_COLOR', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_ENV_MODE'.
+--
+-- The parameter @params@ is a @CheckedInt32@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glMultiTexEnvivEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLint -> m ()
+glMultiTexEnvivEXT = ffienumenumenumPtrintIOV glMultiTexEnvivEXTFunPtr
+
+glMultiTexEnvivEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ())
+glMultiTexEnvivEXTFunPtr = unsafePerformIO (getProcAddress "glMultiTexEnvivEXT")
+
+{-# NOINLINE glMultiTexEnvivEXTFunPtr #-}
+
+-- | Usage: @'glMultiTexGendEXT' texunit coord pname param@
+--
+-- The parameter @texunit@ is a @TextureUnit@.
+--
+-- The parameter @coord@ is a @TextureCoordName@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_S', 'Graphics.GL.Raw.Internal.Shared.GL_T', 'Graphics.GL.Raw.Internal.Shared.GL_R', 'Graphics.GL.Raw.Internal.Shared.GL_Q'.
+--
+-- The parameter @pname@ is a @TextureGenParameter@, one of: 'Graphics.GL.Raw.Extension.SGIS.PointLineTexgen.GL_EYE_LINE_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_EYE_PLANE', 'Graphics.GL.Raw.Extension.SGIS.PointLineTexgen.GL_EYE_POINT_SGIS', 'Graphics.GL.Raw.Extension.SGIS.PointLineTexgen.GL_OBJECT_LINE_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_OBJECT_PLANE', 'Graphics.GL.Raw.Extension.SGIS.PointLineTexgen.GL_OBJECT_POINT_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_GEN_MODE'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Extension.EXT.DirectStateAccess.glMultiTexGendvEXT'.
+
+
+glMultiTexGendEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> GLdouble -> m ()
+glMultiTexGendEXT = ffienumenumenumdoubleIOV glMultiTexGendEXTFunPtr
+
+glMultiTexGendEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLdouble -> IO ())
+glMultiTexGendEXTFunPtr = unsafePerformIO (getProcAddress "glMultiTexGendEXT")
+
+{-# NOINLINE glMultiTexGendEXTFunPtr #-}
+
+-- | Usage: @'glMultiTexGendvEXT' texunit coord pname params@
+--
+-- The parameter @texunit@ is a @TextureUnit@.
+--
+-- The parameter @coord@ is a @TextureCoordName@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_S', 'Graphics.GL.Raw.Internal.Shared.GL_T', 'Graphics.GL.Raw.Internal.Shared.GL_R', 'Graphics.GL.Raw.Internal.Shared.GL_Q'.
+--
+-- The parameter @pname@ is a @TextureGenParameter@, one of: 'Graphics.GL.Raw.Extension.SGIS.PointLineTexgen.GL_EYE_LINE_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_EYE_PLANE', 'Graphics.GL.Raw.Extension.SGIS.PointLineTexgen.GL_EYE_POINT_SGIS', 'Graphics.GL.Raw.Extension.SGIS.PointLineTexgen.GL_OBJECT_LINE_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_OBJECT_PLANE', 'Graphics.GL.Raw.Extension.SGIS.PointLineTexgen.GL_OBJECT_POINT_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_GEN_MODE'.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glMultiTexGendvEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLdouble -> m ()
+glMultiTexGendvEXT = ffienumenumenumPtrdoubleIOV glMultiTexGendvEXTFunPtr
+
+glMultiTexGendvEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLdouble -> IO ())
+glMultiTexGendvEXTFunPtr = unsafePerformIO (getProcAddress "glMultiTexGendvEXT")
+
+{-# NOINLINE glMultiTexGendvEXTFunPtr #-}
+
+-- | Usage: @'glMultiTexGenfEXT' texunit coord pname param@
+--
+-- The parameter @texunit@ is a @TextureUnit@.
+--
+-- The parameter @coord@ is a @TextureCoordName@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_S', 'Graphics.GL.Raw.Internal.Shared.GL_T', 'Graphics.GL.Raw.Internal.Shared.GL_R', 'Graphics.GL.Raw.Internal.Shared.GL_Q'.
+--
+-- The parameter @pname@ is a @TextureGenParameter@, one of: 'Graphics.GL.Raw.Extension.SGIS.PointLineTexgen.GL_EYE_LINE_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_EYE_PLANE', 'Graphics.GL.Raw.Extension.SGIS.PointLineTexgen.GL_EYE_POINT_SGIS', 'Graphics.GL.Raw.Extension.SGIS.PointLineTexgen.GL_OBJECT_LINE_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_OBJECT_PLANE', 'Graphics.GL.Raw.Extension.SGIS.PointLineTexgen.GL_OBJECT_POINT_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_GEN_MODE'.
+--
+-- The parameter @param@ is a @CheckedFloat32@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Extension.EXT.DirectStateAccess.glMultiTexGenfvEXT'.
+
+
+glMultiTexGenfEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> GLfloat -> m ()
+glMultiTexGenfEXT = ffienumenumenumfloatIOV glMultiTexGenfEXTFunPtr
+
+glMultiTexGenfEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLfloat -> IO ())
+glMultiTexGenfEXTFunPtr = unsafePerformIO (getProcAddress "glMultiTexGenfEXT")
+
+{-# NOINLINE glMultiTexGenfEXTFunPtr #-}
+
+-- | Usage: @'glMultiTexGenfvEXT' texunit coord pname params@
+--
+-- The parameter @texunit@ is a @TextureUnit@.
+--
+-- The parameter @coord@ is a @TextureCoordName@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_S', 'Graphics.GL.Raw.Internal.Shared.GL_T', 'Graphics.GL.Raw.Internal.Shared.GL_R', 'Graphics.GL.Raw.Internal.Shared.GL_Q'.
+--
+-- The parameter @pname@ is a @TextureGenParameter@, one of: 'Graphics.GL.Raw.Extension.SGIS.PointLineTexgen.GL_EYE_LINE_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_EYE_PLANE', 'Graphics.GL.Raw.Extension.SGIS.PointLineTexgen.GL_EYE_POINT_SGIS', 'Graphics.GL.Raw.Extension.SGIS.PointLineTexgen.GL_OBJECT_LINE_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_OBJECT_PLANE', 'Graphics.GL.Raw.Extension.SGIS.PointLineTexgen.GL_OBJECT_POINT_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_GEN_MODE'.
+--
+-- The parameter @params@ is a @CheckedFloat32@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glMultiTexGenfvEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLfloat -> m ()
+glMultiTexGenfvEXT = ffienumenumenumPtrfloatIOV glMultiTexGenfvEXTFunPtr
+
+glMultiTexGenfvEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLfloat -> IO ())
+glMultiTexGenfvEXTFunPtr = unsafePerformIO (getProcAddress "glMultiTexGenfvEXT")
+
+{-# NOINLINE glMultiTexGenfvEXTFunPtr #-}
+
+-- | Usage: @'glMultiTexGeniEXT' texunit coord pname param@
+--
+-- The parameter @texunit@ is a @TextureUnit@.
+--
+-- The parameter @coord@ is a @TextureCoordName@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_S', 'Graphics.GL.Raw.Internal.Shared.GL_T', 'Graphics.GL.Raw.Internal.Shared.GL_R', 'Graphics.GL.Raw.Internal.Shared.GL_Q'.
+--
+-- The parameter @pname@ is a @TextureGenParameter@, one of: 'Graphics.GL.Raw.Extension.SGIS.PointLineTexgen.GL_EYE_LINE_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_EYE_PLANE', 'Graphics.GL.Raw.Extension.SGIS.PointLineTexgen.GL_EYE_POINT_SGIS', 'Graphics.GL.Raw.Extension.SGIS.PointLineTexgen.GL_OBJECT_LINE_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_OBJECT_PLANE', 'Graphics.GL.Raw.Extension.SGIS.PointLineTexgen.GL_OBJECT_POINT_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_GEN_MODE'.
+--
+-- The parameter @param@ is a @CheckedInt32@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Extension.EXT.DirectStateAccess.glMultiTexGenivEXT'.
+
+
+glMultiTexGeniEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> GLint -> m ()
+glMultiTexGeniEXT = ffienumenumenumintIOV glMultiTexGeniEXTFunPtr
+
+glMultiTexGeniEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLint -> IO ())
+glMultiTexGeniEXTFunPtr = unsafePerformIO (getProcAddress "glMultiTexGeniEXT")
+
+{-# NOINLINE glMultiTexGeniEXTFunPtr #-}
+
+-- | Usage: @'glMultiTexGenivEXT' texunit coord pname params@
+--
+-- The parameter @texunit@ is a @TextureUnit@.
+--
+-- The parameter @coord@ is a @TextureCoordName@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_S', 'Graphics.GL.Raw.Internal.Shared.GL_T', 'Graphics.GL.Raw.Internal.Shared.GL_R', 'Graphics.GL.Raw.Internal.Shared.GL_Q'.
+--
+-- The parameter @pname@ is a @TextureGenParameter@, one of: 'Graphics.GL.Raw.Extension.SGIS.PointLineTexgen.GL_EYE_LINE_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_EYE_PLANE', 'Graphics.GL.Raw.Extension.SGIS.PointLineTexgen.GL_EYE_POINT_SGIS', 'Graphics.GL.Raw.Extension.SGIS.PointLineTexgen.GL_OBJECT_LINE_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_OBJECT_PLANE', 'Graphics.GL.Raw.Extension.SGIS.PointLineTexgen.GL_OBJECT_POINT_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_GEN_MODE'.
+--
+-- The parameter @params@ is a @CheckedInt32@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glMultiTexGenivEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLint -> m ()
+glMultiTexGenivEXT = ffienumenumenumPtrintIOV glMultiTexGenivEXTFunPtr
+
+glMultiTexGenivEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ())
+glMultiTexGenivEXTFunPtr = unsafePerformIO (getProcAddress "glMultiTexGenivEXT")
+
+{-# NOINLINE glMultiTexGenivEXTFunPtr #-}
+
+-- | Usage: @'glMultiTexImage1DEXT' texunit target level internalformat width border format type pixels@
+--
+-- The parameter @texunit@ is a @TextureUnit@.
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @internalformat@ is a @TextureComponentCount@.
+--
+-- The parameter @border@ is a @CheckedInt32@.
+--
+-- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Raw.Extension.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_ALPHA', 'Graphics.GL.Raw.Internal.Shared.GL_BLUE', 'Graphics.GL.Raw.Extension.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Raw.Extension.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Raw.Internal.Shared.GL_GREEN', 'Graphics.GL.Raw.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Raw.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Raw.Internal.Shared.GL_RED', 'Graphics.GL.Raw.Extension.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_RGB', 'Graphics.GL.Raw.Internal.Shared.GL_RGBA', 'Graphics.GL.Raw.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Raw.Extension.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
+--
+-- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_BITMAP', 'Graphics.GL.Raw.Internal.Shared.GL_BYTE', 'Graphics.GL.Raw.Internal.Shared.GL_FLOAT', 'Graphics.GL.Raw.Internal.Shared.GL_INT', 'Graphics.GL.Raw.Internal.Shared.GL_SHORT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
+--
+-- The length of @pixels@ should be @COMPSIZE(format,type,width)@.
+
+
+glMultiTexImage1DEXT :: MonadIO m => GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> m ()
+glMultiTexImage1DEXT = ffienumenumintintsizeiintenumenumPtrVIOV glMultiTexImage1DEXTFunPtr
+
+glMultiTexImage1DEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> IO ())
+glMultiTexImage1DEXTFunPtr = unsafePerformIO (getProcAddress "glMultiTexImage1DEXT")
+
+{-# NOINLINE glMultiTexImage1DEXTFunPtr #-}
+
+-- | Usage: @'glMultiTexImage2DEXT' texunit target level internalformat width height border format type pixels@
+--
+-- The parameter @texunit@ is a @TextureUnit@.
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @internalformat@ is a @TextureComponentCount@.
+--
+-- The parameter @border@ is a @CheckedInt32@.
+--
+-- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Raw.Extension.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_ALPHA', 'Graphics.GL.Raw.Internal.Shared.GL_BLUE', 'Graphics.GL.Raw.Extension.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Raw.Extension.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Raw.Internal.Shared.GL_GREEN', 'Graphics.GL.Raw.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Raw.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Raw.Internal.Shared.GL_RED', 'Graphics.GL.Raw.Extension.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_RGB', 'Graphics.GL.Raw.Internal.Shared.GL_RGBA', 'Graphics.GL.Raw.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Raw.Extension.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
+--
+-- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_BITMAP', 'Graphics.GL.Raw.Internal.Shared.GL_BYTE', 'Graphics.GL.Raw.Internal.Shared.GL_FLOAT', 'Graphics.GL.Raw.Internal.Shared.GL_INT', 'Graphics.GL.Raw.Internal.Shared.GL_SHORT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
+--
+-- The length of @pixels@ should be @COMPSIZE(format,type,width,height)@.
+
+
+glMultiTexImage2DEXT :: MonadIO m => GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> m ()
+glMultiTexImage2DEXT = ffienumenumintintsizeisizeiintenumenumPtrVIOV glMultiTexImage2DEXTFunPtr
+
+glMultiTexImage2DEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> IO ())
+glMultiTexImage2DEXTFunPtr = unsafePerformIO (getProcAddress "glMultiTexImage2DEXT")
+
+{-# NOINLINE glMultiTexImage2DEXTFunPtr #-}
+
+-- | Usage: @'glMultiTexImage3DEXT' texunit target level internalformat width height depth border format type pixels@
+--
+-- The parameter @texunit@ is a @TextureUnit@.
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @internalformat@ is a @TextureComponentCount@.
+--
+-- The parameter @border@ is a @CheckedInt32@.
+--
+-- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Raw.Extension.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_ALPHA', 'Graphics.GL.Raw.Internal.Shared.GL_BLUE', 'Graphics.GL.Raw.Extension.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Raw.Extension.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Raw.Internal.Shared.GL_GREEN', 'Graphics.GL.Raw.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Raw.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Raw.Internal.Shared.GL_RED', 'Graphics.GL.Raw.Extension.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_RGB', 'Graphics.GL.Raw.Internal.Shared.GL_RGBA', 'Graphics.GL.Raw.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Raw.Extension.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
+--
+-- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_BITMAP', 'Graphics.GL.Raw.Internal.Shared.GL_BYTE', 'Graphics.GL.Raw.Internal.Shared.GL_FLOAT', 'Graphics.GL.Raw.Internal.Shared.GL_INT', 'Graphics.GL.Raw.Internal.Shared.GL_SHORT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
+--
+-- The length of @pixels@ should be @COMPSIZE(format,type,width,height,depth)@.
+
+
+glMultiTexImage3DEXT :: MonadIO m => GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> m ()
+glMultiTexImage3DEXT = ffienumenumintintsizeisizeisizeiintenumenumPtrVIOV glMultiTexImage3DEXTFunPtr
+
+glMultiTexImage3DEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> IO ())
+glMultiTexImage3DEXTFunPtr = unsafePerformIO (getProcAddress "glMultiTexImage3DEXT")
+
+{-# NOINLINE glMultiTexImage3DEXTFunPtr #-}
+
+-- | Usage: @'glMultiTexParameterIivEXT' texunit target pname params@
+--
+-- The parameter @texunit@ is a @TextureUnit@.
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @pname@ is a @TextureParameterName@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Raw.Extension.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_GENERATE_MIPMAP', 'Graphics.GL.Raw.Extension.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Raw.Extension.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Raw.Extension.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Raw.Extension.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Raw.Extension.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Raw.Extension.EXT.TextureObject.GL_TEXTURE_PRIORITY_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_WRAP_R', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_WRAP_R_OES', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_WRAP_T'.
+--
+-- The parameter @params@ is a @CheckedInt32@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glMultiTexParameterIivEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLint -> m ()
+glMultiTexParameterIivEXT = ffienumenumenumPtrintIOV glMultiTexParameterIivEXTFunPtr
+
+glMultiTexParameterIivEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ())
+glMultiTexParameterIivEXTFunPtr = unsafePerformIO (getProcAddress "glMultiTexParameterIivEXT")
+
+{-# NOINLINE glMultiTexParameterIivEXTFunPtr #-}
+
+-- | Usage: @'glMultiTexParameterIuivEXT' texunit target pname params@
+--
+-- The parameter @texunit@ is a @TextureUnit@.
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @pname@ is a @TextureParameterName@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Raw.Extension.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_GENERATE_MIPMAP', 'Graphics.GL.Raw.Extension.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Raw.Extension.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Raw.Extension.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Raw.Extension.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Raw.Extension.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Raw.Extension.EXT.TextureObject.GL_TEXTURE_PRIORITY_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_WRAP_R', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_WRAP_R_OES', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_WRAP_T'.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glMultiTexParameterIuivEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLuint -> m ()
+glMultiTexParameterIuivEXT = ffienumenumenumPtruintIOV glMultiTexParameterIuivEXTFunPtr
+
+glMultiTexParameterIuivEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLuint -> IO ())
+glMultiTexParameterIuivEXTFunPtr = unsafePerformIO (getProcAddress "glMultiTexParameterIuivEXT")
+
+{-# NOINLINE glMultiTexParameterIuivEXTFunPtr #-}
+
+-- | Usage: @'glMultiTexParameterfEXT' texunit target pname param@
+--
+-- The parameter @texunit@ is a @TextureUnit@.
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @pname@ is a @TextureParameterName@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Raw.Extension.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_GENERATE_MIPMAP', 'Graphics.GL.Raw.Extension.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Raw.Extension.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Raw.Extension.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Raw.Extension.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Raw.Extension.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Raw.Extension.EXT.TextureObject.GL_TEXTURE_PRIORITY_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_WRAP_R', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_WRAP_R_OES', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_WRAP_T'.
+--
+-- The parameter @param@ is a @CheckedFloat32@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Extension.EXT.DirectStateAccess.glMultiTexParameterfvEXT'.
+
+
+glMultiTexParameterfEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> GLfloat -> m ()
+glMultiTexParameterfEXT = ffienumenumenumfloatIOV glMultiTexParameterfEXTFunPtr
+
+glMultiTexParameterfEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLfloat -> IO ())
+glMultiTexParameterfEXTFunPtr = unsafePerformIO (getProcAddress "glMultiTexParameterfEXT")
+
+{-# NOINLINE glMultiTexParameterfEXTFunPtr #-}
+
+-- | Usage: @'glMultiTexParameterfvEXT' texunit target pname params@
+--
+-- The parameter @texunit@ is a @TextureUnit@.
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @pname@ is a @TextureParameterName@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Raw.Extension.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_GENERATE_MIPMAP', 'Graphics.GL.Raw.Extension.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Raw.Extension.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Raw.Extension.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Raw.Extension.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Raw.Extension.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Raw.Extension.EXT.TextureObject.GL_TEXTURE_PRIORITY_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_WRAP_R', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_WRAP_R_OES', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_WRAP_T'.
+--
+-- The parameter @params@ is a @CheckedFloat32@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glMultiTexParameterfvEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLfloat -> m ()
+glMultiTexParameterfvEXT = ffienumenumenumPtrfloatIOV glMultiTexParameterfvEXTFunPtr
+
+glMultiTexParameterfvEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLfloat -> IO ())
+glMultiTexParameterfvEXTFunPtr = unsafePerformIO (getProcAddress "glMultiTexParameterfvEXT")
+
+{-# NOINLINE glMultiTexParameterfvEXTFunPtr #-}
+
+-- | Usage: @'glMultiTexParameteriEXT' texunit target pname param@
+--
+-- The parameter @texunit@ is a @TextureUnit@.
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @pname@ is a @TextureParameterName@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Raw.Extension.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_GENERATE_MIPMAP', 'Graphics.GL.Raw.Extension.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Raw.Extension.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Raw.Extension.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Raw.Extension.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Raw.Extension.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Raw.Extension.EXT.TextureObject.GL_TEXTURE_PRIORITY_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_WRAP_R', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_WRAP_R_OES', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_WRAP_T'.
+--
+-- The parameter @param@ is a @CheckedInt32@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Extension.EXT.DirectStateAccess.glMultiTexParameterivEXT'.
+
+
+glMultiTexParameteriEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> GLint -> m ()
+glMultiTexParameteriEXT = ffienumenumenumintIOV glMultiTexParameteriEXTFunPtr
+
+glMultiTexParameteriEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLint -> IO ())
+glMultiTexParameteriEXTFunPtr = unsafePerformIO (getProcAddress "glMultiTexParameteriEXT")
+
+{-# NOINLINE glMultiTexParameteriEXTFunPtr #-}
+
+-- | Usage: @'glMultiTexParameterivEXT' texunit target pname params@
+--
+-- The parameter @texunit@ is a @TextureUnit@.
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @pname@ is a @TextureParameterName@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Raw.Extension.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_GENERATE_MIPMAP', 'Graphics.GL.Raw.Extension.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Raw.Extension.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Raw.Extension.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Raw.Extension.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Raw.Extension.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Raw.Extension.EXT.TextureObject.GL_TEXTURE_PRIORITY_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_WRAP_R', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_WRAP_R_OES', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_WRAP_T'.
+--
+-- The parameter @params@ is a @CheckedInt32@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glMultiTexParameterivEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLint -> m ()
+glMultiTexParameterivEXT = ffienumenumenumPtrintIOV glMultiTexParameterivEXTFunPtr
+
+glMultiTexParameterivEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ())
+glMultiTexParameterivEXTFunPtr = unsafePerformIO (getProcAddress "glMultiTexParameterivEXT")
+
+{-# NOINLINE glMultiTexParameterivEXTFunPtr #-}
+
+-- | Usage: @'glMultiTexRenderbufferEXT' texunit target renderbuffer@
+--
+-- The parameter @texunit@ is a @TextureUnit@.
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+
+
+glMultiTexRenderbufferEXT :: MonadIO m => GLenum -> GLenum -> GLuint -> m ()
+glMultiTexRenderbufferEXT = ffienumenumuintIOV glMultiTexRenderbufferEXTFunPtr
+
+glMultiTexRenderbufferEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLuint -> IO ())
+glMultiTexRenderbufferEXTFunPtr = unsafePerformIO (getProcAddress "glMultiTexRenderbufferEXT")
+
+{-# NOINLINE glMultiTexRenderbufferEXTFunPtr #-}
+
+-- | Usage: @'glMultiTexSubImage1DEXT' texunit target level xoffset width format type pixels@
+--
+-- The parameter @texunit@ is a @TextureUnit@.
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @xoffset@ is a @CheckedInt32@.
+--
+-- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Raw.Extension.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_ALPHA', 'Graphics.GL.Raw.Internal.Shared.GL_BLUE', 'Graphics.GL.Raw.Extension.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Raw.Extension.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Raw.Internal.Shared.GL_GREEN', 'Graphics.GL.Raw.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Raw.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Raw.Internal.Shared.GL_RED', 'Graphics.GL.Raw.Extension.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_RGB', 'Graphics.GL.Raw.Internal.Shared.GL_RGBA', 'Graphics.GL.Raw.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Raw.Extension.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
+--
+-- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_BITMAP', 'Graphics.GL.Raw.Internal.Shared.GL_BYTE', 'Graphics.GL.Raw.Internal.Shared.GL_FLOAT', 'Graphics.GL.Raw.Internal.Shared.GL_INT', 'Graphics.GL.Raw.Internal.Shared.GL_SHORT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
+--
+-- The length of @pixels@ should be @COMPSIZE(format,type,width)@.
+
+
+glMultiTexSubImage1DEXT :: MonadIO m => GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
+glMultiTexSubImage1DEXT = ffienumenumintintsizeienumenumPtrVIOV glMultiTexSubImage1DEXTFunPtr
+
+glMultiTexSubImage1DEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ())
+glMultiTexSubImage1DEXTFunPtr = unsafePerformIO (getProcAddress "glMultiTexSubImage1DEXT")
+
+{-# NOINLINE glMultiTexSubImage1DEXTFunPtr #-}
+
+-- | Usage: @'glMultiTexSubImage2DEXT' texunit target level xoffset yoffset width height format type pixels@
+--
+-- The parameter @texunit@ is a @TextureUnit@.
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @xoffset@ is a @CheckedInt32@.
+--
+-- The parameter @yoffset@ is a @CheckedInt32@.
+--
+-- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Raw.Extension.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_ALPHA', 'Graphics.GL.Raw.Internal.Shared.GL_BLUE', 'Graphics.GL.Raw.Extension.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Raw.Extension.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Raw.Internal.Shared.GL_GREEN', 'Graphics.GL.Raw.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Raw.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Raw.Internal.Shared.GL_RED', 'Graphics.GL.Raw.Extension.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_RGB', 'Graphics.GL.Raw.Internal.Shared.GL_RGBA', 'Graphics.GL.Raw.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Raw.Extension.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
+--
+-- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_BITMAP', 'Graphics.GL.Raw.Internal.Shared.GL_BYTE', 'Graphics.GL.Raw.Internal.Shared.GL_FLOAT', 'Graphics.GL.Raw.Internal.Shared.GL_INT', 'Graphics.GL.Raw.Internal.Shared.GL_SHORT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
+--
+-- The length of @pixels@ should be @COMPSIZE(format,type,width,height)@.
+
+
+glMultiTexSubImage2DEXT :: MonadIO m => GLenum -> GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
+glMultiTexSubImage2DEXT = ffienumenumintintintsizeisizeienumenumPtrVIOV glMultiTexSubImage2DEXTFunPtr
+
+glMultiTexSubImage2DEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ())
+glMultiTexSubImage2DEXTFunPtr = unsafePerformIO (getProcAddress "glMultiTexSubImage2DEXT")
+
+{-# NOINLINE glMultiTexSubImage2DEXTFunPtr #-}
+
+-- | Usage: @'glMultiTexSubImage3DEXT' texunit target level xoffset yoffset zoffset width height depth format type pixels@
+--
+-- The parameter @texunit@ is a @TextureUnit@.
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @xoffset@ is a @CheckedInt32@.
+--
+-- The parameter @yoffset@ is a @CheckedInt32@.
+--
+-- The parameter @zoffset@ is a @CheckedInt32@.
+--
+-- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Raw.Extension.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_ALPHA', 'Graphics.GL.Raw.Internal.Shared.GL_BLUE', 'Graphics.GL.Raw.Extension.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Raw.Extension.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Raw.Internal.Shared.GL_GREEN', 'Graphics.GL.Raw.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Raw.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Raw.Internal.Shared.GL_RED', 'Graphics.GL.Raw.Extension.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_RGB', 'Graphics.GL.Raw.Internal.Shared.GL_RGBA', 'Graphics.GL.Raw.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Raw.Extension.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
+--
+-- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_BITMAP', 'Graphics.GL.Raw.Internal.Shared.GL_BYTE', 'Graphics.GL.Raw.Internal.Shared.GL_FLOAT', 'Graphics.GL.Raw.Internal.Shared.GL_INT', 'Graphics.GL.Raw.Internal.Shared.GL_SHORT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
+--
+-- The length of @pixels@ should be @COMPSIZE(format,type,width,height,depth)@.
+
+
+glMultiTexSubImage3DEXT :: MonadIO m => GLenum -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
+glMultiTexSubImage3DEXT = ffienumenumintintintintsizeisizeisizeienumenumPtrVIOV glMultiTexSubImage3DEXTFunPtr
+
+glMultiTexSubImage3DEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ())
+glMultiTexSubImage3DEXTFunPtr = unsafePerformIO (getProcAddress "glMultiTexSubImage3DEXT")
+
+{-# NOINLINE glMultiTexSubImage3DEXTFunPtr #-}
+
+-- | Usage: @'glNamedBufferDataEXT' buffer size data usage@
+--
+-- The parameter @usage@ is a @VertexBufferObjectUsage@.
+--
+-- The length of @data@ should be @COMPSIZE(size)@.
+
+
+glNamedBufferDataEXT :: MonadIO m => GLuint -> GLsizeiptr -> Ptr () -> GLenum -> m ()
+glNamedBufferDataEXT = ffiuintsizeiptrPtrVenumIOV glNamedBufferDataEXTFunPtr
+
+glNamedBufferDataEXTFunPtr :: FunPtr (GLuint -> GLsizeiptr -> Ptr () -> GLenum -> IO ())
+glNamedBufferDataEXTFunPtr = unsafePerformIO (getProcAddress "glNamedBufferDataEXT")
+
+{-# NOINLINE glNamedBufferDataEXTFunPtr #-}
+
+-- | Usage: @'glNamedBufferStorageEXT' buffer size data flags@
+--
+-- The length of @data@ should be @size@.
+
+
+glNamedBufferStorageEXT :: MonadIO m => GLuint -> GLsizeiptr -> Ptr () -> GLbitfield -> m ()
+glNamedBufferStorageEXT = ffiuintsizeiptrPtrVbitfieldIOV glNamedBufferStorageEXTFunPtr
+
+glNamedBufferStorageEXTFunPtr :: FunPtr (GLuint -> GLsizeiptr -> Ptr () -> GLbitfield -> IO ())
+glNamedBufferStorageEXTFunPtr = unsafePerformIO (getProcAddress "glNamedBufferStorageEXT")
+
+{-# NOINLINE glNamedBufferStorageEXTFunPtr #-}
+
+-- | Usage: @'glNamedBufferSubDataEXT' buffer offset size data@
+--
+-- The length of @data@ should be @COMPSIZE(size)@.
+
+
+glNamedBufferSubDataEXT :: MonadIO m => GLuint -> GLintptr -> GLsizeiptr -> Ptr () -> m ()
+glNamedBufferSubDataEXT = ffiuintintptrsizeiptrPtrVIOV glNamedBufferSubDataEXTFunPtr
+
+glNamedBufferSubDataEXTFunPtr :: FunPtr (GLuint -> GLintptr -> GLsizeiptr -> Ptr () -> IO ())
+glNamedBufferSubDataEXTFunPtr = unsafePerformIO (getProcAddress "glNamedBufferSubDataEXT")
+
+{-# NOINLINE glNamedBufferSubDataEXTFunPtr #-}
+
+-- | Usage: @'glNamedCopyBufferSubDataEXT' readBuffer writeBuffer readOffset writeOffset size@
+
+
+glNamedCopyBufferSubDataEXT :: MonadIO m => GLuint -> GLuint -> GLintptr -> GLintptr -> GLsizeiptr -> m ()
+glNamedCopyBufferSubDataEXT = ffiuintuintintptrintptrsizeiptrIOV glNamedCopyBufferSubDataEXTFunPtr
+
+glNamedCopyBufferSubDataEXTFunPtr :: FunPtr (GLuint -> GLuint -> GLintptr -> GLintptr -> GLsizeiptr -> IO ())
+glNamedCopyBufferSubDataEXTFunPtr = unsafePerformIO (getProcAddress "glNamedCopyBufferSubDataEXT")
+
+{-# NOINLINE glNamedCopyBufferSubDataEXTFunPtr #-}
+
+-- | Usage: @'glNamedFramebufferParameteriEXT' framebuffer pname param@
+--
+-- The parameter @framebuffer@ is a @Framebuffer@.
+--
+-- The parameter @pname@ is a @FramebufferParameterName@.
+
+
+glNamedFramebufferParameteriEXT :: MonadIO m => GLuint -> GLenum -> GLint -> m ()
+glNamedFramebufferParameteriEXT = ffiuintenumintIOV glNamedFramebufferParameteriEXTFunPtr
+
+glNamedFramebufferParameteriEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> IO ())
+glNamedFramebufferParameteriEXTFunPtr = unsafePerformIO (getProcAddress "glNamedFramebufferParameteriEXT")
+
+{-# NOINLINE glNamedFramebufferParameteriEXTFunPtr #-}
+
+-- | Usage: @'glNamedFramebufferRenderbufferEXT' framebuffer attachment renderbuffertarget renderbuffer@
+--
+-- The parameter @framebuffer@ is a @Framebuffer@.
+--
+-- The parameter @attachment@ is a @FramebufferAttachment@.
+--
+-- The parameter @renderbuffertarget@ is a @RenderbufferTarget@.
+--
+-- The parameter @renderbuffer@ is a @Renderbuffer@.
+
+
+glNamedFramebufferRenderbufferEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> GLuint -> m ()
+glNamedFramebufferRenderbufferEXT = ffiuintenumenumuintIOV glNamedFramebufferRenderbufferEXTFunPtr
+
+glNamedFramebufferRenderbufferEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> GLuint -> IO ())
+glNamedFramebufferRenderbufferEXTFunPtr = unsafePerformIO (getProcAddress "glNamedFramebufferRenderbufferEXT")
+
+{-# NOINLINE glNamedFramebufferRenderbufferEXTFunPtr #-}
+
+-- | Usage: @'glNamedFramebufferTexture1DEXT' framebuffer attachment textarget texture level@
+--
+-- The parameter @framebuffer@ is a @Framebuffer@.
+--
+-- The parameter @attachment@ is a @FramebufferAttachment@.
+--
+-- The parameter @textarget@ is a @TextureTarget@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @texture@ is a @Texture@.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+
+
+glNamedFramebufferTexture1DEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> GLuint -> GLint -> m ()
+glNamedFramebufferTexture1DEXT = ffiuintenumenumuintintIOV glNamedFramebufferTexture1DEXTFunPtr
+
+glNamedFramebufferTexture1DEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> GLuint -> GLint -> IO ())
+glNamedFramebufferTexture1DEXTFunPtr = unsafePerformIO (getProcAddress "glNamedFramebufferTexture1DEXT")
+
+{-# NOINLINE glNamedFramebufferTexture1DEXTFunPtr #-}
+
+-- | Usage: @'glNamedFramebufferTexture2DEXT' framebuffer attachment textarget texture level@
+--
+-- The parameter @framebuffer@ is a @Framebuffer@.
+--
+-- The parameter @attachment@ is a @FramebufferAttachment@.
+--
+-- The parameter @textarget@ is a @TextureTarget@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @texture@ is a @Texture@.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+
+
+glNamedFramebufferTexture2DEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> GLuint -> GLint -> m ()
+glNamedFramebufferTexture2DEXT = ffiuintenumenumuintintIOV glNamedFramebufferTexture2DEXTFunPtr
+
+glNamedFramebufferTexture2DEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> GLuint -> GLint -> IO ())
+glNamedFramebufferTexture2DEXTFunPtr = unsafePerformIO (getProcAddress "glNamedFramebufferTexture2DEXT")
+
+{-# NOINLINE glNamedFramebufferTexture2DEXTFunPtr #-}
+
+-- | Usage: @'glNamedFramebufferTexture3DEXT' framebuffer attachment textarget texture level zoffset@
+--
+-- The parameter @framebuffer@ is a @Framebuffer@.
+--
+-- The parameter @attachment@ is a @FramebufferAttachment@.
+--
+-- The parameter @textarget@ is a @TextureTarget@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @texture@ is a @Texture@.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @zoffset@ is a @CheckedInt32@.
+
+
+glNamedFramebufferTexture3DEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> GLuint -> GLint -> GLint -> m ()
+glNamedFramebufferTexture3DEXT = ffiuintenumenumuintintintIOV glNamedFramebufferTexture3DEXTFunPtr
+
+glNamedFramebufferTexture3DEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> GLuint -> GLint -> GLint -> IO ())
+glNamedFramebufferTexture3DEXTFunPtr = unsafePerformIO (getProcAddress "glNamedFramebufferTexture3DEXT")
+
+{-# NOINLINE glNamedFramebufferTexture3DEXTFunPtr #-}
+
+-- | Usage: @'glNamedFramebufferTextureEXT' framebuffer attachment texture level@
+--
+-- The parameter @framebuffer@ is a @Framebuffer@.
+--
+-- The parameter @attachment@ is a @FramebufferAttachment@.
+--
+-- The parameter @texture@ is a @Texture@.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+
+
+glNamedFramebufferTextureEXT :: MonadIO m => GLuint -> GLenum -> GLuint -> GLint -> m ()
+glNamedFramebufferTextureEXT = ffiuintenumuintintIOV glNamedFramebufferTextureEXTFunPtr
+
+glNamedFramebufferTextureEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> GLint -> IO ())
+glNamedFramebufferTextureEXTFunPtr = unsafePerformIO (getProcAddress "glNamedFramebufferTextureEXT")
+
+{-# NOINLINE glNamedFramebufferTextureEXTFunPtr #-}
+
+-- | Usage: @'glNamedFramebufferTextureFaceEXT' framebuffer attachment texture level face@
+--
+-- The parameter @framebuffer@ is a @Framebuffer@.
+--
+-- The parameter @attachment@ is a @FramebufferAttachment@.
+--
+-- The parameter @texture@ is a @Texture@.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @face@ is a @TextureTarget@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+
+
+glNamedFramebufferTextureFaceEXT :: MonadIO m => GLuint -> GLenum -> GLuint -> GLint -> GLenum -> m ()
+glNamedFramebufferTextureFaceEXT = ffiuintenumuintintenumIOV glNamedFramebufferTextureFaceEXTFunPtr
+
+glNamedFramebufferTextureFaceEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> GLint -> GLenum -> IO ())
+glNamedFramebufferTextureFaceEXTFunPtr = unsafePerformIO (getProcAddress "glNamedFramebufferTextureFaceEXT")
+
+{-# NOINLINE glNamedFramebufferTextureFaceEXTFunPtr #-}
+
+-- | Usage: @'glNamedFramebufferTextureLayerEXT' framebuffer attachment texture level layer@
+--
+-- The parameter @framebuffer@ is a @Framebuffer@.
+--
+-- The parameter @attachment@ is a @FramebufferAttachment@.
+--
+-- The parameter @texture@ is a @Texture@.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @layer@ is a @CheckedInt32@.
+
+
+glNamedFramebufferTextureLayerEXT :: MonadIO m => GLuint -> GLenum -> GLuint -> GLint -> GLint -> m ()
+glNamedFramebufferTextureLayerEXT = ffiuintenumuintintintIOV glNamedFramebufferTextureLayerEXTFunPtr
+
+glNamedFramebufferTextureLayerEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> GLint -> GLint -> IO ())
+glNamedFramebufferTextureLayerEXTFunPtr = unsafePerformIO (getProcAddress "glNamedFramebufferTextureLayerEXT")
+
+{-# NOINLINE glNamedFramebufferTextureLayerEXTFunPtr #-}
+
+-- | Usage: @'glNamedProgramLocalParameter4dEXT' program target index x y z w@
+--
+-- The parameter @target@ is a @ProgramTarget@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Extension.EXT.DirectStateAccess.glNamedProgramLocalParameter4dvEXT'.
+
+
+glNamedProgramLocalParameter4dEXT :: MonadIO m => GLuint -> GLenum -> GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
+glNamedProgramLocalParameter4dEXT = ffiuintenumuintdoubledoubledoubledoubleIOV glNamedProgramLocalParameter4dEXTFunPtr
+
+glNamedProgramLocalParameter4dEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
+glNamedProgramLocalParameter4dEXTFunPtr = unsafePerformIO (getProcAddress "glNamedProgramLocalParameter4dEXT")
+
+{-# NOINLINE glNamedProgramLocalParameter4dEXTFunPtr #-}
+
+-- | Usage: @'glNamedProgramLocalParameter4dvEXT' program target index params@
+--
+-- The parameter @target@ is a @ProgramTarget@.
+--
+-- The length of @params@ should be @4@.
+
+
+glNamedProgramLocalParameter4dvEXT :: MonadIO m => GLuint -> GLenum -> GLuint -> Ptr GLdouble -> m ()
+glNamedProgramLocalParameter4dvEXT = ffiuintenumuintPtrdoubleIOV glNamedProgramLocalParameter4dvEXTFunPtr
+
+glNamedProgramLocalParameter4dvEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> Ptr GLdouble -> IO ())
+glNamedProgramLocalParameter4dvEXTFunPtr = unsafePerformIO (getProcAddress "glNamedProgramLocalParameter4dvEXT")
+
+{-# NOINLINE glNamedProgramLocalParameter4dvEXTFunPtr #-}
+
+-- | Usage: @'glNamedProgramLocalParameter4fEXT' program target index x y z w@
+--
+-- The parameter @target@ is a @ProgramTarget@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Extension.EXT.DirectStateAccess.glNamedProgramLocalParameter4fvEXT'.
+
+
+glNamedProgramLocalParameter4fEXT :: MonadIO m => GLuint -> GLenum -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
+glNamedProgramLocalParameter4fEXT = ffiuintenumuintfloatfloatfloatfloatIOV glNamedProgramLocalParameter4fEXTFunPtr
+
+glNamedProgramLocalParameter4fEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+glNamedProgramLocalParameter4fEXTFunPtr = unsafePerformIO (getProcAddress "glNamedProgramLocalParameter4fEXT")
+
+{-# NOINLINE glNamedProgramLocalParameter4fEXTFunPtr #-}
+
+-- | Usage: @'glNamedProgramLocalParameter4fvEXT' program target index params@
+--
+-- The parameter @target@ is a @ProgramTarget@.
+--
+-- The length of @params@ should be @4@.
+
+
+glNamedProgramLocalParameter4fvEXT :: MonadIO m => GLuint -> GLenum -> GLuint -> Ptr GLfloat -> m ()
+glNamedProgramLocalParameter4fvEXT = ffiuintenumuintPtrfloatIOV glNamedProgramLocalParameter4fvEXTFunPtr
+
+glNamedProgramLocalParameter4fvEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> Ptr GLfloat -> IO ())
+glNamedProgramLocalParameter4fvEXTFunPtr = unsafePerformIO (getProcAddress "glNamedProgramLocalParameter4fvEXT")
+
+{-# NOINLINE glNamedProgramLocalParameter4fvEXTFunPtr #-}
+
+-- | Usage: @'glNamedProgramLocalParameterI4iEXT' program target index x y z w@
+--
+-- The parameter @target@ is a @ProgramTarget@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Extension.EXT.DirectStateAccess.glNamedProgramLocalParameterI4ivEXT'.
+
+
+glNamedProgramLocalParameterI4iEXT :: MonadIO m => GLuint -> GLenum -> GLuint -> GLint -> GLint -> GLint -> GLint -> m ()
+glNamedProgramLocalParameterI4iEXT = ffiuintenumuintintintintintIOV glNamedProgramLocalParameterI4iEXTFunPtr
+
+glNamedProgramLocalParameterI4iEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> GLint -> GLint -> GLint -> GLint -> IO ())
+glNamedProgramLocalParameterI4iEXTFunPtr = unsafePerformIO (getProcAddress "glNamedProgramLocalParameterI4iEXT")
+
+{-# NOINLINE glNamedProgramLocalParameterI4iEXTFunPtr #-}
+
+-- | Usage: @'glNamedProgramLocalParameterI4ivEXT' program target index params@
+--
+-- The parameter @target@ is a @ProgramTarget@.
+--
+-- The length of @params@ should be @4@.
+
+
+glNamedProgramLocalParameterI4ivEXT :: MonadIO m => GLuint -> GLenum -> GLuint -> Ptr GLint -> m ()
+glNamedProgramLocalParameterI4ivEXT = ffiuintenumuintPtrintIOV glNamedProgramLocalParameterI4ivEXTFunPtr
+
+glNamedProgramLocalParameterI4ivEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> Ptr GLint -> IO ())
+glNamedProgramLocalParameterI4ivEXTFunPtr = unsafePerformIO (getProcAddress "glNamedProgramLocalParameterI4ivEXT")
+
+{-# NOINLINE glNamedProgramLocalParameterI4ivEXTFunPtr #-}
+
+-- | Usage: @'glNamedProgramLocalParameterI4uiEXT' program target index x y z w@
+--
+-- The parameter @target@ is a @ProgramTarget@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Extension.EXT.DirectStateAccess.glNamedProgramLocalParameterI4uivEXT'.
+
+
+glNamedProgramLocalParameterI4uiEXT :: MonadIO m => GLuint -> GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
+glNamedProgramLocalParameterI4uiEXT = ffiuintenumuintuintuintuintuintIOV glNamedProgramLocalParameterI4uiEXTFunPtr
+
+glNamedProgramLocalParameterI4uiEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ())
+glNamedProgramLocalParameterI4uiEXTFunPtr = unsafePerformIO (getProcAddress "glNamedProgramLocalParameterI4uiEXT")
+
+{-# NOINLINE glNamedProgramLocalParameterI4uiEXTFunPtr #-}
+
+-- | Usage: @'glNamedProgramLocalParameterI4uivEXT' program target index params@
+--
+-- The parameter @target@ is a @ProgramTarget@.
+--
+-- The length of @params@ should be @4@.
+
+
+glNamedProgramLocalParameterI4uivEXT :: MonadIO m => GLuint -> GLenum -> GLuint -> Ptr GLuint -> m ()
+glNamedProgramLocalParameterI4uivEXT = ffiuintenumuintPtruintIOV glNamedProgramLocalParameterI4uivEXTFunPtr
+
+glNamedProgramLocalParameterI4uivEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> Ptr GLuint -> IO ())
+glNamedProgramLocalParameterI4uivEXTFunPtr = unsafePerformIO (getProcAddress "glNamedProgramLocalParameterI4uivEXT")
+
+{-# NOINLINE glNamedProgramLocalParameterI4uivEXTFunPtr #-}
+
+-- | Usage: @'glNamedProgramLocalParameters4fvEXT' program target index count params@
+--
+-- The parameter @target@ is a @ProgramTarget@.
+--
+-- The length of @params@ should be @count*4@.
+
+
+glNamedProgramLocalParameters4fvEXT :: MonadIO m => GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLfloat -> m ()
+glNamedProgramLocalParameters4fvEXT = ffiuintenumuintsizeiPtrfloatIOV glNamedProgramLocalParameters4fvEXTFunPtr
+
+glNamedProgramLocalParameters4fvEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLfloat -> IO ())
+glNamedProgramLocalParameters4fvEXTFunPtr = unsafePerformIO (getProcAddress "glNamedProgramLocalParameters4fvEXT")
+
+{-# NOINLINE glNamedProgramLocalParameters4fvEXTFunPtr #-}
+
+-- | Usage: @'glNamedProgramLocalParametersI4ivEXT' program target index count params@
+--
+-- The parameter @target@ is a @ProgramTarget@.
+--
+-- The length of @params@ should be @count*4@.
+
+
+glNamedProgramLocalParametersI4ivEXT :: MonadIO m => GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLint -> m ()
+glNamedProgramLocalParametersI4ivEXT = ffiuintenumuintsizeiPtrintIOV glNamedProgramLocalParametersI4ivEXTFunPtr
+
+glNamedProgramLocalParametersI4ivEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLint -> IO ())
+glNamedProgramLocalParametersI4ivEXTFunPtr = unsafePerformIO (getProcAddress "glNamedProgramLocalParametersI4ivEXT")
+
+{-# NOINLINE glNamedProgramLocalParametersI4ivEXTFunPtr #-}
+
+-- | Usage: @'glNamedProgramLocalParametersI4uivEXT' program target index count params@
+--
+-- The parameter @target@ is a @ProgramTarget@.
+--
+-- The length of @params@ should be @count*4@.
+
+
+glNamedProgramLocalParametersI4uivEXT :: MonadIO m => GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLuint -> m ()
+glNamedProgramLocalParametersI4uivEXT = ffiuintenumuintsizeiPtruintIOV glNamedProgramLocalParametersI4uivEXTFunPtr
+
+glNamedProgramLocalParametersI4uivEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLuint -> IO ())
+glNamedProgramLocalParametersI4uivEXTFunPtr = unsafePerformIO (getProcAddress "glNamedProgramLocalParametersI4uivEXT")
+
+{-# NOINLINE glNamedProgramLocalParametersI4uivEXTFunPtr #-}
+
+-- | Usage: @'glNamedProgramStringEXT' program target format len string@
+--
+-- The parameter @target@ is a @ProgramTarget@.
+--
+-- The parameter @format@ is a @ProgramFormat@.
+--
+-- The length of @string@ should be @len@.
+
+
+glNamedProgramStringEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> GLsizei -> Ptr () -> m ()
+glNamedProgramStringEXT = ffiuintenumenumsizeiPtrVIOV glNamedProgramStringEXTFunPtr
+
+glNamedProgramStringEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> GLsizei -> Ptr () -> IO ())
+glNamedProgramStringEXTFunPtr = unsafePerformIO (getProcAddress "glNamedProgramStringEXT")
+
+{-# NOINLINE glNamedProgramStringEXTFunPtr #-}
+
+-- | Usage: @'glNamedRenderbufferStorageEXT' renderbuffer internalformat width height@
+--
+-- The parameter @renderbuffer@ is a @Renderbuffer@.
+--
+-- The parameter @internalformat@ is a @PixelInternalFormat@.
+
+
+glNamedRenderbufferStorageEXT :: MonadIO m => GLuint -> GLenum -> GLsizei -> GLsizei -> m ()
+glNamedRenderbufferStorageEXT = ffiuintenumsizeisizeiIOV glNamedRenderbufferStorageEXTFunPtr
+
+glNamedRenderbufferStorageEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLsizei -> GLsizei -> IO ())
+glNamedRenderbufferStorageEXTFunPtr = unsafePerformIO (getProcAddress "glNamedRenderbufferStorageEXT")
+
+{-# NOINLINE glNamedRenderbufferStorageEXTFunPtr #-}
+
+-- | Usage: @'glNamedRenderbufferStorageMultisampleCoverageEXT' renderbuffer coverageSamples colorSamples internalformat width height@
+--
+-- The parameter @renderbuffer@ is a @Renderbuffer@.
+--
+-- The parameter @internalformat@ is a @PixelInternalFormat@.
+
+
+glNamedRenderbufferStorageMultisampleCoverageEXT :: MonadIO m => GLuint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()
+glNamedRenderbufferStorageMultisampleCoverageEXT = ffiuintsizeisizeienumsizeisizeiIOV glNamedRenderbufferStorageMultisampleCoverageEXTFunPtr
+
+glNamedRenderbufferStorageMultisampleCoverageEXTFunPtr :: FunPtr (GLuint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> GLsizei -> IO ())
+glNamedRenderbufferStorageMultisampleCoverageEXTFunPtr = unsafePerformIO (getProcAddress "glNamedRenderbufferStorageMultisampleCoverageEXT")
+
+{-# NOINLINE glNamedRenderbufferStorageMultisampleCoverageEXTFunPtr #-}
+
+-- | Usage: @'glNamedRenderbufferStorageMultisampleEXT' renderbuffer samples internalformat width height@
+--
+-- The parameter @renderbuffer@ is a @Renderbuffer@.
+--
+-- The parameter @internalformat@ is a @PixelInternalFormat@.
+
+
+glNamedRenderbufferStorageMultisampleEXT :: MonadIO m => GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()
+glNamedRenderbufferStorageMultisampleEXT = ffiuintsizeienumsizeisizeiIOV glNamedRenderbufferStorageMultisampleEXTFunPtr
+
+glNamedRenderbufferStorageMultisampleEXTFunPtr :: FunPtr (GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> IO ())
+glNamedRenderbufferStorageMultisampleEXTFunPtr = unsafePerformIO (getProcAddress "glNamedRenderbufferStorageMultisampleEXT")
+
+{-# NOINLINE glNamedRenderbufferStorageMultisampleEXTFunPtr #-}
+
+-- | Usage: @'glProgramUniform1dEXT' program location x@
+
+
+glProgramUniform1dEXT :: MonadIO m => GLuint -> GLint -> GLdouble -> m ()
+glProgramUniform1dEXT = ffiuintintdoubleIOV glProgramUniform1dEXTFunPtr
+
+glProgramUniform1dEXTFunPtr :: FunPtr (GLuint -> GLint -> GLdouble -> IO ())
+glProgramUniform1dEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform1dEXT")
+
+{-# NOINLINE glProgramUniform1dEXTFunPtr #-}
+
+-- | Usage: @'glProgramUniform1dvEXT' program location count value@
+--
+-- The length of @value@ should be @count@.
+
+
+glProgramUniform1dvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLdouble -> m ()
+glProgramUniform1dvEXT = ffiuintintsizeiPtrdoubleIOV glProgramUniform1dvEXTFunPtr
+
+glProgramUniform1dvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLdouble -> IO ())
+glProgramUniform1dvEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform1dvEXT")
+
+{-# NOINLINE glProgramUniform1dvEXTFunPtr #-}
+
+-- | Usage: @'glProgramUniform2dEXT' program location x y@
+
+
+glProgramUniform2dEXT :: MonadIO m => GLuint -> GLint -> GLdouble -> GLdouble -> m ()
+glProgramUniform2dEXT = ffiuintintdoubledoubleIOV glProgramUniform2dEXTFunPtr
+
+glProgramUniform2dEXTFunPtr :: FunPtr (GLuint -> GLint -> GLdouble -> GLdouble -> IO ())
+glProgramUniform2dEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform2dEXT")
+
+{-# NOINLINE glProgramUniform2dEXTFunPtr #-}
+
+-- | Usage: @'glProgramUniform2dvEXT' program location count value@
+--
+-- The length of @value@ should be @count@.
+
+
+glProgramUniform2dvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLdouble -> m ()
+glProgramUniform2dvEXT = ffiuintintsizeiPtrdoubleIOV glProgramUniform2dvEXTFunPtr
+
+glProgramUniform2dvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLdouble -> IO ())
+glProgramUniform2dvEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform2dvEXT")
+
+{-# NOINLINE glProgramUniform2dvEXTFunPtr #-}
+
+-- | Usage: @'glProgramUniform3dEXT' program location x y z@
+
+
+glProgramUniform3dEXT :: MonadIO m => GLuint -> GLint -> GLdouble -> GLdouble -> GLdouble -> m ()
+glProgramUniform3dEXT = ffiuintintdoubledoubledoubleIOV glProgramUniform3dEXTFunPtr
+
+glProgramUniform3dEXTFunPtr :: FunPtr (GLuint -> GLint -> GLdouble -> GLdouble -> GLdouble -> IO ())
+glProgramUniform3dEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform3dEXT")
+
+{-# NOINLINE glProgramUniform3dEXTFunPtr #-}
+
+-- | Usage: @'glProgramUniform3dvEXT' program location count value@
+--
+-- The length of @value@ should be @count@.
+
+
+glProgramUniform3dvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLdouble -> m ()
+glProgramUniform3dvEXT = ffiuintintsizeiPtrdoubleIOV glProgramUniform3dvEXTFunPtr
+
+glProgramUniform3dvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLdouble -> IO ())
+glProgramUniform3dvEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform3dvEXT")
+
+{-# NOINLINE glProgramUniform3dvEXTFunPtr #-}
+
+-- | Usage: @'glProgramUniform4dEXT' program location x y z w@
+
+
+glProgramUniform4dEXT :: MonadIO m => GLuint -> GLint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
+glProgramUniform4dEXT = ffiuintintdoubledoubledoubledoubleIOV glProgramUniform4dEXTFunPtr
+
+glProgramUniform4dEXTFunPtr :: FunPtr (GLuint -> GLint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
+glProgramUniform4dEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform4dEXT")
+
+{-# NOINLINE glProgramUniform4dEXTFunPtr #-}
+
+-- | Usage: @'glProgramUniform4dvEXT' program location count value@
+--
+-- The length of @value@ should be @count@.
+
+
+glProgramUniform4dvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLdouble -> m ()
+glProgramUniform4dvEXT = ffiuintintsizeiPtrdoubleIOV glProgramUniform4dvEXTFunPtr
+
+glProgramUniform4dvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLdouble -> IO ())
+glProgramUniform4dvEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform4dvEXT")
+
+{-# NOINLINE glProgramUniform4dvEXTFunPtr #-}
+
+-- | Usage: @'glProgramUniformMatrix2dvEXT' program location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FALSE', 'Graphics.GL.Raw.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count@.
+
+
+glProgramUniformMatrix2dvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
+glProgramUniformMatrix2dvEXT = ffiuintintsizeibooleanPtrdoubleIOV glProgramUniformMatrix2dvEXTFunPtr
+
+glProgramUniformMatrix2dvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
+glProgramUniformMatrix2dvEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix2dvEXT")
+
+{-# NOINLINE glProgramUniformMatrix2dvEXTFunPtr #-}
+
+-- | Usage: @'glProgramUniformMatrix2x3dvEXT' program location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FALSE', 'Graphics.GL.Raw.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count@.
+
+
+glProgramUniformMatrix2x3dvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
+glProgramUniformMatrix2x3dvEXT = ffiuintintsizeibooleanPtrdoubleIOV glProgramUniformMatrix2x3dvEXTFunPtr
+
+glProgramUniformMatrix2x3dvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
+glProgramUniformMatrix2x3dvEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix2x3dvEXT")
+
+{-# NOINLINE glProgramUniformMatrix2x3dvEXTFunPtr #-}
+
+-- | Usage: @'glProgramUniformMatrix2x4dvEXT' program location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FALSE', 'Graphics.GL.Raw.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count@.
+
+
+glProgramUniformMatrix2x4dvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
+glProgramUniformMatrix2x4dvEXT = ffiuintintsizeibooleanPtrdoubleIOV glProgramUniformMatrix2x4dvEXTFunPtr
+
+glProgramUniformMatrix2x4dvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
+glProgramUniformMatrix2x4dvEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix2x4dvEXT")
+
+{-# NOINLINE glProgramUniformMatrix2x4dvEXTFunPtr #-}
+
+-- | Usage: @'glProgramUniformMatrix3dvEXT' program location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FALSE', 'Graphics.GL.Raw.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count@.
+
+
+glProgramUniformMatrix3dvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
+glProgramUniformMatrix3dvEXT = ffiuintintsizeibooleanPtrdoubleIOV glProgramUniformMatrix3dvEXTFunPtr
+
+glProgramUniformMatrix3dvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
+glProgramUniformMatrix3dvEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix3dvEXT")
+
+{-# NOINLINE glProgramUniformMatrix3dvEXTFunPtr #-}
+
+-- | Usage: @'glProgramUniformMatrix3x2dvEXT' program location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FALSE', 'Graphics.GL.Raw.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count@.
+
+
+glProgramUniformMatrix3x2dvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
+glProgramUniformMatrix3x2dvEXT = ffiuintintsizeibooleanPtrdoubleIOV glProgramUniformMatrix3x2dvEXTFunPtr
+
+glProgramUniformMatrix3x2dvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
+glProgramUniformMatrix3x2dvEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix3x2dvEXT")
+
+{-# NOINLINE glProgramUniformMatrix3x2dvEXTFunPtr #-}
+
+-- | Usage: @'glProgramUniformMatrix3x4dvEXT' program location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FALSE', 'Graphics.GL.Raw.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count@.
+
+
+glProgramUniformMatrix3x4dvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
+glProgramUniformMatrix3x4dvEXT = ffiuintintsizeibooleanPtrdoubleIOV glProgramUniformMatrix3x4dvEXTFunPtr
+
+glProgramUniformMatrix3x4dvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
+glProgramUniformMatrix3x4dvEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix3x4dvEXT")
+
+{-# NOINLINE glProgramUniformMatrix3x4dvEXTFunPtr #-}
+
+-- | Usage: @'glProgramUniformMatrix4dvEXT' program location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FALSE', 'Graphics.GL.Raw.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count@.
+
+
+glProgramUniformMatrix4dvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
+glProgramUniformMatrix4dvEXT = ffiuintintsizeibooleanPtrdoubleIOV glProgramUniformMatrix4dvEXTFunPtr
+
+glProgramUniformMatrix4dvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
+glProgramUniformMatrix4dvEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix4dvEXT")
+
+{-# NOINLINE glProgramUniformMatrix4dvEXTFunPtr #-}
+
+-- | Usage: @'glProgramUniformMatrix4x2dvEXT' program location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FALSE', 'Graphics.GL.Raw.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count@.
+
+
+glProgramUniformMatrix4x2dvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
+glProgramUniformMatrix4x2dvEXT = ffiuintintsizeibooleanPtrdoubleIOV glProgramUniformMatrix4x2dvEXTFunPtr
+
+glProgramUniformMatrix4x2dvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
+glProgramUniformMatrix4x2dvEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix4x2dvEXT")
+
+{-# NOINLINE glProgramUniformMatrix4x2dvEXTFunPtr #-}
+
+-- | Usage: @'glProgramUniformMatrix4x3dvEXT' program location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FALSE', 'Graphics.GL.Raw.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count@.
+
+
+glProgramUniformMatrix4x3dvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
+glProgramUniformMatrix4x3dvEXT = ffiuintintsizeibooleanPtrdoubleIOV glProgramUniformMatrix4x3dvEXTFunPtr
+
+glProgramUniformMatrix4x3dvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
+glProgramUniformMatrix4x3dvEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix4x3dvEXT")
+
+{-# NOINLINE glProgramUniformMatrix4x3dvEXTFunPtr #-}
+
+-- | Usage: @'glPushClientAttribDefaultEXT' mask@
+--
+-- The parameter @mask@ is a @ClientAttribMask@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_CLIENT_ALL_ATTRIB_BITS', 'Graphics.GL.Raw.Internal.Shared.GL_CLIENT_PIXEL_STORE_BIT', 'Graphics.GL.Raw.Internal.Shared.GL_CLIENT_VERTEX_ARRAY_BIT'.
+
+
+glPushClientAttribDefaultEXT :: MonadIO m => GLbitfield -> m ()
+glPushClientAttribDefaultEXT = ffibitfieldIOV glPushClientAttribDefaultEXTFunPtr
+
+glPushClientAttribDefaultEXTFunPtr :: FunPtr (GLbitfield -> IO ())
+glPushClientAttribDefaultEXTFunPtr = unsafePerformIO (getProcAddress "glPushClientAttribDefaultEXT")
+
+{-# NOINLINE glPushClientAttribDefaultEXTFunPtr #-}
+
+-- | Usage: @'glTextureBufferEXT' texture target internalformat buffer@
+--
+-- The parameter @texture@ is a @Texture@.
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @internalformat@ is a @TextureInternalFormat@.
+
+
+glTextureBufferEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> GLuint -> m ()
+glTextureBufferEXT = ffiuintenumenumuintIOV glTextureBufferEXTFunPtr
+
+glTextureBufferEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> GLuint -> IO ())
+glTextureBufferEXTFunPtr = unsafePerformIO (getProcAddress "glTextureBufferEXT")
+
+{-# NOINLINE glTextureBufferEXTFunPtr #-}
+
+-- | Usage: @'glTextureBufferRangeEXT' texture target internalformat buffer offset size@
+--
+-- The parameter @texture@ is a @Texture@.
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @internalformat@ is a @TextureInternalFormat@.
+--
+-- The parameter @offset@ is a @BufferOffset@.
+--
+-- The parameter @size@ is a @BufferSize@.
+
+
+glTextureBufferRangeEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> GLuint -> GLintptr -> GLsizeiptr -> m ()
+glTextureBufferRangeEXT = ffiuintenumenumuintintptrsizeiptrIOV glTextureBufferRangeEXTFunPtr
+
+glTextureBufferRangeEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> GLuint -> GLintptr -> GLsizeiptr -> IO ())
+glTextureBufferRangeEXTFunPtr = unsafePerformIO (getProcAddress "glTextureBufferRangeEXT")
+
+{-# NOINLINE glTextureBufferRangeEXTFunPtr #-}
+
+-- | Usage: @'glTextureImage1DEXT' texture target level internalformat width border format type pixels@
+--
+-- The parameter @texture@ is a @Texture@.
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @internalformat@ is a @TextureComponentCount@.
+--
+-- The parameter @border@ is a @CheckedInt32@.
+--
+-- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Raw.Extension.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_ALPHA', 'Graphics.GL.Raw.Internal.Shared.GL_BLUE', 'Graphics.GL.Raw.Extension.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Raw.Extension.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Raw.Internal.Shared.GL_GREEN', 'Graphics.GL.Raw.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Raw.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Raw.Internal.Shared.GL_RED', 'Graphics.GL.Raw.Extension.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_RGB', 'Graphics.GL.Raw.Internal.Shared.GL_RGBA', 'Graphics.GL.Raw.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Raw.Extension.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
+--
+-- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_BITMAP', 'Graphics.GL.Raw.Internal.Shared.GL_BYTE', 'Graphics.GL.Raw.Internal.Shared.GL_FLOAT', 'Graphics.GL.Raw.Internal.Shared.GL_INT', 'Graphics.GL.Raw.Internal.Shared.GL_SHORT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
+--
+-- The length of @pixels@ should be @COMPSIZE(format,type,width)@.
+
+
+glTextureImage1DEXT :: MonadIO m => GLuint -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> m ()
+glTextureImage1DEXT = ffiuintenumintintsizeiintenumenumPtrVIOV glTextureImage1DEXTFunPtr
+
+glTextureImage1DEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> IO ())
+glTextureImage1DEXTFunPtr = unsafePerformIO (getProcAddress "glTextureImage1DEXT")
+
+{-# NOINLINE glTextureImage1DEXTFunPtr #-}
+
+-- | Usage: @'glTextureImage2DEXT' texture target level internalformat width height border format type pixels@
+--
+-- The parameter @texture@ is a @Texture@.
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @internalformat@ is a @TextureComponentCount@.
+--
+-- The parameter @border@ is a @CheckedInt32@.
+--
+-- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Raw.Extension.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_ALPHA', 'Graphics.GL.Raw.Internal.Shared.GL_BLUE', 'Graphics.GL.Raw.Extension.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Raw.Extension.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Raw.Internal.Shared.GL_GREEN', 'Graphics.GL.Raw.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Raw.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Raw.Internal.Shared.GL_RED', 'Graphics.GL.Raw.Extension.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_RGB', 'Graphics.GL.Raw.Internal.Shared.GL_RGBA', 'Graphics.GL.Raw.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Raw.Extension.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
+--
+-- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_BITMAP', 'Graphics.GL.Raw.Internal.Shared.GL_BYTE', 'Graphics.GL.Raw.Internal.Shared.GL_FLOAT', 'Graphics.GL.Raw.Internal.Shared.GL_INT', 'Graphics.GL.Raw.Internal.Shared.GL_SHORT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
+--
+-- The length of @pixels@ should be @COMPSIZE(format,type,width,height)@.
+
+
+glTextureImage2DEXT :: MonadIO m => GLuint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> m ()
+glTextureImage2DEXT = ffiuintenumintintsizeisizeiintenumenumPtrVIOV glTextureImage2DEXTFunPtr
+
+glTextureImage2DEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> IO ())
+glTextureImage2DEXTFunPtr = unsafePerformIO (getProcAddress "glTextureImage2DEXT")
+
+{-# NOINLINE glTextureImage2DEXTFunPtr #-}
+
+-- | Usage: @'glTextureImage3DEXT' texture target level internalformat width height depth border format type pixels@
+--
+-- The parameter @texture@ is a @Texture@.
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @internalformat@ is a @TextureComponentCount@.
+--
+-- The parameter @border@ is a @CheckedInt32@.
+--
+-- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Raw.Extension.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_ALPHA', 'Graphics.GL.Raw.Internal.Shared.GL_BLUE', 'Graphics.GL.Raw.Extension.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Raw.Extension.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Raw.Internal.Shared.GL_GREEN', 'Graphics.GL.Raw.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Raw.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Raw.Internal.Shared.GL_RED', 'Graphics.GL.Raw.Extension.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_RGB', 'Graphics.GL.Raw.Internal.Shared.GL_RGBA', 'Graphics.GL.Raw.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Raw.Extension.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
+--
+-- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_BITMAP', 'Graphics.GL.Raw.Internal.Shared.GL_BYTE', 'Graphics.GL.Raw.Internal.Shared.GL_FLOAT', 'Graphics.GL.Raw.Internal.Shared.GL_INT', 'Graphics.GL.Raw.Internal.Shared.GL_SHORT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
+--
+-- The length of @pixels@ should be @COMPSIZE(format,type,width,height,depth)@.
+
+
+glTextureImage3DEXT :: MonadIO m => GLuint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> m ()
+glTextureImage3DEXT = ffiuintenumintintsizeisizeisizeiintenumenumPtrVIOV glTextureImage3DEXTFunPtr
+
+glTextureImage3DEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> IO ())
+glTextureImage3DEXTFunPtr = unsafePerformIO (getProcAddress "glTextureImage3DEXT")
+
+{-# NOINLINE glTextureImage3DEXTFunPtr #-}
+
+-- | Usage: @'glTexturePageCommitmentEXT' texture level xoffset yoffset zoffset width height depth resident@
+
+
+glTexturePageCommitmentEXT :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> m ()
+glTexturePageCommitmentEXT = ffiuintintintintintsizeisizeisizeibooleanIOV glTexturePageCommitmentEXTFunPtr
+
+glTexturePageCommitmentEXTFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> IO ())
+glTexturePageCommitmentEXTFunPtr = unsafePerformIO (getProcAddress "glTexturePageCommitmentEXT")
+
+{-# NOINLINE glTexturePageCommitmentEXTFunPtr #-}
+
+-- | Usage: @'glTextureParameterIivEXT' texture target pname params@
+--
+-- The parameter @texture@ is a @Texture@.
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @pname@ is a @TextureParameterName@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Raw.Extension.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_GENERATE_MIPMAP', 'Graphics.GL.Raw.Extension.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Raw.Extension.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Raw.Extension.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Raw.Extension.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Raw.Extension.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Raw.Extension.EXT.TextureObject.GL_TEXTURE_PRIORITY_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_WRAP_R', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_WRAP_R_OES', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_WRAP_T'.
+--
+-- The parameter @params@ is a @CheckedInt32@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glTextureParameterIivEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> Ptr GLint -> m ()
+glTextureParameterIivEXT = ffiuintenumenumPtrintIOV glTextureParameterIivEXTFunPtr
+
+glTextureParameterIivEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> Ptr GLint -> IO ())
+glTextureParameterIivEXTFunPtr = unsafePerformIO (getProcAddress "glTextureParameterIivEXT")
+
+{-# NOINLINE glTextureParameterIivEXTFunPtr #-}
+
+-- | Usage: @'glTextureParameterIuivEXT' texture target pname params@
+--
+-- The parameter @texture@ is a @Texture@.
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @pname@ is a @TextureParameterName@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Raw.Extension.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_GENERATE_MIPMAP', 'Graphics.GL.Raw.Extension.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Raw.Extension.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Raw.Extension.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Raw.Extension.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Raw.Extension.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Raw.Extension.EXT.TextureObject.GL_TEXTURE_PRIORITY_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_WRAP_R', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_WRAP_R_OES', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_WRAP_T'.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glTextureParameterIuivEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> Ptr GLuint -> m ()
+glTextureParameterIuivEXT = ffiuintenumenumPtruintIOV glTextureParameterIuivEXTFunPtr
+
+glTextureParameterIuivEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> Ptr GLuint -> IO ())
+glTextureParameterIuivEXTFunPtr = unsafePerformIO (getProcAddress "glTextureParameterIuivEXT")
+
+{-# NOINLINE glTextureParameterIuivEXTFunPtr #-}
+
+-- | Usage: @'glTextureParameterfEXT' texture target pname param@
+--
+-- The parameter @texture@ is a @Texture@.
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @pname@ is a @TextureParameterName@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Raw.Extension.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_GENERATE_MIPMAP', 'Graphics.GL.Raw.Extension.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Raw.Extension.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Raw.Extension.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Raw.Extension.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Raw.Extension.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Raw.Extension.EXT.TextureObject.GL_TEXTURE_PRIORITY_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_WRAP_R', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_WRAP_R_OES', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_WRAP_T'.
+--
+-- The parameter @param@ is a @CheckedFloat32@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Extension.EXT.DirectStateAccess.glTextureParameterfvEXT'.
+
+
+glTextureParameterfEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> GLfloat -> m ()
+glTextureParameterfEXT = ffiuintenumenumfloatIOV glTextureParameterfEXTFunPtr
+
+glTextureParameterfEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> GLfloat -> IO ())
+glTextureParameterfEXTFunPtr = unsafePerformIO (getProcAddress "glTextureParameterfEXT")
+
+{-# NOINLINE glTextureParameterfEXTFunPtr #-}
+
+-- | Usage: @'glTextureParameterfvEXT' texture target pname params@
+--
+-- The parameter @texture@ is a @Texture@.
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @pname@ is a @TextureParameterName@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Raw.Extension.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_GENERATE_MIPMAP', 'Graphics.GL.Raw.Extension.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Raw.Extension.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Raw.Extension.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Raw.Extension.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Raw.Extension.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Raw.Extension.EXT.TextureObject.GL_TEXTURE_PRIORITY_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_WRAP_R', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_WRAP_R_OES', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_WRAP_T'.
+--
+-- The parameter @params@ is a @CheckedFloat32@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glTextureParameterfvEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> Ptr GLfloat -> m ()
+glTextureParameterfvEXT = ffiuintenumenumPtrfloatIOV glTextureParameterfvEXTFunPtr
+
+glTextureParameterfvEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> Ptr GLfloat -> IO ())
+glTextureParameterfvEXTFunPtr = unsafePerformIO (getProcAddress "glTextureParameterfvEXT")
+
+{-# NOINLINE glTextureParameterfvEXTFunPtr #-}
+
+-- | Usage: @'glTextureParameteriEXT' texture target pname param@
+--
+-- The parameter @texture@ is a @Texture@.
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @pname@ is a @TextureParameterName@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Raw.Extension.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_GENERATE_MIPMAP', 'Graphics.GL.Raw.Extension.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Raw.Extension.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Raw.Extension.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Raw.Extension.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Raw.Extension.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Raw.Extension.EXT.TextureObject.GL_TEXTURE_PRIORITY_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_WRAP_R', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_WRAP_R_OES', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_WRAP_T'.
+--
+-- The parameter @param@ is a @CheckedInt32@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Extension.EXT.DirectStateAccess.glTextureParameterivEXT'.
+
+
+glTextureParameteriEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> GLint -> m ()
+glTextureParameteriEXT = ffiuintenumenumintIOV glTextureParameteriEXTFunPtr
+
+glTextureParameteriEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> GLint -> IO ())
+glTextureParameteriEXTFunPtr = unsafePerformIO (getProcAddress "glTextureParameteriEXT")
+
+{-# NOINLINE glTextureParameteriEXTFunPtr #-}
+
+-- | Usage: @'glTextureParameterivEXT' texture target pname params@
+--
+-- The parameter @texture@ is a @Texture@.
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @pname@ is a @TextureParameterName@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Raw.Extension.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_GENERATE_MIPMAP', 'Graphics.GL.Raw.Extension.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Raw.Extension.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Raw.Extension.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Raw.Extension.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Raw.Extension.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Raw.Extension.EXT.TextureObject.GL_TEXTURE_PRIORITY_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_WRAP_R', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_WRAP_R_OES', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_WRAP_T'.
+--
+-- The parameter @params@ is a @CheckedInt32@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glTextureParameterivEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> Ptr GLint -> m ()
+glTextureParameterivEXT = ffiuintenumenumPtrintIOV glTextureParameterivEXTFunPtr
+
+glTextureParameterivEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> Ptr GLint -> IO ())
+glTextureParameterivEXTFunPtr = unsafePerformIO (getProcAddress "glTextureParameterivEXT")
+
+{-# NOINLINE glTextureParameterivEXTFunPtr #-}
+
+-- | Usage: @'glTextureRenderbufferEXT' texture target renderbuffer@
+--
+-- The parameter @texture@ is a @Texture@.
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+
+
+glTextureRenderbufferEXT :: MonadIO m => GLuint -> GLenum -> GLuint -> m ()
+glTextureRenderbufferEXT = ffiuintenumuintIOV glTextureRenderbufferEXTFunPtr
+
+glTextureRenderbufferEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> IO ())
+glTextureRenderbufferEXTFunPtr = unsafePerformIO (getProcAddress "glTextureRenderbufferEXT")
+
+{-# NOINLINE glTextureRenderbufferEXTFunPtr #-}
+
+-- | Usage: @'glTextureStorage2DMultisampleEXT' texture target samples internalformat width height fixedsamplelocations@
+--
+-- The parameter @texture@ is a @Texture@.
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @internalformat@ is a @TextureInternalFormat@.
+--
+-- The parameter @fixedsamplelocations@ is a @Boolean@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FALSE', 'Graphics.GL.Raw.Internal.Shared.GL_TRUE'.
+
+
+glTextureStorage2DMultisampleEXT :: MonadIO m => GLuint -> GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> m ()
+glTextureStorage2DMultisampleEXT = ffiuintenumsizeienumsizeisizeibooleanIOV glTextureStorage2DMultisampleEXTFunPtr
+
+glTextureStorage2DMultisampleEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> IO ())
+glTextureStorage2DMultisampleEXTFunPtr = unsafePerformIO (getProcAddress "glTextureStorage2DMultisampleEXT")
+
+{-# NOINLINE glTextureStorage2DMultisampleEXTFunPtr #-}
+
+-- | Usage: @'glTextureStorage3DMultisampleEXT' texture target samples internalformat width height depth fixedsamplelocations@
+--
+-- The parameter @fixedsamplelocations@ is a @Boolean@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FALSE', 'Graphics.GL.Raw.Internal.Shared.GL_TRUE'.
+
+
+glTextureStorage3DMultisampleEXT :: MonadIO m => GLuint -> GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> m ()
+glTextureStorage3DMultisampleEXT = ffiuintenumsizeienumsizeisizeisizeibooleanIOV glTextureStorage3DMultisampleEXTFunPtr
+
+glTextureStorage3DMultisampleEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> IO ())
+glTextureStorage3DMultisampleEXTFunPtr = unsafePerformIO (getProcAddress "glTextureStorage3DMultisampleEXT")
+
+{-# NOINLINE glTextureStorage3DMultisampleEXTFunPtr #-}
+
+-- | Usage: @'glTextureSubImage1DEXT' texture target level xoffset width format type pixels@
+--
+-- The parameter @texture@ is a @Texture@.
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @xoffset@ is a @CheckedInt32@.
+--
+-- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Raw.Extension.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_ALPHA', 'Graphics.GL.Raw.Internal.Shared.GL_BLUE', 'Graphics.GL.Raw.Extension.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Raw.Extension.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Raw.Internal.Shared.GL_GREEN', 'Graphics.GL.Raw.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Raw.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Raw.Internal.Shared.GL_RED', 'Graphics.GL.Raw.Extension.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_RGB', 'Graphics.GL.Raw.Internal.Shared.GL_RGBA', 'Graphics.GL.Raw.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Raw.Extension.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
+--
+-- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_BITMAP', 'Graphics.GL.Raw.Internal.Shared.GL_BYTE', 'Graphics.GL.Raw.Internal.Shared.GL_FLOAT', 'Graphics.GL.Raw.Internal.Shared.GL_INT', 'Graphics.GL.Raw.Internal.Shared.GL_SHORT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
+--
+-- The length of @pixels@ should be @COMPSIZE(format,type,width)@.
+
+
+glTextureSubImage1DEXT :: MonadIO m => GLuint -> GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
+glTextureSubImage1DEXT = ffiuintenumintintsizeienumenumPtrVIOV glTextureSubImage1DEXTFunPtr
+
+glTextureSubImage1DEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ())
+glTextureSubImage1DEXTFunPtr = unsafePerformIO (getProcAddress "glTextureSubImage1DEXT")
+
+{-# NOINLINE glTextureSubImage1DEXTFunPtr #-}
+
+-- | Usage: @'glTextureSubImage2DEXT' texture target level xoffset yoffset width height format type pixels@
+--
+-- The parameter @texture@ is a @Texture@.
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @xoffset@ is a @CheckedInt32@.
+--
+-- The parameter @yoffset@ is a @CheckedInt32@.
+--
+-- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Raw.Extension.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_ALPHA', 'Graphics.GL.Raw.Internal.Shared.GL_BLUE', 'Graphics.GL.Raw.Extension.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Raw.Extension.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Raw.Internal.Shared.GL_GREEN', 'Graphics.GL.Raw.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Raw.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Raw.Internal.Shared.GL_RED', 'Graphics.GL.Raw.Extension.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_RGB', 'Graphics.GL.Raw.Internal.Shared.GL_RGBA', 'Graphics.GL.Raw.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Raw.Extension.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
+--
+-- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_BITMAP', 'Graphics.GL.Raw.Internal.Shared.GL_BYTE', 'Graphics.GL.Raw.Internal.Shared.GL_FLOAT', 'Graphics.GL.Raw.Internal.Shared.GL_INT', 'Graphics.GL.Raw.Internal.Shared.GL_SHORT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
+--
+-- The length of @pixels@ should be @COMPSIZE(format,type,width,height)@.
+
+
+glTextureSubImage2DEXT :: MonadIO m => GLuint -> GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
+glTextureSubImage2DEXT = ffiuintenumintintintsizeisizeienumenumPtrVIOV glTextureSubImage2DEXTFunPtr
+
+glTextureSubImage2DEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ())
+glTextureSubImage2DEXTFunPtr = unsafePerformIO (getProcAddress "glTextureSubImage2DEXT")
+
+{-# NOINLINE glTextureSubImage2DEXTFunPtr #-}
+
+-- | Usage: @'glTextureSubImage3DEXT' texture target level xoffset yoffset zoffset width height depth format type pixels@
+--
+-- The parameter @texture@ is a @Texture@.
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @xoffset@ is a @CheckedInt32@.
+--
+-- The parameter @yoffset@ is a @CheckedInt32@.
+--
+-- The parameter @zoffset@ is a @CheckedInt32@.
+--
+-- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Raw.Extension.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_ALPHA', 'Graphics.GL.Raw.Internal.Shared.GL_BLUE', 'Graphics.GL.Raw.Extension.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Raw.Extension.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Raw.Internal.Shared.GL_GREEN', 'Graphics.GL.Raw.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Raw.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Raw.Internal.Shared.GL_RED', 'Graphics.GL.Raw.Extension.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_RGB', 'Graphics.GL.Raw.Internal.Shared.GL_RGBA', 'Graphics.GL.Raw.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Raw.Extension.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
+--
+-- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_BITMAP', 'Graphics.GL.Raw.Internal.Shared.GL_BYTE', 'Graphics.GL.Raw.Internal.Shared.GL_FLOAT', 'Graphics.GL.Raw.Internal.Shared.GL_INT', 'Graphics.GL.Raw.Internal.Shared.GL_SHORT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
+--
+-- The length of @pixels@ should be @COMPSIZE(format,type,width,height,depth)@.
+
+
+glTextureSubImage3DEXT :: MonadIO m => GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
+glTextureSubImage3DEXT = ffiuintenumintintintintsizeisizeisizeienumenumPtrVIOV glTextureSubImage3DEXTFunPtr
+
+glTextureSubImage3DEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ())
+glTextureSubImage3DEXTFunPtr = unsafePerformIO (getProcAddress "glTextureSubImage3DEXT")
+
+{-# NOINLINE glTextureSubImage3DEXTFunPtr #-}
+
+-- | Usage: @'glUnmapNamedBufferEXT' buffer@
+
+
+glUnmapNamedBufferEXT :: MonadIO m => GLuint -> m GLboolean
+glUnmapNamedBufferEXT = ffiuintIOboolean glUnmapNamedBufferEXTFunPtr
+
+glUnmapNamedBufferEXTFunPtr :: FunPtr (GLuint -> IO GLboolean)
+glUnmapNamedBufferEXTFunPtr = unsafePerformIO (getProcAddress "glUnmapNamedBufferEXT")
+
+{-# NOINLINE glUnmapNamedBufferEXTFunPtr #-}
+
+-- | Usage: @'glVertexArrayBindVertexBufferEXT' vaobj bindingindex buffer offset stride@
+--
+-- The parameter @offset@ is a @BufferOffset@.
+
+
+glVertexArrayBindVertexBufferEXT :: MonadIO m => GLuint -> GLuint -> GLuint -> GLintptr -> GLsizei -> m ()
+glVertexArrayBindVertexBufferEXT = ffiuintuintuintintptrsizeiIOV glVertexArrayBindVertexBufferEXTFunPtr
+
+glVertexArrayBindVertexBufferEXTFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> GLintptr -> GLsizei -> IO ())
+glVertexArrayBindVertexBufferEXTFunPtr = unsafePerformIO (getProcAddress "glVertexArrayBindVertexBufferEXT")
+
+{-# NOINLINE glVertexArrayBindVertexBufferEXTFunPtr #-}
+
+-- | Usage: @'glVertexArrayColorOffsetEXT' vaobj buffer size type stride offset@
+--
+-- The parameter @type@ is a @ColorPointerType@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_BYTE', 'Graphics.GL.Raw.Internal.Shared.GL_DOUBLE', 'Graphics.GL.Raw.Internal.Shared.GL_FLOAT', 'Graphics.GL.Raw.Internal.Shared.GL_INT', 'Graphics.GL.Raw.Internal.Shared.GL_SHORT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT'.
+
+
+glVertexArrayColorOffsetEXT :: MonadIO m => GLuint -> GLuint -> GLint -> GLenum -> GLsizei -> GLintptr -> m ()
+glVertexArrayColorOffsetEXT = ffiuintuintintenumsizeiintptrIOV glVertexArrayColorOffsetEXTFunPtr
+
+glVertexArrayColorOffsetEXTFunPtr :: FunPtr (GLuint -> GLuint -> GLint -> GLenum -> GLsizei -> GLintptr -> IO ())
+glVertexArrayColorOffsetEXTFunPtr = unsafePerformIO (getProcAddress "glVertexArrayColorOffsetEXT")
+
+{-# NOINLINE glVertexArrayColorOffsetEXTFunPtr #-}
+
+-- | Usage: @'glVertexArrayEdgeFlagOffsetEXT' vaobj buffer stride offset@
+
+
+glVertexArrayEdgeFlagOffsetEXT :: MonadIO m => GLuint -> GLuint -> GLsizei -> GLintptr -> m ()
+glVertexArrayEdgeFlagOffsetEXT = ffiuintuintsizeiintptrIOV glVertexArrayEdgeFlagOffsetEXTFunPtr
+
+glVertexArrayEdgeFlagOffsetEXTFunPtr :: FunPtr (GLuint -> GLuint -> GLsizei -> GLintptr -> IO ())
+glVertexArrayEdgeFlagOffsetEXTFunPtr = unsafePerformIO (getProcAddress "glVertexArrayEdgeFlagOffsetEXT")
+
+{-# NOINLINE glVertexArrayEdgeFlagOffsetEXTFunPtr #-}
+
+-- | Usage: @'glVertexArrayFogCoordOffsetEXT' vaobj buffer type stride offset@
+--
+-- The parameter @type@ is a @FogCoordinatePointerType@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FLOAT', 'Graphics.GL.Raw.Internal.Shared.GL_DOUBLE'.
+
+
+glVertexArrayFogCoordOffsetEXT :: MonadIO m => GLuint -> GLuint -> GLenum -> GLsizei -> GLintptr -> m ()
+glVertexArrayFogCoordOffsetEXT = ffiuintuintenumsizeiintptrIOV glVertexArrayFogCoordOffsetEXTFunPtr
+
+glVertexArrayFogCoordOffsetEXTFunPtr :: FunPtr (GLuint -> GLuint -> GLenum -> GLsizei -> GLintptr -> IO ())
+glVertexArrayFogCoordOffsetEXTFunPtr = unsafePerformIO (getProcAddress "glVertexArrayFogCoordOffsetEXT")
+
+{-# NOINLINE glVertexArrayFogCoordOffsetEXTFunPtr #-}
+
+-- | Usage: @'glVertexArrayIndexOffsetEXT' vaobj buffer type stride offset@
+--
+-- The parameter @type@ is a @IndexPointerType@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_DOUBLE', 'Graphics.GL.Raw.Internal.Shared.GL_FLOAT', 'Graphics.GL.Raw.Internal.Shared.GL_INT', 'Graphics.GL.Raw.Internal.Shared.GL_SHORT'.
+
+
+glVertexArrayIndexOffsetEXT :: MonadIO m => GLuint -> GLuint -> GLenum -> GLsizei -> GLintptr -> m ()
+glVertexArrayIndexOffsetEXT = ffiuintuintenumsizeiintptrIOV glVertexArrayIndexOffsetEXTFunPtr
+
+glVertexArrayIndexOffsetEXTFunPtr :: FunPtr (GLuint -> GLuint -> GLenum -> GLsizei -> GLintptr -> IO ())
+glVertexArrayIndexOffsetEXTFunPtr = unsafePerformIO (getProcAddress "glVertexArrayIndexOffsetEXT")
+
+{-# NOINLINE glVertexArrayIndexOffsetEXTFunPtr #-}
+
+-- | Usage: @'glVertexArrayMultiTexCoordOffsetEXT' vaobj buffer texunit size type stride offset@
+--
+-- The parameter @type@ is a @TexCoordPointerType@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_DOUBLE', 'Graphics.GL.Raw.Internal.Shared.GL_FLOAT', 'Graphics.GL.Raw.Internal.Shared.GL_INT', 'Graphics.GL.Raw.Internal.Shared.GL_SHORT'.
+
+
+glVertexArrayMultiTexCoordOffsetEXT :: MonadIO m => GLuint -> GLuint -> GLenum -> GLint -> GLenum -> GLsizei -> GLintptr -> m ()
+glVertexArrayMultiTexCoordOffsetEXT = ffiuintuintenumintenumsizeiintptrIOV glVertexArrayMultiTexCoordOffsetEXTFunPtr
+
+glVertexArrayMultiTexCoordOffsetEXTFunPtr :: FunPtr (GLuint -> GLuint -> GLenum -> GLint -> GLenum -> GLsizei -> GLintptr -> IO ())
+glVertexArrayMultiTexCoordOffsetEXTFunPtr = unsafePerformIO (getProcAddress "glVertexArrayMultiTexCoordOffsetEXT")
+
+{-# NOINLINE glVertexArrayMultiTexCoordOffsetEXTFunPtr #-}
+
+-- | Usage: @'glVertexArrayNormalOffsetEXT' vaobj buffer type stride offset@
+--
+-- The parameter @type@ is a @NormalPointerType@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_BYTE', 'Graphics.GL.Raw.Internal.Shared.GL_DOUBLE', 'Graphics.GL.Raw.Internal.Shared.GL_FLOAT', 'Graphics.GL.Raw.Internal.Shared.GL_INT', 'Graphics.GL.Raw.Internal.Shared.GL_SHORT'.
+
+
+glVertexArrayNormalOffsetEXT :: MonadIO m => GLuint -> GLuint -> GLenum -> GLsizei -> GLintptr -> m ()
+glVertexArrayNormalOffsetEXT = ffiuintuintenumsizeiintptrIOV glVertexArrayNormalOffsetEXTFunPtr
+
+glVertexArrayNormalOffsetEXTFunPtr :: FunPtr (GLuint -> GLuint -> GLenum -> GLsizei -> GLintptr -> IO ())
+glVertexArrayNormalOffsetEXTFunPtr = unsafePerformIO (getProcAddress "glVertexArrayNormalOffsetEXT")
+
+{-# NOINLINE glVertexArrayNormalOffsetEXTFunPtr #-}
+
+-- | Usage: @'glVertexArraySecondaryColorOffsetEXT' vaobj buffer size type stride offset@
+--
+-- The parameter @type@ is a @ColorPointerType@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_BYTE', 'Graphics.GL.Raw.Internal.Shared.GL_DOUBLE', 'Graphics.GL.Raw.Internal.Shared.GL_FLOAT', 'Graphics.GL.Raw.Internal.Shared.GL_INT', 'Graphics.GL.Raw.Internal.Shared.GL_SHORT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT'.
+
+
+glVertexArraySecondaryColorOffsetEXT :: MonadIO m => GLuint -> GLuint -> GLint -> GLenum -> GLsizei -> GLintptr -> m ()
+glVertexArraySecondaryColorOffsetEXT = ffiuintuintintenumsizeiintptrIOV glVertexArraySecondaryColorOffsetEXTFunPtr
+
+glVertexArraySecondaryColorOffsetEXTFunPtr :: FunPtr (GLuint -> GLuint -> GLint -> GLenum -> GLsizei -> GLintptr -> IO ())
+glVertexArraySecondaryColorOffsetEXTFunPtr = unsafePerformIO (getProcAddress "glVertexArraySecondaryColorOffsetEXT")
+
+{-# NOINLINE glVertexArraySecondaryColorOffsetEXTFunPtr #-}
+
+-- | Usage: @'glVertexArrayTexCoordOffsetEXT' vaobj buffer size type stride offset@
+--
+-- The parameter @type@ is a @TexCoordPointerType@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_DOUBLE', 'Graphics.GL.Raw.Internal.Shared.GL_FLOAT', 'Graphics.GL.Raw.Internal.Shared.GL_INT', 'Graphics.GL.Raw.Internal.Shared.GL_SHORT'.
+
+
+glVertexArrayTexCoordOffsetEXT :: MonadIO m => GLuint -> GLuint -> GLint -> GLenum -> GLsizei -> GLintptr -> m ()
+glVertexArrayTexCoordOffsetEXT = ffiuintuintintenumsizeiintptrIOV glVertexArrayTexCoordOffsetEXTFunPtr
+
+glVertexArrayTexCoordOffsetEXTFunPtr :: FunPtr (GLuint -> GLuint -> GLint -> GLenum -> GLsizei -> GLintptr -> IO ())
+glVertexArrayTexCoordOffsetEXTFunPtr = unsafePerformIO (getProcAddress "glVertexArrayTexCoordOffsetEXT")
+
+{-# NOINLINE glVertexArrayTexCoordOffsetEXTFunPtr #-}
+
+-- | Usage: @'glVertexArrayVertexAttribBindingEXT' vaobj attribindex bindingindex@
+
+
+glVertexArrayVertexAttribBindingEXT :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()
+glVertexArrayVertexAttribBindingEXT = ffiuintuintuintIOV glVertexArrayVertexAttribBindingEXTFunPtr
+
+glVertexArrayVertexAttribBindingEXTFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> IO ())
+glVertexArrayVertexAttribBindingEXTFunPtr = unsafePerformIO (getProcAddress "glVertexArrayVertexAttribBindingEXT")
+
+{-# NOINLINE glVertexArrayVertexAttribBindingEXTFunPtr #-}
+
+-- | Usage: @'glVertexArrayVertexAttribDivisorEXT' vaobj index divisor@
+
+
+glVertexArrayVertexAttribDivisorEXT :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()
+glVertexArrayVertexAttribDivisorEXT = ffiuintuintuintIOV glVertexArrayVertexAttribDivisorEXTFunPtr
+
+glVertexArrayVertexAttribDivisorEXTFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> IO ())
+glVertexArrayVertexAttribDivisorEXTFunPtr = unsafePerformIO (getProcAddress "glVertexArrayVertexAttribDivisorEXT")
+
+{-# NOINLINE glVertexArrayVertexAttribDivisorEXTFunPtr #-}
+
+-- | Usage: @'glVertexArrayVertexAttribFormatEXT' vaobj attribindex size type normalized relativeoffset@
+--
+-- The parameter @normalized@ is a @Boolean@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FALSE', 'Graphics.GL.Raw.Internal.Shared.GL_TRUE'.
+
+
+glVertexArrayVertexAttribFormatEXT :: MonadIO m => GLuint -> GLuint -> GLint -> GLenum -> GLboolean -> GLuint -> m ()
+glVertexArrayVertexAttribFormatEXT = ffiuintuintintenumbooleanuintIOV glVertexArrayVertexAttribFormatEXTFunPtr
+
+glVertexArrayVertexAttribFormatEXTFunPtr :: FunPtr (GLuint -> GLuint -> GLint -> GLenum -> GLboolean -> GLuint -> IO ())
+glVertexArrayVertexAttribFormatEXTFunPtr = unsafePerformIO (getProcAddress "glVertexArrayVertexAttribFormatEXT")
+
+{-# NOINLINE glVertexArrayVertexAttribFormatEXTFunPtr #-}
+
+-- | Usage: @'glVertexArrayVertexAttribIFormatEXT' vaobj attribindex size type relativeoffset@
+
+
+glVertexArrayVertexAttribIFormatEXT :: MonadIO m => GLuint -> GLuint -> GLint -> GLenum -> GLuint -> m ()
+glVertexArrayVertexAttribIFormatEXT = ffiuintuintintenumuintIOV glVertexArrayVertexAttribIFormatEXTFunPtr
+
+glVertexArrayVertexAttribIFormatEXTFunPtr :: FunPtr (GLuint -> GLuint -> GLint -> GLenum -> GLuint -> IO ())
+glVertexArrayVertexAttribIFormatEXTFunPtr = unsafePerformIO (getProcAddress "glVertexArrayVertexAttribIFormatEXT")
+
+{-# NOINLINE glVertexArrayVertexAttribIFormatEXTFunPtr #-}
+
+-- | Usage: @'glVertexArrayVertexAttribIOffsetEXT' vaobj buffer index size type stride offset@
+--
+-- The parameter @type@ is a @VertexAttribEnum@.
+
+
+glVertexArrayVertexAttribIOffsetEXT :: MonadIO m => GLuint -> GLuint -> GLuint -> GLint -> GLenum -> GLsizei -> GLintptr -> m ()
+glVertexArrayVertexAttribIOffsetEXT = ffiuintuintuintintenumsizeiintptrIOV glVertexArrayVertexAttribIOffsetEXTFunPtr
+
+glVertexArrayVertexAttribIOffsetEXTFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> GLint -> GLenum -> GLsizei -> GLintptr -> IO ())
+glVertexArrayVertexAttribIOffsetEXTFunPtr = unsafePerformIO (getProcAddress "glVertexArrayVertexAttribIOffsetEXT")
+
+{-# NOINLINE glVertexArrayVertexAttribIOffsetEXTFunPtr #-}
+
+-- | Usage: @'glVertexArrayVertexAttribLFormatEXT' vaobj attribindex size type relativeoffset@
+
+
+glVertexArrayVertexAttribLFormatEXT :: MonadIO m => GLuint -> GLuint -> GLint -> GLenum -> GLuint -> m ()
+glVertexArrayVertexAttribLFormatEXT = ffiuintuintintenumuintIOV glVertexArrayVertexAttribLFormatEXTFunPtr
+
+glVertexArrayVertexAttribLFormatEXTFunPtr :: FunPtr (GLuint -> GLuint -> GLint -> GLenum -> GLuint -> IO ())
+glVertexArrayVertexAttribLFormatEXTFunPtr = unsafePerformIO (getProcAddress "glVertexArrayVertexAttribLFormatEXT")
+
+{-# NOINLINE glVertexArrayVertexAttribLFormatEXTFunPtr #-}
+
+-- | Usage: @'glVertexArrayVertexAttribLOffsetEXT' vaobj buffer index size type stride offset@
+--
+-- The parameter @offset@ is a @BufferOffset@.
+
+
+glVertexArrayVertexAttribLOffsetEXT :: MonadIO m => GLuint -> GLuint -> GLuint -> GLint -> GLenum -> GLsizei -> GLintptr -> m ()
+glVertexArrayVertexAttribLOffsetEXT = ffiuintuintuintintenumsizeiintptrIOV glVertexArrayVertexAttribLOffsetEXTFunPtr
+
+glVertexArrayVertexAttribLOffsetEXTFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> GLint -> GLenum -> GLsizei -> GLintptr -> IO ())
+glVertexArrayVertexAttribLOffsetEXTFunPtr = unsafePerformIO (getProcAddress "glVertexArrayVertexAttribLOffsetEXT")
+
+{-# NOINLINE glVertexArrayVertexAttribLOffsetEXTFunPtr #-}
+
+-- | Usage: @'glVertexArrayVertexAttribOffsetEXT' vaobj buffer index size type normalized stride offset@
+--
+-- The parameter @type@ is a @VertexAttribPointerType@.
+
+
+glVertexArrayVertexAttribOffsetEXT :: MonadIO m => GLuint -> GLuint -> GLuint -> GLint -> GLenum -> GLboolean -> GLsizei -> GLintptr -> m ()
+glVertexArrayVertexAttribOffsetEXT = ffiuintuintuintintenumbooleansizeiintptrIOV glVertexArrayVertexAttribOffsetEXTFunPtr
+
+glVertexArrayVertexAttribOffsetEXTFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> GLint -> GLenum -> GLboolean -> GLsizei -> GLintptr -> IO ())
+glVertexArrayVertexAttribOffsetEXTFunPtr = unsafePerformIO (getProcAddress "glVertexArrayVertexAttribOffsetEXT")
+
+{-# NOINLINE glVertexArrayVertexAttribOffsetEXTFunPtr #-}
+
+-- | Usage: @'glVertexArrayVertexBindingDivisorEXT' vaobj bindingindex divisor@
+
+
+glVertexArrayVertexBindingDivisorEXT :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()
+glVertexArrayVertexBindingDivisorEXT = ffiuintuintuintIOV glVertexArrayVertexBindingDivisorEXTFunPtr
+
+glVertexArrayVertexBindingDivisorEXTFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> IO ())
+glVertexArrayVertexBindingDivisorEXTFunPtr = unsafePerformIO (getProcAddress "glVertexArrayVertexBindingDivisorEXT")
+
+{-# NOINLINE glVertexArrayVertexBindingDivisorEXTFunPtr #-}
+
+-- | Usage: @'glVertexArrayVertexOffsetEXT' vaobj buffer size type stride offset@
+--
+-- The parameter @type@ is a @VertexPointerType@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_DOUBLE', 'Graphics.GL.Raw.Internal.Shared.GL_FLOAT', 'Graphics.GL.Raw.Internal.Shared.GL_INT', 'Graphics.GL.Raw.Internal.Shared.GL_SHORT'.
+
 
 glVertexArrayVertexOffsetEXT :: MonadIO m => GLuint -> GLuint -> GLint -> GLenum -> GLsizei -> GLintptr -> m ()
 glVertexArrayVertexOffsetEXT = ffiuintuintintenumsizeiintptrIOV glVertexArrayVertexOffsetEXTFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/DiscardFramebuffer.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/DiscardFramebuffer.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/DiscardFramebuffer.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/DiscardFramebuffer.hs
@@ -19,8 +19,16 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the GL_EXT_discard_framebuffer extension is available.
+
 gl_EXT_discard_framebuffer :: Bool
 gl_EXT_discard_framebuffer = member "GL_EXT_discard_framebuffer" extensions
+{-# NOINLINE gl_EXT_discard_framebuffer #-}
+
+-- | Usage: @'glDiscardFramebufferEXT' target numAttachments attachments@
+--
+-- The length of @attachments@ should be @numAttachments@.
+
 
 glDiscardFramebufferEXT :: MonadIO m => GLenum -> GLsizei -> Ptr GLenum -> m ()
 glDiscardFramebufferEXT = ffienumsizeiPtrenumIOV glDiscardFramebufferEXTFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/DisjointTimerQuery.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/DisjointTimerQuery.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/DisjointTimerQuery.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/DisjointTimerQuery.hs
@@ -34,9 +34,17 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the GL_EXT_disjoint_timer_query extension is available.
+
 gl_EXT_disjoint_timer_query :: Bool
 gl_EXT_disjoint_timer_query = member "GL_EXT_disjoint_timer_query" extensions
+{-# NOINLINE gl_EXT_disjoint_timer_query #-}
 
+-- | Usage: @'glGetQueryObjectivEXT' id pname params@
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glGetQueryObjectiv'.
+
+
 glGetQueryObjectivEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
 glGetQueryObjectivEXT = ffiuintenumPtrintIOV glGetQueryObjectivEXTFunPtr
 
@@ -44,6 +52,11 @@
 glGetQueryObjectivEXTFunPtr = unsafePerformIO (getProcAddress "glGetQueryObjectivEXT")
 
 {-# NOINLINE glGetQueryObjectivEXTFunPtr #-}
+
+-- | Usage: @'glQueryCounterEXT' id target@
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glQueryCounter'.
+
 
 glQueryCounterEXT :: MonadIO m => GLuint -> GLenum -> m ()
 glQueryCounterEXT = ffiuintenumIOV glQueryCounterEXTFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/DrawBuffers.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/DrawBuffers.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/DrawBuffers.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/DrawBuffers.hs
@@ -51,8 +51,16 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the GL_EXT_draw_buffers extension is available.
+
 gl_EXT_draw_buffers :: Bool
 gl_EXT_draw_buffers = member "GL_EXT_draw_buffers" extensions
+{-# NOINLINE gl_EXT_draw_buffers #-}
+
+-- | Usage: @'glDrawBuffersEXT' n bufs@
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glDrawBuffers'.
+
 
 glDrawBuffersEXT :: MonadIO m => GLsizei -> Ptr GLenum -> m ()
 glDrawBuffersEXT = ffisizeiPtrenumIOV glDrawBuffersEXTFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/DrawBuffers2.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/DrawBuffers2.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/DrawBuffers2.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/DrawBuffers2.hs
@@ -22,8 +22,24 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/draw_buffers2.txt GL_EXT_draw_buffers2> extension is available.
+
 gl_EXT_draw_buffers2 :: Bool
 gl_EXT_draw_buffers2 = member "GL_EXT_draw_buffers2" extensions
+{-# NOINLINE gl_EXT_draw_buffers2 #-}
+
+-- | Usage: @'glColorMaskIndexedEXT' index r g b a@
+--
+-- The parameter @r@ is a @Boolean@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FALSE', 'Graphics.GL.Raw.Internal.Shared.GL_TRUE'.
+--
+-- The parameter @g@ is a @Boolean@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FALSE', 'Graphics.GL.Raw.Internal.Shared.GL_TRUE'.
+--
+-- The parameter @b@ is a @Boolean@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FALSE', 'Graphics.GL.Raw.Internal.Shared.GL_TRUE'.
+--
+-- The parameter @a@ is a @Boolean@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FALSE', 'Graphics.GL.Raw.Internal.Shared.GL_TRUE'.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glColorMaski'.
+
 
 glColorMaskIndexedEXT :: MonadIO m => GLuint -> GLboolean -> GLboolean -> GLboolean -> GLboolean -> m ()
 glColorMaskIndexedEXT = ffiuintbooleanbooleanbooleanbooleanIOV glColorMaskIndexedEXTFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/DrawBuffersIndexed.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/DrawBuffersIndexed.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/DrawBuffersIndexed.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/DrawBuffersIndexed.hs
@@ -52,9 +52,17 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the GL_EXT_draw_buffers_indexed extension is available.
+
 gl_EXT_draw_buffers_indexed :: Bool
 gl_EXT_draw_buffers_indexed = member "GL_EXT_draw_buffers_indexed" extensions
+{-# NOINLINE gl_EXT_draw_buffers_indexed #-}
 
+-- | Usage: @'glBlendEquationSeparateiEXT' buf modeRGB modeAlpha@
+--
+-- This command is an alias for 'Graphics.GL.Raw.Profile.Core40.glBlendEquationSeparatei'.
+
+
 glBlendEquationSeparateiEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> m ()
 glBlendEquationSeparateiEXT = ffiuintenumenumIOV glBlendEquationSeparateiEXTFunPtr
 
@@ -63,6 +71,11 @@
 
 {-# NOINLINE glBlendEquationSeparateiEXTFunPtr #-}
 
+-- | Usage: @'glBlendEquationiEXT' buf mode@
+--
+-- This command is an alias for 'Graphics.GL.Raw.Profile.Core40.glBlendEquationi'.
+
+
 glBlendEquationiEXT :: MonadIO m => GLuint -> GLenum -> m ()
 glBlendEquationiEXT = ffiuintenumIOV glBlendEquationiEXTFunPtr
 
@@ -71,6 +84,11 @@
 
 {-# NOINLINE glBlendEquationiEXTFunPtr #-}
 
+-- | Usage: @'glBlendFuncSeparateiEXT' buf srcRGB dstRGB srcAlpha dstAlpha@
+--
+-- This command is an alias for 'Graphics.GL.Raw.Profile.Core40.glBlendFuncSeparatei'.
+
+
 glBlendFuncSeparateiEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> GLenum -> GLenum -> m ()
 glBlendFuncSeparateiEXT = ffiuintenumenumenumenumIOV glBlendFuncSeparateiEXTFunPtr
 
@@ -79,6 +97,11 @@
 
 {-# NOINLINE glBlendFuncSeparateiEXTFunPtr #-}
 
+-- | Usage: @'glBlendFunciEXT' buf src dst@
+--
+-- This command is an alias for 'Graphics.GL.Raw.Profile.Core40.glBlendFunci'.
+
+
 glBlendFunciEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> m ()
 glBlendFunciEXT = ffiuintenumenumIOV glBlendFunciEXTFunPtr
 
@@ -87,6 +110,19 @@
 
 {-# NOINLINE glBlendFunciEXTFunPtr #-}
 
+-- | Usage: @'glColorMaskiEXT' index r g b a@
+--
+-- The parameter @r@ is a @Boolean@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FALSE', 'Graphics.GL.Raw.Internal.Shared.GL_TRUE'.
+--
+-- The parameter @g@ is a @Boolean@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FALSE', 'Graphics.GL.Raw.Internal.Shared.GL_TRUE'.
+--
+-- The parameter @b@ is a @Boolean@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FALSE', 'Graphics.GL.Raw.Internal.Shared.GL_TRUE'.
+--
+-- The parameter @a@ is a @Boolean@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FALSE', 'Graphics.GL.Raw.Internal.Shared.GL_TRUE'.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glColorMaski'.
+
+
 glColorMaskiEXT :: MonadIO m => GLuint -> GLboolean -> GLboolean -> GLboolean -> GLboolean -> m ()
 glColorMaskiEXT = ffiuintbooleanbooleanbooleanbooleanIOV glColorMaskiEXTFunPtr
 
@@ -95,6 +131,11 @@
 
 {-# NOINLINE glColorMaskiEXTFunPtr #-}
 
+-- | Usage: @'glDisableiEXT' target index@
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glDisablei'.
+
+
 glDisableiEXT :: MonadIO m => GLenum -> GLuint -> m ()
 glDisableiEXT = ffienumuintIOV glDisableiEXTFunPtr
 
@@ -103,6 +144,11 @@
 
 {-# NOINLINE glDisableiEXTFunPtr #-}
 
+-- | Usage: @'glEnableiEXT' target index@
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glEnablei'.
+
+
 glEnableiEXT :: MonadIO m => GLenum -> GLuint -> m ()
 glEnableiEXT = ffienumuintIOV glEnableiEXTFunPtr
 
@@ -110,6 +156,11 @@
 glEnableiEXTFunPtr = unsafePerformIO (getProcAddress "glEnableiEXT")
 
 {-# NOINLINE glEnableiEXTFunPtr #-}
+
+-- | Usage: @'glIsEnablediEXT' target index@
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glIsEnabledi'.
+
 
 glIsEnablediEXT :: MonadIO m => GLenum -> GLuint -> m GLboolean
 glIsEnablediEXT = ffienumuintIOboolean glIsEnablediEXTFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/DrawInstanced.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/DrawInstanced.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/DrawInstanced.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/DrawInstanced.hs
@@ -13,5 +13,8 @@
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/draw_instanced.txt GL_EXT_draw_instanced> extension is available.
+
 gl_EXT_draw_instanced :: Bool
 gl_EXT_draw_instanced = member "GL_EXT_draw_instanced" extensions
+{-# NOINLINE gl_EXT_draw_instanced #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/DrawRangeElements.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/DrawRangeElements.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/DrawRangeElements.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/DrawRangeElements.hs
@@ -18,8 +18,22 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/draw_range_elements.txt GL_EXT_draw_range_elements> extension is available.
+
 gl_EXT_draw_range_elements :: Bool
 gl_EXT_draw_range_elements = member "GL_EXT_draw_range_elements" extensions
+{-# NOINLINE gl_EXT_draw_range_elements #-}
+
+-- | Usage: @'glDrawRangeElementsEXT' mode start end count type indices@
+--
+-- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_LINES', 'Graphics.GL.Raw.Profile.Core32.GL_LINES_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Raw.Profile.Core32.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PATCHES', 'Graphics.GL.Raw.Extension.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_POINTS', 'Graphics.GL.Raw.Internal.Shared.GL_POLYGON', 'Graphics.GL.Raw.Internal.Shared.GL_QUADS', 'Graphics.GL.Raw.Extension.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Raw.Profile.Core32.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Raw.Profile.Core32.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
+--
+-- The parameter @type@ is a @DrawElementsType@.
+--
+-- The length of @indices@ should be @COMPSIZE(count,type)@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glDrawRangeElements'.
+
 
 glDrawRangeElementsEXT :: MonadIO m => GLenum -> GLuint -> GLuint -> GLsizei -> GLenum -> Ptr () -> m ()
 glDrawRangeElementsEXT = ffienumuintuintsizeienumPtrVIOV glDrawRangeElementsEXTFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/FogCoord.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/FogCoord.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/FogCoord.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/FogCoord.hs
@@ -29,9 +29,21 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/fog_coord.txt GL_EXT_fog_coord> extension is available.
+
 gl_EXT_fog_coord :: Bool
 gl_EXT_fog_coord = member "GL_EXT_fog_coord" extensions
+{-# NOINLINE gl_EXT_fog_coord #-}
 
+-- | Usage: @'glFogCoordPointerEXT' type stride pointer@
+--
+-- The parameter @type@ is a @FogPointerTypeEXT@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FLOAT', 'Graphics.GL.Raw.Internal.Shared.GL_DOUBLE'.
+--
+-- The length of @pointer@ should be @COMPSIZE(type,stride)@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glFogCoordPointer'.
+
+
 glFogCoordPointerEXT :: MonadIO m => GLenum -> GLsizei -> Ptr () -> m ()
 glFogCoordPointerEXT = ffienumsizeiPtrVIOV glFogCoordPointerEXTFunPtr
 
@@ -40,6 +52,15 @@
 
 {-# NOINLINE glFogCoordPointerEXTFunPtr #-}
 
+-- | Usage: @'glFogCoorddEXT' coord@
+--
+-- The parameter @coord@ is a @CoordD@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glFogCoordd'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Extension.EXT.FogCoord.glFogCoorddvEXT'.
+
+
 glFogCoorddEXT :: MonadIO m => GLdouble -> m ()
 glFogCoorddEXT = ffidoubleIOV glFogCoorddEXTFunPtr
 
@@ -48,6 +69,15 @@
 
 {-# NOINLINE glFogCoorddEXTFunPtr #-}
 
+-- | Usage: @'glFogCoorddvEXT' coord@
+--
+-- The parameter @coord@ is a @CoordD@.
+--
+-- The length of @coord@ should be @1@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glFogCoorddv'.
+
+
 glFogCoorddvEXT :: MonadIO m => Ptr GLdouble -> m ()
 glFogCoorddvEXT = ffiPtrdoubleIOV glFogCoorddvEXTFunPtr
 
@@ -56,6 +86,15 @@
 
 {-# NOINLINE glFogCoorddvEXTFunPtr #-}
 
+-- | Usage: @'glFogCoordfEXT' coord@
+--
+-- The parameter @coord@ is a @CoordF@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glFogCoordf'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Extension.EXT.FogCoord.glFogCoordfvEXT'.
+
+
 glFogCoordfEXT :: MonadIO m => GLfloat -> m ()
 glFogCoordfEXT = ffifloatIOV glFogCoordfEXTFunPtr
 
@@ -63,6 +102,15 @@
 glFogCoordfEXTFunPtr = unsafePerformIO (getProcAddress "glFogCoordfEXT")
 
 {-# NOINLINE glFogCoordfEXTFunPtr #-}
+
+-- | Usage: @'glFogCoordfvEXT' coord@
+--
+-- The parameter @coord@ is a @CoordF@.
+--
+-- The length of @coord@ should be @1@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glFogCoordfv'.
+
 
 glFogCoordfvEXT :: MonadIO m => Ptr GLfloat -> m ()
 glFogCoordfvEXT = ffiPtrfloatIOV glFogCoordfvEXTFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/FourTwoTwoPixels.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/FourTwoTwoPixels.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/FourTwoTwoPixels.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/FourTwoTwoPixels.hs
@@ -14,8 +14,11 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/422_pixels.txt GL_EXT_422_pixels> extension is available.
+
 gl_EXT_422_pixels :: Bool
 gl_EXT_422_pixels = member "GL_EXT_422_pixels" extensions
+{-# NOINLINE gl_EXT_422_pixels #-}
 
 pattern GL_422_AVERAGE_EXT = 0x80CE
 
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/FramebufferBlit.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/FramebufferBlit.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/FramebufferBlit.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/FramebufferBlit.hs
@@ -20,8 +20,18 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/framebuffer_blit.txt GL_EXT_framebuffer_blit> extension is available.
+
 gl_EXT_framebuffer_blit :: Bool
 gl_EXT_framebuffer_blit = member "GL_EXT_framebuffer_blit" extensions
+{-# NOINLINE gl_EXT_framebuffer_blit #-}
+
+-- | Usage: @'glBlitFramebufferEXT' srcX0 srcY0 srcX1 srcY1 dstX0 dstY0 dstX1 dstY1 mask filter@
+--
+-- The parameter @mask@ is a @ClearBufferMask@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_ACCUM_BUFFER_BIT', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_BUFFER_BIT', 'Graphics.GL.Raw.Extension.NV.CoverageSample.GL_COVERAGE_BUFFER_BIT_NV', 'Graphics.GL.Raw.Internal.Shared.GL_DEPTH_BUFFER_BIT', 'Graphics.GL.Raw.Internal.Shared.GL_STENCIL_BUFFER_BIT'.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glBlitFramebuffer'.
+
 
 glBlitFramebufferEXT :: MonadIO m => GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLbitfield -> GLenum -> m ()
 glBlitFramebufferEXT = ffiintintintintintintintintbitfieldenumIOV glBlitFramebufferEXTFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/FramebufferMultisample.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/FramebufferMultisample.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/FramebufferMultisample.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/FramebufferMultisample.hs
@@ -15,5 +15,8 @@
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/framebuffer_multisample.txt GL_EXT_framebuffer_multisample> extension is available.
+
 gl_EXT_framebuffer_multisample :: Bool
 gl_EXT_framebuffer_multisample = member "GL_EXT_framebuffer_multisample" extensions
+{-# NOINLINE gl_EXT_framebuffer_multisample #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/FramebufferMultisampleBlitScaled.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/FramebufferMultisampleBlitScaled.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/FramebufferMultisampleBlitScaled.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/FramebufferMultisampleBlitScaled.hs
@@ -12,8 +12,11 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/framebuffer_multisample_blit_scaled.txt GL_EXT_framebuffer_multisample_blit_scaled> extension is available.
+
 gl_EXT_framebuffer_multisample_blit_scaled :: Bool
 gl_EXT_framebuffer_multisample_blit_scaled = member "GL_EXT_framebuffer_multisample_blit_scaled" extensions
+{-# NOINLINE gl_EXT_framebuffer_multisample_blit_scaled #-}
 
 pattern GL_SCALED_RESOLVE_FASTEST_EXT = 0x90BA
 
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/FramebufferObject.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/FramebufferObject.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/FramebufferObject.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/FramebufferObject.hs
@@ -84,9 +84,17 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/framebuffer_object.txt GL_EXT_framebuffer_object> extension is available.
+
 gl_EXT_framebuffer_object :: Bool
 gl_EXT_framebuffer_object = member "GL_EXT_framebuffer_object" extensions
+{-# NOINLINE gl_EXT_framebuffer_object #-}
 
+-- | Usage: @'glBindFramebufferEXT' target framebuffer@
+--
+-- The parameter @target@ is a @FramebufferTarget@.
+
+
 glBindFramebufferEXT :: MonadIO m => GLenum -> GLuint -> m ()
 glBindFramebufferEXT = ffienumuintIOV glBindFramebufferEXTFunPtr
 
@@ -95,6 +103,11 @@
 
 {-# NOINLINE glBindFramebufferEXTFunPtr #-}
 
+-- | Usage: @'glBindRenderbufferEXT' target renderbuffer@
+--
+-- The parameter @target@ is a @RenderbufferTarget@.
+
+
 glBindRenderbufferEXT :: MonadIO m => GLenum -> GLuint -> m ()
 glBindRenderbufferEXT = ffienumuintIOV glBindRenderbufferEXTFunPtr
 
@@ -103,6 +116,13 @@
 
 {-# NOINLINE glBindRenderbufferEXTFunPtr #-}
 
+-- | Usage: @'glCheckFramebufferStatusEXT' target@
+--
+-- The parameter @target@ is a @FramebufferTarget@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glCheckFramebufferStatus'.
+
+
 glCheckFramebufferStatusEXT :: MonadIO m => GLenum -> m GLenum
 glCheckFramebufferStatusEXT = ffienumIOenum glCheckFramebufferStatusEXTFunPtr
 
@@ -111,6 +131,13 @@
 
 {-# NOINLINE glCheckFramebufferStatusEXTFunPtr #-}
 
+-- | Usage: @'glDeleteFramebuffersEXT' n framebuffers@
+--
+-- The length of @framebuffers@ should be @n@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glDeleteFramebuffers'.
+
+
 glDeleteFramebuffersEXT :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
 glDeleteFramebuffersEXT = ffisizeiPtruintIOV glDeleteFramebuffersEXTFunPtr
 
@@ -119,6 +146,13 @@
 
 {-# NOINLINE glDeleteFramebuffersEXTFunPtr #-}
 
+-- | Usage: @'glDeleteRenderbuffersEXT' n renderbuffers@
+--
+-- The length of @renderbuffers@ should be @n@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glDeleteRenderbuffers'.
+
+
 glDeleteRenderbuffersEXT :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
 glDeleteRenderbuffersEXT = ffisizeiPtruintIOV glDeleteRenderbuffersEXTFunPtr
 
@@ -127,6 +161,17 @@
 
 {-# NOINLINE glDeleteRenderbuffersEXTFunPtr #-}
 
+-- | Usage: @'glFramebufferRenderbufferEXT' target attachment renderbuffertarget renderbuffer@
+--
+-- The parameter @target@ is a @FramebufferTarget@.
+--
+-- The parameter @attachment@ is a @FramebufferAttachment@.
+--
+-- The parameter @renderbuffertarget@ is a @RenderbufferTarget@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glFramebufferRenderbuffer'.
+
+
 glFramebufferRenderbufferEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> m ()
 glFramebufferRenderbufferEXT = ffienumenumenumuintIOV glFramebufferRenderbufferEXTFunPtr
 
@@ -135,6 +180,15 @@
 
 {-# NOINLINE glFramebufferRenderbufferEXTFunPtr #-}
 
+-- | Usage: @'glFramebufferTexture1DEXT' target attachment textarget texture level@
+--
+-- The parameter @target@ is a @FramebufferTarget@.
+--
+-- The parameter @attachment@ is a @FramebufferAttachment@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glFramebufferTexture1D'.
+
+
 glFramebufferTexture1DEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> m ()
 glFramebufferTexture1DEXT = ffienumenumenumuintintIOV glFramebufferTexture1DEXTFunPtr
 
@@ -143,6 +197,15 @@
 
 {-# NOINLINE glFramebufferTexture1DEXTFunPtr #-}
 
+-- | Usage: @'glFramebufferTexture2DEXT' target attachment textarget texture level@
+--
+-- The parameter @target@ is a @FramebufferTarget@.
+--
+-- The parameter @attachment@ is a @FramebufferAttachment@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glFramebufferTexture2D'.
+
+
 glFramebufferTexture2DEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> m ()
 glFramebufferTexture2DEXT = ffienumenumenumuintintIOV glFramebufferTexture2DEXTFunPtr
 
@@ -151,6 +214,15 @@
 
 {-# NOINLINE glFramebufferTexture2DEXTFunPtr #-}
 
+-- | Usage: @'glFramebufferTexture3DEXT' target attachment textarget texture level zoffset@
+--
+-- The parameter @target@ is a @FramebufferTarget@.
+--
+-- The parameter @attachment@ is a @FramebufferAttachment@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glFramebufferTexture3D'.
+
+
 glFramebufferTexture3DEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> GLint -> m ()
 glFramebufferTexture3DEXT = ffienumenumenumuintintintIOV glFramebufferTexture3DEXTFunPtr
 
@@ -159,6 +231,13 @@
 
 {-# NOINLINE glFramebufferTexture3DEXTFunPtr #-}
 
+-- | Usage: @'glGenFramebuffersEXT' n framebuffers@
+--
+-- The length of @framebuffers@ should be @n@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glGenFramebuffers'.
+
+
 glGenFramebuffersEXT :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
 glGenFramebuffersEXT = ffisizeiPtruintIOV glGenFramebuffersEXTFunPtr
 
@@ -167,6 +246,13 @@
 
 {-# NOINLINE glGenFramebuffersEXTFunPtr #-}
 
+-- | Usage: @'glGenRenderbuffersEXT' n renderbuffers@
+--
+-- The length of @renderbuffers@ should be @n@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glGenRenderbuffers'.
+
+
 glGenRenderbuffersEXT :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
 glGenRenderbuffersEXT = ffisizeiPtruintIOV glGenRenderbuffersEXTFunPtr
 
@@ -175,6 +261,11 @@
 
 {-# NOINLINE glGenRenderbuffersEXTFunPtr #-}
 
+-- | Usage: @'glGenerateMipmapEXT' target@
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glGenerateMipmap'.
+
+
 glGenerateMipmapEXT :: MonadIO m => GLenum -> m ()
 glGenerateMipmapEXT = ffienumIOV glGenerateMipmapEXTFunPtr
 
@@ -183,6 +274,17 @@
 
 {-# NOINLINE glGenerateMipmapEXTFunPtr #-}
 
+-- | Usage: @'glGetFramebufferAttachmentParameterivEXT' target attachment pname params@
+--
+-- The parameter @target@ is a @FramebufferTarget@.
+--
+-- The parameter @attachment@ is a @FramebufferAttachment@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glGetFramebufferAttachmentParameteriv'.
+
+
 glGetFramebufferAttachmentParameterivEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLint -> m ()
 glGetFramebufferAttachmentParameterivEXT = ffienumenumenumPtrintIOV glGetFramebufferAttachmentParameterivEXTFunPtr
 
@@ -191,6 +293,15 @@
 
 {-# NOINLINE glGetFramebufferAttachmentParameterivEXTFunPtr #-}
 
+-- | Usage: @'glGetRenderbufferParameterivEXT' target pname params@
+--
+-- The parameter @target@ is a @RenderbufferTarget@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glGetRenderbufferParameteriv'.
+
+
 glGetRenderbufferParameterivEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
 glGetRenderbufferParameterivEXT = ffienumenumPtrintIOV glGetRenderbufferParameterivEXTFunPtr
 
@@ -199,6 +310,11 @@
 
 {-# NOINLINE glGetRenderbufferParameterivEXTFunPtr #-}
 
+-- | Usage: @'glIsFramebufferEXT' framebuffer@
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glIsFramebuffer'.
+
+
 glIsFramebufferEXT :: MonadIO m => GLuint -> m GLboolean
 glIsFramebufferEXT = ffiuintIOboolean glIsFramebufferEXTFunPtr
 
@@ -207,6 +323,11 @@
 
 {-# NOINLINE glIsFramebufferEXTFunPtr #-}
 
+-- | Usage: @'glIsRenderbufferEXT' renderbuffer@
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glIsRenderbuffer'.
+
+
 glIsRenderbufferEXT :: MonadIO m => GLuint -> m GLboolean
 glIsRenderbufferEXT = ffiuintIOboolean glIsRenderbufferEXTFunPtr
 
@@ -214,6 +335,13 @@
 glIsRenderbufferEXTFunPtr = unsafePerformIO (getProcAddress "glIsRenderbufferEXT")
 
 {-# NOINLINE glIsRenderbufferEXTFunPtr #-}
+
+-- | Usage: @'glRenderbufferStorageEXT' target internalformat width height@
+--
+-- The parameter @target@ is a @RenderbufferTarget@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glRenderbufferStorage'.
+
 
 glRenderbufferStorageEXT :: MonadIO m => GLenum -> GLenum -> GLsizei -> GLsizei -> m ()
 glRenderbufferStorageEXT = ffienumenumsizeisizeiIOV glRenderbufferStorageEXTFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/FramebufferSRGB.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/FramebufferSRGB.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/FramebufferSRGB.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/FramebufferSRGB.hs
@@ -13,7 +13,10 @@
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/framebuffer_sRGB.txt GL_EXT_framebuffer_sRGB> extension is available.
+
 gl_EXT_framebuffer_sRGB :: Bool
 gl_EXT_framebuffer_sRGB = member "GL_EXT_framebuffer_sRGB" extensions
+{-# NOINLINE gl_EXT_framebuffer_sRGB #-}
 
 pattern GL_FRAMEBUFFER_SRGB_CAPABLE_EXT = 0x8DBA
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/GeometryPointSize.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/GeometryPointSize.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/GeometryPointSize.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/GeometryPointSize.hs
@@ -8,5 +8,8 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the GL_EXT_geometry_point_size extension is available.
+
 gl_EXT_geometry_point_size :: Bool
 gl_EXT_geometry_point_size = member "GL_EXT_geometry_point_size" extensions
+{-# NOINLINE gl_EXT_geometry_point_size #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/GeometryShader.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/GeometryShader.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/GeometryShader.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/GeometryShader.hs
@@ -45,8 +45,11 @@
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
 
+-- | Checks that the GL_EXT_geometry_shader extension is available.
+
 gl_EXT_geometry_shader :: Bool
 gl_EXT_geometry_shader = member "GL_EXT_geometry_shader" extensions
+{-# NOINLINE gl_EXT_geometry_shader #-}
 
 pattern GL_FRAMEBUFFER_DEFAULT_LAYERS_EXT = 0x9312
 
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/GeometryShader4.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/GeometryShader4.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/GeometryShader4.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/GeometryShader4.hs
@@ -32,8 +32,11 @@
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/geometry_shader4.txt GL_EXT_geometry_shader4> extension is available.
+
 gl_EXT_geometry_shader4 :: Bool
 gl_EXT_geometry_shader4 = member "GL_EXT_geometry_shader4" extensions
+{-# NOINLINE gl_EXT_geometry_shader4 #-}
 
 pattern GL_MAX_GEOMETRY_VARYING_COMPONENTS_EXT = 0x8DDD
 
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/GpuProgramParameters.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/GpuProgramParameters.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/GpuProgramParameters.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/GpuProgramParameters.hs
@@ -17,9 +17,19 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/gpu_program_parameters.txt GL_EXT_gpu_program_parameters> extension is available.
+
 gl_EXT_gpu_program_parameters :: Bool
 gl_EXT_gpu_program_parameters = member "GL_EXT_gpu_program_parameters" extensions
+{-# NOINLINE gl_EXT_gpu_program_parameters #-}
 
+-- | Usage: @'glProgramEnvParameters4fvEXT' target index count params@
+--
+-- The parameter @target@ is a @ProgramTargetARB@.
+--
+-- The length of @params@ should be @count*4@.
+
+
 glProgramEnvParameters4fvEXT :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLfloat -> m ()
 glProgramEnvParameters4fvEXT = ffienumuintsizeiPtrfloatIOV glProgramEnvParameters4fvEXTFunPtr
 
@@ -27,6 +37,13 @@
 glProgramEnvParameters4fvEXTFunPtr = unsafePerformIO (getProcAddress "glProgramEnvParameters4fvEXT")
 
 {-# NOINLINE glProgramEnvParameters4fvEXTFunPtr #-}
+
+-- | Usage: @'glProgramLocalParameters4fvEXT' target index count params@
+--
+-- The parameter @target@ is a @ProgramTargetARB@.
+--
+-- The length of @params@ should be @count*4@.
+
 
 glProgramLocalParameters4fvEXT :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLfloat -> m ()
 glProgramLocalParameters4fvEXT = ffienumuintsizeiPtrfloatIOV glProgramLocalParameters4fvEXTFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/GpuShader4.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/GpuShader4.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/GpuShader4.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/GpuShader4.hs
@@ -55,9 +55,19 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/gpu_shader4.txt GL_EXT_gpu_shader4> extension is available.
+
 gl_EXT_gpu_shader4 :: Bool
 gl_EXT_gpu_shader4 = member "GL_EXT_gpu_shader4" extensions
+{-# NOINLINE gl_EXT_gpu_shader4 #-}
 
+-- | Usage: @'glBindFragDataLocationEXT' program color name@
+--
+-- The length of @name@ should be @COMPSIZE(name)@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glBindFragDataLocation'.
+
+
 glBindFragDataLocationEXT :: MonadIO m => GLuint -> GLuint -> Ptr GLchar -> m ()
 glBindFragDataLocationEXT = ffiuintuintPtrcharIOV glBindFragDataLocationEXTFunPtr
 
@@ -66,6 +76,13 @@
 
 {-# NOINLINE glBindFragDataLocationEXTFunPtr #-}
 
+-- | Usage: @'glGetFragDataLocationEXT' program name@
+--
+-- The length of @name@ should be @COMPSIZE(name)@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glGetFragDataLocation'.
+
+
 glGetFragDataLocationEXT :: MonadIO m => GLuint -> Ptr GLchar -> m GLint
 glGetFragDataLocationEXT = ffiuintPtrcharIOint glGetFragDataLocationEXTFunPtr
 
@@ -74,6 +91,13 @@
 
 {-# NOINLINE glGetFragDataLocationEXTFunPtr #-}
 
+-- | Usage: @'glGetUniformuivEXT' program location params@
+--
+-- The length of @params@ should be @COMPSIZE(program,location)@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glGetUniformuiv'.
+
+
 glGetUniformuivEXT :: MonadIO m => GLuint -> GLint -> Ptr GLuint -> m ()
 glGetUniformuivEXT = ffiuintintPtruintIOV glGetUniformuivEXTFunPtr
 
@@ -82,6 +106,11 @@
 
 {-# NOINLINE glGetUniformuivEXTFunPtr #-}
 
+-- | Usage: @'glUniform1uiEXT' location v0@
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glUniform1ui'.
+
+
 glUniform1uiEXT :: MonadIO m => GLint -> GLuint -> m ()
 glUniform1uiEXT = ffiintuintIOV glUniform1uiEXTFunPtr
 
@@ -90,6 +119,13 @@
 
 {-# NOINLINE glUniform1uiEXTFunPtr #-}
 
+-- | Usage: @'glUniform1uivEXT' location count value@
+--
+-- The length of @value@ should be @count*1@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glUniform1uiv'.
+
+
 glUniform1uivEXT :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()
 glUniform1uivEXT = ffiintsizeiPtruintIOV glUniform1uivEXTFunPtr
 
@@ -98,6 +134,11 @@
 
 {-# NOINLINE glUniform1uivEXTFunPtr #-}
 
+-- | Usage: @'glUniform2uiEXT' location v0 v1@
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glUniform2ui'.
+
+
 glUniform2uiEXT :: MonadIO m => GLint -> GLuint -> GLuint -> m ()
 glUniform2uiEXT = ffiintuintuintIOV glUniform2uiEXTFunPtr
 
@@ -106,6 +147,13 @@
 
 {-# NOINLINE glUniform2uiEXTFunPtr #-}
 
+-- | Usage: @'glUniform2uivEXT' location count value@
+--
+-- The length of @value@ should be @count*2@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glUniform2uiv'.
+
+
 glUniform2uivEXT :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()
 glUniform2uivEXT = ffiintsizeiPtruintIOV glUniform2uivEXTFunPtr
 
@@ -114,6 +162,11 @@
 
 {-# NOINLINE glUniform2uivEXTFunPtr #-}
 
+-- | Usage: @'glUniform3uiEXT' location v0 v1 v2@
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glUniform3ui'.
+
+
 glUniform3uiEXT :: MonadIO m => GLint -> GLuint -> GLuint -> GLuint -> m ()
 glUniform3uiEXT = ffiintuintuintuintIOV glUniform3uiEXTFunPtr
 
@@ -122,6 +175,13 @@
 
 {-# NOINLINE glUniform3uiEXTFunPtr #-}
 
+-- | Usage: @'glUniform3uivEXT' location count value@
+--
+-- The length of @value@ should be @count*3@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glUniform3uiv'.
+
+
 glUniform3uivEXT :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()
 glUniform3uivEXT = ffiintsizeiPtruintIOV glUniform3uivEXTFunPtr
 
@@ -130,6 +190,11 @@
 
 {-# NOINLINE glUniform3uivEXTFunPtr #-}
 
+-- | Usage: @'glUniform4uiEXT' location v0 v1 v2 v3@
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glUniform4ui'.
+
+
 glUniform4uiEXT :: MonadIO m => GLint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
 glUniform4uiEXT = ffiintuintuintuintuintIOV glUniform4uiEXTFunPtr
 
@@ -137,6 +202,13 @@
 glUniform4uiEXTFunPtr = unsafePerformIO (getProcAddress "glUniform4uiEXT")
 
 {-# NOINLINE glUniform4uiEXTFunPtr #-}
+
+-- | Usage: @'glUniform4uivEXT' location count value@
+--
+-- The length of @value@ should be @count*4@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glUniform4uiv'.
+
 
 glUniform4uivEXT :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()
 glUniform4uivEXT = ffiintsizeiPtruintIOV glUniform4uivEXTFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/GpuShader5.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/GpuShader5.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/GpuShader5.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/GpuShader5.hs
@@ -8,5 +8,8 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the GL_EXT_gpu_shader5 extension is available.
+
 gl_EXT_gpu_shader5 :: Bool
 gl_EXT_gpu_shader5 = member "GL_EXT_gpu_shader5" extensions
+{-# NOINLINE gl_EXT_gpu_shader5 #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/Histogram.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/Histogram.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/Histogram.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/Histogram.hs
@@ -39,9 +39,25 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/histogram.txt GL_EXT_histogram> extension is available.
+
 gl_EXT_histogram :: Bool
 gl_EXT_histogram = member "GL_EXT_histogram" extensions
+{-# NOINLINE gl_EXT_histogram #-}
 
+-- | Usage: @'glGetHistogramEXT' target reset format type values@
+--
+-- The parameter @target@ is a @HistogramTargetEXT@, one of: 'Graphics.GL.Raw.Extension.ARB.Imaging.GL_HISTOGRAM', 'Graphics.GL.Raw.Extension.EXT.Histogram.GL_HISTOGRAM_EXT', 'Graphics.GL.Raw.Extension.ARB.Imaging.GL_PROXY_HISTOGRAM', 'Graphics.GL.Raw.Extension.EXT.Histogram.GL_PROXY_HISTOGRAM_EXT'.
+--
+-- The parameter @reset@ is a @Boolean@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FALSE', 'Graphics.GL.Raw.Internal.Shared.GL_TRUE'.
+--
+-- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Raw.Extension.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_ALPHA', 'Graphics.GL.Raw.Internal.Shared.GL_BLUE', 'Graphics.GL.Raw.Extension.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Raw.Extension.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Raw.Internal.Shared.GL_GREEN', 'Graphics.GL.Raw.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Raw.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Raw.Internal.Shared.GL_RED', 'Graphics.GL.Raw.Extension.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_RGB', 'Graphics.GL.Raw.Internal.Shared.GL_RGBA', 'Graphics.GL.Raw.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Raw.Extension.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
+--
+-- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_BITMAP', 'Graphics.GL.Raw.Internal.Shared.GL_BYTE', 'Graphics.GL.Raw.Internal.Shared.GL_FLOAT', 'Graphics.GL.Raw.Internal.Shared.GL_INT', 'Graphics.GL.Raw.Internal.Shared.GL_SHORT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
+--
+-- The length of @values@ should be @COMPSIZE(target,format,type)@.
+
+
 glGetHistogramEXT :: MonadIO m => GLenum -> GLboolean -> GLenum -> GLenum -> Ptr () -> m ()
 glGetHistogramEXT = ffienumbooleanenumenumPtrVIOV glGetHistogramEXTFunPtr
 
@@ -50,6 +66,15 @@
 
 {-# NOINLINE glGetHistogramEXTFunPtr #-}
 
+-- | Usage: @'glGetHistogramParameterfvEXT' target pname params@
+--
+-- The parameter @target@ is a @HistogramTargetEXT@, one of: 'Graphics.GL.Raw.Extension.ARB.Imaging.GL_HISTOGRAM', 'Graphics.GL.Raw.Extension.EXT.Histogram.GL_HISTOGRAM_EXT', 'Graphics.GL.Raw.Extension.ARB.Imaging.GL_PROXY_HISTOGRAM', 'Graphics.GL.Raw.Extension.EXT.Histogram.GL_PROXY_HISTOGRAM_EXT'.
+--
+-- The parameter @pname@ is a @GetHistogramParameterPNameEXT@, one of: 'Graphics.GL.Raw.Extension.EXT.Histogram.GL_HISTOGRAM_ALPHA_SIZE_EXT', 'Graphics.GL.Raw.Extension.EXT.Histogram.GL_HISTOGRAM_BLUE_SIZE_EXT', 'Graphics.GL.Raw.Extension.EXT.Histogram.GL_HISTOGRAM_FORMAT_EXT', 'Graphics.GL.Raw.Extension.EXT.Histogram.GL_HISTOGRAM_GREEN_SIZE_EXT', 'Graphics.GL.Raw.Extension.EXT.Histogram.GL_HISTOGRAM_LUMINANCE_SIZE_EXT', 'Graphics.GL.Raw.Extension.EXT.Histogram.GL_HISTOGRAM_RED_SIZE_EXT', 'Graphics.GL.Raw.Extension.EXT.Histogram.GL_HISTOGRAM_SINK_EXT', 'Graphics.GL.Raw.Extension.EXT.Histogram.GL_HISTOGRAM_WIDTH_EXT'.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
 glGetHistogramParameterfvEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
 glGetHistogramParameterfvEXT = ffienumenumPtrfloatIOV glGetHistogramParameterfvEXTFunPtr
 
@@ -58,6 +83,15 @@
 
 {-# NOINLINE glGetHistogramParameterfvEXTFunPtr #-}
 
+-- | Usage: @'glGetHistogramParameterivEXT' target pname params@
+--
+-- The parameter @target@ is a @HistogramTargetEXT@, one of: 'Graphics.GL.Raw.Extension.ARB.Imaging.GL_HISTOGRAM', 'Graphics.GL.Raw.Extension.EXT.Histogram.GL_HISTOGRAM_EXT', 'Graphics.GL.Raw.Extension.ARB.Imaging.GL_PROXY_HISTOGRAM', 'Graphics.GL.Raw.Extension.EXT.Histogram.GL_PROXY_HISTOGRAM_EXT'.
+--
+-- The parameter @pname@ is a @GetHistogramParameterPNameEXT@, one of: 'Graphics.GL.Raw.Extension.EXT.Histogram.GL_HISTOGRAM_ALPHA_SIZE_EXT', 'Graphics.GL.Raw.Extension.EXT.Histogram.GL_HISTOGRAM_BLUE_SIZE_EXT', 'Graphics.GL.Raw.Extension.EXT.Histogram.GL_HISTOGRAM_FORMAT_EXT', 'Graphics.GL.Raw.Extension.EXT.Histogram.GL_HISTOGRAM_GREEN_SIZE_EXT', 'Graphics.GL.Raw.Extension.EXT.Histogram.GL_HISTOGRAM_LUMINANCE_SIZE_EXT', 'Graphics.GL.Raw.Extension.EXT.Histogram.GL_HISTOGRAM_RED_SIZE_EXT', 'Graphics.GL.Raw.Extension.EXT.Histogram.GL_HISTOGRAM_SINK_EXT', 'Graphics.GL.Raw.Extension.EXT.Histogram.GL_HISTOGRAM_WIDTH_EXT'.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
 glGetHistogramParameterivEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
 glGetHistogramParameterivEXT = ffienumenumPtrintIOV glGetHistogramParameterivEXTFunPtr
 
@@ -66,6 +100,19 @@
 
 {-# NOINLINE glGetHistogramParameterivEXTFunPtr #-}
 
+-- | Usage: @'glGetMinmaxEXT' target reset format type values@
+--
+-- The parameter @target@ is a @MinmaxTargetEXT@, one of: 'Graphics.GL.Raw.Extension.ARB.Imaging.GL_MINMAX', 'Graphics.GL.Raw.Extension.EXT.Histogram.GL_MINMAX_EXT'.
+--
+-- The parameter @reset@ is a @Boolean@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FALSE', 'Graphics.GL.Raw.Internal.Shared.GL_TRUE'.
+--
+-- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Raw.Extension.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_ALPHA', 'Graphics.GL.Raw.Internal.Shared.GL_BLUE', 'Graphics.GL.Raw.Extension.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Raw.Extension.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Raw.Internal.Shared.GL_GREEN', 'Graphics.GL.Raw.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Raw.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Raw.Internal.Shared.GL_RED', 'Graphics.GL.Raw.Extension.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_RGB', 'Graphics.GL.Raw.Internal.Shared.GL_RGBA', 'Graphics.GL.Raw.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Raw.Extension.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
+--
+-- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_BITMAP', 'Graphics.GL.Raw.Internal.Shared.GL_BYTE', 'Graphics.GL.Raw.Internal.Shared.GL_FLOAT', 'Graphics.GL.Raw.Internal.Shared.GL_INT', 'Graphics.GL.Raw.Internal.Shared.GL_SHORT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
+--
+-- The length of @values@ should be @COMPSIZE(target,format,type)@.
+
+
 glGetMinmaxEXT :: MonadIO m => GLenum -> GLboolean -> GLenum -> GLenum -> Ptr () -> m ()
 glGetMinmaxEXT = ffienumbooleanenumenumPtrVIOV glGetMinmaxEXTFunPtr
 
@@ -74,6 +121,15 @@
 
 {-# NOINLINE glGetMinmaxEXTFunPtr #-}
 
+-- | Usage: @'glGetMinmaxParameterfvEXT' target pname params@
+--
+-- The parameter @target@ is a @MinmaxTargetEXT@, one of: 'Graphics.GL.Raw.Extension.ARB.Imaging.GL_MINMAX', 'Graphics.GL.Raw.Extension.EXT.Histogram.GL_MINMAX_EXT'.
+--
+-- The parameter @pname@ is a @GetMinmaxParameterPNameEXT@, one of: 'Graphics.GL.Raw.Extension.ARB.Imaging.GL_MINMAX_FORMAT', 'Graphics.GL.Raw.Extension.EXT.Histogram.GL_MINMAX_FORMAT_EXT', 'Graphics.GL.Raw.Extension.ARB.Imaging.GL_MINMAX_SINK', 'Graphics.GL.Raw.Extension.EXT.Histogram.GL_MINMAX_SINK_EXT'.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
 glGetMinmaxParameterfvEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
 glGetMinmaxParameterfvEXT = ffienumenumPtrfloatIOV glGetMinmaxParameterfvEXTFunPtr
 
@@ -82,6 +138,15 @@
 
 {-# NOINLINE glGetMinmaxParameterfvEXTFunPtr #-}
 
+-- | Usage: @'glGetMinmaxParameterivEXT' target pname params@
+--
+-- The parameter @target@ is a @MinmaxTargetEXT@, one of: 'Graphics.GL.Raw.Extension.ARB.Imaging.GL_MINMAX', 'Graphics.GL.Raw.Extension.EXT.Histogram.GL_MINMAX_EXT'.
+--
+-- The parameter @pname@ is a @GetMinmaxParameterPNameEXT@, one of: 'Graphics.GL.Raw.Extension.ARB.Imaging.GL_MINMAX_FORMAT', 'Graphics.GL.Raw.Extension.EXT.Histogram.GL_MINMAX_FORMAT_EXT', 'Graphics.GL.Raw.Extension.ARB.Imaging.GL_MINMAX_SINK', 'Graphics.GL.Raw.Extension.EXT.Histogram.GL_MINMAX_SINK_EXT'.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
 glGetMinmaxParameterivEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
 glGetMinmaxParameterivEXT = ffienumenumPtrintIOV glGetMinmaxParameterivEXTFunPtr
 
@@ -90,6 +155,17 @@
 
 {-# NOINLINE glGetMinmaxParameterivEXTFunPtr #-}
 
+-- | Usage: @'glHistogramEXT' target width internalformat sink@
+--
+-- The parameter @target@ is a @HistogramTargetEXT@, one of: 'Graphics.GL.Raw.Extension.ARB.Imaging.GL_HISTOGRAM', 'Graphics.GL.Raw.Extension.EXT.Histogram.GL_HISTOGRAM_EXT', 'Graphics.GL.Raw.Extension.ARB.Imaging.GL_PROXY_HISTOGRAM', 'Graphics.GL.Raw.Extension.EXT.Histogram.GL_PROXY_HISTOGRAM_EXT'.
+--
+-- The parameter @internalformat@ is a @PixelInternalFormat@.
+--
+-- The parameter @sink@ is a @Boolean@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FALSE', 'Graphics.GL.Raw.Internal.Shared.GL_TRUE'.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Extension.ARB.Imaging.glHistogram'.
+
+
 glHistogramEXT :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLboolean -> m ()
 glHistogramEXT = ffienumsizeienumbooleanIOV glHistogramEXTFunPtr
 
@@ -98,6 +174,17 @@
 
 {-# NOINLINE glHistogramEXTFunPtr #-}
 
+-- | Usage: @'glMinmaxEXT' target internalformat sink@
+--
+-- The parameter @target@ is a @MinmaxTargetEXT@, one of: 'Graphics.GL.Raw.Extension.ARB.Imaging.GL_MINMAX', 'Graphics.GL.Raw.Extension.EXT.Histogram.GL_MINMAX_EXT'.
+--
+-- The parameter @internalformat@ is a @PixelInternalFormat@.
+--
+-- The parameter @sink@ is a @Boolean@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FALSE', 'Graphics.GL.Raw.Internal.Shared.GL_TRUE'.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Extension.ARB.Imaging.glMinmax'.
+
+
 glMinmaxEXT :: MonadIO m => GLenum -> GLenum -> GLboolean -> m ()
 glMinmaxEXT = ffienumenumbooleanIOV glMinmaxEXTFunPtr
 
@@ -106,6 +193,13 @@
 
 {-# NOINLINE glMinmaxEXTFunPtr #-}
 
+-- | Usage: @'glResetHistogramEXT' target@
+--
+-- The parameter @target@ is a @HistogramTargetEXT@, one of: 'Graphics.GL.Raw.Extension.ARB.Imaging.GL_HISTOGRAM', 'Graphics.GL.Raw.Extension.EXT.Histogram.GL_HISTOGRAM_EXT', 'Graphics.GL.Raw.Extension.ARB.Imaging.GL_PROXY_HISTOGRAM', 'Graphics.GL.Raw.Extension.EXT.Histogram.GL_PROXY_HISTOGRAM_EXT'.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Extension.ARB.Imaging.glResetHistogram'.
+
+
 glResetHistogramEXT :: MonadIO m => GLenum -> m ()
 glResetHistogramEXT = ffienumIOV glResetHistogramEXTFunPtr
 
@@ -113,6 +207,13 @@
 glResetHistogramEXTFunPtr = unsafePerformIO (getProcAddress "glResetHistogramEXT")
 
 {-# NOINLINE glResetHistogramEXTFunPtr #-}
+
+-- | Usage: @'glResetMinmaxEXT' target@
+--
+-- The parameter @target@ is a @MinmaxTargetEXT@, one of: 'Graphics.GL.Raw.Extension.ARB.Imaging.GL_MINMAX', 'Graphics.GL.Raw.Extension.EXT.Histogram.GL_MINMAX_EXT'.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Extension.ARB.Imaging.glResetMinmax'.
+
 
 glResetMinmaxEXT :: MonadIO m => GLenum -> m ()
 glResetMinmaxEXT = ffienumIOV glResetMinmaxEXTFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/IndexArrayFormats.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/IndexArrayFormats.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/IndexArrayFormats.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/IndexArrayFormats.hs
@@ -18,8 +18,11 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/index_array_formats.txt GL_EXT_index_array_formats> extension is available.
+
 gl_EXT_index_array_formats :: Bool
 gl_EXT_index_array_formats = member "GL_EXT_index_array_formats" extensions
+{-# NOINLINE gl_EXT_index_array_formats #-}
 
 pattern GL_IUI_N3F_V2F_EXT = 0x81AF
 
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/IndexFunc.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/IndexFunc.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/IndexFunc.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/IndexFunc.hs
@@ -19,8 +19,18 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/index_func.txt GL_EXT_index_func> extension is available.
+
 gl_EXT_index_func :: Bool
 gl_EXT_index_func = member "GL_EXT_index_func" extensions
+{-# NOINLINE gl_EXT_index_func #-}
+
+-- | Usage: @'glIndexFuncEXT' func ref@
+--
+-- The parameter @func@ is a @IndexFunctionEXT@.
+--
+-- The parameter @ref@ is a @ClampedFloat32@.
+
 
 glIndexFuncEXT :: MonadIO m => GLenum -> GLclampf -> m ()
 glIndexFuncEXT = ffienumclampfIOV glIndexFuncEXTFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/IndexMaterial.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/IndexMaterial.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/IndexMaterial.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/IndexMaterial.hs
@@ -19,8 +19,18 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/index_material.txt GL_EXT_index_material> extension is available.
+
 gl_EXT_index_material :: Bool
 gl_EXT_index_material = member "GL_EXT_index_material" extensions
+{-# NOINLINE gl_EXT_index_material #-}
+
+-- | Usage: @'glIndexMaterialEXT' face mode@
+--
+-- The parameter @face@ is a @MaterialFace@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_BACK', 'Graphics.GL.Raw.Internal.Shared.GL_FRONT', 'Graphics.GL.Raw.Internal.Shared.GL_FRONT_AND_BACK'.
+--
+-- The parameter @mode@ is a @IndexMaterialParameterEXT@.
+
 
 glIndexMaterialEXT :: MonadIO m => GLenum -> GLenum -> m ()
 glIndexMaterialEXT = ffienumenumIOV glIndexMaterialEXTFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/IndexTexture.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/IndexTexture.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/IndexTexture.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/IndexTexture.hs
@@ -8,5 +8,8 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/index_texture.txt GL_EXT_index_texture> extension is available.
+
 gl_EXT_index_texture :: Bool
 gl_EXT_index_texture = member "GL_EXT_index_texture" extensions
+{-# NOINLINE gl_EXT_index_texture #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/InstancedArrays.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/InstancedArrays.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/InstancedArrays.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/InstancedArrays.hs
@@ -20,8 +20,16 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the GL_EXT_instanced_arrays extension is available.
+
 gl_EXT_instanced_arrays :: Bool
 gl_EXT_instanced_arrays = member "GL_EXT_instanced_arrays" extensions
+{-# NOINLINE gl_EXT_instanced_arrays #-}
+
+-- | Usage: @'glVertexAttribDivisorEXT' index divisor@
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glVertexAttribDivisor'.
+
 
 glVertexAttribDivisorEXT :: MonadIO m => GLuint -> GLuint -> m ()
 glVertexAttribDivisorEXT = ffiuintuintIOV glVertexAttribDivisorEXTFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/LightTexture.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/LightTexture.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/LightTexture.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/LightTexture.hs
@@ -29,9 +29,17 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/light_texture.txt GL_EXT_light_texture> extension is available.
+
 gl_EXT_light_texture :: Bool
 gl_EXT_light_texture = member "GL_EXT_light_texture" extensions
+{-# NOINLINE gl_EXT_light_texture #-}
 
+-- | Usage: @'glApplyTextureEXT' mode@
+--
+-- The parameter @mode@ is a @LightTextureModeEXT@.
+
+
 glApplyTextureEXT :: MonadIO m => GLenum -> m ()
 glApplyTextureEXT = ffienumIOV glApplyTextureEXTFunPtr
 
@@ -40,6 +48,11 @@
 
 {-# NOINLINE glApplyTextureEXTFunPtr #-}
 
+-- | Usage: @'glTextureLightEXT' pname@
+--
+-- The parameter @pname@ is a @LightTexturePNameEXT@.
+
+
 glTextureLightEXT :: MonadIO m => GLenum -> m ()
 glTextureLightEXT = ffienumIOV glTextureLightEXTFunPtr
 
@@ -47,6 +60,13 @@
 glTextureLightEXTFunPtr = unsafePerformIO (getProcAddress "glTextureLightEXT")
 
 {-# NOINLINE glTextureLightEXTFunPtr #-}
+
+-- | Usage: @'glTextureMaterialEXT' face mode@
+--
+-- The parameter @face@ is a @MaterialFace@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_BACK', 'Graphics.GL.Raw.Internal.Shared.GL_FRONT', 'Graphics.GL.Raw.Internal.Shared.GL_FRONT_AND_BACK'.
+--
+-- The parameter @mode@ is a @MaterialParameter@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_AMBIENT', 'Graphics.GL.Raw.Internal.Shared.GL_AMBIENT_AND_DIFFUSE', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_INDEXES', 'Graphics.GL.Raw.Internal.Shared.GL_DIFFUSE', 'Graphics.GL.Raw.Internal.Shared.GL_EMISSION', 'Graphics.GL.Raw.Internal.Shared.GL_SHININESS', 'Graphics.GL.Raw.Internal.Shared.GL_SPECULAR'.
+
 
 glTextureMaterialEXT :: MonadIO m => GLenum -> GLenum -> m ()
 glTextureMaterialEXT = ffienumenumIOV glTextureMaterialEXTFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/MapBufferRange.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/MapBufferRange.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/MapBufferRange.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/MapBufferRange.hs
@@ -23,9 +23,17 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the GL_EXT_map_buffer_range extension is available.
+
 gl_EXT_map_buffer_range :: Bool
 gl_EXT_map_buffer_range = member "GL_EXT_map_buffer_range" extensions
+{-# NOINLINE gl_EXT_map_buffer_range #-}
 
+-- | Usage: @'glFlushMappedBufferRangeEXT' target offset length@
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glFlushMappedBufferRange'.
+
+
 glFlushMappedBufferRangeEXT :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> m ()
 glFlushMappedBufferRangeEXT = ffienumintptrsizeiptrIOV glFlushMappedBufferRangeEXTFunPtr
 
@@ -33,6 +41,11 @@
 glFlushMappedBufferRangeEXTFunPtr = unsafePerformIO (getProcAddress "glFlushMappedBufferRangeEXT")
 
 {-# NOINLINE glFlushMappedBufferRangeEXTFunPtr #-}
+
+-- | Usage: @'glMapBufferRangeEXT' target offset length access@
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glMapBufferRange'.
+
 
 glMapBufferRangeEXT :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> GLbitfield -> m (Ptr ())
 glMapBufferRangeEXT = ffienumintptrsizeiptrbitfieldIOPtrV glMapBufferRangeEXTFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/MiscAttribute.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/MiscAttribute.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/MiscAttribute.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/MiscAttribute.hs
@@ -8,5 +8,8 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/misc_attribute.txt GL_EXT_misc_attribute> extension is available.
+
 gl_EXT_misc_attribute :: Bool
 gl_EXT_misc_attribute = member "GL_EXT_misc_attribute" extensions
+{-# NOINLINE gl_EXT_misc_attribute #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/MultiDrawArrays.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/MultiDrawArrays.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/MultiDrawArrays.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/MultiDrawArrays.hs
@@ -17,9 +17,23 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/multi_draw_arrays.txt GL_EXT_multi_draw_arrays> extension is available.
+
 gl_EXT_multi_draw_arrays :: Bool
 gl_EXT_multi_draw_arrays = member "GL_EXT_multi_draw_arrays" extensions
+{-# NOINLINE gl_EXT_multi_draw_arrays #-}
 
+-- | Usage: @'glMultiDrawArraysEXT' mode first count primcount@
+--
+-- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_LINES', 'Graphics.GL.Raw.Profile.Core32.GL_LINES_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Raw.Profile.Core32.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PATCHES', 'Graphics.GL.Raw.Extension.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_POINTS', 'Graphics.GL.Raw.Internal.Shared.GL_POLYGON', 'Graphics.GL.Raw.Internal.Shared.GL_QUADS', 'Graphics.GL.Raw.Extension.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Raw.Profile.Core32.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Raw.Profile.Core32.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
+--
+-- The length of @first@ should be @COMPSIZE(primcount)@.
+--
+-- The length of @count@ should be @COMPSIZE(primcount)@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glMultiDrawArrays'.
+
+
 glMultiDrawArraysEXT :: MonadIO m => GLenum -> Ptr GLint -> Ptr GLsizei -> GLsizei -> m ()
 glMultiDrawArraysEXT = ffienumPtrintPtrsizeisizeiIOV glMultiDrawArraysEXTFunPtr
 
@@ -28,10 +42,23 @@
 
 {-# NOINLINE glMultiDrawArraysEXTFunPtr #-}
 
-glMultiDrawElementsEXT :: MonadIO m => GLenum -> Ptr GLsizei -> GLenum -> Ptr () -> GLsizei -> m ()
-glMultiDrawElementsEXT = ffienumPtrsizeienumPtrVsizeiIOV glMultiDrawElementsEXTFunPtr
+-- | Usage: @'glMultiDrawElementsEXT' mode count type indices primcount@
+--
+-- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_LINES', 'Graphics.GL.Raw.Profile.Core32.GL_LINES_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Raw.Profile.Core32.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PATCHES', 'Graphics.GL.Raw.Extension.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_POINTS', 'Graphics.GL.Raw.Internal.Shared.GL_POLYGON', 'Graphics.GL.Raw.Internal.Shared.GL_QUADS', 'Graphics.GL.Raw.Extension.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Raw.Profile.Core32.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Raw.Profile.Core32.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
+--
+-- The parameter @type@ is a @DrawElementsType@.
+--
+-- The length of @count@ should be @COMPSIZE(primcount)@.
+--
+-- The length of @indices@ should be @COMPSIZE(primcount)@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glMultiDrawElements'.
 
-glMultiDrawElementsEXTFunPtr :: FunPtr (GLenum -> Ptr GLsizei -> GLenum -> Ptr () -> GLsizei -> IO ())
+
+glMultiDrawElementsEXT :: MonadIO m => GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr ()) -> GLsizei -> m ()
+glMultiDrawElementsEXT = ffienumPtrsizeienumPtrPtrVsizeiIOV glMultiDrawElementsEXTFunPtr
+
+glMultiDrawElementsEXTFunPtr :: FunPtr (GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr ()) -> GLsizei -> IO ())
 glMultiDrawElementsEXTFunPtr = unsafePerformIO (getProcAddress "glMultiDrawElementsEXT")
 
 {-# NOINLINE glMultiDrawElementsEXTFunPtr #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/Multisample.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/Multisample.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/Multisample.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/Multisample.hs
@@ -34,9 +34,19 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the GL_EXT_multisample extension is available.
+
 gl_EXT_multisample :: Bool
 gl_EXT_multisample = member "GL_EXT_multisample" extensions
+{-# NOINLINE gl_EXT_multisample #-}
 
+-- | Usage: @'glSampleMaskEXT' value invert@
+--
+-- The parameter @value@ is a @ClampedFloat32@.
+--
+-- The parameter @invert@ is a @Boolean@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FALSE', 'Graphics.GL.Raw.Internal.Shared.GL_TRUE'.
+
+
 glSampleMaskEXT :: MonadIO m => GLclampf -> GLboolean -> m ()
 glSampleMaskEXT = fficlampfbooleanIOV glSampleMaskEXTFunPtr
 
@@ -44,6 +54,11 @@
 glSampleMaskEXTFunPtr = unsafePerformIO (getProcAddress "glSampleMaskEXT")
 
 {-# NOINLINE glSampleMaskEXTFunPtr #-}
+
+-- | Usage: @'glSamplePatternEXT' pattern@
+--
+-- The parameter @pattern@ is a @SamplePatternEXT@.
+
 
 glSamplePatternEXT :: MonadIO m => GLenum -> m ()
 glSamplePatternEXT = ffienumIOV glSamplePatternEXTFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/MultisampledRenderToTexture.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/MultisampledRenderToTexture.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/MultisampledRenderToTexture.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/MultisampledRenderToTexture.hs
@@ -22,8 +22,14 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the GL_EXT_multisampled_render_to_texture extension is available.
+
 gl_EXT_multisampled_render_to_texture :: Bool
 gl_EXT_multisampled_render_to_texture = member "GL_EXT_multisampled_render_to_texture" extensions
+{-# NOINLINE gl_EXT_multisampled_render_to_texture #-}
+
+-- | Usage: @'glFramebufferTexture2DMultisampleEXT' target attachment textarget texture level samples@
+
 
 glFramebufferTexture2DMultisampleEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> GLsizei -> m ()
 glFramebufferTexture2DMultisampleEXT = ffienumenumenumuintintsizeiIOV glFramebufferTexture2DMultisampleEXTFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/MultiviewDrawBuffers.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/MultiviewDrawBuffers.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/MultiviewDrawBuffers.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/MultiviewDrawBuffers.hs
@@ -23,9 +23,19 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the GL_EXT_multiview_draw_buffers extension is available.
+
 gl_EXT_multiview_draw_buffers :: Bool
 gl_EXT_multiview_draw_buffers = member "GL_EXT_multiview_draw_buffers" extensions
+{-# NOINLINE gl_EXT_multiview_draw_buffers #-}
 
+-- | Usage: @'glDrawBuffersIndexedEXT' n location indices@
+--
+-- The length of @location@ should be @n@.
+--
+-- The length of @indices@ should be @n@.
+
+
 glDrawBuffersIndexedEXT :: MonadIO m => GLint -> Ptr GLenum -> Ptr GLint -> m ()
 glDrawBuffersIndexedEXT = ffiintPtrenumPtrintIOV glDrawBuffersIndexedEXTFunPtr
 
@@ -34,6 +44,9 @@
 
 {-# NOINLINE glDrawBuffersIndexedEXTFunPtr #-}
 
+-- | Usage: @'glGetIntegeri_vEXT' target index data@
+
+
 glGetIntegeri_vEXT :: MonadIO m => GLenum -> GLuint -> Ptr GLint -> m ()
 glGetIntegeri_vEXT = ffienumuintPtrintIOV glGetIntegeri_vEXTFunPtr
 
@@ -41,6 +54,9 @@
 glGetIntegeri_vEXTFunPtr = unsafePerformIO (getProcAddress "glGetIntegeri_vEXT")
 
 {-# NOINLINE glGetIntegeri_vEXTFunPtr #-}
+
+-- | Usage: @'glReadBufferIndexedEXT' src index@
+
 
 glReadBufferIndexedEXT :: MonadIO m => GLenum -> GLint -> m ()
 glReadBufferIndexedEXT = ffienumintIOV glReadBufferIndexedEXTFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/OcclusionQueryBoolean.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/OcclusionQueryBoolean.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/OcclusionQueryBoolean.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/OcclusionQueryBoolean.hs
@@ -23,8 +23,11 @@
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
 
+-- | Checks that the GL_EXT_occlusion_query_boolean extension is available.
+
 gl_EXT_occlusion_query_boolean :: Bool
 gl_EXT_occlusion_query_boolean = member "GL_EXT_occlusion_query_boolean" extensions
+{-# NOINLINE gl_EXT_occlusion_query_boolean #-}
 
 pattern GL_ANY_SAMPLES_PASSED_CONSERVATIVE_EXT = 0x8D6A
 
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/PackedDepthStencil.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/PackedDepthStencil.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/PackedDepthStencil.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/PackedDepthStencil.hs
@@ -14,8 +14,11 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/packed_depth_stencil.txt GL_EXT_packed_depth_stencil> extension is available.
+
 gl_EXT_packed_depth_stencil :: Bool
 gl_EXT_packed_depth_stencil = member "GL_EXT_packed_depth_stencil" extensions
+{-# NOINLINE gl_EXT_packed_depth_stencil #-}
 
 pattern GL_DEPTH24_STENCIL8_EXT = 0x88F0
 
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/PackedFloat.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/PackedFloat.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/PackedFloat.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/PackedFloat.hs
@@ -13,8 +13,11 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/packed_float.txt GL_EXT_packed_float> extension is available.
+
 gl_EXT_packed_float :: Bool
 gl_EXT_packed_float = member "GL_EXT_packed_float" extensions
+{-# NOINLINE gl_EXT_packed_float #-}
 
 pattern GL_R11F_G11F_B10F_EXT = 0x8C3A
 
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/PackedPixels.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/PackedPixels.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/PackedPixels.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/PackedPixels.hs
@@ -15,8 +15,11 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/packed_pixels.txt GL_EXT_packed_pixels> extension is available.
+
 gl_EXT_packed_pixels :: Bool
 gl_EXT_packed_pixels = member "GL_EXT_packed_pixels" extensions
+{-# NOINLINE gl_EXT_packed_pixels #-}
 
 pattern GL_UNSIGNED_BYTE_3_3_2_EXT = 0x8032
 
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/PalettedTexture.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/PalettedTexture.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/PalettedTexture.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/PalettedTexture.hs
@@ -26,9 +26,27 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/paletted_texture.txt GL_EXT_paletted_texture> extension is available.
+
 gl_EXT_paletted_texture :: Bool
 gl_EXT_paletted_texture = member "GL_EXT_paletted_texture" extensions
+{-# NOINLINE gl_EXT_paletted_texture #-}
 
+-- | Usage: @'glColorTableEXT' target internalFormat width format type table@
+--
+-- The parameter @target@ is a @ColorTableTarget@.
+--
+-- The parameter @internalFormat@ is a @PixelInternalFormat@.
+--
+-- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Raw.Extension.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_ALPHA', 'Graphics.GL.Raw.Internal.Shared.GL_BLUE', 'Graphics.GL.Raw.Extension.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Raw.Extension.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Raw.Internal.Shared.GL_GREEN', 'Graphics.GL.Raw.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Raw.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Raw.Internal.Shared.GL_RED', 'Graphics.GL.Raw.Extension.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_RGB', 'Graphics.GL.Raw.Internal.Shared.GL_RGBA', 'Graphics.GL.Raw.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Raw.Extension.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
+--
+-- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_BITMAP', 'Graphics.GL.Raw.Internal.Shared.GL_BYTE', 'Graphics.GL.Raw.Internal.Shared.GL_FLOAT', 'Graphics.GL.Raw.Internal.Shared.GL_INT', 'Graphics.GL.Raw.Internal.Shared.GL_SHORT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
+--
+-- The length of @table@ should be @COMPSIZE(format,type,width)@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Extension.ARB.Imaging.glColorTable'.
+
+
 glColorTableEXT :: MonadIO m => GLenum -> GLenum -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
 glColorTableEXT = ffienumenumsizeienumenumPtrVIOV glColorTableEXTFunPtr
 
@@ -37,6 +55,19 @@
 
 {-# NOINLINE glColorTableEXTFunPtr #-}
 
+-- | Usage: @'glGetColorTableEXT' target format type data@
+--
+-- The parameter @target@ is a @ColorTableTarget@.
+--
+-- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Raw.Extension.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_ALPHA', 'Graphics.GL.Raw.Internal.Shared.GL_BLUE', 'Graphics.GL.Raw.Extension.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Raw.Extension.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Raw.Internal.Shared.GL_GREEN', 'Graphics.GL.Raw.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Raw.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Raw.Internal.Shared.GL_RED', 'Graphics.GL.Raw.Extension.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_RGB', 'Graphics.GL.Raw.Internal.Shared.GL_RGBA', 'Graphics.GL.Raw.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Raw.Extension.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
+--
+-- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_BITMAP', 'Graphics.GL.Raw.Internal.Shared.GL_BYTE', 'Graphics.GL.Raw.Internal.Shared.GL_FLOAT', 'Graphics.GL.Raw.Internal.Shared.GL_INT', 'Graphics.GL.Raw.Internal.Shared.GL_SHORT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
+--
+-- The length of @data@ should be @COMPSIZE(target,format,type)@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Extension.ARB.Imaging.glGetColorTable'.
+
+
 glGetColorTableEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr () -> m ()
 glGetColorTableEXT = ffienumenumenumPtrVIOV glGetColorTableEXTFunPtr
 
@@ -45,6 +76,17 @@
 
 {-# NOINLINE glGetColorTableEXTFunPtr #-}
 
+-- | Usage: @'glGetColorTableParameterfvEXT' target pname params@
+--
+-- The parameter @target@ is a @ColorTableTarget@.
+--
+-- The parameter @pname@ is a @GetColorTableParameterPName@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Extension.ARB.Imaging.glGetColorTableParameterfv'.
+
+
 glGetColorTableParameterfvEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
 glGetColorTableParameterfvEXT = ffienumenumPtrfloatIOV glGetColorTableParameterfvEXTFunPtr
 
@@ -52,6 +94,17 @@
 glGetColorTableParameterfvEXTFunPtr = unsafePerformIO (getProcAddress "glGetColorTableParameterfvEXT")
 
 {-# NOINLINE glGetColorTableParameterfvEXTFunPtr #-}
+
+-- | Usage: @'glGetColorTableParameterivEXT' target pname params@
+--
+-- The parameter @target@ is a @ColorTableTarget@.
+--
+-- The parameter @pname@ is a @GetColorTableParameterPName@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Extension.ARB.Imaging.glGetColorTableParameteriv'.
+
 
 glGetColorTableParameterivEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
 glGetColorTableParameterivEXT = ffienumenumPtrintIOV glGetColorTableParameterivEXTFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/PixelBufferObject.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/PixelBufferObject.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/PixelBufferObject.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/PixelBufferObject.hs
@@ -14,8 +14,11 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/pixel_buffer_object.txt GL_EXT_pixel_buffer_object> extension is available.
+
 gl_EXT_pixel_buffer_object :: Bool
 gl_EXT_pixel_buffer_object = member "GL_EXT_pixel_buffer_object" extensions
+{-# NOINLINE gl_EXT_pixel_buffer_object #-}
 
 pattern GL_PIXEL_PACK_BUFFER_BINDING_EXT = 0x88ED
 
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/PixelTransform.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/PixelTransform.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/PixelTransform.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/PixelTransform.hs
@@ -30,9 +30,17 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/pixel_transform.txt GL_EXT_pixel_transform> extension is available.
+
 gl_EXT_pixel_transform :: Bool
 gl_EXT_pixel_transform = member "GL_EXT_pixel_transform" extensions
+{-# NOINLINE gl_EXT_pixel_transform #-}
 
+-- | Usage: @'glGetPixelTransformParameterfvEXT' target pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
 glGetPixelTransformParameterfvEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
 glGetPixelTransformParameterfvEXT = ffienumenumPtrfloatIOV glGetPixelTransformParameterfvEXTFunPtr
 
@@ -41,6 +49,11 @@
 
 {-# NOINLINE glGetPixelTransformParameterfvEXTFunPtr #-}
 
+-- | Usage: @'glGetPixelTransformParameterivEXT' target pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
 glGetPixelTransformParameterivEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
 glGetPixelTransformParameterivEXT = ffienumenumPtrintIOV glGetPixelTransformParameterivEXTFunPtr
 
@@ -49,6 +62,13 @@
 
 {-# NOINLINE glGetPixelTransformParameterivEXTFunPtr #-}
 
+-- | Usage: @'glPixelTransformParameterfEXT' target pname param@
+--
+-- The parameter @target@ is a @PixelTransformTargetEXT@.
+--
+-- The parameter @pname@ is a @PixelTransformPNameEXT@.
+
+
 glPixelTransformParameterfEXT :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()
 glPixelTransformParameterfEXT = ffienumenumfloatIOV glPixelTransformParameterfEXTFunPtr
 
@@ -57,6 +77,15 @@
 
 {-# NOINLINE glPixelTransformParameterfEXTFunPtr #-}
 
+-- | Usage: @'glPixelTransformParameterfvEXT' target pname params@
+--
+-- The parameter @target@ is a @PixelTransformTargetEXT@.
+--
+-- The parameter @pname@ is a @PixelTransformPNameEXT@.
+--
+-- The length of @params@ should be @1@.
+
+
 glPixelTransformParameterfvEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
 glPixelTransformParameterfvEXT = ffienumenumPtrfloatIOV glPixelTransformParameterfvEXTFunPtr
 
@@ -65,6 +94,13 @@
 
 {-# NOINLINE glPixelTransformParameterfvEXTFunPtr #-}
 
+-- | Usage: @'glPixelTransformParameteriEXT' target pname param@
+--
+-- The parameter @target@ is a @PixelTransformTargetEXT@.
+--
+-- The parameter @pname@ is a @PixelTransformPNameEXT@.
+
+
 glPixelTransformParameteriEXT :: MonadIO m => GLenum -> GLenum -> GLint -> m ()
 glPixelTransformParameteriEXT = ffienumenumintIOV glPixelTransformParameteriEXTFunPtr
 
@@ -72,6 +108,15 @@
 glPixelTransformParameteriEXTFunPtr = unsafePerformIO (getProcAddress "glPixelTransformParameteriEXT")
 
 {-# NOINLINE glPixelTransformParameteriEXTFunPtr #-}
+
+-- | Usage: @'glPixelTransformParameterivEXT' target pname params@
+--
+-- The parameter @target@ is a @PixelTransformTargetEXT@.
+--
+-- The parameter @pname@ is a @PixelTransformPNameEXT@.
+--
+-- The length of @params@ should be @1@.
+
 
 glPixelTransformParameterivEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
 glPixelTransformParameterivEXT = ffienumenumPtrintIOV glPixelTransformParameterivEXTFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/PixelTransformColorTable.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/PixelTransformColorTable.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/PixelTransformColorTable.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/PixelTransformColorTable.hs
@@ -8,5 +8,8 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/pixel_transform_color_table.txt GL_EXT_pixel_transform_color_table> extension is available.
+
 gl_EXT_pixel_transform_color_table :: Bool
 gl_EXT_pixel_transform_color_table = member "GL_EXT_pixel_transform_color_table" extensions
+{-# NOINLINE gl_EXT_pixel_transform_color_table #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/PointParameters.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/PointParameters.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/PointParameters.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/PointParameters.hs
@@ -21,9 +21,21 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/point_parameters.txt GL_EXT_point_parameters> extension is available.
+
 gl_EXT_point_parameters :: Bool
 gl_EXT_point_parameters = member "GL_EXT_point_parameters" extensions
+{-# NOINLINE gl_EXT_point_parameters #-}
 
+-- | Usage: @'glPointParameterfEXT' pname param@
+--
+-- The parameter @pname@ is a @PointParameterNameARB@.
+--
+-- The parameter @param@ is a @CheckedFloat32@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glPointParameterf'.
+
+
 glPointParameterfEXT :: MonadIO m => GLenum -> GLfloat -> m ()
 glPointParameterfEXT = ffienumfloatIOV glPointParameterfEXTFunPtr
 
@@ -31,6 +43,17 @@
 glPointParameterfEXTFunPtr = unsafePerformIO (getProcAddress "glPointParameterfEXT")
 
 {-# NOINLINE glPointParameterfEXTFunPtr #-}
+
+-- | Usage: @'glPointParameterfvEXT' pname params@
+--
+-- The parameter @pname@ is a @PointParameterNameARB@.
+--
+-- The parameter @params@ is a @CheckedFloat32@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glPointParameterfv'.
+
 
 glPointParameterfvEXT :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
 glPointParameterfvEXT = ffienumPtrfloatIOV glPointParameterfvEXTFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/PolygonOffset.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/PolygonOffset.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/PolygonOffset.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/PolygonOffset.hs
@@ -19,8 +19,14 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/polygon_offset.txt GL_EXT_polygon_offset> extension is available.
+
 gl_EXT_polygon_offset :: Bool
 gl_EXT_polygon_offset = member "GL_EXT_polygon_offset" extensions
+{-# NOINLINE gl_EXT_polygon_offset #-}
+
+-- | Usage: @'glPolygonOffsetEXT' factor bias@
+
 
 glPolygonOffsetEXT :: MonadIO m => GLfloat -> GLfloat -> m ()
 glPolygonOffsetEXT = ffifloatfloatIOV glPolygonOffsetEXTFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/PolygonOffsetClamp.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/PolygonOffsetClamp.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/PolygonOffsetClamp.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/PolygonOffsetClamp.hs
@@ -17,8 +17,14 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/polygon_offset_clamp.txt GL_EXT_polygon_offset_clamp> extension is available.
+
 gl_EXT_polygon_offset_clamp :: Bool
 gl_EXT_polygon_offset_clamp = member "GL_EXT_polygon_offset_clamp" extensions
+{-# NOINLINE gl_EXT_polygon_offset_clamp #-}
+
+-- | Usage: @'glPolygonOffsetClampEXT' factor units clamp@
+
 
 glPolygonOffsetClampEXT :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()
 glPolygonOffsetClampEXT = ffifloatfloatfloatIOV glPolygonOffsetClampEXTFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/PostDepthCoverage.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/PostDepthCoverage.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/PostDepthCoverage.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/PostDepthCoverage.hs
@@ -8,5 +8,8 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/post_depth_coverage.txt GL_EXT_post_depth_coverage> extension is available.
+
 gl_EXT_post_depth_coverage :: Bool
 gl_EXT_post_depth_coverage = member "GL_EXT_post_depth_coverage" extensions
+{-# NOINLINE gl_EXT_post_depth_coverage #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/PrimitiveBoundingBox.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/PrimitiveBoundingBox.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/PrimitiveBoundingBox.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/PrimitiveBoundingBox.hs
@@ -17,8 +17,14 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the GL_EXT_primitive_bounding_box extension is available.
+
 gl_EXT_primitive_bounding_box :: Bool
 gl_EXT_primitive_bounding_box = member "GL_EXT_primitive_bounding_box" extensions
+{-# NOINLINE gl_EXT_primitive_bounding_box #-}
+
+-- | Usage: @'glPrimitiveBoundingBoxEXT' minX minY minZ minW maxX maxY maxZ maxW@
+
 
 glPrimitiveBoundingBoxEXT :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
 glPrimitiveBoundingBoxEXT = ffifloatfloatfloatfloatfloatfloatfloatfloatIOV glPrimitiveBoundingBoxEXTFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/ProvokingVertex.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/ProvokingVertex.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/ProvokingVertex.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/ProvokingVertex.hs
@@ -21,8 +21,16 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/provoking_vertex.txt GL_EXT_provoking_vertex> extension is available.
+
 gl_EXT_provoking_vertex :: Bool
 gl_EXT_provoking_vertex = member "GL_EXT_provoking_vertex" extensions
+{-# NOINLINE gl_EXT_provoking_vertex #-}
+
+-- | Usage: @'glProvokingVertexEXT' mode@
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glProvokingVertex'.
+
 
 glProvokingVertexEXT :: MonadIO m => GLenum -> m ()
 glProvokingVertexEXT = ffienumIOV glProvokingVertexEXTFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/PvrtcSRGB.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/PvrtcSRGB.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/PvrtcSRGB.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/PvrtcSRGB.hs
@@ -16,8 +16,11 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the GL_EXT_pvrtc_sRGB extension is available.
+
 gl_EXT_pvrtc_sRGB :: Bool
 gl_EXT_pvrtc_sRGB = member "GL_EXT_pvrtc_sRGB" extensions
+{-# NOINLINE gl_EXT_pvrtc_sRGB #-}
 
 pattern GL_COMPRESSED_SRGB_ALPHA_PVRTC_2BPPV1_EXT = 0x8A56
 
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/RasterMultisample.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/RasterMultisample.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/RasterMultisample.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/RasterMultisample.hs
@@ -18,5 +18,8 @@
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/raster_multisample.txt GL_EXT_raster_multisample> extension is available.
+
 gl_EXT_raster_multisample :: Bool
 gl_EXT_raster_multisample = member "GL_EXT_raster_multisample" extensions
+{-# NOINLINE gl_EXT_raster_multisample #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/ReadFormatBgra.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/ReadFormatBgra.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/ReadFormatBgra.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/ReadFormatBgra.hs
@@ -14,8 +14,11 @@
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
 
+-- | Checks that the GL_EXT_read_format_bgra extension is available.
+
 gl_EXT_read_format_bgra :: Bool
 gl_EXT_read_format_bgra = member "GL_EXT_read_format_bgra" extensions
+{-# NOINLINE gl_EXT_read_format_bgra #-}
 
 pattern GL_UNSIGNED_SHORT_1_5_5_5_REV_EXT = 0x8366
 
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/RescaleNormal.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/RescaleNormal.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/RescaleNormal.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/RescaleNormal.hs
@@ -11,7 +11,10 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/rescale_normal.txt GL_EXT_rescale_normal> extension is available.
+
 gl_EXT_rescale_normal :: Bool
 gl_EXT_rescale_normal = member "GL_EXT_rescale_normal" extensions
+{-# NOINLINE gl_EXT_rescale_normal #-}
 
 pattern GL_RESCALE_NORMAL_EXT = 0x803A
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/Robustness.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/Robustness.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/Robustness.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/Robustness.hs
@@ -28,9 +28,15 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the GL_EXT_robustness extension is available.
+
 gl_EXT_robustness :: Bool
 gl_EXT_robustness = member "GL_EXT_robustness" extensions
+{-# NOINLINE gl_EXT_robustness #-}
 
+-- | Usage: @'glGetGraphicsResetStatusEXT'@
+
+
 glGetGraphicsResetStatusEXT :: MonadIO m => m GLenum
 glGetGraphicsResetStatusEXT = ffiIOenum glGetGraphicsResetStatusEXTFunPtr
 
@@ -39,6 +45,11 @@
 
 {-# NOINLINE glGetGraphicsResetStatusEXTFunPtr #-}
 
+-- | Usage: @'glGetnUniformfvEXT' program location bufSize params@
+--
+-- The length of @params@ should be @bufSize@.
+
+
 glGetnUniformfvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()
 glGetnUniformfvEXT = ffiuintintsizeiPtrfloatIOV glGetnUniformfvEXTFunPtr
 
@@ -47,6 +58,11 @@
 
 {-# NOINLINE glGetnUniformfvEXTFunPtr #-}
 
+-- | Usage: @'glGetnUniformivEXT' program location bufSize params@
+--
+-- The length of @params@ should be @bufSize@.
+
+
 glGetnUniformivEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()
 glGetnUniformivEXT = ffiuintintsizeiPtrintIOV glGetnUniformivEXTFunPtr
 
@@ -54,6 +70,13 @@
 glGetnUniformivEXTFunPtr = unsafePerformIO (getProcAddress "glGetnUniformivEXT")
 
 {-# NOINLINE glGetnUniformivEXTFunPtr #-}
+
+-- | Usage: @'glReadnPixelsEXT' x y width height format type bufSize data@
+--
+-- The length of @data@ should be @bufSize@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glReadnPixels'.
+
 
 glReadnPixelsEXT :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> GLsizei -> Ptr () -> m ()
 glReadnPixelsEXT = ffiintintsizeisizeienumenumsizeiPtrVIOV glReadnPixelsEXTFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/SRGB.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/SRGB.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/SRGB.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/SRGB.hs
@@ -15,7 +15,10 @@
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
 
+-- | Checks that the GL_EXT_sRGB extension is available.
+
 gl_EXT_sRGB :: Bool
 gl_EXT_sRGB = member "GL_EXT_sRGB" extensions
+{-# NOINLINE gl_EXT_sRGB #-}
 
 pattern GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT = 0x8210
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/SRGBWriteControl.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/SRGBWriteControl.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/SRGBWriteControl.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/SRGBWriteControl.hs
@@ -12,5 +12,8 @@
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
 
+-- | Checks that the GL_EXT_sRGB_write_control extension is available.
+
 gl_EXT_sRGB_write_control :: Bool
 gl_EXT_sRGB_write_control = member "GL_EXT_sRGB_write_control" extensions
+{-# NOINLINE gl_EXT_sRGB_write_control #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/SecondaryColor.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/SecondaryColor.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/SecondaryColor.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/SecondaryColor.hs
@@ -39,9 +39,25 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/secondary_color.txt GL_EXT_secondary_color> extension is available.
+
 gl_EXT_secondary_color :: Bool
 gl_EXT_secondary_color = member "GL_EXT_secondary_color" extensions
+{-# NOINLINE gl_EXT_secondary_color #-}
 
+-- | Usage: @'glSecondaryColor3bEXT' red green blue@
+--
+-- The parameter @red@ is a @ColorB@.
+--
+-- The parameter @green@ is a @ColorB@.
+--
+-- The parameter @blue@ is a @ColorB@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glSecondaryColor3b'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Extension.EXT.SecondaryColor.glSecondaryColor3bvEXT'.
+
+
 glSecondaryColor3bEXT :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> m ()
 glSecondaryColor3bEXT = ffibytebytebyteIOV glSecondaryColor3bEXTFunPtr
 
@@ -50,6 +66,15 @@
 
 {-# NOINLINE glSecondaryColor3bEXTFunPtr #-}
 
+-- | Usage: @'glSecondaryColor3bvEXT' v@
+--
+-- The parameter @v@ is a @ColorB@.
+--
+-- The length of @v@ should be @3@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glSecondaryColor3bv'.
+
+
 glSecondaryColor3bvEXT :: MonadIO m => Ptr GLbyte -> m ()
 glSecondaryColor3bvEXT = ffiPtrbyteIOV glSecondaryColor3bvEXTFunPtr
 
@@ -58,6 +83,19 @@
 
 {-# NOINLINE glSecondaryColor3bvEXTFunPtr #-}
 
+-- | Usage: @'glSecondaryColor3dEXT' red green blue@
+--
+-- The parameter @red@ is a @ColorD@.
+--
+-- The parameter @green@ is a @ColorD@.
+--
+-- The parameter @blue@ is a @ColorD@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glSecondaryColor3d'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Extension.EXT.SecondaryColor.glSecondaryColor3dvEXT'.
+
+
 glSecondaryColor3dEXT :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()
 glSecondaryColor3dEXT = ffidoubledoubledoubleIOV glSecondaryColor3dEXTFunPtr
 
@@ -66,6 +104,15 @@
 
 {-# NOINLINE glSecondaryColor3dEXTFunPtr #-}
 
+-- | Usage: @'glSecondaryColor3dvEXT' v@
+--
+-- The parameter @v@ is a @ColorD@.
+--
+-- The length of @v@ should be @3@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glSecondaryColor3dv'.
+
+
 glSecondaryColor3dvEXT :: MonadIO m => Ptr GLdouble -> m ()
 glSecondaryColor3dvEXT = ffiPtrdoubleIOV glSecondaryColor3dvEXTFunPtr
 
@@ -74,6 +121,19 @@
 
 {-# NOINLINE glSecondaryColor3dvEXTFunPtr #-}
 
+-- | Usage: @'glSecondaryColor3fEXT' red green blue@
+--
+-- The parameter @red@ is a @ColorF@.
+--
+-- The parameter @green@ is a @ColorF@.
+--
+-- The parameter @blue@ is a @ColorF@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glSecondaryColor3f'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Extension.EXT.SecondaryColor.glSecondaryColor3fvEXT'.
+
+
 glSecondaryColor3fEXT :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()
 glSecondaryColor3fEXT = ffifloatfloatfloatIOV glSecondaryColor3fEXTFunPtr
 
@@ -82,6 +142,15 @@
 
 {-# NOINLINE glSecondaryColor3fEXTFunPtr #-}
 
+-- | Usage: @'glSecondaryColor3fvEXT' v@
+--
+-- The parameter @v@ is a @ColorF@.
+--
+-- The length of @v@ should be @3@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glSecondaryColor3fv'.
+
+
 glSecondaryColor3fvEXT :: MonadIO m => Ptr GLfloat -> m ()
 glSecondaryColor3fvEXT = ffiPtrfloatIOV glSecondaryColor3fvEXTFunPtr
 
@@ -90,6 +159,19 @@
 
 {-# NOINLINE glSecondaryColor3fvEXTFunPtr #-}
 
+-- | Usage: @'glSecondaryColor3iEXT' red green blue@
+--
+-- The parameter @red@ is a @ColorI@.
+--
+-- The parameter @green@ is a @ColorI@.
+--
+-- The parameter @blue@ is a @ColorI@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glSecondaryColor3i'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Extension.EXT.SecondaryColor.glSecondaryColor3ivEXT'.
+
+
 glSecondaryColor3iEXT :: MonadIO m => GLint -> GLint -> GLint -> m ()
 glSecondaryColor3iEXT = ffiintintintIOV glSecondaryColor3iEXTFunPtr
 
@@ -98,6 +180,15 @@
 
 {-# NOINLINE glSecondaryColor3iEXTFunPtr #-}
 
+-- | Usage: @'glSecondaryColor3ivEXT' v@
+--
+-- The parameter @v@ is a @ColorI@.
+--
+-- The length of @v@ should be @3@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glSecondaryColor3iv'.
+
+
 glSecondaryColor3ivEXT :: MonadIO m => Ptr GLint -> m ()
 glSecondaryColor3ivEXT = ffiPtrintIOV glSecondaryColor3ivEXTFunPtr
 
@@ -106,6 +197,19 @@
 
 {-# NOINLINE glSecondaryColor3ivEXTFunPtr #-}
 
+-- | Usage: @'glSecondaryColor3sEXT' red green blue@
+--
+-- The parameter @red@ is a @ColorS@.
+--
+-- The parameter @green@ is a @ColorS@.
+--
+-- The parameter @blue@ is a @ColorS@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glSecondaryColor3s'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Extension.EXT.SecondaryColor.glSecondaryColor3svEXT'.
+
+
 glSecondaryColor3sEXT :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()
 glSecondaryColor3sEXT = ffishortshortshortIOV glSecondaryColor3sEXTFunPtr
 
@@ -114,6 +218,15 @@
 
 {-# NOINLINE glSecondaryColor3sEXTFunPtr #-}
 
+-- | Usage: @'glSecondaryColor3svEXT' v@
+--
+-- The parameter @v@ is a @ColorS@.
+--
+-- The length of @v@ should be @3@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glSecondaryColor3sv'.
+
+
 glSecondaryColor3svEXT :: MonadIO m => Ptr GLshort -> m ()
 glSecondaryColor3svEXT = ffiPtrshortIOV glSecondaryColor3svEXTFunPtr
 
@@ -122,6 +235,19 @@
 
 {-# NOINLINE glSecondaryColor3svEXTFunPtr #-}
 
+-- | Usage: @'glSecondaryColor3ubEXT' red green blue@
+--
+-- The parameter @red@ is a @ColorUB@.
+--
+-- The parameter @green@ is a @ColorUB@.
+--
+-- The parameter @blue@ is a @ColorUB@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glSecondaryColor3ub'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Extension.EXT.SecondaryColor.glSecondaryColor3ubvEXT'.
+
+
 glSecondaryColor3ubEXT :: MonadIO m => GLubyte -> GLubyte -> GLubyte -> m ()
 glSecondaryColor3ubEXT = ffiubyteubyteubyteIOV glSecondaryColor3ubEXTFunPtr
 
@@ -130,6 +256,15 @@
 
 {-# NOINLINE glSecondaryColor3ubEXTFunPtr #-}
 
+-- | Usage: @'glSecondaryColor3ubvEXT' v@
+--
+-- The parameter @v@ is a @ColorUB@.
+--
+-- The length of @v@ should be @3@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glSecondaryColor3ubv'.
+
+
 glSecondaryColor3ubvEXT :: MonadIO m => Ptr GLubyte -> m ()
 glSecondaryColor3ubvEXT = ffiPtrubyteIOV glSecondaryColor3ubvEXTFunPtr
 
@@ -138,6 +273,19 @@
 
 {-# NOINLINE glSecondaryColor3ubvEXTFunPtr #-}
 
+-- | Usage: @'glSecondaryColor3uiEXT' red green blue@
+--
+-- The parameter @red@ is a @ColorUI@.
+--
+-- The parameter @green@ is a @ColorUI@.
+--
+-- The parameter @blue@ is a @ColorUI@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glSecondaryColor3ui'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Extension.EXT.SecondaryColor.glSecondaryColor3uivEXT'.
+
+
 glSecondaryColor3uiEXT :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()
 glSecondaryColor3uiEXT = ffiuintuintuintIOV glSecondaryColor3uiEXTFunPtr
 
@@ -146,6 +294,15 @@
 
 {-# NOINLINE glSecondaryColor3uiEXTFunPtr #-}
 
+-- | Usage: @'glSecondaryColor3uivEXT' v@
+--
+-- The parameter @v@ is a @ColorUI@.
+--
+-- The length of @v@ should be @3@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glSecondaryColor3uiv'.
+
+
 glSecondaryColor3uivEXT :: MonadIO m => Ptr GLuint -> m ()
 glSecondaryColor3uivEXT = ffiPtruintIOV glSecondaryColor3uivEXTFunPtr
 
@@ -154,6 +311,19 @@
 
 {-# NOINLINE glSecondaryColor3uivEXTFunPtr #-}
 
+-- | Usage: @'glSecondaryColor3usEXT' red green blue@
+--
+-- The parameter @red@ is a @ColorUS@.
+--
+-- The parameter @green@ is a @ColorUS@.
+--
+-- The parameter @blue@ is a @ColorUS@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glSecondaryColor3us'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Extension.EXT.SecondaryColor.glSecondaryColor3usvEXT'.
+
+
 glSecondaryColor3usEXT :: MonadIO m => GLushort -> GLushort -> GLushort -> m ()
 glSecondaryColor3usEXT = ffiushortushortushortIOV glSecondaryColor3usEXTFunPtr
 
@@ -162,6 +332,15 @@
 
 {-# NOINLINE glSecondaryColor3usEXTFunPtr #-}
 
+-- | Usage: @'glSecondaryColor3usvEXT' v@
+--
+-- The parameter @v@ is a @ColorUS@.
+--
+-- The length of @v@ should be @3@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glSecondaryColor3usv'.
+
+
 glSecondaryColor3usvEXT :: MonadIO m => Ptr GLushort -> m ()
 glSecondaryColor3usvEXT = ffiPtrushortIOV glSecondaryColor3usvEXTFunPtr
 
@@ -169,6 +348,15 @@
 glSecondaryColor3usvEXTFunPtr = unsafePerformIO (getProcAddress "glSecondaryColor3usvEXT")
 
 {-# NOINLINE glSecondaryColor3usvEXTFunPtr #-}
+
+-- | Usage: @'glSecondaryColorPointerEXT' size type stride pointer@
+--
+-- The parameter @type@ is a @ColorPointerType@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_BYTE', 'Graphics.GL.Raw.Internal.Shared.GL_DOUBLE', 'Graphics.GL.Raw.Internal.Shared.GL_FLOAT', 'Graphics.GL.Raw.Internal.Shared.GL_INT', 'Graphics.GL.Raw.Internal.Shared.GL_SHORT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT'.
+--
+-- The length of @pointer@ should be @COMPSIZE(size,type,stride)@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glSecondaryColorPointer'.
+
 
 glSecondaryColorPointerEXT :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr () -> m ()
 glSecondaryColorPointerEXT = ffiintenumsizeiPtrVIOV glSecondaryColorPointerEXTFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/SeparateShaderObjects.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/SeparateShaderObjects.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/SeparateShaderObjects.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/SeparateShaderObjects.hs
@@ -69,9 +69,15 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/separate_shader_objects.txt GL_EXT_separate_shader_objects> extension is available.
+
 gl_EXT_separate_shader_objects :: Bool
 gl_EXT_separate_shader_objects = member "GL_EXT_separate_shader_objects" extensions
+{-# NOINLINE gl_EXT_separate_shader_objects #-}
 
+-- | Usage: @'glActiveProgramEXT' program@
+
+
 glActiveProgramEXT :: MonadIO m => GLuint -> m ()
 glActiveProgramEXT = ffiuintIOV glActiveProgramEXTFunPtr
 
@@ -80,6 +86,9 @@
 
 {-# NOINLINE glActiveProgramEXTFunPtr #-}
 
+-- | Usage: @'glActiveShaderProgramEXT' pipeline program@
+
+
 glActiveShaderProgramEXT :: MonadIO m => GLuint -> GLuint -> m ()
 glActiveShaderProgramEXT = ffiuintuintIOV glActiveShaderProgramEXTFunPtr
 
@@ -88,6 +97,9 @@
 
 {-# NOINLINE glActiveShaderProgramEXTFunPtr #-}
 
+-- | Usage: @'glBindProgramPipelineEXT' pipeline@
+
+
 glBindProgramPipelineEXT :: MonadIO m => GLuint -> m ()
 glBindProgramPipelineEXT = ffiuintIOV glBindProgramPipelineEXTFunPtr
 
@@ -96,6 +108,9 @@
 
 {-# NOINLINE glBindProgramPipelineEXTFunPtr #-}
 
+-- | Usage: @'glCreateShaderProgramEXT' type string@
+
+
 glCreateShaderProgramEXT :: MonadIO m => GLenum -> Ptr GLchar -> m GLuint
 glCreateShaderProgramEXT = ffienumPtrcharIOuint glCreateShaderProgramEXTFunPtr
 
@@ -104,14 +119,24 @@
 
 {-# NOINLINE glCreateShaderProgramEXTFunPtr #-}
 
-glCreateShaderProgramvEXT :: MonadIO m => GLenum -> GLsizei -> Ptr GLchar -> m GLuint
-glCreateShaderProgramvEXT = ffienumsizeiPtrcharIOuint glCreateShaderProgramvEXTFunPtr
+-- | Usage: @'glCreateShaderProgramvEXT' type count strings@
+--
+-- The length of @strings@ should be @count@.
 
-glCreateShaderProgramvEXTFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr GLchar -> IO GLuint)
+
+glCreateShaderProgramvEXT :: MonadIO m => GLenum -> GLsizei -> Ptr (Ptr GLchar) -> m GLuint
+glCreateShaderProgramvEXT = ffienumsizeiPtrPtrcharIOuint glCreateShaderProgramvEXTFunPtr
+
+glCreateShaderProgramvEXTFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr (Ptr GLchar) -> IO GLuint)
 glCreateShaderProgramvEXTFunPtr = unsafePerformIO (getProcAddress "glCreateShaderProgramvEXT")
 
 {-# NOINLINE glCreateShaderProgramvEXTFunPtr #-}
 
+-- | Usage: @'glDeleteProgramPipelinesEXT' n pipelines@
+--
+-- The length of @pipelines@ should be @n@.
+
+
 glDeleteProgramPipelinesEXT :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
 glDeleteProgramPipelinesEXT = ffisizeiPtruintIOV glDeleteProgramPipelinesEXTFunPtr
 
@@ -120,6 +145,11 @@
 
 {-# NOINLINE glDeleteProgramPipelinesEXTFunPtr #-}
 
+-- | Usage: @'glGenProgramPipelinesEXT' n pipelines@
+--
+-- The length of @pipelines@ should be @n@.
+
+
 glGenProgramPipelinesEXT :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
 glGenProgramPipelinesEXT = ffisizeiPtruintIOV glGenProgramPipelinesEXTFunPtr
 
@@ -128,6 +158,13 @@
 
 {-# NOINLINE glGenProgramPipelinesEXTFunPtr #-}
 
+-- | Usage: @'glGetProgramPipelineInfoLogEXT' pipeline bufSize length infoLog@
+--
+-- The length of @length@ should be @1@.
+--
+-- The length of @infoLog@ should be @bufSize@.
+
+
 glGetProgramPipelineInfoLogEXT :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
 glGetProgramPipelineInfoLogEXT = ffiuintsizeiPtrsizeiPtrcharIOV glGetProgramPipelineInfoLogEXTFunPtr
 
@@ -136,6 +173,9 @@
 
 {-# NOINLINE glGetProgramPipelineInfoLogEXTFunPtr #-}
 
+-- | Usage: @'glGetProgramPipelineivEXT' pipeline pname params@
+
+
 glGetProgramPipelineivEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
 glGetProgramPipelineivEXT = ffiuintenumPtrintIOV glGetProgramPipelineivEXTFunPtr
 
@@ -144,6 +184,9 @@
 
 {-# NOINLINE glGetProgramPipelineivEXTFunPtr #-}
 
+-- | Usage: @'glIsProgramPipelineEXT' pipeline@
+
+
 glIsProgramPipelineEXT :: MonadIO m => GLuint -> m GLboolean
 glIsProgramPipelineEXT = ffiuintIOboolean glIsProgramPipelineEXTFunPtr
 
@@ -152,6 +195,9 @@
 
 {-# NOINLINE glIsProgramPipelineEXTFunPtr #-}
 
+-- | Usage: @'glUseProgramStagesEXT' pipeline stages program@
+
+
 glUseProgramStagesEXT :: MonadIO m => GLuint -> GLbitfield -> GLuint -> m ()
 glUseProgramStagesEXT = ffiuintbitfielduintIOV glUseProgramStagesEXTFunPtr
 
@@ -160,6 +206,9 @@
 
 {-# NOINLINE glUseProgramStagesEXTFunPtr #-}
 
+-- | Usage: @'glUseShaderProgramEXT' type program@
+
+
 glUseShaderProgramEXT :: MonadIO m => GLenum -> GLuint -> m ()
 glUseShaderProgramEXT = ffienumuintIOV glUseShaderProgramEXTFunPtr
 
@@ -167,6 +216,9 @@
 glUseShaderProgramEXTFunPtr = unsafePerformIO (getProcAddress "glUseShaderProgramEXT")
 
 {-# NOINLINE glUseShaderProgramEXTFunPtr #-}
+
+-- | Usage: @'glValidateProgramPipelineEXT' pipeline@
+
 
 glValidateProgramPipelineEXT :: MonadIO m => GLuint -> m ()
 glValidateProgramPipelineEXT = ffiuintIOV glValidateProgramPipelineEXTFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/SeparateSpecularColor.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/SeparateSpecularColor.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/SeparateSpecularColor.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/SeparateSpecularColor.hs
@@ -13,8 +13,11 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/separate_specular_color.txt GL_EXT_separate_specular_color> extension is available.
+
 gl_EXT_separate_specular_color :: Bool
 gl_EXT_separate_specular_color = member "GL_EXT_separate_specular_color" extensions
+{-# NOINLINE gl_EXT_separate_specular_color #-}
 
 pattern GL_LIGHT_MODEL_COLOR_CONTROL_EXT = 0x81F8
 
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/ShaderFramebufferFetch.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/ShaderFramebufferFetch.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/ShaderFramebufferFetch.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/ShaderFramebufferFetch.hs
@@ -11,7 +11,10 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the GL_EXT_shader_framebuffer_fetch extension is available.
+
 gl_EXT_shader_framebuffer_fetch :: Bool
 gl_EXT_shader_framebuffer_fetch = member "GL_EXT_shader_framebuffer_fetch" extensions
+{-# NOINLINE gl_EXT_shader_framebuffer_fetch #-}
 
 pattern GL_FRAGMENT_SHADER_DISCARDS_SAMPLES_EXT = 0x8A52
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/ShaderImageLoadFormatted.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/ShaderImageLoadFormatted.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/ShaderImageLoadFormatted.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/ShaderImageLoadFormatted.hs
@@ -8,5 +8,8 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/shader_image_load_formatted.txt GL_EXT_shader_image_load_formatted> extension is available.
+
 gl_EXT_shader_image_load_formatted :: Bool
 gl_EXT_shader_image_load_formatted = member "GL_EXT_shader_image_load_formatted" extensions
+{-# NOINLINE gl_EXT_shader_image_load_formatted #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/ShaderImageLoadStore.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/ShaderImageLoadStore.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/ShaderImageLoadStore.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/ShaderImageLoadStore.hs
@@ -73,9 +73,17 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/shader_image_load_store.txt GL_EXT_shader_image_load_store> extension is available.
+
 gl_EXT_shader_image_load_store :: Bool
 gl_EXT_shader_image_load_store = member "GL_EXT_shader_image_load_store" extensions
+{-# NOINLINE gl_EXT_shader_image_load_store #-}
 
+-- | Usage: @'glBindImageTextureEXT' index texture level layered layer access format@
+--
+-- The parameter @layered@ is a @Boolean@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FALSE', 'Graphics.GL.Raw.Internal.Shared.GL_TRUE'.
+
+
 glBindImageTextureEXT :: MonadIO m => GLuint -> GLuint -> GLint -> GLboolean -> GLint -> GLenum -> GLint -> m ()
 glBindImageTextureEXT = ffiuintuintintbooleanintenumintIOV glBindImageTextureEXTFunPtr
 
@@ -83,6 +91,11 @@
 glBindImageTextureEXTFunPtr = unsafePerformIO (getProcAddress "glBindImageTextureEXT")
 
 {-# NOINLINE glBindImageTextureEXTFunPtr #-}
+
+-- | Usage: @'glMemoryBarrierEXT' barriers@
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glMemoryBarrier'.
+
 
 glMemoryBarrierEXT :: MonadIO m => GLbitfield -> m ()
 glMemoryBarrierEXT = ffibitfieldIOV glMemoryBarrierEXTFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/ShaderImplicitConversions.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/ShaderImplicitConversions.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/ShaderImplicitConversions.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/ShaderImplicitConversions.hs
@@ -8,5 +8,8 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the GL_EXT_shader_implicit_conversions extension is available.
+
 gl_EXT_shader_implicit_conversions :: Bool
 gl_EXT_shader_implicit_conversions = member "GL_EXT_shader_implicit_conversions" extensions
+{-# NOINLINE gl_EXT_shader_implicit_conversions #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/ShaderIntegerMix.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/ShaderIntegerMix.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/ShaderIntegerMix.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/ShaderIntegerMix.hs
@@ -8,5 +8,8 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/shader_integer_mix.txt GL_EXT_shader_integer_mix> extension is available.
+
 gl_EXT_shader_integer_mix :: Bool
 gl_EXT_shader_integer_mix = member "GL_EXT_shader_integer_mix" extensions
+{-# NOINLINE gl_EXT_shader_integer_mix #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/ShaderIoBlocks.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/ShaderIoBlocks.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/ShaderIoBlocks.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/ShaderIoBlocks.hs
@@ -8,5 +8,8 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the GL_EXT_shader_io_blocks extension is available.
+
 gl_EXT_shader_io_blocks :: Bool
 gl_EXT_shader_io_blocks = member "GL_EXT_shader_io_blocks" extensions
+{-# NOINLINE gl_EXT_shader_io_blocks #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/ShaderPixelLocalStorage.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/ShaderPixelLocalStorage.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/ShaderPixelLocalStorage.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/ShaderPixelLocalStorage.hs
@@ -13,8 +13,11 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the GL_EXT_shader_pixel_local_storage extension is available.
+
 gl_EXT_shader_pixel_local_storage :: Bool
 gl_EXT_shader_pixel_local_storage = member "GL_EXT_shader_pixel_local_storage" extensions
+{-# NOINLINE gl_EXT_shader_pixel_local_storage #-}
 
 pattern GL_MAX_SHADER_PIXEL_LOCAL_STORAGE_FAST_SIZE_EXT = 0x8F63
 
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/ShaderTextureLod.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/ShaderTextureLod.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/ShaderTextureLod.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/ShaderTextureLod.hs
@@ -8,5 +8,8 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the GL_EXT_shader_texture_lod extension is available.
+
 gl_EXT_shader_texture_lod :: Bool
 gl_EXT_shader_texture_lod = member "GL_EXT_shader_texture_lod" extensions
+{-# NOINLINE gl_EXT_shader_texture_lod #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/ShadowFuncs.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/ShadowFuncs.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/ShadowFuncs.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/ShadowFuncs.hs
@@ -8,5 +8,8 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/shadow_funcs.txt GL_EXT_shadow_funcs> extension is available.
+
 gl_EXT_shadow_funcs :: Bool
 gl_EXT_shadow_funcs = member "GL_EXT_shadow_funcs" extensions
+{-# NOINLINE gl_EXT_shadow_funcs #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/ShadowSamplers.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/ShadowSamplers.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/ShadowSamplers.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/ShadowSamplers.hs
@@ -14,8 +14,11 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the GL_EXT_shadow_samplers extension is available.
+
 gl_EXT_shadow_samplers :: Bool
 gl_EXT_shadow_samplers = member "GL_EXT_shadow_samplers" extensions
+{-# NOINLINE gl_EXT_shadow_samplers #-}
 
 pattern GL_COMPARE_REF_TO_TEXTURE_EXT = 0x884E
 
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/SharedTexturePalette.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/SharedTexturePalette.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/SharedTexturePalette.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/SharedTexturePalette.hs
@@ -11,7 +11,10 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/shared_texture_palette.txt GL_EXT_shared_texture_palette> extension is available.
+
 gl_EXT_shared_texture_palette :: Bool
 gl_EXT_shared_texture_palette = member "GL_EXT_shared_texture_palette" extensions
+{-# NOINLINE gl_EXT_shared_texture_palette #-}
 
 pattern GL_SHARED_TEXTURE_PALETTE_EXT = 0x81FB
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/SparseTexture2.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/SparseTexture2.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/SparseTexture2.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/SparseTexture2.hs
@@ -8,5 +8,8 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/sparse_texture2.txt GL_EXT_sparse_texture2> extension is available.
+
 gl_EXT_sparse_texture2 :: Bool
 gl_EXT_sparse_texture2 = member "GL_EXT_sparse_texture2" extensions
+{-# NOINLINE gl_EXT_sparse_texture2 #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/StencilClearTag.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/StencilClearTag.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/StencilClearTag.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/StencilClearTag.hs
@@ -18,8 +18,14 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/stencil_clear_tag.txt GL_EXT_stencil_clear_tag> extension is available.
+
 gl_EXT_stencil_clear_tag :: Bool
 gl_EXT_stencil_clear_tag = member "GL_EXT_stencil_clear_tag" extensions
+{-# NOINLINE gl_EXT_stencil_clear_tag #-}
+
+-- | Usage: @'glStencilClearTagEXT' stencilTagBits stencilClearTag@
+
 
 glStencilClearTagEXT :: MonadIO m => GLsizei -> GLuint -> m ()
 glStencilClearTagEXT = ffisizeiuintIOV glStencilClearTagEXTFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/StencilTwoSide.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/StencilTwoSide.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/StencilTwoSide.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/StencilTwoSide.hs
@@ -18,8 +18,16 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/stencil_two_side.txt GL_EXT_stencil_two_side> extension is available.
+
 gl_EXT_stencil_two_side :: Bool
 gl_EXT_stencil_two_side = member "GL_EXT_stencil_two_side" extensions
+{-# NOINLINE gl_EXT_stencil_two_side #-}
+
+-- | Usage: @'glActiveStencilFaceEXT' face@
+--
+-- The parameter @face@ is a @StencilFaceDirection@.
+
 
 glActiveStencilFaceEXT :: MonadIO m => GLenum -> m ()
 glActiveStencilFaceEXT = ffienumIOV glActiveStencilFaceEXTFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/StencilWrap.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/StencilWrap.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/StencilWrap.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/StencilWrap.hs
@@ -12,8 +12,11 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/stencil_wrap.txt GL_EXT_stencil_wrap> extension is available.
+
 gl_EXT_stencil_wrap :: Bool
 gl_EXT_stencil_wrap = member "GL_EXT_stencil_wrap" extensions
+{-# NOINLINE gl_EXT_stencil_wrap #-}
 
 pattern GL_DECR_WRAP_EXT = 0x8508
 
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/Subtexture.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/Subtexture.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/Subtexture.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/Subtexture.hs
@@ -17,9 +17,29 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/subtexture.txt GL_EXT_subtexture> extension is available.
+
 gl_EXT_subtexture :: Bool
 gl_EXT_subtexture = member "GL_EXT_subtexture" extensions
+{-# NOINLINE gl_EXT_subtexture #-}
 
+-- | Usage: @'glTexSubImage1DEXT' target level xoffset width format type pixels@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @xoffset@ is a @CheckedInt32@.
+--
+-- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Raw.Extension.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_ALPHA', 'Graphics.GL.Raw.Internal.Shared.GL_BLUE', 'Graphics.GL.Raw.Extension.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Raw.Extension.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Raw.Internal.Shared.GL_GREEN', 'Graphics.GL.Raw.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Raw.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Raw.Internal.Shared.GL_RED', 'Graphics.GL.Raw.Extension.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_RGB', 'Graphics.GL.Raw.Internal.Shared.GL_RGBA', 'Graphics.GL.Raw.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Raw.Extension.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
+--
+-- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_BITMAP', 'Graphics.GL.Raw.Internal.Shared.GL_BYTE', 'Graphics.GL.Raw.Internal.Shared.GL_FLOAT', 'Graphics.GL.Raw.Internal.Shared.GL_INT', 'Graphics.GL.Raw.Internal.Shared.GL_SHORT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
+--
+-- The length of @pixels@ should be @COMPSIZE(format,type,width)@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glTexSubImage1D'.
+
+
 glTexSubImage1DEXT :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
 glTexSubImage1DEXT = ffienumintintsizeienumenumPtrVIOV glTexSubImage1DEXTFunPtr
 
@@ -27,6 +47,25 @@
 glTexSubImage1DEXTFunPtr = unsafePerformIO (getProcAddress "glTexSubImage1DEXT")
 
 {-# NOINLINE glTexSubImage1DEXTFunPtr #-}
+
+-- | Usage: @'glTexSubImage2DEXT' target level xoffset yoffset width height format type pixels@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @xoffset@ is a @CheckedInt32@.
+--
+-- The parameter @yoffset@ is a @CheckedInt32@.
+--
+-- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Raw.Extension.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_ALPHA', 'Graphics.GL.Raw.Internal.Shared.GL_BLUE', 'Graphics.GL.Raw.Extension.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Raw.Extension.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Raw.Internal.Shared.GL_GREEN', 'Graphics.GL.Raw.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Raw.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Raw.Internal.Shared.GL_RED', 'Graphics.GL.Raw.Extension.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_RGB', 'Graphics.GL.Raw.Internal.Shared.GL_RGBA', 'Graphics.GL.Raw.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Raw.Extension.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
+--
+-- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_BITMAP', 'Graphics.GL.Raw.Internal.Shared.GL_BYTE', 'Graphics.GL.Raw.Internal.Shared.GL_FLOAT', 'Graphics.GL.Raw.Internal.Shared.GL_INT', 'Graphics.GL.Raw.Internal.Shared.GL_SHORT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
+--
+-- The length of @pixels@ should be @COMPSIZE(format,type,width,height)@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glTexSubImage2D'.
+
 
 glTexSubImage2DEXT :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
 glTexSubImage2DEXT = ffienumintintintsizeisizeienumenumPtrVIOV glTexSubImage2DEXTFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TessellationPointSize.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TessellationPointSize.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TessellationPointSize.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TessellationPointSize.hs
@@ -8,5 +8,8 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the GL_EXT_tessellation_point_size extension is available.
+
 gl_EXT_tessellation_point_size :: Bool
 gl_EXT_tessellation_point_size = member "GL_EXT_tessellation_point_size" extensions
+{-# NOINLINE gl_EXT_tessellation_point_size #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TessellationShader.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TessellationShader.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TessellationShader.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TessellationShader.hs
@@ -64,8 +64,16 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the GL_EXT_tessellation_shader extension is available.
+
 gl_EXT_tessellation_shader :: Bool
 gl_EXT_tessellation_shader = member "GL_EXT_tessellation_shader" extensions
+{-# NOINLINE gl_EXT_tessellation_shader #-}
+
+-- | Usage: @'glPatchParameteriEXT' pname value@
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glPatchParameteri'.
+
 
 glPatchParameteriEXT :: MonadIO m => GLenum -> GLint -> m ()
 glPatchParameteriEXT = ffienumintIOV glPatchParameteriEXTFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/Texture.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/Texture.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/Texture.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/Texture.hs
@@ -54,8 +54,11 @@
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/texture.txt GL_EXT_texture> extension is available.
+
 gl_EXT_texture :: Bool
 gl_EXT_texture = member "GL_EXT_texture" extensions
+{-# NOINLINE gl_EXT_texture #-}
 
 pattern GL_ALPHA12_EXT = 0x803D
 
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/Texture3D.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/Texture3D.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/Texture3D.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/Texture3D.hs
@@ -26,9 +26,31 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/texture3D.txt GL_EXT_texture3D> extension is available.
+
 gl_EXT_texture3D :: Bool
 gl_EXT_texture3D = member "GL_EXT_texture3D" extensions
+{-# NOINLINE gl_EXT_texture3D #-}
 
+-- | Usage: @'glTexImage3DEXT' target level internalformat width height depth border format type pixels@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @internalformat@ is a @PixelInternalFormat@.
+--
+-- The parameter @border@ is a @CheckedInt32@.
+--
+-- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Raw.Extension.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_ALPHA', 'Graphics.GL.Raw.Internal.Shared.GL_BLUE', 'Graphics.GL.Raw.Extension.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Raw.Extension.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Raw.Internal.Shared.GL_GREEN', 'Graphics.GL.Raw.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Raw.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Raw.Internal.Shared.GL_RED', 'Graphics.GL.Raw.Extension.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_RGB', 'Graphics.GL.Raw.Internal.Shared.GL_RGBA', 'Graphics.GL.Raw.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Raw.Extension.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
+--
+-- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_BITMAP', 'Graphics.GL.Raw.Internal.Shared.GL_BYTE', 'Graphics.GL.Raw.Internal.Shared.GL_FLOAT', 'Graphics.GL.Raw.Internal.Shared.GL_INT', 'Graphics.GL.Raw.Internal.Shared.GL_SHORT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
+--
+-- The length of @pixels@ should be @COMPSIZE(format,type,width,height,depth)@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glTexImage3D'.
+
+
 glTexImage3DEXT :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> m ()
 glTexImage3DEXT = ffienumintenumsizeisizeisizeiintenumenumPtrVIOV glTexImage3DEXTFunPtr
 
@@ -36,6 +58,27 @@
 glTexImage3DEXTFunPtr = unsafePerformIO (getProcAddress "glTexImage3DEXT")
 
 {-# NOINLINE glTexImage3DEXTFunPtr #-}
+
+-- | Usage: @'glTexSubImage3DEXT' target level xoffset yoffset zoffset width height depth format type pixels@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @xoffset@ is a @CheckedInt32@.
+--
+-- The parameter @yoffset@ is a @CheckedInt32@.
+--
+-- The parameter @zoffset@ is a @CheckedInt32@.
+--
+-- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Raw.Extension.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_ALPHA', 'Graphics.GL.Raw.Internal.Shared.GL_BLUE', 'Graphics.GL.Raw.Extension.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Raw.Extension.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Raw.Internal.Shared.GL_GREEN', 'Graphics.GL.Raw.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Raw.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Raw.Internal.Shared.GL_RED', 'Graphics.GL.Raw.Extension.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_RGB', 'Graphics.GL.Raw.Internal.Shared.GL_RGBA', 'Graphics.GL.Raw.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Raw.Extension.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
+--
+-- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_BITMAP', 'Graphics.GL.Raw.Internal.Shared.GL_BYTE', 'Graphics.GL.Raw.Internal.Shared.GL_FLOAT', 'Graphics.GL.Raw.Internal.Shared.GL_INT', 'Graphics.GL.Raw.Internal.Shared.GL_SHORT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
+--
+-- The length of @pixels@ should be @COMPSIZE(format,type,width,height,depth)@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glTexSubImage3D'.
+
 
 glTexSubImage3DEXT :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
 glTexSubImage3DEXT = ffienumintintintintsizeisizeisizeienumenumPtrVIOV glTexSubImage3DEXTFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureArray.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureArray.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureArray.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureArray.hs
@@ -21,8 +21,11 @@
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/texture_array.txt GL_EXT_texture_array> extension is available.
+
 gl_EXT_texture_array :: Bool
 gl_EXT_texture_array = member "GL_EXT_texture_array" extensions
+{-# NOINLINE gl_EXT_texture_array #-}
 
 pattern GL_COMPARE_REF_DEPTH_TO_TEXTURE_EXT = 0x884E
 
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureBorderClamp.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureBorderClamp.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureBorderClamp.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureBorderClamp.hs
@@ -26,9 +26,19 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the GL_EXT_texture_border_clamp extension is available.
+
 gl_EXT_texture_border_clamp :: Bool
 gl_EXT_texture_border_clamp = member "GL_EXT_texture_border_clamp" extensions
+{-# NOINLINE gl_EXT_texture_border_clamp #-}
 
+-- | Usage: @'glGetSamplerParameterIivEXT' sampler pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glGetSamplerParameterIiv'.
+
+
 glGetSamplerParameterIivEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
 glGetSamplerParameterIivEXT = ffiuintenumPtrintIOV glGetSamplerParameterIivEXTFunPtr
 
@@ -37,6 +47,13 @@
 
 {-# NOINLINE glGetSamplerParameterIivEXTFunPtr #-}
 
+-- | Usage: @'glGetSamplerParameterIuivEXT' sampler pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glGetSamplerParameterIuiv'.
+
+
 glGetSamplerParameterIuivEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()
 glGetSamplerParameterIuivEXT = ffiuintenumPtruintIOV glGetSamplerParameterIuivEXTFunPtr
 
@@ -45,6 +62,13 @@
 
 {-# NOINLINE glGetSamplerParameterIuivEXTFunPtr #-}
 
+-- | Usage: @'glSamplerParameterIivEXT' sampler pname param@
+--
+-- The length of @param@ should be @COMPSIZE(pname)@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glSamplerParameterIiv'.
+
+
 glSamplerParameterIivEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
 glSamplerParameterIivEXT = ffiuintenumPtrintIOV glSamplerParameterIivEXTFunPtr
 
@@ -52,6 +76,13 @@
 glSamplerParameterIivEXTFunPtr = unsafePerformIO (getProcAddress "glSamplerParameterIivEXT")
 
 {-# NOINLINE glSamplerParameterIivEXTFunPtr #-}
+
+-- | Usage: @'glSamplerParameterIuivEXT' sampler pname param@
+--
+-- The length of @param@ should be @COMPSIZE(pname)@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glSamplerParameterIuiv'.
+
 
 glSamplerParameterIuivEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()
 glSamplerParameterIuivEXT = ffiuintenumPtruintIOV glSamplerParameterIuivEXTFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureBuffer.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureBuffer.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureBuffer.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureBuffer.hs
@@ -32,8 +32,20 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the GL_EXT_texture_buffer extension is available.
+
 gl_EXT_texture_buffer :: Bool
 gl_EXT_texture_buffer = member "GL_EXT_texture_buffer" extensions
+{-# NOINLINE gl_EXT_texture_buffer #-}
+
+-- | Usage: @'glTexBufferRangeEXT' target internalformat buffer offset size@
+--
+-- The parameter @offset@ is a @BufferOffset@.
+--
+-- The parameter @size@ is a @BufferSize@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glTexBufferRange'.
+
 
 glTexBufferRangeEXT :: MonadIO m => GLenum -> GLenum -> GLuint -> GLintptr -> GLsizeiptr -> m ()
 glTexBufferRangeEXT = ffienumenumuintintptrsizeiptrIOV glTexBufferRangeEXTFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureBufferObject.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureBufferObject.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureBufferObject.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureBufferObject.hs
@@ -17,7 +17,10 @@
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/texture_buffer_object.txt GL_EXT_texture_buffer_object> extension is available.
+
 gl_EXT_texture_buffer_object :: Bool
 gl_EXT_texture_buffer_object = member "GL_EXT_texture_buffer_object" extensions
+{-# NOINLINE gl_EXT_texture_buffer_object #-}
 
 pattern GL_TEXTURE_BUFFER_FORMAT_EXT = 0x8C2E
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureCompressionDxt1.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureCompressionDxt1.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureCompressionDxt1.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureCompressionDxt1.hs
@@ -13,5 +13,8 @@
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/texture_compression_dxt1.txt GL_EXT_texture_compression_dxt1> extension is available.
+
 gl_EXT_texture_compression_dxt1 :: Bool
 gl_EXT_texture_compression_dxt1 = member "GL_EXT_texture_compression_dxt1" extensions
+{-# NOINLINE gl_EXT_texture_compression_dxt1 #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureCompressionLatc.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureCompressionLatc.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureCompressionLatc.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureCompressionLatc.hs
@@ -14,8 +14,11 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/texture_compression_latc.txt GL_EXT_texture_compression_latc> extension is available.
+
 gl_EXT_texture_compression_latc :: Bool
 gl_EXT_texture_compression_latc = member "GL_EXT_texture_compression_latc" extensions
+{-# NOINLINE gl_EXT_texture_compression_latc #-}
 
 pattern GL_COMPRESSED_LUMINANCE_ALPHA_LATC2_EXT = 0x8C72
 
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureCompressionRgtc.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureCompressionRgtc.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureCompressionRgtc.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureCompressionRgtc.hs
@@ -14,8 +14,11 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/texture_compression_rgtc.txt GL_EXT_texture_compression_rgtc> extension is available.
+
 gl_EXT_texture_compression_rgtc :: Bool
 gl_EXT_texture_compression_rgtc = member "GL_EXT_texture_compression_rgtc" extensions
+{-# NOINLINE gl_EXT_texture_compression_rgtc #-}
 
 pattern GL_COMPRESSED_RED_GREEN_RGTC2_EXT = 0x8DBD
 
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureCompressionS3tc.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureCompressionS3tc.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureCompressionS3tc.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureCompressionS3tc.hs
@@ -15,8 +15,11 @@
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/texture_compression_s3tc.txt GL_EXT_texture_compression_s3tc> extension is available.
+
 gl_EXT_texture_compression_s3tc :: Bool
 gl_EXT_texture_compression_s3tc = member "GL_EXT_texture_compression_s3tc" extensions
+{-# NOINLINE gl_EXT_texture_compression_s3tc #-}
 
 pattern GL_COMPRESSED_RGBA_S3TC_DXT3_EXT = 0x83F2
 
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureCubeMap.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureCubeMap.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureCubeMap.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureCubeMap.hs
@@ -22,8 +22,11 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the GL_EXT_texture_cube_map extension is available.
+
 gl_EXT_texture_cube_map :: Bool
 gl_EXT_texture_cube_map = member "GL_EXT_texture_cube_map" extensions
+{-# NOINLINE gl_EXT_texture_cube_map #-}
 
 pattern GL_MAX_CUBE_MAP_TEXTURE_SIZE_EXT = 0x851C
 
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureCubeMapArray.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureCubeMapArray.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureCubeMapArray.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureCubeMapArray.hs
@@ -20,8 +20,11 @@
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
 
+-- | Checks that the GL_EXT_texture_cube_map_array extension is available.
+
 gl_EXT_texture_cube_map_array :: Bool
 gl_EXT_texture_cube_map_array = member "GL_EXT_texture_cube_map_array" extensions
+{-# NOINLINE gl_EXT_texture_cube_map_array #-}
 
 pattern GL_INT_SAMPLER_CUBE_MAP_ARRAY_EXT = 0x900E
 
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureEnvAdd.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureEnvAdd.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureEnvAdd.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureEnvAdd.hs
@@ -8,5 +8,8 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/texture_env_add.txt GL_EXT_texture_env_add> extension is available.
+
 gl_EXT_texture_env_add :: Bool
 gl_EXT_texture_env_add = member "GL_EXT_texture_env_add" extensions
+{-# NOINLINE gl_EXT_texture_env_add #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureEnvCombine.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureEnvCombine.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureEnvCombine.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureEnvCombine.hs
@@ -31,8 +31,11 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/texture_env_combine.txt GL_EXT_texture_env_combine> extension is available.
+
 gl_EXT_texture_env_combine :: Bool
 gl_EXT_texture_env_combine = member "GL_EXT_texture_env_combine" extensions
+{-# NOINLINE gl_EXT_texture_env_combine #-}
 
 pattern GL_ADD_SIGNED_EXT = 0x8574
 
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureEnvDot3.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureEnvDot3.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureEnvDot3.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureEnvDot3.hs
@@ -12,8 +12,11 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/texture_env_dot3.txt GL_EXT_texture_env_dot3> extension is available.
+
 gl_EXT_texture_env_dot3 :: Bool
 gl_EXT_texture_env_dot3 = member "GL_EXT_texture_env_dot3" extensions
+{-# NOINLINE gl_EXT_texture_env_dot3 #-}
 
 pattern GL_DOT3_RGBA_EXT = 0x8741
 
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureFilterAnisotropic.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureFilterAnisotropic.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureFilterAnisotropic.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureFilterAnisotropic.hs
@@ -12,8 +12,11 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/texture_filter_anisotropic.txt GL_EXT_texture_filter_anisotropic> extension is available.
+
 gl_EXT_texture_filter_anisotropic :: Bool
 gl_EXT_texture_filter_anisotropic = member "GL_EXT_texture_filter_anisotropic" extensions
+{-# NOINLINE gl_EXT_texture_filter_anisotropic #-}
 
 pattern GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT = 0x84FF
 
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureFilterMinmax.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureFilterMinmax.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureFilterMinmax.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureFilterMinmax.hs
@@ -18,5 +18,8 @@
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/texture_filter_minmax.txt GL_EXT_texture_filter_minmax> extension is available.
+
 gl_EXT_texture_filter_minmax :: Bool
 gl_EXT_texture_filter_minmax = member "GL_EXT_texture_filter_minmax" extensions
+{-# NOINLINE gl_EXT_texture_filter_minmax #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureFormatBGRA8888.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureFormatBGRA8888.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureFormatBGRA8888.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureFormatBGRA8888.hs
@@ -12,5 +12,8 @@
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
 
+-- | Checks that the GL_EXT_texture_format_BGRA8888 extension is available.
+
 gl_EXT_texture_format_BGRA8888 :: Bool
 gl_EXT_texture_format_BGRA8888 = member "GL_EXT_texture_format_BGRA8888" extensions
+{-# NOINLINE gl_EXT_texture_format_BGRA8888 #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureInteger.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureInteger.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureInteger.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureInteger.hs
@@ -69,9 +69,15 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/texture_integer.txt GL_EXT_texture_integer> extension is available.
+
 gl_EXT_texture_integer :: Bool
 gl_EXT_texture_integer = member "GL_EXT_texture_integer" extensions
+{-# NOINLINE gl_EXT_texture_integer #-}
 
+-- | Usage: @'glClearColorIiEXT' red green blue alpha@
+
+
 glClearColorIiEXT :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()
 glClearColorIiEXT = ffiintintintintIOV glClearColorIiEXTFunPtr
 
@@ -79,6 +85,9 @@
 glClearColorIiEXTFunPtr = unsafePerformIO (getProcAddress "glClearColorIiEXT")
 
 {-# NOINLINE glClearColorIiEXTFunPtr #-}
+
+-- | Usage: @'glClearColorIuiEXT' red green blue alpha@
+
 
 glClearColorIuiEXT :: MonadIO m => GLuint -> GLuint -> GLuint -> GLuint -> m ()
 glClearColorIuiEXT = ffiuintuintuintuintIOV glClearColorIuiEXTFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureLodBias.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureLodBias.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureLodBias.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureLodBias.hs
@@ -13,8 +13,11 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/texture_lod_bias.txt GL_EXT_texture_lod_bias> extension is available.
+
 gl_EXT_texture_lod_bias :: Bool
 gl_EXT_texture_lod_bias = member "GL_EXT_texture_lod_bias" extensions
+{-# NOINLINE gl_EXT_texture_lod_bias #-}
 
 pattern GL_MAX_TEXTURE_LOD_BIAS_EXT = 0x84FD
 
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureMirrorClamp.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureMirrorClamp.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureMirrorClamp.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureMirrorClamp.hs
@@ -13,8 +13,11 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/texture_mirror_clamp.txt GL_EXT_texture_mirror_clamp> extension is available.
+
 gl_EXT_texture_mirror_clamp :: Bool
 gl_EXT_texture_mirror_clamp = member "GL_EXT_texture_mirror_clamp" extensions
+{-# NOINLINE gl_EXT_texture_mirror_clamp #-}
 
 pattern GL_MIRROR_CLAMP_EXT = 0x8742
 
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureObject.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureObject.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureObject.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureObject.hs
@@ -26,9 +26,23 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/texture_object.txt GL_EXT_texture_object> extension is available.
+
 gl_EXT_texture_object :: Bool
 gl_EXT_texture_object = member "GL_EXT_texture_object" extensions
+{-# NOINLINE gl_EXT_texture_object #-}
 
+-- | Usage: @'glAreTexturesResidentEXT' n textures residences@
+--
+-- The parameter @textures@ is a @Texture@.
+--
+-- The parameter @residences@ is a @Boolean@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FALSE', 'Graphics.GL.Raw.Internal.Shared.GL_TRUE'.
+--
+-- The length of @textures@ should be @n@.
+--
+-- The length of @residences@ should be @n@.
+
+
 glAreTexturesResidentEXT :: MonadIO m => GLsizei -> Ptr GLuint -> Ptr GLboolean -> m GLboolean
 glAreTexturesResidentEXT = ffisizeiPtruintPtrbooleanIOboolean glAreTexturesResidentEXTFunPtr
 
@@ -37,6 +51,15 @@
 
 {-# NOINLINE glAreTexturesResidentEXTFunPtr #-}
 
+-- | Usage: @'glBindTextureEXT' target texture@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @texture@ is a @Texture@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glBindTexture'.
+
+
 glBindTextureEXT :: MonadIO m => GLenum -> GLuint -> m ()
 glBindTextureEXT = ffienumuintIOV glBindTextureEXTFunPtr
 
@@ -45,6 +68,13 @@
 
 {-# NOINLINE glBindTextureEXTFunPtr #-}
 
+-- | Usage: @'glDeleteTexturesEXT' n textures@
+--
+-- The parameter @textures@ is a @Texture@.
+--
+-- The length of @textures@ should be @n@.
+
+
 glDeleteTexturesEXT :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
 glDeleteTexturesEXT = ffisizeiPtruintIOV glDeleteTexturesEXTFunPtr
 
@@ -53,6 +83,13 @@
 
 {-# NOINLINE glDeleteTexturesEXTFunPtr #-}
 
+-- | Usage: @'glGenTexturesEXT' n textures@
+--
+-- The parameter @textures@ is a @Texture@.
+--
+-- The length of @textures@ should be @n@.
+
+
 glGenTexturesEXT :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
 glGenTexturesEXT = ffisizeiPtruintIOV glGenTexturesEXTFunPtr
 
@@ -61,6 +98,11 @@
 
 {-# NOINLINE glGenTexturesEXTFunPtr #-}
 
+-- | Usage: @'glIsTextureEXT' texture@
+--
+-- The parameter @texture@ is a @Texture@.
+
+
 glIsTextureEXT :: MonadIO m => GLuint -> m GLboolean
 glIsTextureEXT = ffiuintIOboolean glIsTextureEXTFunPtr
 
@@ -68,6 +110,19 @@
 glIsTextureEXTFunPtr = unsafePerformIO (getProcAddress "glIsTextureEXT")
 
 {-# NOINLINE glIsTextureEXTFunPtr #-}
+
+-- | Usage: @'glPrioritizeTexturesEXT' n textures priorities@
+--
+-- The parameter @textures@ is a @Texture@.
+--
+-- The parameter @priorities@ is a @ClampedFloat32@.
+--
+-- The length of @textures@ should be @n@.
+--
+-- The length of @priorities@ should be @n@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glPrioritizeTextures'.
+
 
 glPrioritizeTexturesEXT :: MonadIO m => GLsizei -> Ptr GLuint -> Ptr GLclampf -> m ()
 glPrioritizeTexturesEXT = ffisizeiPtruintPtrclampfIOV glPrioritizeTexturesEXTFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TexturePerturbNormal.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TexturePerturbNormal.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TexturePerturbNormal.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TexturePerturbNormal.hs
@@ -18,8 +18,16 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/texture_perturb_normal.txt GL_EXT_texture_perturb_normal> extension is available.
+
 gl_EXT_texture_perturb_normal :: Bool
 gl_EXT_texture_perturb_normal = member "GL_EXT_texture_perturb_normal" extensions
+{-# NOINLINE gl_EXT_texture_perturb_normal #-}
+
+-- | Usage: @'glTextureNormalEXT' mode@
+--
+-- The parameter @mode@ is a @TextureNormalModeEXT@.
+
 
 glTextureNormalEXT :: MonadIO m => GLenum -> m ()
 glTextureNormalEXT = ffienumIOV glTextureNormalEXTFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureRg.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureRg.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureRg.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureRg.hs
@@ -15,8 +15,11 @@
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
 
+-- | Checks that the GL_EXT_texture_rg extension is available.
+
 gl_EXT_texture_rg :: Bool
 gl_EXT_texture_rg = member "GL_EXT_texture_rg" extensions
+{-# NOINLINE gl_EXT_texture_rg #-}
 
 pattern GL_RED_EXT = 0x1903
 
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureSRGB.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureSRGB.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureSRGB.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureSRGB.hs
@@ -27,8 +27,11 @@
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/texture_sRGB.txt GL_EXT_texture_sRGB> extension is available.
+
 gl_EXT_texture_sRGB :: Bool
 gl_EXT_texture_sRGB = member "GL_EXT_texture_sRGB" extensions
+{-# NOINLINE gl_EXT_texture_sRGB #-}
 
 pattern GL_COMPRESSED_SLUMINANCE_ALPHA_EXT = 0x8C4B
 
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureSRGBDecode.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureSRGBDecode.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureSRGBDecode.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureSRGBDecode.hs
@@ -13,8 +13,11 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/texture_sRGB_decode.txt GL_EXT_texture_sRGB_decode> extension is available.
+
 gl_EXT_texture_sRGB_decode :: Bool
 gl_EXT_texture_sRGB_decode = member "GL_EXT_texture_sRGB_decode" extensions
+{-# NOINLINE gl_EXT_texture_sRGB_decode #-}
 
 pattern GL_DECODE_EXT = 0x8A49
 
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureSharedExponent.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureSharedExponent.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureSharedExponent.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureSharedExponent.hs
@@ -13,8 +13,11 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/texture_shared_exponent.txt GL_EXT_texture_shared_exponent> extension is available.
+
 gl_EXT_texture_shared_exponent :: Bool
 gl_EXT_texture_shared_exponent = member "GL_EXT_texture_shared_exponent" extensions
+{-# NOINLINE gl_EXT_texture_shared_exponent #-}
 
 pattern GL_RGB9_E5_EXT = 0x8C3D
 
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureSnorm.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureSnorm.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureSnorm.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureSnorm.hs
@@ -36,8 +36,11 @@
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/texture_snorm.txt GL_EXT_texture_snorm> extension is available.
+
 gl_EXT_texture_snorm :: Bool
 gl_EXT_texture_snorm = member "GL_EXT_texture_snorm" extensions
+{-# NOINLINE gl_EXT_texture_snorm #-}
 
 pattern GL_ALPHA16_SNORM = 0x9018
 
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureStorage.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureStorage.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureStorage.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureStorage.hs
@@ -45,9 +45,17 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the GL_EXT_texture_storage extension is available.
+
 gl_EXT_texture_storage :: Bool
 gl_EXT_texture_storage = member "GL_EXT_texture_storage" extensions
+{-# NOINLINE gl_EXT_texture_storage #-}
 
+-- | Usage: @'glTexStorage1DEXT' target levels internalformat width@
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glTexStorage1D'.
+
+
 glTexStorage1DEXT :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> m ()
 glTexStorage1DEXT = ffienumsizeienumsizeiIOV glTexStorage1DEXTFunPtr
 
@@ -56,6 +64,11 @@
 
 {-# NOINLINE glTexStorage1DEXTFunPtr #-}
 
+-- | Usage: @'glTexStorage2DEXT' target levels internalformat width height@
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glTexStorage2D'.
+
+
 glTexStorage2DEXT :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()
 glTexStorage2DEXT = ffienumsizeienumsizeisizeiIOV glTexStorage2DEXTFunPtr
 
@@ -63,6 +76,11 @@
 glTexStorage2DEXTFunPtr = unsafePerformIO (getProcAddress "glTexStorage2DEXT")
 
 {-# NOINLINE glTexStorage2DEXTFunPtr #-}
+
+-- | Usage: @'glTexStorage3DEXT' target levels internalformat width height depth@
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glTexStorage3D'.
+
 
 glTexStorage3DEXT :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> m ()
 glTexStorage3DEXT = ffienumsizeienumsizeisizeisizeiIOV glTexStorage3DEXTFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureSwizzle.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureSwizzle.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureSwizzle.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureSwizzle.hs
@@ -15,8 +15,11 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/texture_swizzle.txt GL_EXT_texture_swizzle> extension is available.
+
 gl_EXT_texture_swizzle :: Bool
 gl_EXT_texture_swizzle = member "GL_EXT_texture_swizzle" extensions
+{-# NOINLINE gl_EXT_texture_swizzle #-}
 
 pattern GL_TEXTURE_SWIZZLE_A_EXT = 0x8E45
 
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureType2101010REV.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureType2101010REV.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureType2101010REV.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureType2101010REV.hs
@@ -11,7 +11,10 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the GL_EXT_texture_type_2_10_10_10_REV extension is available.
+
 gl_EXT_texture_type_2_10_10_10_REV :: Bool
 gl_EXT_texture_type_2_10_10_10_REV = member "GL_EXT_texture_type_2_10_10_10_REV" extensions
+{-# NOINLINE gl_EXT_texture_type_2_10_10_10_REV #-}
 
 pattern GL_UNSIGNED_INT_2_10_10_10_REV_EXT = 0x8368
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureView.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureView.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureView.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureView.hs
@@ -22,8 +22,16 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the GL_EXT_texture_view extension is available.
+
 gl_EXT_texture_view :: Bool
 gl_EXT_texture_view = member "GL_EXT_texture_view" extensions
+{-# NOINLINE gl_EXT_texture_view #-}
+
+-- | Usage: @'glTextureViewEXT' texture target origtexture internalformat minlevel numlevels minlayer numlayers@
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glTextureView'.
+
 
 glTextureViewEXT :: MonadIO m => GLuint -> GLenum -> GLuint -> GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
 glTextureViewEXT = ffiuintenumuintenumuintuintuintuintIOV glTextureViewEXTFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TimerQuery.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TimerQuery.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TimerQuery.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TimerQuery.hs
@@ -14,5 +14,8 @@
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/timer_query.txt GL_EXT_timer_query> extension is available.
+
 gl_EXT_timer_query :: Bool
 gl_EXT_timer_query = member "GL_EXT_timer_query" extensions
+{-# NOINLINE gl_EXT_timer_query #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TransformFeedback.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TransformFeedback.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TransformFeedback.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TransformFeedback.hs
@@ -38,9 +38,17 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/transform_feedback.txt GL_EXT_transform_feedback> extension is available.
+
 gl_EXT_transform_feedback :: Bool
 gl_EXT_transform_feedback = member "GL_EXT_transform_feedback" extensions
+{-# NOINLINE gl_EXT_transform_feedback #-}
 
+-- | Usage: @'glBeginTransformFeedbackEXT' primitiveMode@
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glBeginTransformFeedback'.
+
+
 glBeginTransformFeedbackEXT :: MonadIO m => GLenum -> m ()
 glBeginTransformFeedbackEXT = ffienumIOV glBeginTransformFeedbackEXTFunPtr
 
@@ -49,6 +57,11 @@
 
 {-# NOINLINE glBeginTransformFeedbackEXTFunPtr #-}
 
+-- | Usage: @'glBindBufferBaseEXT' target index buffer@
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glBindBufferBase'.
+
+
 glBindBufferBaseEXT :: MonadIO m => GLenum -> GLuint -> GLuint -> m ()
 glBindBufferBaseEXT = ffienumuintuintIOV glBindBufferBaseEXTFunPtr
 
@@ -57,6 +70,11 @@
 
 {-# NOINLINE glBindBufferBaseEXTFunPtr #-}
 
+-- | Usage: @'glBindBufferOffsetEXT' target index buffer offset@
+--
+-- The parameter @offset@ is a @BufferOffset@.
+
+
 glBindBufferOffsetEXT :: MonadIO m => GLenum -> GLuint -> GLuint -> GLintptr -> m ()
 glBindBufferOffsetEXT = ffienumuintuintintptrIOV glBindBufferOffsetEXTFunPtr
 
@@ -65,6 +83,15 @@
 
 {-# NOINLINE glBindBufferOffsetEXTFunPtr #-}
 
+-- | Usage: @'glBindBufferRangeEXT' target index buffer offset size@
+--
+-- The parameter @offset@ is a @BufferOffset@.
+--
+-- The parameter @size@ is a @BufferSize@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glBindBufferRange'.
+
+
 glBindBufferRangeEXT :: MonadIO m => GLenum -> GLuint -> GLuint -> GLintptr -> GLsizeiptr -> m ()
 glBindBufferRangeEXT = ffienumuintuintintptrsizeiptrIOV glBindBufferRangeEXTFunPtr
 
@@ -73,6 +100,11 @@
 
 {-# NOINLINE glBindBufferRangeEXTFunPtr #-}
 
+-- | Usage: @'glEndTransformFeedbackEXT'@
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glEndTransformFeedback'.
+
+
 glEndTransformFeedbackEXT :: MonadIO m => m ()
 glEndTransformFeedbackEXT = ffiIOV glEndTransformFeedbackEXTFunPtr
 
@@ -81,6 +113,19 @@
 
 {-# NOINLINE glEndTransformFeedbackEXTFunPtr #-}
 
+-- | Usage: @'glGetTransformFeedbackVaryingEXT' program index bufSize length size type name@
+--
+-- The length of @length@ should be @1@.
+--
+-- The length of @size@ should be @1@.
+--
+-- The length of @type@ should be @1@.
+--
+-- The length of @name@ should be @bufSize@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glGetTransformFeedbackVarying'.
+
+
 glGetTransformFeedbackVaryingEXT :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLsizei -> Ptr GLenum -> Ptr GLchar -> m ()
 glGetTransformFeedbackVaryingEXT = ffiuintuintsizeiPtrsizeiPtrsizeiPtrenumPtrcharIOV glGetTransformFeedbackVaryingEXTFunPtr
 
@@ -89,10 +134,17 @@
 
 {-# NOINLINE glGetTransformFeedbackVaryingEXTFunPtr #-}
 
-glTransformFeedbackVaryingsEXT :: MonadIO m => GLuint -> GLsizei -> Ptr GLchar -> GLenum -> m ()
-glTransformFeedbackVaryingsEXT = ffiuintsizeiPtrcharenumIOV glTransformFeedbackVaryingsEXTFunPtr
+-- | Usage: @'glTransformFeedbackVaryingsEXT' program count varyings bufferMode@
+--
+-- The length of @varyings@ should be @count@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glTransformFeedbackVaryings'.
 
-glTransformFeedbackVaryingsEXTFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLchar -> GLenum -> IO ())
+
+glTransformFeedbackVaryingsEXT :: MonadIO m => GLuint -> GLsizei -> Ptr (Ptr GLchar) -> GLenum -> m ()
+glTransformFeedbackVaryingsEXT = ffiuintsizeiPtrPtrcharenumIOV glTransformFeedbackVaryingsEXTFunPtr
+
+glTransformFeedbackVaryingsEXTFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr (Ptr GLchar) -> GLenum -> IO ())
 glTransformFeedbackVaryingsEXTFunPtr = unsafePerformIO (getProcAddress "glTransformFeedbackVaryingsEXT")
 
 {-# NOINLINE glTransformFeedbackVaryingsEXTFunPtr #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/UnpackSubimage.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/UnpackSubimage.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/UnpackSubimage.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/UnpackSubimage.hs
@@ -13,8 +13,11 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the GL_EXT_unpack_subimage extension is available.
+
 gl_EXT_unpack_subimage :: Bool
 gl_EXT_unpack_subimage = member "GL_EXT_unpack_subimage" extensions
+{-# NOINLINE gl_EXT_unpack_subimage #-}
 
 pattern GL_UNPACK_ROW_LENGTH_EXT = 0x0CF2
 
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/VertexArray.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/VertexArray.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/VertexArray.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/VertexArray.hs
@@ -56,9 +56,17 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/vertex_array.txt GL_EXT_vertex_array> extension is available.
+
 gl_EXT_vertex_array :: Bool
 gl_EXT_vertex_array = member "GL_EXT_vertex_array" extensions
+{-# NOINLINE gl_EXT_vertex_array #-}
 
+-- | Usage: @'glArrayElementEXT' i@
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glArrayElement'.
+
+
 glArrayElementEXT :: MonadIO m => GLint -> m ()
 glArrayElementEXT = ffiintIOV glArrayElementEXTFunPtr
 
@@ -67,6 +75,13 @@
 
 {-# NOINLINE glArrayElementEXTFunPtr #-}
 
+-- | Usage: @'glColorPointerEXT' size type stride count pointer@
+--
+-- The parameter @type@ is a @ColorPointerType@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_BYTE', 'Graphics.GL.Raw.Internal.Shared.GL_DOUBLE', 'Graphics.GL.Raw.Internal.Shared.GL_FLOAT', 'Graphics.GL.Raw.Internal.Shared.GL_INT', 'Graphics.GL.Raw.Internal.Shared.GL_SHORT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT'.
+--
+-- The length of @pointer@ should be @COMPSIZE(size,type,stride,count)@.
+
+
 glColorPointerEXT :: MonadIO m => GLint -> GLenum -> GLsizei -> GLsizei -> Ptr () -> m ()
 glColorPointerEXT = ffiintenumsizeisizeiPtrVIOV glColorPointerEXTFunPtr
 
@@ -75,6 +90,13 @@
 
 {-# NOINLINE glColorPointerEXTFunPtr #-}
 
+-- | Usage: @'glDrawArraysEXT' mode first count@
+--
+-- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_LINES', 'Graphics.GL.Raw.Profile.Core32.GL_LINES_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Raw.Profile.Core32.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PATCHES', 'Graphics.GL.Raw.Extension.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_POINTS', 'Graphics.GL.Raw.Internal.Shared.GL_POLYGON', 'Graphics.GL.Raw.Internal.Shared.GL_QUADS', 'Graphics.GL.Raw.Extension.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Raw.Profile.Core32.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Raw.Profile.Core32.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glDrawArrays'.
+
+
 glDrawArraysEXT :: MonadIO m => GLenum -> GLint -> GLsizei -> m ()
 glDrawArraysEXT = ffienumintsizeiIOV glDrawArraysEXTFunPtr
 
@@ -83,6 +105,13 @@
 
 {-# NOINLINE glDrawArraysEXTFunPtr #-}
 
+-- | Usage: @'glEdgeFlagPointerEXT' stride count pointer@
+--
+-- The parameter @pointer@ is a @Boolean@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FALSE', 'Graphics.GL.Raw.Internal.Shared.GL_TRUE'.
+--
+-- The length of @pointer@ should be @COMPSIZE(stride,count)@.
+
+
 glEdgeFlagPointerEXT :: MonadIO m => GLsizei -> GLsizei -> Ptr GLboolean -> m ()
 glEdgeFlagPointerEXT = ffisizeisizeiPtrbooleanIOV glEdgeFlagPointerEXTFunPtr
 
@@ -91,14 +120,30 @@
 
 {-# NOINLINE glEdgeFlagPointerEXTFunPtr #-}
 
-glGetPointervEXT :: MonadIO m => GLenum -> Ptr () -> m ()
-glGetPointervEXT = ffienumPtrVIOV glGetPointervEXTFunPtr
+-- | Usage: @'glGetPointervEXT' pname params@
+--
+-- The parameter @pname@ is a @GetPointervPName@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_ARRAY_POINTER', 'Graphics.GL.Raw.Extension.EXT.VertexArray.GL_COLOR_ARRAY_POINTER_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_EDGE_FLAG_ARRAY_POINTER', 'Graphics.GL.Raw.Extension.EXT.VertexArray.GL_EDGE_FLAG_ARRAY_POINTER_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_FEEDBACK_BUFFER_POINTER', 'Graphics.GL.Raw.Internal.Shared.GL_INDEX_ARRAY_POINTER', 'Graphics.GL.Raw.Extension.EXT.VertexArray.GL_INDEX_ARRAY_POINTER_EXT', 'Graphics.GL.Raw.Extension.SGIX.Instruments.GL_INSTRUMENT_BUFFER_POINTER_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_NORMAL_ARRAY_POINTER', 'Graphics.GL.Raw.Extension.EXT.VertexArray.GL_NORMAL_ARRAY_POINTER_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_SELECTION_BUFFER_POINTER', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_COORD_ARRAY_POINTER', 'Graphics.GL.Raw.Extension.EXT.VertexArray.GL_TEXTURE_COORD_ARRAY_POINTER_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_VERTEX_ARRAY_POINTER', 'Graphics.GL.Raw.Extension.EXT.VertexArray.GL_VERTEX_ARRAY_POINTER_EXT'.
+--
+-- The length of @params@ should be @1@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glGetPointerv'.
 
-glGetPointervEXTFunPtr :: FunPtr (GLenum -> Ptr () -> IO ())
+
+glGetPointervEXT :: MonadIO m => GLenum -> Ptr (Ptr ()) -> m ()
+glGetPointervEXT = ffienumPtrPtrVIOV glGetPointervEXTFunPtr
+
+glGetPointervEXTFunPtr :: FunPtr (GLenum -> Ptr (Ptr ()) -> IO ())
 glGetPointervEXTFunPtr = unsafePerformIO (getProcAddress "glGetPointervEXT")
 
 {-# NOINLINE glGetPointervEXTFunPtr #-}
 
+-- | Usage: @'glIndexPointerEXT' type stride count pointer@
+--
+-- The parameter @type@ is a @IndexPointerType@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_DOUBLE', 'Graphics.GL.Raw.Internal.Shared.GL_FLOAT', 'Graphics.GL.Raw.Internal.Shared.GL_INT', 'Graphics.GL.Raw.Internal.Shared.GL_SHORT'.
+--
+-- The length of @pointer@ should be @COMPSIZE(type,stride,count)@.
+
+
 glIndexPointerEXT :: MonadIO m => GLenum -> GLsizei -> GLsizei -> Ptr () -> m ()
 glIndexPointerEXT = ffienumsizeisizeiPtrVIOV glIndexPointerEXTFunPtr
 
@@ -107,6 +152,13 @@
 
 {-# NOINLINE glIndexPointerEXTFunPtr #-}
 
+-- | Usage: @'glNormalPointerEXT' type stride count pointer@
+--
+-- The parameter @type@ is a @NormalPointerType@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_BYTE', 'Graphics.GL.Raw.Internal.Shared.GL_DOUBLE', 'Graphics.GL.Raw.Internal.Shared.GL_FLOAT', 'Graphics.GL.Raw.Internal.Shared.GL_INT', 'Graphics.GL.Raw.Internal.Shared.GL_SHORT'.
+--
+-- The length of @pointer@ should be @COMPSIZE(type,stride,count)@.
+
+
 glNormalPointerEXT :: MonadIO m => GLenum -> GLsizei -> GLsizei -> Ptr () -> m ()
 glNormalPointerEXT = ffienumsizeisizeiPtrVIOV glNormalPointerEXTFunPtr
 
@@ -115,6 +167,13 @@
 
 {-# NOINLINE glNormalPointerEXTFunPtr #-}
 
+-- | Usage: @'glTexCoordPointerEXT' size type stride count pointer@
+--
+-- The parameter @type@ is a @TexCoordPointerType@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_DOUBLE', 'Graphics.GL.Raw.Internal.Shared.GL_FLOAT', 'Graphics.GL.Raw.Internal.Shared.GL_INT', 'Graphics.GL.Raw.Internal.Shared.GL_SHORT'.
+--
+-- The length of @pointer@ should be @COMPSIZE(size,type,stride,count)@.
+
+
 glTexCoordPointerEXT :: MonadIO m => GLint -> GLenum -> GLsizei -> GLsizei -> Ptr () -> m ()
 glTexCoordPointerEXT = ffiintenumsizeisizeiPtrVIOV glTexCoordPointerEXTFunPtr
 
@@ -122,6 +181,13 @@
 glTexCoordPointerEXTFunPtr = unsafePerformIO (getProcAddress "glTexCoordPointerEXT")
 
 {-# NOINLINE glTexCoordPointerEXTFunPtr #-}
+
+-- | Usage: @'glVertexPointerEXT' size type stride count pointer@
+--
+-- The parameter @type@ is a @VertexPointerType@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_DOUBLE', 'Graphics.GL.Raw.Internal.Shared.GL_FLOAT', 'Graphics.GL.Raw.Internal.Shared.GL_INT', 'Graphics.GL.Raw.Internal.Shared.GL_SHORT'.
+--
+-- The length of @pointer@ should be @COMPSIZE(size,type,stride,count)@.
+
 
 glVertexPointerEXT :: MonadIO m => GLint -> GLenum -> GLsizei -> GLsizei -> Ptr () -> m ()
 glVertexPointerEXT = ffiintenumsizeisizeiPtrVIOV glVertexPointerEXTFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/VertexArrayBgra.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/VertexArrayBgra.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/VertexArrayBgra.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/VertexArrayBgra.hs
@@ -12,5 +12,8 @@
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/vertex_array_bgra.txt GL_EXT_vertex_array_bgra> extension is available.
+
 gl_EXT_vertex_array_bgra :: Bool
 gl_EXT_vertex_array_bgra = member "GL_EXT_vertex_array_bgra" extensions
+{-# NOINLINE gl_EXT_vertex_array_bgra #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/VertexAttrib64bit.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/VertexAttrib64bit.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/VertexAttrib64bit.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/VertexAttrib64bit.hs
@@ -39,9 +39,19 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/vertex_attrib_64bit.txt GL_EXT_vertex_attrib_64bit> extension is available.
+
 gl_EXT_vertex_attrib_64bit :: Bool
 gl_EXT_vertex_attrib_64bit = member "GL_EXT_vertex_attrib_64bit" extensions
+{-# NOINLINE gl_EXT_vertex_attrib_64bit #-}
 
+-- | Usage: @'glGetVertexAttribLdvEXT' index pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glGetVertexAttribLdv'.
+
+
 glGetVertexAttribLdvEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLdouble -> m ()
 glGetVertexAttribLdvEXT = ffiuintenumPtrdoubleIOV glGetVertexAttribLdvEXTFunPtr
 
@@ -50,6 +60,11 @@
 
 {-# NOINLINE glGetVertexAttribLdvEXTFunPtr #-}
 
+-- | Usage: @'glVertexAttribL1dEXT' index x@
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glVertexAttribL1d'.
+
+
 glVertexAttribL1dEXT :: MonadIO m => GLuint -> GLdouble -> m ()
 glVertexAttribL1dEXT = ffiuintdoubleIOV glVertexAttribL1dEXTFunPtr
 
@@ -58,6 +73,13 @@
 
 {-# NOINLINE glVertexAttribL1dEXTFunPtr #-}
 
+-- | Usage: @'glVertexAttribL1dvEXT' index v@
+--
+-- The length of @v@ should be @1@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glVertexAttribL1dv'.
+
+
 glVertexAttribL1dvEXT :: MonadIO m => GLuint -> Ptr GLdouble -> m ()
 glVertexAttribL1dvEXT = ffiuintPtrdoubleIOV glVertexAttribL1dvEXTFunPtr
 
@@ -66,6 +88,11 @@
 
 {-# NOINLINE glVertexAttribL1dvEXTFunPtr #-}
 
+-- | Usage: @'glVertexAttribL2dEXT' index x y@
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glVertexAttribL2d'.
+
+
 glVertexAttribL2dEXT :: MonadIO m => GLuint -> GLdouble -> GLdouble -> m ()
 glVertexAttribL2dEXT = ffiuintdoubledoubleIOV glVertexAttribL2dEXTFunPtr
 
@@ -74,6 +101,13 @@
 
 {-# NOINLINE glVertexAttribL2dEXTFunPtr #-}
 
+-- | Usage: @'glVertexAttribL2dvEXT' index v@
+--
+-- The length of @v@ should be @2@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glVertexAttribL2dv'.
+
+
 glVertexAttribL2dvEXT :: MonadIO m => GLuint -> Ptr GLdouble -> m ()
 glVertexAttribL2dvEXT = ffiuintPtrdoubleIOV glVertexAttribL2dvEXTFunPtr
 
@@ -82,6 +116,11 @@
 
 {-# NOINLINE glVertexAttribL2dvEXTFunPtr #-}
 
+-- | Usage: @'glVertexAttribL3dEXT' index x y z@
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glVertexAttribL3d'.
+
+
 glVertexAttribL3dEXT :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> m ()
 glVertexAttribL3dEXT = ffiuintdoubledoubledoubleIOV glVertexAttribL3dEXTFunPtr
 
@@ -90,6 +129,13 @@
 
 {-# NOINLINE glVertexAttribL3dEXTFunPtr #-}
 
+-- | Usage: @'glVertexAttribL3dvEXT' index v@
+--
+-- The length of @v@ should be @3@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glVertexAttribL3dv'.
+
+
 glVertexAttribL3dvEXT :: MonadIO m => GLuint -> Ptr GLdouble -> m ()
 glVertexAttribL3dvEXT = ffiuintPtrdoubleIOV glVertexAttribL3dvEXTFunPtr
 
@@ -98,6 +144,11 @@
 
 {-# NOINLINE glVertexAttribL3dvEXTFunPtr #-}
 
+-- | Usage: @'glVertexAttribL4dEXT' index x y z w@
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glVertexAttribL4d'.
+
+
 glVertexAttribL4dEXT :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
 glVertexAttribL4dEXT = ffiuintdoubledoubledoubledoubleIOV glVertexAttribL4dEXTFunPtr
 
@@ -106,6 +157,13 @@
 
 {-# NOINLINE glVertexAttribL4dEXTFunPtr #-}
 
+-- | Usage: @'glVertexAttribL4dvEXT' index v@
+--
+-- The length of @v@ should be @4@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glVertexAttribL4dv'.
+
+
 glVertexAttribL4dvEXT :: MonadIO m => GLuint -> Ptr GLdouble -> m ()
 glVertexAttribL4dvEXT = ffiuintPtrdoubleIOV glVertexAttribL4dvEXTFunPtr
 
@@ -113,6 +171,13 @@
 glVertexAttribL4dvEXTFunPtr = unsafePerformIO (getProcAddress "glVertexAttribL4dvEXT")
 
 {-# NOINLINE glVertexAttribL4dvEXTFunPtr #-}
+
+-- | Usage: @'glVertexAttribLPointerEXT' index size type stride pointer@
+--
+-- The length of @pointer@ should be @size@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glVertexAttribLPointer'.
+
 
 glVertexAttribLPointerEXT :: MonadIO m => GLuint -> GLint -> GLenum -> GLsizei -> Ptr () -> m ()
 glVertexAttribLPointerEXT = ffiuintintenumsizeiPtrVIOV glVertexAttribLPointerEXTFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/VertexShader.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/VertexShader.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/VertexShader.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/VertexShader.hs
@@ -167,9 +167,15 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/vertex_shader.txt GL_EXT_vertex_shader> extension is available.
+
 gl_EXT_vertex_shader :: Bool
 gl_EXT_vertex_shader = member "GL_EXT_vertex_shader" extensions
+{-# NOINLINE gl_EXT_vertex_shader #-}
 
+-- | Usage: @'glBeginVertexShaderEXT'@
+
+
 glBeginVertexShaderEXT :: MonadIO m => m ()
 glBeginVertexShaderEXT = ffiIOV glBeginVertexShaderEXTFunPtr
 
@@ -178,6 +184,13 @@
 
 {-# NOINLINE glBeginVertexShaderEXTFunPtr #-}
 
+-- | Usage: @'glBindLightParameterEXT' light value@
+--
+-- The parameter @light@ is a @LightName@, one of: 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT0_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT1_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT2_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT3_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT4_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT5_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT6_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT7_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT0', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT1', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT2', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT3', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT4', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT5', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT6', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT7'.
+--
+-- The parameter @value@ is a @LightParameter@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_AMBIENT', 'Graphics.GL.Raw.Internal.Shared.GL_CONSTANT_ATTENUATION', 'Graphics.GL.Raw.Internal.Shared.GL_DIFFUSE', 'Graphics.GL.Raw.Internal.Shared.GL_LINEAR_ATTENUATION', 'Graphics.GL.Raw.Internal.Shared.GL_POSITION', 'Graphics.GL.Raw.Internal.Shared.GL_QUADRATIC_ATTENUATION', 'Graphics.GL.Raw.Internal.Shared.GL_SPECULAR', 'Graphics.GL.Raw.Internal.Shared.GL_SPOT_CUTOFF', 'Graphics.GL.Raw.Internal.Shared.GL_SPOT_DIRECTION', 'Graphics.GL.Raw.Internal.Shared.GL_SPOT_EXPONENT'.
+
+
 glBindLightParameterEXT :: MonadIO m => GLenum -> GLenum -> m GLuint
 glBindLightParameterEXT = ffienumenumIOuint glBindLightParameterEXTFunPtr
 
@@ -186,6 +199,13 @@
 
 {-# NOINLINE glBindLightParameterEXTFunPtr #-}
 
+-- | Usage: @'glBindMaterialParameterEXT' face value@
+--
+-- The parameter @face@ is a @MaterialFace@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_BACK', 'Graphics.GL.Raw.Internal.Shared.GL_FRONT', 'Graphics.GL.Raw.Internal.Shared.GL_FRONT_AND_BACK'.
+--
+-- The parameter @value@ is a @MaterialParameter@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_AMBIENT', 'Graphics.GL.Raw.Internal.Shared.GL_AMBIENT_AND_DIFFUSE', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_INDEXES', 'Graphics.GL.Raw.Internal.Shared.GL_DIFFUSE', 'Graphics.GL.Raw.Internal.Shared.GL_EMISSION', 'Graphics.GL.Raw.Internal.Shared.GL_SHININESS', 'Graphics.GL.Raw.Internal.Shared.GL_SPECULAR'.
+
+
 glBindMaterialParameterEXT :: MonadIO m => GLenum -> GLenum -> m GLuint
 glBindMaterialParameterEXT = ffienumenumIOuint glBindMaterialParameterEXTFunPtr
 
@@ -194,6 +214,11 @@
 
 {-# NOINLINE glBindMaterialParameterEXTFunPtr #-}
 
+-- | Usage: @'glBindParameterEXT' value@
+--
+-- The parameter @value@ is a @VertexShaderParameterEXT@.
+
+
 glBindParameterEXT :: MonadIO m => GLenum -> m GLuint
 glBindParameterEXT = ffienumIOuint glBindParameterEXTFunPtr
 
@@ -202,6 +227,15 @@
 
 {-# NOINLINE glBindParameterEXTFunPtr #-}
 
+-- | Usage: @'glBindTexGenParameterEXT' unit coord value@
+--
+-- The parameter @unit@ is a @TextureUnit@.
+--
+-- The parameter @coord@ is a @TextureCoordName@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_S', 'Graphics.GL.Raw.Internal.Shared.GL_T', 'Graphics.GL.Raw.Internal.Shared.GL_R', 'Graphics.GL.Raw.Internal.Shared.GL_Q'.
+--
+-- The parameter @value@ is a @TextureGenParameter@, one of: 'Graphics.GL.Raw.Extension.SGIS.PointLineTexgen.GL_EYE_LINE_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_EYE_PLANE', 'Graphics.GL.Raw.Extension.SGIS.PointLineTexgen.GL_EYE_POINT_SGIS', 'Graphics.GL.Raw.Extension.SGIS.PointLineTexgen.GL_OBJECT_LINE_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_OBJECT_PLANE', 'Graphics.GL.Raw.Extension.SGIS.PointLineTexgen.GL_OBJECT_POINT_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_GEN_MODE'.
+
+
 glBindTexGenParameterEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> m GLuint
 glBindTexGenParameterEXT = ffienumenumenumIOuint glBindTexGenParameterEXTFunPtr
 
@@ -210,6 +244,13 @@
 
 {-# NOINLINE glBindTexGenParameterEXTFunPtr #-}
 
+-- | Usage: @'glBindTextureUnitParameterEXT' unit value@
+--
+-- The parameter @unit@ is a @TextureUnit@.
+--
+-- The parameter @value@ is a @VertexShaderTextureUnitParameter@.
+
+
 glBindTextureUnitParameterEXT :: MonadIO m => GLenum -> GLenum -> m GLuint
 glBindTextureUnitParameterEXT = ffienumenumIOuint glBindTextureUnitParameterEXTFunPtr
 
@@ -218,6 +259,9 @@
 
 {-# NOINLINE glBindTextureUnitParameterEXTFunPtr #-}
 
+-- | Usage: @'glBindVertexShaderEXT' id@
+
+
 glBindVertexShaderEXT :: MonadIO m => GLuint -> m ()
 glBindVertexShaderEXT = ffiuintIOV glBindVertexShaderEXTFunPtr
 
@@ -226,6 +270,9 @@
 
 {-# NOINLINE glBindVertexShaderEXTFunPtr #-}
 
+-- | Usage: @'glDeleteVertexShaderEXT' id@
+
+
 glDeleteVertexShaderEXT :: MonadIO m => GLuint -> m ()
 glDeleteVertexShaderEXT = ffiuintIOV glDeleteVertexShaderEXTFunPtr
 
@@ -234,6 +281,9 @@
 
 {-# NOINLINE glDeleteVertexShaderEXTFunPtr #-}
 
+-- | Usage: @'glDisableVariantClientStateEXT' id@
+
+
 glDisableVariantClientStateEXT :: MonadIO m => GLuint -> m ()
 glDisableVariantClientStateEXT = ffiuintIOV glDisableVariantClientStateEXTFunPtr
 
@@ -242,6 +292,9 @@
 
 {-# NOINLINE glDisableVariantClientStateEXTFunPtr #-}
 
+-- | Usage: @'glEnableVariantClientStateEXT' id@
+
+
 glEnableVariantClientStateEXT :: MonadIO m => GLuint -> m ()
 glEnableVariantClientStateEXT = ffiuintIOV glEnableVariantClientStateEXTFunPtr
 
@@ -250,6 +303,9 @@
 
 {-# NOINLINE glEnableVariantClientStateEXTFunPtr #-}
 
+-- | Usage: @'glEndVertexShaderEXT'@
+
+
 glEndVertexShaderEXT :: MonadIO m => m ()
 glEndVertexShaderEXT = ffiIOV glEndVertexShaderEXTFunPtr
 
@@ -258,6 +314,9 @@
 
 {-# NOINLINE glEndVertexShaderEXTFunPtr #-}
 
+-- | Usage: @'glExtractComponentEXT' res src num@
+
+
 glExtractComponentEXT :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()
 glExtractComponentEXT = ffiuintuintuintIOV glExtractComponentEXTFunPtr
 
@@ -266,6 +325,15 @@
 
 {-# NOINLINE glExtractComponentEXTFunPtr #-}
 
+-- | Usage: @'glGenSymbolsEXT' datatype storagetype range components@
+--
+-- The parameter @datatype@ is a @DataTypeEXT@.
+--
+-- The parameter @storagetype@ is a @VertexShaderStorageTypeEXT@.
+--
+-- The parameter @range@ is a @ParameterRangeEXT@.
+
+
 glGenSymbolsEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> m GLuint
 glGenSymbolsEXT = ffienumenumenumuintIOuint glGenSymbolsEXTFunPtr
 
@@ -274,6 +342,9 @@
 
 {-# NOINLINE glGenSymbolsEXTFunPtr #-}
 
+-- | Usage: @'glGenVertexShadersEXT' range@
+
+
 glGenVertexShadersEXT :: MonadIO m => GLuint -> m GLuint
 glGenVertexShadersEXT = ffiuintIOuint glGenVertexShadersEXTFunPtr
 
@@ -282,6 +353,15 @@
 
 {-# NOINLINE glGenVertexShadersEXTFunPtr #-}
 
+-- | Usage: @'glGetInvariantBooleanvEXT' id value data@
+--
+-- The parameter @value@ is a @GetVariantValueEXT@.
+--
+-- The parameter @data@ is a @Boolean@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FALSE', 'Graphics.GL.Raw.Internal.Shared.GL_TRUE'.
+--
+-- The length of @data@ should be @COMPSIZE(id)@.
+
+
 glGetInvariantBooleanvEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLboolean -> m ()
 glGetInvariantBooleanvEXT = ffiuintenumPtrbooleanIOV glGetInvariantBooleanvEXTFunPtr
 
@@ -290,6 +370,13 @@
 
 {-# NOINLINE glGetInvariantBooleanvEXTFunPtr #-}
 
+-- | Usage: @'glGetInvariantFloatvEXT' id value data@
+--
+-- The parameter @value@ is a @GetVariantValueEXT@.
+--
+-- The length of @data@ should be @COMPSIZE(id)@.
+
+
 glGetInvariantFloatvEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()
 glGetInvariantFloatvEXT = ffiuintenumPtrfloatIOV glGetInvariantFloatvEXTFunPtr
 
@@ -298,6 +385,13 @@
 
 {-# NOINLINE glGetInvariantFloatvEXTFunPtr #-}
 
+-- | Usage: @'glGetInvariantIntegervEXT' id value data@
+--
+-- The parameter @value@ is a @GetVariantValueEXT@.
+--
+-- The length of @data@ should be @COMPSIZE(id)@.
+
+
 glGetInvariantIntegervEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
 glGetInvariantIntegervEXT = ffiuintenumPtrintIOV glGetInvariantIntegervEXTFunPtr
 
@@ -306,6 +400,15 @@
 
 {-# NOINLINE glGetInvariantIntegervEXTFunPtr #-}
 
+-- | Usage: @'glGetLocalConstantBooleanvEXT' id value data@
+--
+-- The parameter @value@ is a @GetVariantValueEXT@.
+--
+-- The parameter @data@ is a @Boolean@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FALSE', 'Graphics.GL.Raw.Internal.Shared.GL_TRUE'.
+--
+-- The length of @data@ should be @COMPSIZE(id)@.
+
+
 glGetLocalConstantBooleanvEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLboolean -> m ()
 glGetLocalConstantBooleanvEXT = ffiuintenumPtrbooleanIOV glGetLocalConstantBooleanvEXTFunPtr
 
@@ -314,6 +417,13 @@
 
 {-# NOINLINE glGetLocalConstantBooleanvEXTFunPtr #-}
 
+-- | Usage: @'glGetLocalConstantFloatvEXT' id value data@
+--
+-- The parameter @value@ is a @GetVariantValueEXT@.
+--
+-- The length of @data@ should be @COMPSIZE(id)@.
+
+
 glGetLocalConstantFloatvEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()
 glGetLocalConstantFloatvEXT = ffiuintenumPtrfloatIOV glGetLocalConstantFloatvEXTFunPtr
 
@@ -322,6 +432,13 @@
 
 {-# NOINLINE glGetLocalConstantFloatvEXTFunPtr #-}
 
+-- | Usage: @'glGetLocalConstantIntegervEXT' id value data@
+--
+-- The parameter @value@ is a @GetVariantValueEXT@.
+--
+-- The length of @data@ should be @COMPSIZE(id)@.
+
+
 glGetLocalConstantIntegervEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
 glGetLocalConstantIntegervEXT = ffiuintenumPtrintIOV glGetLocalConstantIntegervEXTFunPtr
 
@@ -330,6 +447,15 @@
 
 {-# NOINLINE glGetLocalConstantIntegervEXTFunPtr #-}
 
+-- | Usage: @'glGetVariantBooleanvEXT' id value data@
+--
+-- The parameter @value@ is a @GetVariantValueEXT@.
+--
+-- The parameter @data@ is a @Boolean@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FALSE', 'Graphics.GL.Raw.Internal.Shared.GL_TRUE'.
+--
+-- The length of @data@ should be @COMPSIZE(id)@.
+
+
 glGetVariantBooleanvEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLboolean -> m ()
 glGetVariantBooleanvEXT = ffiuintenumPtrbooleanIOV glGetVariantBooleanvEXTFunPtr
 
@@ -338,6 +464,13 @@
 
 {-# NOINLINE glGetVariantBooleanvEXTFunPtr #-}
 
+-- | Usage: @'glGetVariantFloatvEXT' id value data@
+--
+-- The parameter @value@ is a @GetVariantValueEXT@.
+--
+-- The length of @data@ should be @COMPSIZE(id)@.
+
+
 glGetVariantFloatvEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()
 glGetVariantFloatvEXT = ffiuintenumPtrfloatIOV glGetVariantFloatvEXTFunPtr
 
@@ -346,6 +479,13 @@
 
 {-# NOINLINE glGetVariantFloatvEXTFunPtr #-}
 
+-- | Usage: @'glGetVariantIntegervEXT' id value data@
+--
+-- The parameter @value@ is a @GetVariantValueEXT@.
+--
+-- The length of @data@ should be @COMPSIZE(id)@.
+
+
 glGetVariantIntegervEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
 glGetVariantIntegervEXT = ffiuintenumPtrintIOV glGetVariantIntegervEXTFunPtr
 
@@ -354,14 +494,24 @@
 
 {-# NOINLINE glGetVariantIntegervEXTFunPtr #-}
 
-glGetVariantPointervEXT :: MonadIO m => GLuint -> GLenum -> Ptr () -> m ()
-glGetVariantPointervEXT = ffiuintenumPtrVIOV glGetVariantPointervEXTFunPtr
+-- | Usage: @'glGetVariantPointervEXT' id value data@
+--
+-- The parameter @value@ is a @GetVariantValueEXT@.
+--
+-- The length of @data@ should be @COMPSIZE(id)@.
 
-glGetVariantPointervEXTFunPtr :: FunPtr (GLuint -> GLenum -> Ptr () -> IO ())
+
+glGetVariantPointervEXT :: MonadIO m => GLuint -> GLenum -> Ptr (Ptr ()) -> m ()
+glGetVariantPointervEXT = ffiuintenumPtrPtrVIOV glGetVariantPointervEXTFunPtr
+
+glGetVariantPointervEXTFunPtr :: FunPtr (GLuint -> GLenum -> Ptr (Ptr ()) -> IO ())
 glGetVariantPointervEXTFunPtr = unsafePerformIO (getProcAddress "glGetVariantPointervEXT")
 
 {-# NOINLINE glGetVariantPointervEXTFunPtr #-}
 
+-- | Usage: @'glInsertComponentEXT' res src num@
+
+
 glInsertComponentEXT :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()
 glInsertComponentEXT = ffiuintuintuintIOV glInsertComponentEXTFunPtr
 
@@ -370,6 +520,11 @@
 
 {-# NOINLINE glInsertComponentEXTFunPtr #-}
 
+-- | Usage: @'glIsVariantEnabledEXT' id cap@
+--
+-- The parameter @cap@ is a @VariantCapEXT@.
+
+
 glIsVariantEnabledEXT :: MonadIO m => GLuint -> GLenum -> m GLboolean
 glIsVariantEnabledEXT = ffiuintenumIOboolean glIsVariantEnabledEXTFunPtr
 
@@ -378,6 +533,13 @@
 
 {-# NOINLINE glIsVariantEnabledEXTFunPtr #-}
 
+-- | Usage: @'glSetInvariantEXT' id type addr@
+--
+-- The parameter @type@ is a @ScalarType@.
+--
+-- The length of @addr@ should be @COMPSIZE(id,type)@.
+
+
 glSetInvariantEXT :: MonadIO m => GLuint -> GLenum -> Ptr () -> m ()
 glSetInvariantEXT = ffiuintenumPtrVIOV glSetInvariantEXTFunPtr
 
@@ -386,6 +548,13 @@
 
 {-# NOINLINE glSetInvariantEXTFunPtr #-}
 
+-- | Usage: @'glSetLocalConstantEXT' id type addr@
+--
+-- The parameter @type@ is a @ScalarType@.
+--
+-- The length of @addr@ should be @COMPSIZE(id,type)@.
+
+
 glSetLocalConstantEXT :: MonadIO m => GLuint -> GLenum -> Ptr () -> m ()
 glSetLocalConstantEXT = ffiuintenumPtrVIOV glSetLocalConstantEXTFunPtr
 
@@ -394,6 +563,11 @@
 
 {-# NOINLINE glSetLocalConstantEXTFunPtr #-}
 
+-- | Usage: @'glShaderOp1EXT' op res arg1@
+--
+-- The parameter @op@ is a @VertexShaderOpEXT@.
+
+
 glShaderOp1EXT :: MonadIO m => GLenum -> GLuint -> GLuint -> m ()
 glShaderOp1EXT = ffienumuintuintIOV glShaderOp1EXTFunPtr
 
@@ -402,6 +576,11 @@
 
 {-# NOINLINE glShaderOp1EXTFunPtr #-}
 
+-- | Usage: @'glShaderOp2EXT' op res arg1 arg2@
+--
+-- The parameter @op@ is a @VertexShaderOpEXT@.
+
+
 glShaderOp2EXT :: MonadIO m => GLenum -> GLuint -> GLuint -> GLuint -> m ()
 glShaderOp2EXT = ffienumuintuintuintIOV glShaderOp2EXTFunPtr
 
@@ -410,6 +589,11 @@
 
 {-# NOINLINE glShaderOp2EXTFunPtr #-}
 
+-- | Usage: @'glShaderOp3EXT' op res arg1 arg2 arg3@
+--
+-- The parameter @op@ is a @VertexShaderOpEXT@.
+
+
 glShaderOp3EXT :: MonadIO m => GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
 glShaderOp3EXT = ffienumuintuintuintuintIOV glShaderOp3EXTFunPtr
 
@@ -418,6 +602,17 @@
 
 {-# NOINLINE glShaderOp3EXTFunPtr #-}
 
+-- | Usage: @'glSwizzleEXT' res in outX outY outZ outW@
+--
+-- The parameter @outX@ is a @VertexShaderCoordOutEXT@.
+--
+-- The parameter @outY@ is a @VertexShaderCoordOutEXT@.
+--
+-- The parameter @outZ@ is a @VertexShaderCoordOutEXT@.
+--
+-- The parameter @outW@ is a @VertexShaderCoordOutEXT@.
+
+
 glSwizzleEXT :: MonadIO m => GLuint -> GLuint -> GLenum -> GLenum -> GLenum -> GLenum -> m ()
 glSwizzleEXT = ffiuintuintenumenumenumenumIOV glSwizzleEXTFunPtr
 
@@ -426,6 +621,13 @@
 
 {-# NOINLINE glSwizzleEXTFunPtr #-}
 
+-- | Usage: @'glVariantPointerEXT' id type stride addr@
+--
+-- The parameter @type@ is a @ScalarType@.
+--
+-- The length of @addr@ should be @COMPSIZE(id,type,stride)@.
+
+
 glVariantPointerEXT :: MonadIO m => GLuint -> GLenum -> GLuint -> Ptr () -> m ()
 glVariantPointerEXT = ffiuintenumuintPtrVIOV glVariantPointerEXTFunPtr
 
@@ -434,6 +636,11 @@
 
 {-# NOINLINE glVariantPointerEXTFunPtr #-}
 
+-- | Usage: @'glVariantbvEXT' id addr@
+--
+-- The length of @addr@ should be @COMPSIZE(id)@.
+
+
 glVariantbvEXT :: MonadIO m => GLuint -> Ptr GLbyte -> m ()
 glVariantbvEXT = ffiuintPtrbyteIOV glVariantbvEXTFunPtr
 
@@ -442,6 +649,11 @@
 
 {-# NOINLINE glVariantbvEXTFunPtr #-}
 
+-- | Usage: @'glVariantdvEXT' id addr@
+--
+-- The length of @addr@ should be @COMPSIZE(id)@.
+
+
 glVariantdvEXT :: MonadIO m => GLuint -> Ptr GLdouble -> m ()
 glVariantdvEXT = ffiuintPtrdoubleIOV glVariantdvEXTFunPtr
 
@@ -450,6 +662,11 @@
 
 {-# NOINLINE glVariantdvEXTFunPtr #-}
 
+-- | Usage: @'glVariantfvEXT' id addr@
+--
+-- The length of @addr@ should be @COMPSIZE(id)@.
+
+
 glVariantfvEXT :: MonadIO m => GLuint -> Ptr GLfloat -> m ()
 glVariantfvEXT = ffiuintPtrfloatIOV glVariantfvEXTFunPtr
 
@@ -458,6 +675,11 @@
 
 {-# NOINLINE glVariantfvEXTFunPtr #-}
 
+-- | Usage: @'glVariantivEXT' id addr@
+--
+-- The length of @addr@ should be @COMPSIZE(id)@.
+
+
 glVariantivEXT :: MonadIO m => GLuint -> Ptr GLint -> m ()
 glVariantivEXT = ffiuintPtrintIOV glVariantivEXTFunPtr
 
@@ -466,6 +688,11 @@
 
 {-# NOINLINE glVariantivEXTFunPtr #-}
 
+-- | Usage: @'glVariantsvEXT' id addr@
+--
+-- The length of @addr@ should be @COMPSIZE(id)@.
+
+
 glVariantsvEXT :: MonadIO m => GLuint -> Ptr GLshort -> m ()
 glVariantsvEXT = ffiuintPtrshortIOV glVariantsvEXTFunPtr
 
@@ -474,6 +701,11 @@
 
 {-# NOINLINE glVariantsvEXTFunPtr #-}
 
+-- | Usage: @'glVariantubvEXT' id addr@
+--
+-- The length of @addr@ should be @COMPSIZE(id)@.
+
+
 glVariantubvEXT :: MonadIO m => GLuint -> Ptr GLubyte -> m ()
 glVariantubvEXT = ffiuintPtrubyteIOV glVariantubvEXTFunPtr
 
@@ -482,6 +714,11 @@
 
 {-# NOINLINE glVariantubvEXTFunPtr #-}
 
+-- | Usage: @'glVariantuivEXT' id addr@
+--
+-- The length of @addr@ should be @COMPSIZE(id)@.
+
+
 glVariantuivEXT :: MonadIO m => GLuint -> Ptr GLuint -> m ()
 glVariantuivEXT = ffiuintPtruintIOV glVariantuivEXTFunPtr
 
@@ -490,6 +727,11 @@
 
 {-# NOINLINE glVariantuivEXTFunPtr #-}
 
+-- | Usage: @'glVariantusvEXT' id addr@
+--
+-- The length of @addr@ should be @COMPSIZE(id)@.
+
+
 glVariantusvEXT :: MonadIO m => GLuint -> Ptr GLushort -> m ()
 glVariantusvEXT = ffiuintPtrushortIOV glVariantusvEXTFunPtr
 
@@ -497,6 +739,17 @@
 glVariantusvEXTFunPtr = unsafePerformIO (getProcAddress "glVariantusvEXT")
 
 {-# NOINLINE glVariantusvEXTFunPtr #-}
+
+-- | Usage: @'glWriteMaskEXT' res in outX outY outZ outW@
+--
+-- The parameter @outX@ is a @VertexShaderWriteMaskEXT@.
+--
+-- The parameter @outY@ is a @VertexShaderWriteMaskEXT@.
+--
+-- The parameter @outZ@ is a @VertexShaderWriteMaskEXT@.
+--
+-- The parameter @outW@ is a @VertexShaderWriteMaskEXT@.
+
 
 glWriteMaskEXT :: MonadIO m => GLuint -> GLuint -> GLenum -> GLenum -> GLenum -> GLenum -> m ()
 glWriteMaskEXT = ffiuintuintenumenumenumenumIOV glWriteMaskEXTFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/VertexWeighting.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/VertexWeighting.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/VertexWeighting.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/VertexWeighting.hs
@@ -31,9 +31,19 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/vertex_weighting.txt GL_EXT_vertex_weighting> extension is available.
+
 gl_EXT_vertex_weighting :: Bool
 gl_EXT_vertex_weighting = member "GL_EXT_vertex_weighting" extensions
+{-# NOINLINE gl_EXT_vertex_weighting #-}
 
+-- | Usage: @'glVertexWeightPointerEXT' size type stride pointer@
+--
+-- The parameter @type@ is a @VertexWeightPointerTypeEXT@.
+--
+-- The length of @pointer@ should be @COMPSIZE(type,stride)@.
+
+
 glVertexWeightPointerEXT :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr () -> m ()
 glVertexWeightPointerEXT = ffiintenumsizeiPtrVIOV glVertexWeightPointerEXTFunPtr
 
@@ -42,6 +52,11 @@
 
 {-# NOINLINE glVertexWeightPointerEXTFunPtr #-}
 
+-- | Usage: @'glVertexWeightfEXT' weight@
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Extension.EXT.VertexWeighting.glVertexWeightfvEXT'.
+
+
 glVertexWeightfEXT :: MonadIO m => GLfloat -> m ()
 glVertexWeightfEXT = ffifloatIOV glVertexWeightfEXTFunPtr
 
@@ -49,6 +64,11 @@
 glVertexWeightfEXTFunPtr = unsafePerformIO (getProcAddress "glVertexWeightfEXT")
 
 {-# NOINLINE glVertexWeightfEXTFunPtr #-}
+
+-- | Usage: @'glVertexWeightfvEXT' weight@
+--
+-- The length of @weight@ should be @1@.
+
 
 glVertexWeightfvEXT :: MonadIO m => Ptr GLfloat -> m ()
 glVertexWeightfvEXT = ffiPtrfloatIOV glVertexWeightfvEXTFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/X11SyncObject.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/X11SyncObject.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/X11SyncObject.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/X11SyncObject.hs
@@ -17,8 +17,14 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/x11_sync_object.txt GL_EXT_x11_sync_object> extension is available.
+
 gl_EXT_x11_sync_object :: Bool
 gl_EXT_x11_sync_object = member "GL_EXT_x11_sync_object" extensions
+{-# NOINLINE gl_EXT_x11_sync_object #-}
+
+-- | Usage: @'glImportSyncEXT' external_sync_type external_sync flags@
+
 
 glImportSyncEXT :: MonadIO m => GLenum -> GLintptr -> GLbitfield -> m GLsync
 glImportSyncEXT = ffienumintptrbitfieldIOsync glImportSyncEXTFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/FJ/ShaderBinaryGCCSO.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/FJ/ShaderBinaryGCCSO.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/FJ/ShaderBinaryGCCSO.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/FJ/ShaderBinaryGCCSO.hs
@@ -11,7 +11,10 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the GL_FJ_shader_binary_GCCSO extension is available.
+
 gl_FJ_shader_binary_GCCSO :: Bool
 gl_FJ_shader_binary_GCCSO = member "GL_FJ_shader_binary_GCCSO" extensions
+{-# NOINLINE gl_FJ_shader_binary_GCCSO #-}
 
 pattern GL_GCCSO_SHADER_BINARY_FJ = 0x9260
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/GREMEDY/FrameTerminator.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/GREMEDY/FrameTerminator.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/GREMEDY/FrameTerminator.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/GREMEDY/FrameTerminator.hs
@@ -15,8 +15,14 @@
 import Graphics.GL.Raw.Internal.Proc
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/GREMEDY/frame_terminator.txt GL_GREMEDY_frame_terminator> extension is available.
+
 gl_GREMEDY_frame_terminator :: Bool
 gl_GREMEDY_frame_terminator = member "GL_GREMEDY_frame_terminator" extensions
+{-# NOINLINE gl_GREMEDY_frame_terminator #-}
+
+-- | Usage: @'glFrameTerminatorGREMEDY'@
+
 
 glFrameTerminatorGREMEDY :: MonadIO m => m ()
 glFrameTerminatorGREMEDY = ffiIOV glFrameTerminatorGREMEDYFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/GREMEDY/StringMarker.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/GREMEDY/StringMarker.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/GREMEDY/StringMarker.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/GREMEDY/StringMarker.hs
@@ -16,8 +16,16 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/GREMEDY/string_marker.txt GL_GREMEDY_string_marker> extension is available.
+
 gl_GREMEDY_string_marker :: Bool
 gl_GREMEDY_string_marker = member "GL_GREMEDY_string_marker" extensions
+{-# NOINLINE gl_GREMEDY_string_marker #-}
+
+-- | Usage: @'glStringMarkerGREMEDY' len string@
+--
+-- The length of @string@ should be @len@.
+
 
 glStringMarkerGREMEDY :: MonadIO m => GLsizei -> Ptr () -> m ()
 glStringMarkerGREMEDY = ffisizeiPtrVIOV glStringMarkerGREMEDYFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/HP/ConvolutionBorderModes.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/HP/ConvolutionBorderModes.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/HP/ConvolutionBorderModes.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/HP/ConvolutionBorderModes.hs
@@ -14,8 +14,11 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/HP/convolution_border_modes.txt GL_HP_convolution_border_modes> extension is available.
+
 gl_HP_convolution_border_modes :: Bool
 gl_HP_convolution_border_modes = member "GL_HP_convolution_border_modes" extensions
+{-# NOINLINE gl_HP_convolution_border_modes #-}
 
 pattern GL_CONSTANT_BORDER_HP = 0x8151
 
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/HP/ImageTransform.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/HP/ImageTransform.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/HP/ImageTransform.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/HP/ImageTransform.hs
@@ -36,9 +36,21 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/HP/image_transform.txt GL_HP_image_transform> extension is available.
+
 gl_HP_image_transform :: Bool
 gl_HP_image_transform = member "GL_HP_image_transform" extensions
+{-# NOINLINE gl_HP_image_transform #-}
 
+-- | Usage: @'glGetImageTransformParameterfvHP' target pname params@
+--
+-- The parameter @target@ is a @ImageTransformTargetHP@.
+--
+-- The parameter @pname@ is a @ImageTransformPNameHP@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
 glGetImageTransformParameterfvHP :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
 glGetImageTransformParameterfvHP = ffienumenumPtrfloatIOV glGetImageTransformParameterfvHPFunPtr
 
@@ -47,6 +59,15 @@
 
 {-# NOINLINE glGetImageTransformParameterfvHPFunPtr #-}
 
+-- | Usage: @'glGetImageTransformParameterivHP' target pname params@
+--
+-- The parameter @target@ is a @ImageTransformTargetHP@.
+--
+-- The parameter @pname@ is a @ImageTransformPNameHP@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
 glGetImageTransformParameterivHP :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
 glGetImageTransformParameterivHP = ffienumenumPtrintIOV glGetImageTransformParameterivHPFunPtr
 
@@ -55,6 +76,13 @@
 
 {-# NOINLINE glGetImageTransformParameterivHPFunPtr #-}
 
+-- | Usage: @'glImageTransformParameterfHP' target pname param@
+--
+-- The parameter @target@ is a @ImageTransformTargetHP@.
+--
+-- The parameter @pname@ is a @ImageTransformPNameHP@.
+
+
 glImageTransformParameterfHP :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()
 glImageTransformParameterfHP = ffienumenumfloatIOV glImageTransformParameterfHPFunPtr
 
@@ -63,6 +91,15 @@
 
 {-# NOINLINE glImageTransformParameterfHPFunPtr #-}
 
+-- | Usage: @'glImageTransformParameterfvHP' target pname params@
+--
+-- The parameter @target@ is a @ImageTransformTargetHP@.
+--
+-- The parameter @pname@ is a @ImageTransformPNameHP@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
 glImageTransformParameterfvHP :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
 glImageTransformParameterfvHP = ffienumenumPtrfloatIOV glImageTransformParameterfvHPFunPtr
 
@@ -71,6 +108,13 @@
 
 {-# NOINLINE glImageTransformParameterfvHPFunPtr #-}
 
+-- | Usage: @'glImageTransformParameteriHP' target pname param@
+--
+-- The parameter @target@ is a @ImageTransformTargetHP@.
+--
+-- The parameter @pname@ is a @ImageTransformPNameHP@.
+
+
 glImageTransformParameteriHP :: MonadIO m => GLenum -> GLenum -> GLint -> m ()
 glImageTransformParameteriHP = ffienumenumintIOV glImageTransformParameteriHPFunPtr
 
@@ -78,6 +122,15 @@
 glImageTransformParameteriHPFunPtr = unsafePerformIO (getProcAddress "glImageTransformParameteriHP")
 
 {-# NOINLINE glImageTransformParameteriHPFunPtr #-}
+
+-- | Usage: @'glImageTransformParameterivHP' target pname params@
+--
+-- The parameter @target@ is a @ImageTransformTargetHP@.
+--
+-- The parameter @pname@ is a @ImageTransformPNameHP@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
 
 glImageTransformParameterivHP :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
 glImageTransformParameterivHP = ffienumenumPtrintIOV glImageTransformParameterivHPFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/HP/OcclusionTest.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/HP/OcclusionTest.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/HP/OcclusionTest.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/HP/OcclusionTest.hs
@@ -12,8 +12,11 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/HP/occlusion_test.txt GL_HP_occlusion_test> extension is available.
+
 gl_HP_occlusion_test :: Bool
 gl_HP_occlusion_test = member "GL_HP_occlusion_test" extensions
+{-# NOINLINE gl_HP_occlusion_test #-}
 
 pattern GL_OCCLUSION_TEST_HP = 0x8165
 
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/HP/TextureLighting.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/HP/TextureLighting.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/HP/TextureLighting.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/HP/TextureLighting.hs
@@ -13,8 +13,11 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/HP/texture_lighting.txt GL_HP_texture_lighting> extension is available.
+
 gl_HP_texture_lighting :: Bool
 gl_HP_texture_lighting = member "GL_HP_texture_lighting" extensions
+{-# NOINLINE gl_HP_texture_lighting #-}
 
 pattern GL_TEXTURE_LIGHTING_MODE_HP = 0x8167
 
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/IBM/CullVertex.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/IBM/CullVertex.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/IBM/CullVertex.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/IBM/CullVertex.hs
@@ -11,7 +11,10 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/IBM/cull_vertex.txt GL_IBM_cull_vertex> extension is available.
+
 gl_IBM_cull_vertex :: Bool
 gl_IBM_cull_vertex = member "GL_IBM_cull_vertex" extensions
+{-# NOINLINE gl_IBM_cull_vertex #-}
 
 pattern GL_CULL_VERTEX_IBM = 103050
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/IBM/MultimodeDrawArrays.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/IBM/MultimodeDrawArrays.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/IBM/MultimodeDrawArrays.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/IBM/MultimodeDrawArrays.hs
@@ -17,9 +17,23 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/IBM/multimode_draw_arrays.txt GL_IBM_multimode_draw_arrays> extension is available.
+
 gl_IBM_multimode_draw_arrays :: Bool
 gl_IBM_multimode_draw_arrays = member "GL_IBM_multimode_draw_arrays" extensions
+{-# NOINLINE gl_IBM_multimode_draw_arrays #-}
 
+-- | Usage: @'glMultiModeDrawArraysIBM' mode first count primcount modestride@
+--
+-- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_LINES', 'Graphics.GL.Raw.Profile.Core32.GL_LINES_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Raw.Profile.Core32.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PATCHES', 'Graphics.GL.Raw.Extension.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_POINTS', 'Graphics.GL.Raw.Internal.Shared.GL_POLYGON', 'Graphics.GL.Raw.Internal.Shared.GL_QUADS', 'Graphics.GL.Raw.Extension.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Raw.Profile.Core32.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Raw.Profile.Core32.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
+--
+-- The length of @mode@ should be @COMPSIZE(primcount)@.
+--
+-- The length of @first@ should be @COMPSIZE(primcount)@.
+--
+-- The length of @count@ should be @COMPSIZE(primcount)@.
+
+
 glMultiModeDrawArraysIBM :: MonadIO m => Ptr GLenum -> Ptr GLint -> Ptr GLsizei -> GLsizei -> GLint -> m ()
 glMultiModeDrawArraysIBM = ffiPtrenumPtrintPtrsizeisizeiintIOV glMultiModeDrawArraysIBMFunPtr
 
@@ -28,10 +42,23 @@
 
 {-# NOINLINE glMultiModeDrawArraysIBMFunPtr #-}
 
-glMultiModeDrawElementsIBM :: MonadIO m => Ptr GLenum -> Ptr GLsizei -> GLenum -> Ptr () -> GLsizei -> GLint -> m ()
-glMultiModeDrawElementsIBM = ffiPtrenumPtrsizeienumPtrVsizeiintIOV glMultiModeDrawElementsIBMFunPtr
+-- | Usage: @'glMultiModeDrawElementsIBM' mode count type indices primcount modestride@
+--
+-- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_LINES', 'Graphics.GL.Raw.Profile.Core32.GL_LINES_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Raw.Profile.Core32.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PATCHES', 'Graphics.GL.Raw.Extension.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_POINTS', 'Graphics.GL.Raw.Internal.Shared.GL_POLYGON', 'Graphics.GL.Raw.Internal.Shared.GL_QUADS', 'Graphics.GL.Raw.Extension.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Raw.Profile.Core32.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Raw.Profile.Core32.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
+--
+-- The parameter @type@ is a @DrawElementsType@.
+--
+-- The length of @mode@ should be @COMPSIZE(primcount)@.
+--
+-- The length of @count@ should be @COMPSIZE(primcount)@.
+--
+-- The length of @indices@ should be @COMPSIZE(primcount)@.
 
-glMultiModeDrawElementsIBMFunPtr :: FunPtr (Ptr GLenum -> Ptr GLsizei -> GLenum -> Ptr () -> GLsizei -> GLint -> IO ())
+
+glMultiModeDrawElementsIBM :: MonadIO m => Ptr GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr ()) -> GLsizei -> GLint -> m ()
+glMultiModeDrawElementsIBM = ffiPtrenumPtrsizeienumPtrPtrVsizeiintIOV glMultiModeDrawElementsIBMFunPtr
+
+glMultiModeDrawElementsIBMFunPtr :: FunPtr (Ptr GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr ()) -> GLsizei -> GLint -> IO ())
 glMultiModeDrawElementsIBMFunPtr = unsafePerformIO (getProcAddress "glMultiModeDrawElementsIBM")
 
 {-# NOINLINE glMultiModeDrawElementsIBMFunPtr #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/IBM/RasterposClip.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/IBM/RasterposClip.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/IBM/RasterposClip.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/IBM/RasterposClip.hs
@@ -11,7 +11,10 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/IBM/rasterpos_clip.txt GL_IBM_rasterpos_clip> extension is available.
+
 gl_IBM_rasterpos_clip :: Bool
 gl_IBM_rasterpos_clip = member "GL_IBM_rasterpos_clip" extensions
+{-# NOINLINE gl_IBM_rasterpos_clip #-}
 
 pattern GL_RASTER_POSITION_UNCLIPPED_IBM = 0x19262
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/IBM/StaticData.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/IBM/StaticData.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/IBM/StaticData.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/IBM/StaticData.hs
@@ -18,8 +18,14 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/IBM/static_data.txt GL_IBM_static_data> extension is available.
+
 gl_IBM_static_data :: Bool
 gl_IBM_static_data = member "GL_IBM_static_data" extensions
+{-# NOINLINE gl_IBM_static_data #-}
+
+-- | Usage: @'glFlushStaticDataIBM' target@
+
 
 glFlushStaticDataIBM :: MonadIO m => GLenum -> m ()
 glFlushStaticDataIBM = ffienumIOV glFlushStaticDataIBMFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/IBM/TextureMirroredRepeat.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/IBM/TextureMirroredRepeat.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/IBM/TextureMirroredRepeat.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/IBM/TextureMirroredRepeat.hs
@@ -11,7 +11,10 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/IBM/texture_mirrored_repeat.txt GL_IBM_texture_mirrored_repeat> extension is available.
+
 gl_IBM_texture_mirrored_repeat :: Bool
 gl_IBM_texture_mirrored_repeat = member "GL_IBM_texture_mirrored_repeat" extensions
+{-# NOINLINE gl_IBM_texture_mirrored_repeat #-}
 
 pattern GL_MIRRORED_REPEAT_IBM = 0x8370
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/IBM/VertexArrayLists.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/IBM/VertexArrayLists.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/IBM/VertexArrayLists.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/IBM/VertexArrayLists.hs
@@ -39,69 +39,128 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/IBM/vertex_array_lists.txt GL_IBM_vertex_array_lists> extension is available.
+
 gl_IBM_vertex_array_lists :: Bool
 gl_IBM_vertex_array_lists = member "GL_IBM_vertex_array_lists" extensions
+{-# NOINLINE gl_IBM_vertex_array_lists #-}
 
-glColorPointerListIBM :: MonadIO m => GLint -> GLenum -> GLint -> Ptr () -> GLint -> m ()
-glColorPointerListIBM = ffiintenumintPtrVintIOV glColorPointerListIBMFunPtr
+-- | Usage: @'glColorPointerListIBM' size type stride pointer ptrstride@
+--
+-- The parameter @type@ is a @ColorPointerType@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_BYTE', 'Graphics.GL.Raw.Internal.Shared.GL_DOUBLE', 'Graphics.GL.Raw.Internal.Shared.GL_FLOAT', 'Graphics.GL.Raw.Internal.Shared.GL_INT', 'Graphics.GL.Raw.Internal.Shared.GL_SHORT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT'.
+--
+-- The length of @pointer@ should be @COMPSIZE(size,type,stride)@.
 
-glColorPointerListIBMFunPtr :: FunPtr (GLint -> GLenum -> GLint -> Ptr () -> GLint -> IO ())
+
+glColorPointerListIBM :: MonadIO m => GLint -> GLenum -> GLint -> Ptr (Ptr ()) -> GLint -> m ()
+glColorPointerListIBM = ffiintenumintPtrPtrVintIOV glColorPointerListIBMFunPtr
+
+glColorPointerListIBMFunPtr :: FunPtr (GLint -> GLenum -> GLint -> Ptr (Ptr ()) -> GLint -> IO ())
 glColorPointerListIBMFunPtr = unsafePerformIO (getProcAddress "glColorPointerListIBM")
 
 {-# NOINLINE glColorPointerListIBMFunPtr #-}
 
-glEdgeFlagPointerListIBM :: MonadIO m => GLint -> Ptr GLboolean -> GLint -> m ()
-glEdgeFlagPointerListIBM = ffiintPtrbooleanintIOV glEdgeFlagPointerListIBMFunPtr
+-- | Usage: @'glEdgeFlagPointerListIBM' stride pointer ptrstride@
+--
+-- The parameter @pointer@ is a @BooleanPointer@.
+--
+-- The length of @pointer@ should be @COMPSIZE(stride)@.
 
-glEdgeFlagPointerListIBMFunPtr :: FunPtr (GLint -> Ptr GLboolean -> GLint -> IO ())
+
+glEdgeFlagPointerListIBM :: MonadIO m => GLint -> Ptr (Ptr GLboolean) -> GLint -> m ()
+glEdgeFlagPointerListIBM = ffiintPtrPtrbooleanintIOV glEdgeFlagPointerListIBMFunPtr
+
+glEdgeFlagPointerListIBMFunPtr :: FunPtr (GLint -> Ptr (Ptr GLboolean) -> GLint -> IO ())
 glEdgeFlagPointerListIBMFunPtr = unsafePerformIO (getProcAddress "glEdgeFlagPointerListIBM")
 
 {-# NOINLINE glEdgeFlagPointerListIBMFunPtr #-}
 
-glFogCoordPointerListIBM :: MonadIO m => GLenum -> GLint -> Ptr () -> GLint -> m ()
-glFogCoordPointerListIBM = ffienumintPtrVintIOV glFogCoordPointerListIBMFunPtr
+-- | Usage: @'glFogCoordPointerListIBM' type stride pointer ptrstride@
+--
+-- The parameter @type@ is a @FogPointerTypeIBM@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FLOAT', 'Graphics.GL.Raw.Internal.Shared.GL_DOUBLE'.
+--
+-- The length of @pointer@ should be @COMPSIZE(type,stride)@.
 
-glFogCoordPointerListIBMFunPtr :: FunPtr (GLenum -> GLint -> Ptr () -> GLint -> IO ())
+
+glFogCoordPointerListIBM :: MonadIO m => GLenum -> GLint -> Ptr (Ptr ()) -> GLint -> m ()
+glFogCoordPointerListIBM = ffienumintPtrPtrVintIOV glFogCoordPointerListIBMFunPtr
+
+glFogCoordPointerListIBMFunPtr :: FunPtr (GLenum -> GLint -> Ptr (Ptr ()) -> GLint -> IO ())
 glFogCoordPointerListIBMFunPtr = unsafePerformIO (getProcAddress "glFogCoordPointerListIBM")
 
 {-# NOINLINE glFogCoordPointerListIBMFunPtr #-}
 
-glIndexPointerListIBM :: MonadIO m => GLenum -> GLint -> Ptr () -> GLint -> m ()
-glIndexPointerListIBM = ffienumintPtrVintIOV glIndexPointerListIBMFunPtr
+-- | Usage: @'glIndexPointerListIBM' type stride pointer ptrstride@
+--
+-- The parameter @type@ is a @IndexPointerType@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_DOUBLE', 'Graphics.GL.Raw.Internal.Shared.GL_FLOAT', 'Graphics.GL.Raw.Internal.Shared.GL_INT', 'Graphics.GL.Raw.Internal.Shared.GL_SHORT'.
+--
+-- The length of @pointer@ should be @COMPSIZE(type,stride)@.
 
-glIndexPointerListIBMFunPtr :: FunPtr (GLenum -> GLint -> Ptr () -> GLint -> IO ())
+
+glIndexPointerListIBM :: MonadIO m => GLenum -> GLint -> Ptr (Ptr ()) -> GLint -> m ()
+glIndexPointerListIBM = ffienumintPtrPtrVintIOV glIndexPointerListIBMFunPtr
+
+glIndexPointerListIBMFunPtr :: FunPtr (GLenum -> GLint -> Ptr (Ptr ()) -> GLint -> IO ())
 glIndexPointerListIBMFunPtr = unsafePerformIO (getProcAddress "glIndexPointerListIBM")
 
 {-# NOINLINE glIndexPointerListIBMFunPtr #-}
 
-glNormalPointerListIBM :: MonadIO m => GLenum -> GLint -> Ptr () -> GLint -> m ()
-glNormalPointerListIBM = ffienumintPtrVintIOV glNormalPointerListIBMFunPtr
+-- | Usage: @'glNormalPointerListIBM' type stride pointer ptrstride@
+--
+-- The parameter @type@ is a @NormalPointerType@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_BYTE', 'Graphics.GL.Raw.Internal.Shared.GL_DOUBLE', 'Graphics.GL.Raw.Internal.Shared.GL_FLOAT', 'Graphics.GL.Raw.Internal.Shared.GL_INT', 'Graphics.GL.Raw.Internal.Shared.GL_SHORT'.
+--
+-- The length of @pointer@ should be @COMPSIZE(type,stride)@.
 
-glNormalPointerListIBMFunPtr :: FunPtr (GLenum -> GLint -> Ptr () -> GLint -> IO ())
+
+glNormalPointerListIBM :: MonadIO m => GLenum -> GLint -> Ptr (Ptr ()) -> GLint -> m ()
+glNormalPointerListIBM = ffienumintPtrPtrVintIOV glNormalPointerListIBMFunPtr
+
+glNormalPointerListIBMFunPtr :: FunPtr (GLenum -> GLint -> Ptr (Ptr ()) -> GLint -> IO ())
 glNormalPointerListIBMFunPtr = unsafePerformIO (getProcAddress "glNormalPointerListIBM")
 
 {-# NOINLINE glNormalPointerListIBMFunPtr #-}
 
-glSecondaryColorPointerListIBM :: MonadIO m => GLint -> GLenum -> GLint -> Ptr () -> GLint -> m ()
-glSecondaryColorPointerListIBM = ffiintenumintPtrVintIOV glSecondaryColorPointerListIBMFunPtr
+-- | Usage: @'glSecondaryColorPointerListIBM' size type stride pointer ptrstride@
+--
+-- The parameter @type@ is a @SecondaryColorPointerTypeIBM@.
+--
+-- The length of @pointer@ should be @COMPSIZE(size,type,stride)@.
 
-glSecondaryColorPointerListIBMFunPtr :: FunPtr (GLint -> GLenum -> GLint -> Ptr () -> GLint -> IO ())
+
+glSecondaryColorPointerListIBM :: MonadIO m => GLint -> GLenum -> GLint -> Ptr (Ptr ()) -> GLint -> m ()
+glSecondaryColorPointerListIBM = ffiintenumintPtrPtrVintIOV glSecondaryColorPointerListIBMFunPtr
+
+glSecondaryColorPointerListIBMFunPtr :: FunPtr (GLint -> GLenum -> GLint -> Ptr (Ptr ()) -> GLint -> IO ())
 glSecondaryColorPointerListIBMFunPtr = unsafePerformIO (getProcAddress "glSecondaryColorPointerListIBM")
 
 {-# NOINLINE glSecondaryColorPointerListIBMFunPtr #-}
 
-glTexCoordPointerListIBM :: MonadIO m => GLint -> GLenum -> GLint -> Ptr () -> GLint -> m ()
-glTexCoordPointerListIBM = ffiintenumintPtrVintIOV glTexCoordPointerListIBMFunPtr
+-- | Usage: @'glTexCoordPointerListIBM' size type stride pointer ptrstride@
+--
+-- The parameter @type@ is a @TexCoordPointerType@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_DOUBLE', 'Graphics.GL.Raw.Internal.Shared.GL_FLOAT', 'Graphics.GL.Raw.Internal.Shared.GL_INT', 'Graphics.GL.Raw.Internal.Shared.GL_SHORT'.
+--
+-- The length of @pointer@ should be @COMPSIZE(size,type,stride)@.
 
-glTexCoordPointerListIBMFunPtr :: FunPtr (GLint -> GLenum -> GLint -> Ptr () -> GLint -> IO ())
+
+glTexCoordPointerListIBM :: MonadIO m => GLint -> GLenum -> GLint -> Ptr (Ptr ()) -> GLint -> m ()
+glTexCoordPointerListIBM = ffiintenumintPtrPtrVintIOV glTexCoordPointerListIBMFunPtr
+
+glTexCoordPointerListIBMFunPtr :: FunPtr (GLint -> GLenum -> GLint -> Ptr (Ptr ()) -> GLint -> IO ())
 glTexCoordPointerListIBMFunPtr = unsafePerformIO (getProcAddress "glTexCoordPointerListIBM")
 
 {-# NOINLINE glTexCoordPointerListIBMFunPtr #-}
 
-glVertexPointerListIBM :: MonadIO m => GLint -> GLenum -> GLint -> Ptr () -> GLint -> m ()
-glVertexPointerListIBM = ffiintenumintPtrVintIOV glVertexPointerListIBMFunPtr
+-- | Usage: @'glVertexPointerListIBM' size type stride pointer ptrstride@
+--
+-- The parameter @type@ is a @VertexPointerType@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_DOUBLE', 'Graphics.GL.Raw.Internal.Shared.GL_FLOAT', 'Graphics.GL.Raw.Internal.Shared.GL_INT', 'Graphics.GL.Raw.Internal.Shared.GL_SHORT'.
+--
+-- The length of @pointer@ should be @COMPSIZE(size,type,stride)@.
 
-glVertexPointerListIBMFunPtr :: FunPtr (GLint -> GLenum -> GLint -> Ptr () -> GLint -> IO ())
+
+glVertexPointerListIBM :: MonadIO m => GLint -> GLenum -> GLint -> Ptr (Ptr ()) -> GLint -> m ()
+glVertexPointerListIBM = ffiintenumintPtrPtrVintIOV glVertexPointerListIBMFunPtr
+
+glVertexPointerListIBMFunPtr :: FunPtr (GLint -> GLenum -> GLint -> Ptr (Ptr ()) -> GLint -> IO ())
 glVertexPointerListIBMFunPtr = unsafePerformIO (getProcAddress "glVertexPointerListIBM")
 
 {-# NOINLINE glVertexPointerListIBMFunPtr #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/IMG/MultisampledRenderToTexture.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/IMG/MultisampledRenderToTexture.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/IMG/MultisampledRenderToTexture.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/IMG/MultisampledRenderToTexture.hs
@@ -21,9 +21,15 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the GL_IMG_multisampled_render_to_texture extension is available.
+
 gl_IMG_multisampled_render_to_texture :: Bool
 gl_IMG_multisampled_render_to_texture = member "GL_IMG_multisampled_render_to_texture" extensions
+{-# NOINLINE gl_IMG_multisampled_render_to_texture #-}
 
+-- | Usage: @'glFramebufferTexture2DMultisampleIMG' target attachment textarget texture level samples@
+
+
 glFramebufferTexture2DMultisampleIMG :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> GLsizei -> m ()
 glFramebufferTexture2DMultisampleIMG = ffienumenumenumuintintsizeiIOV glFramebufferTexture2DMultisampleIMGFunPtr
 
@@ -31,6 +37,9 @@
 glFramebufferTexture2DMultisampleIMGFunPtr = unsafePerformIO (getProcAddress "glFramebufferTexture2DMultisampleIMG")
 
 {-# NOINLINE glFramebufferTexture2DMultisampleIMGFunPtr #-}
+
+-- | Usage: @'glRenderbufferStorageMultisampleIMG' target samples internalformat width height@
+
 
 glRenderbufferStorageMultisampleIMG :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()
 glRenderbufferStorageMultisampleIMG = ffienumsizeienumsizeisizeiIOV glRenderbufferStorageMultisampleIMGFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/IMG/ProgramBinary.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/IMG/ProgramBinary.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/IMG/ProgramBinary.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/IMG/ProgramBinary.hs
@@ -11,7 +11,10 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the GL_IMG_program_binary extension is available.
+
 gl_IMG_program_binary :: Bool
 gl_IMG_program_binary = member "GL_IMG_program_binary" extensions
+{-# NOINLINE gl_IMG_program_binary #-}
 
 pattern GL_SGX_PROGRAM_BINARY_IMG = 0x9130
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/IMG/ReadFormat.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/IMG/ReadFormat.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/IMG/ReadFormat.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/IMG/ReadFormat.hs
@@ -12,8 +12,11 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the GL_IMG_read_format extension is available.
+
 gl_IMG_read_format :: Bool
 gl_IMG_read_format = member "GL_IMG_read_format" extensions
+{-# NOINLINE gl_IMG_read_format #-}
 
 pattern GL_BGRA_IMG = 0x80E1
 
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/IMG/ShaderBinary.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/IMG/ShaderBinary.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/IMG/ShaderBinary.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/IMG/ShaderBinary.hs
@@ -11,7 +11,10 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the GL_IMG_shader_binary extension is available.
+
 gl_IMG_shader_binary :: Bool
 gl_IMG_shader_binary = member "GL_IMG_shader_binary" extensions
+{-# NOINLINE gl_IMG_shader_binary #-}
 
 pattern GL_SGX_BINARY_IMG = 0x8C0A
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/IMG/TextureCompressionPvrtc.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/IMG/TextureCompressionPvrtc.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/IMG/TextureCompressionPvrtc.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/IMG/TextureCompressionPvrtc.hs
@@ -14,8 +14,11 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the GL_IMG_texture_compression_pvrtc extension is available.
+
 gl_IMG_texture_compression_pvrtc :: Bool
 gl_IMG_texture_compression_pvrtc = member "GL_IMG_texture_compression_pvrtc" extensions
+{-# NOINLINE gl_IMG_texture_compression_pvrtc #-}
 
 pattern GL_COMPRESSED_RGBA_PVRTC_2BPPV1_IMG = 0x8C03
 
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/IMG/TextureCompressionPvrtc2.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/IMG/TextureCompressionPvrtc2.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/IMG/TextureCompressionPvrtc2.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/IMG/TextureCompressionPvrtc2.hs
@@ -12,8 +12,11 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the GL_IMG_texture_compression_pvrtc2 extension is available.
+
 gl_IMG_texture_compression_pvrtc2 :: Bool
 gl_IMG_texture_compression_pvrtc2 = member "GL_IMG_texture_compression_pvrtc2" extensions
+{-# NOINLINE gl_IMG_texture_compression_pvrtc2 #-}
 
 pattern GL_COMPRESSED_RGBA_PVRTC_2BPPV2_IMG = 0x9137
 
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/IMG/TextureEnvEnhancedFixedFunction.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/IMG/TextureEnvEnhancedFixedFunction.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/IMG/TextureEnvEnhancedFixedFunction.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/IMG/TextureEnvEnhancedFixedFunction.hs
@@ -17,8 +17,11 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the GL_IMG_texture_env_enhanced_fixed_function extension is available.
+
 gl_IMG_texture_env_enhanced_fixed_function :: Bool
 gl_IMG_texture_env_enhanced_fixed_function = member "GL_IMG_texture_env_enhanced_fixed_function" extensions
+{-# NOINLINE gl_IMG_texture_env_enhanced_fixed_function #-}
 
 pattern GL_ADD_BLEND_IMG = 0x8C09
 
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/IMG/UserClipPlane.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/IMG/UserClipPlane.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/IMG/UserClipPlane.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/IMG/UserClipPlane.hs
@@ -24,9 +24,17 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the GL_IMG_user_clip_plane extension is available.
+
 gl_IMG_user_clip_plane :: Bool
 gl_IMG_user_clip_plane = member "GL_IMG_user_clip_plane" extensions
+{-# NOINLINE gl_IMG_user_clip_plane #-}
 
+-- | Usage: @'glClipPlanefIMG' p eqn@
+--
+-- The length of @eqn@ should be @4@.
+
+
 glClipPlanefIMG :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
 glClipPlanefIMG = ffienumPtrfloatIOV glClipPlanefIMGFunPtr
 
@@ -34,6 +42,11 @@
 glClipPlanefIMGFunPtr = unsafePerformIO (getProcAddress "glClipPlanefIMG")
 
 {-# NOINLINE glClipPlanefIMGFunPtr #-}
+
+-- | Usage: @'glClipPlanexIMG' p eqn@
+--
+-- The length of @eqn@ should be @4@.
+
 
 glClipPlanexIMG :: MonadIO m => GLenum -> Ptr GLfixed -> m ()
 glClipPlanexIMG = ffienumPtrfixedIOV glClipPlanexIMGFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/INGR/BlendFuncSeparate.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/INGR/BlendFuncSeparate.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/INGR/BlendFuncSeparate.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/INGR/BlendFuncSeparate.hs
@@ -16,8 +16,24 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the GL_INGR_blend_func_separate extension is available.
+
 gl_INGR_blend_func_separate :: Bool
 gl_INGR_blend_func_separate = member "GL_INGR_blend_func_separate" extensions
+{-# NOINLINE gl_INGR_blend_func_separate #-}
+
+-- | Usage: @'glBlendFuncSeparateINGR' sfactorRGB dfactorRGB sfactorAlpha dfactorAlpha@
+--
+-- The parameter @sfactorRGB@ is a @BlendFuncSeparateParameterEXT@.
+--
+-- The parameter @dfactorRGB@ is a @BlendFuncSeparateParameterEXT@.
+--
+-- The parameter @sfactorAlpha@ is a @BlendFuncSeparateParameterEXT@.
+--
+-- The parameter @dfactorAlpha@ is a @BlendFuncSeparateParameterEXT@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glBlendFuncSeparate'.
+
 
 glBlendFuncSeparateINGR :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> m ()
 glBlendFuncSeparateINGR = ffienumenumenumenumIOV glBlendFuncSeparateINGRFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/INGR/ColorClamp.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/INGR/ColorClamp.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/INGR/ColorClamp.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/INGR/ColorClamp.hs
@@ -18,8 +18,11 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/INGR/color_clamp.txt GL_INGR_color_clamp> extension is available.
+
 gl_INGR_color_clamp :: Bool
 gl_INGR_color_clamp = member "GL_INGR_color_clamp" extensions
+{-# NOINLINE gl_INGR_color_clamp #-}
 
 pattern GL_ALPHA_MAX_CLAMP_INGR = 0x8567
 
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/INGR/InterlaceRead.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/INGR/InterlaceRead.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/INGR/InterlaceRead.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/INGR/InterlaceRead.hs
@@ -11,7 +11,10 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/INGR/interlace_read.txt GL_INGR_interlace_read> extension is available.
+
 gl_INGR_interlace_read :: Bool
 gl_INGR_interlace_read = member "GL_INGR_interlace_read" extensions
+{-# NOINLINE gl_INGR_interlace_read #-}
 
 pattern GL_INTERLACE_READ_INGR = 0x8568
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/INTEL/FragmentShaderOrdering.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/INTEL/FragmentShaderOrdering.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/INTEL/FragmentShaderOrdering.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/INTEL/FragmentShaderOrdering.hs
@@ -8,5 +8,8 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/INTEL/fragment_shader_ordering.txt GL_INTEL_fragment_shader_ordering> extension is available.
+
 gl_INTEL_fragment_shader_ordering :: Bool
 gl_INTEL_fragment_shader_ordering = member "GL_INTEL_fragment_shader_ordering" extensions
+{-# NOINLINE gl_INTEL_fragment_shader_ordering #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/INTEL/MapTexture.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/INTEL/MapTexture.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/INTEL/MapTexture.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/INTEL/MapTexture.hs
@@ -22,9 +22,19 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/INTEL/map_texture.txt GL_INTEL_map_texture> extension is available.
+
 gl_INTEL_map_texture :: Bool
 gl_INTEL_map_texture = member "GL_INTEL_map_texture" extensions
+{-# NOINLINE gl_INTEL_map_texture #-}
 
+-- | Usage: @'glMapTexture2DINTEL' texture level access stride layout@
+--
+-- The length of @stride@ should be @1@.
+--
+-- The length of @layout@ should be @1@.
+
+
 glMapTexture2DINTEL :: MonadIO m => GLuint -> GLint -> GLbitfield -> Ptr GLint -> Ptr GLenum -> m (Ptr ())
 glMapTexture2DINTEL = ffiuintintbitfieldPtrintPtrenumIOPtrV glMapTexture2DINTELFunPtr
 
@@ -33,6 +43,9 @@
 
 {-# NOINLINE glMapTexture2DINTELFunPtr #-}
 
+-- | Usage: @'glSyncTextureINTEL' texture@
+
+
 glSyncTextureINTEL :: MonadIO m => GLuint -> m ()
 glSyncTextureINTEL = ffiuintIOV glSyncTextureINTELFunPtr
 
@@ -40,6 +53,9 @@
 glSyncTextureINTELFunPtr = unsafePerformIO (getProcAddress "glSyncTextureINTEL")
 
 {-# NOINLINE glSyncTextureINTELFunPtr #-}
+
+-- | Usage: @'glUnmapTexture2DINTEL' texture level@
+
 
 glUnmapTexture2DINTEL :: MonadIO m => GLuint -> GLint -> m ()
 glUnmapTexture2DINTEL = ffiuintintIOV glUnmapTexture2DINTELFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/INTEL/ParallelArrays.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/INTEL/ParallelArrays.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/INTEL/ParallelArrays.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/INTEL/ParallelArrays.hs
@@ -24,37 +24,68 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/INTEL/parallel_arrays.txt GL_INTEL_parallel_arrays> extension is available.
+
 gl_INTEL_parallel_arrays :: Bool
 gl_INTEL_parallel_arrays = member "GL_INTEL_parallel_arrays" extensions
+{-# NOINLINE gl_INTEL_parallel_arrays #-}
 
-glColorPointervINTEL :: MonadIO m => GLint -> GLenum -> Ptr () -> m ()
-glColorPointervINTEL = ffiintenumPtrVIOV glColorPointervINTELFunPtr
+-- | Usage: @'glColorPointervINTEL' size type pointer@
+--
+-- The parameter @type@ is a @VertexPointerType@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_DOUBLE', 'Graphics.GL.Raw.Internal.Shared.GL_FLOAT', 'Graphics.GL.Raw.Internal.Shared.GL_INT', 'Graphics.GL.Raw.Internal.Shared.GL_SHORT'.
+--
+-- The length of @pointer@ should be @4@.
 
-glColorPointervINTELFunPtr :: FunPtr (GLint -> GLenum -> Ptr () -> IO ())
+
+glColorPointervINTEL :: MonadIO m => GLint -> GLenum -> Ptr (Ptr ()) -> m ()
+glColorPointervINTEL = ffiintenumPtrPtrVIOV glColorPointervINTELFunPtr
+
+glColorPointervINTELFunPtr :: FunPtr (GLint -> GLenum -> Ptr (Ptr ()) -> IO ())
 glColorPointervINTELFunPtr = unsafePerformIO (getProcAddress "glColorPointervINTEL")
 
 {-# NOINLINE glColorPointervINTELFunPtr #-}
 
-glNormalPointervINTEL :: MonadIO m => GLenum -> Ptr () -> m ()
-glNormalPointervINTEL = ffienumPtrVIOV glNormalPointervINTELFunPtr
+-- | Usage: @'glNormalPointervINTEL' type pointer@
+--
+-- The parameter @type@ is a @NormalPointerType@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_BYTE', 'Graphics.GL.Raw.Internal.Shared.GL_DOUBLE', 'Graphics.GL.Raw.Internal.Shared.GL_FLOAT', 'Graphics.GL.Raw.Internal.Shared.GL_INT', 'Graphics.GL.Raw.Internal.Shared.GL_SHORT'.
+--
+-- The length of @pointer@ should be @4@.
 
-glNormalPointervINTELFunPtr :: FunPtr (GLenum -> Ptr () -> IO ())
+
+glNormalPointervINTEL :: MonadIO m => GLenum -> Ptr (Ptr ()) -> m ()
+glNormalPointervINTEL = ffienumPtrPtrVIOV glNormalPointervINTELFunPtr
+
+glNormalPointervINTELFunPtr :: FunPtr (GLenum -> Ptr (Ptr ()) -> IO ())
 glNormalPointervINTELFunPtr = unsafePerformIO (getProcAddress "glNormalPointervINTEL")
 
 {-# NOINLINE glNormalPointervINTELFunPtr #-}
 
-glTexCoordPointervINTEL :: MonadIO m => GLint -> GLenum -> Ptr () -> m ()
-glTexCoordPointervINTEL = ffiintenumPtrVIOV glTexCoordPointervINTELFunPtr
+-- | Usage: @'glTexCoordPointervINTEL' size type pointer@
+--
+-- The parameter @type@ is a @VertexPointerType@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_DOUBLE', 'Graphics.GL.Raw.Internal.Shared.GL_FLOAT', 'Graphics.GL.Raw.Internal.Shared.GL_INT', 'Graphics.GL.Raw.Internal.Shared.GL_SHORT'.
+--
+-- The length of @pointer@ should be @4@.
 
-glTexCoordPointervINTELFunPtr :: FunPtr (GLint -> GLenum -> Ptr () -> IO ())
+
+glTexCoordPointervINTEL :: MonadIO m => GLint -> GLenum -> Ptr (Ptr ()) -> m ()
+glTexCoordPointervINTEL = ffiintenumPtrPtrVIOV glTexCoordPointervINTELFunPtr
+
+glTexCoordPointervINTELFunPtr :: FunPtr (GLint -> GLenum -> Ptr (Ptr ()) -> IO ())
 glTexCoordPointervINTELFunPtr = unsafePerformIO (getProcAddress "glTexCoordPointervINTEL")
 
 {-# NOINLINE glTexCoordPointervINTELFunPtr #-}
 
-glVertexPointervINTEL :: MonadIO m => GLint -> GLenum -> Ptr () -> m ()
-glVertexPointervINTEL = ffiintenumPtrVIOV glVertexPointervINTELFunPtr
+-- | Usage: @'glVertexPointervINTEL' size type pointer@
+--
+-- The parameter @type@ is a @VertexPointerType@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_DOUBLE', 'Graphics.GL.Raw.Internal.Shared.GL_FLOAT', 'Graphics.GL.Raw.Internal.Shared.GL_INT', 'Graphics.GL.Raw.Internal.Shared.GL_SHORT'.
+--
+-- The length of @pointer@ should be @4@.
 
-glVertexPointervINTELFunPtr :: FunPtr (GLint -> GLenum -> Ptr () -> IO ())
+
+glVertexPointervINTEL :: MonadIO m => GLint -> GLenum -> Ptr (Ptr ()) -> m ()
+glVertexPointervINTEL = ffiintenumPtrPtrVIOV glVertexPointervINTELFunPtr
+
+glVertexPointervINTELFunPtr :: FunPtr (GLint -> GLenum -> Ptr (Ptr ()) -> IO ())
 glVertexPointervINTELFunPtr = unsafePerformIO (getProcAddress "glVertexPointervINTEL")
 
 {-# NOINLINE glVertexPointervINTELFunPtr #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/INTEL/PerformanceQuery.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/INTEL/PerformanceQuery.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/INTEL/PerformanceQuery.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/INTEL/PerformanceQuery.hs
@@ -45,9 +45,15 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/INTEL/performance_query.txt GL_INTEL_performance_query> extension is available.
+
 gl_INTEL_performance_query :: Bool
 gl_INTEL_performance_query = member "GL_INTEL_performance_query" extensions
+{-# NOINLINE gl_INTEL_performance_query #-}
 
+-- | Usage: @'glBeginPerfQueryINTEL' queryHandle@
+
+
 glBeginPerfQueryINTEL :: MonadIO m => GLuint -> m ()
 glBeginPerfQueryINTEL = ffiuintIOV glBeginPerfQueryINTELFunPtr
 
@@ -56,6 +62,9 @@
 
 {-# NOINLINE glBeginPerfQueryINTELFunPtr #-}
 
+-- | Usage: @'glCreatePerfQueryINTEL' queryId queryHandle@
+
+
 glCreatePerfQueryINTEL :: MonadIO m => GLuint -> Ptr GLuint -> m ()
 glCreatePerfQueryINTEL = ffiuintPtruintIOV glCreatePerfQueryINTELFunPtr
 
@@ -64,6 +73,9 @@
 
 {-# NOINLINE glCreatePerfQueryINTELFunPtr #-}
 
+-- | Usage: @'glDeletePerfQueryINTEL' queryHandle@
+
+
 glDeletePerfQueryINTEL :: MonadIO m => GLuint -> m ()
 glDeletePerfQueryINTEL = ffiuintIOV glDeletePerfQueryINTELFunPtr
 
@@ -72,6 +84,9 @@
 
 {-# NOINLINE glDeletePerfQueryINTELFunPtr #-}
 
+-- | Usage: @'glEndPerfQueryINTEL' queryHandle@
+
+
 glEndPerfQueryINTEL :: MonadIO m => GLuint -> m ()
 glEndPerfQueryINTEL = ffiuintIOV glEndPerfQueryINTELFunPtr
 
@@ -80,6 +95,9 @@
 
 {-# NOINLINE glEndPerfQueryINTELFunPtr #-}
 
+-- | Usage: @'glGetFirstPerfQueryIdINTEL' queryId@
+
+
 glGetFirstPerfQueryIdINTEL :: MonadIO m => Ptr GLuint -> m ()
 glGetFirstPerfQueryIdINTEL = ffiPtruintIOV glGetFirstPerfQueryIdINTELFunPtr
 
@@ -88,6 +106,9 @@
 
 {-# NOINLINE glGetFirstPerfQueryIdINTELFunPtr #-}
 
+-- | Usage: @'glGetNextPerfQueryIdINTEL' queryId nextQueryId@
+
+
 glGetNextPerfQueryIdINTEL :: MonadIO m => GLuint -> Ptr GLuint -> m ()
 glGetNextPerfQueryIdINTEL = ffiuintPtruintIOV glGetNextPerfQueryIdINTELFunPtr
 
@@ -96,6 +117,9 @@
 
 {-# NOINLINE glGetNextPerfQueryIdINTELFunPtr #-}
 
+-- | Usage: @'glGetPerfCounterInfoINTEL' queryId counterId counterNameLength counterName counterDescLength counterDesc counterOffset counterDataSize counterTypeEnum counterDataTypeEnum rawCounterMaxValue@
+
+
 glGetPerfCounterInfoINTEL :: MonadIO m => GLuint -> GLuint -> GLuint -> Ptr GLchar -> GLuint -> Ptr GLchar -> Ptr GLuint -> Ptr GLuint -> Ptr GLuint -> Ptr GLuint -> Ptr GLuint64 -> m ()
 glGetPerfCounterInfoINTEL = ffiuintuintuintPtrcharuintPtrcharPtruintPtruintPtruintPtruintPtruint64IOV glGetPerfCounterInfoINTELFunPtr
 
@@ -104,6 +128,9 @@
 
 {-# NOINLINE glGetPerfCounterInfoINTELFunPtr #-}
 
+-- | Usage: @'glGetPerfQueryDataINTEL' queryHandle flags dataSize data bytesWritten@
+
+
 glGetPerfQueryDataINTEL :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr () -> Ptr GLuint -> m ()
 glGetPerfQueryDataINTEL = ffiuintuintsizeiPtrVPtruintIOV glGetPerfQueryDataINTELFunPtr
 
@@ -112,6 +139,9 @@
 
 {-# NOINLINE glGetPerfQueryDataINTELFunPtr #-}
 
+-- | Usage: @'glGetPerfQueryIdByNameINTEL' queryName queryId@
+
+
 glGetPerfQueryIdByNameINTEL :: MonadIO m => Ptr GLchar -> Ptr GLuint -> m ()
 glGetPerfQueryIdByNameINTEL = ffiPtrcharPtruintIOV glGetPerfQueryIdByNameINTELFunPtr
 
@@ -119,6 +149,9 @@
 glGetPerfQueryIdByNameINTELFunPtr = unsafePerformIO (getProcAddress "glGetPerfQueryIdByNameINTEL")
 
 {-# NOINLINE glGetPerfQueryIdByNameINTELFunPtr #-}
+
+-- | Usage: @'glGetPerfQueryInfoINTEL' queryId queryNameLength queryName dataSize noCounters noInstances capsMask@
+
 
 glGetPerfQueryInfoINTEL :: MonadIO m => GLuint -> GLuint -> Ptr GLchar -> Ptr GLuint -> Ptr GLuint -> Ptr GLuint -> Ptr GLuint -> m ()
 glGetPerfQueryInfoINTEL = ffiuintuintPtrcharPtruintPtruintPtruintPtruintIOV glGetPerfQueryInfoINTELFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/KHR/BlendEquationAdvanced.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/KHR/BlendEquationAdvanced.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/KHR/BlendEquationAdvanced.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/KHR/BlendEquationAdvanced.hs
@@ -30,8 +30,14 @@
 import Graphics.GL.Raw.Internal.Proc
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/KHR/blend_equation_advanced.txt GL_KHR_blend_equation_advanced> extension is available.
+
 gl_KHR_blend_equation_advanced :: Bool
 gl_KHR_blend_equation_advanced = member "GL_KHR_blend_equation_advanced" extensions
+{-# NOINLINE gl_KHR_blend_equation_advanced #-}
+
+-- | Usage: @'glBlendBarrierKHR'@
+
 
 glBlendBarrierKHR :: MonadIO m => m ()
 glBlendBarrierKHR = ffiIOV glBlendBarrierKHRFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/KHR/BlendEquationAdvancedCoherent.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/KHR/BlendEquationAdvancedCoherent.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/KHR/BlendEquationAdvancedCoherent.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/KHR/BlendEquationAdvancedCoherent.hs
@@ -11,7 +11,10 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the GL_KHR_blend_equation_advanced_coherent extension is available.
+
 gl_KHR_blend_equation_advanced_coherent :: Bool
 gl_KHR_blend_equation_advanced_coherent = member "GL_KHR_blend_equation_advanced_coherent" extensions
+{-# NOINLINE gl_KHR_blend_equation_advanced_coherent #-}
 
 pattern GL_BLEND_ADVANCED_COHERENT_KHR = 0x9285
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/KHR/ContextFlushControl.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/KHR/ContextFlushControl.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/KHR/ContextFlushControl.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/KHR/ContextFlushControl.hs
@@ -16,8 +16,11 @@
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/KHR/context_flush_control.txt GL_KHR_context_flush_control> extension is available.
+
 gl_KHR_context_flush_control :: Bool
 gl_KHR_context_flush_control = member "GL_KHR_context_flush_control" extensions
+{-# NOINLINE gl_KHR_context_flush_control #-}
 
 pattern GL_CONTEXT_RELEASE_BEHAVIOR_FLUSH_KHR = 0x82FC
 
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/KHR/Debug.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/KHR/Debug.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/KHR/Debug.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/KHR/Debug.hs
@@ -118,9 +118,17 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/KHR/debug.txt GL_KHR_debug> extension is available.
+
 gl_KHR_debug :: Bool
 gl_KHR_debug = member "GL_KHR_debug" extensions
+{-# NOINLINE gl_KHR_debug #-}
 
+-- | Usage: @'glDebugMessageCallbackKHR' callback userParam@
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glDebugMessageCallback'.
+
+
 glDebugMessageCallbackKHR :: MonadIO m => GLDEBUGPROCKHR -> Ptr () -> m ()
 glDebugMessageCallbackKHR = ffiDEBUGPROCKHRPtrVIOV glDebugMessageCallbackKHRFunPtr
 
@@ -129,6 +137,11 @@
 
 {-# NOINLINE glDebugMessageCallbackKHRFunPtr #-}
 
+-- | Usage: @'glDebugMessageControlKHR' source type severity count ids enabled@
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glDebugMessageControl'.
+
+
 glDebugMessageControlKHR :: MonadIO m => GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLuint -> GLboolean -> m ()
 glDebugMessageControlKHR = ffienumenumenumsizeiPtruintbooleanIOV glDebugMessageControlKHRFunPtr
 
@@ -137,6 +150,11 @@
 
 {-# NOINLINE glDebugMessageControlKHRFunPtr #-}
 
+-- | Usage: @'glDebugMessageInsertKHR' source type id severity length buf@
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glDebugMessageInsert'.
+
+
 glDebugMessageInsertKHR :: MonadIO m => GLenum -> GLenum -> GLuint -> GLenum -> GLsizei -> Ptr GLchar -> m ()
 glDebugMessageInsertKHR = ffienumenumuintenumsizeiPtrcharIOV glDebugMessageInsertKHRFunPtr
 
@@ -145,6 +163,23 @@
 
 {-# NOINLINE glDebugMessageInsertKHRFunPtr #-}
 
+-- | Usage: @'glGetDebugMessageLogKHR' count bufSize sources types ids severities lengths messageLog@
+--
+-- The length of @sources@ should be @count@.
+--
+-- The length of @types@ should be @count@.
+--
+-- The length of @ids@ should be @count@.
+--
+-- The length of @severities@ should be @count@.
+--
+-- The length of @lengths@ should be @count@.
+--
+-- The length of @messageLog@ should be @bufSize@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glGetDebugMessageLog'.
+
+
 glGetDebugMessageLogKHR :: MonadIO m => GLuint -> GLsizei -> Ptr GLenum -> Ptr GLenum -> Ptr GLuint -> Ptr GLenum -> Ptr GLsizei -> Ptr GLchar -> m GLuint
 glGetDebugMessageLogKHR = ffiuintsizeiPtrenumPtrenumPtruintPtrenumPtrsizeiPtrcharIOuint glGetDebugMessageLogKHRFunPtr
 
@@ -153,6 +188,13 @@
 
 {-# NOINLINE glGetDebugMessageLogKHRFunPtr #-}
 
+-- | Usage: @'glGetObjectLabelKHR' identifier name bufSize length label@
+--
+-- The length of @label@ should be @bufSize@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glGetObjectLabel'.
+
+
 glGetObjectLabelKHR :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
 glGetObjectLabelKHR = ffienumuintsizeiPtrsizeiPtrcharIOV glGetObjectLabelKHRFunPtr
 
@@ -161,6 +203,15 @@
 
 {-# NOINLINE glGetObjectLabelKHRFunPtr #-}
 
+-- | Usage: @'glGetObjectPtrLabelKHR' ptr bufSize length label@
+--
+-- The length of @length@ should be @1@.
+--
+-- The length of @label@ should be @bufSize@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glGetObjectPtrLabel'.
+
+
 glGetObjectPtrLabelKHR :: MonadIO m => Ptr () -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
 glGetObjectPtrLabelKHR = ffiPtrVsizeiPtrsizeiPtrcharIOV glGetObjectPtrLabelKHRFunPtr
 
@@ -169,14 +220,24 @@
 
 {-# NOINLINE glGetObjectPtrLabelKHRFunPtr #-}
 
-glGetPointervKHR :: MonadIO m => GLenum -> Ptr () -> m ()
-glGetPointervKHR = ffienumPtrVIOV glGetPointervKHRFunPtr
+-- | Usage: @'glGetPointervKHR' pname params@
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glGetPointerv'.
 
-glGetPointervKHRFunPtr :: FunPtr (GLenum -> Ptr () -> IO ())
+
+glGetPointervKHR :: MonadIO m => GLenum -> Ptr (Ptr ()) -> m ()
+glGetPointervKHR = ffienumPtrPtrVIOV glGetPointervKHRFunPtr
+
+glGetPointervKHRFunPtr :: FunPtr (GLenum -> Ptr (Ptr ()) -> IO ())
 glGetPointervKHRFunPtr = unsafePerformIO (getProcAddress "glGetPointervKHR")
 
 {-# NOINLINE glGetPointervKHRFunPtr #-}
 
+-- | Usage: @'glObjectLabelKHR' identifier name length label@
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glObjectLabel'.
+
+
 glObjectLabelKHR :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLchar -> m ()
 glObjectLabelKHR = ffienumuintsizeiPtrcharIOV glObjectLabelKHRFunPtr
 
@@ -185,6 +246,11 @@
 
 {-# NOINLINE glObjectLabelKHRFunPtr #-}
 
+-- | Usage: @'glObjectPtrLabelKHR' ptr length label@
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glObjectPtrLabel'.
+
+
 glObjectPtrLabelKHR :: MonadIO m => Ptr () -> GLsizei -> Ptr GLchar -> m ()
 glObjectPtrLabelKHR = ffiPtrVsizeiPtrcharIOV glObjectPtrLabelKHRFunPtr
 
@@ -193,6 +259,11 @@
 
 {-# NOINLINE glObjectPtrLabelKHRFunPtr #-}
 
+-- | Usage: @'glPopDebugGroupKHR'@
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glPopDebugGroup'.
+
+
 glPopDebugGroupKHR :: MonadIO m => m ()
 glPopDebugGroupKHR = ffiIOV glPopDebugGroupKHRFunPtr
 
@@ -200,6 +271,11 @@
 glPopDebugGroupKHRFunPtr = unsafePerformIO (getProcAddress "glPopDebugGroupKHR")
 
 {-# NOINLINE glPopDebugGroupKHRFunPtr #-}
+
+-- | Usage: @'glPushDebugGroupKHR' source id length message@
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glPushDebugGroup'.
+
 
 glPushDebugGroupKHR :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLchar -> m ()
 glPushDebugGroupKHR = ffienumuintsizeiPtrcharIOV glPushDebugGroupKHRFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/KHR/RobustBufferAccessBehavior.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/KHR/RobustBufferAccessBehavior.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/KHR/RobustBufferAccessBehavior.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/KHR/RobustBufferAccessBehavior.hs
@@ -8,5 +8,8 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/KHR/robust_buffer_access_behavior.txt GL_KHR_robust_buffer_access_behavior> extension is available.
+
 gl_KHR_robust_buffer_access_behavior :: Bool
 gl_KHR_robust_buffer_access_behavior = member "GL_KHR_robust_buffer_access_behavior" extensions
+{-# NOINLINE gl_KHR_robust_buffer_access_behavior #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/KHR/Robustness.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/KHR/Robustness.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/KHR/Robustness.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/KHR/Robustness.hs
@@ -43,9 +43,17 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/KHR/robustness.txt GL_KHR_robustness> extension is available.
+
 gl_KHR_robustness :: Bool
 gl_KHR_robustness = member "GL_KHR_robustness" extensions
+{-# NOINLINE gl_KHR_robustness #-}
 
+-- | Usage: @'glGetGraphicsResetStatusKHR'@
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glGetGraphicsResetStatus'.
+
+
 glGetGraphicsResetStatusKHR :: MonadIO m => m GLenum
 glGetGraphicsResetStatusKHR = ffiIOenum glGetGraphicsResetStatusKHRFunPtr
 
@@ -54,6 +62,11 @@
 
 {-# NOINLINE glGetGraphicsResetStatusKHRFunPtr #-}
 
+-- | Usage: @'glGetnUniformfvKHR' program location bufSize params@
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glGetnUniformfv'.
+
+
 glGetnUniformfvKHR :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()
 glGetnUniformfvKHR = ffiuintintsizeiPtrfloatIOV glGetnUniformfvKHRFunPtr
 
@@ -62,6 +75,11 @@
 
 {-# NOINLINE glGetnUniformfvKHRFunPtr #-}
 
+-- | Usage: @'glGetnUniformivKHR' program location bufSize params@
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glGetnUniformiv'.
+
+
 glGetnUniformivKHR :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()
 glGetnUniformivKHR = ffiuintintsizeiPtrintIOV glGetnUniformivKHRFunPtr
 
@@ -70,6 +88,11 @@
 
 {-# NOINLINE glGetnUniformivKHRFunPtr #-}
 
+-- | Usage: @'glGetnUniformuivKHR' program location bufSize params@
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glGetnUniformuiv'.
+
+
 glGetnUniformuivKHR :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()
 glGetnUniformuivKHR = ffiuintintsizeiPtruintIOV glGetnUniformuivKHRFunPtr
 
@@ -77,6 +100,21 @@
 glGetnUniformuivKHRFunPtr = unsafePerformIO (getProcAddress "glGetnUniformuivKHR")
 
 {-# NOINLINE glGetnUniformuivKHRFunPtr #-}
+
+-- | Usage: @'glReadnPixelsKHR' x y width height format type bufSize data@
+--
+-- The parameter @x@ is a @WinCoord@.
+--
+-- The parameter @y@ is a @WinCoord@.
+--
+-- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Raw.Extension.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_ALPHA', 'Graphics.GL.Raw.Internal.Shared.GL_BLUE', 'Graphics.GL.Raw.Extension.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Raw.Extension.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Raw.Internal.Shared.GL_GREEN', 'Graphics.GL.Raw.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Raw.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Raw.Internal.Shared.GL_RED', 'Graphics.GL.Raw.Extension.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_RGB', 'Graphics.GL.Raw.Internal.Shared.GL_RGBA', 'Graphics.GL.Raw.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Raw.Extension.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
+--
+-- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_BITMAP', 'Graphics.GL.Raw.Internal.Shared.GL_BYTE', 'Graphics.GL.Raw.Internal.Shared.GL_FLOAT', 'Graphics.GL.Raw.Internal.Shared.GL_INT', 'Graphics.GL.Raw.Internal.Shared.GL_SHORT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
+--
+-- The length of @data@ should be @bufSize@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glReadnPixels'.
+
 
 glReadnPixelsKHR :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> GLsizei -> Ptr () -> m ()
 glReadnPixelsKHR = ffiintintsizeisizeienumenumsizeiPtrVIOV glReadnPixelsKHRFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/KHR/TextureCompressionAstcHdr.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/KHR/TextureCompressionAstcHdr.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/KHR/TextureCompressionAstcHdr.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/KHR/TextureCompressionAstcHdr.hs
@@ -39,5 +39,8 @@
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/KHR/texture_compression_astc_hdr.txt GL_KHR_texture_compression_astc_hdr> extension is available.
+
 gl_KHR_texture_compression_astc_hdr :: Bool
 gl_KHR_texture_compression_astc_hdr = member "GL_KHR_texture_compression_astc_hdr" extensions
+{-# NOINLINE gl_KHR_texture_compression_astc_hdr #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/KHR/TextureCompressionAstcLdr.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/KHR/TextureCompressionAstcLdr.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/KHR/TextureCompressionAstcLdr.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/KHR/TextureCompressionAstcLdr.hs
@@ -39,5 +39,8 @@
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
 
+-- | Checks that the GL_KHR_texture_compression_astc_ldr extension is available.
+
 gl_KHR_texture_compression_astc_ldr :: Bool
 gl_KHR_texture_compression_astc_ldr = member "GL_KHR_texture_compression_astc_ldr" extensions
+{-# NOINLINE gl_KHR_texture_compression_astc_ldr #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/MESA/PackInvert.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/MESA/PackInvert.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/MESA/PackInvert.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/MESA/PackInvert.hs
@@ -11,7 +11,10 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/MESA/pack_invert.txt GL_MESA_pack_invert> extension is available.
+
 gl_MESA_pack_invert :: Bool
 gl_MESA_pack_invert = member "GL_MESA_pack_invert" extensions
+{-# NOINLINE gl_MESA_pack_invert #-}
 
 pattern GL_PACK_INVERT_MESA = 0x8758
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/MESA/ResizeBuffers.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/MESA/ResizeBuffers.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/MESA/ResizeBuffers.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/MESA/ResizeBuffers.hs
@@ -15,8 +15,14 @@
 import Graphics.GL.Raw.Internal.Proc
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/MESA/resize_buffers.txt GL_MESA_resize_buffers> extension is available.
+
 gl_MESA_resize_buffers :: Bool
 gl_MESA_resize_buffers = member "GL_MESA_resize_buffers" extensions
+{-# NOINLINE gl_MESA_resize_buffers #-}
+
+-- | Usage: @'glResizeBuffersMESA'@
+
 
 glResizeBuffersMESA :: MonadIO m => m ()
 glResizeBuffersMESA = ffiIOV glResizeBuffersMESAFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/MESA/WindowPos.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/MESA/WindowPos.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/MESA/WindowPos.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/MESA/WindowPos.hs
@@ -39,9 +39,23 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/MESA/window_pos.txt GL_MESA_window_pos> extension is available.
+
 gl_MESA_window_pos :: Bool
 gl_MESA_window_pos = member "GL_MESA_window_pos" extensions
+{-# NOINLINE gl_MESA_window_pos #-}
 
+-- | Usage: @'glWindowPos2dMESA' x y@
+--
+-- The parameter @x@ is a @CoordD@.
+--
+-- The parameter @y@ is a @CoordD@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glWindowPos2d'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Extension.MESA.WindowPos.glWindowPos2dvMESA'.
+
+
 glWindowPos2dMESA :: MonadIO m => GLdouble -> GLdouble -> m ()
 glWindowPos2dMESA = ffidoubledoubleIOV glWindowPos2dMESAFunPtr
 
@@ -50,6 +64,15 @@
 
 {-# NOINLINE glWindowPos2dMESAFunPtr #-}
 
+-- | Usage: @'glWindowPos2dvMESA' v@
+--
+-- The parameter @v@ is a @CoordD@.
+--
+-- The length of @v@ should be @2@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glWindowPos2dv'.
+
+
 glWindowPos2dvMESA :: MonadIO m => Ptr GLdouble -> m ()
 glWindowPos2dvMESA = ffiPtrdoubleIOV glWindowPos2dvMESAFunPtr
 
@@ -58,6 +81,17 @@
 
 {-# NOINLINE glWindowPos2dvMESAFunPtr #-}
 
+-- | Usage: @'glWindowPos2fMESA' x y@
+--
+-- The parameter @x@ is a @CoordF@.
+--
+-- The parameter @y@ is a @CoordF@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glWindowPos2f'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Extension.MESA.WindowPos.glWindowPos2fvMESA'.
+
+
 glWindowPos2fMESA :: MonadIO m => GLfloat -> GLfloat -> m ()
 glWindowPos2fMESA = ffifloatfloatIOV glWindowPos2fMESAFunPtr
 
@@ -66,6 +100,15 @@
 
 {-# NOINLINE glWindowPos2fMESAFunPtr #-}
 
+-- | Usage: @'glWindowPos2fvMESA' v@
+--
+-- The parameter @v@ is a @CoordF@.
+--
+-- The length of @v@ should be @2@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glWindowPos2fv'.
+
+
 glWindowPos2fvMESA :: MonadIO m => Ptr GLfloat -> m ()
 glWindowPos2fvMESA = ffiPtrfloatIOV glWindowPos2fvMESAFunPtr
 
@@ -74,6 +117,17 @@
 
 {-# NOINLINE glWindowPos2fvMESAFunPtr #-}
 
+-- | Usage: @'glWindowPos2iMESA' x y@
+--
+-- The parameter @x@ is a @CoordI@.
+--
+-- The parameter @y@ is a @CoordI@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glWindowPos2i'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Extension.MESA.WindowPos.glWindowPos2ivMESA'.
+
+
 glWindowPos2iMESA :: MonadIO m => GLint -> GLint -> m ()
 glWindowPos2iMESA = ffiintintIOV glWindowPos2iMESAFunPtr
 
@@ -82,6 +136,15 @@
 
 {-# NOINLINE glWindowPos2iMESAFunPtr #-}
 
+-- | Usage: @'glWindowPos2ivMESA' v@
+--
+-- The parameter @v@ is a @CoordI@.
+--
+-- The length of @v@ should be @2@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glWindowPos2iv'.
+
+
 glWindowPos2ivMESA :: MonadIO m => Ptr GLint -> m ()
 glWindowPos2ivMESA = ffiPtrintIOV glWindowPos2ivMESAFunPtr
 
@@ -90,6 +153,17 @@
 
 {-# NOINLINE glWindowPos2ivMESAFunPtr #-}
 
+-- | Usage: @'glWindowPos2sMESA' x y@
+--
+-- The parameter @x@ is a @CoordS@.
+--
+-- The parameter @y@ is a @CoordS@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glWindowPos2s'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Extension.MESA.WindowPos.glWindowPos2svMESA'.
+
+
 glWindowPos2sMESA :: MonadIO m => GLshort -> GLshort -> m ()
 glWindowPos2sMESA = ffishortshortIOV glWindowPos2sMESAFunPtr
 
@@ -98,6 +172,15 @@
 
 {-# NOINLINE glWindowPos2sMESAFunPtr #-}
 
+-- | Usage: @'glWindowPos2svMESA' v@
+--
+-- The parameter @v@ is a @CoordS@.
+--
+-- The length of @v@ should be @2@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glWindowPos2sv'.
+
+
 glWindowPos2svMESA :: MonadIO m => Ptr GLshort -> m ()
 glWindowPos2svMESA = ffiPtrshortIOV glWindowPos2svMESAFunPtr
 
@@ -106,6 +189,19 @@
 
 {-# NOINLINE glWindowPos2svMESAFunPtr #-}
 
+-- | Usage: @'glWindowPos3dMESA' x y z@
+--
+-- The parameter @x@ is a @CoordD@.
+--
+-- The parameter @y@ is a @CoordD@.
+--
+-- The parameter @z@ is a @CoordD@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glWindowPos3d'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Extension.MESA.WindowPos.glWindowPos3dvMESA'.
+
+
 glWindowPos3dMESA :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()
 glWindowPos3dMESA = ffidoubledoubledoubleIOV glWindowPos3dMESAFunPtr
 
@@ -114,6 +210,15 @@
 
 {-# NOINLINE glWindowPos3dMESAFunPtr #-}
 
+-- | Usage: @'glWindowPos3dvMESA' v@
+--
+-- The parameter @v@ is a @CoordD@.
+--
+-- The length of @v@ should be @3@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glWindowPos3dv'.
+
+
 glWindowPos3dvMESA :: MonadIO m => Ptr GLdouble -> m ()
 glWindowPos3dvMESA = ffiPtrdoubleIOV glWindowPos3dvMESAFunPtr
 
@@ -122,6 +227,19 @@
 
 {-# NOINLINE glWindowPos3dvMESAFunPtr #-}
 
+-- | Usage: @'glWindowPos3fMESA' x y z@
+--
+-- The parameter @x@ is a @CoordF@.
+--
+-- The parameter @y@ is a @CoordF@.
+--
+-- The parameter @z@ is a @CoordF@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glWindowPos3f'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Extension.MESA.WindowPos.glWindowPos3fvMESA'.
+
+
 glWindowPos3fMESA :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()
 glWindowPos3fMESA = ffifloatfloatfloatIOV glWindowPos3fMESAFunPtr
 
@@ -130,6 +248,15 @@
 
 {-# NOINLINE glWindowPos3fMESAFunPtr #-}
 
+-- | Usage: @'glWindowPos3fvMESA' v@
+--
+-- The parameter @v@ is a @CoordF@.
+--
+-- The length of @v@ should be @3@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glWindowPos3fv'.
+
+
 glWindowPos3fvMESA :: MonadIO m => Ptr GLfloat -> m ()
 glWindowPos3fvMESA = ffiPtrfloatIOV glWindowPos3fvMESAFunPtr
 
@@ -138,6 +265,19 @@
 
 {-# NOINLINE glWindowPos3fvMESAFunPtr #-}
 
+-- | Usage: @'glWindowPos3iMESA' x y z@
+--
+-- The parameter @x@ is a @CoordI@.
+--
+-- The parameter @y@ is a @CoordI@.
+--
+-- The parameter @z@ is a @CoordI@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glWindowPos3i'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Extension.MESA.WindowPos.glWindowPos3ivMESA'.
+
+
 glWindowPos3iMESA :: MonadIO m => GLint -> GLint -> GLint -> m ()
 glWindowPos3iMESA = ffiintintintIOV glWindowPos3iMESAFunPtr
 
@@ -146,6 +286,15 @@
 
 {-# NOINLINE glWindowPos3iMESAFunPtr #-}
 
+-- | Usage: @'glWindowPos3ivMESA' v@
+--
+-- The parameter @v@ is a @CoordI@.
+--
+-- The length of @v@ should be @3@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glWindowPos3iv'.
+
+
 glWindowPos3ivMESA :: MonadIO m => Ptr GLint -> m ()
 glWindowPos3ivMESA = ffiPtrintIOV glWindowPos3ivMESAFunPtr
 
@@ -154,6 +303,19 @@
 
 {-# NOINLINE glWindowPos3ivMESAFunPtr #-}
 
+-- | Usage: @'glWindowPos3sMESA' x y z@
+--
+-- The parameter @x@ is a @CoordS@.
+--
+-- The parameter @y@ is a @CoordS@.
+--
+-- The parameter @z@ is a @CoordS@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glWindowPos3s'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Extension.MESA.WindowPos.glWindowPos3svMESA'.
+
+
 glWindowPos3sMESA :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()
 glWindowPos3sMESA = ffishortshortshortIOV glWindowPos3sMESAFunPtr
 
@@ -162,6 +324,15 @@
 
 {-# NOINLINE glWindowPos3sMESAFunPtr #-}
 
+-- | Usage: @'glWindowPos3svMESA' v@
+--
+-- The parameter @v@ is a @CoordS@.
+--
+-- The length of @v@ should be @3@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glWindowPos3sv'.
+
+
 glWindowPos3svMESA :: MonadIO m => Ptr GLshort -> m ()
 glWindowPos3svMESA = ffiPtrshortIOV glWindowPos3svMESAFunPtr
 
@@ -170,6 +341,19 @@
 
 {-# NOINLINE glWindowPos3svMESAFunPtr #-}
 
+-- | Usage: @'glWindowPos4dMESA' x y z w@
+--
+-- The parameter @x@ is a @CoordD@.
+--
+-- The parameter @y@ is a @CoordD@.
+--
+-- The parameter @z@ is a @CoordD@.
+--
+-- The parameter @w@ is a @CoordD@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Extension.MESA.WindowPos.glWindowPos4dvMESA'.
+
+
 glWindowPos4dMESA :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
 glWindowPos4dMESA = ffidoubledoubledoubledoubleIOV glWindowPos4dMESAFunPtr
 
@@ -178,6 +362,13 @@
 
 {-# NOINLINE glWindowPos4dMESAFunPtr #-}
 
+-- | Usage: @'glWindowPos4dvMESA' v@
+--
+-- The parameter @v@ is a @CoordD@.
+--
+-- The length of @v@ should be @4@.
+
+
 glWindowPos4dvMESA :: MonadIO m => Ptr GLdouble -> m ()
 glWindowPos4dvMESA = ffiPtrdoubleIOV glWindowPos4dvMESAFunPtr
 
@@ -186,6 +377,19 @@
 
 {-# NOINLINE glWindowPos4dvMESAFunPtr #-}
 
+-- | Usage: @'glWindowPos4fMESA' x y z w@
+--
+-- The parameter @x@ is a @CoordF@.
+--
+-- The parameter @y@ is a @CoordF@.
+--
+-- The parameter @z@ is a @CoordF@.
+--
+-- The parameter @w@ is a @CoordF@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Extension.MESA.WindowPos.glWindowPos4fvMESA'.
+
+
 glWindowPos4fMESA :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
 glWindowPos4fMESA = ffifloatfloatfloatfloatIOV glWindowPos4fMESAFunPtr
 
@@ -194,6 +398,13 @@
 
 {-# NOINLINE glWindowPos4fMESAFunPtr #-}
 
+-- | Usage: @'glWindowPos4fvMESA' v@
+--
+-- The parameter @v@ is a @CoordF@.
+--
+-- The length of @v@ should be @4@.
+
+
 glWindowPos4fvMESA :: MonadIO m => Ptr GLfloat -> m ()
 glWindowPos4fvMESA = ffiPtrfloatIOV glWindowPos4fvMESAFunPtr
 
@@ -202,6 +413,19 @@
 
 {-# NOINLINE glWindowPos4fvMESAFunPtr #-}
 
+-- | Usage: @'glWindowPos4iMESA' x y z w@
+--
+-- The parameter @x@ is a @CoordI@.
+--
+-- The parameter @y@ is a @CoordI@.
+--
+-- The parameter @z@ is a @CoordI@.
+--
+-- The parameter @w@ is a @CoordI@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Extension.MESA.WindowPos.glWindowPos4ivMESA'.
+
+
 glWindowPos4iMESA :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()
 glWindowPos4iMESA = ffiintintintintIOV glWindowPos4iMESAFunPtr
 
@@ -210,6 +434,13 @@
 
 {-# NOINLINE glWindowPos4iMESAFunPtr #-}
 
+-- | Usage: @'glWindowPos4ivMESA' v@
+--
+-- The parameter @v@ is a @CoordI@.
+--
+-- The length of @v@ should be @4@.
+
+
 glWindowPos4ivMESA :: MonadIO m => Ptr GLint -> m ()
 glWindowPos4ivMESA = ffiPtrintIOV glWindowPos4ivMESAFunPtr
 
@@ -218,6 +449,19 @@
 
 {-# NOINLINE glWindowPos4ivMESAFunPtr #-}
 
+-- | Usage: @'glWindowPos4sMESA' x y z w@
+--
+-- The parameter @x@ is a @CoordS@.
+--
+-- The parameter @y@ is a @CoordS@.
+--
+-- The parameter @z@ is a @CoordS@.
+--
+-- The parameter @w@ is a @CoordS@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Extension.MESA.WindowPos.glWindowPos4svMESA'.
+
+
 glWindowPos4sMESA :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()
 glWindowPos4sMESA = ffishortshortshortshortIOV glWindowPos4sMESAFunPtr
 
@@ -225,6 +469,13 @@
 glWindowPos4sMESAFunPtr = unsafePerformIO (getProcAddress "glWindowPos4sMESA")
 
 {-# NOINLINE glWindowPos4sMESAFunPtr #-}
+
+-- | Usage: @'glWindowPos4svMESA' v@
+--
+-- The parameter @v@ is a @CoordS@.
+--
+-- The length of @v@ should be @4@.
+
 
 glWindowPos4svMESA :: MonadIO m => Ptr GLshort -> m ()
 glWindowPos4svMESA = ffiPtrshortIOV glWindowPos4svMESAFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/MESA/YcbcrTexture.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/MESA/YcbcrTexture.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/MESA/YcbcrTexture.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/MESA/YcbcrTexture.hs
@@ -13,8 +13,11 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/MESA/ycbcr_texture.txt GL_MESA_ycbcr_texture> extension is available.
+
 gl_MESA_ycbcr_texture :: Bool
 gl_MESA_ycbcr_texture = member "GL_MESA_ycbcr_texture" extensions
+{-# NOINLINE gl_MESA_ycbcr_texture #-}
 
 pattern GL_UNSIGNED_SHORT_8_8_MESA = 0x85BA
 
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/MESAX/TextureStack.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/MESAX/TextureStack.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/MESAX/TextureStack.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/MESAX/TextureStack.hs
@@ -16,8 +16,11 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/MESAX/texture_stack.txt GL_MESAX_texture_stack> extension is available.
+
 gl_MESAX_texture_stack :: Bool
 gl_MESAX_texture_stack = member "GL_MESAX_texture_stack" extensions
+{-# NOINLINE gl_MESAX_texture_stack #-}
 
 pattern GL_PROXY_TEXTURE_1D_STACK_MESAX = 0x875B
 
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/BindlessMultiDrawIndirect.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/BindlessMultiDrawIndirect.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/BindlessMultiDrawIndirect.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/BindlessMultiDrawIndirect.hs
@@ -17,9 +17,15 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/bindless_multi_draw_indirect.txt GL_NV_bindless_multi_draw_indirect> extension is available.
+
 gl_NV_bindless_multi_draw_indirect :: Bool
 gl_NV_bindless_multi_draw_indirect = member "GL_NV_bindless_multi_draw_indirect" extensions
+{-# NOINLINE gl_NV_bindless_multi_draw_indirect #-}
 
+-- | Usage: @'glMultiDrawArraysIndirectBindlessNV' mode indirect drawCount stride vertexBufferCount@
+
+
 glMultiDrawArraysIndirectBindlessNV :: MonadIO m => GLenum -> Ptr () -> GLsizei -> GLsizei -> GLint -> m ()
 glMultiDrawArraysIndirectBindlessNV = ffienumPtrVsizeisizeiintIOV glMultiDrawArraysIndirectBindlessNVFunPtr
 
@@ -27,6 +33,9 @@
 glMultiDrawArraysIndirectBindlessNVFunPtr = unsafePerformIO (getProcAddress "glMultiDrawArraysIndirectBindlessNV")
 
 {-# NOINLINE glMultiDrawArraysIndirectBindlessNVFunPtr #-}
+
+-- | Usage: @'glMultiDrawElementsIndirectBindlessNV' mode type indirect drawCount stride vertexBufferCount@
+
 
 glMultiDrawElementsIndirectBindlessNV :: MonadIO m => GLenum -> GLenum -> Ptr () -> GLsizei -> GLsizei -> GLint -> m ()
 glMultiDrawElementsIndirectBindlessNV = ffienumenumPtrVsizeisizeiintIOV glMultiDrawElementsIndirectBindlessNVFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/BindlessMultiDrawIndirectCount.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/BindlessMultiDrawIndirectCount.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/BindlessMultiDrawIndirectCount.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/BindlessMultiDrawIndirectCount.hs
@@ -17,9 +17,15 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/bindless_multi_draw_indirect_count.txt GL_NV_bindless_multi_draw_indirect_count> extension is available.
+
 gl_NV_bindless_multi_draw_indirect_count :: Bool
 gl_NV_bindless_multi_draw_indirect_count = member "GL_NV_bindless_multi_draw_indirect_count" extensions
+{-# NOINLINE gl_NV_bindless_multi_draw_indirect_count #-}
 
+-- | Usage: @'glMultiDrawArraysIndirectBindlessCountNV' mode indirect drawCount maxDrawCount stride vertexBufferCount@
+
+
 glMultiDrawArraysIndirectBindlessCountNV :: MonadIO m => GLenum -> Ptr () -> GLsizei -> GLsizei -> GLsizei -> GLint -> m ()
 glMultiDrawArraysIndirectBindlessCountNV = ffienumPtrVsizeisizeisizeiintIOV glMultiDrawArraysIndirectBindlessCountNVFunPtr
 
@@ -27,6 +33,9 @@
 glMultiDrawArraysIndirectBindlessCountNVFunPtr = unsafePerformIO (getProcAddress "glMultiDrawArraysIndirectBindlessCountNV")
 
 {-# NOINLINE glMultiDrawArraysIndirectBindlessCountNVFunPtr #-}
+
+-- | Usage: @'glMultiDrawElementsIndirectBindlessCountNV' mode type indirect drawCount maxDrawCount stride vertexBufferCount@
+
 
 glMultiDrawElementsIndirectBindlessCountNV :: MonadIO m => GLenum -> GLenum -> Ptr () -> GLsizei -> GLsizei -> GLsizei -> GLint -> m ()
 glMultiDrawElementsIndirectBindlessCountNV = ffienumenumPtrVsizeisizeisizeiintIOV glMultiDrawElementsIndirectBindlessCountNVFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/BindlessTexture.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/BindlessTexture.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/BindlessTexture.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/BindlessTexture.hs
@@ -28,9 +28,17 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/bindless_texture.txt GL_NV_bindless_texture> extension is available.
+
 gl_NV_bindless_texture :: Bool
 gl_NV_bindless_texture = member "GL_NV_bindless_texture" extensions
+{-# NOINLINE gl_NV_bindless_texture #-}
 
+-- | Usage: @'glGetImageHandleNV' texture level layered layer format@
+--
+-- The parameter @layered@ is a @Boolean@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FALSE', 'Graphics.GL.Raw.Internal.Shared.GL_TRUE'.
+
+
 glGetImageHandleNV :: MonadIO m => GLuint -> GLint -> GLboolean -> GLint -> GLenum -> m GLuint64
 glGetImageHandleNV = ffiuintintbooleanintenumIOuint64 glGetImageHandleNVFunPtr
 
@@ -39,6 +47,9 @@
 
 {-# NOINLINE glGetImageHandleNVFunPtr #-}
 
+-- | Usage: @'glGetTextureHandleNV' texture@
+
+
 glGetTextureHandleNV :: MonadIO m => GLuint -> m GLuint64
 glGetTextureHandleNV = ffiuintIOuint64 glGetTextureHandleNVFunPtr
 
@@ -47,6 +58,9 @@
 
 {-# NOINLINE glGetTextureHandleNVFunPtr #-}
 
+-- | Usage: @'glGetTextureSamplerHandleNV' texture sampler@
+
+
 glGetTextureSamplerHandleNV :: MonadIO m => GLuint -> GLuint -> m GLuint64
 glGetTextureSamplerHandleNV = ffiuintuintIOuint64 glGetTextureSamplerHandleNVFunPtr
 
@@ -55,6 +69,9 @@
 
 {-# NOINLINE glGetTextureSamplerHandleNVFunPtr #-}
 
+-- | Usage: @'glIsImageHandleResidentNV' handle@
+
+
 glIsImageHandleResidentNV :: MonadIO m => GLuint64 -> m GLboolean
 glIsImageHandleResidentNV = ffiuint64IOboolean glIsImageHandleResidentNVFunPtr
 
@@ -63,6 +80,9 @@
 
 {-# NOINLINE glIsImageHandleResidentNVFunPtr #-}
 
+-- | Usage: @'glIsTextureHandleResidentNV' handle@
+
+
 glIsTextureHandleResidentNV :: MonadIO m => GLuint64 -> m GLboolean
 glIsTextureHandleResidentNV = ffiuint64IOboolean glIsTextureHandleResidentNVFunPtr
 
@@ -71,6 +91,9 @@
 
 {-# NOINLINE glIsTextureHandleResidentNVFunPtr #-}
 
+-- | Usage: @'glMakeImageHandleNonResidentNV' handle@
+
+
 glMakeImageHandleNonResidentNV :: MonadIO m => GLuint64 -> m ()
 glMakeImageHandleNonResidentNV = ffiuint64IOV glMakeImageHandleNonResidentNVFunPtr
 
@@ -79,6 +102,9 @@
 
 {-# NOINLINE glMakeImageHandleNonResidentNVFunPtr #-}
 
+-- | Usage: @'glMakeImageHandleResidentNV' handle access@
+
+
 glMakeImageHandleResidentNV :: MonadIO m => GLuint64 -> GLenum -> m ()
 glMakeImageHandleResidentNV = ffiuint64enumIOV glMakeImageHandleResidentNVFunPtr
 
@@ -87,6 +113,9 @@
 
 {-# NOINLINE glMakeImageHandleResidentNVFunPtr #-}
 
+-- | Usage: @'glMakeTextureHandleNonResidentNV' handle@
+
+
 glMakeTextureHandleNonResidentNV :: MonadIO m => GLuint64 -> m ()
 glMakeTextureHandleNonResidentNV = ffiuint64IOV glMakeTextureHandleNonResidentNVFunPtr
 
@@ -95,6 +124,9 @@
 
 {-# NOINLINE glMakeTextureHandleNonResidentNVFunPtr #-}
 
+-- | Usage: @'glMakeTextureHandleResidentNV' handle@
+
+
 glMakeTextureHandleResidentNV :: MonadIO m => GLuint64 -> m ()
 glMakeTextureHandleResidentNV = ffiuint64IOV glMakeTextureHandleResidentNVFunPtr
 
@@ -103,6 +135,9 @@
 
 {-# NOINLINE glMakeTextureHandleResidentNVFunPtr #-}
 
+-- | Usage: @'glProgramUniformHandleui64NV' program location value@
+
+
 glProgramUniformHandleui64NV :: MonadIO m => GLuint -> GLint -> GLuint64 -> m ()
 glProgramUniformHandleui64NV = ffiuintintuint64IOV glProgramUniformHandleui64NVFunPtr
 
@@ -111,6 +146,11 @@
 
 {-# NOINLINE glProgramUniformHandleui64NVFunPtr #-}
 
+-- | Usage: @'glProgramUniformHandleui64vNV' program location count values@
+--
+-- The length of @values@ should be @count@.
+
+
 glProgramUniformHandleui64vNV :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint64 -> m ()
 glProgramUniformHandleui64vNV = ffiuintintsizeiPtruint64IOV glProgramUniformHandleui64vNVFunPtr
 
@@ -119,6 +159,9 @@
 
 {-# NOINLINE glProgramUniformHandleui64vNVFunPtr #-}
 
+-- | Usage: @'glUniformHandleui64NV' location value@
+
+
 glUniformHandleui64NV :: MonadIO m => GLint -> GLuint64 -> m ()
 glUniformHandleui64NV = ffiintuint64IOV glUniformHandleui64NVFunPtr
 
@@ -126,6 +169,11 @@
 glUniformHandleui64NVFunPtr = unsafePerformIO (getProcAddress "glUniformHandleui64NV")
 
 {-# NOINLINE glUniformHandleui64NVFunPtr #-}
+
+-- | Usage: @'glUniformHandleui64vNV' location count value@
+--
+-- The length of @value@ should be @count@.
+
 
 glUniformHandleui64vNV :: MonadIO m => GLint -> GLsizei -> Ptr GLuint64 -> m ()
 glUniformHandleui64vNV = ffiintsizeiPtruint64IOV glUniformHandleui64vNVFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/BlendEquationAdvanced.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/BlendEquationAdvanced.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/BlendEquationAdvanced.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/BlendEquationAdvanced.hs
@@ -69,9 +69,15 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/blend_equation_advanced.txt GL_NV_blend_equation_advanced> extension is available.
+
 gl_NV_blend_equation_advanced :: Bool
 gl_NV_blend_equation_advanced = member "GL_NV_blend_equation_advanced" extensions
+{-# NOINLINE gl_NV_blend_equation_advanced #-}
 
+-- | Usage: @'glBlendBarrierNV'@
+
+
 glBlendBarrierNV :: MonadIO m => m ()
 glBlendBarrierNV = ffiIOV glBlendBarrierNVFunPtr
 
@@ -79,6 +85,9 @@
 glBlendBarrierNVFunPtr = unsafePerformIO (getProcAddress "glBlendBarrierNV")
 
 {-# NOINLINE glBlendBarrierNVFunPtr #-}
+
+-- | Usage: @'glBlendParameteriNV' pname value@
+
 
 glBlendParameteriNV :: MonadIO m => GLenum -> GLint -> m ()
 glBlendParameteriNV = ffienumintIOV glBlendParameteriNVFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/BlendEquationAdvancedCoherent.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/BlendEquationAdvancedCoherent.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/BlendEquationAdvancedCoherent.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/BlendEquationAdvancedCoherent.hs
@@ -11,7 +11,10 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the GL_NV_blend_equation_advanced_coherent extension is available.
+
 gl_NV_blend_equation_advanced_coherent :: Bool
 gl_NV_blend_equation_advanced_coherent = member "GL_NV_blend_equation_advanced_coherent" extensions
+{-# NOINLINE gl_NV_blend_equation_advanced_coherent #-}
 
 pattern GL_BLEND_ADVANCED_COHERENT_NV = 0x9285
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/BlendSquare.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/BlendSquare.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/BlendSquare.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/BlendSquare.hs
@@ -8,5 +8,8 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/blend_square.txt GL_NV_blend_square> extension is available.
+
 gl_NV_blend_square :: Bool
 gl_NV_blend_square = member "GL_NV_blend_square" extensions
+{-# NOINLINE gl_NV_blend_square #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/ComputeProgram5.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/ComputeProgram5.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/ComputeProgram5.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/ComputeProgram5.hs
@@ -12,8 +12,11 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/compute_program5.txt GL_NV_compute_program5> extension is available.
+
 gl_NV_compute_program5 :: Bool
 gl_NV_compute_program5 = member "GL_NV_compute_program5" extensions
+{-# NOINLINE gl_NV_compute_program5 #-}
 
 pattern GL_COMPUTE_PROGRAM_NV = 0x90FB
 
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/ConditionalRender.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/ConditionalRender.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/ConditionalRender.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/ConditionalRender.hs
@@ -21,9 +21,19 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/conditional_render.txt GL_NV_conditional_render> extension is available.
+
 gl_NV_conditional_render :: Bool
 gl_NV_conditional_render = member "GL_NV_conditional_render" extensions
+{-# NOINLINE gl_NV_conditional_render #-}
 
+-- | Usage: @'glBeginConditionalRenderNV' id mode@
+--
+-- The parameter @mode@ is a @TypeEnum@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glBeginConditionalRender'.
+
+
 glBeginConditionalRenderNV :: MonadIO m => GLuint -> GLenum -> m ()
 glBeginConditionalRenderNV = ffiuintenumIOV glBeginConditionalRenderNVFunPtr
 
@@ -31,6 +41,11 @@
 glBeginConditionalRenderNVFunPtr = unsafePerformIO (getProcAddress "glBeginConditionalRenderNV")
 
 {-# NOINLINE glBeginConditionalRenderNVFunPtr #-}
+
+-- | Usage: @'glEndConditionalRenderNV'@
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glEndConditionalRender'.
+
 
 glEndConditionalRenderNV :: MonadIO m => m ()
 glEndConditionalRenderNV = ffiIOV glEndConditionalRenderNVFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/ConservativeRaster.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/ConservativeRaster.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/ConservativeRaster.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/ConservativeRaster.hs
@@ -20,8 +20,14 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/conservative_raster.txt GL_NV_conservative_raster> extension is available.
+
 gl_NV_conservative_raster :: Bool
 gl_NV_conservative_raster = member "GL_NV_conservative_raster" extensions
+{-# NOINLINE gl_NV_conservative_raster #-}
+
+-- | Usage: @'glSubpixelPrecisionBiasNV' xbits ybits@
+
 
 glSubpixelPrecisionBiasNV :: MonadIO m => GLuint -> GLuint -> m ()
 glSubpixelPrecisionBiasNV = ffiuintuintIOV glSubpixelPrecisionBiasNVFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/CopyBuffer.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/CopyBuffer.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/CopyBuffer.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/CopyBuffer.hs
@@ -18,8 +18,22 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the GL_NV_copy_buffer extension is available.
+
 gl_NV_copy_buffer :: Bool
 gl_NV_copy_buffer = member "GL_NV_copy_buffer" extensions
+{-# NOINLINE gl_NV_copy_buffer #-}
+
+-- | Usage: @'glCopyBufferSubDataNV' readTarget writeTarget readOffset writeOffset size@
+--
+-- The parameter @readOffset@ is a @BufferOffset@.
+--
+-- The parameter @writeOffset@ is a @BufferOffset@.
+--
+-- The parameter @size@ is a @BufferSize@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glCopyBufferSubData'.
+
 
 glCopyBufferSubDataNV :: MonadIO m => GLenum -> GLenum -> GLintptr -> GLintptr -> GLsizeiptr -> m ()
 glCopyBufferSubDataNV = ffienumenumintptrintptrsizeiptrIOV glCopyBufferSubDataNVFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/CopyDepthToColor.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/CopyDepthToColor.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/CopyDepthToColor.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/CopyDepthToColor.hs
@@ -12,8 +12,11 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/copy_depth_to_color.txt GL_NV_copy_depth_to_color> extension is available.
+
 gl_NV_copy_depth_to_color :: Bool
 gl_NV_copy_depth_to_color = member "GL_NV_copy_depth_to_color" extensions
+{-# NOINLINE gl_NV_copy_depth_to_color #-}
 
 pattern GL_DEPTH_STENCIL_TO_BGRA_NV = 0x886F
 
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/CopyImage.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/CopyImage.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/CopyImage.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/CopyImage.hs
@@ -16,8 +16,14 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/copy_image.txt GL_NV_copy_image> extension is available.
+
 gl_NV_copy_image :: Bool
 gl_NV_copy_image = member "GL_NV_copy_image" extensions
+{-# NOINLINE gl_NV_copy_image #-}
+
+-- | Usage: @'glCopyImageSubDataNV' srcName srcTarget srcLevel srcX srcY srcZ dstName dstTarget dstLevel dstX dstY dstZ width height depth@
+
 
 glCopyImageSubDataNV :: MonadIO m => GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> m ()
 glCopyImageSubDataNV = ffiuintenumintintintintuintenumintintintintsizeisizeisizeiIOV glCopyImageSubDataNVFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/CoverageSample.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/CoverageSample.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/CoverageSample.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/CoverageSample.hs
@@ -26,9 +26,15 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the GL_NV_coverage_sample extension is available.
+
 gl_NV_coverage_sample :: Bool
 gl_NV_coverage_sample = member "GL_NV_coverage_sample" extensions
+{-# NOINLINE gl_NV_coverage_sample #-}
 
+-- | Usage: @'glCoverageMaskNV' mask@
+
+
 glCoverageMaskNV :: MonadIO m => GLboolean -> m ()
 glCoverageMaskNV = ffibooleanIOV glCoverageMaskNVFunPtr
 
@@ -36,6 +42,9 @@
 glCoverageMaskNVFunPtr = unsafePerformIO (getProcAddress "glCoverageMaskNV")
 
 {-# NOINLINE glCoverageMaskNVFunPtr #-}
+
+-- | Usage: @'glCoverageOperationNV' operation@
+
 
 glCoverageOperationNV :: MonadIO m => GLenum -> m ()
 glCoverageOperationNV = ffienumIOV glCoverageOperationNVFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/DeepTexture3D.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/DeepTexture3D.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/DeepTexture3D.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/DeepTexture3D.hs
@@ -12,8 +12,11 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/deep_texture3D.txt GL_NV_deep_texture3D> extension is available.
+
 gl_NV_deep_texture3D :: Bool
 gl_NV_deep_texture3D = member "GL_NV_deep_texture3D" extensions
+{-# NOINLINE gl_NV_deep_texture3D #-}
 
 pattern GL_MAX_DEEP_3D_TEXTURE_DEPTH_NV = 0x90D1
 
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/DepthBufferFloat.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/DepthBufferFloat.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/DepthBufferFloat.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/DepthBufferFloat.hs
@@ -22,9 +22,15 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/depth_buffer_float.txt GL_NV_depth_buffer_float> extension is available.
+
 gl_NV_depth_buffer_float :: Bool
 gl_NV_depth_buffer_float = member "GL_NV_depth_buffer_float" extensions
+{-# NOINLINE gl_NV_depth_buffer_float #-}
 
+-- | Usage: @'glClearDepthdNV' depth@
+
+
 glClearDepthdNV :: MonadIO m => GLdouble -> m ()
 glClearDepthdNV = ffidoubleIOV glClearDepthdNVFunPtr
 
@@ -33,6 +39,9 @@
 
 {-# NOINLINE glClearDepthdNVFunPtr #-}
 
+-- | Usage: @'glDepthBoundsdNV' zmin zmax@
+
+
 glDepthBoundsdNV :: MonadIO m => GLdouble -> GLdouble -> m ()
 glDepthBoundsdNV = ffidoubledoubleIOV glDepthBoundsdNVFunPtr
 
@@ -40,6 +49,9 @@
 glDepthBoundsdNVFunPtr = unsafePerformIO (getProcAddress "glDepthBoundsdNV")
 
 {-# NOINLINE glDepthBoundsdNVFunPtr #-}
+
+-- | Usage: @'glDepthRangedNV' zNear zFar@
+
 
 glDepthRangedNV :: MonadIO m => GLdouble -> GLdouble -> m ()
 glDepthRangedNV = ffidoubledoubleIOV glDepthRangedNVFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/DepthClamp.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/DepthClamp.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/DepthClamp.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/DepthClamp.hs
@@ -11,7 +11,10 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/depth_clamp.txt GL_NV_depth_clamp> extension is available.
+
 gl_NV_depth_clamp :: Bool
 gl_NV_depth_clamp = member "GL_NV_depth_clamp" extensions
+{-# NOINLINE gl_NV_depth_clamp #-}
 
 pattern GL_DEPTH_CLAMP_NV = 0x864F
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/DepthNonlinear.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/DepthNonlinear.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/DepthNonlinear.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/DepthNonlinear.hs
@@ -11,7 +11,10 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the GL_NV_depth_nonlinear extension is available.
+
 gl_NV_depth_nonlinear :: Bool
 gl_NV_depth_nonlinear = member "GL_NV_depth_nonlinear" extensions
+{-# NOINLINE gl_NV_depth_nonlinear #-}
 
 pattern GL_DEPTH_COMPONENT16_NONLINEAR_NV = 0x8E2C
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/DrawBuffers.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/DrawBuffers.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/DrawBuffers.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/DrawBuffers.hs
@@ -50,8 +50,16 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the GL_NV_draw_buffers extension is available.
+
 gl_NV_draw_buffers :: Bool
 gl_NV_draw_buffers = member "GL_NV_draw_buffers" extensions
+{-# NOINLINE gl_NV_draw_buffers #-}
+
+-- | Usage: @'glDrawBuffersNV' n bufs@
+--
+-- The length of @bufs@ should be @n@.
+
 
 glDrawBuffersNV :: MonadIO m => GLsizei -> Ptr GLenum -> m ()
 glDrawBuffersNV = ffisizeiPtrenumIOV glDrawBuffersNVFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/DrawInstanced.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/DrawInstanced.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/DrawInstanced.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/DrawInstanced.hs
@@ -17,9 +17,19 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the GL_NV_draw_instanced extension is available.
+
 gl_NV_draw_instanced :: Bool
 gl_NV_draw_instanced = member "GL_NV_draw_instanced" extensions
+{-# NOINLINE gl_NV_draw_instanced #-}
 
+-- | Usage: @'glDrawArraysInstancedNV' mode first count primcount@
+--
+-- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_LINES', 'Graphics.GL.Raw.Profile.Core32.GL_LINES_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Raw.Profile.Core32.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PATCHES', 'Graphics.GL.Raw.Extension.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_POINTS', 'Graphics.GL.Raw.Internal.Shared.GL_POLYGON', 'Graphics.GL.Raw.Internal.Shared.GL_QUADS', 'Graphics.GL.Raw.Extension.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Raw.Profile.Core32.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Raw.Profile.Core32.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glDrawArraysInstanced'.
+
+
 glDrawArraysInstancedNV :: MonadIO m => GLenum -> GLint -> GLsizei -> GLsizei -> m ()
 glDrawArraysInstancedNV = ffienumintsizeisizeiIOV glDrawArraysInstancedNVFunPtr
 
@@ -27,6 +37,15 @@
 glDrawArraysInstancedNVFunPtr = unsafePerformIO (getProcAddress "glDrawArraysInstancedNV")
 
 {-# NOINLINE glDrawArraysInstancedNVFunPtr #-}
+
+-- | Usage: @'glDrawElementsInstancedNV' mode count type indices primcount@
+--
+-- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_LINES', 'Graphics.GL.Raw.Profile.Core32.GL_LINES_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Raw.Profile.Core32.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PATCHES', 'Graphics.GL.Raw.Extension.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_POINTS', 'Graphics.GL.Raw.Internal.Shared.GL_POLYGON', 'Graphics.GL.Raw.Internal.Shared.GL_QUADS', 'Graphics.GL.Raw.Extension.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Raw.Profile.Core32.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Raw.Profile.Core32.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
+--
+-- The length of @indices@ should be @COMPSIZE(count,type)@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glDrawElementsInstanced'.
+
 
 glDrawElementsInstancedNV :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> m ()
 glDrawElementsInstancedNV = ffienumsizeienumPtrVsizeiIOV glDrawElementsInstancedNVFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/DrawTexture.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/DrawTexture.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/DrawTexture.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/DrawTexture.hs
@@ -16,8 +16,14 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/draw_texture.txt GL_NV_draw_texture> extension is available.
+
 gl_NV_draw_texture :: Bool
 gl_NV_draw_texture = member "GL_NV_draw_texture" extensions
+{-# NOINLINE gl_NV_draw_texture #-}
+
+-- | Usage: @'glDrawTextureNV' texture sampler x0 y0 x1 y1 z s0 t0 s1 t1@
+
 
 glDrawTextureNV :: MonadIO m => GLuint -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
 glDrawTextureNV = ffiuintuintfloatfloatfloatfloatfloatfloatfloatfloatfloatIOV glDrawTextureNVFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/Evaluators.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/Evaluators.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/Evaluators.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/Evaluators.hs
@@ -48,9 +48,19 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/evaluators.txt GL_NV_evaluators> extension is available.
+
 gl_NV_evaluators :: Bool
 gl_NV_evaluators = member "GL_NV_evaluators" extensions
+{-# NOINLINE gl_NV_evaluators #-}
 
+-- | Usage: @'glEvalMapsNV' target mode@
+--
+-- The parameter @target@ is a @EvalTargetNV@.
+--
+-- The parameter @mode@ is a @EvalMapsModeNV@.
+
+
 glEvalMapsNV :: MonadIO m => GLenum -> GLenum -> m ()
 glEvalMapsNV = ffienumenumIOV glEvalMapsNVFunPtr
 
@@ -59,6 +69,15 @@
 
 {-# NOINLINE glEvalMapsNVFunPtr #-}
 
+-- | Usage: @'glGetMapAttribParameterfvNV' target index pname params@
+--
+-- The parameter @target@ is a @EvalTargetNV@.
+--
+-- The parameter @pname@ is a @MapAttribParameterNV@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
 glGetMapAttribParameterfvNV :: MonadIO m => GLenum -> GLuint -> GLenum -> Ptr GLfloat -> m ()
 glGetMapAttribParameterfvNV = ffienumuintenumPtrfloatIOV glGetMapAttribParameterfvNVFunPtr
 
@@ -67,6 +86,15 @@
 
 {-# NOINLINE glGetMapAttribParameterfvNVFunPtr #-}
 
+-- | Usage: @'glGetMapAttribParameterivNV' target index pname params@
+--
+-- The parameter @target@ is a @EvalTargetNV@.
+--
+-- The parameter @pname@ is a @MapAttribParameterNV@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
 glGetMapAttribParameterivNV :: MonadIO m => GLenum -> GLuint -> GLenum -> Ptr GLint -> m ()
 glGetMapAttribParameterivNV = ffienumuintenumPtrintIOV glGetMapAttribParameterivNVFunPtr
 
@@ -75,6 +103,17 @@
 
 {-# NOINLINE glGetMapAttribParameterivNVFunPtr #-}
 
+-- | Usage: @'glGetMapControlPointsNV' target index type ustride vstride packed points@
+--
+-- The parameter @target@ is a @EvalTargetNV@.
+--
+-- The parameter @type@ is a @MapTypeNV@.
+--
+-- The parameter @packed@ is a @Boolean@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FALSE', 'Graphics.GL.Raw.Internal.Shared.GL_TRUE'.
+--
+-- The length of @points@ should be @COMPSIZE(target)@.
+
+
 glGetMapControlPointsNV :: MonadIO m => GLenum -> GLuint -> GLenum -> GLsizei -> GLsizei -> GLboolean -> Ptr () -> m ()
 glGetMapControlPointsNV = ffienumuintenumsizeisizeibooleanPtrVIOV glGetMapControlPointsNVFunPtr
 
@@ -83,6 +122,15 @@
 
 {-# NOINLINE glGetMapControlPointsNVFunPtr #-}
 
+-- | Usage: @'glGetMapParameterfvNV' target pname params@
+--
+-- The parameter @target@ is a @EvalTargetNV@.
+--
+-- The parameter @pname@ is a @MapParameterNV@.
+--
+-- The length of @params@ should be @COMPSIZE(target,pname)@.
+
+
 glGetMapParameterfvNV :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
 glGetMapParameterfvNV = ffienumenumPtrfloatIOV glGetMapParameterfvNVFunPtr
 
@@ -91,6 +139,15 @@
 
 {-# NOINLINE glGetMapParameterfvNVFunPtr #-}
 
+-- | Usage: @'glGetMapParameterivNV' target pname params@
+--
+-- The parameter @target@ is a @EvalTargetNV@.
+--
+-- The parameter @pname@ is a @MapParameterNV@.
+--
+-- The length of @params@ should be @COMPSIZE(target,pname)@.
+
+
 glGetMapParameterivNV :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
 glGetMapParameterivNV = ffienumenumPtrintIOV glGetMapParameterivNVFunPtr
 
@@ -99,6 +156,21 @@
 
 {-# NOINLINE glGetMapParameterivNVFunPtr #-}
 
+-- | Usage: @'glMapControlPointsNV' target index type ustride vstride uorder vorder packed points@
+--
+-- The parameter @target@ is a @EvalTargetNV@.
+--
+-- The parameter @type@ is a @MapTypeNV@.
+--
+-- The parameter @uorder@ is a @CheckedInt32@.
+--
+-- The parameter @vorder@ is a @CheckedInt32@.
+--
+-- The parameter @packed@ is a @Boolean@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FALSE', 'Graphics.GL.Raw.Internal.Shared.GL_TRUE'.
+--
+-- The length of @points@ should be @COMPSIZE(target,uorder,vorder)@.
+
+
 glMapControlPointsNV :: MonadIO m => GLenum -> GLuint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLint -> GLboolean -> Ptr () -> m ()
 glMapControlPointsNV = ffienumuintenumsizeisizeiintintbooleanPtrVIOV glMapControlPointsNVFunPtr
 
@@ -107,6 +179,17 @@
 
 {-# NOINLINE glMapControlPointsNVFunPtr #-}
 
+-- | Usage: @'glMapParameterfvNV' target pname params@
+--
+-- The parameter @target@ is a @EvalTargetNV@.
+--
+-- The parameter @pname@ is a @MapParameterNV@.
+--
+-- The parameter @params@ is a @CheckedFloat32@.
+--
+-- The length of @params@ should be @COMPSIZE(target,pname)@.
+
+
 glMapParameterfvNV :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
 glMapParameterfvNV = ffienumenumPtrfloatIOV glMapParameterfvNVFunPtr
 
@@ -114,6 +197,17 @@
 glMapParameterfvNVFunPtr = unsafePerformIO (getProcAddress "glMapParameterfvNV")
 
 {-# NOINLINE glMapParameterfvNVFunPtr #-}
+
+-- | Usage: @'glMapParameterivNV' target pname params@
+--
+-- The parameter @target@ is a @EvalTargetNV@.
+--
+-- The parameter @pname@ is a @MapParameterNV@.
+--
+-- The parameter @params@ is a @CheckedInt32@.
+--
+-- The length of @params@ should be @COMPSIZE(target,pname)@.
+
 
 glMapParameterivNV :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
 glMapParameterivNV = ffienumenumPtrintIOV glMapParameterivNVFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/ExplicitAttribLocation.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/ExplicitAttribLocation.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/ExplicitAttribLocation.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/ExplicitAttribLocation.hs
@@ -8,5 +8,8 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the GL_NV_explicit_attrib_location extension is available.
+
 gl_NV_explicit_attrib_location :: Bool
 gl_NV_explicit_attrib_location = member "GL_NV_explicit_attrib_location" extensions
+{-# NOINLINE gl_NV_explicit_attrib_location #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/ExplicitMultisample.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/ExplicitMultisample.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/ExplicitMultisample.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/ExplicitMultisample.hs
@@ -28,9 +28,21 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/explicit_multisample.txt GL_NV_explicit_multisample> extension is available.
+
 gl_NV_explicit_multisample :: Bool
 gl_NV_explicit_multisample = member "GL_NV_explicit_multisample" extensions
+{-# NOINLINE gl_NV_explicit_multisample #-}
 
+-- | Usage: @'glGetMultisamplefvNV' pname index val@
+--
+-- The parameter @pname@ is a @GetMultisamplePNameNV@.
+--
+-- The length of @val@ should be @2@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glGetMultisamplefv'.
+
+
 glGetMultisamplefvNV :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()
 glGetMultisamplefvNV = ffienumuintPtrfloatIOV glGetMultisamplefvNVFunPtr
 
@@ -39,6 +51,11 @@
 
 {-# NOINLINE glGetMultisamplefvNVFunPtr #-}
 
+-- | Usage: @'glSampleMaskIndexedNV' index mask@
+--
+-- The parameter @mask@ is a @SampleMaskNV@.
+
+
 glSampleMaskIndexedNV :: MonadIO m => GLuint -> GLbitfield -> m ()
 glSampleMaskIndexedNV = ffiuintbitfieldIOV glSampleMaskIndexedNVFunPtr
 
@@ -46,6 +63,11 @@
 glSampleMaskIndexedNVFunPtr = unsafePerformIO (getProcAddress "glSampleMaskIndexedNV")
 
 {-# NOINLINE glSampleMaskIndexedNVFunPtr #-}
+
+-- | Usage: @'glTexRenderbufferNV' target renderbuffer@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+
 
 glTexRenderbufferNV :: MonadIO m => GLenum -> GLuint -> m ()
 glTexRenderbufferNV = ffienumuintIOV glTexRenderbufferNVFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/FboColorAttachments.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/FboColorAttachments.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/FboColorAttachments.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/FboColorAttachments.hs
@@ -28,7 +28,10 @@
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
 
+-- | Checks that the GL_NV_fbo_color_attachments extension is available.
+
 gl_NV_fbo_color_attachments :: Bool
 gl_NV_fbo_color_attachments = member "GL_NV_fbo_color_attachments" extensions
+{-# NOINLINE gl_NV_fbo_color_attachments #-}
 
 pattern GL_MAX_COLOR_ATTACHMENTS_NV = 0x8CDF
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/Fence.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/Fence.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/Fence.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/Fence.hs
@@ -25,9 +25,19 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/fence.txt GL_NV_fence> extension is available.
+
 gl_NV_fence :: Bool
 gl_NV_fence = member "GL_NV_fence" extensions
+{-# NOINLINE gl_NV_fence #-}
 
+-- | Usage: @'glDeleteFencesNV' n fences@
+--
+-- The parameter @fences@ is a @FenceNV@.
+--
+-- The length of @fences@ should be @n@.
+
+
 glDeleteFencesNV :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
 glDeleteFencesNV = ffisizeiPtruintIOV glDeleteFencesNVFunPtr
 
@@ -36,6 +46,11 @@
 
 {-# NOINLINE glDeleteFencesNVFunPtr #-}
 
+-- | Usage: @'glFinishFenceNV' fence@
+--
+-- The parameter @fence@ is a @FenceNV@.
+
+
 glFinishFenceNV :: MonadIO m => GLuint -> m ()
 glFinishFenceNV = ffiuintIOV glFinishFenceNVFunPtr
 
@@ -44,6 +59,13 @@
 
 {-# NOINLINE glFinishFenceNVFunPtr #-}
 
+-- | Usage: @'glGenFencesNV' n fences@
+--
+-- The parameter @fences@ is a @FenceNV@.
+--
+-- The length of @fences@ should be @n@.
+
+
 glGenFencesNV :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
 glGenFencesNV = ffisizeiPtruintIOV glGenFencesNVFunPtr
 
@@ -52,6 +74,15 @@
 
 {-# NOINLINE glGenFencesNVFunPtr #-}
 
+-- | Usage: @'glGetFenceivNV' fence pname params@
+--
+-- The parameter @fence@ is a @FenceNV@.
+--
+-- The parameter @pname@ is a @FenceParameterNameNV@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
 glGetFenceivNV :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
 glGetFenceivNV = ffiuintenumPtrintIOV glGetFenceivNVFunPtr
 
@@ -60,6 +91,11 @@
 
 {-# NOINLINE glGetFenceivNVFunPtr #-}
 
+-- | Usage: @'glIsFenceNV' fence@
+--
+-- The parameter @fence@ is a @FenceNV@.
+
+
 glIsFenceNV :: MonadIO m => GLuint -> m GLboolean
 glIsFenceNV = ffiuintIOboolean glIsFenceNVFunPtr
 
@@ -68,6 +104,13 @@
 
 {-# NOINLINE glIsFenceNVFunPtr #-}
 
+-- | Usage: @'glSetFenceNV' fence condition@
+--
+-- The parameter @fence@ is a @FenceNV@.
+--
+-- The parameter @condition@ is a @FenceConditionNV@.
+
+
 glSetFenceNV :: MonadIO m => GLuint -> GLenum -> m ()
 glSetFenceNV = ffiuintenumIOV glSetFenceNVFunPtr
 
@@ -75,6 +118,11 @@
 glSetFenceNVFunPtr = unsafePerformIO (getProcAddress "glSetFenceNV")
 
 {-# NOINLINE glSetFenceNVFunPtr #-}
+
+-- | Usage: @'glTestFenceNV' fence@
+--
+-- The parameter @fence@ is a @FenceNV@.
+
 
 glTestFenceNV :: MonadIO m => GLuint -> m GLboolean
 glTestFenceNV = ffiuintIOboolean glTestFenceNVFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/FillRectangle.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/FillRectangle.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/FillRectangle.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/FillRectangle.hs
@@ -11,7 +11,10 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/fill_rectangle.txt GL_NV_fill_rectangle> extension is available.
+
 gl_NV_fill_rectangle :: Bool
 gl_NV_fill_rectangle = member "GL_NV_fill_rectangle" extensions
+{-# NOINLINE gl_NV_fill_rectangle #-}
 
 pattern GL_FILL_RECTANGLE_NV = 0x933C
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/FloatBuffer.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/FloatBuffer.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/FloatBuffer.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/FloatBuffer.hs
@@ -25,8 +25,11 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/float_buffer.txt GL_NV_float_buffer> extension is available.
+
 gl_NV_float_buffer :: Bool
 gl_NV_float_buffer = member "GL_NV_float_buffer" extensions
+{-# NOINLINE gl_NV_float_buffer #-}
 
 pattern GL_FLOAT_CLEAR_COLOR_VALUE_NV = 0x888D
 
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/FogDistance.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/FogDistance.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/FogDistance.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/FogDistance.hs
@@ -15,8 +15,11 @@
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/fog_distance.txt GL_NV_fog_distance> extension is available.
+
 gl_NV_fog_distance :: Bool
 gl_NV_fog_distance = member "GL_NV_fog_distance" extensions
+{-# NOINLINE gl_NV_fog_distance #-}
 
 pattern GL_EYE_PLANE_ABSOLUTE_NV = 0x855C
 
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/FragmentCoverageToColor.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/FragmentCoverageToColor.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/FragmentCoverageToColor.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/FragmentCoverageToColor.hs
@@ -18,8 +18,14 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/fragment_coverage_to_color.txt GL_NV_fragment_coverage_to_color> extension is available.
+
 gl_NV_fragment_coverage_to_color :: Bool
 gl_NV_fragment_coverage_to_color = member "GL_NV_fragment_coverage_to_color" extensions
+{-# NOINLINE gl_NV_fragment_coverage_to_color #-}
+
+-- | Usage: @'glFragmentCoverageColorNV' color@
+
 
 glFragmentCoverageColorNV :: MonadIO m => GLuint -> m ()
 glFragmentCoverageColorNV = ffiuintIOV glFragmentCoverageColorNVFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/FragmentProgram.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/FragmentProgram.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/FragmentProgram.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/FragmentProgram.hs
@@ -27,9 +27,19 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/fragment_program.txt GL_NV_fragment_program> extension is available.
+
 gl_NV_fragment_program :: Bool
 gl_NV_fragment_program = member "GL_NV_fragment_program" extensions
+{-# NOINLINE gl_NV_fragment_program #-}
 
+-- | Usage: @'glGetProgramNamedParameterdvNV' id len name params@
+--
+-- The length of @name@ should be @1@.
+--
+-- The length of @params@ should be @4@.
+
+
 glGetProgramNamedParameterdvNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLubyte -> Ptr GLdouble -> m ()
 glGetProgramNamedParameterdvNV = ffiuintsizeiPtrubytePtrdoubleIOV glGetProgramNamedParameterdvNVFunPtr
 
@@ -38,6 +48,13 @@
 
 {-# NOINLINE glGetProgramNamedParameterdvNVFunPtr #-}
 
+-- | Usage: @'glGetProgramNamedParameterfvNV' id len name params@
+--
+-- The length of @name@ should be @1@.
+--
+-- The length of @params@ should be @4@.
+
+
 glGetProgramNamedParameterfvNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLubyte -> Ptr GLfloat -> m ()
 glGetProgramNamedParameterfvNV = ffiuintsizeiPtrubytePtrfloatIOV glGetProgramNamedParameterfvNVFunPtr
 
@@ -46,6 +63,13 @@
 
 {-# NOINLINE glGetProgramNamedParameterfvNVFunPtr #-}
 
+-- | Usage: @'glProgramNamedParameter4dNV' id len name x y z w@
+--
+-- The length of @name@ should be @1@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Extension.NV.FragmentProgram.glProgramNamedParameter4dvNV'.
+
+
 glProgramNamedParameter4dNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLubyte -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
 glProgramNamedParameter4dNV = ffiuintsizeiPtrubytedoubledoubledoubledoubleIOV glProgramNamedParameter4dNVFunPtr
 
@@ -54,6 +78,13 @@
 
 {-# NOINLINE glProgramNamedParameter4dNVFunPtr #-}
 
+-- | Usage: @'glProgramNamedParameter4dvNV' id len name v@
+--
+-- The length of @name@ should be @1@.
+--
+-- The length of @v@ should be @4@.
+
+
 glProgramNamedParameter4dvNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLubyte -> Ptr GLdouble -> m ()
 glProgramNamedParameter4dvNV = ffiuintsizeiPtrubytePtrdoubleIOV glProgramNamedParameter4dvNVFunPtr
 
@@ -62,6 +93,13 @@
 
 {-# NOINLINE glProgramNamedParameter4dvNVFunPtr #-}
 
+-- | Usage: @'glProgramNamedParameter4fNV' id len name x y z w@
+--
+-- The length of @name@ should be @1@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Extension.NV.FragmentProgram.glProgramNamedParameter4fvNV'.
+
+
 glProgramNamedParameter4fNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLubyte -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
 glProgramNamedParameter4fNV = ffiuintsizeiPtrubytefloatfloatfloatfloatIOV glProgramNamedParameter4fNVFunPtr
 
@@ -69,6 +107,13 @@
 glProgramNamedParameter4fNVFunPtr = unsafePerformIO (getProcAddress "glProgramNamedParameter4fNV")
 
 {-# NOINLINE glProgramNamedParameter4fNVFunPtr #-}
+
+-- | Usage: @'glProgramNamedParameter4fvNV' id len name v@
+--
+-- The length of @name@ should be @1@.
+--
+-- The length of @v@ should be @4@.
+
 
 glProgramNamedParameter4fvNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLubyte -> Ptr GLfloat -> m ()
 glProgramNamedParameter4fvNV = ffiuintsizeiPtrubytePtrfloatIOV glProgramNamedParameter4fvNVFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/FragmentProgram2.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/FragmentProgram2.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/FragmentProgram2.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/FragmentProgram2.hs
@@ -16,8 +16,11 @@
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/fragment_program2.txt GL_NV_fragment_program2> extension is available.
+
 gl_NV_fragment_program2 :: Bool
 gl_NV_fragment_program2 = member "GL_NV_fragment_program2" extensions
+{-# NOINLINE gl_NV_fragment_program2 #-}
 
 pattern GL_MAX_PROGRAM_IF_DEPTH_NV = 0x88F6
 
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/FragmentProgram4.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/FragmentProgram4.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/FragmentProgram4.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/FragmentProgram4.hs
@@ -8,5 +8,8 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/fragment_program4.txt GL_NV_fragment_program4> extension is available.
+
 gl_NV_fragment_program4 :: Bool
 gl_NV_fragment_program4 = member "GL_NV_fragment_program4" extensions
+{-# NOINLINE gl_NV_fragment_program4 #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/FragmentProgramOption.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/FragmentProgramOption.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/FragmentProgramOption.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/FragmentProgramOption.hs
@@ -8,5 +8,8 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/fragment_program_option.txt GL_NV_fragment_program_option> extension is available.
+
 gl_NV_fragment_program_option :: Bool
 gl_NV_fragment_program_option = member "GL_NV_fragment_program_option" extensions
+{-# NOINLINE gl_NV_fragment_program_option #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/FragmentShaderInterlock.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/FragmentShaderInterlock.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/FragmentShaderInterlock.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/FragmentShaderInterlock.hs
@@ -8,5 +8,8 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/fragment_shader_interlock.txt GL_NV_fragment_shader_interlock> extension is available.
+
 gl_NV_fragment_shader_interlock :: Bool
 gl_NV_fragment_shader_interlock = member "GL_NV_fragment_shader_interlock" extensions
+{-# NOINLINE gl_NV_fragment_shader_interlock #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/FramebufferBlit.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/FramebufferBlit.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/FramebufferBlit.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/FramebufferBlit.hs
@@ -20,8 +20,16 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the GL_NV_framebuffer_blit extension is available.
+
 gl_NV_framebuffer_blit :: Bool
 gl_NV_framebuffer_blit = member "GL_NV_framebuffer_blit" extensions
+{-# NOINLINE gl_NV_framebuffer_blit #-}
+
+-- | Usage: @'glBlitFramebufferNV' srcX0 srcY0 srcX1 srcY1 dstX0 dstY0 dstX1 dstY1 mask filter@
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glBlitFramebuffer'.
+
 
 glBlitFramebufferNV :: MonadIO m => GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLbitfield -> GLenum -> m ()
 glBlitFramebufferNV = ffiintintintintintintintintbitfieldenumIOV glBlitFramebufferNVFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/FramebufferMixedSamples.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/FramebufferMixedSamples.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/FramebufferMixedSamples.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/FramebufferMixedSamples.hs
@@ -34,9 +34,15 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/framebuffer_mixed_samples.txt GL_NV_framebuffer_mixed_samples> extension is available.
+
 gl_NV_framebuffer_mixed_samples :: Bool
 gl_NV_framebuffer_mixed_samples = member "GL_NV_framebuffer_mixed_samples" extensions
+{-# NOINLINE gl_NV_framebuffer_mixed_samples #-}
 
+-- | Usage: @'glCoverageModulationNV' components@
+
+
 glCoverageModulationNV :: MonadIO m => GLenum -> m ()
 glCoverageModulationNV = ffienumIOV glCoverageModulationNVFunPtr
 
@@ -45,6 +51,9 @@
 
 {-# NOINLINE glCoverageModulationNVFunPtr #-}
 
+-- | Usage: @'glCoverageModulationTableNV' n v@
+
+
 glCoverageModulationTableNV :: MonadIO m => GLsizei -> Ptr GLfloat -> m ()
 glCoverageModulationTableNV = ffisizeiPtrfloatIOV glCoverageModulationTableNVFunPtr
 
@@ -52,6 +61,9 @@
 glCoverageModulationTableNVFunPtr = unsafePerformIO (getProcAddress "glCoverageModulationTableNV")
 
 {-# NOINLINE glCoverageModulationTableNVFunPtr #-}
+
+-- | Usage: @'glGetCoverageModulationTableNV' bufsize v@
+
 
 glGetCoverageModulationTableNV :: MonadIO m => GLsizei -> Ptr GLfloat -> m ()
 glGetCoverageModulationTableNV = ffisizeiPtrfloatIOV glGetCoverageModulationTableNVFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/FramebufferMultisample.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/FramebufferMultisample.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/FramebufferMultisample.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/FramebufferMultisample.hs
@@ -19,8 +19,16 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the GL_NV_framebuffer_multisample extension is available.
+
 gl_NV_framebuffer_multisample :: Bool
 gl_NV_framebuffer_multisample = member "GL_NV_framebuffer_multisample" extensions
+{-# NOINLINE gl_NV_framebuffer_multisample #-}
+
+-- | Usage: @'glRenderbufferStorageMultisampleNV' target samples internalformat width height@
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glRenderbufferStorageMultisample'.
+
 
 glRenderbufferStorageMultisampleNV :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()
 glRenderbufferStorageMultisampleNV = ffienumsizeienumsizeisizeiIOV glRenderbufferStorageMultisampleNVFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/FramebufferMultisampleCoverage.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/FramebufferMultisampleCoverage.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/FramebufferMultisampleCoverage.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/FramebufferMultisampleCoverage.hs
@@ -20,8 +20,18 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/framebuffer_multisample_coverage.txt GL_NV_framebuffer_multisample_coverage> extension is available.
+
 gl_NV_framebuffer_multisample_coverage :: Bool
 gl_NV_framebuffer_multisample_coverage = member "GL_NV_framebuffer_multisample_coverage" extensions
+{-# NOINLINE gl_NV_framebuffer_multisample_coverage #-}
+
+-- | Usage: @'glRenderbufferStorageMultisampleCoverageNV' target coverageSamples colorSamples internalformat width height@
+--
+-- The parameter @target@ is a @RenderbufferTarget@.
+--
+-- The parameter @internalformat@ is a @PixelInternalFormat@.
+
 
 glRenderbufferStorageMultisampleCoverageNV :: MonadIO m => GLenum -> GLsizei -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()
 glRenderbufferStorageMultisampleCoverageNV = ffienumsizeisizeienumsizeisizeiIOV glRenderbufferStorageMultisampleCoverageNVFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/GenerateMipmapSRGB.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/GenerateMipmapSRGB.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/GenerateMipmapSRGB.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/GenerateMipmapSRGB.hs
@@ -8,5 +8,8 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the GL_NV_generate_mipmap_sRGB extension is available.
+
 gl_NV_generate_mipmap_sRGB :: Bool
 gl_NV_generate_mipmap_sRGB = member "GL_NV_generate_mipmap_sRGB" extensions
+{-# NOINLINE gl_NV_generate_mipmap_sRGB #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/GeometryProgram4.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/GeometryProgram4.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/GeometryProgram4.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/GeometryProgram4.hs
@@ -36,9 +36,27 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/geometry_program4.txt GL_NV_geometry_program4> extension is available.
+
 gl_NV_geometry_program4 :: Bool
 gl_NV_geometry_program4 = member "GL_NV_geometry_program4" extensions
+{-# NOINLINE gl_NV_geometry_program4 #-}
 
+-- | Usage: @'glFramebufferTextureFaceEXT' target attachment texture level face@
+--
+-- The parameter @target@ is a @FramebufferTarget@.
+--
+-- The parameter @attachment@ is a @FramebufferAttachment@.
+--
+-- The parameter @texture@ is a @Texture@.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @face@ is a @TextureTarget@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.glFramebufferTextureFaceARB'.
+
+
 glFramebufferTextureFaceEXT :: MonadIO m => GLenum -> GLenum -> GLuint -> GLint -> GLenum -> m ()
 glFramebufferTextureFaceEXT = ffienumenumuintintenumIOV glFramebufferTextureFaceEXTFunPtr
 
@@ -46,6 +64,11 @@
 glFramebufferTextureFaceEXTFunPtr = unsafePerformIO (getProcAddress "glFramebufferTextureFaceEXT")
 
 {-# NOINLINE glFramebufferTextureFaceEXTFunPtr #-}
+
+-- | Usage: @'glProgramVertexLimitNV' target limit@
+--
+-- The parameter @target@ is a @ProgramTarget@.
+
 
 glProgramVertexLimitNV :: MonadIO m => GLenum -> GLint -> m ()
 glProgramVertexLimitNV = ffienumintIOV glProgramVertexLimitNVFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/GeometryShader4.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/GeometryShader4.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/GeometryShader4.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/GeometryShader4.hs
@@ -8,5 +8,8 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/geometry_shader4.txt GL_NV_geometry_shader4> extension is available.
+
 gl_NV_geometry_shader4 :: Bool
 gl_NV_geometry_shader4 = member "GL_NV_geometry_shader4" extensions
+{-# NOINLINE gl_NV_geometry_shader4 #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/GeometryShaderPassthrough.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/GeometryShaderPassthrough.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/GeometryShaderPassthrough.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/GeometryShaderPassthrough.hs
@@ -8,5 +8,8 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/geometry_shader_passthrough.txt GL_NV_geometry_shader_passthrough> extension is available.
+
 gl_NV_geometry_shader_passthrough :: Bool
 gl_NV_geometry_shader_passthrough = member "GL_NV_geometry_shader_passthrough" extensions
+{-# NOINLINE gl_NV_geometry_shader_passthrough #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/GpuProgram4.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/GpuProgram4.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/GpuProgram4.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/GpuProgram4.hs
@@ -39,9 +39,19 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/gpu_program4.txt GL_NV_gpu_program4> extension is available.
+
 gl_NV_gpu_program4 :: Bool
 gl_NV_gpu_program4 = member "GL_NV_gpu_program4" extensions
+{-# NOINLINE gl_NV_gpu_program4 #-}
 
+-- | Usage: @'glGetProgramEnvParameterIivNV' target index params@
+--
+-- The parameter @target@ is a @ProgramTarget@.
+--
+-- The length of @params@ should be @4@.
+
+
 glGetProgramEnvParameterIivNV :: MonadIO m => GLenum -> GLuint -> Ptr GLint -> m ()
 glGetProgramEnvParameterIivNV = ffienumuintPtrintIOV glGetProgramEnvParameterIivNVFunPtr
 
@@ -50,6 +60,13 @@
 
 {-# NOINLINE glGetProgramEnvParameterIivNVFunPtr #-}
 
+-- | Usage: @'glGetProgramEnvParameterIuivNV' target index params@
+--
+-- The parameter @target@ is a @ProgramTarget@.
+--
+-- The length of @params@ should be @4@.
+
+
 glGetProgramEnvParameterIuivNV :: MonadIO m => GLenum -> GLuint -> Ptr GLuint -> m ()
 glGetProgramEnvParameterIuivNV = ffienumuintPtruintIOV glGetProgramEnvParameterIuivNVFunPtr
 
@@ -58,6 +75,13 @@
 
 {-# NOINLINE glGetProgramEnvParameterIuivNVFunPtr #-}
 
+-- | Usage: @'glGetProgramLocalParameterIivNV' target index params@
+--
+-- The parameter @target@ is a @ProgramTarget@.
+--
+-- The length of @params@ should be @4@.
+
+
 glGetProgramLocalParameterIivNV :: MonadIO m => GLenum -> GLuint -> Ptr GLint -> m ()
 glGetProgramLocalParameterIivNV = ffienumuintPtrintIOV glGetProgramLocalParameterIivNVFunPtr
 
@@ -66,6 +90,13 @@
 
 {-# NOINLINE glGetProgramLocalParameterIivNVFunPtr #-}
 
+-- | Usage: @'glGetProgramLocalParameterIuivNV' target index params@
+--
+-- The parameter @target@ is a @ProgramTarget@.
+--
+-- The length of @params@ should be @4@.
+
+
 glGetProgramLocalParameterIuivNV :: MonadIO m => GLenum -> GLuint -> Ptr GLuint -> m ()
 glGetProgramLocalParameterIuivNV = ffienumuintPtruintIOV glGetProgramLocalParameterIuivNVFunPtr
 
@@ -74,6 +105,13 @@
 
 {-# NOINLINE glGetProgramLocalParameterIuivNVFunPtr #-}
 
+-- | Usage: @'glProgramEnvParameterI4iNV' target index x y z w@
+--
+-- The parameter @target@ is a @ProgramTarget@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Extension.NV.GpuProgram4.glProgramEnvParameterI4ivNV'.
+
+
 glProgramEnvParameterI4iNV :: MonadIO m => GLenum -> GLuint -> GLint -> GLint -> GLint -> GLint -> m ()
 glProgramEnvParameterI4iNV = ffienumuintintintintintIOV glProgramEnvParameterI4iNVFunPtr
 
@@ -82,6 +120,13 @@
 
 {-# NOINLINE glProgramEnvParameterI4iNVFunPtr #-}
 
+-- | Usage: @'glProgramEnvParameterI4ivNV' target index params@
+--
+-- The parameter @target@ is a @ProgramTarget@.
+--
+-- The length of @params@ should be @4@.
+
+
 glProgramEnvParameterI4ivNV :: MonadIO m => GLenum -> GLuint -> Ptr GLint -> m ()
 glProgramEnvParameterI4ivNV = ffienumuintPtrintIOV glProgramEnvParameterI4ivNVFunPtr
 
@@ -90,6 +135,13 @@
 
 {-# NOINLINE glProgramEnvParameterI4ivNVFunPtr #-}
 
+-- | Usage: @'glProgramEnvParameterI4uiNV' target index x y z w@
+--
+-- The parameter @target@ is a @ProgramTarget@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Extension.NV.GpuProgram4.glProgramEnvParameterI4uivNV'.
+
+
 glProgramEnvParameterI4uiNV :: MonadIO m => GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
 glProgramEnvParameterI4uiNV = ffienumuintuintuintuintuintIOV glProgramEnvParameterI4uiNVFunPtr
 
@@ -98,6 +150,13 @@
 
 {-# NOINLINE glProgramEnvParameterI4uiNVFunPtr #-}
 
+-- | Usage: @'glProgramEnvParameterI4uivNV' target index params@
+--
+-- The parameter @target@ is a @ProgramTarget@.
+--
+-- The length of @params@ should be @4@.
+
+
 glProgramEnvParameterI4uivNV :: MonadIO m => GLenum -> GLuint -> Ptr GLuint -> m ()
 glProgramEnvParameterI4uivNV = ffienumuintPtruintIOV glProgramEnvParameterI4uivNVFunPtr
 
@@ -106,6 +165,13 @@
 
 {-# NOINLINE glProgramEnvParameterI4uivNVFunPtr #-}
 
+-- | Usage: @'glProgramEnvParametersI4ivNV' target index count params@
+--
+-- The parameter @target@ is a @ProgramTarget@.
+--
+-- The length of @params@ should be @count*4@.
+
+
 glProgramEnvParametersI4ivNV :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLint -> m ()
 glProgramEnvParametersI4ivNV = ffienumuintsizeiPtrintIOV glProgramEnvParametersI4ivNVFunPtr
 
@@ -114,6 +180,13 @@
 
 {-# NOINLINE glProgramEnvParametersI4ivNVFunPtr #-}
 
+-- | Usage: @'glProgramEnvParametersI4uivNV' target index count params@
+--
+-- The parameter @target@ is a @ProgramTarget@.
+--
+-- The length of @params@ should be @count*4@.
+
+
 glProgramEnvParametersI4uivNV :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLuint -> m ()
 glProgramEnvParametersI4uivNV = ffienumuintsizeiPtruintIOV glProgramEnvParametersI4uivNVFunPtr
 
@@ -122,6 +195,13 @@
 
 {-# NOINLINE glProgramEnvParametersI4uivNVFunPtr #-}
 
+-- | Usage: @'glProgramLocalParameterI4iNV' target index x y z w@
+--
+-- The parameter @target@ is a @ProgramTarget@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Extension.NV.GpuProgram4.glProgramLocalParameterI4ivNV'.
+
+
 glProgramLocalParameterI4iNV :: MonadIO m => GLenum -> GLuint -> GLint -> GLint -> GLint -> GLint -> m ()
 glProgramLocalParameterI4iNV = ffienumuintintintintintIOV glProgramLocalParameterI4iNVFunPtr
 
@@ -130,6 +210,13 @@
 
 {-# NOINLINE glProgramLocalParameterI4iNVFunPtr #-}
 
+-- | Usage: @'glProgramLocalParameterI4ivNV' target index params@
+--
+-- The parameter @target@ is a @ProgramTarget@.
+--
+-- The length of @params@ should be @4@.
+
+
 glProgramLocalParameterI4ivNV :: MonadIO m => GLenum -> GLuint -> Ptr GLint -> m ()
 glProgramLocalParameterI4ivNV = ffienumuintPtrintIOV glProgramLocalParameterI4ivNVFunPtr
 
@@ -138,6 +225,13 @@
 
 {-# NOINLINE glProgramLocalParameterI4ivNVFunPtr #-}
 
+-- | Usage: @'glProgramLocalParameterI4uiNV' target index x y z w@
+--
+-- The parameter @target@ is a @ProgramTarget@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Extension.NV.GpuProgram4.glProgramLocalParameterI4uivNV'.
+
+
 glProgramLocalParameterI4uiNV :: MonadIO m => GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
 glProgramLocalParameterI4uiNV = ffienumuintuintuintuintuintIOV glProgramLocalParameterI4uiNVFunPtr
 
@@ -146,6 +240,13 @@
 
 {-# NOINLINE glProgramLocalParameterI4uiNVFunPtr #-}
 
+-- | Usage: @'glProgramLocalParameterI4uivNV' target index params@
+--
+-- The parameter @target@ is a @ProgramTarget@.
+--
+-- The length of @params@ should be @4@.
+
+
 glProgramLocalParameterI4uivNV :: MonadIO m => GLenum -> GLuint -> Ptr GLuint -> m ()
 glProgramLocalParameterI4uivNV = ffienumuintPtruintIOV glProgramLocalParameterI4uivNVFunPtr
 
@@ -154,6 +255,13 @@
 
 {-# NOINLINE glProgramLocalParameterI4uivNVFunPtr #-}
 
+-- | Usage: @'glProgramLocalParametersI4ivNV' target index count params@
+--
+-- The parameter @target@ is a @ProgramTarget@.
+--
+-- The length of @params@ should be @count*4@.
+
+
 glProgramLocalParametersI4ivNV :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLint -> m ()
 glProgramLocalParametersI4ivNV = ffienumuintsizeiPtrintIOV glProgramLocalParametersI4ivNVFunPtr
 
@@ -161,6 +269,13 @@
 glProgramLocalParametersI4ivNVFunPtr = unsafePerformIO (getProcAddress "glProgramLocalParametersI4ivNV")
 
 {-# NOINLINE glProgramLocalParametersI4ivNVFunPtr #-}
+
+-- | Usage: @'glProgramLocalParametersI4uivNV' target index count params@
+--
+-- The parameter @target@ is a @ProgramTarget@.
+--
+-- The length of @params@ should be @count*4@.
+
 
 glProgramLocalParametersI4uivNV :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLuint -> m ()
 glProgramLocalParametersI4uivNV = ffienumuintsizeiPtruintIOV glProgramLocalParametersI4uivNVFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/GpuProgram5.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/GpuProgram5.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/GpuProgram5.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/GpuProgram5.hs
@@ -25,9 +25,17 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/gpu_program5.txt GL_NV_gpu_program5> extension is available.
+
 gl_NV_gpu_program5 :: Bool
 gl_NV_gpu_program5 = member "GL_NV_gpu_program5" extensions
+{-# NOINLINE gl_NV_gpu_program5 #-}
 
+-- | Usage: @'glGetProgramSubroutineParameteruivNV' target index param@
+--
+-- The length of @param@ should be @COMPSIZE(target)@.
+
+
 glGetProgramSubroutineParameteruivNV :: MonadIO m => GLenum -> GLuint -> Ptr GLuint -> m ()
 glGetProgramSubroutineParameteruivNV = ffienumuintPtruintIOV glGetProgramSubroutineParameteruivNVFunPtr
 
@@ -35,6 +43,11 @@
 glGetProgramSubroutineParameteruivNVFunPtr = unsafePerformIO (getProcAddress "glGetProgramSubroutineParameteruivNV")
 
 {-# NOINLINE glGetProgramSubroutineParameteruivNVFunPtr #-}
+
+-- | Usage: @'glProgramSubroutineParametersuivNV' target count params@
+--
+-- The length of @params@ should be @count@.
+
 
 glProgramSubroutineParametersuivNV :: MonadIO m => GLenum -> GLsizei -> Ptr GLuint -> m ()
 glProgramSubroutineParametersuivNV = ffienumsizeiPtruintIOV glProgramSubroutineParametersuivNVFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/GpuProgram5MemExtended.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/GpuProgram5MemExtended.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/GpuProgram5MemExtended.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/GpuProgram5MemExtended.hs
@@ -8,5 +8,8 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/gpu_program5_mem_extended.txt GL_NV_gpu_program5_mem_extended> extension is available.
+
 gl_NV_gpu_program5_mem_extended :: Bool
 gl_NV_gpu_program5_mem_extended = member "GL_NV_gpu_program5_mem_extended" extensions
+{-# NOINLINE gl_NV_gpu_program5_mem_extended #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/GpuShader5.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/GpuShader5.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/GpuShader5.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/GpuShader5.hs
@@ -73,5 +73,8 @@
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/gpu_shader5.txt GL_NV_gpu_shader5> extension is available.
+
 gl_NV_gpu_shader5 :: Bool
 gl_NV_gpu_shader5 = member "GL_NV_gpu_shader5" extensions
+{-# NOINLINE gl_NV_gpu_shader5 #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/HalfFloat.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/HalfFloat.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/HalfFloat.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/HalfFloat.hs
@@ -62,9 +62,23 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/half_float.txt GL_NV_half_float> extension is available.
+
 gl_NV_half_float :: Bool
 gl_NV_half_float = member "GL_NV_half_float" extensions
+{-# NOINLINE gl_NV_half_float #-}
 
+-- | Usage: @'glColor3hNV' red green blue@
+--
+-- The parameter @red@ is a @Half16NV@.
+--
+-- The parameter @green@ is a @Half16NV@.
+--
+-- The parameter @blue@ is a @Half16NV@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Extension.NV.HalfFloat.glColor3hvNV'.
+
+
 glColor3hNV :: MonadIO m => GLhalfNV -> GLhalfNV -> GLhalfNV -> m ()
 glColor3hNV = ffihalfNVhalfNVhalfNVIOV glColor3hNVFunPtr
 
@@ -73,6 +87,13 @@
 
 {-# NOINLINE glColor3hNVFunPtr #-}
 
+-- | Usage: @'glColor3hvNV' v@
+--
+-- The parameter @v@ is a @Half16NV@.
+--
+-- The length of @v@ should be @3@.
+
+
 glColor3hvNV :: MonadIO m => Ptr GLhalfNV -> m ()
 glColor3hvNV = ffiPtrhalfNVIOV glColor3hvNVFunPtr
 
@@ -81,6 +102,19 @@
 
 {-# NOINLINE glColor3hvNVFunPtr #-}
 
+-- | Usage: @'glColor4hNV' red green blue alpha@
+--
+-- The parameter @red@ is a @Half16NV@.
+--
+-- The parameter @green@ is a @Half16NV@.
+--
+-- The parameter @blue@ is a @Half16NV@.
+--
+-- The parameter @alpha@ is a @Half16NV@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Extension.NV.HalfFloat.glColor4hvNV'.
+
+
 glColor4hNV :: MonadIO m => GLhalfNV -> GLhalfNV -> GLhalfNV -> GLhalfNV -> m ()
 glColor4hNV = ffihalfNVhalfNVhalfNVhalfNVIOV glColor4hNVFunPtr
 
@@ -89,6 +123,13 @@
 
 {-# NOINLINE glColor4hNVFunPtr #-}
 
+-- | Usage: @'glColor4hvNV' v@
+--
+-- The parameter @v@ is a @Half16NV@.
+--
+-- The length of @v@ should be @4@.
+
+
 glColor4hvNV :: MonadIO m => Ptr GLhalfNV -> m ()
 glColor4hvNV = ffiPtrhalfNVIOV glColor4hvNVFunPtr
 
@@ -97,6 +138,13 @@
 
 {-# NOINLINE glColor4hvNVFunPtr #-}
 
+-- | Usage: @'glFogCoordhNV' fog@
+--
+-- The parameter @fog@ is a @Half16NV@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Extension.NV.HalfFloat.glFogCoordhvNV'.
+
+
 glFogCoordhNV :: MonadIO m => GLhalfNV -> m ()
 glFogCoordhNV = ffihalfNVIOV glFogCoordhNVFunPtr
 
@@ -105,6 +153,13 @@
 
 {-# NOINLINE glFogCoordhNVFunPtr #-}
 
+-- | Usage: @'glFogCoordhvNV' fog@
+--
+-- The parameter @fog@ is a @Half16NV@.
+--
+-- The length of @fog@ should be @1@.
+
+
 glFogCoordhvNV :: MonadIO m => Ptr GLhalfNV -> m ()
 glFogCoordhvNV = ffiPtrhalfNVIOV glFogCoordhvNVFunPtr
 
@@ -113,6 +168,15 @@
 
 {-# NOINLINE glFogCoordhvNVFunPtr #-}
 
+-- | Usage: @'glMultiTexCoord1hNV' target s@
+--
+-- The parameter @target@ is a @TextureUnit@.
+--
+-- The parameter @s@ is a @Half16NV@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Extension.NV.HalfFloat.glMultiTexCoord1hvNV'.
+
+
 glMultiTexCoord1hNV :: MonadIO m => GLenum -> GLhalfNV -> m ()
 glMultiTexCoord1hNV = ffienumhalfNVIOV glMultiTexCoord1hNVFunPtr
 
@@ -121,6 +185,15 @@
 
 {-# NOINLINE glMultiTexCoord1hNVFunPtr #-}
 
+-- | Usage: @'glMultiTexCoord1hvNV' target v@
+--
+-- The parameter @target@ is a @TextureUnit@.
+--
+-- The parameter @v@ is a @Half16NV@.
+--
+-- The length of @v@ should be @1@.
+
+
 glMultiTexCoord1hvNV :: MonadIO m => GLenum -> Ptr GLhalfNV -> m ()
 glMultiTexCoord1hvNV = ffienumPtrhalfNVIOV glMultiTexCoord1hvNVFunPtr
 
@@ -129,6 +202,17 @@
 
 {-# NOINLINE glMultiTexCoord1hvNVFunPtr #-}
 
+-- | Usage: @'glMultiTexCoord2hNV' target s t@
+--
+-- The parameter @target@ is a @TextureUnit@.
+--
+-- The parameter @s@ is a @Half16NV@.
+--
+-- The parameter @t@ is a @Half16NV@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Extension.NV.HalfFloat.glMultiTexCoord2hvNV'.
+
+
 glMultiTexCoord2hNV :: MonadIO m => GLenum -> GLhalfNV -> GLhalfNV -> m ()
 glMultiTexCoord2hNV = ffienumhalfNVhalfNVIOV glMultiTexCoord2hNVFunPtr
 
@@ -137,6 +221,15 @@
 
 {-# NOINLINE glMultiTexCoord2hNVFunPtr #-}
 
+-- | Usage: @'glMultiTexCoord2hvNV' target v@
+--
+-- The parameter @target@ is a @TextureUnit@.
+--
+-- The parameter @v@ is a @Half16NV@.
+--
+-- The length of @v@ should be @2@.
+
+
 glMultiTexCoord2hvNV :: MonadIO m => GLenum -> Ptr GLhalfNV -> m ()
 glMultiTexCoord2hvNV = ffienumPtrhalfNVIOV glMultiTexCoord2hvNVFunPtr
 
@@ -145,6 +238,19 @@
 
 {-# NOINLINE glMultiTexCoord2hvNVFunPtr #-}
 
+-- | Usage: @'glMultiTexCoord3hNV' target s t r@
+--
+-- The parameter @target@ is a @TextureUnit@.
+--
+-- The parameter @s@ is a @Half16NV@.
+--
+-- The parameter @t@ is a @Half16NV@.
+--
+-- The parameter @r@ is a @Half16NV@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Extension.NV.HalfFloat.glMultiTexCoord3hvNV'.
+
+
 glMultiTexCoord3hNV :: MonadIO m => GLenum -> GLhalfNV -> GLhalfNV -> GLhalfNV -> m ()
 glMultiTexCoord3hNV = ffienumhalfNVhalfNVhalfNVIOV glMultiTexCoord3hNVFunPtr
 
@@ -153,6 +259,15 @@
 
 {-# NOINLINE glMultiTexCoord3hNVFunPtr #-}
 
+-- | Usage: @'glMultiTexCoord3hvNV' target v@
+--
+-- The parameter @target@ is a @TextureUnit@.
+--
+-- The parameter @v@ is a @Half16NV@.
+--
+-- The length of @v@ should be @3@.
+
+
 glMultiTexCoord3hvNV :: MonadIO m => GLenum -> Ptr GLhalfNV -> m ()
 glMultiTexCoord3hvNV = ffienumPtrhalfNVIOV glMultiTexCoord3hvNVFunPtr
 
@@ -161,6 +276,21 @@
 
 {-# NOINLINE glMultiTexCoord3hvNVFunPtr #-}
 
+-- | Usage: @'glMultiTexCoord4hNV' target s t r q@
+--
+-- The parameter @target@ is a @TextureUnit@.
+--
+-- The parameter @s@ is a @Half16NV@.
+--
+-- The parameter @t@ is a @Half16NV@.
+--
+-- The parameter @r@ is a @Half16NV@.
+--
+-- The parameter @q@ is a @Half16NV@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Extension.NV.HalfFloat.glMultiTexCoord4hvNV'.
+
+
 glMultiTexCoord4hNV :: MonadIO m => GLenum -> GLhalfNV -> GLhalfNV -> GLhalfNV -> GLhalfNV -> m ()
 glMultiTexCoord4hNV = ffienumhalfNVhalfNVhalfNVhalfNVIOV glMultiTexCoord4hNVFunPtr
 
@@ -169,6 +299,15 @@
 
 {-# NOINLINE glMultiTexCoord4hNVFunPtr #-}
 
+-- | Usage: @'glMultiTexCoord4hvNV' target v@
+--
+-- The parameter @target@ is a @TextureUnit@.
+--
+-- The parameter @v@ is a @Half16NV@.
+--
+-- The length of @v@ should be @4@.
+
+
 glMultiTexCoord4hvNV :: MonadIO m => GLenum -> Ptr GLhalfNV -> m ()
 glMultiTexCoord4hvNV = ffienumPtrhalfNVIOV glMultiTexCoord4hvNVFunPtr
 
@@ -177,6 +316,17 @@
 
 {-# NOINLINE glMultiTexCoord4hvNVFunPtr #-}
 
+-- | Usage: @'glNormal3hNV' nx ny nz@
+--
+-- The parameter @nx@ is a @Half16NV@.
+--
+-- The parameter @ny@ is a @Half16NV@.
+--
+-- The parameter @nz@ is a @Half16NV@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Extension.NV.HalfFloat.glNormal3hvNV'.
+
+
 glNormal3hNV :: MonadIO m => GLhalfNV -> GLhalfNV -> GLhalfNV -> m ()
 glNormal3hNV = ffihalfNVhalfNVhalfNVIOV glNormal3hNVFunPtr
 
@@ -185,6 +335,13 @@
 
 {-# NOINLINE glNormal3hNVFunPtr #-}
 
+-- | Usage: @'glNormal3hvNV' v@
+--
+-- The parameter @v@ is a @Half16NV@.
+--
+-- The length of @v@ should be @3@.
+
+
 glNormal3hvNV :: MonadIO m => Ptr GLhalfNV -> m ()
 glNormal3hvNV = ffiPtrhalfNVIOV glNormal3hvNVFunPtr
 
@@ -193,6 +350,17 @@
 
 {-# NOINLINE glNormal3hvNVFunPtr #-}
 
+-- | Usage: @'glSecondaryColor3hNV' red green blue@
+--
+-- The parameter @red@ is a @Half16NV@.
+--
+-- The parameter @green@ is a @Half16NV@.
+--
+-- The parameter @blue@ is a @Half16NV@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Extension.NV.HalfFloat.glSecondaryColor3hvNV'.
+
+
 glSecondaryColor3hNV :: MonadIO m => GLhalfNV -> GLhalfNV -> GLhalfNV -> m ()
 glSecondaryColor3hNV = ffihalfNVhalfNVhalfNVIOV glSecondaryColor3hNVFunPtr
 
@@ -201,6 +369,13 @@
 
 {-# NOINLINE glSecondaryColor3hNVFunPtr #-}
 
+-- | Usage: @'glSecondaryColor3hvNV' v@
+--
+-- The parameter @v@ is a @Half16NV@.
+--
+-- The length of @v@ should be @3@.
+
+
 glSecondaryColor3hvNV :: MonadIO m => Ptr GLhalfNV -> m ()
 glSecondaryColor3hvNV = ffiPtrhalfNVIOV glSecondaryColor3hvNVFunPtr
 
@@ -209,6 +384,13 @@
 
 {-# NOINLINE glSecondaryColor3hvNVFunPtr #-}
 
+-- | Usage: @'glTexCoord1hNV' s@
+--
+-- The parameter @s@ is a @Half16NV@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Extension.NV.HalfFloat.glTexCoord1hvNV'.
+
+
 glTexCoord1hNV :: MonadIO m => GLhalfNV -> m ()
 glTexCoord1hNV = ffihalfNVIOV glTexCoord1hNVFunPtr
 
@@ -217,6 +399,13 @@
 
 {-# NOINLINE glTexCoord1hNVFunPtr #-}
 
+-- | Usage: @'glTexCoord1hvNV' v@
+--
+-- The parameter @v@ is a @Half16NV@.
+--
+-- The length of @v@ should be @1@.
+
+
 glTexCoord1hvNV :: MonadIO m => Ptr GLhalfNV -> m ()
 glTexCoord1hvNV = ffiPtrhalfNVIOV glTexCoord1hvNVFunPtr
 
@@ -225,6 +414,15 @@
 
 {-# NOINLINE glTexCoord1hvNVFunPtr #-}
 
+-- | Usage: @'glTexCoord2hNV' s t@
+--
+-- The parameter @s@ is a @Half16NV@.
+--
+-- The parameter @t@ is a @Half16NV@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Extension.NV.HalfFloat.glTexCoord2hvNV'.
+
+
 glTexCoord2hNV :: MonadIO m => GLhalfNV -> GLhalfNV -> m ()
 glTexCoord2hNV = ffihalfNVhalfNVIOV glTexCoord2hNVFunPtr
 
@@ -233,6 +431,13 @@
 
 {-# NOINLINE glTexCoord2hNVFunPtr #-}
 
+-- | Usage: @'glTexCoord2hvNV' v@
+--
+-- The parameter @v@ is a @Half16NV@.
+--
+-- The length of @v@ should be @2@.
+
+
 glTexCoord2hvNV :: MonadIO m => Ptr GLhalfNV -> m ()
 glTexCoord2hvNV = ffiPtrhalfNVIOV glTexCoord2hvNVFunPtr
 
@@ -241,6 +446,17 @@
 
 {-# NOINLINE glTexCoord2hvNVFunPtr #-}
 
+-- | Usage: @'glTexCoord3hNV' s t r@
+--
+-- The parameter @s@ is a @Half16NV@.
+--
+-- The parameter @t@ is a @Half16NV@.
+--
+-- The parameter @r@ is a @Half16NV@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Extension.NV.HalfFloat.glTexCoord3hvNV'.
+
+
 glTexCoord3hNV :: MonadIO m => GLhalfNV -> GLhalfNV -> GLhalfNV -> m ()
 glTexCoord3hNV = ffihalfNVhalfNVhalfNVIOV glTexCoord3hNVFunPtr
 
@@ -249,6 +465,13 @@
 
 {-# NOINLINE glTexCoord3hNVFunPtr #-}
 
+-- | Usage: @'glTexCoord3hvNV' v@
+--
+-- The parameter @v@ is a @Half16NV@.
+--
+-- The length of @v@ should be @3@.
+
+
 glTexCoord3hvNV :: MonadIO m => Ptr GLhalfNV -> m ()
 glTexCoord3hvNV = ffiPtrhalfNVIOV glTexCoord3hvNVFunPtr
 
@@ -257,6 +480,19 @@
 
 {-# NOINLINE glTexCoord3hvNVFunPtr #-}
 
+-- | Usage: @'glTexCoord4hNV' s t r q@
+--
+-- The parameter @s@ is a @Half16NV@.
+--
+-- The parameter @t@ is a @Half16NV@.
+--
+-- The parameter @r@ is a @Half16NV@.
+--
+-- The parameter @q@ is a @Half16NV@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Extension.NV.HalfFloat.glTexCoord4hvNV'.
+
+
 glTexCoord4hNV :: MonadIO m => GLhalfNV -> GLhalfNV -> GLhalfNV -> GLhalfNV -> m ()
 glTexCoord4hNV = ffihalfNVhalfNVhalfNVhalfNVIOV glTexCoord4hNVFunPtr
 
@@ -265,6 +501,13 @@
 
 {-# NOINLINE glTexCoord4hNVFunPtr #-}
 
+-- | Usage: @'glTexCoord4hvNV' v@
+--
+-- The parameter @v@ is a @Half16NV@.
+--
+-- The length of @v@ should be @4@.
+
+
 glTexCoord4hvNV :: MonadIO m => Ptr GLhalfNV -> m ()
 glTexCoord4hvNV = ffiPtrhalfNVIOV glTexCoord4hvNVFunPtr
 
@@ -273,6 +516,15 @@
 
 {-# NOINLINE glTexCoord4hvNVFunPtr #-}
 
+-- | Usage: @'glVertex2hNV' x y@
+--
+-- The parameter @x@ is a @Half16NV@.
+--
+-- The parameter @y@ is a @Half16NV@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Extension.NV.HalfFloat.glVertex2hvNV'.
+
+
 glVertex2hNV :: MonadIO m => GLhalfNV -> GLhalfNV -> m ()
 glVertex2hNV = ffihalfNVhalfNVIOV glVertex2hNVFunPtr
 
@@ -281,6 +533,13 @@
 
 {-# NOINLINE glVertex2hNVFunPtr #-}
 
+-- | Usage: @'glVertex2hvNV' v@
+--
+-- The parameter @v@ is a @Half16NV@.
+--
+-- The length of @v@ should be @2@.
+
+
 glVertex2hvNV :: MonadIO m => Ptr GLhalfNV -> m ()
 glVertex2hvNV = ffiPtrhalfNVIOV glVertex2hvNVFunPtr
 
@@ -289,6 +548,17 @@
 
 {-# NOINLINE glVertex2hvNVFunPtr #-}
 
+-- | Usage: @'glVertex3hNV' x y z@
+--
+-- The parameter @x@ is a @Half16NV@.
+--
+-- The parameter @y@ is a @Half16NV@.
+--
+-- The parameter @z@ is a @Half16NV@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Extension.NV.HalfFloat.glVertex3hvNV'.
+
+
 glVertex3hNV :: MonadIO m => GLhalfNV -> GLhalfNV -> GLhalfNV -> m ()
 glVertex3hNV = ffihalfNVhalfNVhalfNVIOV glVertex3hNVFunPtr
 
@@ -297,6 +567,13 @@
 
 {-# NOINLINE glVertex3hNVFunPtr #-}
 
+-- | Usage: @'glVertex3hvNV' v@
+--
+-- The parameter @v@ is a @Half16NV@.
+--
+-- The length of @v@ should be @3@.
+
+
 glVertex3hvNV :: MonadIO m => Ptr GLhalfNV -> m ()
 glVertex3hvNV = ffiPtrhalfNVIOV glVertex3hvNVFunPtr
 
@@ -305,6 +582,19 @@
 
 {-# NOINLINE glVertex3hvNVFunPtr #-}
 
+-- | Usage: @'glVertex4hNV' x y z w@
+--
+-- The parameter @x@ is a @Half16NV@.
+--
+-- The parameter @y@ is a @Half16NV@.
+--
+-- The parameter @z@ is a @Half16NV@.
+--
+-- The parameter @w@ is a @Half16NV@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Extension.NV.HalfFloat.glVertex4hvNV'.
+
+
 glVertex4hNV :: MonadIO m => GLhalfNV -> GLhalfNV -> GLhalfNV -> GLhalfNV -> m ()
 glVertex4hNV = ffihalfNVhalfNVhalfNVhalfNVIOV glVertex4hNVFunPtr
 
@@ -313,6 +603,13 @@
 
 {-# NOINLINE glVertex4hNVFunPtr #-}
 
+-- | Usage: @'glVertex4hvNV' v@
+--
+-- The parameter @v@ is a @Half16NV@.
+--
+-- The length of @v@ should be @4@.
+
+
 glVertex4hvNV :: MonadIO m => Ptr GLhalfNV -> m ()
 glVertex4hvNV = ffiPtrhalfNVIOV glVertex4hvNVFunPtr
 
@@ -321,6 +618,13 @@
 
 {-# NOINLINE glVertex4hvNVFunPtr #-}
 
+-- | Usage: @'glVertexAttrib1hNV' index x@
+--
+-- The parameter @x@ is a @Half16NV@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Extension.NV.HalfFloat.glVertexAttrib1hvNV'.
+
+
 glVertexAttrib1hNV :: MonadIO m => GLuint -> GLhalfNV -> m ()
 glVertexAttrib1hNV = ffiuinthalfNVIOV glVertexAttrib1hNVFunPtr
 
@@ -329,6 +633,13 @@
 
 {-# NOINLINE glVertexAttrib1hNVFunPtr #-}
 
+-- | Usage: @'glVertexAttrib1hvNV' index v@
+--
+-- The parameter @v@ is a @Half16NV@.
+--
+-- The length of @v@ should be @1@.
+
+
 glVertexAttrib1hvNV :: MonadIO m => GLuint -> Ptr GLhalfNV -> m ()
 glVertexAttrib1hvNV = ffiuintPtrhalfNVIOV glVertexAttrib1hvNVFunPtr
 
@@ -337,6 +648,15 @@
 
 {-# NOINLINE glVertexAttrib1hvNVFunPtr #-}
 
+-- | Usage: @'glVertexAttrib2hNV' index x y@
+--
+-- The parameter @x@ is a @Half16NV@.
+--
+-- The parameter @y@ is a @Half16NV@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Extension.NV.HalfFloat.glVertexAttrib2hvNV'.
+
+
 glVertexAttrib2hNV :: MonadIO m => GLuint -> GLhalfNV -> GLhalfNV -> m ()
 glVertexAttrib2hNV = ffiuinthalfNVhalfNVIOV glVertexAttrib2hNVFunPtr
 
@@ -345,6 +665,13 @@
 
 {-# NOINLINE glVertexAttrib2hNVFunPtr #-}
 
+-- | Usage: @'glVertexAttrib2hvNV' index v@
+--
+-- The parameter @v@ is a @Half16NV@.
+--
+-- The length of @v@ should be @2@.
+
+
 glVertexAttrib2hvNV :: MonadIO m => GLuint -> Ptr GLhalfNV -> m ()
 glVertexAttrib2hvNV = ffiuintPtrhalfNVIOV glVertexAttrib2hvNVFunPtr
 
@@ -353,6 +680,17 @@
 
 {-# NOINLINE glVertexAttrib2hvNVFunPtr #-}
 
+-- | Usage: @'glVertexAttrib3hNV' index x y z@
+--
+-- The parameter @x@ is a @Half16NV@.
+--
+-- The parameter @y@ is a @Half16NV@.
+--
+-- The parameter @z@ is a @Half16NV@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Extension.NV.HalfFloat.glVertexAttrib3hvNV'.
+
+
 glVertexAttrib3hNV :: MonadIO m => GLuint -> GLhalfNV -> GLhalfNV -> GLhalfNV -> m ()
 glVertexAttrib3hNV = ffiuinthalfNVhalfNVhalfNVIOV glVertexAttrib3hNVFunPtr
 
@@ -361,6 +699,13 @@
 
 {-# NOINLINE glVertexAttrib3hNVFunPtr #-}
 
+-- | Usage: @'glVertexAttrib3hvNV' index v@
+--
+-- The parameter @v@ is a @Half16NV@.
+--
+-- The length of @v@ should be @3@.
+
+
 glVertexAttrib3hvNV :: MonadIO m => GLuint -> Ptr GLhalfNV -> m ()
 glVertexAttrib3hvNV = ffiuintPtrhalfNVIOV glVertexAttrib3hvNVFunPtr
 
@@ -369,6 +714,19 @@
 
 {-# NOINLINE glVertexAttrib3hvNVFunPtr #-}
 
+-- | Usage: @'glVertexAttrib4hNV' index x y z w@
+--
+-- The parameter @x@ is a @Half16NV@.
+--
+-- The parameter @y@ is a @Half16NV@.
+--
+-- The parameter @z@ is a @Half16NV@.
+--
+-- The parameter @w@ is a @Half16NV@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Extension.NV.HalfFloat.glVertexAttrib4hvNV'.
+
+
 glVertexAttrib4hNV :: MonadIO m => GLuint -> GLhalfNV -> GLhalfNV -> GLhalfNV -> GLhalfNV -> m ()
 glVertexAttrib4hNV = ffiuinthalfNVhalfNVhalfNVhalfNVIOV glVertexAttrib4hNVFunPtr
 
@@ -377,6 +735,13 @@
 
 {-# NOINLINE glVertexAttrib4hNVFunPtr #-}
 
+-- | Usage: @'glVertexAttrib4hvNV' index v@
+--
+-- The parameter @v@ is a @Half16NV@.
+--
+-- The length of @v@ should be @4@.
+
+
 glVertexAttrib4hvNV :: MonadIO m => GLuint -> Ptr GLhalfNV -> m ()
 glVertexAttrib4hvNV = ffiuintPtrhalfNVIOV glVertexAttrib4hvNVFunPtr
 
@@ -385,6 +750,13 @@
 
 {-# NOINLINE glVertexAttrib4hvNVFunPtr #-}
 
+-- | Usage: @'glVertexAttribs1hvNV' index n v@
+--
+-- The parameter @v@ is a @Half16NV@.
+--
+-- The length of @v@ should be @n@.
+
+
 glVertexAttribs1hvNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLhalfNV -> m ()
 glVertexAttribs1hvNV = ffiuintsizeiPtrhalfNVIOV glVertexAttribs1hvNVFunPtr
 
@@ -393,6 +765,13 @@
 
 {-# NOINLINE glVertexAttribs1hvNVFunPtr #-}
 
+-- | Usage: @'glVertexAttribs2hvNV' index n v@
+--
+-- The parameter @v@ is a @Half16NV@.
+--
+-- The length of @v@ should be @n@.
+
+
 glVertexAttribs2hvNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLhalfNV -> m ()
 glVertexAttribs2hvNV = ffiuintsizeiPtrhalfNVIOV glVertexAttribs2hvNVFunPtr
 
@@ -401,6 +780,13 @@
 
 {-# NOINLINE glVertexAttribs2hvNVFunPtr #-}
 
+-- | Usage: @'glVertexAttribs3hvNV' index n v@
+--
+-- The parameter @v@ is a @Half16NV@.
+--
+-- The length of @v@ should be @n@.
+
+
 glVertexAttribs3hvNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLhalfNV -> m ()
 glVertexAttribs3hvNV = ffiuintsizeiPtrhalfNVIOV glVertexAttribs3hvNVFunPtr
 
@@ -409,6 +795,13 @@
 
 {-# NOINLINE glVertexAttribs3hvNVFunPtr #-}
 
+-- | Usage: @'glVertexAttribs4hvNV' index n v@
+--
+-- The parameter @v@ is a @Half16NV@.
+--
+-- The length of @v@ should be @n@.
+
+
 glVertexAttribs4hvNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLhalfNV -> m ()
 glVertexAttribs4hvNV = ffiuintsizeiPtrhalfNVIOV glVertexAttribs4hvNVFunPtr
 
@@ -417,6 +810,13 @@
 
 {-# NOINLINE glVertexAttribs4hvNVFunPtr #-}
 
+-- | Usage: @'glVertexWeighthNV' weight@
+--
+-- The parameter @weight@ is a @Half16NV@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Extension.NV.HalfFloat.glVertexWeighthvNV'.
+
+
 glVertexWeighthNV :: MonadIO m => GLhalfNV -> m ()
 glVertexWeighthNV = ffihalfNVIOV glVertexWeighthNVFunPtr
 
@@ -424,6 +824,13 @@
 glVertexWeighthNVFunPtr = unsafePerformIO (getProcAddress "glVertexWeighthNV")
 
 {-# NOINLINE glVertexWeighthNVFunPtr #-}
+
+-- | Usage: @'glVertexWeighthvNV' weight@
+--
+-- The parameter @weight@ is a @Half16NV@.
+--
+-- The length of @weight@ should be @1@.
+
 
 glVertexWeighthvNV :: MonadIO m => Ptr GLhalfNV -> m ()
 glVertexWeighthvNV = ffiPtrhalfNVIOV glVertexWeighthvNVFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/InstancedArrays.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/InstancedArrays.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/InstancedArrays.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/InstancedArrays.hs
@@ -17,8 +17,16 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the GL_NV_instanced_arrays extension is available.
+
 gl_NV_instanced_arrays :: Bool
 gl_NV_instanced_arrays = member "GL_NV_instanced_arrays" extensions
+{-# NOINLINE gl_NV_instanced_arrays #-}
+
+-- | Usage: @'glVertexAttribDivisorNV' index divisor@
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glVertexAttribDivisor'.
+
 
 glVertexAttribDivisorNV :: MonadIO m => GLuint -> GLuint -> m ()
 glVertexAttribDivisorNV = ffiuintuintIOV glVertexAttribDivisorNVFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/InternalformatSampleQuery.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/InternalformatSampleQuery.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/InternalformatSampleQuery.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/InternalformatSampleQuery.hs
@@ -24,8 +24,16 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/internalformat_sample_query.txt GL_NV_internalformat_sample_query> extension is available.
+
 gl_NV_internalformat_sample_query :: Bool
 gl_NV_internalformat_sample_query = member "GL_NV_internalformat_sample_query" extensions
+{-# NOINLINE gl_NV_internalformat_sample_query #-}
+
+-- | Usage: @'glGetInternalformatSampleivNV' target internalformat samples pname bufSize params@
+--
+-- The length of @params@ should be @bufSize@.
+
 
 glGetInternalformatSampleivNV :: MonadIO m => GLenum -> GLenum -> GLsizei -> GLenum -> GLsizei -> Ptr GLint -> m ()
 glGetInternalformatSampleivNV = ffienumenumsizeienumsizeiPtrintIOV glGetInternalformatSampleivNVFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/LightMaxExponent.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/LightMaxExponent.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/LightMaxExponent.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/LightMaxExponent.hs
@@ -12,8 +12,11 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/light_max_exponent.txt GL_NV_light_max_exponent> extension is available.
+
 gl_NV_light_max_exponent :: Bool
 gl_NV_light_max_exponent = member "GL_NV_light_max_exponent" extensions
+{-# NOINLINE gl_NV_light_max_exponent #-}
 
 pattern GL_MAX_SHININESS_NV = 0x8504
 
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/MultisampleCoverage.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/MultisampleCoverage.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/MultisampleCoverage.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/MultisampleCoverage.hs
@@ -13,5 +13,8 @@
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/multisample_coverage.txt GL_NV_multisample_coverage> extension is available.
+
 gl_NV_multisample_coverage :: Bool
 gl_NV_multisample_coverage = member "GL_NV_multisample_coverage" extensions
+{-# NOINLINE gl_NV_multisample_coverage #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/MultisampleFilterHint.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/MultisampleFilterHint.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/MultisampleFilterHint.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/MultisampleFilterHint.hs
@@ -11,7 +11,10 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/multisample_filter_hint.txt GL_NV_multisample_filter_hint> extension is available.
+
 gl_NV_multisample_filter_hint :: Bool
 gl_NV_multisample_filter_hint = member "GL_NV_multisample_filter_hint" extensions
+{-# NOINLINE gl_NV_multisample_filter_hint #-}
 
 pattern GL_MULTISAMPLE_FILTER_HINT_NV = 0x8534
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/NonSquareMatrices.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/NonSquareMatrices.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/NonSquareMatrices.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/NonSquareMatrices.hs
@@ -27,9 +27,21 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the GL_NV_non_square_matrices extension is available.
+
 gl_NV_non_square_matrices :: Bool
 gl_NV_non_square_matrices = member "GL_NV_non_square_matrices" extensions
+{-# NOINLINE gl_NV_non_square_matrices #-}
 
+-- | Usage: @'glUniformMatrix2x3fvNV' location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FALSE', 'Graphics.GL.Raw.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count*6@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glUniformMatrix2x3fv'.
+
+
 glUniformMatrix2x3fvNV :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
 glUniformMatrix2x3fvNV = ffiintsizeibooleanPtrfloatIOV glUniformMatrix2x3fvNVFunPtr
 
@@ -38,6 +50,15 @@
 
 {-# NOINLINE glUniformMatrix2x3fvNVFunPtr #-}
 
+-- | Usage: @'glUniformMatrix2x4fvNV' location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FALSE', 'Graphics.GL.Raw.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count*8@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glUniformMatrix2x4fv'.
+
+
 glUniformMatrix2x4fvNV :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
 glUniformMatrix2x4fvNV = ffiintsizeibooleanPtrfloatIOV glUniformMatrix2x4fvNVFunPtr
 
@@ -46,6 +67,15 @@
 
 {-# NOINLINE glUniformMatrix2x4fvNVFunPtr #-}
 
+-- | Usage: @'glUniformMatrix3x2fvNV' location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FALSE', 'Graphics.GL.Raw.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count*6@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glUniformMatrix3x2fv'.
+
+
 glUniformMatrix3x2fvNV :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
 glUniformMatrix3x2fvNV = ffiintsizeibooleanPtrfloatIOV glUniformMatrix3x2fvNVFunPtr
 
@@ -54,6 +84,15 @@
 
 {-# NOINLINE glUniformMatrix3x2fvNVFunPtr #-}
 
+-- | Usage: @'glUniformMatrix3x4fvNV' location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FALSE', 'Graphics.GL.Raw.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count*12@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glUniformMatrix3x4fv'.
+
+
 glUniformMatrix3x4fvNV :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
 glUniformMatrix3x4fvNV = ffiintsizeibooleanPtrfloatIOV glUniformMatrix3x4fvNVFunPtr
 
@@ -62,6 +101,15 @@
 
 {-# NOINLINE glUniformMatrix3x4fvNVFunPtr #-}
 
+-- | Usage: @'glUniformMatrix4x2fvNV' location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FALSE', 'Graphics.GL.Raw.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count*8@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glUniformMatrix4x2fv'.
+
+
 glUniformMatrix4x2fvNV :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
 glUniformMatrix4x2fvNV = ffiintsizeibooleanPtrfloatIOV glUniformMatrix4x2fvNVFunPtr
 
@@ -69,6 +117,15 @@
 glUniformMatrix4x2fvNVFunPtr = unsafePerformIO (getProcAddress "glUniformMatrix4x2fvNV")
 
 {-# NOINLINE glUniformMatrix4x2fvNVFunPtr #-}
+
+-- | Usage: @'glUniformMatrix4x3fvNV' location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FALSE', 'Graphics.GL.Raw.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count*12@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glUniformMatrix4x3fv'.
+
 
 glUniformMatrix4x3fvNV :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
 glUniformMatrix4x3fvNV = ffiintsizeibooleanPtrfloatIOV glUniformMatrix4x3fvNVFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/OcclusionQuery.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/OcclusionQuery.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/OcclusionQuery.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/OcclusionQuery.hs
@@ -26,9 +26,15 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/occlusion_query.txt GL_NV_occlusion_query> extension is available.
+
 gl_NV_occlusion_query :: Bool
 gl_NV_occlusion_query = member "GL_NV_occlusion_query" extensions
+{-# NOINLINE gl_NV_occlusion_query #-}
 
+-- | Usage: @'glBeginOcclusionQueryNV' id@
+
+
 glBeginOcclusionQueryNV :: MonadIO m => GLuint -> m ()
 glBeginOcclusionQueryNV = ffiuintIOV glBeginOcclusionQueryNVFunPtr
 
@@ -37,6 +43,11 @@
 
 {-# NOINLINE glBeginOcclusionQueryNVFunPtr #-}
 
+-- | Usage: @'glDeleteOcclusionQueriesNV' n ids@
+--
+-- The length of @ids@ should be @n@.
+
+
 glDeleteOcclusionQueriesNV :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
 glDeleteOcclusionQueriesNV = ffisizeiPtruintIOV glDeleteOcclusionQueriesNVFunPtr
 
@@ -45,6 +56,9 @@
 
 {-# NOINLINE glDeleteOcclusionQueriesNVFunPtr #-}
 
+-- | Usage: @'glEndOcclusionQueryNV'@
+
+
 glEndOcclusionQueryNV :: MonadIO m => m ()
 glEndOcclusionQueryNV = ffiIOV glEndOcclusionQueryNVFunPtr
 
@@ -53,6 +67,11 @@
 
 {-# NOINLINE glEndOcclusionQueryNVFunPtr #-}
 
+-- | Usage: @'glGenOcclusionQueriesNV' n ids@
+--
+-- The length of @ids@ should be @n@.
+
+
 glGenOcclusionQueriesNV :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
 glGenOcclusionQueriesNV = ffisizeiPtruintIOV glGenOcclusionQueriesNVFunPtr
 
@@ -61,6 +80,13 @@
 
 {-# NOINLINE glGenOcclusionQueriesNVFunPtr #-}
 
+-- | Usage: @'glGetOcclusionQueryivNV' id pname params@
+--
+-- The parameter @pname@ is a @OcclusionQueryParameterNameNV@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
 glGetOcclusionQueryivNV :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
 glGetOcclusionQueryivNV = ffiuintenumPtrintIOV glGetOcclusionQueryivNVFunPtr
 
@@ -69,6 +95,13 @@
 
 {-# NOINLINE glGetOcclusionQueryivNVFunPtr #-}
 
+-- | Usage: @'glGetOcclusionQueryuivNV' id pname params@
+--
+-- The parameter @pname@ is a @OcclusionQueryParameterNameNV@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
 glGetOcclusionQueryuivNV :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()
 glGetOcclusionQueryuivNV = ffiuintenumPtruintIOV glGetOcclusionQueryuivNVFunPtr
 
@@ -76,6 +109,9 @@
 glGetOcclusionQueryuivNVFunPtr = unsafePerformIO (getProcAddress "glGetOcclusionQueryuivNV")
 
 {-# NOINLINE glGetOcclusionQueryuivNVFunPtr #-}
+
+-- | Usage: @'glIsOcclusionQueryNV' id@
+
 
 glIsOcclusionQueryNV :: MonadIO m => GLuint -> m GLboolean
 glIsOcclusionQueryNV = ffiuintIOboolean glIsOcclusionQueryNVFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/PackedDepthStencil.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/PackedDepthStencil.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/PackedDepthStencil.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/PackedDepthStencil.hs
@@ -12,8 +12,11 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/packed_depth_stencil.txt GL_NV_packed_depth_stencil> extension is available.
+
 gl_NV_packed_depth_stencil :: Bool
 gl_NV_packed_depth_stencil = member "GL_NV_packed_depth_stencil" extensions
+{-# NOINLINE gl_NV_packed_depth_stencil #-}
 
 pattern GL_DEPTH_STENCIL_NV = 0x84F9
 
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/ParameterBufferObject.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/ParameterBufferObject.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/ParameterBufferObject.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/ParameterBufferObject.hs
@@ -23,9 +23,19 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/parameter_buffer_object.txt GL_NV_parameter_buffer_object> extension is available.
+
 gl_NV_parameter_buffer_object :: Bool
 gl_NV_parameter_buffer_object = member "GL_NV_parameter_buffer_object" extensions
+{-# NOINLINE gl_NV_parameter_buffer_object #-}
 
+-- | Usage: @'glProgramBufferParametersIivNV' target bindingIndex wordIndex count params@
+--
+-- The parameter @target@ is a @ProgramTarget@.
+--
+-- The length of @params@ should be @count@.
+
+
 glProgramBufferParametersIivNV :: MonadIO m => GLenum -> GLuint -> GLuint -> GLsizei -> Ptr GLint -> m ()
 glProgramBufferParametersIivNV = ffienumuintuintsizeiPtrintIOV glProgramBufferParametersIivNVFunPtr
 
@@ -34,6 +44,13 @@
 
 {-# NOINLINE glProgramBufferParametersIivNVFunPtr #-}
 
+-- | Usage: @'glProgramBufferParametersIuivNV' target bindingIndex wordIndex count params@
+--
+-- The parameter @target@ is a @ProgramTarget@.
+--
+-- The length of @params@ should be @count@.
+
+
 glProgramBufferParametersIuivNV :: MonadIO m => GLenum -> GLuint -> GLuint -> GLsizei -> Ptr GLuint -> m ()
 glProgramBufferParametersIuivNV = ffienumuintuintsizeiPtruintIOV glProgramBufferParametersIuivNVFunPtr
 
@@ -41,6 +58,13 @@
 glProgramBufferParametersIuivNVFunPtr = unsafePerformIO (getProcAddress "glProgramBufferParametersIuivNV")
 
 {-# NOINLINE glProgramBufferParametersIuivNVFunPtr #-}
+
+-- | Usage: @'glProgramBufferParametersfvNV' target bindingIndex wordIndex count params@
+--
+-- The parameter @target@ is a @ProgramTarget@.
+--
+-- The length of @params@ should be @count@.
+
 
 glProgramBufferParametersfvNV :: MonadIO m => GLenum -> GLuint -> GLuint -> GLsizei -> Ptr GLfloat -> m ()
 glProgramBufferParametersfvNV = ffienumuintuintsizeiPtrfloatIOV glProgramBufferParametersfvNVFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/ParameterBufferObject2.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/ParameterBufferObject2.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/ParameterBufferObject2.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/ParameterBufferObject2.hs
@@ -8,5 +8,8 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/parameter_buffer_object2.txt GL_NV_parameter_buffer_object2> extension is available.
+
 gl_NV_parameter_buffer_object2 :: Bool
 gl_NV_parameter_buffer_object2 = member "GL_NV_parameter_buffer_object2" extensions
+{-# NOINLINE gl_NV_parameter_buffer_object2 #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/PathRendering.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/PathRendering.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/PathRendering.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/PathRendering.hs
@@ -244,9 +244,19 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/path_rendering.txt GL_NV_path_rendering> extension is available.
+
 gl_NV_path_rendering :: Bool
 gl_NV_path_rendering = member "GL_NV_path_rendering" extensions
+{-# NOINLINE gl_NV_path_rendering #-}
 
+-- | Usage: @'glCopyPathNV' resultPath srcPath@
+--
+-- The parameter @resultPath@ is a @Path@.
+--
+-- The parameter @srcPath@ is a @Path@.
+
+
 glCopyPathNV :: MonadIO m => GLuint -> GLuint -> m ()
 glCopyPathNV = ffiuintuintIOV glCopyPathNVFunPtr
 
@@ -255,6 +265,23 @@
 
 {-# NOINLINE glCopyPathNVFunPtr #-}
 
+-- | Usage: @'glCoverFillPathInstancedNV' numPaths pathNameType paths pathBase coverMode transformType transformValues@
+--
+-- The parameter @pathNameType@ is a @PathElementType@.
+--
+-- The parameter @paths@ is a @PathElement@.
+--
+-- The parameter @pathBase@ is a @Path@.
+--
+-- The parameter @coverMode@ is a @PathCoverMode@.
+--
+-- The parameter @transformType@ is a @PathTransformType@.
+--
+-- The length of @paths@ should be @COMPSIZE(numPaths,pathNameType,paths)@.
+--
+-- The length of @transformValues@ should be @COMPSIZE(numPaths,transformType)@.
+
+
 glCoverFillPathInstancedNV :: MonadIO m => GLsizei -> GLenum -> Ptr () -> GLuint -> GLenum -> GLenum -> Ptr GLfloat -> m ()
 glCoverFillPathInstancedNV = ffisizeienumPtrVuintenumenumPtrfloatIOV glCoverFillPathInstancedNVFunPtr
 
@@ -263,6 +290,13 @@
 
 {-# NOINLINE glCoverFillPathInstancedNVFunPtr #-}
 
+-- | Usage: @'glCoverFillPathNV' path coverMode@
+--
+-- The parameter @path@ is a @Path@.
+--
+-- The parameter @coverMode@ is a @PathCoverMode@.
+
+
 glCoverFillPathNV :: MonadIO m => GLuint -> GLenum -> m ()
 glCoverFillPathNV = ffiuintenumIOV glCoverFillPathNVFunPtr
 
@@ -271,6 +305,23 @@
 
 {-# NOINLINE glCoverFillPathNVFunPtr #-}
 
+-- | Usage: @'glCoverStrokePathInstancedNV' numPaths pathNameType paths pathBase coverMode transformType transformValues@
+--
+-- The parameter @pathNameType@ is a @PathElementType@.
+--
+-- The parameter @paths@ is a @PathElement@.
+--
+-- The parameter @pathBase@ is a @Path@.
+--
+-- The parameter @coverMode@ is a @PathCoverMode@.
+--
+-- The parameter @transformType@ is a @PathTransformType@.
+--
+-- The length of @paths@ should be @COMPSIZE(numPaths,pathNameType,paths)@.
+--
+-- The length of @transformValues@ should be @COMPSIZE(numPaths,transformType)@.
+
+
 glCoverStrokePathInstancedNV :: MonadIO m => GLsizei -> GLenum -> Ptr () -> GLuint -> GLenum -> GLenum -> Ptr GLfloat -> m ()
 glCoverStrokePathInstancedNV = ffisizeienumPtrVuintenumenumPtrfloatIOV glCoverStrokePathInstancedNVFunPtr
 
@@ -279,6 +330,13 @@
 
 {-# NOINLINE glCoverStrokePathInstancedNVFunPtr #-}
 
+-- | Usage: @'glCoverStrokePathNV' path coverMode@
+--
+-- The parameter @path@ is a @Path@.
+--
+-- The parameter @coverMode@ is a @PathCoverMode@.
+
+
 glCoverStrokePathNV :: MonadIO m => GLuint -> GLenum -> m ()
 glCoverStrokePathNV = ffiuintenumIOV glCoverStrokePathNVFunPtr
 
@@ -287,6 +345,11 @@
 
 {-# NOINLINE glCoverStrokePathNVFunPtr #-}
 
+-- | Usage: @'glDeletePathsNV' path range@
+--
+-- The parameter @path@ is a @Path@.
+
+
 glDeletePathsNV :: MonadIO m => GLuint -> GLsizei -> m ()
 glDeletePathsNV = ffiuintsizeiIOV glDeletePathsNVFunPtr
 
@@ -295,6 +358,9 @@
 
 {-# NOINLINE glDeletePathsNVFunPtr #-}
 
+-- | Usage: @'glGenPathsNV' range@
+
+
 glGenPathsNV :: MonadIO m => GLsizei -> m GLuint
 glGenPathsNV = ffisizeiIOuint glGenPathsNVFunPtr
 
@@ -303,6 +369,15 @@
 
 {-# NOINLINE glGenPathsNVFunPtr #-}
 
+-- | Usage: @'glGetPathColorGenfvNV' color pname value@
+--
+-- The parameter @color@ is a @PathColor@.
+--
+-- The parameter @pname@ is a @PathGenMode@.
+--
+-- The length of @value@ should be @COMPSIZE(pname)@.
+
+
 glGetPathColorGenfvNV :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
 glGetPathColorGenfvNV = ffienumenumPtrfloatIOV glGetPathColorGenfvNVFunPtr
 
@@ -311,6 +386,15 @@
 
 {-# NOINLINE glGetPathColorGenfvNVFunPtr #-}
 
+-- | Usage: @'glGetPathColorGenivNV' color pname value@
+--
+-- The parameter @color@ is a @PathColor@.
+--
+-- The parameter @pname@ is a @PathGenMode@.
+--
+-- The length of @value@ should be @COMPSIZE(pname)@.
+
+
 glGetPathColorGenivNV :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
 glGetPathColorGenivNV = ffienumenumPtrintIOV glGetPathColorGenivNVFunPtr
 
@@ -319,6 +403,15 @@
 
 {-# NOINLINE glGetPathColorGenivNVFunPtr #-}
 
+-- | Usage: @'glGetPathCommandsNV' path commands@
+--
+-- The parameter @path@ is a @Path@.
+--
+-- The parameter @commands@ is a @PathCommand@.
+--
+-- The length of @commands@ should be @COMPSIZE(path)@.
+
+
 glGetPathCommandsNV :: MonadIO m => GLuint -> Ptr GLubyte -> m ()
 glGetPathCommandsNV = ffiuintPtrubyteIOV glGetPathCommandsNVFunPtr
 
@@ -327,6 +420,13 @@
 
 {-# NOINLINE glGetPathCommandsNVFunPtr #-}
 
+-- | Usage: @'glGetPathCoordsNV' path coords@
+--
+-- The parameter @path@ is a @Path@.
+--
+-- The length of @coords@ should be @COMPSIZE(path)@.
+
+
 glGetPathCoordsNV :: MonadIO m => GLuint -> Ptr GLfloat -> m ()
 glGetPathCoordsNV = ffiuintPtrfloatIOV glGetPathCoordsNVFunPtr
 
@@ -335,6 +435,13 @@
 
 {-# NOINLINE glGetPathCoordsNVFunPtr #-}
 
+-- | Usage: @'glGetPathDashArrayNV' path dashArray@
+--
+-- The parameter @path@ is a @Path@.
+--
+-- The length of @dashArray@ should be @COMPSIZE(path)@.
+
+
 glGetPathDashArrayNV :: MonadIO m => GLuint -> Ptr GLfloat -> m ()
 glGetPathDashArrayNV = ffiuintPtrfloatIOV glGetPathDashArrayNVFunPtr
 
@@ -343,6 +450,11 @@
 
 {-# NOINLINE glGetPathDashArrayNVFunPtr #-}
 
+-- | Usage: @'glGetPathLengthNV' path startSegment numSegments@
+--
+-- The parameter @path@ is a @Path@.
+
+
 glGetPathLengthNV :: MonadIO m => GLuint -> GLsizei -> GLsizei -> m GLfloat
 glGetPathLengthNV = ffiuintsizeisizeiIOfloat glGetPathLengthNVFunPtr
 
@@ -351,6 +463,15 @@
 
 {-# NOINLINE glGetPathLengthNVFunPtr #-}
 
+-- | Usage: @'glGetPathMetricRangeNV' metricQueryMask firstPathName numPaths stride metrics@
+--
+-- The parameter @metricQueryMask@ is a @PathMetricMask@.
+--
+-- The parameter @firstPathName@ is a @Path@.
+--
+-- The length of @metrics@ should be @COMPSIZE(metricQueryMask,numPaths,stride)@.
+
+
 glGetPathMetricRangeNV :: MonadIO m => GLbitfield -> GLuint -> GLsizei -> GLsizei -> Ptr GLfloat -> m ()
 glGetPathMetricRangeNV = ffibitfielduintsizeisizeiPtrfloatIOV glGetPathMetricRangeNVFunPtr
 
@@ -359,6 +480,21 @@
 
 {-# NOINLINE glGetPathMetricRangeNVFunPtr #-}
 
+-- | Usage: @'glGetPathMetricsNV' metricQueryMask numPaths pathNameType paths pathBase stride metrics@
+--
+-- The parameter @metricQueryMask@ is a @PathMetricMask@.
+--
+-- The parameter @pathNameType@ is a @PathElementType@.
+--
+-- The parameter @paths@ is a @PathElement@.
+--
+-- The parameter @pathBase@ is a @Path@.
+--
+-- The length of @paths@ should be @COMPSIZE(numPaths,pathNameType,paths)@.
+--
+-- The length of @metrics@ should be @COMPSIZE(metricQueryMask,numPaths,stride)@.
+
+
 glGetPathMetricsNV :: MonadIO m => GLbitfield -> GLsizei -> GLenum -> Ptr () -> GLuint -> GLsizei -> Ptr GLfloat -> m ()
 glGetPathMetricsNV = ffibitfieldsizeienumPtrVuintsizeiPtrfloatIOV glGetPathMetricsNVFunPtr
 
@@ -367,6 +503,15 @@
 
 {-# NOINLINE glGetPathMetricsNVFunPtr #-}
 
+-- | Usage: @'glGetPathParameterfvNV' path pname value@
+--
+-- The parameter @path@ is a @Path@.
+--
+-- The parameter @pname@ is a @PathParameter@.
+--
+-- The length of @value@ should be @4@.
+
+
 glGetPathParameterfvNV :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()
 glGetPathParameterfvNV = ffiuintenumPtrfloatIOV glGetPathParameterfvNVFunPtr
 
@@ -375,6 +520,15 @@
 
 {-# NOINLINE glGetPathParameterfvNVFunPtr #-}
 
+-- | Usage: @'glGetPathParameterivNV' path pname value@
+--
+-- The parameter @path@ is a @Path@.
+--
+-- The parameter @pname@ is a @PathParameter@.
+--
+-- The length of @value@ should be @4@.
+
+
 glGetPathParameterivNV :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
 glGetPathParameterivNV = ffiuintenumPtrintIOV glGetPathParameterivNVFunPtr
 
@@ -383,6 +537,23 @@
 
 {-# NOINLINE glGetPathParameterivNVFunPtr #-}
 
+-- | Usage: @'glGetPathSpacingNV' pathListMode numPaths pathNameType paths pathBase advanceScale kerningScale transformType returnedSpacing@
+--
+-- The parameter @pathListMode@ is a @PathListMode@.
+--
+-- The parameter @pathNameType@ is a @PathElementType@.
+--
+-- The parameter @paths@ is a @PathElement@.
+--
+-- The parameter @pathBase@ is a @Path@.
+--
+-- The parameter @transformType@ is a @PathTransformType@.
+--
+-- The length of @paths@ should be @COMPSIZE(numPaths,pathNameType,paths)@.
+--
+-- The length of @returnedSpacing@ should be @COMPSIZE(pathListMode,numPaths)@.
+
+
 glGetPathSpacingNV :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr () -> GLuint -> GLfloat -> GLfloat -> GLenum -> Ptr GLfloat -> m ()
 glGetPathSpacingNV = ffienumsizeienumPtrVuintfloatfloatenumPtrfloatIOV glGetPathSpacingNVFunPtr
 
@@ -391,6 +562,15 @@
 
 {-# NOINLINE glGetPathSpacingNVFunPtr #-}
 
+-- | Usage: @'glGetPathTexGenfvNV' texCoordSet pname value@
+--
+-- The parameter @texCoordSet@ is a @TextureUnit@.
+--
+-- The parameter @pname@ is a @PathGenMode@.
+--
+-- The length of @value@ should be @COMPSIZE(pname)@.
+
+
 glGetPathTexGenfvNV :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
 glGetPathTexGenfvNV = ffienumenumPtrfloatIOV glGetPathTexGenfvNVFunPtr
 
@@ -399,6 +579,15 @@
 
 {-# NOINLINE glGetPathTexGenfvNVFunPtr #-}
 
+-- | Usage: @'glGetPathTexGenivNV' texCoordSet pname value@
+--
+-- The parameter @texCoordSet@ is a @TextureUnit@.
+--
+-- The parameter @pname@ is a @PathGenMode@.
+--
+-- The length of @value@ should be @COMPSIZE(pname)@.
+
+
 glGetPathTexGenivNV :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
 glGetPathTexGenivNV = ffienumenumPtrintIOV glGetPathTexGenivNVFunPtr
 
@@ -407,6 +596,9 @@
 
 {-# NOINLINE glGetPathTexGenivNVFunPtr #-}
 
+-- | Usage: @'glGetProgramResourcefvNV' program programInterface index propCount props bufSize length params@
+
+
 glGetProgramResourcefvNV :: MonadIO m => GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLfloat -> m ()
 glGetProgramResourcefvNV = ffiuintenumuintsizeiPtrenumsizeiPtrsizeiPtrfloatIOV glGetProgramResourcefvNVFunPtr
 
@@ -415,6 +607,15 @@
 
 {-# NOINLINE glGetProgramResourcefvNVFunPtr #-}
 
+-- | Usage: @'glInterpolatePathsNV' resultPath pathA pathB weight@
+--
+-- The parameter @resultPath@ is a @Path@.
+--
+-- The parameter @pathA@ is a @Path@.
+--
+-- The parameter @pathB@ is a @Path@.
+
+
 glInterpolatePathsNV :: MonadIO m => GLuint -> GLuint -> GLuint -> GLfloat -> m ()
 glInterpolatePathsNV = ffiuintuintuintfloatIOV glInterpolatePathsNVFunPtr
 
@@ -423,6 +624,11 @@
 
 {-# NOINLINE glInterpolatePathsNVFunPtr #-}
 
+-- | Usage: @'glIsPathNV' path@
+--
+-- The parameter @path@ is a @Path@.
+
+
 glIsPathNV :: MonadIO m => GLuint -> m GLboolean
 glIsPathNV = ffiuintIOboolean glIsPathNVFunPtr
 
@@ -431,6 +637,13 @@
 
 {-# NOINLINE glIsPathNVFunPtr #-}
 
+-- | Usage: @'glIsPointInFillPathNV' path mask x y@
+--
+-- The parameter @path@ is a @Path@.
+--
+-- The parameter @mask@ is a @MaskedStencilValue@.
+
+
 glIsPointInFillPathNV :: MonadIO m => GLuint -> GLuint -> GLfloat -> GLfloat -> m GLboolean
 glIsPointInFillPathNV = ffiuintuintfloatfloatIOboolean glIsPointInFillPathNVFunPtr
 
@@ -439,6 +652,11 @@
 
 {-# NOINLINE glIsPointInFillPathNVFunPtr #-}
 
+-- | Usage: @'glIsPointInStrokePathNV' path x y@
+--
+-- The parameter @path@ is a @Path@.
+
+
 glIsPointInStrokePathNV :: MonadIO m => GLuint -> GLfloat -> GLfloat -> m GLboolean
 glIsPointInStrokePathNV = ffiuintfloatfloatIOboolean glIsPointInStrokePathNVFunPtr
 
@@ -447,6 +665,9 @@
 
 {-# NOINLINE glIsPointInStrokePathNVFunPtr #-}
 
+-- | Usage: @'glMatrixLoad3x2fNV' matrixMode m@
+
+
 glMatrixLoad3x2fNV :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
 glMatrixLoad3x2fNV = ffienumPtrfloatIOV glMatrixLoad3x2fNVFunPtr
 
@@ -455,6 +676,9 @@
 
 {-# NOINLINE glMatrixLoad3x2fNVFunPtr #-}
 
+-- | Usage: @'glMatrixLoad3x3fNV' matrixMode m@
+
+
 glMatrixLoad3x3fNV :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
 glMatrixLoad3x3fNV = ffienumPtrfloatIOV glMatrixLoad3x3fNVFunPtr
 
@@ -463,6 +687,9 @@
 
 {-# NOINLINE glMatrixLoad3x3fNVFunPtr #-}
 
+-- | Usage: @'glMatrixLoadTranspose3x3fNV' matrixMode m@
+
+
 glMatrixLoadTranspose3x3fNV :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
 glMatrixLoadTranspose3x3fNV = ffienumPtrfloatIOV glMatrixLoadTranspose3x3fNVFunPtr
 
@@ -471,6 +698,9 @@
 
 {-# NOINLINE glMatrixLoadTranspose3x3fNVFunPtr #-}
 
+-- | Usage: @'glMatrixMult3x2fNV' matrixMode m@
+
+
 glMatrixMult3x2fNV :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
 glMatrixMult3x2fNV = ffienumPtrfloatIOV glMatrixMult3x2fNVFunPtr
 
@@ -479,6 +709,9 @@
 
 {-# NOINLINE glMatrixMult3x2fNVFunPtr #-}
 
+-- | Usage: @'glMatrixMult3x3fNV' matrixMode m@
+
+
 glMatrixMult3x3fNV :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
 glMatrixMult3x3fNV = ffienumPtrfloatIOV glMatrixMult3x3fNVFunPtr
 
@@ -487,6 +720,9 @@
 
 {-# NOINLINE glMatrixMult3x3fNVFunPtr #-}
 
+-- | Usage: @'glMatrixMultTranspose3x3fNV' matrixMode m@
+
+
 glMatrixMultTranspose3x3fNV :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
 glMatrixMultTranspose3x3fNV = ffienumPtrfloatIOV glMatrixMultTranspose3x3fNVFunPtr
 
@@ -495,6 +731,17 @@
 
 {-# NOINLINE glMatrixMultTranspose3x3fNVFunPtr #-}
 
+-- | Usage: @'glPathColorGenNV' color genMode colorFormat coeffs@
+--
+-- The parameter @color@ is a @PathColor@.
+--
+-- The parameter @genMode@ is a @PathGenMode@.
+--
+-- The parameter @colorFormat@ is a @PathColorFormat@.
+--
+-- The length of @coeffs@ should be @COMPSIZE(genMode,colorFormat)@.
+
+
 glPathColorGenNV :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLfloat -> m ()
 glPathColorGenNV = ffienumenumenumPtrfloatIOV glPathColorGenNVFunPtr
 
@@ -503,6 +750,19 @@
 
 {-# NOINLINE glPathColorGenNVFunPtr #-}
 
+-- | Usage: @'glPathCommandsNV' path numCommands commands numCoords coordType coords@
+--
+-- The parameter @path@ is a @Path@.
+--
+-- The parameter @commands@ is a @PathCommand@.
+--
+-- The parameter @coordType@ is a @PathCoordType@.
+--
+-- The length of @commands@ should be @numCommands@.
+--
+-- The length of @coords@ should be @COMPSIZE(numCoords,coordType)@.
+
+
 glPathCommandsNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLubyte -> GLsizei -> GLenum -> Ptr () -> m ()
 glPathCommandsNV = ffiuintsizeiPtrubytesizeienumPtrVIOV glPathCommandsNVFunPtr
 
@@ -511,6 +771,15 @@
 
 {-# NOINLINE glPathCommandsNVFunPtr #-}
 
+-- | Usage: @'glPathCoordsNV' path numCoords coordType coords@
+--
+-- The parameter @path@ is a @Path@.
+--
+-- The parameter @coordType@ is a @PathCoordType@.
+--
+-- The length of @coords@ should be @COMPSIZE(numCoords,coordType)@.
+
+
 glPathCoordsNV :: MonadIO m => GLuint -> GLsizei -> GLenum -> Ptr () -> m ()
 glPathCoordsNV = ffiuintsizeienumPtrVIOV glPathCoordsNVFunPtr
 
@@ -519,6 +788,11 @@
 
 {-# NOINLINE glPathCoordsNVFunPtr #-}
 
+-- | Usage: @'glPathCoverDepthFuncNV' func@
+--
+-- The parameter @func@ is a @DepthFunction@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_ALWAYS', 'Graphics.GL.Raw.Internal.Shared.GL_EQUAL', 'Graphics.GL.Raw.Internal.Shared.GL_GEQUAL', 'Graphics.GL.Raw.Internal.Shared.GL_GREATER', 'Graphics.GL.Raw.Internal.Shared.GL_LEQUAL', 'Graphics.GL.Raw.Internal.Shared.GL_LESS', 'Graphics.GL.Raw.Internal.Shared.GL_NEVER', 'Graphics.GL.Raw.Internal.Shared.GL_NOTEQUAL'.
+
+
 glPathCoverDepthFuncNV :: MonadIO m => GLenum -> m ()
 glPathCoverDepthFuncNV = ffienumIOV glPathCoverDepthFuncNVFunPtr
 
@@ -527,6 +801,13 @@
 
 {-# NOINLINE glPathCoverDepthFuncNVFunPtr #-}
 
+-- | Usage: @'glPathDashArrayNV' path dashCount dashArray@
+--
+-- The parameter @path@ is a @Path@.
+--
+-- The length of @dashArray@ should be @dashCount@.
+
+
 glPathDashArrayNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLfloat -> m ()
 glPathDashArrayNV = ffiuintsizeiPtrfloatIOV glPathDashArrayNVFunPtr
 
@@ -535,6 +816,11 @@
 
 {-# NOINLINE glPathDashArrayNVFunPtr #-}
 
+-- | Usage: @'glPathFogGenNV' genMode@
+--
+-- The parameter @genMode@ is a @PathGenMode@.
+
+
 glPathFogGenNV :: MonadIO m => GLenum -> m ()
 glPathFogGenNV = ffienumIOV glPathFogGenNVFunPtr
 
@@ -543,6 +829,9 @@
 
 {-# NOINLINE glPathFogGenNVFunPtr #-}
 
+-- | Usage: @'glPathGlyphIndexArrayNV' firstPathName fontTarget fontName fontStyle firstGlyphIndex numGlyphs pathParameterTemplate emScale@
+
+
 glPathGlyphIndexArrayNV :: MonadIO m => GLuint -> GLenum -> Ptr () -> GLbitfield -> GLuint -> GLsizei -> GLuint -> GLfloat -> m GLenum
 glPathGlyphIndexArrayNV = ffiuintenumPtrVbitfielduintsizeiuintfloatIOenum glPathGlyphIndexArrayNVFunPtr
 
@@ -551,6 +840,9 @@
 
 {-# NOINLINE glPathGlyphIndexArrayNVFunPtr #-}
 
+-- | Usage: @'glPathGlyphIndexRangeNV' fontTarget fontName fontStyle pathParameterTemplate emScale baseAndCount@
+
+
 glPathGlyphIndexRangeNV :: MonadIO m => GLenum -> Ptr () -> GLbitfield -> GLuint -> GLfloat -> GLuint -> m GLenum
 glPathGlyphIndexRangeNV = ffienumPtrVbitfielduintfloatuintIOenum glPathGlyphIndexRangeNVFunPtr
 
@@ -559,6 +851,21 @@
 
 {-# NOINLINE glPathGlyphIndexRangeNVFunPtr #-}
 
+-- | Usage: @'glPathGlyphRangeNV' firstPathName fontTarget fontName fontStyle firstGlyph numGlyphs handleMissingGlyphs pathParameterTemplate emScale@
+--
+-- The parameter @firstPathName@ is a @Path@.
+--
+-- The parameter @fontTarget@ is a @PathFontTarget@.
+--
+-- The parameter @fontStyle@ is a @PathFontStyle@.
+--
+-- The parameter @handleMissingGlyphs@ is a @PathHandleMissingGlyphs@.
+--
+-- The parameter @pathParameterTemplate@ is a @Path@.
+--
+-- The length of @fontName@ should be @COMPSIZE(fontTarget,fontName)@.
+
+
 glPathGlyphRangeNV :: MonadIO m => GLuint -> GLenum -> Ptr () -> GLbitfield -> GLuint -> GLsizei -> GLenum -> GLuint -> GLfloat -> m ()
 glPathGlyphRangeNV = ffiuintenumPtrVbitfielduintsizeienumuintfloatIOV glPathGlyphRangeNVFunPtr
 
@@ -567,6 +874,25 @@
 
 {-# NOINLINE glPathGlyphRangeNVFunPtr #-}
 
+-- | Usage: @'glPathGlyphsNV' firstPathName fontTarget fontName fontStyle numGlyphs type charcodes handleMissingGlyphs pathParameterTemplate emScale@
+--
+-- The parameter @firstPathName@ is a @Path@.
+--
+-- The parameter @fontTarget@ is a @PathFontTarget@.
+--
+-- The parameter @fontStyle@ is a @PathFontStyle@.
+--
+-- The parameter @type@ is a @PathElementType@.
+--
+-- The parameter @handleMissingGlyphs@ is a @PathHandleMissingGlyphs@.
+--
+-- The parameter @pathParameterTemplate@ is a @Path@.
+--
+-- The length of @fontName@ should be @COMPSIZE(fontTarget,fontName)@.
+--
+-- The length of @charcodes@ should be @COMPSIZE(numGlyphs,type,charcodes)@.
+
+
 glPathGlyphsNV :: MonadIO m => GLuint -> GLenum -> Ptr () -> GLbitfield -> GLsizei -> GLenum -> Ptr () -> GLenum -> GLuint -> GLfloat -> m ()
 glPathGlyphsNV = ffiuintenumPtrVbitfieldsizeienumPtrVenumuintfloatIOV glPathGlyphsNVFunPtr
 
@@ -575,6 +901,9 @@
 
 {-# NOINLINE glPathGlyphsNVFunPtr #-}
 
+-- | Usage: @'glPathMemoryGlyphIndexArrayNV' firstPathName fontTarget fontSize fontData faceIndex firstGlyphIndex numGlyphs pathParameterTemplate emScale@
+
+
 glPathMemoryGlyphIndexArrayNV :: MonadIO m => GLuint -> GLenum -> GLsizeiptr -> Ptr () -> GLsizei -> GLuint -> GLsizei -> GLuint -> GLfloat -> m GLenum
 glPathMemoryGlyphIndexArrayNV = ffiuintenumsizeiptrPtrVsizeiuintsizeiuintfloatIOenum glPathMemoryGlyphIndexArrayNVFunPtr
 
@@ -583,6 +912,13 @@
 
 {-# NOINLINE glPathMemoryGlyphIndexArrayNVFunPtr #-}
 
+-- | Usage: @'glPathParameterfNV' path pname value@
+--
+-- The parameter @path@ is a @Path@.
+--
+-- The parameter @pname@ is a @PathParameter@.
+
+
 glPathParameterfNV :: MonadIO m => GLuint -> GLenum -> GLfloat -> m ()
 glPathParameterfNV = ffiuintenumfloatIOV glPathParameterfNVFunPtr
 
@@ -591,6 +927,15 @@
 
 {-# NOINLINE glPathParameterfNVFunPtr #-}
 
+-- | Usage: @'glPathParameterfvNV' path pname value@
+--
+-- The parameter @path@ is a @Path@.
+--
+-- The parameter @pname@ is a @PathParameter@.
+--
+-- The length of @value@ should be @COMPSIZE(pname)@.
+
+
 glPathParameterfvNV :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()
 glPathParameterfvNV = ffiuintenumPtrfloatIOV glPathParameterfvNVFunPtr
 
@@ -599,6 +944,13 @@
 
 {-# NOINLINE glPathParameterfvNVFunPtr #-}
 
+-- | Usage: @'glPathParameteriNV' path pname value@
+--
+-- The parameter @path@ is a @Path@.
+--
+-- The parameter @pname@ is a @PathParameter@.
+
+
 glPathParameteriNV :: MonadIO m => GLuint -> GLenum -> GLint -> m ()
 glPathParameteriNV = ffiuintenumintIOV glPathParameteriNVFunPtr
 
@@ -607,6 +959,15 @@
 
 {-# NOINLINE glPathParameteriNVFunPtr #-}
 
+-- | Usage: @'glPathParameterivNV' path pname value@
+--
+-- The parameter @path@ is a @Path@.
+--
+-- The parameter @pname@ is a @PathParameter@.
+--
+-- The length of @value@ should be @COMPSIZE(pname)@.
+
+
 glPathParameterivNV :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
 glPathParameterivNV = ffiuintenumPtrintIOV glPathParameterivNVFunPtr
 
@@ -615,6 +976,9 @@
 
 {-# NOINLINE glPathParameterivNVFunPtr #-}
 
+-- | Usage: @'glPathStencilDepthOffsetNV' factor units@
+
+
 glPathStencilDepthOffsetNV :: MonadIO m => GLfloat -> GLfloat -> m ()
 glPathStencilDepthOffsetNV = ffifloatfloatIOV glPathStencilDepthOffsetNVFunPtr
 
@@ -623,6 +987,15 @@
 
 {-# NOINLINE glPathStencilDepthOffsetNVFunPtr #-}
 
+-- | Usage: @'glPathStencilFuncNV' func ref mask@
+--
+-- The parameter @func@ is a @StencilFunction@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_ALWAYS', 'Graphics.GL.Raw.Internal.Shared.GL_EQUAL', 'Graphics.GL.Raw.Internal.Shared.GL_GEQUAL', 'Graphics.GL.Raw.Internal.Shared.GL_GREATER', 'Graphics.GL.Raw.Internal.Shared.GL_LEQUAL', 'Graphics.GL.Raw.Internal.Shared.GL_LESS', 'Graphics.GL.Raw.Internal.Shared.GL_NEVER', 'Graphics.GL.Raw.Internal.Shared.GL_NOTEQUAL'.
+--
+-- The parameter @ref@ is a @ClampedStencilValue@.
+--
+-- The parameter @mask@ is a @MaskedStencilValue@.
+
+
 glPathStencilFuncNV :: MonadIO m => GLenum -> GLint -> GLuint -> m ()
 glPathStencilFuncNV = ffienumintuintIOV glPathStencilFuncNVFunPtr
 
@@ -631,6 +1004,15 @@
 
 {-# NOINLINE glPathStencilFuncNVFunPtr #-}
 
+-- | Usage: @'glPathStringNV' path format length pathString@
+--
+-- The parameter @path@ is a @Path@.
+--
+-- The parameter @format@ is a @PathStringFormat@.
+--
+-- The length of @pathString@ should be @length@.
+
+
 glPathStringNV :: MonadIO m => GLuint -> GLenum -> GLsizei -> Ptr () -> m ()
 glPathStringNV = ffiuintenumsizeiPtrVIOV glPathStringNVFunPtr
 
@@ -639,6 +1021,19 @@
 
 {-# NOINLINE glPathStringNVFunPtr #-}
 
+-- | Usage: @'glPathSubCommandsNV' path commandStart commandsToDelete numCommands commands numCoords coordType coords@
+--
+-- The parameter @path@ is a @Path@.
+--
+-- The parameter @commands@ is a @PathCommand@.
+--
+-- The parameter @coordType@ is a @PathCoordType@.
+--
+-- The length of @commands@ should be @numCommands@.
+--
+-- The length of @coords@ should be @COMPSIZE(numCoords,coordType)@.
+
+
 glPathSubCommandsNV :: MonadIO m => GLuint -> GLsizei -> GLsizei -> GLsizei -> Ptr GLubyte -> GLsizei -> GLenum -> Ptr () -> m ()
 glPathSubCommandsNV = ffiuintsizeisizeisizeiPtrubytesizeienumPtrVIOV glPathSubCommandsNVFunPtr
 
@@ -647,6 +1042,15 @@
 
 {-# NOINLINE glPathSubCommandsNVFunPtr #-}
 
+-- | Usage: @'glPathSubCoordsNV' path coordStart numCoords coordType coords@
+--
+-- The parameter @path@ is a @Path@.
+--
+-- The parameter @coordType@ is a @PathCoordType@.
+--
+-- The length of @coords@ should be @COMPSIZE(numCoords,coordType)@.
+
+
 glPathSubCoordsNV :: MonadIO m => GLuint -> GLsizei -> GLsizei -> GLenum -> Ptr () -> m ()
 glPathSubCoordsNV = ffiuintsizeisizeienumPtrVIOV glPathSubCoordsNVFunPtr
 
@@ -655,6 +1059,15 @@
 
 {-# NOINLINE glPathSubCoordsNVFunPtr #-}
 
+-- | Usage: @'glPathTexGenNV' texCoordSet genMode components coeffs@
+--
+-- The parameter @texCoordSet@ is a @PathColor@.
+--
+-- The parameter @genMode@ is a @PathGenMode@.
+--
+-- The length of @coeffs@ should be @COMPSIZE(genMode,components)@.
+
+
 glPathTexGenNV :: MonadIO m => GLenum -> GLenum -> GLint -> Ptr GLfloat -> m ()
 glPathTexGenNV = ffienumenumintPtrfloatIOV glPathTexGenNVFunPtr
 
@@ -663,6 +1076,19 @@
 
 {-# NOINLINE glPathTexGenNVFunPtr #-}
 
+-- | Usage: @'glPointAlongPathNV' path startSegment numSegments distance x y tangentX tangentY@
+--
+-- The parameter @path@ is a @Path@.
+--
+-- The length of @x@ should be @1@.
+--
+-- The length of @y@ should be @1@.
+--
+-- The length of @tangentX@ should be @1@.
+--
+-- The length of @tangentY@ should be @1@.
+
+
 glPointAlongPathNV :: MonadIO m => GLuint -> GLsizei -> GLsizei -> GLfloat -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> m GLboolean
 glPointAlongPathNV = ffiuintsizeisizeifloatPtrfloatPtrfloatPtrfloatPtrfloatIOboolean glPointAlongPathNVFunPtr
 
@@ -671,6 +1097,9 @@
 
 {-# NOINLINE glPointAlongPathNVFunPtr #-}
 
+-- | Usage: @'glProgramPathFragmentInputGenNV' program location genMode components coeffs@
+
+
 glProgramPathFragmentInputGenNV :: MonadIO m => GLuint -> GLint -> GLenum -> GLint -> Ptr GLfloat -> m ()
 glProgramPathFragmentInputGenNV = ffiuintintenumintPtrfloatIOV glProgramPathFragmentInputGenNVFunPtr
 
@@ -679,6 +1108,25 @@
 
 {-# NOINLINE glProgramPathFragmentInputGenNVFunPtr #-}
 
+-- | Usage: @'glStencilFillPathInstancedNV' numPaths pathNameType paths pathBase fillMode mask transformType transformValues@
+--
+-- The parameter @pathNameType@ is a @PathElementType@.
+--
+-- The parameter @paths@ is a @PathElement@.
+--
+-- The parameter @pathBase@ is a @Path@.
+--
+-- The parameter @fillMode@ is a @PathFillMode@.
+--
+-- The parameter @mask@ is a @MaskedStencilValue@.
+--
+-- The parameter @transformType@ is a @PathTransformType@.
+--
+-- The length of @paths@ should be @COMPSIZE(numPaths,pathNameType,paths)@.
+--
+-- The length of @transformValues@ should be @COMPSIZE(numPaths,transformType)@.
+
+
 glStencilFillPathInstancedNV :: MonadIO m => GLsizei -> GLenum -> Ptr () -> GLuint -> GLenum -> GLuint -> GLenum -> Ptr GLfloat -> m ()
 glStencilFillPathInstancedNV = ffisizeienumPtrVuintenumuintenumPtrfloatIOV glStencilFillPathInstancedNVFunPtr
 
@@ -687,6 +1135,15 @@
 
 {-# NOINLINE glStencilFillPathInstancedNVFunPtr #-}
 
+-- | Usage: @'glStencilFillPathNV' path fillMode mask@
+--
+-- The parameter @path@ is a @Path@.
+--
+-- The parameter @fillMode@ is a @PathFillMode@.
+--
+-- The parameter @mask@ is a @MaskedStencilValue@.
+
+
 glStencilFillPathNV :: MonadIO m => GLuint -> GLenum -> GLuint -> m ()
 glStencilFillPathNV = ffiuintenumuintIOV glStencilFillPathNVFunPtr
 
@@ -695,6 +1152,25 @@
 
 {-# NOINLINE glStencilFillPathNVFunPtr #-}
 
+-- | Usage: @'glStencilStrokePathInstancedNV' numPaths pathNameType paths pathBase reference mask transformType transformValues@
+--
+-- The parameter @pathNameType@ is a @PathElementType@.
+--
+-- The parameter @paths@ is a @PathElement@.
+--
+-- The parameter @pathBase@ is a @Path@.
+--
+-- The parameter @reference@ is a @StencilValue@.
+--
+-- The parameter @mask@ is a @MaskedStencilValue@.
+--
+-- The parameter @transformType@ is a @PathTransformType@.
+--
+-- The length of @paths@ should be @COMPSIZE(numPaths,pathNameType,paths)@.
+--
+-- The length of @transformValues@ should be @COMPSIZE(numPaths,transformType)@.
+
+
 glStencilStrokePathInstancedNV :: MonadIO m => GLsizei -> GLenum -> Ptr () -> GLuint -> GLint -> GLuint -> GLenum -> Ptr GLfloat -> m ()
 glStencilStrokePathInstancedNV = ffisizeienumPtrVuintintuintenumPtrfloatIOV glStencilStrokePathInstancedNVFunPtr
 
@@ -703,6 +1179,15 @@
 
 {-# NOINLINE glStencilStrokePathInstancedNVFunPtr #-}
 
+-- | Usage: @'glStencilStrokePathNV' path reference mask@
+--
+-- The parameter @path@ is a @Path@.
+--
+-- The parameter @reference@ is a @StencilValue@.
+--
+-- The parameter @mask@ is a @MaskedStencilValue@.
+
+
 glStencilStrokePathNV :: MonadIO m => GLuint -> GLint -> GLuint -> m ()
 glStencilStrokePathNV = ffiuintintuintIOV glStencilStrokePathNVFunPtr
 
@@ -711,6 +1196,9 @@
 
 {-# NOINLINE glStencilStrokePathNVFunPtr #-}
 
+-- | Usage: @'glStencilThenCoverFillPathInstancedNV' numPaths pathNameType paths pathBase fillMode mask coverMode transformType transformValues@
+
+
 glStencilThenCoverFillPathInstancedNV :: MonadIO m => GLsizei -> GLenum -> Ptr () -> GLuint -> GLenum -> GLuint -> GLenum -> GLenum -> Ptr GLfloat -> m ()
 glStencilThenCoverFillPathInstancedNV = ffisizeienumPtrVuintenumuintenumenumPtrfloatIOV glStencilThenCoverFillPathInstancedNVFunPtr
 
@@ -719,6 +1207,9 @@
 
 {-# NOINLINE glStencilThenCoverFillPathInstancedNVFunPtr #-}
 
+-- | Usage: @'glStencilThenCoverFillPathNV' path fillMode mask coverMode@
+
+
 glStencilThenCoverFillPathNV :: MonadIO m => GLuint -> GLenum -> GLuint -> GLenum -> m ()
 glStencilThenCoverFillPathNV = ffiuintenumuintenumIOV glStencilThenCoverFillPathNVFunPtr
 
@@ -727,6 +1218,9 @@
 
 {-# NOINLINE glStencilThenCoverFillPathNVFunPtr #-}
 
+-- | Usage: @'glStencilThenCoverStrokePathInstancedNV' numPaths pathNameType paths pathBase reference mask coverMode transformType transformValues@
+
+
 glStencilThenCoverStrokePathInstancedNV :: MonadIO m => GLsizei -> GLenum -> Ptr () -> GLuint -> GLint -> GLuint -> GLenum -> GLenum -> Ptr GLfloat -> m ()
 glStencilThenCoverStrokePathInstancedNV = ffisizeienumPtrVuintintuintenumenumPtrfloatIOV glStencilThenCoverStrokePathInstancedNVFunPtr
 
@@ -735,6 +1229,9 @@
 
 {-# NOINLINE glStencilThenCoverStrokePathInstancedNVFunPtr #-}
 
+-- | Usage: @'glStencilThenCoverStrokePathNV' path reference mask coverMode@
+
+
 glStencilThenCoverStrokePathNV :: MonadIO m => GLuint -> GLint -> GLuint -> GLenum -> m ()
 glStencilThenCoverStrokePathNV = ffiuintintuintenumIOV glStencilThenCoverStrokePathNVFunPtr
 
@@ -743,6 +1240,17 @@
 
 {-# NOINLINE glStencilThenCoverStrokePathNVFunPtr #-}
 
+-- | Usage: @'glTransformPathNV' resultPath srcPath transformType transformValues@
+--
+-- The parameter @resultPath@ is a @Path@.
+--
+-- The parameter @srcPath@ is a @Path@.
+--
+-- The parameter @transformType@ is a @PathTransformType@.
+--
+-- The length of @transformValues@ should be @COMPSIZE(transformType)@.
+
+
 glTransformPathNV :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr GLfloat -> m ()
 glTransformPathNV = ffiuintuintenumPtrfloatIOV glTransformPathNVFunPtr
 
@@ -750,6 +1258,17 @@
 glTransformPathNVFunPtr = unsafePerformIO (getProcAddress "glTransformPathNV")
 
 {-# NOINLINE glTransformPathNVFunPtr #-}
+
+-- | Usage: @'glWeightPathsNV' resultPath numPaths paths weights@
+--
+-- The parameter @resultPath@ is a @Path@.
+--
+-- The parameter @paths@ is a @Path@.
+--
+-- The length of @paths@ should be @numPaths@.
+--
+-- The length of @weights@ should be @numPaths@.
+
 
 glWeightPathsNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLuint -> Ptr GLfloat -> m ()
 glWeightPathsNV = ffiuintsizeiPtruintPtrfloatIOV glWeightPathsNVFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/PathRenderingSharedEdge.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/PathRenderingSharedEdge.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/PathRenderingSharedEdge.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/PathRenderingSharedEdge.hs
@@ -11,7 +11,10 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/path_rendering_shared_edge.txt GL_NV_path_rendering_shared_edge> extension is available.
+
 gl_NV_path_rendering_shared_edge :: Bool
 gl_NV_path_rendering_shared_edge = member "GL_NV_path_rendering_shared_edge" extensions
+{-# NOINLINE gl_NV_path_rendering_shared_edge #-}
 
 pattern GL_SHARED_EDGE_NV = 0xC0
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/PixelDataRange.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/PixelDataRange.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/PixelDataRange.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/PixelDataRange.hs
@@ -23,9 +23,17 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/pixel_data_range.txt GL_NV_pixel_data_range> extension is available.
+
 gl_NV_pixel_data_range :: Bool
 gl_NV_pixel_data_range = member "GL_NV_pixel_data_range" extensions
+{-# NOINLINE gl_NV_pixel_data_range #-}
 
+-- | Usage: @'glFlushPixelDataRangeNV' target@
+--
+-- The parameter @target@ is a @PixelDataRangeTargetNV@.
+
+
 glFlushPixelDataRangeNV :: MonadIO m => GLenum -> m ()
 glFlushPixelDataRangeNV = ffienumIOV glFlushPixelDataRangeNVFunPtr
 
@@ -33,6 +41,13 @@
 glFlushPixelDataRangeNVFunPtr = unsafePerformIO (getProcAddress "glFlushPixelDataRangeNV")
 
 {-# NOINLINE glFlushPixelDataRangeNVFunPtr #-}
+
+-- | Usage: @'glPixelDataRangeNV' target length pointer@
+--
+-- The parameter @target@ is a @PixelDataRangeTargetNV@.
+--
+-- The length of @pointer@ should be @length@.
+
 
 glPixelDataRangeNV :: MonadIO m => GLenum -> GLsizei -> Ptr () -> m ()
 glPixelDataRangeNV = ffienumsizeiPtrVIOV glPixelDataRangeNVFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/PointSprite.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/PointSprite.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/PointSprite.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/PointSprite.hs
@@ -20,9 +20,19 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/point_sprite.txt GL_NV_point_sprite> extension is available.
+
 gl_NV_point_sprite :: Bool
 gl_NV_point_sprite = member "GL_NV_point_sprite" extensions
+{-# NOINLINE gl_NV_point_sprite #-}
 
+-- | Usage: @'glPointParameteriNV' pname param@
+--
+-- The parameter @pname@ is a @PointParameterNameARB@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glPointParameteri'.
+
+
 glPointParameteriNV :: MonadIO m => GLenum -> GLint -> m ()
 glPointParameteriNV = ffienumintIOV glPointParameteriNVFunPtr
 
@@ -30,6 +40,15 @@
 glPointParameteriNVFunPtr = unsafePerformIO (getProcAddress "glPointParameteriNV")
 
 {-# NOINLINE glPointParameteriNVFunPtr #-}
+
+-- | Usage: @'glPointParameterivNV' pname params@
+--
+-- The parameter @pname@ is a @PointParameterNameARB@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glPointParameteriv'.
+
 
 glPointParameterivNV :: MonadIO m => GLenum -> Ptr GLint -> m ()
 glPointParameterivNV = ffienumPtrintIOV glPointParameterivNVFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/PresentVideo.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/PresentVideo.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/PresentVideo.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/PresentVideo.hs
@@ -27,9 +27,17 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/present_video.txt GL_NV_present_video> extension is available.
+
 gl_NV_present_video :: Bool
 gl_NV_present_video = member "GL_NV_present_video" extensions
+{-# NOINLINE gl_NV_present_video #-}
 
+-- | Usage: @'glGetVideoi64vNV' video_slot pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
 glGetVideoi64vNV :: MonadIO m => GLuint -> GLenum -> Ptr GLint64EXT -> m ()
 glGetVideoi64vNV = ffiuintenumPtrint64EXTIOV glGetVideoi64vNVFunPtr
 
@@ -38,6 +46,11 @@
 
 {-# NOINLINE glGetVideoi64vNVFunPtr #-}
 
+-- | Usage: @'glGetVideoivNV' video_slot pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
 glGetVideoivNV :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
 glGetVideoivNV = ffiuintenumPtrintIOV glGetVideoivNVFunPtr
 
@@ -46,6 +59,11 @@
 
 {-# NOINLINE glGetVideoivNVFunPtr #-}
 
+-- | Usage: @'glGetVideoui64vNV' video_slot pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
 glGetVideoui64vNV :: MonadIO m => GLuint -> GLenum -> Ptr GLuint64EXT -> m ()
 glGetVideoui64vNV = ffiuintenumPtruint64EXTIOV glGetVideoui64vNVFunPtr
 
@@ -54,6 +72,11 @@
 
 {-# NOINLINE glGetVideoui64vNVFunPtr #-}
 
+-- | Usage: @'glGetVideouivNV' video_slot pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
 glGetVideouivNV :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()
 glGetVideouivNV = ffiuintenumPtruintIOV glGetVideouivNVFunPtr
 
@@ -62,6 +85,9 @@
 
 {-# NOINLINE glGetVideouivNVFunPtr #-}
 
+-- | Usage: @'glPresentFrameDualFillNV' video_slot minPresentTime beginPresentTimeId presentDurationId type target0 fill0 target1 fill1 target2 fill2 target3 fill3@
+
+
 glPresentFrameDualFillNV :: MonadIO m => GLuint -> GLuint64EXT -> GLuint -> GLuint -> GLenum -> GLenum -> GLuint -> GLenum -> GLuint -> GLenum -> GLuint -> GLenum -> GLuint -> m ()
 glPresentFrameDualFillNV = ffiuintuint64EXTuintuintenumenumuintenumuintenumuintenumuintIOV glPresentFrameDualFillNVFunPtr
 
@@ -69,6 +95,9 @@
 glPresentFrameDualFillNVFunPtr = unsafePerformIO (getProcAddress "glPresentFrameDualFillNV")
 
 {-# NOINLINE glPresentFrameDualFillNVFunPtr #-}
+
+-- | Usage: @'glPresentFrameKeyedNV' video_slot minPresentTime beginPresentTimeId presentDurationId type target0 fill0 key0 target1 fill1 key1@
+
 
 glPresentFrameKeyedNV :: MonadIO m => GLuint -> GLuint64EXT -> GLuint -> GLuint -> GLenum -> GLenum -> GLuint -> GLuint -> GLenum -> GLuint -> GLuint -> m ()
 glPresentFrameKeyedNV = ffiuintuint64EXTuintuintenumenumuintuintenumuintuintIOV glPresentFrameKeyedNVFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/PrimitiveRestart.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/PrimitiveRestart.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/PrimitiveRestart.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/PrimitiveRestart.hs
@@ -19,9 +19,15 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/primitive_restart.txt GL_NV_primitive_restart> extension is available.
+
 gl_NV_primitive_restart :: Bool
 gl_NV_primitive_restart = member "GL_NV_primitive_restart" extensions
+{-# NOINLINE gl_NV_primitive_restart #-}
 
+-- | Usage: @'glPrimitiveRestartIndexNV' index@
+
+
 glPrimitiveRestartIndexNV :: MonadIO m => GLuint -> m ()
 glPrimitiveRestartIndexNV = ffiuintIOV glPrimitiveRestartIndexNVFunPtr
 
@@ -29,6 +35,9 @@
 glPrimitiveRestartIndexNVFunPtr = unsafePerformIO (getProcAddress "glPrimitiveRestartIndexNV")
 
 {-# NOINLINE glPrimitiveRestartIndexNVFunPtr #-}
+
+-- | Usage: @'glPrimitiveRestartNV'@
+
 
 glPrimitiveRestartNV :: MonadIO m => m ()
 glPrimitiveRestartNV = ffiIOV glPrimitiveRestartNVFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/ReadBuffer.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/ReadBuffer.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/ReadBuffer.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/ReadBuffer.hs
@@ -17,8 +17,14 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the GL_NV_read_buffer extension is available.
+
 gl_NV_read_buffer :: Bool
 gl_NV_read_buffer = member "GL_NV_read_buffer" extensions
+{-# NOINLINE gl_NV_read_buffer #-}
+
+-- | Usage: @'glReadBufferNV' mode@
+
 
 glReadBufferNV :: MonadIO m => GLenum -> m ()
 glReadBufferNV = ffienumIOV glReadBufferNVFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/ReadBufferFront.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/ReadBufferFront.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/ReadBufferFront.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/ReadBufferFront.hs
@@ -8,5 +8,8 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the GL_NV_read_buffer_front extension is available.
+
 gl_NV_read_buffer_front :: Bool
 gl_NV_read_buffer_front = member "GL_NV_read_buffer_front" extensions
+{-# NOINLINE gl_NV_read_buffer_front #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/ReadDepth.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/ReadDepth.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/ReadDepth.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/ReadDepth.hs
@@ -8,5 +8,8 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the GL_NV_read_depth extension is available.
+
 gl_NV_read_depth :: Bool
 gl_NV_read_depth = member "GL_NV_read_depth" extensions
+{-# NOINLINE gl_NV_read_depth #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/ReadDepthStencil.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/ReadDepthStencil.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/ReadDepthStencil.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/ReadDepthStencil.hs
@@ -8,5 +8,8 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the GL_NV_read_depth_stencil extension is available.
+
 gl_NV_read_depth_stencil :: Bool
 gl_NV_read_depth_stencil = member "GL_NV_read_depth_stencil" extensions
+{-# NOINLINE gl_NV_read_depth_stencil #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/ReadStencil.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/ReadStencil.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/ReadStencil.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/ReadStencil.hs
@@ -8,5 +8,8 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the GL_NV_read_stencil extension is available.
+
 gl_NV_read_stencil :: Bool
 gl_NV_read_stencil = member "GL_NV_read_stencil" extensions
+{-# NOINLINE gl_NV_read_stencil #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/RegisterCombiners.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/RegisterCombiners.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/RegisterCombiners.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/RegisterCombiners.hs
@@ -85,9 +85,27 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/register_combiners.txt GL_NV_register_combiners> extension is available.
+
 gl_NV_register_combiners :: Bool
 gl_NV_register_combiners = member "GL_NV_register_combiners" extensions
+{-# NOINLINE gl_NV_register_combiners #-}
 
+-- | Usage: @'glCombinerInputNV' stage portion variable input mapping componentUsage@
+--
+-- The parameter @stage@ is a @CombinerStageNV@.
+--
+-- The parameter @portion@ is a @CombinerPortionNV@.
+--
+-- The parameter @variable@ is a @CombinerVariableNV@.
+--
+-- The parameter @input@ is a @CombinerRegisterNV@.
+--
+-- The parameter @mapping@ is a @CombinerMappingNV@.
+--
+-- The parameter @componentUsage@ is a @CombinerComponentUsageNV@.
+
+
 glCombinerInputNV :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> m ()
 glCombinerInputNV = ffienumenumenumenumenumenumIOV glCombinerInputNVFunPtr
 
@@ -96,6 +114,29 @@
 
 {-# NOINLINE glCombinerInputNVFunPtr #-}
 
+-- | Usage: @'glCombinerOutputNV' stage portion abOutput cdOutput sumOutput scale bias abDotProduct cdDotProduct muxSum@
+--
+-- The parameter @stage@ is a @CombinerStageNV@.
+--
+-- The parameter @portion@ is a @CombinerPortionNV@.
+--
+-- The parameter @abOutput@ is a @CombinerRegisterNV@.
+--
+-- The parameter @cdOutput@ is a @CombinerRegisterNV@.
+--
+-- The parameter @sumOutput@ is a @CombinerRegisterNV@.
+--
+-- The parameter @scale@ is a @CombinerScaleNV@.
+--
+-- The parameter @bias@ is a @CombinerBiasNV@.
+--
+-- The parameter @abDotProduct@ is a @Boolean@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FALSE', 'Graphics.GL.Raw.Internal.Shared.GL_TRUE'.
+--
+-- The parameter @cdDotProduct@ is a @Boolean@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FALSE', 'Graphics.GL.Raw.Internal.Shared.GL_TRUE'.
+--
+-- The parameter @muxSum@ is a @Boolean@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FALSE', 'Graphics.GL.Raw.Internal.Shared.GL_TRUE'.
+
+
 glCombinerOutputNV :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> GLboolean -> GLboolean -> GLboolean -> m ()
 glCombinerOutputNV = ffienumenumenumenumenumenumenumbooleanbooleanbooleanIOV glCombinerOutputNVFunPtr
 
@@ -104,6 +145,11 @@
 
 {-# NOINLINE glCombinerOutputNVFunPtr #-}
 
+-- | Usage: @'glCombinerParameterfNV' pname param@
+--
+-- The parameter @pname@ is a @CombinerParameterNV@.
+
+
 glCombinerParameterfNV :: MonadIO m => GLenum -> GLfloat -> m ()
 glCombinerParameterfNV = ffienumfloatIOV glCombinerParameterfNVFunPtr
 
@@ -112,6 +158,15 @@
 
 {-# NOINLINE glCombinerParameterfNVFunPtr #-}
 
+-- | Usage: @'glCombinerParameterfvNV' pname params@
+--
+-- The parameter @pname@ is a @CombinerParameterNV@.
+--
+-- The parameter @params@ is a @CheckedFloat32@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
 glCombinerParameterfvNV :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
 glCombinerParameterfvNV = ffienumPtrfloatIOV glCombinerParameterfvNVFunPtr
 
@@ -120,6 +175,11 @@
 
 {-# NOINLINE glCombinerParameterfvNVFunPtr #-}
 
+-- | Usage: @'glCombinerParameteriNV' pname param@
+--
+-- The parameter @pname@ is a @CombinerParameterNV@.
+
+
 glCombinerParameteriNV :: MonadIO m => GLenum -> GLint -> m ()
 glCombinerParameteriNV = ffienumintIOV glCombinerParameteriNVFunPtr
 
@@ -128,6 +188,15 @@
 
 {-# NOINLINE glCombinerParameteriNVFunPtr #-}
 
+-- | Usage: @'glCombinerParameterivNV' pname params@
+--
+-- The parameter @pname@ is a @CombinerParameterNV@.
+--
+-- The parameter @params@ is a @CheckedInt32@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
 glCombinerParameterivNV :: MonadIO m => GLenum -> Ptr GLint -> m ()
 glCombinerParameterivNV = ffienumPtrintIOV glCombinerParameterivNVFunPtr
 
@@ -136,6 +205,17 @@
 
 {-# NOINLINE glCombinerParameterivNVFunPtr #-}
 
+-- | Usage: @'glFinalCombinerInputNV' variable input mapping componentUsage@
+--
+-- The parameter @variable@ is a @CombinerVariableNV@.
+--
+-- The parameter @input@ is a @CombinerRegisterNV@.
+--
+-- The parameter @mapping@ is a @CombinerMappingNV@.
+--
+-- The parameter @componentUsage@ is a @CombinerComponentUsageNV@.
+
+
 glFinalCombinerInputNV :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> m ()
 glFinalCombinerInputNV = ffienumenumenumenumIOV glFinalCombinerInputNVFunPtr
 
@@ -144,6 +224,19 @@
 
 {-# NOINLINE glFinalCombinerInputNVFunPtr #-}
 
+-- | Usage: @'glGetCombinerInputParameterfvNV' stage portion variable pname params@
+--
+-- The parameter @stage@ is a @CombinerStageNV@.
+--
+-- The parameter @portion@ is a @CombinerPortionNV@.
+--
+-- The parameter @variable@ is a @CombinerVariableNV@.
+--
+-- The parameter @pname@ is a @CombinerParameterNV@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
 glGetCombinerInputParameterfvNV :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> Ptr GLfloat -> m ()
 glGetCombinerInputParameterfvNV = ffienumenumenumenumPtrfloatIOV glGetCombinerInputParameterfvNVFunPtr
 
@@ -152,6 +245,19 @@
 
 {-# NOINLINE glGetCombinerInputParameterfvNVFunPtr #-}
 
+-- | Usage: @'glGetCombinerInputParameterivNV' stage portion variable pname params@
+--
+-- The parameter @stage@ is a @CombinerStageNV@.
+--
+-- The parameter @portion@ is a @CombinerPortionNV@.
+--
+-- The parameter @variable@ is a @CombinerVariableNV@.
+--
+-- The parameter @pname@ is a @CombinerParameterNV@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
 glGetCombinerInputParameterivNV :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> Ptr GLint -> m ()
 glGetCombinerInputParameterivNV = ffienumenumenumenumPtrintIOV glGetCombinerInputParameterivNVFunPtr
 
@@ -160,6 +266,17 @@
 
 {-# NOINLINE glGetCombinerInputParameterivNVFunPtr #-}
 
+-- | Usage: @'glGetCombinerOutputParameterfvNV' stage portion pname params@
+--
+-- The parameter @stage@ is a @CombinerStageNV@.
+--
+-- The parameter @portion@ is a @CombinerPortionNV@.
+--
+-- The parameter @pname@ is a @CombinerParameterNV@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
 glGetCombinerOutputParameterfvNV :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLfloat -> m ()
 glGetCombinerOutputParameterfvNV = ffienumenumenumPtrfloatIOV glGetCombinerOutputParameterfvNVFunPtr
 
@@ -168,6 +285,17 @@
 
 {-# NOINLINE glGetCombinerOutputParameterfvNVFunPtr #-}
 
+-- | Usage: @'glGetCombinerOutputParameterivNV' stage portion pname params@
+--
+-- The parameter @stage@ is a @CombinerStageNV@.
+--
+-- The parameter @portion@ is a @CombinerPortionNV@.
+--
+-- The parameter @pname@ is a @CombinerParameterNV@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
 glGetCombinerOutputParameterivNV :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLint -> m ()
 glGetCombinerOutputParameterivNV = ffienumenumenumPtrintIOV glGetCombinerOutputParameterivNVFunPtr
 
@@ -176,6 +304,15 @@
 
 {-# NOINLINE glGetCombinerOutputParameterivNVFunPtr #-}
 
+-- | Usage: @'glGetFinalCombinerInputParameterfvNV' variable pname params@
+--
+-- The parameter @variable@ is a @CombinerVariableNV@.
+--
+-- The parameter @pname@ is a @CombinerParameterNV@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
 glGetFinalCombinerInputParameterfvNV :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
 glGetFinalCombinerInputParameterfvNV = ffienumenumPtrfloatIOV glGetFinalCombinerInputParameterfvNVFunPtr
 
@@ -183,6 +320,15 @@
 glGetFinalCombinerInputParameterfvNVFunPtr = unsafePerformIO (getProcAddress "glGetFinalCombinerInputParameterfvNV")
 
 {-# NOINLINE glGetFinalCombinerInputParameterfvNVFunPtr #-}
+
+-- | Usage: @'glGetFinalCombinerInputParameterivNV' variable pname params@
+--
+-- The parameter @variable@ is a @CombinerVariableNV@.
+--
+-- The parameter @pname@ is a @CombinerParameterNV@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
 
 glGetFinalCombinerInputParameterivNV :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
 glGetFinalCombinerInputParameterivNV = ffienumenumPtrintIOV glGetFinalCombinerInputParameterivNVFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/RegisterCombiners2.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/RegisterCombiners2.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/RegisterCombiners2.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/RegisterCombiners2.hs
@@ -18,9 +18,23 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/register_combiners2.txt GL_NV_register_combiners2> extension is available.
+
 gl_NV_register_combiners2 :: Bool
 gl_NV_register_combiners2 = member "GL_NV_register_combiners2" extensions
+{-# NOINLINE gl_NV_register_combiners2 #-}
 
+-- | Usage: @'glCombinerStageParameterfvNV' stage pname params@
+--
+-- The parameter @stage@ is a @CombinerStageNV@.
+--
+-- The parameter @pname@ is a @CombinerParameterNV@.
+--
+-- The parameter @params@ is a @CheckedFloat32@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
 glCombinerStageParameterfvNV :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
 glCombinerStageParameterfvNV = ffienumenumPtrfloatIOV glCombinerStageParameterfvNVFunPtr
 
@@ -28,6 +42,15 @@
 glCombinerStageParameterfvNVFunPtr = unsafePerformIO (getProcAddress "glCombinerStageParameterfvNV")
 
 {-# NOINLINE glCombinerStageParameterfvNVFunPtr #-}
+
+-- | Usage: @'glGetCombinerStageParameterfvNV' stage pname params@
+--
+-- The parameter @stage@ is a @CombinerStageNV@.
+--
+-- The parameter @pname@ is a @CombinerParameterNV@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
 
 glGetCombinerStageParameterfvNV :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
 glGetCombinerStageParameterfvNV = ffienumenumPtrfloatIOV glGetCombinerStageParameterfvNVFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/SRGBFormats.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/SRGBFormats.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/SRGBFormats.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/SRGBFormats.hs
@@ -20,8 +20,11 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the GL_NV_sRGB_formats extension is available.
+
 gl_NV_sRGB_formats :: Bool
 gl_NV_sRGB_formats = member "GL_NV_sRGB_formats" extensions
+{-# NOINLINE gl_NV_sRGB_formats #-}
 
 pattern GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_NV = 0x8C4D
 
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/SampleLocations.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/SampleLocations.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/SampleLocations.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/SampleLocations.hs
@@ -26,9 +26,15 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/sample_locations.txt GL_NV_sample_locations> extension is available.
+
 gl_NV_sample_locations :: Bool
 gl_NV_sample_locations = member "GL_NV_sample_locations" extensions
+{-# NOINLINE gl_NV_sample_locations #-}
 
+-- | Usage: @'glFramebufferSampleLocationsfvNV' target start count v@
+
+
 glFramebufferSampleLocationsfvNV :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLfloat -> m ()
 glFramebufferSampleLocationsfvNV = ffienumuintsizeiPtrfloatIOV glFramebufferSampleLocationsfvNVFunPtr
 
@@ -37,6 +43,9 @@
 
 {-# NOINLINE glFramebufferSampleLocationsfvNVFunPtr #-}
 
+-- | Usage: @'glNamedFramebufferSampleLocationsfvNV' framebuffer start count v@
+
+
 glNamedFramebufferSampleLocationsfvNV :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLfloat -> m ()
 glNamedFramebufferSampleLocationsfvNV = ffiuintuintsizeiPtrfloatIOV glNamedFramebufferSampleLocationsfvNVFunPtr
 
@@ -44,6 +53,9 @@
 glNamedFramebufferSampleLocationsfvNVFunPtr = unsafePerformIO (getProcAddress "glNamedFramebufferSampleLocationsfvNV")
 
 {-# NOINLINE glNamedFramebufferSampleLocationsfvNVFunPtr #-}
+
+-- | Usage: @'glResolveDepthValuesNV'@
+
 
 glResolveDepthValuesNV :: MonadIO m => m ()
 glResolveDepthValuesNV = ffiIOV glResolveDepthValuesNVFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/SampleMaskOverrideCoverage.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/SampleMaskOverrideCoverage.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/SampleMaskOverrideCoverage.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/SampleMaskOverrideCoverage.hs
@@ -8,5 +8,8 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/sample_mask_override_coverage.txt GL_NV_sample_mask_override_coverage> extension is available.
+
 gl_NV_sample_mask_override_coverage :: Bool
 gl_NV_sample_mask_override_coverage = member "GL_NV_sample_mask_override_coverage" extensions
+{-# NOINLINE gl_NV_sample_mask_override_coverage #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/ShaderAtomicCounters.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/ShaderAtomicCounters.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/ShaderAtomicCounters.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/ShaderAtomicCounters.hs
@@ -8,5 +8,8 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/shader_atomic_counters.txt GL_NV_shader_atomic_counters> extension is available.
+
 gl_NV_shader_atomic_counters :: Bool
 gl_NV_shader_atomic_counters = member "GL_NV_shader_atomic_counters" extensions
+{-# NOINLINE gl_NV_shader_atomic_counters #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/ShaderAtomicFloat.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/ShaderAtomicFloat.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/ShaderAtomicFloat.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/ShaderAtomicFloat.hs
@@ -8,5 +8,8 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/shader_atomic_float.txt GL_NV_shader_atomic_float> extension is available.
+
 gl_NV_shader_atomic_float :: Bool
 gl_NV_shader_atomic_float = member "GL_NV_shader_atomic_float" extensions
+{-# NOINLINE gl_NV_shader_atomic_float #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/ShaderAtomicFp16Vector.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/ShaderAtomicFp16Vector.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/ShaderAtomicFp16Vector.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/ShaderAtomicFp16Vector.hs
@@ -8,5 +8,8 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/shader_atomic_fp16_vector.txt GL_NV_shader_atomic_fp16_vector> extension is available.
+
 gl_NV_shader_atomic_fp16_vector :: Bool
 gl_NV_shader_atomic_fp16_vector = member "GL_NV_shader_atomic_fp16_vector" extensions
+{-# NOINLINE gl_NV_shader_atomic_fp16_vector #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/ShaderAtomicInt64.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/ShaderAtomicInt64.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/ShaderAtomicInt64.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/ShaderAtomicInt64.hs
@@ -8,5 +8,8 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/shader_atomic_int64.txt GL_NV_shader_atomic_int64> extension is available.
+
 gl_NV_shader_atomic_int64 :: Bool
 gl_NV_shader_atomic_int64 = member "GL_NV_shader_atomic_int64" extensions
+{-# NOINLINE gl_NV_shader_atomic_int64 #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/ShaderBufferLoad.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/ShaderBufferLoad.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/ShaderBufferLoad.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/ShaderBufferLoad.hs
@@ -33,9 +33,17 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/shader_buffer_load.txt GL_NV_shader_buffer_load> extension is available.
+
 gl_NV_shader_buffer_load :: Bool
 gl_NV_shader_buffer_load = member "GL_NV_shader_buffer_load" extensions
+{-# NOINLINE gl_NV_shader_buffer_load #-}
 
+-- | Usage: @'glGetBufferParameterui64vNV' target pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
 glGetBufferParameterui64vNV :: MonadIO m => GLenum -> GLenum -> Ptr GLuint64EXT -> m ()
 glGetBufferParameterui64vNV = ffienumenumPtruint64EXTIOV glGetBufferParameterui64vNVFunPtr
 
@@ -44,6 +52,11 @@
 
 {-# NOINLINE glGetBufferParameterui64vNVFunPtr #-}
 
+-- | Usage: @'glGetIntegerui64vNV' value result@
+--
+-- The length of @result@ should be @COMPSIZE(value)@.
+
+
 glGetIntegerui64vNV :: MonadIO m => GLenum -> Ptr GLuint64EXT -> m ()
 glGetIntegerui64vNV = ffienumPtruint64EXTIOV glGetIntegerui64vNVFunPtr
 
@@ -52,6 +65,13 @@
 
 {-# NOINLINE glGetIntegerui64vNVFunPtr #-}
 
+-- | Usage: @'glGetNamedBufferParameterui64vNV' buffer pname params@
+--
+-- The parameter @pname@ is a @VertexBufferObjectParameter@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
 glGetNamedBufferParameterui64vNV :: MonadIO m => GLuint -> GLenum -> Ptr GLuint64EXT -> m ()
 glGetNamedBufferParameterui64vNV = ffiuintenumPtruint64EXTIOV glGetNamedBufferParameterui64vNVFunPtr
 
@@ -60,6 +80,9 @@
 
 {-# NOINLINE glGetNamedBufferParameterui64vNVFunPtr #-}
 
+-- | Usage: @'glIsBufferResidentNV' target@
+
+
 glIsBufferResidentNV :: MonadIO m => GLenum -> m GLboolean
 glIsBufferResidentNV = ffienumIOboolean glIsBufferResidentNVFunPtr
 
@@ -68,6 +91,9 @@
 
 {-# NOINLINE glIsBufferResidentNVFunPtr #-}
 
+-- | Usage: @'glIsNamedBufferResidentNV' buffer@
+
+
 glIsNamedBufferResidentNV :: MonadIO m => GLuint -> m GLboolean
 glIsNamedBufferResidentNV = ffiuintIOboolean glIsNamedBufferResidentNVFunPtr
 
@@ -76,6 +102,9 @@
 
 {-# NOINLINE glIsNamedBufferResidentNVFunPtr #-}
 
+-- | Usage: @'glMakeBufferNonResidentNV' target@
+
+
 glMakeBufferNonResidentNV :: MonadIO m => GLenum -> m ()
 glMakeBufferNonResidentNV = ffienumIOV glMakeBufferNonResidentNVFunPtr
 
@@ -84,6 +113,9 @@
 
 {-# NOINLINE glMakeBufferNonResidentNVFunPtr #-}
 
+-- | Usage: @'glMakeBufferResidentNV' target access@
+
+
 glMakeBufferResidentNV :: MonadIO m => GLenum -> GLenum -> m ()
 glMakeBufferResidentNV = ffienumenumIOV glMakeBufferResidentNVFunPtr
 
@@ -92,6 +124,9 @@
 
 {-# NOINLINE glMakeBufferResidentNVFunPtr #-}
 
+-- | Usage: @'glMakeNamedBufferNonResidentNV' buffer@
+
+
 glMakeNamedBufferNonResidentNV :: MonadIO m => GLuint -> m ()
 glMakeNamedBufferNonResidentNV = ffiuintIOV glMakeNamedBufferNonResidentNVFunPtr
 
@@ -100,6 +135,9 @@
 
 {-# NOINLINE glMakeNamedBufferNonResidentNVFunPtr #-}
 
+-- | Usage: @'glMakeNamedBufferResidentNV' buffer access@
+
+
 glMakeNamedBufferResidentNV :: MonadIO m => GLuint -> GLenum -> m ()
 glMakeNamedBufferResidentNV = ffiuintenumIOV glMakeNamedBufferResidentNVFunPtr
 
@@ -108,6 +146,9 @@
 
 {-# NOINLINE glMakeNamedBufferResidentNVFunPtr #-}
 
+-- | Usage: @'glProgramUniformui64NV' program location value@
+
+
 glProgramUniformui64NV :: MonadIO m => GLuint -> GLint -> GLuint64EXT -> m ()
 glProgramUniformui64NV = ffiuintintuint64EXTIOV glProgramUniformui64NVFunPtr
 
@@ -116,6 +157,11 @@
 
 {-# NOINLINE glProgramUniformui64NVFunPtr #-}
 
+-- | Usage: @'glProgramUniformui64vNV' program location count value@
+--
+-- The length of @value@ should be @count@.
+
+
 glProgramUniformui64vNV :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint64EXT -> m ()
 glProgramUniformui64vNV = ffiuintintsizeiPtruint64EXTIOV glProgramUniformui64vNVFunPtr
 
@@ -124,6 +170,9 @@
 
 {-# NOINLINE glProgramUniformui64vNVFunPtr #-}
 
+-- | Usage: @'glUniformui64NV' location value@
+
+
 glUniformui64NV :: MonadIO m => GLint -> GLuint64EXT -> m ()
 glUniformui64NV = ffiintuint64EXTIOV glUniformui64NVFunPtr
 
@@ -131,6 +180,11 @@
 glUniformui64NVFunPtr = unsafePerformIO (getProcAddress "glUniformui64NV")
 
 {-# NOINLINE glUniformui64NVFunPtr #-}
+
+-- | Usage: @'glUniformui64vNV' location count value@
+--
+-- The length of @value@ should be @count*1@.
+
 
 glUniformui64vNV :: MonadIO m => GLint -> GLsizei -> Ptr GLuint64EXT -> m ()
 glUniformui64vNV = ffiintsizeiPtruint64EXTIOV glUniformui64vNVFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/ShaderBufferStore.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/ShaderBufferStore.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/ShaderBufferStore.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/ShaderBufferStore.hs
@@ -14,7 +14,10 @@
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/shader_buffer_store.txt GL_NV_shader_buffer_store> extension is available.
+
 gl_NV_shader_buffer_store :: Bool
 gl_NV_shader_buffer_store = member "GL_NV_shader_buffer_store" extensions
+{-# NOINLINE gl_NV_shader_buffer_store #-}
 
 pattern GL_SHADER_GLOBAL_ACCESS_BARRIER_BIT_NV = 0x00000010
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/ShaderStorageBufferObject.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/ShaderStorageBufferObject.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/ShaderStorageBufferObject.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/ShaderStorageBufferObject.hs
@@ -8,5 +8,8 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/shader_storage_buffer_object.txt GL_NV_shader_storage_buffer_object> extension is available.
+
 gl_NV_shader_storage_buffer_object :: Bool
 gl_NV_shader_storage_buffer_object = member "GL_NV_shader_storage_buffer_object" extensions
+{-# NOINLINE gl_NV_shader_storage_buffer_object #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/ShaderThreadGroup.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/ShaderThreadGroup.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/ShaderThreadGroup.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/ShaderThreadGroup.hs
@@ -13,8 +13,11 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/shader_thread_group.txt GL_NV_shader_thread_group> extension is available.
+
 gl_NV_shader_thread_group :: Bool
 gl_NV_shader_thread_group = member "GL_NV_shader_thread_group" extensions
+{-# NOINLINE gl_NV_shader_thread_group #-}
 
 pattern GL_SM_COUNT_NV = 0x933B
 
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/ShaderThreadShuffle.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/ShaderThreadShuffle.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/ShaderThreadShuffle.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/ShaderThreadShuffle.hs
@@ -8,5 +8,8 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/shader_thread_shuffle.txt GL_NV_shader_thread_shuffle> extension is available.
+
 gl_NV_shader_thread_shuffle :: Bool
 gl_NV_shader_thread_shuffle = member "GL_NV_shader_thread_shuffle" extensions
+{-# NOINLINE gl_NV_shader_thread_shuffle #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/ShadowSamplersArray.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/ShadowSamplersArray.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/ShadowSamplersArray.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/ShadowSamplersArray.hs
@@ -11,7 +11,10 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the GL_NV_shadow_samplers_array extension is available.
+
 gl_NV_shadow_samplers_array :: Bool
 gl_NV_shadow_samplers_array = member "GL_NV_shadow_samplers_array" extensions
+{-# NOINLINE gl_NV_shadow_samplers_array #-}
 
 pattern GL_SAMPLER_2D_ARRAY_SHADOW_NV = 0x8DC4
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/ShadowSamplersCube.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/ShadowSamplersCube.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/ShadowSamplersCube.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/ShadowSamplersCube.hs
@@ -11,7 +11,10 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the GL_NV_shadow_samplers_cube extension is available.
+
 gl_NV_shadow_samplers_cube :: Bool
 gl_NV_shadow_samplers_cube = member "GL_NV_shadow_samplers_cube" extensions
+{-# NOINLINE gl_NV_shadow_samplers_cube #-}
 
 pattern GL_SAMPLER_CUBE_SHADOW_NV = 0x8DC5
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/TessellationProgram5.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/TessellationProgram5.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/TessellationProgram5.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/TessellationProgram5.hs
@@ -15,8 +15,11 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/tessellation_program5.txt GL_NV_tessellation_program5> extension is available.
+
 gl_NV_tessellation_program5 :: Bool
 gl_NV_tessellation_program5 = member "GL_NV_tessellation_program5" extensions
+{-# NOINLINE gl_NV_tessellation_program5 #-}
 
 pattern GL_MAX_PROGRAM_PATCH_ATTRIBS_NV = 0x86D8
 
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/TexgenEmboss.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/TexgenEmboss.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/TexgenEmboss.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/TexgenEmboss.hs
@@ -13,8 +13,11 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/texgen_emboss.txt GL_NV_texgen_emboss> extension is available.
+
 gl_NV_texgen_emboss :: Bool
 gl_NV_texgen_emboss = member "GL_NV_texgen_emboss" extensions
+{-# NOINLINE gl_NV_texgen_emboss #-}
 
 pattern GL_EMBOSS_CONSTANT_NV = 0x855E
 
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/TexgenReflection.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/TexgenReflection.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/TexgenReflection.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/TexgenReflection.hs
@@ -12,8 +12,11 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/texgen_reflection.txt GL_NV_texgen_reflection> extension is available.
+
 gl_NV_texgen_reflection :: Bool
 gl_NV_texgen_reflection = member "GL_NV_texgen_reflection" extensions
+{-# NOINLINE gl_NV_texgen_reflection #-}
 
 pattern GL_NORMAL_MAP_NV = 0x8511
 
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/TextureBarrier.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/TextureBarrier.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/TextureBarrier.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/TextureBarrier.hs
@@ -15,8 +15,14 @@
 import Graphics.GL.Raw.Internal.Proc
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/texture_barrier.txt GL_NV_texture_barrier> extension is available.
+
 gl_NV_texture_barrier :: Bool
 gl_NV_texture_barrier = member "GL_NV_texture_barrier" extensions
+{-# NOINLINE gl_NV_texture_barrier #-}
+
+-- | Usage: @'glTextureBarrierNV'@
+
 
 glTextureBarrierNV :: MonadIO m => m ()
 glTextureBarrierNV = ffiIOV glTextureBarrierNVFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/TextureBorderClamp.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/TextureBorderClamp.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/TextureBorderClamp.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/TextureBorderClamp.hs
@@ -12,8 +12,11 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the GL_NV_texture_border_clamp extension is available.
+
 gl_NV_texture_border_clamp :: Bool
 gl_NV_texture_border_clamp = member "GL_NV_texture_border_clamp" extensions
+{-# NOINLINE gl_NV_texture_border_clamp #-}
 
 pattern GL_CLAMP_TO_BORDER_NV = 0x812D
 
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/TextureCompressionS3tcUpdate.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/TextureCompressionS3tcUpdate.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/TextureCompressionS3tcUpdate.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/TextureCompressionS3tcUpdate.hs
@@ -8,5 +8,8 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the GL_NV_texture_compression_s3tc_update extension is available.
+
 gl_NV_texture_compression_s3tc_update :: Bool
 gl_NV_texture_compression_s3tc_update = member "GL_NV_texture_compression_s3tc_update" extensions
+{-# NOINLINE gl_NV_texture_compression_s3tc_update #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/TextureCompressionVtc.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/TextureCompressionVtc.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/TextureCompressionVtc.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/TextureCompressionVtc.hs
@@ -8,5 +8,8 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/texture_compression_vtc.txt GL_NV_texture_compression_vtc> extension is available.
+
 gl_NV_texture_compression_vtc :: Bool
 gl_NV_texture_compression_vtc = member "GL_NV_texture_compression_vtc" extensions
+{-# NOINLINE gl_NV_texture_compression_vtc #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/TextureEnvCombine4.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/TextureEnvCombine4.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/TextureEnvCombine4.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/TextureEnvCombine4.hs
@@ -15,8 +15,11 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/texture_env_combine4.txt GL_NV_texture_env_combine4> extension is available.
+
 gl_NV_texture_env_combine4 :: Bool
 gl_NV_texture_env_combine4 = member "GL_NV_texture_env_combine4" extensions
+{-# NOINLINE gl_NV_texture_env_combine4 #-}
 
 pattern GL_COMBINE4_NV = 0x8503
 
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/TextureExpandNormal.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/TextureExpandNormal.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/TextureExpandNormal.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/TextureExpandNormal.hs
@@ -11,7 +11,10 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/texture_expand_normal.txt GL_NV_texture_expand_normal> extension is available.
+
 gl_NV_texture_expand_normal :: Bool
 gl_NV_texture_expand_normal = member "GL_NV_texture_expand_normal" extensions
+{-# NOINLINE gl_NV_texture_expand_normal #-}
 
 pattern GL_TEXTURE_UNSIGNED_REMAP_MODE_NV = 0x888F
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/TextureMultisample.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/TextureMultisample.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/TextureMultisample.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/TextureMultisample.hs
@@ -23,9 +23,17 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/texture_multisample.txt GL_NV_texture_multisample> extension is available.
+
 gl_NV_texture_multisample :: Bool
 gl_NV_texture_multisample = member "GL_NV_texture_multisample" extensions
+{-# NOINLINE gl_NV_texture_multisample #-}
 
+-- | Usage: @'glTexImage2DMultisampleCoverageNV' target coverageSamples colorSamples internalFormat width height fixedSampleLocations@
+--
+-- The parameter @fixedSampleLocations@ is a @Boolean@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FALSE', 'Graphics.GL.Raw.Internal.Shared.GL_TRUE'.
+
+
 glTexImage2DMultisampleCoverageNV :: MonadIO m => GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLboolean -> m ()
 glTexImage2DMultisampleCoverageNV = ffienumsizeisizeiintsizeisizeibooleanIOV glTexImage2DMultisampleCoverageNVFunPtr
 
@@ -34,6 +42,11 @@
 
 {-# NOINLINE glTexImage2DMultisampleCoverageNVFunPtr #-}
 
+-- | Usage: @'glTexImage3DMultisampleCoverageNV' target coverageSamples colorSamples internalFormat width height depth fixedSampleLocations@
+--
+-- The parameter @fixedSampleLocations@ is a @Boolean@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FALSE', 'Graphics.GL.Raw.Internal.Shared.GL_TRUE'.
+
+
 glTexImage3DMultisampleCoverageNV :: MonadIO m => GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> m ()
 glTexImage3DMultisampleCoverageNV = ffienumsizeisizeiintsizeisizeisizeibooleanIOV glTexImage3DMultisampleCoverageNVFunPtr
 
@@ -42,6 +55,11 @@
 
 {-# NOINLINE glTexImage3DMultisampleCoverageNVFunPtr #-}
 
+-- | Usage: @'glTextureImage2DMultisampleCoverageNV' texture target coverageSamples colorSamples internalFormat width height fixedSampleLocations@
+--
+-- The parameter @fixedSampleLocations@ is a @Boolean@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FALSE', 'Graphics.GL.Raw.Internal.Shared.GL_TRUE'.
+
+
 glTextureImage2DMultisampleCoverageNV :: MonadIO m => GLuint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLboolean -> m ()
 glTextureImage2DMultisampleCoverageNV = ffiuintenumsizeisizeiintsizeisizeibooleanIOV glTextureImage2DMultisampleCoverageNVFunPtr
 
@@ -50,6 +68,11 @@
 
 {-# NOINLINE glTextureImage2DMultisampleCoverageNVFunPtr #-}
 
+-- | Usage: @'glTextureImage2DMultisampleNV' texture target samples internalFormat width height fixedSampleLocations@
+--
+-- The parameter @fixedSampleLocations@ is a @Boolean@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FALSE', 'Graphics.GL.Raw.Internal.Shared.GL_TRUE'.
+
+
 glTextureImage2DMultisampleNV :: MonadIO m => GLuint -> GLenum -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLboolean -> m ()
 glTextureImage2DMultisampleNV = ffiuintenumsizeiintsizeisizeibooleanIOV glTextureImage2DMultisampleNVFunPtr
 
@@ -58,6 +81,11 @@
 
 {-# NOINLINE glTextureImage2DMultisampleNVFunPtr #-}
 
+-- | Usage: @'glTextureImage3DMultisampleCoverageNV' texture target coverageSamples colorSamples internalFormat width height depth fixedSampleLocations@
+--
+-- The parameter @fixedSampleLocations@ is a @Boolean@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FALSE', 'Graphics.GL.Raw.Internal.Shared.GL_TRUE'.
+
+
 glTextureImage3DMultisampleCoverageNV :: MonadIO m => GLuint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> m ()
 glTextureImage3DMultisampleCoverageNV = ffiuintenumsizeisizeiintsizeisizeisizeibooleanIOV glTextureImage3DMultisampleCoverageNVFunPtr
 
@@ -65,6 +93,11 @@
 glTextureImage3DMultisampleCoverageNVFunPtr = unsafePerformIO (getProcAddress "glTextureImage3DMultisampleCoverageNV")
 
 {-# NOINLINE glTextureImage3DMultisampleCoverageNVFunPtr #-}
+
+-- | Usage: @'glTextureImage3DMultisampleNV' texture target samples internalFormat width height depth fixedSampleLocations@
+--
+-- The parameter @fixedSampleLocations@ is a @Boolean@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FALSE', 'Graphics.GL.Raw.Internal.Shared.GL_TRUE'.
+
 
 glTextureImage3DMultisampleNV :: MonadIO m => GLuint -> GLenum -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> m ()
 glTextureImage3DMultisampleNV = ffiuintenumsizeiintsizeisizeisizeibooleanIOV glTextureImage3DMultisampleNVFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/TextureNpot2DMipmap.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/TextureNpot2DMipmap.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/TextureNpot2DMipmap.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/TextureNpot2DMipmap.hs
@@ -8,5 +8,8 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the GL_NV_texture_npot_2D_mipmap extension is available.
+
 gl_NV_texture_npot_2D_mipmap :: Bool
 gl_NV_texture_npot_2D_mipmap = member "GL_NV_texture_npot_2D_mipmap" extensions
+{-# NOINLINE gl_NV_texture_npot_2D_mipmap #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/TextureRectangle.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/TextureRectangle.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/TextureRectangle.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/TextureRectangle.hs
@@ -14,8 +14,11 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/texture_rectangle.txt GL_NV_texture_rectangle> extension is available.
+
 gl_NV_texture_rectangle :: Bool
 gl_NV_texture_rectangle = member "GL_NV_texture_rectangle" extensions
+{-# NOINLINE gl_NV_texture_rectangle #-}
 
 pattern GL_MAX_RECTANGLE_TEXTURE_SIZE_NV = 0x84F8
 
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/TextureShader.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/TextureShader.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/TextureShader.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/TextureShader.hs
@@ -83,8 +83,11 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/texture_shader.txt GL_NV_texture_shader> extension is available.
+
 gl_NV_texture_shader :: Bool
 gl_NV_texture_shader = member "GL_NV_texture_shader" extensions
+{-# NOINLINE gl_NV_texture_shader #-}
 
 pattern GL_CONST_EYE_NV = 0x86E5
 
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/TextureShader2.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/TextureShader2.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/TextureShader2.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/TextureShader2.hs
@@ -11,7 +11,10 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/texture_shader2.txt GL_NV_texture_shader2> extension is available.
+
 gl_NV_texture_shader2 :: Bool
 gl_NV_texture_shader2 = member "GL_NV_texture_shader2" extensions
+{-# NOINLINE gl_NV_texture_shader2 #-}
 
 pattern GL_DOT_PRODUCT_TEXTURE_3D_NV = 0x86EF
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/TextureShader3.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/TextureShader3.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/TextureShader3.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/TextureShader3.hs
@@ -27,8 +27,11 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/texture_shader3.txt GL_NV_texture_shader3> extension is available.
+
 gl_NV_texture_shader3 :: Bool
 gl_NV_texture_shader3 = member "GL_NV_texture_shader3" extensions
+{-# NOINLINE gl_NV_texture_shader3 #-}
 
 pattern GL_DEPENDENT_HILO_TEXTURE_2D_NV = 0x8858
 
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/TransformFeedback.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/TransformFeedback.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/TransformFeedback.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/TransformFeedback.hs
@@ -58,9 +58,17 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/transform_feedback.txt GL_NV_transform_feedback> extension is available.
+
 gl_NV_transform_feedback :: Bool
 gl_NV_transform_feedback = member "GL_NV_transform_feedback" extensions
+{-# NOINLINE gl_NV_transform_feedback #-}
 
+-- | Usage: @'glActiveVaryingNV' program name@
+--
+-- The length of @name@ should be @COMPSIZE(name)@.
+
+
 glActiveVaryingNV :: MonadIO m => GLuint -> Ptr GLchar -> m ()
 glActiveVaryingNV = ffiuintPtrcharIOV glActiveVaryingNVFunPtr
 
@@ -69,6 +77,11 @@
 
 {-# NOINLINE glActiveVaryingNVFunPtr #-}
 
+-- | Usage: @'glBeginTransformFeedbackNV' primitiveMode@
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glBeginTransformFeedback'.
+
+
 glBeginTransformFeedbackNV :: MonadIO m => GLenum -> m ()
 glBeginTransformFeedbackNV = ffienumIOV glBeginTransformFeedbackNVFunPtr
 
@@ -77,6 +90,11 @@
 
 {-# NOINLINE glBeginTransformFeedbackNVFunPtr #-}
 
+-- | Usage: @'glBindBufferBaseNV' target index buffer@
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glBindBufferBase'.
+
+
 glBindBufferBaseNV :: MonadIO m => GLenum -> GLuint -> GLuint -> m ()
 glBindBufferBaseNV = ffienumuintuintIOV glBindBufferBaseNVFunPtr
 
@@ -85,6 +103,13 @@
 
 {-# NOINLINE glBindBufferBaseNVFunPtr #-}
 
+-- | Usage: @'glBindBufferOffsetNV' target index buffer offset@
+--
+-- The parameter @offset@ is a @BufferOffset@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Extension.EXT.TransformFeedback.glBindBufferOffsetEXT'.
+
+
 glBindBufferOffsetNV :: MonadIO m => GLenum -> GLuint -> GLuint -> GLintptr -> m ()
 glBindBufferOffsetNV = ffienumuintuintintptrIOV glBindBufferOffsetNVFunPtr
 
@@ -93,6 +118,15 @@
 
 {-# NOINLINE glBindBufferOffsetNVFunPtr #-}
 
+-- | Usage: @'glBindBufferRangeNV' target index buffer offset size@
+--
+-- The parameter @offset@ is a @BufferOffset@.
+--
+-- The parameter @size@ is a @BufferSize@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glBindBufferRange'.
+
+
 glBindBufferRangeNV :: MonadIO m => GLenum -> GLuint -> GLuint -> GLintptr -> GLsizeiptr -> m ()
 glBindBufferRangeNV = ffienumuintuintintptrsizeiptrIOV glBindBufferRangeNVFunPtr
 
@@ -101,6 +135,11 @@
 
 {-# NOINLINE glBindBufferRangeNVFunPtr #-}
 
+-- | Usage: @'glEndTransformFeedbackNV'@
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glEndTransformFeedback'.
+
+
 glEndTransformFeedbackNV :: MonadIO m => m ()
 glEndTransformFeedbackNV = ffiIOV glEndTransformFeedbackNVFunPtr
 
@@ -109,6 +148,17 @@
 
 {-# NOINLINE glEndTransformFeedbackNVFunPtr #-}
 
+-- | Usage: @'glGetActiveVaryingNV' program index bufSize length size type name@
+--
+-- The length of @length@ should be @1@.
+--
+-- The length of @size@ should be @1@.
+--
+-- The length of @type@ should be @1@.
+--
+-- The length of @name@ should be @COMPSIZE(program,index,bufSize)@.
+
+
 glGetActiveVaryingNV :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLsizei -> Ptr GLenum -> Ptr GLchar -> m ()
 glGetActiveVaryingNV = ffiuintuintsizeiPtrsizeiPtrsizeiPtrenumPtrcharIOV glGetActiveVaryingNVFunPtr
 
@@ -117,6 +167,11 @@
 
 {-# NOINLINE glGetActiveVaryingNVFunPtr #-}
 
+-- | Usage: @'glGetTransformFeedbackVaryingNV' program index location@
+--
+-- The length of @location@ should be @1@.
+
+
 glGetTransformFeedbackVaryingNV :: MonadIO m => GLuint -> GLuint -> Ptr GLint -> m ()
 glGetTransformFeedbackVaryingNV = ffiuintuintPtrintIOV glGetTransformFeedbackVaryingNVFunPtr
 
@@ -125,6 +180,11 @@
 
 {-# NOINLINE glGetTransformFeedbackVaryingNVFunPtr #-}
 
+-- | Usage: @'glGetVaryingLocationNV' program name@
+--
+-- The length of @name@ should be @COMPSIZE(name)@.
+
+
 glGetVaryingLocationNV :: MonadIO m => GLuint -> Ptr GLchar -> m GLint
 glGetVaryingLocationNV = ffiuintPtrcharIOint glGetVaryingLocationNVFunPtr
 
@@ -133,6 +193,11 @@
 
 {-# NOINLINE glGetVaryingLocationNVFunPtr #-}
 
+-- | Usage: @'glTransformFeedbackAttribsNV' count attribs bufferMode@
+--
+-- The length of @attribs@ should be @COMPSIZE(count)@.
+
+
 glTransformFeedbackAttribsNV :: MonadIO m => GLsizei -> Ptr GLint -> GLenum -> m ()
 glTransformFeedbackAttribsNV = ffisizeiPtrintenumIOV glTransformFeedbackAttribsNVFunPtr
 
@@ -141,6 +206,13 @@
 
 {-# NOINLINE glTransformFeedbackAttribsNVFunPtr #-}
 
+-- | Usage: @'glTransformFeedbackStreamAttribsNV' count attribs nbuffers bufstreams bufferMode@
+--
+-- The length of @attribs@ should be @count@.
+--
+-- The length of @bufstreams@ should be @nbuffers@.
+
+
 glTransformFeedbackStreamAttribsNV :: MonadIO m => GLsizei -> Ptr GLint -> GLsizei -> Ptr GLint -> GLenum -> m ()
 glTransformFeedbackStreamAttribsNV = ffisizeiPtrintsizeiPtrintenumIOV glTransformFeedbackStreamAttribsNVFunPtr
 
@@ -148,6 +220,11 @@
 glTransformFeedbackStreamAttribsNVFunPtr = unsafePerformIO (getProcAddress "glTransformFeedbackStreamAttribsNV")
 
 {-# NOINLINE glTransformFeedbackStreamAttribsNVFunPtr #-}
+
+-- | Usage: @'glTransformFeedbackVaryingsNV' program count locations bufferMode@
+--
+-- The length of @locations@ should be @count@.
+
 
 glTransformFeedbackVaryingsNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLint -> GLenum -> m ()
 glTransformFeedbackVaryingsNV = ffiuintsizeiPtrintenumIOV glTransformFeedbackVaryingsNVFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/TransformFeedback2.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/TransformFeedback2.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/TransformFeedback2.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/TransformFeedback2.hs
@@ -26,9 +26,17 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/transform_feedback2.txt GL_NV_transform_feedback2> extension is available.
+
 gl_NV_transform_feedback2 :: Bool
 gl_NV_transform_feedback2 = member "GL_NV_transform_feedback2" extensions
+{-# NOINLINE gl_NV_transform_feedback2 #-}
 
+-- | Usage: @'glBindTransformFeedbackNV' target id@
+--
+-- The parameter @target@ is a @BufferTargetARB@.
+
+
 glBindTransformFeedbackNV :: MonadIO m => GLenum -> GLuint -> m ()
 glBindTransformFeedbackNV = ffienumuintIOV glBindTransformFeedbackNVFunPtr
 
@@ -37,6 +45,13 @@
 
 {-# NOINLINE glBindTransformFeedbackNVFunPtr #-}
 
+-- | Usage: @'glDeleteTransformFeedbacksNV' n ids@
+--
+-- The length of @ids@ should be @n@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glDeleteTransformFeedbacks'.
+
+
 glDeleteTransformFeedbacksNV :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
 glDeleteTransformFeedbacksNV = ffisizeiPtruintIOV glDeleteTransformFeedbacksNVFunPtr
 
@@ -45,6 +60,13 @@
 
 {-# NOINLINE glDeleteTransformFeedbacksNVFunPtr #-}
 
+-- | Usage: @'glDrawTransformFeedbackNV' mode id@
+--
+-- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_LINES', 'Graphics.GL.Raw.Profile.Core32.GL_LINES_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Raw.Profile.Core32.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PATCHES', 'Graphics.GL.Raw.Extension.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_POINTS', 'Graphics.GL.Raw.Internal.Shared.GL_POLYGON', 'Graphics.GL.Raw.Internal.Shared.GL_QUADS', 'Graphics.GL.Raw.Extension.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Raw.Profile.Core32.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Raw.Profile.Core32.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glDrawTransformFeedback'.
+
+
 glDrawTransformFeedbackNV :: MonadIO m => GLenum -> GLuint -> m ()
 glDrawTransformFeedbackNV = ffienumuintIOV glDrawTransformFeedbackNVFunPtr
 
@@ -53,6 +75,13 @@
 
 {-# NOINLINE glDrawTransformFeedbackNVFunPtr #-}
 
+-- | Usage: @'glGenTransformFeedbacksNV' n ids@
+--
+-- The length of @ids@ should be @n@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glGenTransformFeedbacks'.
+
+
 glGenTransformFeedbacksNV :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
 glGenTransformFeedbacksNV = ffisizeiPtruintIOV glGenTransformFeedbacksNVFunPtr
 
@@ -61,6 +90,11 @@
 
 {-# NOINLINE glGenTransformFeedbacksNVFunPtr #-}
 
+-- | Usage: @'glIsTransformFeedbackNV' id@
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glIsTransformFeedback'.
+
+
 glIsTransformFeedbackNV :: MonadIO m => GLuint -> m GLboolean
 glIsTransformFeedbackNV = ffiuintIOboolean glIsTransformFeedbackNVFunPtr
 
@@ -69,6 +103,11 @@
 
 {-# NOINLINE glIsTransformFeedbackNVFunPtr #-}
 
+-- | Usage: @'glPauseTransformFeedbackNV'@
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glPauseTransformFeedback'.
+
+
 glPauseTransformFeedbackNV :: MonadIO m => m ()
 glPauseTransformFeedbackNV = ffiIOV glPauseTransformFeedbackNVFunPtr
 
@@ -76,6 +115,11 @@
 glPauseTransformFeedbackNVFunPtr = unsafePerformIO (getProcAddress "glPauseTransformFeedbackNV")
 
 {-# NOINLINE glPauseTransformFeedbackNVFunPtr #-}
+
+-- | Usage: @'glResumeTransformFeedbackNV'@
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glResumeTransformFeedback'.
+
 
 glResumeTransformFeedbackNV :: MonadIO m => m ()
 glResumeTransformFeedbackNV = ffiIOV glResumeTransformFeedbackNVFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/UniformBufferUnifiedMemory.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/UniformBufferUnifiedMemory.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/UniformBufferUnifiedMemory.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/UniformBufferUnifiedMemory.hs
@@ -13,8 +13,11 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/uniform_buffer_unified_memory.txt GL_NV_uniform_buffer_unified_memory> extension is available.
+
 gl_NV_uniform_buffer_unified_memory :: Bool
 gl_NV_uniform_buffer_unified_memory = member "GL_NV_uniform_buffer_unified_memory" extensions
+{-# NOINLINE gl_NV_uniform_buffer_unified_memory #-}
 
 pattern GL_UNIFORM_BUFFER_ADDRESS_NV = 0x936F
 
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/VdpauInterop.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/VdpauInterop.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/VdpauInterop.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/VdpauInterop.hs
@@ -29,9 +29,15 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/vdpau_interop.txt GL_NV_vdpau_interop> extension is available.
+
 gl_NV_vdpau_interop :: Bool
 gl_NV_vdpau_interop = member "GL_NV_vdpau_interop" extensions
+{-# NOINLINE gl_NV_vdpau_interop #-}
 
+-- | Usage: @'glVDPAUFiniNV'@
+
+
 glVDPAUFiniNV :: MonadIO m => m ()
 glVDPAUFiniNV = ffiIOV glVDPAUFiniNVFunPtr
 
@@ -40,6 +46,13 @@
 
 {-# NOINLINE glVDPAUFiniNVFunPtr #-}
 
+-- | Usage: @'glVDPAUGetSurfaceivNV' surface pname bufSize length values@
+--
+-- The parameter @surface@ is a @vdpauSurfaceNV@.
+--
+-- The length of @values@ should be @bufSize@.
+
+
 glVDPAUGetSurfaceivNV :: MonadIO m => GLvdpauSurfaceNV -> GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLint -> m ()
 glVDPAUGetSurfaceivNV = ffivdpauSurfaceNVenumsizeiPtrsizeiPtrintIOV glVDPAUGetSurfaceivNVFunPtr
 
@@ -48,6 +61,9 @@
 
 {-# NOINLINE glVDPAUGetSurfaceivNVFunPtr #-}
 
+-- | Usage: @'glVDPAUInitNV' vdpDevice getProcAddress@
+
+
 glVDPAUInitNV :: MonadIO m => Ptr () -> Ptr () -> m ()
 glVDPAUInitNV = ffiPtrVPtrVIOV glVDPAUInitNVFunPtr
 
@@ -56,6 +72,11 @@
 
 {-# NOINLINE glVDPAUInitNVFunPtr #-}
 
+-- | Usage: @'glVDPAUIsSurfaceNV' surface@
+--
+-- The parameter @surface@ is a @vdpauSurfaceNV@.
+
+
 glVDPAUIsSurfaceNV :: MonadIO m => GLvdpauSurfaceNV -> m GLboolean
 glVDPAUIsSurfaceNV = ffivdpauSurfaceNVIOboolean glVDPAUIsSurfaceNVFunPtr
 
@@ -64,6 +85,13 @@
 
 {-# NOINLINE glVDPAUIsSurfaceNVFunPtr #-}
 
+-- | Usage: @'glVDPAUMapSurfacesNV' numSurfaces surfaces@
+--
+-- The parameter @surfaces@ is a @vdpauSurfaceNV@.
+--
+-- The length of @surfaces@ should be @numSurfaces@.
+
+
 glVDPAUMapSurfacesNV :: MonadIO m => GLsizei -> Ptr GLvdpauSurfaceNV -> m ()
 glVDPAUMapSurfacesNV = ffisizeiPtrvdpauSurfaceNVIOV glVDPAUMapSurfacesNVFunPtr
 
@@ -72,6 +100,11 @@
 
 {-# NOINLINE glVDPAUMapSurfacesNVFunPtr #-}
 
+-- | Usage: @'glVDPAURegisterOutputSurfaceNV' vdpSurface target numTextureNames textureNames@
+--
+-- The length of @textureNames@ should be @numTextureNames@.
+
+
 glVDPAURegisterOutputSurfaceNV :: MonadIO m => Ptr () -> GLenum -> GLsizei -> Ptr GLuint -> m GLvdpauSurfaceNV
 glVDPAURegisterOutputSurfaceNV = ffiPtrVenumsizeiPtruintIOvdpauSurfaceNV glVDPAURegisterOutputSurfaceNVFunPtr
 
@@ -80,6 +113,11 @@
 
 {-# NOINLINE glVDPAURegisterOutputSurfaceNVFunPtr #-}
 
+-- | Usage: @'glVDPAURegisterVideoSurfaceNV' vdpSurface target numTextureNames textureNames@
+--
+-- The length of @textureNames@ should be @numTextureNames@.
+
+
 glVDPAURegisterVideoSurfaceNV :: MonadIO m => Ptr () -> GLenum -> GLsizei -> Ptr GLuint -> m GLvdpauSurfaceNV
 glVDPAURegisterVideoSurfaceNV = ffiPtrVenumsizeiPtruintIOvdpauSurfaceNV glVDPAURegisterVideoSurfaceNVFunPtr
 
@@ -88,6 +126,11 @@
 
 {-# NOINLINE glVDPAURegisterVideoSurfaceNVFunPtr #-}
 
+-- | Usage: @'glVDPAUSurfaceAccessNV' surface access@
+--
+-- The parameter @surface@ is a @vdpauSurfaceNV@.
+
+
 glVDPAUSurfaceAccessNV :: MonadIO m => GLvdpauSurfaceNV -> GLenum -> m ()
 glVDPAUSurfaceAccessNV = ffivdpauSurfaceNVenumIOV glVDPAUSurfaceAccessNVFunPtr
 
@@ -96,6 +139,13 @@
 
 {-# NOINLINE glVDPAUSurfaceAccessNVFunPtr #-}
 
+-- | Usage: @'glVDPAUUnmapSurfacesNV' numSurface surfaces@
+--
+-- The parameter @surfaces@ is a @vdpauSurfaceNV@.
+--
+-- The length of @surfaces@ should be @numSurface@.
+
+
 glVDPAUUnmapSurfacesNV :: MonadIO m => GLsizei -> Ptr GLvdpauSurfaceNV -> m ()
 glVDPAUUnmapSurfacesNV = ffisizeiPtrvdpauSurfaceNVIOV glVDPAUUnmapSurfacesNVFunPtr
 
@@ -103,6 +153,11 @@
 glVDPAUUnmapSurfacesNVFunPtr = unsafePerformIO (getProcAddress "glVDPAUUnmapSurfacesNV")
 
 {-# NOINLINE glVDPAUUnmapSurfacesNVFunPtr #-}
+
+-- | Usage: @'glVDPAUUnregisterSurfaceNV' surface@
+--
+-- The parameter @surface@ is a @vdpauSurfaceNV@.
+
 
 glVDPAUUnregisterSurfaceNV :: MonadIO m => GLvdpauSurfaceNV -> m ()
 glVDPAUUnregisterSurfaceNV = ffivdpauSurfaceNVIOV glVDPAUUnregisterSurfaceNVFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/VertexArrayRange.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/VertexArrayRange.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/VertexArrayRange.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/VertexArrayRange.hs
@@ -22,9 +22,15 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/vertex_array_range.txt GL_NV_vertex_array_range> extension is available.
+
 gl_NV_vertex_array_range :: Bool
 gl_NV_vertex_array_range = member "GL_NV_vertex_array_range" extensions
+{-# NOINLINE gl_NV_vertex_array_range #-}
 
+-- | Usage: @'glFlushVertexArrayRangeNV'@
+
+
 glFlushVertexArrayRangeNV :: MonadIO m => m ()
 glFlushVertexArrayRangeNV = ffiIOV glFlushVertexArrayRangeNVFunPtr
 
@@ -32,6 +38,11 @@
 glFlushVertexArrayRangeNVFunPtr = unsafePerformIO (getProcAddress "glFlushVertexArrayRangeNV")
 
 {-# NOINLINE glFlushVertexArrayRangeNVFunPtr #-}
+
+-- | Usage: @'glVertexArrayRangeNV' length pointer@
+--
+-- The length of @pointer@ should be @COMPSIZE(length)@.
+
 
 glVertexArrayRangeNV :: MonadIO m => GLsizei -> Ptr () -> m ()
 glVertexArrayRangeNV = ffisizeiPtrVIOV glVertexArrayRangeNVFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/VertexArrayRange2.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/VertexArrayRange2.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/VertexArrayRange2.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/VertexArrayRange2.hs
@@ -11,7 +11,10 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/vertex_array_range2.txt GL_NV_vertex_array_range2> extension is available.
+
 gl_NV_vertex_array_range2 :: Bool
 gl_NV_vertex_array_range2 = member "GL_NV_vertex_array_range2" extensions
+{-# NOINLINE gl_NV_vertex_array_range2 #-}
 
 pattern GL_VERTEX_ARRAY_RANGE_WITHOUT_FLUSH_NV = 0x8533
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/VertexAttribInteger64bit.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/VertexAttribInteger64bit.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/VertexAttribInteger64bit.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/VertexAttribInteger64bit.hs
@@ -37,9 +37,17 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/vertex_attrib_integer_64bit.txt GL_NV_vertex_attrib_integer_64bit> extension is available.
+
 gl_NV_vertex_attrib_integer_64bit :: Bool
 gl_NV_vertex_attrib_integer_64bit = member "GL_NV_vertex_attrib_integer_64bit" extensions
+{-# NOINLINE gl_NV_vertex_attrib_integer_64bit #-}
 
+-- | Usage: @'glGetVertexAttribLi64vNV' index pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
 glGetVertexAttribLi64vNV :: MonadIO m => GLuint -> GLenum -> Ptr GLint64EXT -> m ()
 glGetVertexAttribLi64vNV = ffiuintenumPtrint64EXTIOV glGetVertexAttribLi64vNVFunPtr
 
@@ -48,6 +56,11 @@
 
 {-# NOINLINE glGetVertexAttribLi64vNVFunPtr #-}
 
+-- | Usage: @'glGetVertexAttribLui64vNV' index pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
 glGetVertexAttribLui64vNV :: MonadIO m => GLuint -> GLenum -> Ptr GLuint64EXT -> m ()
 glGetVertexAttribLui64vNV = ffiuintenumPtruint64EXTIOV glGetVertexAttribLui64vNVFunPtr
 
@@ -56,6 +69,9 @@
 
 {-# NOINLINE glGetVertexAttribLui64vNVFunPtr #-}
 
+-- | Usage: @'glVertexAttribL1i64NV' index x@
+
+
 glVertexAttribL1i64NV :: MonadIO m => GLuint -> GLint64EXT -> m ()
 glVertexAttribL1i64NV = ffiuintint64EXTIOV glVertexAttribL1i64NVFunPtr
 
@@ -64,6 +80,11 @@
 
 {-# NOINLINE glVertexAttribL1i64NVFunPtr #-}
 
+-- | Usage: @'glVertexAttribL1i64vNV' index v@
+--
+-- The length of @v@ should be @1@.
+
+
 glVertexAttribL1i64vNV :: MonadIO m => GLuint -> Ptr GLint64EXT -> m ()
 glVertexAttribL1i64vNV = ffiuintPtrint64EXTIOV glVertexAttribL1i64vNVFunPtr
 
@@ -72,6 +93,9 @@
 
 {-# NOINLINE glVertexAttribL1i64vNVFunPtr #-}
 
+-- | Usage: @'glVertexAttribL1ui64NV' index x@
+
+
 glVertexAttribL1ui64NV :: MonadIO m => GLuint -> GLuint64EXT -> m ()
 glVertexAttribL1ui64NV = ffiuintuint64EXTIOV glVertexAttribL1ui64NVFunPtr
 
@@ -80,6 +104,11 @@
 
 {-# NOINLINE glVertexAttribL1ui64NVFunPtr #-}
 
+-- | Usage: @'glVertexAttribL1ui64vNV' index v@
+--
+-- The length of @v@ should be @1@.
+
+
 glVertexAttribL1ui64vNV :: MonadIO m => GLuint -> Ptr GLuint64EXT -> m ()
 glVertexAttribL1ui64vNV = ffiuintPtruint64EXTIOV glVertexAttribL1ui64vNVFunPtr
 
@@ -88,6 +117,9 @@
 
 {-# NOINLINE glVertexAttribL1ui64vNVFunPtr #-}
 
+-- | Usage: @'glVertexAttribL2i64NV' index x y@
+
+
 glVertexAttribL2i64NV :: MonadIO m => GLuint -> GLint64EXT -> GLint64EXT -> m ()
 glVertexAttribL2i64NV = ffiuintint64EXTint64EXTIOV glVertexAttribL2i64NVFunPtr
 
@@ -96,6 +128,11 @@
 
 {-# NOINLINE glVertexAttribL2i64NVFunPtr #-}
 
+-- | Usage: @'glVertexAttribL2i64vNV' index v@
+--
+-- The length of @v@ should be @2@.
+
+
 glVertexAttribL2i64vNV :: MonadIO m => GLuint -> Ptr GLint64EXT -> m ()
 glVertexAttribL2i64vNV = ffiuintPtrint64EXTIOV glVertexAttribL2i64vNVFunPtr
 
@@ -104,6 +141,9 @@
 
 {-# NOINLINE glVertexAttribL2i64vNVFunPtr #-}
 
+-- | Usage: @'glVertexAttribL2ui64NV' index x y@
+
+
 glVertexAttribL2ui64NV :: MonadIO m => GLuint -> GLuint64EXT -> GLuint64EXT -> m ()
 glVertexAttribL2ui64NV = ffiuintuint64EXTuint64EXTIOV glVertexAttribL2ui64NVFunPtr
 
@@ -112,6 +152,11 @@
 
 {-# NOINLINE glVertexAttribL2ui64NVFunPtr #-}
 
+-- | Usage: @'glVertexAttribL2ui64vNV' index v@
+--
+-- The length of @v@ should be @2@.
+
+
 glVertexAttribL2ui64vNV :: MonadIO m => GLuint -> Ptr GLuint64EXT -> m ()
 glVertexAttribL2ui64vNV = ffiuintPtruint64EXTIOV glVertexAttribL2ui64vNVFunPtr
 
@@ -120,6 +165,9 @@
 
 {-# NOINLINE glVertexAttribL2ui64vNVFunPtr #-}
 
+-- | Usage: @'glVertexAttribL3i64NV' index x y z@
+
+
 glVertexAttribL3i64NV :: MonadIO m => GLuint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> m ()
 glVertexAttribL3i64NV = ffiuintint64EXTint64EXTint64EXTIOV glVertexAttribL3i64NVFunPtr
 
@@ -128,6 +176,11 @@
 
 {-# NOINLINE glVertexAttribL3i64NVFunPtr #-}
 
+-- | Usage: @'glVertexAttribL3i64vNV' index v@
+--
+-- The length of @v@ should be @3@.
+
+
 glVertexAttribL3i64vNV :: MonadIO m => GLuint -> Ptr GLint64EXT -> m ()
 glVertexAttribL3i64vNV = ffiuintPtrint64EXTIOV glVertexAttribL3i64vNVFunPtr
 
@@ -136,6 +189,9 @@
 
 {-# NOINLINE glVertexAttribL3i64vNVFunPtr #-}
 
+-- | Usage: @'glVertexAttribL3ui64NV' index x y z@
+
+
 glVertexAttribL3ui64NV :: MonadIO m => GLuint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> m ()
 glVertexAttribL3ui64NV = ffiuintuint64EXTuint64EXTuint64EXTIOV glVertexAttribL3ui64NVFunPtr
 
@@ -144,6 +200,11 @@
 
 {-# NOINLINE glVertexAttribL3ui64NVFunPtr #-}
 
+-- | Usage: @'glVertexAttribL3ui64vNV' index v@
+--
+-- The length of @v@ should be @3@.
+
+
 glVertexAttribL3ui64vNV :: MonadIO m => GLuint -> Ptr GLuint64EXT -> m ()
 glVertexAttribL3ui64vNV = ffiuintPtruint64EXTIOV glVertexAttribL3ui64vNVFunPtr
 
@@ -152,6 +213,9 @@
 
 {-# NOINLINE glVertexAttribL3ui64vNVFunPtr #-}
 
+-- | Usage: @'glVertexAttribL4i64NV' index x y z w@
+
+
 glVertexAttribL4i64NV :: MonadIO m => GLuint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> GLint64EXT -> m ()
 glVertexAttribL4i64NV = ffiuintint64EXTint64EXTint64EXTint64EXTIOV glVertexAttribL4i64NVFunPtr
 
@@ -160,6 +224,11 @@
 
 {-# NOINLINE glVertexAttribL4i64NVFunPtr #-}
 
+-- | Usage: @'glVertexAttribL4i64vNV' index v@
+--
+-- The length of @v@ should be @4@.
+
+
 glVertexAttribL4i64vNV :: MonadIO m => GLuint -> Ptr GLint64EXT -> m ()
 glVertexAttribL4i64vNV = ffiuintPtrint64EXTIOV glVertexAttribL4i64vNVFunPtr
 
@@ -168,6 +237,9 @@
 
 {-# NOINLINE glVertexAttribL4i64vNVFunPtr #-}
 
+-- | Usage: @'glVertexAttribL4ui64NV' index x y z w@
+
+
 glVertexAttribL4ui64NV :: MonadIO m => GLuint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> m ()
 glVertexAttribL4ui64NV = ffiuintuint64EXTuint64EXTuint64EXTuint64EXTIOV glVertexAttribL4ui64NVFunPtr
 
@@ -176,6 +248,11 @@
 
 {-# NOINLINE glVertexAttribL4ui64NVFunPtr #-}
 
+-- | Usage: @'glVertexAttribL4ui64vNV' index v@
+--
+-- The length of @v@ should be @4@.
+
+
 glVertexAttribL4ui64vNV :: MonadIO m => GLuint -> Ptr GLuint64EXT -> m ()
 glVertexAttribL4ui64vNV = ffiuintPtruint64EXTIOV glVertexAttribL4ui64vNVFunPtr
 
@@ -183,6 +260,9 @@
 glVertexAttribL4ui64vNVFunPtr = unsafePerformIO (getProcAddress "glVertexAttribL4ui64vNV")
 
 {-# NOINLINE glVertexAttribL4ui64vNVFunPtr #-}
+
+-- | Usage: @'glVertexAttribLFormatNV' index size type stride@
+
 
 glVertexAttribLFormatNV :: MonadIO m => GLuint -> GLint -> GLenum -> GLsizei -> m ()
 glVertexAttribLFormatNV = ffiuintintenumsizeiIOV glVertexAttribLFormatNVFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/VertexBufferUnifiedMemory.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/VertexBufferUnifiedMemory.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/VertexBufferUnifiedMemory.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/VertexBufferUnifiedMemory.hs
@@ -52,9 +52,17 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/vertex_buffer_unified_memory.txt GL_NV_vertex_buffer_unified_memory> extension is available.
+
 gl_NV_vertex_buffer_unified_memory :: Bool
 gl_NV_vertex_buffer_unified_memory = member "GL_NV_vertex_buffer_unified_memory" extensions
+{-# NOINLINE gl_NV_vertex_buffer_unified_memory #-}
 
+-- | Usage: @'glBufferAddressRangeNV' pname index address length@
+--
+-- The parameter @length@ is a @BufferSize@.
+
+
 glBufferAddressRangeNV :: MonadIO m => GLenum -> GLuint -> GLuint64EXT -> GLsizeiptr -> m ()
 glBufferAddressRangeNV = ffienumuintuint64EXTsizeiptrIOV glBufferAddressRangeNVFunPtr
 
@@ -63,6 +71,9 @@
 
 {-# NOINLINE glBufferAddressRangeNVFunPtr #-}
 
+-- | Usage: @'glColorFormatNV' size type stride@
+
+
 glColorFormatNV :: MonadIO m => GLint -> GLenum -> GLsizei -> m ()
 glColorFormatNV = ffiintenumsizeiIOV glColorFormatNVFunPtr
 
@@ -71,6 +82,9 @@
 
 {-# NOINLINE glColorFormatNVFunPtr #-}
 
+-- | Usage: @'glEdgeFlagFormatNV' stride@
+
+
 glEdgeFlagFormatNV :: MonadIO m => GLsizei -> m ()
 glEdgeFlagFormatNV = ffisizeiIOV glEdgeFlagFormatNVFunPtr
 
@@ -79,6 +93,9 @@
 
 {-# NOINLINE glEdgeFlagFormatNVFunPtr #-}
 
+-- | Usage: @'glFogCoordFormatNV' type stride@
+
+
 glFogCoordFormatNV :: MonadIO m => GLenum -> GLsizei -> m ()
 glFogCoordFormatNV = ffienumsizeiIOV glFogCoordFormatNVFunPtr
 
@@ -87,6 +104,11 @@
 
 {-# NOINLINE glFogCoordFormatNVFunPtr #-}
 
+-- | Usage: @'glGetIntegerui64i_vNV' value index result@
+--
+-- The length of @result@ should be @COMPSIZE(value)@.
+
+
 glGetIntegerui64i_vNV :: MonadIO m => GLenum -> GLuint -> Ptr GLuint64EXT -> m ()
 glGetIntegerui64i_vNV = ffienumuintPtruint64EXTIOV glGetIntegerui64i_vNVFunPtr
 
@@ -95,6 +117,9 @@
 
 {-# NOINLINE glGetIntegerui64i_vNVFunPtr #-}
 
+-- | Usage: @'glIndexFormatNV' type stride@
+
+
 glIndexFormatNV :: MonadIO m => GLenum -> GLsizei -> m ()
 glIndexFormatNV = ffienumsizeiIOV glIndexFormatNVFunPtr
 
@@ -103,6 +128,9 @@
 
 {-# NOINLINE glIndexFormatNVFunPtr #-}
 
+-- | Usage: @'glNormalFormatNV' type stride@
+
+
 glNormalFormatNV :: MonadIO m => GLenum -> GLsizei -> m ()
 glNormalFormatNV = ffienumsizeiIOV glNormalFormatNVFunPtr
 
@@ -111,6 +139,9 @@
 
 {-# NOINLINE glNormalFormatNVFunPtr #-}
 
+-- | Usage: @'glSecondaryColorFormatNV' size type stride@
+
+
 glSecondaryColorFormatNV :: MonadIO m => GLint -> GLenum -> GLsizei -> m ()
 glSecondaryColorFormatNV = ffiintenumsizeiIOV glSecondaryColorFormatNVFunPtr
 
@@ -119,6 +150,9 @@
 
 {-# NOINLINE glSecondaryColorFormatNVFunPtr #-}
 
+-- | Usage: @'glTexCoordFormatNV' size type stride@
+
+
 glTexCoordFormatNV :: MonadIO m => GLint -> GLenum -> GLsizei -> m ()
 glTexCoordFormatNV = ffiintenumsizeiIOV glTexCoordFormatNVFunPtr
 
@@ -127,6 +161,11 @@
 
 {-# NOINLINE glTexCoordFormatNVFunPtr #-}
 
+-- | Usage: @'glVertexAttribFormatNV' index size type normalized stride@
+--
+-- The parameter @normalized@ is a @Boolean@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FALSE', 'Graphics.GL.Raw.Internal.Shared.GL_TRUE'.
+
+
 glVertexAttribFormatNV :: MonadIO m => GLuint -> GLint -> GLenum -> GLboolean -> GLsizei -> m ()
 glVertexAttribFormatNV = ffiuintintenumbooleansizeiIOV glVertexAttribFormatNVFunPtr
 
@@ -135,6 +174,9 @@
 
 {-# NOINLINE glVertexAttribFormatNVFunPtr #-}
 
+-- | Usage: @'glVertexAttribIFormatNV' index size type stride@
+
+
 glVertexAttribIFormatNV :: MonadIO m => GLuint -> GLint -> GLenum -> GLsizei -> m ()
 glVertexAttribIFormatNV = ffiuintintenumsizeiIOV glVertexAttribIFormatNVFunPtr
 
@@ -142,6 +184,9 @@
 glVertexAttribIFormatNVFunPtr = unsafePerformIO (getProcAddress "glVertexAttribIFormatNV")
 
 {-# NOINLINE glVertexAttribIFormatNVFunPtr #-}
+
+-- | Usage: @'glVertexFormatNV' size type stride@
+
 
 glVertexFormatNV :: MonadIO m => GLint -> GLenum -> GLsizei -> m ()
 glVertexFormatNV = ffiintenumsizeiIOV glVertexFormatNVFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/VertexProgram.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/VertexProgram.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/VertexProgram.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/VertexProgram.hs
@@ -162,9 +162,21 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/vertex_program.txt GL_NV_vertex_program> extension is available.
+
 gl_NV_vertex_program :: Bool
 gl_NV_vertex_program = member "GL_NV_vertex_program" extensions
+{-# NOINLINE gl_NV_vertex_program #-}
 
+-- | Usage: @'glAreProgramsResidentNV' n programs residences@
+--
+-- The parameter @residences@ is a @Boolean@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FALSE', 'Graphics.GL.Raw.Internal.Shared.GL_TRUE'.
+--
+-- The length of @programs@ should be @n@.
+--
+-- The length of @residences@ should be @n@.
+
+
 glAreProgramsResidentNV :: MonadIO m => GLsizei -> Ptr GLuint -> Ptr GLboolean -> m GLboolean
 glAreProgramsResidentNV = ffisizeiPtruintPtrbooleanIOboolean glAreProgramsResidentNVFunPtr
 
@@ -173,6 +185,13 @@
 
 {-# NOINLINE glAreProgramsResidentNVFunPtr #-}
 
+-- | Usage: @'glBindProgramNV' target id@
+--
+-- The parameter @target@ is a @VertexAttribEnumNV@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glBindProgramARB'.
+
+
 glBindProgramNV :: MonadIO m => GLenum -> GLuint -> m ()
 glBindProgramNV = ffienumuintIOV glBindProgramNVFunPtr
 
@@ -181,6 +200,13 @@
 
 {-# NOINLINE glBindProgramNVFunPtr #-}
 
+-- | Usage: @'glDeleteProgramsNV' n programs@
+--
+-- The length of @programs@ should be @n@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glDeleteProgramsARB'.
+
+
 glDeleteProgramsNV :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
 glDeleteProgramsNV = ffisizeiPtruintIOV glDeleteProgramsNVFunPtr
 
@@ -189,6 +215,13 @@
 
 {-# NOINLINE glDeleteProgramsNVFunPtr #-}
 
+-- | Usage: @'glExecuteProgramNV' target id params@
+--
+-- The parameter @target@ is a @VertexAttribEnumNV@.
+--
+-- The length of @params@ should be @4@.
+
+
 glExecuteProgramNV :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()
 glExecuteProgramNV = ffienumuintPtrfloatIOV glExecuteProgramNVFunPtr
 
@@ -197,6 +230,13 @@
 
 {-# NOINLINE glExecuteProgramNVFunPtr #-}
 
+-- | Usage: @'glGenProgramsNV' n programs@
+--
+-- The length of @programs@ should be @n@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glGenProgramsARB'.
+
+
 glGenProgramsNV :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
 glGenProgramsNV = ffisizeiPtruintIOV glGenProgramsNVFunPtr
 
@@ -205,6 +245,15 @@
 
 {-# NOINLINE glGenProgramsNVFunPtr #-}
 
+-- | Usage: @'glGetProgramParameterdvNV' target index pname params@
+--
+-- The parameter @target@ is a @VertexAttribEnumNV@.
+--
+-- The parameter @pname@ is a @VertexAttribEnumNV@.
+--
+-- The length of @params@ should be @4@.
+
+
 glGetProgramParameterdvNV :: MonadIO m => GLenum -> GLuint -> GLenum -> Ptr GLdouble -> m ()
 glGetProgramParameterdvNV = ffienumuintenumPtrdoubleIOV glGetProgramParameterdvNVFunPtr
 
@@ -213,6 +262,15 @@
 
 {-# NOINLINE glGetProgramParameterdvNVFunPtr #-}
 
+-- | Usage: @'glGetProgramParameterfvNV' target index pname params@
+--
+-- The parameter @target@ is a @VertexAttribEnumNV@.
+--
+-- The parameter @pname@ is a @VertexAttribEnumNV@.
+--
+-- The length of @params@ should be @4@.
+
+
 glGetProgramParameterfvNV :: MonadIO m => GLenum -> GLuint -> GLenum -> Ptr GLfloat -> m ()
 glGetProgramParameterfvNV = ffienumuintenumPtrfloatIOV glGetProgramParameterfvNVFunPtr
 
@@ -221,6 +279,15 @@
 
 {-# NOINLINE glGetProgramParameterfvNVFunPtr #-}
 
+-- | Usage: @'glGetProgramStringNV' id pname program@
+--
+-- The parameter @pname@ is a @VertexAttribEnumNV@.
+--
+-- The parameter @program@ is a @ProgramCharacterNV@.
+--
+-- The length of @program@ should be @COMPSIZE(id,pname)@.
+
+
 glGetProgramStringNV :: MonadIO m => GLuint -> GLenum -> Ptr GLubyte -> m ()
 glGetProgramStringNV = ffiuintenumPtrubyteIOV glGetProgramStringNVFunPtr
 
@@ -229,6 +296,13 @@
 
 {-# NOINLINE glGetProgramStringNVFunPtr #-}
 
+-- | Usage: @'glGetProgramivNV' id pname params@
+--
+-- The parameter @pname@ is a @VertexAttribEnumNV@.
+--
+-- The length of @params@ should be @4@.
+
+
 glGetProgramivNV :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
 glGetProgramivNV = ffiuintenumPtrintIOV glGetProgramivNVFunPtr
 
@@ -237,6 +311,15 @@
 
 {-# NOINLINE glGetProgramivNVFunPtr #-}
 
+-- | Usage: @'glGetTrackMatrixivNV' target address pname params@
+--
+-- The parameter @target@ is a @VertexAttribEnumNV@.
+--
+-- The parameter @pname@ is a @VertexAttribEnumNV@.
+--
+-- The length of @params@ should be @1@.
+
+
 glGetTrackMatrixivNV :: MonadIO m => GLenum -> GLuint -> GLenum -> Ptr GLint -> m ()
 glGetTrackMatrixivNV = ffienumuintenumPtrintIOV glGetTrackMatrixivNVFunPtr
 
@@ -245,14 +328,32 @@
 
 {-# NOINLINE glGetTrackMatrixivNVFunPtr #-}
 
-glGetVertexAttribPointervNV :: MonadIO m => GLuint -> GLenum -> Ptr () -> m ()
-glGetVertexAttribPointervNV = ffiuintenumPtrVIOV glGetVertexAttribPointervNVFunPtr
+-- | Usage: @'glGetVertexAttribPointervNV' index pname pointer@
+--
+-- The parameter @pname@ is a @VertexAttribEnumNV@.
+--
+-- The length of @pointer@ should be @1@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glGetVertexAttribPointerv'.
 
-glGetVertexAttribPointervNVFunPtr :: FunPtr (GLuint -> GLenum -> Ptr () -> IO ())
+
+glGetVertexAttribPointervNV :: MonadIO m => GLuint -> GLenum -> Ptr (Ptr ()) -> m ()
+glGetVertexAttribPointervNV = ffiuintenumPtrPtrVIOV glGetVertexAttribPointervNVFunPtr
+
+glGetVertexAttribPointervNVFunPtr :: FunPtr (GLuint -> GLenum -> Ptr (Ptr ()) -> IO ())
 glGetVertexAttribPointervNVFunPtr = unsafePerformIO (getProcAddress "glGetVertexAttribPointervNV")
 
 {-# NOINLINE glGetVertexAttribPointervNVFunPtr #-}
 
+-- | Usage: @'glGetVertexAttribdvNV' index pname params@
+--
+-- The parameter @pname@ is a @VertexAttribEnumNV@.
+--
+-- The length of @params@ should be @1@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glGetVertexAttribdv'.
+
+
 glGetVertexAttribdvNV :: MonadIO m => GLuint -> GLenum -> Ptr GLdouble -> m ()
 glGetVertexAttribdvNV = ffiuintenumPtrdoubleIOV glGetVertexAttribdvNVFunPtr
 
@@ -261,6 +362,15 @@
 
 {-# NOINLINE glGetVertexAttribdvNVFunPtr #-}
 
+-- | Usage: @'glGetVertexAttribfvNV' index pname params@
+--
+-- The parameter @pname@ is a @VertexAttribEnumNV@.
+--
+-- The length of @params@ should be @1@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glGetVertexAttribfv'.
+
+
 glGetVertexAttribfvNV :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()
 glGetVertexAttribfvNV = ffiuintenumPtrfloatIOV glGetVertexAttribfvNVFunPtr
 
@@ -269,6 +379,15 @@
 
 {-# NOINLINE glGetVertexAttribfvNVFunPtr #-}
 
+-- | Usage: @'glGetVertexAttribivNV' index pname params@
+--
+-- The parameter @pname@ is a @VertexAttribEnumNV@.
+--
+-- The length of @params@ should be @1@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glGetVertexAttribiv'.
+
+
 glGetVertexAttribivNV :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
 glGetVertexAttribivNV = ffiuintenumPtrintIOV glGetVertexAttribivNVFunPtr
 
@@ -277,6 +396,11 @@
 
 {-# NOINLINE glGetVertexAttribivNVFunPtr #-}
 
+-- | Usage: @'glIsProgramNV' id@
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glIsProgramARB'.
+
+
 glIsProgramNV :: MonadIO m => GLuint -> m GLboolean
 glIsProgramNV = ffiuintIOboolean glIsProgramNVFunPtr
 
@@ -285,6 +409,13 @@
 
 {-# NOINLINE glIsProgramNVFunPtr #-}
 
+-- | Usage: @'glLoadProgramNV' target id len program@
+--
+-- The parameter @target@ is a @VertexAttribEnumNV@.
+--
+-- The length of @program@ should be @len@.
+
+
 glLoadProgramNV :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLubyte -> m ()
 glLoadProgramNV = ffienumuintsizeiPtrubyteIOV glLoadProgramNVFunPtr
 
@@ -293,6 +424,13 @@
 
 {-# NOINLINE glLoadProgramNVFunPtr #-}
 
+-- | Usage: @'glProgramParameter4dNV' target index x y z w@
+--
+-- The parameter @target@ is a @VertexAttribEnumNV@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Extension.NV.VertexProgram.glProgramParameter4dvNV'.
+
+
 glProgramParameter4dNV :: MonadIO m => GLenum -> GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
 glProgramParameter4dNV = ffienumuintdoubledoubledoubledoubleIOV glProgramParameter4dNVFunPtr
 
@@ -301,6 +439,13 @@
 
 {-# NOINLINE glProgramParameter4dNVFunPtr #-}
 
+-- | Usage: @'glProgramParameter4dvNV' target index v@
+--
+-- The parameter @target@ is a @VertexAttribEnumNV@.
+--
+-- The length of @v@ should be @4@.
+
+
 glProgramParameter4dvNV :: MonadIO m => GLenum -> GLuint -> Ptr GLdouble -> m ()
 glProgramParameter4dvNV = ffienumuintPtrdoubleIOV glProgramParameter4dvNVFunPtr
 
@@ -309,6 +454,13 @@
 
 {-# NOINLINE glProgramParameter4dvNVFunPtr #-}
 
+-- | Usage: @'glProgramParameter4fNV' target index x y z w@
+--
+-- The parameter @target@ is a @VertexAttribEnumNV@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Extension.NV.VertexProgram.glProgramParameter4fvNV'.
+
+
 glProgramParameter4fNV :: MonadIO m => GLenum -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
 glProgramParameter4fNV = ffienumuintfloatfloatfloatfloatIOV glProgramParameter4fNVFunPtr
 
@@ -317,6 +469,13 @@
 
 {-# NOINLINE glProgramParameter4fNVFunPtr #-}
 
+-- | Usage: @'glProgramParameter4fvNV' target index v@
+--
+-- The parameter @target@ is a @VertexAttribEnumNV@.
+--
+-- The length of @v@ should be @4@.
+
+
 glProgramParameter4fvNV :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()
 glProgramParameter4fvNV = ffienumuintPtrfloatIOV glProgramParameter4fvNVFunPtr
 
@@ -325,6 +484,13 @@
 
 {-# NOINLINE glProgramParameter4fvNVFunPtr #-}
 
+-- | Usage: @'glProgramParameters4dvNV' target index count v@
+--
+-- The parameter @target@ is a @VertexAttribEnumNV@.
+--
+-- The length of @v@ should be @count*4@.
+
+
 glProgramParameters4dvNV :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLdouble -> m ()
 glProgramParameters4dvNV = ffienumuintsizeiPtrdoubleIOV glProgramParameters4dvNVFunPtr
 
@@ -333,6 +499,13 @@
 
 {-# NOINLINE glProgramParameters4dvNVFunPtr #-}
 
+-- | Usage: @'glProgramParameters4fvNV' target index count v@
+--
+-- The parameter @target@ is a @VertexAttribEnumNV@.
+--
+-- The length of @v@ should be @count*4@.
+
+
 glProgramParameters4fvNV :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLfloat -> m ()
 glProgramParameters4fvNV = ffienumuintsizeiPtrfloatIOV glProgramParameters4fvNVFunPtr
 
@@ -341,6 +514,11 @@
 
 {-# NOINLINE glProgramParameters4fvNVFunPtr #-}
 
+-- | Usage: @'glRequestResidentProgramsNV' n programs@
+--
+-- The length of @programs@ should be @n@.
+
+
 glRequestResidentProgramsNV :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
 glRequestResidentProgramsNV = ffisizeiPtruintIOV glRequestResidentProgramsNVFunPtr
 
@@ -349,6 +527,15 @@
 
 {-# NOINLINE glRequestResidentProgramsNVFunPtr #-}
 
+-- | Usage: @'glTrackMatrixNV' target address matrix transform@
+--
+-- The parameter @target@ is a @VertexAttribEnumNV@.
+--
+-- The parameter @matrix@ is a @VertexAttribEnumNV@.
+--
+-- The parameter @transform@ is a @VertexAttribEnumNV@.
+
+
 glTrackMatrixNV :: MonadIO m => GLenum -> GLuint -> GLenum -> GLenum -> m ()
 glTrackMatrixNV = ffienumuintenumenumIOV glTrackMatrixNVFunPtr
 
@@ -357,6 +544,13 @@
 
 {-# NOINLINE glTrackMatrixNVFunPtr #-}
 
+-- | Usage: @'glVertexAttrib1dNV' index x@
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glVertexAttrib1d'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Extension.NV.VertexProgram.glVertexAttrib1dvNV'.
+
+
 glVertexAttrib1dNV :: MonadIO m => GLuint -> GLdouble -> m ()
 glVertexAttrib1dNV = ffiuintdoubleIOV glVertexAttrib1dNVFunPtr
 
@@ -365,6 +559,13 @@
 
 {-# NOINLINE glVertexAttrib1dNVFunPtr #-}
 
+-- | Usage: @'glVertexAttrib1dvNV' index v@
+--
+-- The length of @v@ should be @1@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glVertexAttrib1dv'.
+
+
 glVertexAttrib1dvNV :: MonadIO m => GLuint -> Ptr GLdouble -> m ()
 glVertexAttrib1dvNV = ffiuintPtrdoubleIOV glVertexAttrib1dvNVFunPtr
 
@@ -373,6 +574,13 @@
 
 {-# NOINLINE glVertexAttrib1dvNVFunPtr #-}
 
+-- | Usage: @'glVertexAttrib1fNV' index x@
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glVertexAttrib1f'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Extension.NV.VertexProgram.glVertexAttrib1fvNV'.
+
+
 glVertexAttrib1fNV :: MonadIO m => GLuint -> GLfloat -> m ()
 glVertexAttrib1fNV = ffiuintfloatIOV glVertexAttrib1fNVFunPtr
 
@@ -381,6 +589,13 @@
 
 {-# NOINLINE glVertexAttrib1fNVFunPtr #-}
 
+-- | Usage: @'glVertexAttrib1fvNV' index v@
+--
+-- The length of @v@ should be @1@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glVertexAttrib1fv'.
+
+
 glVertexAttrib1fvNV :: MonadIO m => GLuint -> Ptr GLfloat -> m ()
 glVertexAttrib1fvNV = ffiuintPtrfloatIOV glVertexAttrib1fvNVFunPtr
 
@@ -389,6 +604,13 @@
 
 {-# NOINLINE glVertexAttrib1fvNVFunPtr #-}
 
+-- | Usage: @'glVertexAttrib1sNV' index x@
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glVertexAttrib1s'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Extension.NV.VertexProgram.glVertexAttrib1svNV'.
+
+
 glVertexAttrib1sNV :: MonadIO m => GLuint -> GLshort -> m ()
 glVertexAttrib1sNV = ffiuintshortIOV glVertexAttrib1sNVFunPtr
 
@@ -397,6 +619,13 @@
 
 {-# NOINLINE glVertexAttrib1sNVFunPtr #-}
 
+-- | Usage: @'glVertexAttrib1svNV' index v@
+--
+-- The length of @v@ should be @1@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glVertexAttrib1sv'.
+
+
 glVertexAttrib1svNV :: MonadIO m => GLuint -> Ptr GLshort -> m ()
 glVertexAttrib1svNV = ffiuintPtrshortIOV glVertexAttrib1svNVFunPtr
 
@@ -405,6 +634,13 @@
 
 {-# NOINLINE glVertexAttrib1svNVFunPtr #-}
 
+-- | Usage: @'glVertexAttrib2dNV' index x y@
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glVertexAttrib2d'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Extension.NV.VertexProgram.glVertexAttrib2dvNV'.
+
+
 glVertexAttrib2dNV :: MonadIO m => GLuint -> GLdouble -> GLdouble -> m ()
 glVertexAttrib2dNV = ffiuintdoubledoubleIOV glVertexAttrib2dNVFunPtr
 
@@ -413,6 +649,13 @@
 
 {-# NOINLINE glVertexAttrib2dNVFunPtr #-}
 
+-- | Usage: @'glVertexAttrib2dvNV' index v@
+--
+-- The length of @v@ should be @2@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glVertexAttrib2dv'.
+
+
 glVertexAttrib2dvNV :: MonadIO m => GLuint -> Ptr GLdouble -> m ()
 glVertexAttrib2dvNV = ffiuintPtrdoubleIOV glVertexAttrib2dvNVFunPtr
 
@@ -421,6 +664,13 @@
 
 {-# NOINLINE glVertexAttrib2dvNVFunPtr #-}
 
+-- | Usage: @'glVertexAttrib2fNV' index x y@
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glVertexAttrib2f'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Extension.NV.VertexProgram.glVertexAttrib2fvNV'.
+
+
 glVertexAttrib2fNV :: MonadIO m => GLuint -> GLfloat -> GLfloat -> m ()
 glVertexAttrib2fNV = ffiuintfloatfloatIOV glVertexAttrib2fNVFunPtr
 
@@ -429,6 +679,13 @@
 
 {-# NOINLINE glVertexAttrib2fNVFunPtr #-}
 
+-- | Usage: @'glVertexAttrib2fvNV' index v@
+--
+-- The length of @v@ should be @2@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glVertexAttrib2fv'.
+
+
 glVertexAttrib2fvNV :: MonadIO m => GLuint -> Ptr GLfloat -> m ()
 glVertexAttrib2fvNV = ffiuintPtrfloatIOV glVertexAttrib2fvNVFunPtr
 
@@ -437,6 +694,13 @@
 
 {-# NOINLINE glVertexAttrib2fvNVFunPtr #-}
 
+-- | Usage: @'glVertexAttrib2sNV' index x y@
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glVertexAttrib2s'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Extension.NV.VertexProgram.glVertexAttrib2svNV'.
+
+
 glVertexAttrib2sNV :: MonadIO m => GLuint -> GLshort -> GLshort -> m ()
 glVertexAttrib2sNV = ffiuintshortshortIOV glVertexAttrib2sNVFunPtr
 
@@ -445,6 +709,13 @@
 
 {-# NOINLINE glVertexAttrib2sNVFunPtr #-}
 
+-- | Usage: @'glVertexAttrib2svNV' index v@
+--
+-- The length of @v@ should be @2@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glVertexAttrib2sv'.
+
+
 glVertexAttrib2svNV :: MonadIO m => GLuint -> Ptr GLshort -> m ()
 glVertexAttrib2svNV = ffiuintPtrshortIOV glVertexAttrib2svNVFunPtr
 
@@ -453,6 +724,13 @@
 
 {-# NOINLINE glVertexAttrib2svNVFunPtr #-}
 
+-- | Usage: @'glVertexAttrib3dNV' index x y z@
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glVertexAttrib3d'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Extension.NV.VertexProgram.glVertexAttrib3dvNV'.
+
+
 glVertexAttrib3dNV :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> m ()
 glVertexAttrib3dNV = ffiuintdoubledoubledoubleIOV glVertexAttrib3dNVFunPtr
 
@@ -461,6 +739,13 @@
 
 {-# NOINLINE glVertexAttrib3dNVFunPtr #-}
 
+-- | Usage: @'glVertexAttrib3dvNV' index v@
+--
+-- The length of @v@ should be @3@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glVertexAttrib3dv'.
+
+
 glVertexAttrib3dvNV :: MonadIO m => GLuint -> Ptr GLdouble -> m ()
 glVertexAttrib3dvNV = ffiuintPtrdoubleIOV glVertexAttrib3dvNVFunPtr
 
@@ -469,6 +754,13 @@
 
 {-# NOINLINE glVertexAttrib3dvNVFunPtr #-}
 
+-- | Usage: @'glVertexAttrib3fNV' index x y z@
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glVertexAttrib3f'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Extension.NV.VertexProgram.glVertexAttrib3fvNV'.
+
+
 glVertexAttrib3fNV :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> m ()
 glVertexAttrib3fNV = ffiuintfloatfloatfloatIOV glVertexAttrib3fNVFunPtr
 
@@ -477,6 +769,13 @@
 
 {-# NOINLINE glVertexAttrib3fNVFunPtr #-}
 
+-- | Usage: @'glVertexAttrib3fvNV' index v@
+--
+-- The length of @v@ should be @3@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glVertexAttrib3fv'.
+
+
 glVertexAttrib3fvNV :: MonadIO m => GLuint -> Ptr GLfloat -> m ()
 glVertexAttrib3fvNV = ffiuintPtrfloatIOV glVertexAttrib3fvNVFunPtr
 
@@ -485,6 +784,13 @@
 
 {-# NOINLINE glVertexAttrib3fvNVFunPtr #-}
 
+-- | Usage: @'glVertexAttrib3sNV' index x y z@
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glVertexAttrib3s'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Extension.NV.VertexProgram.glVertexAttrib3svNV'.
+
+
 glVertexAttrib3sNV :: MonadIO m => GLuint -> GLshort -> GLshort -> GLshort -> m ()
 glVertexAttrib3sNV = ffiuintshortshortshortIOV glVertexAttrib3sNVFunPtr
 
@@ -493,6 +799,13 @@
 
 {-# NOINLINE glVertexAttrib3sNVFunPtr #-}
 
+-- | Usage: @'glVertexAttrib3svNV' index v@
+--
+-- The length of @v@ should be @3@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glVertexAttrib3sv'.
+
+
 glVertexAttrib3svNV :: MonadIO m => GLuint -> Ptr GLshort -> m ()
 glVertexAttrib3svNV = ffiuintPtrshortIOV glVertexAttrib3svNVFunPtr
 
@@ -501,6 +814,13 @@
 
 {-# NOINLINE glVertexAttrib3svNVFunPtr #-}
 
+-- | Usage: @'glVertexAttrib4dNV' index x y z w@
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glVertexAttrib4d'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Extension.NV.VertexProgram.glVertexAttrib4dvNV'.
+
+
 glVertexAttrib4dNV :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
 glVertexAttrib4dNV = ffiuintdoubledoubledoubledoubleIOV glVertexAttrib4dNVFunPtr
 
@@ -509,6 +829,13 @@
 
 {-# NOINLINE glVertexAttrib4dNVFunPtr #-}
 
+-- | Usage: @'glVertexAttrib4dvNV' index v@
+--
+-- The length of @v@ should be @4@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glVertexAttrib4dv'.
+
+
 glVertexAttrib4dvNV :: MonadIO m => GLuint -> Ptr GLdouble -> m ()
 glVertexAttrib4dvNV = ffiuintPtrdoubleIOV glVertexAttrib4dvNVFunPtr
 
@@ -517,6 +844,13 @@
 
 {-# NOINLINE glVertexAttrib4dvNVFunPtr #-}
 
+-- | Usage: @'glVertexAttrib4fNV' index x y z w@
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glVertexAttrib4f'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Extension.NV.VertexProgram.glVertexAttrib4fvNV'.
+
+
 glVertexAttrib4fNV :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
 glVertexAttrib4fNV = ffiuintfloatfloatfloatfloatIOV glVertexAttrib4fNVFunPtr
 
@@ -525,6 +859,13 @@
 
 {-# NOINLINE glVertexAttrib4fNVFunPtr #-}
 
+-- | Usage: @'glVertexAttrib4fvNV' index v@
+--
+-- The length of @v@ should be @4@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glVertexAttrib4fv'.
+
+
 glVertexAttrib4fvNV :: MonadIO m => GLuint -> Ptr GLfloat -> m ()
 glVertexAttrib4fvNV = ffiuintPtrfloatIOV glVertexAttrib4fvNVFunPtr
 
@@ -533,6 +874,13 @@
 
 {-# NOINLINE glVertexAttrib4fvNVFunPtr #-}
 
+-- | Usage: @'glVertexAttrib4sNV' index x y z w@
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glVertexAttrib4s'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Extension.NV.VertexProgram.glVertexAttrib4svNV'.
+
+
 glVertexAttrib4sNV :: MonadIO m => GLuint -> GLshort -> GLshort -> GLshort -> GLshort -> m ()
 glVertexAttrib4sNV = ffiuintshortshortshortshortIOV glVertexAttrib4sNVFunPtr
 
@@ -541,6 +889,13 @@
 
 {-# NOINLINE glVertexAttrib4sNVFunPtr #-}
 
+-- | Usage: @'glVertexAttrib4svNV' index v@
+--
+-- The length of @v@ should be @4@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glVertexAttrib4sv'.
+
+
 glVertexAttrib4svNV :: MonadIO m => GLuint -> Ptr GLshort -> m ()
 glVertexAttrib4svNV = ffiuintPtrshortIOV glVertexAttrib4svNVFunPtr
 
@@ -549,6 +904,21 @@
 
 {-# NOINLINE glVertexAttrib4svNVFunPtr #-}
 
+-- | Usage: @'glVertexAttrib4ubNV' index x y z w@
+--
+-- The parameter @x@ is a @ColorUB@.
+--
+-- The parameter @y@ is a @ColorUB@.
+--
+-- The parameter @z@ is a @ColorUB@.
+--
+-- The parameter @w@ is a @ColorUB@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glVertexAttrib4Nub'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Extension.NV.VertexProgram.glVertexAttrib4ubvNV'.
+
+
 glVertexAttrib4ubNV :: MonadIO m => GLuint -> GLubyte -> GLubyte -> GLubyte -> GLubyte -> m ()
 glVertexAttrib4ubNV = ffiuintubyteubyteubyteubyteIOV glVertexAttrib4ubNVFunPtr
 
@@ -557,6 +927,15 @@
 
 {-# NOINLINE glVertexAttrib4ubNVFunPtr #-}
 
+-- | Usage: @'glVertexAttrib4ubvNV' index v@
+--
+-- The parameter @v@ is a @ColorUB@.
+--
+-- The length of @v@ should be @4@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glVertexAttrib4Nubv'.
+
+
 glVertexAttrib4ubvNV :: MonadIO m => GLuint -> Ptr GLubyte -> m ()
 glVertexAttrib4ubvNV = ffiuintPtrubyteIOV glVertexAttrib4ubvNVFunPtr
 
@@ -565,6 +944,13 @@
 
 {-# NOINLINE glVertexAttrib4ubvNVFunPtr #-}
 
+-- | Usage: @'glVertexAttribPointerNV' index fsize type stride pointer@
+--
+-- The parameter @type@ is a @VertexAttribEnumNV@.
+--
+-- The length of @pointer@ should be @COMPSIZE(fsize,type,stride)@.
+
+
 glVertexAttribPointerNV :: MonadIO m => GLuint -> GLint -> GLenum -> GLsizei -> Ptr () -> m ()
 glVertexAttribPointerNV = ffiuintintenumsizeiPtrVIOV glVertexAttribPointerNVFunPtr
 
@@ -573,6 +959,11 @@
 
 {-# NOINLINE glVertexAttribPointerNVFunPtr #-}
 
+-- | Usage: @'glVertexAttribs1dvNV' index count v@
+--
+-- The length of @v@ should be @count@.
+
+
 glVertexAttribs1dvNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLdouble -> m ()
 glVertexAttribs1dvNV = ffiuintsizeiPtrdoubleIOV glVertexAttribs1dvNVFunPtr
 
@@ -581,6 +972,11 @@
 
 {-# NOINLINE glVertexAttribs1dvNVFunPtr #-}
 
+-- | Usage: @'glVertexAttribs1fvNV' index count v@
+--
+-- The length of @v@ should be @count@.
+
+
 glVertexAttribs1fvNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLfloat -> m ()
 glVertexAttribs1fvNV = ffiuintsizeiPtrfloatIOV glVertexAttribs1fvNVFunPtr
 
@@ -589,6 +985,11 @@
 
 {-# NOINLINE glVertexAttribs1fvNVFunPtr #-}
 
+-- | Usage: @'glVertexAttribs1svNV' index count v@
+--
+-- The length of @v@ should be @count@.
+
+
 glVertexAttribs1svNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLshort -> m ()
 glVertexAttribs1svNV = ffiuintsizeiPtrshortIOV glVertexAttribs1svNVFunPtr
 
@@ -597,6 +998,11 @@
 
 {-# NOINLINE glVertexAttribs1svNVFunPtr #-}
 
+-- | Usage: @'glVertexAttribs2dvNV' index count v@
+--
+-- The length of @v@ should be @count*2@.
+
+
 glVertexAttribs2dvNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLdouble -> m ()
 glVertexAttribs2dvNV = ffiuintsizeiPtrdoubleIOV glVertexAttribs2dvNVFunPtr
 
@@ -605,6 +1011,11 @@
 
 {-# NOINLINE glVertexAttribs2dvNVFunPtr #-}
 
+-- | Usage: @'glVertexAttribs2fvNV' index count v@
+--
+-- The length of @v@ should be @count*2@.
+
+
 glVertexAttribs2fvNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLfloat -> m ()
 glVertexAttribs2fvNV = ffiuintsizeiPtrfloatIOV glVertexAttribs2fvNVFunPtr
 
@@ -613,6 +1024,11 @@
 
 {-# NOINLINE glVertexAttribs2fvNVFunPtr #-}
 
+-- | Usage: @'glVertexAttribs2svNV' index count v@
+--
+-- The length of @v@ should be @count*2@.
+
+
 glVertexAttribs2svNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLshort -> m ()
 glVertexAttribs2svNV = ffiuintsizeiPtrshortIOV glVertexAttribs2svNVFunPtr
 
@@ -621,6 +1037,11 @@
 
 {-# NOINLINE glVertexAttribs2svNVFunPtr #-}
 
+-- | Usage: @'glVertexAttribs3dvNV' index count v@
+--
+-- The length of @v@ should be @count*3@.
+
+
 glVertexAttribs3dvNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLdouble -> m ()
 glVertexAttribs3dvNV = ffiuintsizeiPtrdoubleIOV glVertexAttribs3dvNVFunPtr
 
@@ -629,6 +1050,11 @@
 
 {-# NOINLINE glVertexAttribs3dvNVFunPtr #-}
 
+-- | Usage: @'glVertexAttribs3fvNV' index count v@
+--
+-- The length of @v@ should be @count*3@.
+
+
 glVertexAttribs3fvNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLfloat -> m ()
 glVertexAttribs3fvNV = ffiuintsizeiPtrfloatIOV glVertexAttribs3fvNVFunPtr
 
@@ -637,6 +1063,11 @@
 
 {-# NOINLINE glVertexAttribs3fvNVFunPtr #-}
 
+-- | Usage: @'glVertexAttribs3svNV' index count v@
+--
+-- The length of @v@ should be @count*3@.
+
+
 glVertexAttribs3svNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLshort -> m ()
 glVertexAttribs3svNV = ffiuintsizeiPtrshortIOV glVertexAttribs3svNVFunPtr
 
@@ -645,6 +1076,11 @@
 
 {-# NOINLINE glVertexAttribs3svNVFunPtr #-}
 
+-- | Usage: @'glVertexAttribs4dvNV' index count v@
+--
+-- The length of @v@ should be @count*4@.
+
+
 glVertexAttribs4dvNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLdouble -> m ()
 glVertexAttribs4dvNV = ffiuintsizeiPtrdoubleIOV glVertexAttribs4dvNVFunPtr
 
@@ -653,6 +1089,11 @@
 
 {-# NOINLINE glVertexAttribs4dvNVFunPtr #-}
 
+-- | Usage: @'glVertexAttribs4fvNV' index count v@
+--
+-- The length of @v@ should be @count*4@.
+
+
 glVertexAttribs4fvNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLfloat -> m ()
 glVertexAttribs4fvNV = ffiuintsizeiPtrfloatIOV glVertexAttribs4fvNVFunPtr
 
@@ -661,6 +1102,11 @@
 
 {-# NOINLINE glVertexAttribs4fvNVFunPtr #-}
 
+-- | Usage: @'glVertexAttribs4svNV' index count v@
+--
+-- The length of @v@ should be @count*4@.
+
+
 glVertexAttribs4svNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLshort -> m ()
 glVertexAttribs4svNV = ffiuintsizeiPtrshortIOV glVertexAttribs4svNVFunPtr
 
@@ -668,6 +1114,13 @@
 glVertexAttribs4svNVFunPtr = unsafePerformIO (getProcAddress "glVertexAttribs4svNV")
 
 {-# NOINLINE glVertexAttribs4svNVFunPtr #-}
+
+-- | Usage: @'glVertexAttribs4ubvNV' index count v@
+--
+-- The parameter @v@ is a @ColorUB@.
+--
+-- The length of @v@ should be @count*4@.
+
 
 glVertexAttribs4ubvNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLubyte -> m ()
 glVertexAttribs4ubvNV = ffiuintsizeiPtrubyteIOV glVertexAttribs4ubvNVFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/VertexProgram11.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/VertexProgram11.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/VertexProgram11.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/VertexProgram11.hs
@@ -8,5 +8,8 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/vertex_program1_1.txt GL_NV_vertex_program1_1> extension is available.
+
 gl_NV_vertex_program1_1 :: Bool
 gl_NV_vertex_program1_1 = member "GL_NV_vertex_program1_1" extensions
+{-# NOINLINE gl_NV_vertex_program1_1 #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/VertexProgram2.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/VertexProgram2.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/VertexProgram2.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/VertexProgram2.hs
@@ -8,5 +8,8 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/vertex_program2.txt GL_NV_vertex_program2> extension is available.
+
 gl_NV_vertex_program2 :: Bool
 gl_NV_vertex_program2 = member "GL_NV_vertex_program2" extensions
+{-# NOINLINE gl_NV_vertex_program2 #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/VertexProgram2Option.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/VertexProgram2Option.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/VertexProgram2Option.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/VertexProgram2Option.hs
@@ -13,5 +13,8 @@
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/vertex_program2_option.txt GL_NV_vertex_program2_option> extension is available.
+
 gl_NV_vertex_program2_option :: Bool
 gl_NV_vertex_program2_option = member "GL_NV_vertex_program2_option" extensions
+{-# NOINLINE gl_NV_vertex_program2_option #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/VertexProgram3.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/VertexProgram3.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/VertexProgram3.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/VertexProgram3.hs
@@ -12,5 +12,8 @@
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/vertex_program3.txt GL_NV_vertex_program3> extension is available.
+
 gl_NV_vertex_program3 :: Bool
 gl_NV_vertex_program3 = member "GL_NV_vertex_program3" extensions
+{-# NOINLINE gl_NV_vertex_program3 #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/VertexProgram4.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/VertexProgram4.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/VertexProgram4.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/VertexProgram4.hs
@@ -39,9 +39,21 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/vertex_program4.txt GL_NV_vertex_program4> extension is available.
+
 gl_NV_vertex_program4 :: Bool
 gl_NV_vertex_program4 = member "GL_NV_vertex_program4" extensions
+{-# NOINLINE gl_NV_vertex_program4 #-}
 
+-- | Usage: @'glGetVertexAttribIivEXT' index pname params@
+--
+-- The parameter @pname@ is a @VertexAttribEnum@.
+--
+-- The length of @params@ should be @1@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glGetVertexAttribIiv'.
+
+
 glGetVertexAttribIivEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
 glGetVertexAttribIivEXT = ffiuintenumPtrintIOV glGetVertexAttribIivEXTFunPtr
 
@@ -50,6 +62,15 @@
 
 {-# NOINLINE glGetVertexAttribIivEXTFunPtr #-}
 
+-- | Usage: @'glGetVertexAttribIuivEXT' index pname params@
+--
+-- The parameter @pname@ is a @VertexAttribEnum@.
+--
+-- The length of @params@ should be @1@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glGetVertexAttribIuiv'.
+
+
 glGetVertexAttribIuivEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()
 glGetVertexAttribIuivEXT = ffiuintenumPtruintIOV glGetVertexAttribIuivEXTFunPtr
 
@@ -58,6 +79,13 @@
 
 {-# NOINLINE glGetVertexAttribIuivEXTFunPtr #-}
 
+-- | Usage: @'glVertexAttribI1iEXT' index x@
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glVertexAttribI1i'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Extension.NV.VertexProgram4.glVertexAttribI1ivEXT'.
+
+
 glVertexAttribI1iEXT :: MonadIO m => GLuint -> GLint -> m ()
 glVertexAttribI1iEXT = ffiuintintIOV glVertexAttribI1iEXTFunPtr
 
@@ -66,6 +94,13 @@
 
 {-# NOINLINE glVertexAttribI1iEXTFunPtr #-}
 
+-- | Usage: @'glVertexAttribI1ivEXT' index v@
+--
+-- The length of @v@ should be @1@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glVertexAttribI1iv'.
+
+
 glVertexAttribI1ivEXT :: MonadIO m => GLuint -> Ptr GLint -> m ()
 glVertexAttribI1ivEXT = ffiuintPtrintIOV glVertexAttribI1ivEXTFunPtr
 
@@ -74,6 +109,13 @@
 
 {-# NOINLINE glVertexAttribI1ivEXTFunPtr #-}
 
+-- | Usage: @'glVertexAttribI1uiEXT' index x@
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glVertexAttribI1ui'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Extension.NV.VertexProgram4.glVertexAttribI1uivEXT'.
+
+
 glVertexAttribI1uiEXT :: MonadIO m => GLuint -> GLuint -> m ()
 glVertexAttribI1uiEXT = ffiuintuintIOV glVertexAttribI1uiEXTFunPtr
 
@@ -82,6 +124,13 @@
 
 {-# NOINLINE glVertexAttribI1uiEXTFunPtr #-}
 
+-- | Usage: @'glVertexAttribI1uivEXT' index v@
+--
+-- The length of @v@ should be @1@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glVertexAttribI1uiv'.
+
+
 glVertexAttribI1uivEXT :: MonadIO m => GLuint -> Ptr GLuint -> m ()
 glVertexAttribI1uivEXT = ffiuintPtruintIOV glVertexAttribI1uivEXTFunPtr
 
@@ -90,6 +139,13 @@
 
 {-# NOINLINE glVertexAttribI1uivEXTFunPtr #-}
 
+-- | Usage: @'glVertexAttribI2iEXT' index x y@
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glVertexAttribI2i'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Extension.NV.VertexProgram4.glVertexAttribI2ivEXT'.
+
+
 glVertexAttribI2iEXT :: MonadIO m => GLuint -> GLint -> GLint -> m ()
 glVertexAttribI2iEXT = ffiuintintintIOV glVertexAttribI2iEXTFunPtr
 
@@ -98,6 +154,13 @@
 
 {-# NOINLINE glVertexAttribI2iEXTFunPtr #-}
 
+-- | Usage: @'glVertexAttribI2ivEXT' index v@
+--
+-- The length of @v@ should be @2@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glVertexAttribI2iv'.
+
+
 glVertexAttribI2ivEXT :: MonadIO m => GLuint -> Ptr GLint -> m ()
 glVertexAttribI2ivEXT = ffiuintPtrintIOV glVertexAttribI2ivEXTFunPtr
 
@@ -106,6 +169,13 @@
 
 {-# NOINLINE glVertexAttribI2ivEXTFunPtr #-}
 
+-- | Usage: @'glVertexAttribI2uiEXT' index x y@
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glVertexAttribI2ui'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Extension.NV.VertexProgram4.glVertexAttribI2uivEXT'.
+
+
 glVertexAttribI2uiEXT :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()
 glVertexAttribI2uiEXT = ffiuintuintuintIOV glVertexAttribI2uiEXTFunPtr
 
@@ -114,6 +184,13 @@
 
 {-# NOINLINE glVertexAttribI2uiEXTFunPtr #-}
 
+-- | Usage: @'glVertexAttribI2uivEXT' index v@
+--
+-- The length of @v@ should be @2@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glVertexAttribI2uiv'.
+
+
 glVertexAttribI2uivEXT :: MonadIO m => GLuint -> Ptr GLuint -> m ()
 glVertexAttribI2uivEXT = ffiuintPtruintIOV glVertexAttribI2uivEXTFunPtr
 
@@ -122,6 +199,13 @@
 
 {-# NOINLINE glVertexAttribI2uivEXTFunPtr #-}
 
+-- | Usage: @'glVertexAttribI3iEXT' index x y z@
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glVertexAttribI3i'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Extension.NV.VertexProgram4.glVertexAttribI3ivEXT'.
+
+
 glVertexAttribI3iEXT :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> m ()
 glVertexAttribI3iEXT = ffiuintintintintIOV glVertexAttribI3iEXTFunPtr
 
@@ -130,6 +214,13 @@
 
 {-# NOINLINE glVertexAttribI3iEXTFunPtr #-}
 
+-- | Usage: @'glVertexAttribI3ivEXT' index v@
+--
+-- The length of @v@ should be @3@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glVertexAttribI3iv'.
+
+
 glVertexAttribI3ivEXT :: MonadIO m => GLuint -> Ptr GLint -> m ()
 glVertexAttribI3ivEXT = ffiuintPtrintIOV glVertexAttribI3ivEXTFunPtr
 
@@ -138,6 +229,13 @@
 
 {-# NOINLINE glVertexAttribI3ivEXTFunPtr #-}
 
+-- | Usage: @'glVertexAttribI3uiEXT' index x y z@
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glVertexAttribI3ui'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Extension.NV.VertexProgram4.glVertexAttribI3uivEXT'.
+
+
 glVertexAttribI3uiEXT :: MonadIO m => GLuint -> GLuint -> GLuint -> GLuint -> m ()
 glVertexAttribI3uiEXT = ffiuintuintuintuintIOV glVertexAttribI3uiEXTFunPtr
 
@@ -146,6 +244,13 @@
 
 {-# NOINLINE glVertexAttribI3uiEXTFunPtr #-}
 
+-- | Usage: @'glVertexAttribI3uivEXT' index v@
+--
+-- The length of @v@ should be @3@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glVertexAttribI3uiv'.
+
+
 glVertexAttribI3uivEXT :: MonadIO m => GLuint -> Ptr GLuint -> m ()
 glVertexAttribI3uivEXT = ffiuintPtruintIOV glVertexAttribI3uivEXTFunPtr
 
@@ -154,6 +259,13 @@
 
 {-# NOINLINE glVertexAttribI3uivEXTFunPtr #-}
 
+-- | Usage: @'glVertexAttribI4bvEXT' index v@
+--
+-- The length of @v@ should be @4@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glVertexAttribI4bv'.
+
+
 glVertexAttribI4bvEXT :: MonadIO m => GLuint -> Ptr GLbyte -> m ()
 glVertexAttribI4bvEXT = ffiuintPtrbyteIOV glVertexAttribI4bvEXTFunPtr
 
@@ -162,6 +274,13 @@
 
 {-# NOINLINE glVertexAttribI4bvEXTFunPtr #-}
 
+-- | Usage: @'glVertexAttribI4iEXT' index x y z w@
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glVertexAttribI4i'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Extension.NV.VertexProgram4.glVertexAttribI4ivEXT'.
+
+
 glVertexAttribI4iEXT :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> m ()
 glVertexAttribI4iEXT = ffiuintintintintintIOV glVertexAttribI4iEXTFunPtr
 
@@ -170,6 +289,13 @@
 
 {-# NOINLINE glVertexAttribI4iEXTFunPtr #-}
 
+-- | Usage: @'glVertexAttribI4ivEXT' index v@
+--
+-- The length of @v@ should be @4@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glVertexAttribI4iv'.
+
+
 glVertexAttribI4ivEXT :: MonadIO m => GLuint -> Ptr GLint -> m ()
 glVertexAttribI4ivEXT = ffiuintPtrintIOV glVertexAttribI4ivEXTFunPtr
 
@@ -178,6 +304,13 @@
 
 {-# NOINLINE glVertexAttribI4ivEXTFunPtr #-}
 
+-- | Usage: @'glVertexAttribI4svEXT' index v@
+--
+-- The length of @v@ should be @4@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glVertexAttribI4sv'.
+
+
 glVertexAttribI4svEXT :: MonadIO m => GLuint -> Ptr GLshort -> m ()
 glVertexAttribI4svEXT = ffiuintPtrshortIOV glVertexAttribI4svEXTFunPtr
 
@@ -186,6 +319,13 @@
 
 {-# NOINLINE glVertexAttribI4svEXTFunPtr #-}
 
+-- | Usage: @'glVertexAttribI4ubvEXT' index v@
+--
+-- The length of @v@ should be @4@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glVertexAttribI4ubv'.
+
+
 glVertexAttribI4ubvEXT :: MonadIO m => GLuint -> Ptr GLubyte -> m ()
 glVertexAttribI4ubvEXT = ffiuintPtrubyteIOV glVertexAttribI4ubvEXTFunPtr
 
@@ -194,6 +334,13 @@
 
 {-# NOINLINE glVertexAttribI4ubvEXTFunPtr #-}
 
+-- | Usage: @'glVertexAttribI4uiEXT' index x y z w@
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glVertexAttribI4ui'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Extension.NV.VertexProgram4.glVertexAttribI4uivEXT'.
+
+
 glVertexAttribI4uiEXT :: MonadIO m => GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
 glVertexAttribI4uiEXT = ffiuintuintuintuintuintIOV glVertexAttribI4uiEXTFunPtr
 
@@ -202,6 +349,13 @@
 
 {-# NOINLINE glVertexAttribI4uiEXTFunPtr #-}
 
+-- | Usage: @'glVertexAttribI4uivEXT' index v@
+--
+-- The length of @v@ should be @4@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glVertexAttribI4uiv'.
+
+
 glVertexAttribI4uivEXT :: MonadIO m => GLuint -> Ptr GLuint -> m ()
 glVertexAttribI4uivEXT = ffiuintPtruintIOV glVertexAttribI4uivEXTFunPtr
 
@@ -210,6 +364,13 @@
 
 {-# NOINLINE glVertexAttribI4uivEXTFunPtr #-}
 
+-- | Usage: @'glVertexAttribI4usvEXT' index v@
+--
+-- The length of @v@ should be @4@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glVertexAttribI4usv'.
+
+
 glVertexAttribI4usvEXT :: MonadIO m => GLuint -> Ptr GLushort -> m ()
 glVertexAttribI4usvEXT = ffiuintPtrushortIOV glVertexAttribI4usvEXTFunPtr
 
@@ -217,6 +378,15 @@
 glVertexAttribI4usvEXTFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI4usvEXT")
 
 {-# NOINLINE glVertexAttribI4usvEXTFunPtr #-}
+
+-- | Usage: @'glVertexAttribIPointerEXT' index size type stride pointer@
+--
+-- The parameter @type@ is a @VertexAttribEnum@.
+--
+-- The length of @pointer@ should be @COMPSIZE(size,type,stride)@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glVertexAttribIPointer'.
+
 
 glVertexAttribIPointerEXT :: MonadIO m => GLuint -> GLint -> GLenum -> GLsizei -> Ptr () -> m ()
 glVertexAttribIPointerEXT = ffiuintintenumsizeiPtrVIOV glVertexAttribIPointerEXTFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/VideoCapture.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/VideoCapture.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/VideoCapture.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/VideoCapture.hs
@@ -56,9 +56,15 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/video_capture.txt GL_NV_video_capture> extension is available.
+
 gl_NV_video_capture :: Bool
 gl_NV_video_capture = member "GL_NV_video_capture" extensions
+{-# NOINLINE gl_NV_video_capture #-}
 
+-- | Usage: @'glBeginVideoCaptureNV' video_capture_slot@
+
+
 glBeginVideoCaptureNV :: MonadIO m => GLuint -> m ()
 glBeginVideoCaptureNV = ffiuintIOV glBeginVideoCaptureNVFunPtr
 
@@ -67,6 +73,11 @@
 
 {-# NOINLINE glBeginVideoCaptureNVFunPtr #-}
 
+-- | Usage: @'glBindVideoCaptureStreamBufferNV' video_capture_slot stream frame_region offset@
+--
+-- The parameter @offset@ is a @BufferOffsetARB@.
+
+
 glBindVideoCaptureStreamBufferNV :: MonadIO m => GLuint -> GLuint -> GLenum -> GLintptrARB -> m ()
 glBindVideoCaptureStreamBufferNV = ffiuintuintenumintptrARBIOV glBindVideoCaptureStreamBufferNVFunPtr
 
@@ -75,6 +86,9 @@
 
 {-# NOINLINE glBindVideoCaptureStreamBufferNVFunPtr #-}
 
+-- | Usage: @'glBindVideoCaptureStreamTextureNV' video_capture_slot stream frame_region target texture@
+
+
 glBindVideoCaptureStreamTextureNV :: MonadIO m => GLuint -> GLuint -> GLenum -> GLenum -> GLuint -> m ()
 glBindVideoCaptureStreamTextureNV = ffiuintuintenumenumuintIOV glBindVideoCaptureStreamTextureNVFunPtr
 
@@ -83,6 +97,9 @@
 
 {-# NOINLINE glBindVideoCaptureStreamTextureNVFunPtr #-}
 
+-- | Usage: @'glEndVideoCaptureNV' video_capture_slot@
+
+
 glEndVideoCaptureNV :: MonadIO m => GLuint -> m ()
 glEndVideoCaptureNV = ffiuintIOV glEndVideoCaptureNVFunPtr
 
@@ -91,6 +108,11 @@
 
 {-# NOINLINE glEndVideoCaptureNVFunPtr #-}
 
+-- | Usage: @'glGetVideoCaptureStreamdvNV' video_capture_slot stream pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
 glGetVideoCaptureStreamdvNV :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr GLdouble -> m ()
 glGetVideoCaptureStreamdvNV = ffiuintuintenumPtrdoubleIOV glGetVideoCaptureStreamdvNVFunPtr
 
@@ -99,6 +121,11 @@
 
 {-# NOINLINE glGetVideoCaptureStreamdvNVFunPtr #-}
 
+-- | Usage: @'glGetVideoCaptureStreamfvNV' video_capture_slot stream pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
 glGetVideoCaptureStreamfvNV :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr GLfloat -> m ()
 glGetVideoCaptureStreamfvNV = ffiuintuintenumPtrfloatIOV glGetVideoCaptureStreamfvNVFunPtr
 
@@ -107,6 +134,11 @@
 
 {-# NOINLINE glGetVideoCaptureStreamfvNVFunPtr #-}
 
+-- | Usage: @'glGetVideoCaptureStreamivNV' video_capture_slot stream pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
 glGetVideoCaptureStreamivNV :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr GLint -> m ()
 glGetVideoCaptureStreamivNV = ffiuintuintenumPtrintIOV glGetVideoCaptureStreamivNVFunPtr
 
@@ -115,6 +147,11 @@
 
 {-# NOINLINE glGetVideoCaptureStreamivNVFunPtr #-}
 
+-- | Usage: @'glGetVideoCaptureivNV' video_capture_slot pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
 glGetVideoCaptureivNV :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
 glGetVideoCaptureivNV = ffiuintenumPtrintIOV glGetVideoCaptureivNVFunPtr
 
@@ -123,6 +160,9 @@
 
 {-# NOINLINE glGetVideoCaptureivNVFunPtr #-}
 
+-- | Usage: @'glVideoCaptureNV' video_capture_slot sequence_num capture_time@
+
+
 glVideoCaptureNV :: MonadIO m => GLuint -> Ptr GLuint -> Ptr GLuint64EXT -> m GLenum
 glVideoCaptureNV = ffiuintPtruintPtruint64EXTIOenum glVideoCaptureNVFunPtr
 
@@ -131,6 +171,11 @@
 
 {-# NOINLINE glVideoCaptureNVFunPtr #-}
 
+-- | Usage: @'glVideoCaptureStreamParameterdvNV' video_capture_slot stream pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
 glVideoCaptureStreamParameterdvNV :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr GLdouble -> m ()
 glVideoCaptureStreamParameterdvNV = ffiuintuintenumPtrdoubleIOV glVideoCaptureStreamParameterdvNVFunPtr
 
@@ -139,6 +184,11 @@
 
 {-# NOINLINE glVideoCaptureStreamParameterdvNVFunPtr #-}
 
+-- | Usage: @'glVideoCaptureStreamParameterfvNV' video_capture_slot stream pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
 glVideoCaptureStreamParameterfvNV :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr GLfloat -> m ()
 glVideoCaptureStreamParameterfvNV = ffiuintuintenumPtrfloatIOV glVideoCaptureStreamParameterfvNVFunPtr
 
@@ -146,6 +196,11 @@
 glVideoCaptureStreamParameterfvNVFunPtr = unsafePerformIO (getProcAddress "glVideoCaptureStreamParameterfvNV")
 
 {-# NOINLINE glVideoCaptureStreamParameterfvNVFunPtr #-}
+
+-- | Usage: @'glVideoCaptureStreamParameterivNV' video_capture_slot stream pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
 
 glVideoCaptureStreamParameterivNV :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr GLint -> m ()
 glVideoCaptureStreamParameterivNV = ffiuintuintenumPtrintIOV glVideoCaptureStreamParameterivNVFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NVX/ConditionalRender.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NVX/ConditionalRender.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NVX/ConditionalRender.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NVX/ConditionalRender.hs
@@ -17,9 +17,15 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the GL_NVX_conditional_render extension is available.
+
 gl_NVX_conditional_render :: Bool
 gl_NVX_conditional_render = member "GL_NVX_conditional_render" extensions
+{-# NOINLINE gl_NVX_conditional_render #-}
 
+-- | Usage: @'glBeginConditionalRenderNVX' id@
+
+
 glBeginConditionalRenderNVX :: MonadIO m => GLuint -> m ()
 glBeginConditionalRenderNVX = ffiuintIOV glBeginConditionalRenderNVXFunPtr
 
@@ -27,6 +33,11 @@
 glBeginConditionalRenderNVXFunPtr = unsafePerformIO (getProcAddress "glBeginConditionalRenderNVX")
 
 {-# NOINLINE glBeginConditionalRenderNVXFunPtr #-}
+
+-- | Usage: @'glEndConditionalRenderNVX'@
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glEndConditionalRender'.
+
 
 glEndConditionalRenderNVX :: MonadIO m => m ()
 glEndConditionalRenderNVX = ffiIOV glEndConditionalRenderNVXFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NVX/GpuMemoryInfo.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NVX/GpuMemoryInfo.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NVX/GpuMemoryInfo.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NVX/GpuMemoryInfo.hs
@@ -15,8 +15,11 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NVX/gpu_memory_info.txt GL_NVX_gpu_memory_info> extension is available.
+
 gl_NVX_gpu_memory_info :: Bool
 gl_NVX_gpu_memory_info = member "GL_NVX_gpu_memory_info" extensions
+{-# NOINLINE gl_NVX_gpu_memory_info #-}
 
 pattern GL_GPU_MEMORY_INFO_CURRENT_AVAILABLE_VIDMEM_NVX = 0x9049
 
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/BlendEquationSeparate.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/BlendEquationSeparate.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/BlendEquationSeparate.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/BlendEquationSeparate.hs
@@ -18,8 +18,14 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the GL_OES_blend_equation_separate extension is available.
+
 gl_OES_blend_equation_separate :: Bool
 gl_OES_blend_equation_separate = member "GL_OES_blend_equation_separate" extensions
+{-# NOINLINE gl_OES_blend_equation_separate #-}
+
+-- | Usage: @'glBlendEquationSeparateOES' modeRGB modeAlpha@
+
 
 glBlendEquationSeparateOES :: MonadIO m => GLenum -> GLenum -> m ()
 glBlendEquationSeparateOES = ffienumenumIOV glBlendEquationSeparateOESFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/BlendFuncSeparate.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/BlendFuncSeparate.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/BlendFuncSeparate.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/BlendFuncSeparate.hs
@@ -20,8 +20,14 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the GL_OES_blend_func_separate extension is available.
+
 gl_OES_blend_func_separate :: Bool
 gl_OES_blend_func_separate = member "GL_OES_blend_func_separate" extensions
+{-# NOINLINE gl_OES_blend_func_separate #-}
+
+-- | Usage: @'glBlendFuncSeparateOES' srcRGB dstRGB srcAlpha dstAlpha@
+
 
 glBlendFuncSeparateOES :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> m ()
 glBlendFuncSeparateOES = ffienumenumenumenumIOV glBlendFuncSeparateOESFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/BlendSubtract.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/BlendSubtract.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/BlendSubtract.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/BlendSubtract.hs
@@ -20,8 +20,14 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the GL_OES_blend_subtract extension is available.
+
 gl_OES_blend_subtract :: Bool
 gl_OES_blend_subtract = member "GL_OES_blend_subtract" extensions
+{-# NOINLINE gl_OES_blend_subtract #-}
+
+-- | Usage: @'glBlendEquationOES' mode@
+
 
 glBlendEquationOES :: MonadIO m => GLenum -> m ()
 glBlendEquationOES = ffienumIOV glBlendEquationOESFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/ByteCoordinates.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/ByteCoordinates.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/ByteCoordinates.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/ByteCoordinates.hs
@@ -39,9 +39,15 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the GL_OES_byte_coordinates extension is available.
+
 gl_OES_byte_coordinates :: Bool
 gl_OES_byte_coordinates = member "GL_OES_byte_coordinates" extensions
+{-# NOINLINE gl_OES_byte_coordinates #-}
 
+-- | Usage: @'glMultiTexCoord1bOES' texture s@
+
+
 glMultiTexCoord1bOES :: MonadIO m => GLenum -> GLbyte -> m ()
 glMultiTexCoord1bOES = ffienumbyteIOV glMultiTexCoord1bOESFunPtr
 
@@ -50,6 +56,11 @@
 
 {-# NOINLINE glMultiTexCoord1bOESFunPtr #-}
 
+-- | Usage: @'glMultiTexCoord1bvOES' texture coords@
+--
+-- The length of @coords@ should be @1@.
+
+
 glMultiTexCoord1bvOES :: MonadIO m => GLenum -> Ptr GLbyte -> m ()
 glMultiTexCoord1bvOES = ffienumPtrbyteIOV glMultiTexCoord1bvOESFunPtr
 
@@ -58,6 +69,9 @@
 
 {-# NOINLINE glMultiTexCoord1bvOESFunPtr #-}
 
+-- | Usage: @'glMultiTexCoord2bOES' texture s t@
+
+
 glMultiTexCoord2bOES :: MonadIO m => GLenum -> GLbyte -> GLbyte -> m ()
 glMultiTexCoord2bOES = ffienumbytebyteIOV glMultiTexCoord2bOESFunPtr
 
@@ -66,6 +80,11 @@
 
 {-# NOINLINE glMultiTexCoord2bOESFunPtr #-}
 
+-- | Usage: @'glMultiTexCoord2bvOES' texture coords@
+--
+-- The length of @coords@ should be @2@.
+
+
 glMultiTexCoord2bvOES :: MonadIO m => GLenum -> Ptr GLbyte -> m ()
 glMultiTexCoord2bvOES = ffienumPtrbyteIOV glMultiTexCoord2bvOESFunPtr
 
@@ -74,6 +93,9 @@
 
 {-# NOINLINE glMultiTexCoord2bvOESFunPtr #-}
 
+-- | Usage: @'glMultiTexCoord3bOES' texture s t r@
+
+
 glMultiTexCoord3bOES :: MonadIO m => GLenum -> GLbyte -> GLbyte -> GLbyte -> m ()
 glMultiTexCoord3bOES = ffienumbytebytebyteIOV glMultiTexCoord3bOESFunPtr
 
@@ -82,6 +104,11 @@
 
 {-# NOINLINE glMultiTexCoord3bOESFunPtr #-}
 
+-- | Usage: @'glMultiTexCoord3bvOES' texture coords@
+--
+-- The length of @coords@ should be @3@.
+
+
 glMultiTexCoord3bvOES :: MonadIO m => GLenum -> Ptr GLbyte -> m ()
 glMultiTexCoord3bvOES = ffienumPtrbyteIOV glMultiTexCoord3bvOESFunPtr
 
@@ -90,6 +117,9 @@
 
 {-# NOINLINE glMultiTexCoord3bvOESFunPtr #-}
 
+-- | Usage: @'glMultiTexCoord4bOES' texture s t r q@
+
+
 glMultiTexCoord4bOES :: MonadIO m => GLenum -> GLbyte -> GLbyte -> GLbyte -> GLbyte -> m ()
 glMultiTexCoord4bOES = ffienumbytebytebytebyteIOV glMultiTexCoord4bOESFunPtr
 
@@ -98,6 +128,11 @@
 
 {-# NOINLINE glMultiTexCoord4bOESFunPtr #-}
 
+-- | Usage: @'glMultiTexCoord4bvOES' texture coords@
+--
+-- The length of @coords@ should be @4@.
+
+
 glMultiTexCoord4bvOES :: MonadIO m => GLenum -> Ptr GLbyte -> m ()
 glMultiTexCoord4bvOES = ffienumPtrbyteIOV glMultiTexCoord4bvOESFunPtr
 
@@ -106,6 +141,9 @@
 
 {-# NOINLINE glMultiTexCoord4bvOESFunPtr #-}
 
+-- | Usage: @'glTexCoord1bOES' s@
+
+
 glTexCoord1bOES :: MonadIO m => GLbyte -> m ()
 glTexCoord1bOES = ffibyteIOV glTexCoord1bOESFunPtr
 
@@ -114,6 +152,11 @@
 
 {-# NOINLINE glTexCoord1bOESFunPtr #-}
 
+-- | Usage: @'glTexCoord1bvOES' coords@
+--
+-- The length of @coords@ should be @1@.
+
+
 glTexCoord1bvOES :: MonadIO m => Ptr GLbyte -> m ()
 glTexCoord1bvOES = ffiPtrbyteIOV glTexCoord1bvOESFunPtr
 
@@ -122,6 +165,9 @@
 
 {-# NOINLINE glTexCoord1bvOESFunPtr #-}
 
+-- | Usage: @'glTexCoord2bOES' s t@
+
+
 glTexCoord2bOES :: MonadIO m => GLbyte -> GLbyte -> m ()
 glTexCoord2bOES = ffibytebyteIOV glTexCoord2bOESFunPtr
 
@@ -130,6 +176,11 @@
 
 {-# NOINLINE glTexCoord2bOESFunPtr #-}
 
+-- | Usage: @'glTexCoord2bvOES' coords@
+--
+-- The length of @coords@ should be @2@.
+
+
 glTexCoord2bvOES :: MonadIO m => Ptr GLbyte -> m ()
 glTexCoord2bvOES = ffiPtrbyteIOV glTexCoord2bvOESFunPtr
 
@@ -138,6 +189,9 @@
 
 {-# NOINLINE glTexCoord2bvOESFunPtr #-}
 
+-- | Usage: @'glTexCoord3bOES' s t r@
+
+
 glTexCoord3bOES :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> m ()
 glTexCoord3bOES = ffibytebytebyteIOV glTexCoord3bOESFunPtr
 
@@ -146,6 +200,11 @@
 
 {-# NOINLINE glTexCoord3bOESFunPtr #-}
 
+-- | Usage: @'glTexCoord3bvOES' coords@
+--
+-- The length of @coords@ should be @3@.
+
+
 glTexCoord3bvOES :: MonadIO m => Ptr GLbyte -> m ()
 glTexCoord3bvOES = ffiPtrbyteIOV glTexCoord3bvOESFunPtr
 
@@ -154,6 +213,9 @@
 
 {-# NOINLINE glTexCoord3bvOESFunPtr #-}
 
+-- | Usage: @'glTexCoord4bOES' s t r q@
+
+
 glTexCoord4bOES :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> GLbyte -> m ()
 glTexCoord4bOES = ffibytebytebytebyteIOV glTexCoord4bOESFunPtr
 
@@ -162,6 +224,11 @@
 
 {-# NOINLINE glTexCoord4bOESFunPtr #-}
 
+-- | Usage: @'glTexCoord4bvOES' coords@
+--
+-- The length of @coords@ should be @4@.
+
+
 glTexCoord4bvOES :: MonadIO m => Ptr GLbyte -> m ()
 glTexCoord4bvOES = ffiPtrbyteIOV glTexCoord4bvOESFunPtr
 
@@ -170,6 +237,9 @@
 
 {-# NOINLINE glTexCoord4bvOESFunPtr #-}
 
+-- | Usage: @'glVertex2bOES' x y@
+
+
 glVertex2bOES :: MonadIO m => GLbyte -> GLbyte -> m ()
 glVertex2bOES = ffibytebyteIOV glVertex2bOESFunPtr
 
@@ -178,6 +248,11 @@
 
 {-# NOINLINE glVertex2bOESFunPtr #-}
 
+-- | Usage: @'glVertex2bvOES' coords@
+--
+-- The length of @coords@ should be @2@.
+
+
 glVertex2bvOES :: MonadIO m => Ptr GLbyte -> m ()
 glVertex2bvOES = ffiPtrbyteIOV glVertex2bvOESFunPtr
 
@@ -186,6 +261,9 @@
 
 {-# NOINLINE glVertex2bvOESFunPtr #-}
 
+-- | Usage: @'glVertex3bOES' x y z@
+
+
 glVertex3bOES :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> m ()
 glVertex3bOES = ffibytebytebyteIOV glVertex3bOESFunPtr
 
@@ -194,6 +272,11 @@
 
 {-# NOINLINE glVertex3bOESFunPtr #-}
 
+-- | Usage: @'glVertex3bvOES' coords@
+--
+-- The length of @coords@ should be @3@.
+
+
 glVertex3bvOES :: MonadIO m => Ptr GLbyte -> m ()
 glVertex3bvOES = ffiPtrbyteIOV glVertex3bvOESFunPtr
 
@@ -202,6 +285,9 @@
 
 {-# NOINLINE glVertex3bvOESFunPtr #-}
 
+-- | Usage: @'glVertex4bOES' x y z w@
+
+
 glVertex4bOES :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> GLbyte -> m ()
 glVertex4bOES = ffibytebytebytebyteIOV glVertex4bOESFunPtr
 
@@ -209,6 +295,11 @@
 glVertex4bOESFunPtr = unsafePerformIO (getProcAddress "glVertex4bOES")
 
 {-# NOINLINE glVertex4bOESFunPtr #-}
+
+-- | Usage: @'glVertex4bvOES' coords@
+--
+-- The length of @coords@ should be @4@.
+
 
 glVertex4bvOES :: MonadIO m => Ptr GLbyte -> m ()
 glVertex4bvOES = ffiPtrbyteIOV glVertex4bvOESFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/CompressedETC1RGB8SubTexture.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/CompressedETC1RGB8SubTexture.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/CompressedETC1RGB8SubTexture.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/CompressedETC1RGB8SubTexture.hs
@@ -8,5 +8,8 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the GL_OES_compressed_ETC1_RGB8_sub_texture extension is available.
+
 gl_OES_compressed_ETC1_RGB8_sub_texture :: Bool
 gl_OES_compressed_ETC1_RGB8_sub_texture = member "GL_OES_compressed_ETC1_RGB8_sub_texture" extensions
+{-# NOINLINE gl_OES_compressed_ETC1_RGB8_sub_texture #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/CompressedETC1RGB8Texture.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/CompressedETC1RGB8Texture.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/CompressedETC1RGB8Texture.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/CompressedETC1RGB8Texture.hs
@@ -11,7 +11,10 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the GL_OES_compressed_ETC1_RGB8_texture extension is available.
+
 gl_OES_compressed_ETC1_RGB8_texture :: Bool
 gl_OES_compressed_ETC1_RGB8_texture = member "GL_OES_compressed_ETC1_RGB8_texture" extensions
+{-# NOINLINE gl_OES_compressed_ETC1_RGB8_texture #-}
 
 pattern GL_ETC1_RGB8_OES = 0x8D64
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/CompressedPalettedTexture.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/CompressedPalettedTexture.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/CompressedPalettedTexture.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/CompressedPalettedTexture.hs
@@ -20,8 +20,11 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the GL_OES_compressed_paletted_texture extension is available.
+
 gl_OES_compressed_paletted_texture :: Bool
 gl_OES_compressed_paletted_texture = member "GL_OES_compressed_paletted_texture" extensions
+{-# NOINLINE gl_OES_compressed_paletted_texture #-}
 
 pattern GL_PALETTE4_R5_G6_B5_OES = 0x8B92
 
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/Depth24.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/Depth24.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/Depth24.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/Depth24.hs
@@ -12,5 +12,8 @@
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
 
+-- | Checks that the GL_OES_depth24 extension is available.
+
 gl_OES_depth24 :: Bool
 gl_OES_depth24 = member "GL_OES_depth24" extensions
+{-# NOINLINE gl_OES_depth24 #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/Depth32.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/Depth32.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/Depth32.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/Depth32.hs
@@ -12,5 +12,8 @@
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
 
+-- | Checks that the GL_OES_depth32 extension is available.
+
 gl_OES_depth32 :: Bool
 gl_OES_depth32 = member "GL_OES_depth32" extensions
+{-# NOINLINE gl_OES_depth32 #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/DepthTexture.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/DepthTexture.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/DepthTexture.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/DepthTexture.hs
@@ -14,5 +14,8 @@
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
 
+-- | Checks that the GL_OES_depth_texture extension is available.
+
 gl_OES_depth_texture :: Bool
 gl_OES_depth_texture = member "GL_OES_depth_texture" extensions
+{-# NOINLINE gl_OES_depth_texture #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/DrawTexture.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/DrawTexture.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/DrawTexture.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/DrawTexture.hs
@@ -24,9 +24,15 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the GL_OES_draw_texture extension is available.
+
 gl_OES_draw_texture :: Bool
 gl_OES_draw_texture = member "GL_OES_draw_texture" extensions
+{-# NOINLINE gl_OES_draw_texture #-}
 
+-- | Usage: @'glDrawTexfOES' x y z width height@
+
+
 glDrawTexfOES :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
 glDrawTexfOES = ffifloatfloatfloatfloatfloatIOV glDrawTexfOESFunPtr
 
@@ -35,6 +41,9 @@
 
 {-# NOINLINE glDrawTexfOESFunPtr #-}
 
+-- | Usage: @'glDrawTexfvOES' coords@
+
+
 glDrawTexfvOES :: MonadIO m => Ptr GLfloat -> m ()
 glDrawTexfvOES = ffiPtrfloatIOV glDrawTexfvOESFunPtr
 
@@ -43,6 +52,9 @@
 
 {-# NOINLINE glDrawTexfvOESFunPtr #-}
 
+-- | Usage: @'glDrawTexiOES' x y z width height@
+
+
 glDrawTexiOES :: MonadIO m => GLint -> GLint -> GLint -> GLint -> GLint -> m ()
 glDrawTexiOES = ffiintintintintintIOV glDrawTexiOESFunPtr
 
@@ -51,6 +63,9 @@
 
 {-# NOINLINE glDrawTexiOESFunPtr #-}
 
+-- | Usage: @'glDrawTexivOES' coords@
+
+
 glDrawTexivOES :: MonadIO m => Ptr GLint -> m ()
 glDrawTexivOES = ffiPtrintIOV glDrawTexivOESFunPtr
 
@@ -59,6 +74,9 @@
 
 {-# NOINLINE glDrawTexivOESFunPtr #-}
 
+-- | Usage: @'glDrawTexsOES' x y z width height@
+
+
 glDrawTexsOES :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> GLshort -> m ()
 glDrawTexsOES = ffishortshortshortshortshortIOV glDrawTexsOESFunPtr
 
@@ -67,6 +85,9 @@
 
 {-# NOINLINE glDrawTexsOESFunPtr #-}
 
+-- | Usage: @'glDrawTexsvOES' coords@
+
+
 glDrawTexsvOES :: MonadIO m => Ptr GLshort -> m ()
 glDrawTexsvOES = ffiPtrshortIOV glDrawTexsvOESFunPtr
 
@@ -75,6 +96,9 @@
 
 {-# NOINLINE glDrawTexsvOESFunPtr #-}
 
+-- | Usage: @'glDrawTexxOES' x y z width height@
+
+
 glDrawTexxOES :: MonadIO m => GLfixed -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> m ()
 glDrawTexxOES = ffifixedfixedfixedfixedfixedIOV glDrawTexxOESFunPtr
 
@@ -82,6 +106,9 @@
 glDrawTexxOESFunPtr = unsafePerformIO (getProcAddress "glDrawTexxOES")
 
 {-# NOINLINE glDrawTexxOESFunPtr #-}
+
+-- | Usage: @'glDrawTexxvOES' coords@
+
 
 glDrawTexxvOES :: MonadIO m => Ptr GLfixed -> m ()
 glDrawTexxvOES = ffiPtrfixedIOV glDrawTexxvOESFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/EGLImage.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/EGLImage.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/EGLImage.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/EGLImage.hs
@@ -17,9 +17,15 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the GL_OES_EGL_image extension is available.
+
 gl_OES_EGL_image :: Bool
 gl_OES_EGL_image = member "GL_OES_EGL_image" extensions
+{-# NOINLINE gl_OES_EGL_image #-}
 
+-- | Usage: @'glEGLImageTargetRenderbufferStorageOES' target image@
+
+
 glEGLImageTargetRenderbufferStorageOES :: MonadIO m => GLenum -> GLeglImageOES -> m ()
 glEGLImageTargetRenderbufferStorageOES = ffienumeglImageOESIOV glEGLImageTargetRenderbufferStorageOESFunPtr
 
@@ -27,6 +33,9 @@
 glEGLImageTargetRenderbufferStorageOESFunPtr = unsafePerformIO (getProcAddress "glEGLImageTargetRenderbufferStorageOES")
 
 {-# NOINLINE glEGLImageTargetRenderbufferStorageOESFunPtr #-}
+
+-- | Usage: @'glEGLImageTargetTexture2DOES' target image@
+
 
 glEGLImageTargetTexture2DOES :: MonadIO m => GLenum -> GLeglImageOES -> m ()
 glEGLImageTargetTexture2DOES = ffienumeglImageOESIOV glEGLImageTargetTexture2DOESFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/EGLImageExternal.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/EGLImageExternal.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/EGLImageExternal.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/EGLImageExternal.hs
@@ -14,8 +14,11 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the GL_OES_EGL_image_external extension is available.
+
 gl_OES_EGL_image_external :: Bool
 gl_OES_EGL_image_external = member "GL_OES_EGL_image_external" extensions
+{-# NOINLINE gl_OES_EGL_image_external #-}
 
 pattern GL_REQUIRED_TEXTURE_IMAGE_UNITS_OES = 0x8D68
 
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/ElementIndexUint.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/ElementIndexUint.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/ElementIndexUint.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/ElementIndexUint.hs
@@ -12,5 +12,8 @@
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
 
+-- | Checks that the GL_OES_element_index_uint extension is available.
+
 gl_OES_element_index_uint :: Bool
 gl_OES_element_index_uint = member "GL_OES_element_index_uint" extensions
+{-# NOINLINE gl_OES_element_index_uint #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/ExtendedMatrixPalette.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/ExtendedMatrixPalette.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/ExtendedMatrixPalette.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/ExtendedMatrixPalette.hs
@@ -8,5 +8,8 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the GL_OES_extended_matrix_palette extension is available.
+
 gl_OES_extended_matrix_palette :: Bool
 gl_OES_extended_matrix_palette = member "GL_OES_extended_matrix_palette" extensions
+{-# NOINLINE gl_OES_extended_matrix_palette #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/FboRenderMipmap.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/FboRenderMipmap.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/FboRenderMipmap.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/FboRenderMipmap.hs
@@ -8,5 +8,8 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the GL_OES_fbo_render_mipmap extension is available.
+
 gl_OES_fbo_render_mipmap :: Bool
 gl_OES_fbo_render_mipmap = member "GL_OES_fbo_render_mipmap" extensions
+{-# NOINLINE gl_OES_fbo_render_mipmap #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/FixedPoint.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/FixedPoint.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/FixedPoint.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/FixedPoint.hs
@@ -125,9 +125,15 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the GL_OES_fixed_point extension is available.
+
 gl_OES_fixed_point :: Bool
 gl_OES_fixed_point = member "GL_OES_fixed_point" extensions
+{-# NOINLINE gl_OES_fixed_point #-}
 
+-- | Usage: @'glAccumxOES' op value@
+
+
 glAccumxOES :: MonadIO m => GLenum -> GLfixed -> m ()
 glAccumxOES = ffienumfixedIOV glAccumxOESFunPtr
 
@@ -136,6 +142,11 @@
 
 {-# NOINLINE glAccumxOESFunPtr #-}
 
+-- | Usage: @'glAlphaFuncxOES' func ref@
+--
+-- The parameter @ref@ is a @ClampedFixed@.
+
+
 glAlphaFuncxOES :: MonadIO m => GLenum -> GLfixed -> m ()
 glAlphaFuncxOES = ffienumfixedIOV glAlphaFuncxOESFunPtr
 
@@ -144,6 +155,11 @@
 
 {-# NOINLINE glAlphaFuncxOESFunPtr #-}
 
+-- | Usage: @'glBitmapxOES' width height xorig yorig xmove ymove bitmap@
+--
+-- The length of @bitmap@ should be @COMPSIZE(width,height)@.
+
+
 glBitmapxOES :: MonadIO m => GLsizei -> GLsizei -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> Ptr GLubyte -> m ()
 glBitmapxOES = ffisizeisizeifixedfixedfixedfixedPtrubyteIOV glBitmapxOESFunPtr
 
@@ -152,6 +168,17 @@
 
 {-# NOINLINE glBitmapxOESFunPtr #-}
 
+-- | Usage: @'glBlendColorxOES' red green blue alpha@
+--
+-- The parameter @red@ is a @ClampedFixed@.
+--
+-- The parameter @green@ is a @ClampedFixed@.
+--
+-- The parameter @blue@ is a @ClampedFixed@.
+--
+-- The parameter @alpha@ is a @ClampedFixed@.
+
+
 glBlendColorxOES :: MonadIO m => GLfixed -> GLfixed -> GLfixed -> GLfixed -> m ()
 glBlendColorxOES = ffifixedfixedfixedfixedIOV glBlendColorxOESFunPtr
 
@@ -160,6 +187,17 @@
 
 {-# NOINLINE glBlendColorxOESFunPtr #-}
 
+-- | Usage: @'glClearAccumxOES' red green blue alpha@
+--
+-- The parameter @red@ is a @ClampedFixed@.
+--
+-- The parameter @green@ is a @ClampedFixed@.
+--
+-- The parameter @blue@ is a @ClampedFixed@.
+--
+-- The parameter @alpha@ is a @ClampedFixed@.
+
+
 glClearAccumxOES :: MonadIO m => GLfixed -> GLfixed -> GLfixed -> GLfixed -> m ()
 glClearAccumxOES = ffifixedfixedfixedfixedIOV glClearAccumxOESFunPtr
 
@@ -168,6 +206,17 @@
 
 {-# NOINLINE glClearAccumxOESFunPtr #-}
 
+-- | Usage: @'glClearColorxOES' red green blue alpha@
+--
+-- The parameter @red@ is a @ClampedFixed@.
+--
+-- The parameter @green@ is a @ClampedFixed@.
+--
+-- The parameter @blue@ is a @ClampedFixed@.
+--
+-- The parameter @alpha@ is a @ClampedFixed@.
+
+
 glClearColorxOES :: MonadIO m => GLfixed -> GLfixed -> GLfixed -> GLfixed -> m ()
 glClearColorxOES = ffifixedfixedfixedfixedIOV glClearColorxOESFunPtr
 
@@ -176,6 +225,11 @@
 
 {-# NOINLINE glClearColorxOESFunPtr #-}
 
+-- | Usage: @'glClearDepthxOES' depth@
+--
+-- The parameter @depth@ is a @ClampedFixed@.
+
+
 glClearDepthxOES :: MonadIO m => GLfixed -> m ()
 glClearDepthxOES = ffifixedIOV glClearDepthxOESFunPtr
 
@@ -184,6 +238,11 @@
 
 {-# NOINLINE glClearDepthxOESFunPtr #-}
 
+-- | Usage: @'glClipPlanexOES' plane equation@
+--
+-- The length of @equation@ should be @4@.
+
+
 glClipPlanexOES :: MonadIO m => GLenum -> Ptr GLfixed -> m ()
 glClipPlanexOES = ffienumPtrfixedIOV glClipPlanexOESFunPtr
 
@@ -192,6 +251,9 @@
 
 {-# NOINLINE glClipPlanexOESFunPtr #-}
 
+-- | Usage: @'glColor3xOES' red green blue@
+
+
 glColor3xOES :: MonadIO m => GLfixed -> GLfixed -> GLfixed -> m ()
 glColor3xOES = ffifixedfixedfixedIOV glColor3xOESFunPtr
 
@@ -200,6 +262,11 @@
 
 {-# NOINLINE glColor3xOESFunPtr #-}
 
+-- | Usage: @'glColor3xvOES' components@
+--
+-- The length of @components@ should be @3@.
+
+
 glColor3xvOES :: MonadIO m => Ptr GLfixed -> m ()
 glColor3xvOES = ffiPtrfixedIOV glColor3xvOESFunPtr
 
@@ -208,6 +275,9 @@
 
 {-# NOINLINE glColor3xvOESFunPtr #-}
 
+-- | Usage: @'glColor4xOES' red green blue alpha@
+
+
 glColor4xOES :: MonadIO m => GLfixed -> GLfixed -> GLfixed -> GLfixed -> m ()
 glColor4xOES = ffifixedfixedfixedfixedIOV glColor4xOESFunPtr
 
@@ -216,6 +286,11 @@
 
 {-# NOINLINE glColor4xOESFunPtr #-}
 
+-- | Usage: @'glColor4xvOES' components@
+--
+-- The length of @components@ should be @4@.
+
+
 glColor4xvOES :: MonadIO m => Ptr GLfixed -> m ()
 glColor4xvOES = ffiPtrfixedIOV glColor4xvOESFunPtr
 
@@ -224,6 +299,9 @@
 
 {-# NOINLINE glColor4xvOESFunPtr #-}
 
+-- | Usage: @'glConvolutionParameterxOES' target pname param@
+
+
 glConvolutionParameterxOES :: MonadIO m => GLenum -> GLenum -> GLfixed -> m ()
 glConvolutionParameterxOES = ffienumenumfixedIOV glConvolutionParameterxOESFunPtr
 
@@ -232,6 +310,11 @@
 
 {-# NOINLINE glConvolutionParameterxOESFunPtr #-}
 
+-- | Usage: @'glConvolutionParameterxvOES' target pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
 glConvolutionParameterxvOES :: MonadIO m => GLenum -> GLenum -> Ptr GLfixed -> m ()
 glConvolutionParameterxvOES = ffienumenumPtrfixedIOV glConvolutionParameterxvOESFunPtr
 
@@ -240,6 +323,13 @@
 
 {-# NOINLINE glConvolutionParameterxvOESFunPtr #-}
 
+-- | Usage: @'glDepthRangexOES' n f@
+--
+-- The parameter @n@ is a @ClampedFixed@.
+--
+-- The parameter @f@ is a @ClampedFixed@.
+
+
 glDepthRangexOES :: MonadIO m => GLfixed -> GLfixed -> m ()
 glDepthRangexOES = ffifixedfixedIOV glDepthRangexOESFunPtr
 
@@ -248,6 +338,9 @@
 
 {-# NOINLINE glDepthRangexOESFunPtr #-}
 
+-- | Usage: @'glEvalCoord1xOES' u@
+
+
 glEvalCoord1xOES :: MonadIO m => GLfixed -> m ()
 glEvalCoord1xOES = ffifixedIOV glEvalCoord1xOESFunPtr
 
@@ -256,6 +349,11 @@
 
 {-# NOINLINE glEvalCoord1xOESFunPtr #-}
 
+-- | Usage: @'glEvalCoord1xvOES' coords@
+--
+-- The length of @coords@ should be @1@.
+
+
 glEvalCoord1xvOES :: MonadIO m => Ptr GLfixed -> m ()
 glEvalCoord1xvOES = ffiPtrfixedIOV glEvalCoord1xvOESFunPtr
 
@@ -264,6 +362,9 @@
 
 {-# NOINLINE glEvalCoord1xvOESFunPtr #-}
 
+-- | Usage: @'glEvalCoord2xOES' u v@
+
+
 glEvalCoord2xOES :: MonadIO m => GLfixed -> GLfixed -> m ()
 glEvalCoord2xOES = ffifixedfixedIOV glEvalCoord2xOESFunPtr
 
@@ -272,6 +373,11 @@
 
 {-# NOINLINE glEvalCoord2xOESFunPtr #-}
 
+-- | Usage: @'glEvalCoord2xvOES' coords@
+--
+-- The length of @coords@ should be @2@.
+
+
 glEvalCoord2xvOES :: MonadIO m => Ptr GLfixed -> m ()
 glEvalCoord2xvOES = ffiPtrfixedIOV glEvalCoord2xvOESFunPtr
 
@@ -280,6 +386,11 @@
 
 {-# NOINLINE glEvalCoord2xvOESFunPtr #-}
 
+-- | Usage: @'glFeedbackBufferxOES' n type buffer@
+--
+-- The length of @buffer@ should be @n@.
+
+
 glFeedbackBufferxOES :: MonadIO m => GLsizei -> GLenum -> Ptr GLfixed -> m ()
 glFeedbackBufferxOES = ffisizeienumPtrfixedIOV glFeedbackBufferxOESFunPtr
 
@@ -288,6 +399,9 @@
 
 {-# NOINLINE glFeedbackBufferxOESFunPtr #-}
 
+-- | Usage: @'glFogxOES' pname param@
+
+
 glFogxOES :: MonadIO m => GLenum -> GLfixed -> m ()
 glFogxOES = ffienumfixedIOV glFogxOESFunPtr
 
@@ -296,6 +410,11 @@
 
 {-# NOINLINE glFogxOESFunPtr #-}
 
+-- | Usage: @'glFogxvOES' pname param@
+--
+-- The length of @param@ should be @COMPSIZE(pname)@.
+
+
 glFogxvOES :: MonadIO m => GLenum -> Ptr GLfixed -> m ()
 glFogxvOES = ffienumPtrfixedIOV glFogxvOESFunPtr
 
@@ -304,6 +423,9 @@
 
 {-# NOINLINE glFogxvOESFunPtr #-}
 
+-- | Usage: @'glFrustumxOES' l r b t n f@
+
+
 glFrustumxOES :: MonadIO m => GLfixed -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> m ()
 glFrustumxOES = ffifixedfixedfixedfixedfixedfixedIOV glFrustumxOESFunPtr
 
@@ -312,6 +434,11 @@
 
 {-# NOINLINE glFrustumxOESFunPtr #-}
 
+-- | Usage: @'glGetClipPlanexOES' plane equation@
+--
+-- The length of @equation@ should be @4@.
+
+
 glGetClipPlanexOES :: MonadIO m => GLenum -> Ptr GLfixed -> m ()
 glGetClipPlanexOES = ffienumPtrfixedIOV glGetClipPlanexOESFunPtr
 
@@ -320,6 +447,11 @@
 
 {-# NOINLINE glGetClipPlanexOESFunPtr #-}
 
+-- | Usage: @'glGetConvolutionParameterxvOES' target pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
 glGetConvolutionParameterxvOES :: MonadIO m => GLenum -> GLenum -> Ptr GLfixed -> m ()
 glGetConvolutionParameterxvOES = ffienumenumPtrfixedIOV glGetConvolutionParameterxvOESFunPtr
 
@@ -328,6 +460,11 @@
 
 {-# NOINLINE glGetConvolutionParameterxvOESFunPtr #-}
 
+-- | Usage: @'glGetFixedvOES' pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
 glGetFixedvOES :: MonadIO m => GLenum -> Ptr GLfixed -> m ()
 glGetFixedvOES = ffienumPtrfixedIOV glGetFixedvOESFunPtr
 
@@ -336,6 +473,11 @@
 
 {-# NOINLINE glGetFixedvOESFunPtr #-}
 
+-- | Usage: @'glGetHistogramParameterxvOES' target pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
 glGetHistogramParameterxvOES :: MonadIO m => GLenum -> GLenum -> Ptr GLfixed -> m ()
 glGetHistogramParameterxvOES = ffienumenumPtrfixedIOV glGetHistogramParameterxvOESFunPtr
 
@@ -344,6 +486,11 @@
 
 {-# NOINLINE glGetHistogramParameterxvOESFunPtr #-}
 
+-- | Usage: @'glGetLightxOES' light pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
 glGetLightxOES :: MonadIO m => GLenum -> GLenum -> Ptr GLfixed -> m ()
 glGetLightxOES = ffienumenumPtrfixedIOV glGetLightxOESFunPtr
 
@@ -352,6 +499,11 @@
 
 {-# NOINLINE glGetLightxOESFunPtr #-}
 
+-- | Usage: @'glGetLightxvOES' light pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
 glGetLightxvOES :: MonadIO m => GLenum -> GLenum -> Ptr GLfixed -> m ()
 glGetLightxvOES = ffienumenumPtrfixedIOV glGetLightxvOESFunPtr
 
@@ -360,6 +512,11 @@
 
 {-# NOINLINE glGetLightxvOESFunPtr #-}
 
+-- | Usage: @'glGetMapxvOES' target query v@
+--
+-- The length of @v@ should be @COMPSIZE(query)@.
+
+
 glGetMapxvOES :: MonadIO m => GLenum -> GLenum -> Ptr GLfixed -> m ()
 glGetMapxvOES = ffienumenumPtrfixedIOV glGetMapxvOESFunPtr
 
@@ -368,6 +525,9 @@
 
 {-# NOINLINE glGetMapxvOESFunPtr #-}
 
+-- | Usage: @'glGetMaterialxOES' face pname param@
+
+
 glGetMaterialxOES :: MonadIO m => GLenum -> GLenum -> GLfixed -> m ()
 glGetMaterialxOES = ffienumenumfixedIOV glGetMaterialxOESFunPtr
 
@@ -376,6 +536,11 @@
 
 {-# NOINLINE glGetMaterialxOESFunPtr #-}
 
+-- | Usage: @'glGetMaterialxvOES' face pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
 glGetMaterialxvOES :: MonadIO m => GLenum -> GLenum -> Ptr GLfixed -> m ()
 glGetMaterialxvOES = ffienumenumPtrfixedIOV glGetMaterialxvOESFunPtr
 
@@ -384,6 +549,11 @@
 
 {-# NOINLINE glGetMaterialxvOESFunPtr #-}
 
+-- | Usage: @'glGetPixelMapxv' map size values@
+--
+-- The length of @values@ should be @size@.
+
+
 glGetPixelMapxv :: MonadIO m => GLenum -> GLint -> Ptr GLfixed -> m ()
 glGetPixelMapxv = ffienumintPtrfixedIOV glGetPixelMapxvFunPtr
 
@@ -392,6 +562,11 @@
 
 {-# NOINLINE glGetPixelMapxvFunPtr #-}
 
+-- | Usage: @'glGetTexEnvxvOES' target pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
 glGetTexEnvxvOES :: MonadIO m => GLenum -> GLenum -> Ptr GLfixed -> m ()
 glGetTexEnvxvOES = ffienumenumPtrfixedIOV glGetTexEnvxvOESFunPtr
 
@@ -400,6 +575,11 @@
 
 {-# NOINLINE glGetTexEnvxvOESFunPtr #-}
 
+-- | Usage: @'glGetTexLevelParameterxvOES' target level pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
 glGetTexLevelParameterxvOES :: MonadIO m => GLenum -> GLint -> GLenum -> Ptr GLfixed -> m ()
 glGetTexLevelParameterxvOES = ffienumintenumPtrfixedIOV glGetTexLevelParameterxvOESFunPtr
 
@@ -408,6 +588,11 @@
 
 {-# NOINLINE glGetTexLevelParameterxvOESFunPtr #-}
 
+-- | Usage: @'glGetTexParameterxvOES' target pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
 glGetTexParameterxvOES :: MonadIO m => GLenum -> GLenum -> Ptr GLfixed -> m ()
 glGetTexParameterxvOES = ffienumenumPtrfixedIOV glGetTexParameterxvOESFunPtr
 
@@ -416,6 +601,9 @@
 
 {-# NOINLINE glGetTexParameterxvOESFunPtr #-}
 
+-- | Usage: @'glIndexxOES' component@
+
+
 glIndexxOES :: MonadIO m => GLfixed -> m ()
 glIndexxOES = ffifixedIOV glIndexxOESFunPtr
 
@@ -424,6 +612,11 @@
 
 {-# NOINLINE glIndexxOESFunPtr #-}
 
+-- | Usage: @'glIndexxvOES' component@
+--
+-- The length of @component@ should be @1@.
+
+
 glIndexxvOES :: MonadIO m => Ptr GLfixed -> m ()
 glIndexxvOES = ffiPtrfixedIOV glIndexxvOESFunPtr
 
@@ -432,6 +625,9 @@
 
 {-# NOINLINE glIndexxvOESFunPtr #-}
 
+-- | Usage: @'glLightModelxOES' pname param@
+
+
 glLightModelxOES :: MonadIO m => GLenum -> GLfixed -> m ()
 glLightModelxOES = ffienumfixedIOV glLightModelxOESFunPtr
 
@@ -440,6 +636,11 @@
 
 {-# NOINLINE glLightModelxOESFunPtr #-}
 
+-- | Usage: @'glLightModelxvOES' pname param@
+--
+-- The length of @param@ should be @COMPSIZE(pname)@.
+
+
 glLightModelxvOES :: MonadIO m => GLenum -> Ptr GLfixed -> m ()
 glLightModelxvOES = ffienumPtrfixedIOV glLightModelxvOESFunPtr
 
@@ -448,6 +649,9 @@
 
 {-# NOINLINE glLightModelxvOESFunPtr #-}
 
+-- | Usage: @'glLightxOES' light pname param@
+
+
 glLightxOES :: MonadIO m => GLenum -> GLenum -> GLfixed -> m ()
 glLightxOES = ffienumenumfixedIOV glLightxOESFunPtr
 
@@ -456,6 +660,11 @@
 
 {-# NOINLINE glLightxOESFunPtr #-}
 
+-- | Usage: @'glLightxvOES' light pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
 glLightxvOES :: MonadIO m => GLenum -> GLenum -> Ptr GLfixed -> m ()
 glLightxvOES = ffienumenumPtrfixedIOV glLightxvOESFunPtr
 
@@ -464,6 +673,9 @@
 
 {-# NOINLINE glLightxvOESFunPtr #-}
 
+-- | Usage: @'glLineWidthxOES' width@
+
+
 glLineWidthxOES :: MonadIO m => GLfixed -> m ()
 glLineWidthxOES = ffifixedIOV glLineWidthxOESFunPtr
 
@@ -472,6 +684,11 @@
 
 {-# NOINLINE glLineWidthxOESFunPtr #-}
 
+-- | Usage: @'glLoadMatrixxOES' m@
+--
+-- The length of @m@ should be @16@.
+
+
 glLoadMatrixxOES :: MonadIO m => Ptr GLfixed -> m ()
 glLoadMatrixxOES = ffiPtrfixedIOV glLoadMatrixxOESFunPtr
 
@@ -480,6 +697,11 @@
 
 {-# NOINLINE glLoadMatrixxOESFunPtr #-}
 
+-- | Usage: @'glLoadTransposeMatrixxOES' m@
+--
+-- The length of @m@ should be @16@.
+
+
 glLoadTransposeMatrixxOES :: MonadIO m => Ptr GLfixed -> m ()
 glLoadTransposeMatrixxOES = ffiPtrfixedIOV glLoadTransposeMatrixxOESFunPtr
 
@@ -488,6 +710,9 @@
 
 {-# NOINLINE glLoadTransposeMatrixxOESFunPtr #-}
 
+-- | Usage: @'glMap1xOES' target u1 u2 stride order points@
+
+
 glMap1xOES :: MonadIO m => GLenum -> GLfixed -> GLfixed -> GLint -> GLint -> GLfixed -> m ()
 glMap1xOES = ffienumfixedfixedintintfixedIOV glMap1xOESFunPtr
 
@@ -496,6 +721,9 @@
 
 {-# NOINLINE glMap1xOESFunPtr #-}
 
+-- | Usage: @'glMap2xOES' target u1 u2 ustride uorder v1 v2 vstride vorder points@
+
+
 glMap2xOES :: MonadIO m => GLenum -> GLfixed -> GLfixed -> GLint -> GLint -> GLfixed -> GLfixed -> GLint -> GLint -> GLfixed -> m ()
 glMap2xOES = ffienumfixedfixedintintfixedfixedintintfixedIOV glMap2xOESFunPtr
 
@@ -504,6 +732,9 @@
 
 {-# NOINLINE glMap2xOESFunPtr #-}
 
+-- | Usage: @'glMapGrid1xOES' n u1 u2@
+
+
 glMapGrid1xOES :: MonadIO m => GLint -> GLfixed -> GLfixed -> m ()
 glMapGrid1xOES = ffiintfixedfixedIOV glMapGrid1xOESFunPtr
 
@@ -512,6 +743,9 @@
 
 {-# NOINLINE glMapGrid1xOESFunPtr #-}
 
+-- | Usage: @'glMapGrid2xOES' n u1 u2 v1 v2@
+
+
 glMapGrid2xOES :: MonadIO m => GLint -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> m ()
 glMapGrid2xOES = ffiintfixedfixedfixedfixedIOV glMapGrid2xOESFunPtr
 
@@ -520,6 +754,9 @@
 
 {-# NOINLINE glMapGrid2xOESFunPtr #-}
 
+-- | Usage: @'glMaterialxOES' face pname param@
+
+
 glMaterialxOES :: MonadIO m => GLenum -> GLenum -> GLfixed -> m ()
 glMaterialxOES = ffienumenumfixedIOV glMaterialxOESFunPtr
 
@@ -528,6 +765,11 @@
 
 {-# NOINLINE glMaterialxOESFunPtr #-}
 
+-- | Usage: @'glMaterialxvOES' face pname param@
+--
+-- The length of @param@ should be @COMPSIZE(pname)@.
+
+
 glMaterialxvOES :: MonadIO m => GLenum -> GLenum -> Ptr GLfixed -> m ()
 glMaterialxvOES = ffienumenumPtrfixedIOV glMaterialxvOESFunPtr
 
@@ -536,6 +778,11 @@
 
 {-# NOINLINE glMaterialxvOESFunPtr #-}
 
+-- | Usage: @'glMultMatrixxOES' m@
+--
+-- The length of @m@ should be @16@.
+
+
 glMultMatrixxOES :: MonadIO m => Ptr GLfixed -> m ()
 glMultMatrixxOES = ffiPtrfixedIOV glMultMatrixxOESFunPtr
 
@@ -544,6 +791,11 @@
 
 {-# NOINLINE glMultMatrixxOESFunPtr #-}
 
+-- | Usage: @'glMultTransposeMatrixxOES' m@
+--
+-- The length of @m@ should be @16@.
+
+
 glMultTransposeMatrixxOES :: MonadIO m => Ptr GLfixed -> m ()
 glMultTransposeMatrixxOES = ffiPtrfixedIOV glMultTransposeMatrixxOESFunPtr
 
@@ -552,6 +804,9 @@
 
 {-# NOINLINE glMultTransposeMatrixxOESFunPtr #-}
 
+-- | Usage: @'glMultiTexCoord1xOES' texture s@
+
+
 glMultiTexCoord1xOES :: MonadIO m => GLenum -> GLfixed -> m ()
 glMultiTexCoord1xOES = ffienumfixedIOV glMultiTexCoord1xOESFunPtr
 
@@ -560,6 +815,11 @@
 
 {-# NOINLINE glMultiTexCoord1xOESFunPtr #-}
 
+-- | Usage: @'glMultiTexCoord1xvOES' texture coords@
+--
+-- The length of @coords@ should be @1@.
+
+
 glMultiTexCoord1xvOES :: MonadIO m => GLenum -> Ptr GLfixed -> m ()
 glMultiTexCoord1xvOES = ffienumPtrfixedIOV glMultiTexCoord1xvOESFunPtr
 
@@ -568,6 +828,9 @@
 
 {-# NOINLINE glMultiTexCoord1xvOESFunPtr #-}
 
+-- | Usage: @'glMultiTexCoord2xOES' texture s t@
+
+
 glMultiTexCoord2xOES :: MonadIO m => GLenum -> GLfixed -> GLfixed -> m ()
 glMultiTexCoord2xOES = ffienumfixedfixedIOV glMultiTexCoord2xOESFunPtr
 
@@ -576,6 +839,11 @@
 
 {-# NOINLINE glMultiTexCoord2xOESFunPtr #-}
 
+-- | Usage: @'glMultiTexCoord2xvOES' texture coords@
+--
+-- The length of @coords@ should be @2@.
+
+
 glMultiTexCoord2xvOES :: MonadIO m => GLenum -> Ptr GLfixed -> m ()
 glMultiTexCoord2xvOES = ffienumPtrfixedIOV glMultiTexCoord2xvOESFunPtr
 
@@ -584,6 +852,9 @@
 
 {-# NOINLINE glMultiTexCoord2xvOESFunPtr #-}
 
+-- | Usage: @'glMultiTexCoord3xOES' texture s t r@
+
+
 glMultiTexCoord3xOES :: MonadIO m => GLenum -> GLfixed -> GLfixed -> GLfixed -> m ()
 glMultiTexCoord3xOES = ffienumfixedfixedfixedIOV glMultiTexCoord3xOESFunPtr
 
@@ -592,6 +863,11 @@
 
 {-# NOINLINE glMultiTexCoord3xOESFunPtr #-}
 
+-- | Usage: @'glMultiTexCoord3xvOES' texture coords@
+--
+-- The length of @coords@ should be @3@.
+
+
 glMultiTexCoord3xvOES :: MonadIO m => GLenum -> Ptr GLfixed -> m ()
 glMultiTexCoord3xvOES = ffienumPtrfixedIOV glMultiTexCoord3xvOESFunPtr
 
@@ -600,6 +876,9 @@
 
 {-# NOINLINE glMultiTexCoord3xvOESFunPtr #-}
 
+-- | Usage: @'glMultiTexCoord4xOES' texture s t r q@
+
+
 glMultiTexCoord4xOES :: MonadIO m => GLenum -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> m ()
 glMultiTexCoord4xOES = ffienumfixedfixedfixedfixedIOV glMultiTexCoord4xOESFunPtr
 
@@ -608,6 +887,11 @@
 
 {-# NOINLINE glMultiTexCoord4xOESFunPtr #-}
 
+-- | Usage: @'glMultiTexCoord4xvOES' texture coords@
+--
+-- The length of @coords@ should be @4@.
+
+
 glMultiTexCoord4xvOES :: MonadIO m => GLenum -> Ptr GLfixed -> m ()
 glMultiTexCoord4xvOES = ffienumPtrfixedIOV glMultiTexCoord4xvOESFunPtr
 
@@ -616,6 +900,9 @@
 
 {-# NOINLINE glMultiTexCoord4xvOESFunPtr #-}
 
+-- | Usage: @'glNormal3xOES' nx ny nz@
+
+
 glNormal3xOES :: MonadIO m => GLfixed -> GLfixed -> GLfixed -> m ()
 glNormal3xOES = ffifixedfixedfixedIOV glNormal3xOESFunPtr
 
@@ -624,6 +911,11 @@
 
 {-# NOINLINE glNormal3xOESFunPtr #-}
 
+-- | Usage: @'glNormal3xvOES' coords@
+--
+-- The length of @coords@ should be @3@.
+
+
 glNormal3xvOES :: MonadIO m => Ptr GLfixed -> m ()
 glNormal3xvOES = ffiPtrfixedIOV glNormal3xvOESFunPtr
 
@@ -632,6 +924,9 @@
 
 {-# NOINLINE glNormal3xvOESFunPtr #-}
 
+-- | Usage: @'glOrthoxOES' l r b t n f@
+
+
 glOrthoxOES :: MonadIO m => GLfixed -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> m ()
 glOrthoxOES = ffifixedfixedfixedfixedfixedfixedIOV glOrthoxOESFunPtr
 
@@ -640,6 +935,9 @@
 
 {-# NOINLINE glOrthoxOESFunPtr #-}
 
+-- | Usage: @'glPassThroughxOES' token@
+
+
 glPassThroughxOES :: MonadIO m => GLfixed -> m ()
 glPassThroughxOES = ffifixedIOV glPassThroughxOESFunPtr
 
@@ -648,6 +946,11 @@
 
 {-# NOINLINE glPassThroughxOESFunPtr #-}
 
+-- | Usage: @'glPixelMapx' map size values@
+--
+-- The length of @values@ should be @size@.
+
+
 glPixelMapx :: MonadIO m => GLenum -> GLint -> Ptr GLfixed -> m ()
 glPixelMapx = ffienumintPtrfixedIOV glPixelMapxFunPtr
 
@@ -656,6 +959,9 @@
 
 {-# NOINLINE glPixelMapxFunPtr #-}
 
+-- | Usage: @'glPixelStorex' pname param@
+
+
 glPixelStorex :: MonadIO m => GLenum -> GLfixed -> m ()
 glPixelStorex = ffienumfixedIOV glPixelStorexFunPtr
 
@@ -664,6 +970,9 @@
 
 {-# NOINLINE glPixelStorexFunPtr #-}
 
+-- | Usage: @'glPixelTransferxOES' pname param@
+
+
 glPixelTransferxOES :: MonadIO m => GLenum -> GLfixed -> m ()
 glPixelTransferxOES = ffienumfixedIOV glPixelTransferxOESFunPtr
 
@@ -672,6 +981,9 @@
 
 {-# NOINLINE glPixelTransferxOESFunPtr #-}
 
+-- | Usage: @'glPixelZoomxOES' xfactor yfactor@
+
+
 glPixelZoomxOES :: MonadIO m => GLfixed -> GLfixed -> m ()
 glPixelZoomxOES = ffifixedfixedIOV glPixelZoomxOESFunPtr
 
@@ -680,6 +992,9 @@
 
 {-# NOINLINE glPixelZoomxOESFunPtr #-}
 
+-- | Usage: @'glPointParameterxOES' pname param@
+
+
 glPointParameterxOES :: MonadIO m => GLenum -> GLfixed -> m ()
 glPointParameterxOES = ffienumfixedIOV glPointParameterxOESFunPtr
 
@@ -688,6 +1003,11 @@
 
 {-# NOINLINE glPointParameterxOESFunPtr #-}
 
+-- | Usage: @'glPointParameterxvOES' pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
 glPointParameterxvOES :: MonadIO m => GLenum -> Ptr GLfixed -> m ()
 glPointParameterxvOES = ffienumPtrfixedIOV glPointParameterxvOESFunPtr
 
@@ -696,6 +1016,9 @@
 
 {-# NOINLINE glPointParameterxvOESFunPtr #-}
 
+-- | Usage: @'glPointSizexOES' size@
+
+
 glPointSizexOES :: MonadIO m => GLfixed -> m ()
 glPointSizexOES = ffifixedIOV glPointSizexOESFunPtr
 
@@ -704,6 +1027,9 @@
 
 {-# NOINLINE glPointSizexOESFunPtr #-}
 
+-- | Usage: @'glPolygonOffsetxOES' factor units@
+
+
 glPolygonOffsetxOES :: MonadIO m => GLfixed -> GLfixed -> m ()
 glPolygonOffsetxOES = ffifixedfixedIOV glPolygonOffsetxOESFunPtr
 
@@ -712,6 +1038,15 @@
 
 {-# NOINLINE glPolygonOffsetxOESFunPtr #-}
 
+-- | Usage: @'glPrioritizeTexturesxOES' n textures priorities@
+--
+-- The parameter @priorities@ is a @ClampedFixed@.
+--
+-- The length of @textures@ should be @n@.
+--
+-- The length of @priorities@ should be @n@.
+
+
 glPrioritizeTexturesxOES :: MonadIO m => GLsizei -> Ptr GLuint -> Ptr GLfixed -> m ()
 glPrioritizeTexturesxOES = ffisizeiPtruintPtrfixedIOV glPrioritizeTexturesxOESFunPtr
 
@@ -720,6 +1055,9 @@
 
 {-# NOINLINE glPrioritizeTexturesxOESFunPtr #-}
 
+-- | Usage: @'glRasterPos2xOES' x y@
+
+
 glRasterPos2xOES :: MonadIO m => GLfixed -> GLfixed -> m ()
 glRasterPos2xOES = ffifixedfixedIOV glRasterPos2xOESFunPtr
 
@@ -728,6 +1066,11 @@
 
 {-# NOINLINE glRasterPos2xOESFunPtr #-}
 
+-- | Usage: @'glRasterPos2xvOES' coords@
+--
+-- The length of @coords@ should be @2@.
+
+
 glRasterPos2xvOES :: MonadIO m => Ptr GLfixed -> m ()
 glRasterPos2xvOES = ffiPtrfixedIOV glRasterPos2xvOESFunPtr
 
@@ -736,6 +1079,9 @@
 
 {-# NOINLINE glRasterPos2xvOESFunPtr #-}
 
+-- | Usage: @'glRasterPos3xOES' x y z@
+
+
 glRasterPos3xOES :: MonadIO m => GLfixed -> GLfixed -> GLfixed -> m ()
 glRasterPos3xOES = ffifixedfixedfixedIOV glRasterPos3xOESFunPtr
 
@@ -744,6 +1090,11 @@
 
 {-# NOINLINE glRasterPos3xOESFunPtr #-}
 
+-- | Usage: @'glRasterPos3xvOES' coords@
+--
+-- The length of @coords@ should be @3@.
+
+
 glRasterPos3xvOES :: MonadIO m => Ptr GLfixed -> m ()
 glRasterPos3xvOES = ffiPtrfixedIOV glRasterPos3xvOESFunPtr
 
@@ -752,6 +1103,9 @@
 
 {-# NOINLINE glRasterPos3xvOESFunPtr #-}
 
+-- | Usage: @'glRasterPos4xOES' x y z w@
+
+
 glRasterPos4xOES :: MonadIO m => GLfixed -> GLfixed -> GLfixed -> GLfixed -> m ()
 glRasterPos4xOES = ffifixedfixedfixedfixedIOV glRasterPos4xOESFunPtr
 
@@ -760,6 +1114,11 @@
 
 {-# NOINLINE glRasterPos4xOESFunPtr #-}
 
+-- | Usage: @'glRasterPos4xvOES' coords@
+--
+-- The length of @coords@ should be @4@.
+
+
 glRasterPos4xvOES :: MonadIO m => Ptr GLfixed -> m ()
 glRasterPos4xvOES = ffiPtrfixedIOV glRasterPos4xvOESFunPtr
 
@@ -768,6 +1127,9 @@
 
 {-# NOINLINE glRasterPos4xvOESFunPtr #-}
 
+-- | Usage: @'glRectxOES' x1 y1 x2 y2@
+
+
 glRectxOES :: MonadIO m => GLfixed -> GLfixed -> GLfixed -> GLfixed -> m ()
 glRectxOES = ffifixedfixedfixedfixedIOV glRectxOESFunPtr
 
@@ -776,6 +1138,13 @@
 
 {-# NOINLINE glRectxOESFunPtr #-}
 
+-- | Usage: @'glRectxvOES' v1 v2@
+--
+-- The length of @v1@ should be @2@.
+--
+-- The length of @v2@ should be @2@.
+
+
 glRectxvOES :: MonadIO m => Ptr GLfixed -> Ptr GLfixed -> m ()
 glRectxvOES = ffiPtrfixedPtrfixedIOV glRectxvOESFunPtr
 
@@ -784,6 +1153,9 @@
 
 {-# NOINLINE glRectxvOESFunPtr #-}
 
+-- | Usage: @'glRotatexOES' angle x y z@
+
+
 glRotatexOES :: MonadIO m => GLfixed -> GLfixed -> GLfixed -> GLfixed -> m ()
 glRotatexOES = ffifixedfixedfixedfixedIOV glRotatexOESFunPtr
 
@@ -792,6 +1164,13 @@
 
 {-# NOINLINE glRotatexOESFunPtr #-}
 
+-- | Usage: @'glSampleCoverageOES' value invert@
+--
+-- The parameter @value@ is a @ClampedFixed@.
+--
+-- The parameter @invert@ is a @Boolean@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FALSE', 'Graphics.GL.Raw.Internal.Shared.GL_TRUE'.
+
+
 glSampleCoverageOES :: MonadIO m => GLfixed -> GLboolean -> m ()
 glSampleCoverageOES = ffifixedbooleanIOV glSampleCoverageOESFunPtr
 
@@ -800,6 +1179,9 @@
 
 {-# NOINLINE glSampleCoverageOESFunPtr #-}
 
+-- | Usage: @'glSampleCoveragexOES' value invert@
+
+
 glSampleCoveragexOES :: MonadIO m => GLclampx -> GLboolean -> m ()
 glSampleCoveragexOES = fficlampxbooleanIOV glSampleCoveragexOESFunPtr
 
@@ -808,6 +1190,9 @@
 
 {-# NOINLINE glSampleCoveragexOESFunPtr #-}
 
+-- | Usage: @'glScalexOES' x y z@
+
+
 glScalexOES :: MonadIO m => GLfixed -> GLfixed -> GLfixed -> m ()
 glScalexOES = ffifixedfixedfixedIOV glScalexOESFunPtr
 
@@ -816,6 +1201,9 @@
 
 {-# NOINLINE glScalexOESFunPtr #-}
 
+-- | Usage: @'glTexCoord1xOES' s@
+
+
 glTexCoord1xOES :: MonadIO m => GLfixed -> m ()
 glTexCoord1xOES = ffifixedIOV glTexCoord1xOESFunPtr
 
@@ -824,6 +1212,11 @@
 
 {-# NOINLINE glTexCoord1xOESFunPtr #-}
 
+-- | Usage: @'glTexCoord1xvOES' coords@
+--
+-- The length of @coords@ should be @1@.
+
+
 glTexCoord1xvOES :: MonadIO m => Ptr GLfixed -> m ()
 glTexCoord1xvOES = ffiPtrfixedIOV glTexCoord1xvOESFunPtr
 
@@ -832,6 +1225,9 @@
 
 {-# NOINLINE glTexCoord1xvOESFunPtr #-}
 
+-- | Usage: @'glTexCoord2xOES' s t@
+
+
 glTexCoord2xOES :: MonadIO m => GLfixed -> GLfixed -> m ()
 glTexCoord2xOES = ffifixedfixedIOV glTexCoord2xOESFunPtr
 
@@ -840,6 +1236,11 @@
 
 {-# NOINLINE glTexCoord2xOESFunPtr #-}
 
+-- | Usage: @'glTexCoord2xvOES' coords@
+--
+-- The length of @coords@ should be @2@.
+
+
 glTexCoord2xvOES :: MonadIO m => Ptr GLfixed -> m ()
 glTexCoord2xvOES = ffiPtrfixedIOV glTexCoord2xvOESFunPtr
 
@@ -848,6 +1249,9 @@
 
 {-# NOINLINE glTexCoord2xvOESFunPtr #-}
 
+-- | Usage: @'glTexCoord3xOES' s t r@
+
+
 glTexCoord3xOES :: MonadIO m => GLfixed -> GLfixed -> GLfixed -> m ()
 glTexCoord3xOES = ffifixedfixedfixedIOV glTexCoord3xOESFunPtr
 
@@ -856,6 +1260,11 @@
 
 {-# NOINLINE glTexCoord3xOESFunPtr #-}
 
+-- | Usage: @'glTexCoord3xvOES' coords@
+--
+-- The length of @coords@ should be @3@.
+
+
 glTexCoord3xvOES :: MonadIO m => Ptr GLfixed -> m ()
 glTexCoord3xvOES = ffiPtrfixedIOV glTexCoord3xvOESFunPtr
 
@@ -864,6 +1273,9 @@
 
 {-# NOINLINE glTexCoord3xvOESFunPtr #-}
 
+-- | Usage: @'glTexCoord4xOES' s t r q@
+
+
 glTexCoord4xOES :: MonadIO m => GLfixed -> GLfixed -> GLfixed -> GLfixed -> m ()
 glTexCoord4xOES = ffifixedfixedfixedfixedIOV glTexCoord4xOESFunPtr
 
@@ -872,6 +1284,11 @@
 
 {-# NOINLINE glTexCoord4xOESFunPtr #-}
 
+-- | Usage: @'glTexCoord4xvOES' coords@
+--
+-- The length of @coords@ should be @4@.
+
+
 glTexCoord4xvOES :: MonadIO m => Ptr GLfixed -> m ()
 glTexCoord4xvOES = ffiPtrfixedIOV glTexCoord4xvOESFunPtr
 
@@ -880,6 +1297,9 @@
 
 {-# NOINLINE glTexCoord4xvOESFunPtr #-}
 
+-- | Usage: @'glTexEnvxOES' target pname param@
+
+
 glTexEnvxOES :: MonadIO m => GLenum -> GLenum -> GLfixed -> m ()
 glTexEnvxOES = ffienumenumfixedIOV glTexEnvxOESFunPtr
 
@@ -888,6 +1308,11 @@
 
 {-# NOINLINE glTexEnvxOESFunPtr #-}
 
+-- | Usage: @'glTexEnvxvOES' target pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
 glTexEnvxvOES :: MonadIO m => GLenum -> GLenum -> Ptr GLfixed -> m ()
 glTexEnvxvOES = ffienumenumPtrfixedIOV glTexEnvxvOESFunPtr
 
@@ -896,6 +1321,9 @@
 
 {-# NOINLINE glTexEnvxvOESFunPtr #-}
 
+-- | Usage: @'glTexParameterxOES' target pname param@
+
+
 glTexParameterxOES :: MonadIO m => GLenum -> GLenum -> GLfixed -> m ()
 glTexParameterxOES = ffienumenumfixedIOV glTexParameterxOESFunPtr
 
@@ -904,6 +1332,11 @@
 
 {-# NOINLINE glTexParameterxOESFunPtr #-}
 
+-- | Usage: @'glTexParameterxvOES' target pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
 glTexParameterxvOES :: MonadIO m => GLenum -> GLenum -> Ptr GLfixed -> m ()
 glTexParameterxvOES = ffienumenumPtrfixedIOV glTexParameterxvOESFunPtr
 
@@ -912,6 +1345,9 @@
 
 {-# NOINLINE glTexParameterxvOESFunPtr #-}
 
+-- | Usage: @'glTranslatexOES' x y z@
+
+
 glTranslatexOES :: MonadIO m => GLfixed -> GLfixed -> GLfixed -> m ()
 glTranslatexOES = ffifixedfixedfixedIOV glTranslatexOESFunPtr
 
@@ -920,6 +1356,9 @@
 
 {-# NOINLINE glTranslatexOESFunPtr #-}
 
+-- | Usage: @'glVertex2xOES' x@
+
+
 glVertex2xOES :: MonadIO m => GLfixed -> m ()
 glVertex2xOES = ffifixedIOV glVertex2xOESFunPtr
 
@@ -928,6 +1367,11 @@
 
 {-# NOINLINE glVertex2xOESFunPtr #-}
 
+-- | Usage: @'glVertex2xvOES' coords@
+--
+-- The length of @coords@ should be @2@.
+
+
 glVertex2xvOES :: MonadIO m => Ptr GLfixed -> m ()
 glVertex2xvOES = ffiPtrfixedIOV glVertex2xvOESFunPtr
 
@@ -936,6 +1380,9 @@
 
 {-# NOINLINE glVertex2xvOESFunPtr #-}
 
+-- | Usage: @'glVertex3xOES' x y@
+
+
 glVertex3xOES :: MonadIO m => GLfixed -> GLfixed -> m ()
 glVertex3xOES = ffifixedfixedIOV glVertex3xOESFunPtr
 
@@ -944,6 +1391,11 @@
 
 {-# NOINLINE glVertex3xOESFunPtr #-}
 
+-- | Usage: @'glVertex3xvOES' coords@
+--
+-- The length of @coords@ should be @3@.
+
+
 glVertex3xvOES :: MonadIO m => Ptr GLfixed -> m ()
 glVertex3xvOES = ffiPtrfixedIOV glVertex3xvOESFunPtr
 
@@ -952,6 +1404,9 @@
 
 {-# NOINLINE glVertex3xvOESFunPtr #-}
 
+-- | Usage: @'glVertex4xOES' x y z@
+
+
 glVertex4xOES :: MonadIO m => GLfixed -> GLfixed -> GLfixed -> m ()
 glVertex4xOES = ffifixedfixedfixedIOV glVertex4xOESFunPtr
 
@@ -959,6 +1414,11 @@
 glVertex4xOESFunPtr = unsafePerformIO (getProcAddress "glVertex4xOES")
 
 {-# NOINLINE glVertex4xOESFunPtr #-}
+
+-- | Usage: @'glVertex4xvOES' coords@
+--
+-- The length of @coords@ should be @4@.
+
 
 glVertex4xvOES :: MonadIO m => Ptr GLfixed -> m ()
 glVertex4xvOES = ffiPtrfixedIOV glVertex4xvOESFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/FragmentPrecisionHigh.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/FragmentPrecisionHigh.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/FragmentPrecisionHigh.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/FragmentPrecisionHigh.hs
@@ -8,5 +8,8 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the GL_OES_fragment_precision_high extension is available.
+
 gl_OES_fragment_precision_high :: Bool
 gl_OES_fragment_precision_high = member "GL_OES_fragment_precision_high" extensions
+{-# NOINLINE gl_OES_fragment_precision_high #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/FramebufferObject.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/FramebufferObject.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/FramebufferObject.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/FramebufferObject.hs
@@ -64,9 +64,15 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the GL_OES_framebuffer_object extension is available.
+
 gl_OES_framebuffer_object :: Bool
 gl_OES_framebuffer_object = member "GL_OES_framebuffer_object" extensions
+{-# NOINLINE gl_OES_framebuffer_object #-}
 
+-- | Usage: @'glBindFramebufferOES' target framebuffer@
+
+
 glBindFramebufferOES :: MonadIO m => GLenum -> GLuint -> m ()
 glBindFramebufferOES = ffienumuintIOV glBindFramebufferOESFunPtr
 
@@ -75,6 +81,9 @@
 
 {-# NOINLINE glBindFramebufferOESFunPtr #-}
 
+-- | Usage: @'glBindRenderbufferOES' target renderbuffer@
+
+
 glBindRenderbufferOES :: MonadIO m => GLenum -> GLuint -> m ()
 glBindRenderbufferOES = ffienumuintIOV glBindRenderbufferOESFunPtr
 
@@ -83,6 +92,9 @@
 
 {-# NOINLINE glBindRenderbufferOESFunPtr #-}
 
+-- | Usage: @'glCheckFramebufferStatusOES' target@
+
+
 glCheckFramebufferStatusOES :: MonadIO m => GLenum -> m GLenum
 glCheckFramebufferStatusOES = ffienumIOenum glCheckFramebufferStatusOESFunPtr
 
@@ -91,6 +103,11 @@
 
 {-# NOINLINE glCheckFramebufferStatusOESFunPtr #-}
 
+-- | Usage: @'glDeleteFramebuffersOES' n framebuffers@
+--
+-- The length of @framebuffers@ should be @n@.
+
+
 glDeleteFramebuffersOES :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
 glDeleteFramebuffersOES = ffisizeiPtruintIOV glDeleteFramebuffersOESFunPtr
 
@@ -99,6 +116,11 @@
 
 {-# NOINLINE glDeleteFramebuffersOESFunPtr #-}
 
+-- | Usage: @'glDeleteRenderbuffersOES' n renderbuffers@
+--
+-- The length of @renderbuffers@ should be @n@.
+
+
 glDeleteRenderbuffersOES :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
 glDeleteRenderbuffersOES = ffisizeiPtruintIOV glDeleteRenderbuffersOESFunPtr
 
@@ -107,6 +129,9 @@
 
 {-# NOINLINE glDeleteRenderbuffersOESFunPtr #-}
 
+-- | Usage: @'glFramebufferRenderbufferOES' target attachment renderbuffertarget renderbuffer@
+
+
 glFramebufferRenderbufferOES :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> m ()
 glFramebufferRenderbufferOES = ffienumenumenumuintIOV glFramebufferRenderbufferOESFunPtr
 
@@ -115,6 +140,9 @@
 
 {-# NOINLINE glFramebufferRenderbufferOESFunPtr #-}
 
+-- | Usage: @'glFramebufferTexture2DOES' target attachment textarget texture level@
+
+
 glFramebufferTexture2DOES :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> m ()
 glFramebufferTexture2DOES = ffienumenumenumuintintIOV glFramebufferTexture2DOESFunPtr
 
@@ -123,6 +151,11 @@
 
 {-# NOINLINE glFramebufferTexture2DOESFunPtr #-}
 
+-- | Usage: @'glGenFramebuffersOES' n framebuffers@
+--
+-- The length of @framebuffers@ should be @n@.
+
+
 glGenFramebuffersOES :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
 glGenFramebuffersOES = ffisizeiPtruintIOV glGenFramebuffersOESFunPtr
 
@@ -131,6 +164,11 @@
 
 {-# NOINLINE glGenFramebuffersOESFunPtr #-}
 
+-- | Usage: @'glGenRenderbuffersOES' n renderbuffers@
+--
+-- The length of @renderbuffers@ should be @n@.
+
+
 glGenRenderbuffersOES :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
 glGenRenderbuffersOES = ffisizeiPtruintIOV glGenRenderbuffersOESFunPtr
 
@@ -139,6 +177,9 @@
 
 {-# NOINLINE glGenRenderbuffersOESFunPtr #-}
 
+-- | Usage: @'glGenerateMipmapOES' target@
+
+
 glGenerateMipmapOES :: MonadIO m => GLenum -> m ()
 glGenerateMipmapOES = ffienumIOV glGenerateMipmapOESFunPtr
 
@@ -147,6 +188,11 @@
 
 {-# NOINLINE glGenerateMipmapOESFunPtr #-}
 
+-- | Usage: @'glGetFramebufferAttachmentParameterivOES' target attachment pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
 glGetFramebufferAttachmentParameterivOES :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLint -> m ()
 glGetFramebufferAttachmentParameterivOES = ffienumenumenumPtrintIOV glGetFramebufferAttachmentParameterivOESFunPtr
 
@@ -155,6 +201,11 @@
 
 {-# NOINLINE glGetFramebufferAttachmentParameterivOESFunPtr #-}
 
+-- | Usage: @'glGetRenderbufferParameterivOES' target pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
 glGetRenderbufferParameterivOES :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
 glGetRenderbufferParameterivOES = ffienumenumPtrintIOV glGetRenderbufferParameterivOESFunPtr
 
@@ -163,6 +214,9 @@
 
 {-# NOINLINE glGetRenderbufferParameterivOESFunPtr #-}
 
+-- | Usage: @'glIsFramebufferOES' framebuffer@
+
+
 glIsFramebufferOES :: MonadIO m => GLuint -> m GLboolean
 glIsFramebufferOES = ffiuintIOboolean glIsFramebufferOESFunPtr
 
@@ -171,6 +225,9 @@
 
 {-# NOINLINE glIsFramebufferOESFunPtr #-}
 
+-- | Usage: @'glIsRenderbufferOES' renderbuffer@
+
+
 glIsRenderbufferOES :: MonadIO m => GLuint -> m GLboolean
 glIsRenderbufferOES = ffiuintIOboolean glIsRenderbufferOESFunPtr
 
@@ -178,6 +235,9 @@
 glIsRenderbufferOESFunPtr = unsafePerformIO (getProcAddress "glIsRenderbufferOES")
 
 {-# NOINLINE glIsRenderbufferOESFunPtr #-}
+
+-- | Usage: @'glRenderbufferStorageOES' target internalformat width height@
+
 
 glRenderbufferStorageOES :: MonadIO m => GLenum -> GLenum -> GLsizei -> GLsizei -> m ()
 glRenderbufferStorageOES = ffienumenumsizeisizeiIOV glRenderbufferStorageOESFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/GetProgramBinary.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/GetProgramBinary.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/GetProgramBinary.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/GetProgramBinary.hs
@@ -20,9 +20,23 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the GL_OES_get_program_binary extension is available.
+
 gl_OES_get_program_binary :: Bool
 gl_OES_get_program_binary = member "GL_OES_get_program_binary" extensions
+{-# NOINLINE gl_OES_get_program_binary #-}
 
+-- | Usage: @'glGetProgramBinaryOES' program bufSize length binaryFormat binary@
+--
+-- The length of @length@ should be @1@.
+--
+-- The length of @binaryFormat@ should be @1@.
+--
+-- The length of @binary@ should be @bufSize@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glGetProgramBinary'.
+
+
 glGetProgramBinaryOES :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLenum -> Ptr () -> m ()
 glGetProgramBinaryOES = ffiuintsizeiPtrsizeiPtrenumPtrVIOV glGetProgramBinaryOESFunPtr
 
@@ -30,6 +44,13 @@
 glGetProgramBinaryOESFunPtr = unsafePerformIO (getProcAddress "glGetProgramBinaryOES")
 
 {-# NOINLINE glGetProgramBinaryOESFunPtr #-}
+
+-- | Usage: @'glProgramBinaryOES' program binaryFormat binary length@
+--
+-- The length of @binary@ should be @length@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glProgramBinary'.
+
 
 glProgramBinaryOES :: MonadIO m => GLuint -> GLenum -> Ptr () -> GLint -> m ()
 glProgramBinaryOES = ffiuintenumPtrVintIOV glProgramBinaryOESFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/Mapbuffer.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/Mapbuffer.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/Mapbuffer.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/Mapbuffer.hs
@@ -22,17 +22,30 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the GL_OES_mapbuffer extension is available.
+
 gl_OES_mapbuffer :: Bool
 gl_OES_mapbuffer = member "GL_OES_mapbuffer" extensions
+{-# NOINLINE gl_OES_mapbuffer #-}
 
-glGetBufferPointervOES :: MonadIO m => GLenum -> GLenum -> Ptr () -> m ()
-glGetBufferPointervOES = ffienumenumPtrVIOV glGetBufferPointervOESFunPtr
+-- | Usage: @'glGetBufferPointervOES' target pname params@
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glGetBufferPointerv'.
 
-glGetBufferPointervOESFunPtr :: FunPtr (GLenum -> GLenum -> Ptr () -> IO ())
+
+glGetBufferPointervOES :: MonadIO m => GLenum -> GLenum -> Ptr (Ptr ()) -> m ()
+glGetBufferPointervOES = ffienumenumPtrPtrVIOV glGetBufferPointervOESFunPtr
+
+glGetBufferPointervOESFunPtr :: FunPtr (GLenum -> GLenum -> Ptr (Ptr ()) -> IO ())
 glGetBufferPointervOESFunPtr = unsafePerformIO (getProcAddress "glGetBufferPointervOES")
 
 {-# NOINLINE glGetBufferPointervOESFunPtr #-}
 
+-- | Usage: @'glMapBufferOES' target access@
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glMapBuffer'.
+
+
 glMapBufferOES :: MonadIO m => GLenum -> GLenum -> m (Ptr ())
 glMapBufferOES = ffienumenumIOPtrV glMapBufferOESFunPtr
 
@@ -40,6 +53,11 @@
 glMapBufferOESFunPtr = unsafePerformIO (getProcAddress "glMapBufferOES")
 
 {-# NOINLINE glMapBufferOESFunPtr #-}
+
+-- | Usage: @'glUnmapBufferOES' target@
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glUnmapBuffer'.
+
 
 glUnmapBufferOES :: MonadIO m => GLenum -> m GLboolean
 glUnmapBufferOES = ffienumIOboolean glUnmapBufferOESFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/MatrixGet.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/MatrixGet.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/MatrixGet.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/MatrixGet.hs
@@ -13,8 +13,11 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the GL_OES_matrix_get extension is available.
+
 gl_OES_matrix_get :: Bool
 gl_OES_matrix_get = member "GL_OES_matrix_get" extensions
+{-# NOINLINE gl_OES_matrix_get #-}
 
 pattern GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES = 0x898D
 
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/MatrixPalette.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/MatrixPalette.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/MatrixPalette.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/MatrixPalette.hs
@@ -35,9 +35,15 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the GL_OES_matrix_palette extension is available.
+
 gl_OES_matrix_palette :: Bool
 gl_OES_matrix_palette = member "GL_OES_matrix_palette" extensions
+{-# NOINLINE gl_OES_matrix_palette #-}
 
+-- | Usage: @'glCurrentPaletteMatrixOES' matrixpaletteindex@
+
+
 glCurrentPaletteMatrixOES :: MonadIO m => GLuint -> m ()
 glCurrentPaletteMatrixOES = ffiuintIOV glCurrentPaletteMatrixOESFunPtr
 
@@ -46,6 +52,9 @@
 
 {-# NOINLINE glCurrentPaletteMatrixOESFunPtr #-}
 
+-- | Usage: @'glLoadPaletteFromModelViewMatrixOES'@
+
+
 glLoadPaletteFromModelViewMatrixOES :: MonadIO m => m ()
 glLoadPaletteFromModelViewMatrixOES = ffiIOV glLoadPaletteFromModelViewMatrixOESFunPtr
 
@@ -54,6 +63,11 @@
 
 {-# NOINLINE glLoadPaletteFromModelViewMatrixOESFunPtr #-}
 
+-- | Usage: @'glMatrixIndexPointerOES' size type stride pointer@
+--
+-- The length of @pointer@ should be @COMPSIZE(size,type,stride)@.
+
+
 glMatrixIndexPointerOES :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr () -> m ()
 glMatrixIndexPointerOES = ffiintenumsizeiPtrVIOV glMatrixIndexPointerOESFunPtr
 
@@ -61,6 +75,11 @@
 glMatrixIndexPointerOESFunPtr = unsafePerformIO (getProcAddress "glMatrixIndexPointerOES")
 
 {-# NOINLINE glMatrixIndexPointerOESFunPtr #-}
+
+-- | Usage: @'glWeightPointerOES' size type stride pointer@
+--
+-- The length of @pointer@ should be @COMPSIZE(type,stride)@.
+
 
 glWeightPointerOES :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr () -> m ()
 glWeightPointerOES = ffiintenumsizeiPtrVIOV glWeightPointerOESFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/PackedDepthStencil.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/PackedDepthStencil.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/PackedDepthStencil.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/PackedDepthStencil.hs
@@ -14,5 +14,8 @@
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
 
+-- | Checks that the GL_OES_packed_depth_stencil extension is available.
+
 gl_OES_packed_depth_stencil :: Bool
 gl_OES_packed_depth_stencil = member "GL_OES_packed_depth_stencil" extensions
+{-# NOINLINE gl_OES_packed_depth_stencil #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/PointSizeArray.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/PointSizeArray.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/PointSizeArray.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/PointSizeArray.hs
@@ -21,8 +21,16 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the GL_OES_point_size_array extension is available.
+
 gl_OES_point_size_array :: Bool
 gl_OES_point_size_array = member "GL_OES_point_size_array" extensions
+{-# NOINLINE gl_OES_point_size_array #-}
+
+-- | Usage: @'glPointSizePointerOES' type stride pointer@
+--
+-- The length of @pointer@ should be @COMPSIZE(type,stride)@.
+
 
 glPointSizePointerOES :: MonadIO m => GLenum -> GLsizei -> Ptr () -> m ()
 glPointSizePointerOES = ffienumsizeiPtrVIOV glPointSizePointerOESFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/PointSprite.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/PointSprite.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/PointSprite.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/PointSprite.hs
@@ -12,8 +12,11 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the GL_OES_point_sprite extension is available.
+
 gl_OES_point_sprite :: Bool
 gl_OES_point_sprite = member "GL_OES_point_sprite" extensions
+{-# NOINLINE gl_OES_point_sprite #-}
 
 pattern GL_COORD_REPLACE_OES = 0x8862
 
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/QueryMatrix.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/QueryMatrix.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/QueryMatrix.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/QueryMatrix.hs
@@ -16,8 +16,18 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the GL_OES_query_matrix extension is available.
+
 gl_OES_query_matrix :: Bool
 gl_OES_query_matrix = member "GL_OES_query_matrix" extensions
+{-# NOINLINE gl_OES_query_matrix #-}
+
+-- | Usage: @'glQueryMatrixxOES' mantissa exponent@
+--
+-- The length of @mantissa@ should be @16@.
+--
+-- The length of @exponent@ should be @16@.
+
 
 glQueryMatrixxOES :: MonadIO m => Ptr GLfixed -> Ptr GLint -> m GLbitfield
 glQueryMatrixxOES = ffiPtrfixedPtrintIObitfield glQueryMatrixxOESFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/ReadFormat.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/ReadFormat.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/ReadFormat.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/ReadFormat.hs
@@ -12,8 +12,11 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the GL_OES_read_format extension is available.
+
 gl_OES_read_format :: Bool
 gl_OES_read_format = member "GL_OES_read_format" extensions
+{-# NOINLINE gl_OES_read_format #-}
 
 pattern GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES = 0x8B9B
 
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/RequiredInternalformat.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/RequiredInternalformat.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/RequiredInternalformat.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/RequiredInternalformat.hs
@@ -26,8 +26,11 @@
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
 
+-- | Checks that the GL_OES_required_internalformat extension is available.
+
 gl_OES_required_internalformat :: Bool
 gl_OES_required_internalformat = member "GL_OES_required_internalformat" extensions
+{-# NOINLINE gl_OES_required_internalformat #-}
 
 pattern GL_ALPHA8_OES = 0x803C
 
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/Rgb8Rgba8.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/Rgb8Rgba8.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/Rgb8Rgba8.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/Rgb8Rgba8.hs
@@ -13,5 +13,8 @@
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
 
+-- | Checks that the GL_OES_rgb8_rgba8 extension is available.
+
 gl_OES_rgb8_rgba8 :: Bool
 gl_OES_rgb8_rgba8 = member "GL_OES_rgb8_rgba8" extensions
+{-# NOINLINE gl_OES_rgb8_rgba8 #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/SampleShading.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/SampleShading.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/SampleShading.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/SampleShading.hs
@@ -18,8 +18,18 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the GL_OES_sample_shading extension is available.
+
 gl_OES_sample_shading :: Bool
 gl_OES_sample_shading = member "GL_OES_sample_shading" extensions
+{-# NOINLINE gl_OES_sample_shading #-}
+
+-- | Usage: @'glMinSampleShadingOES' value@
+--
+-- The parameter @value@ is a @ColorF@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Profile.Core40.glMinSampleShading'.
+
 
 glMinSampleShadingOES :: MonadIO m => GLfloat -> m ()
 glMinSampleShadingOES = ffifloatIOV glMinSampleShadingOESFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/SampleVariables.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/SampleVariables.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/SampleVariables.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/SampleVariables.hs
@@ -8,5 +8,8 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the GL_OES_sample_variables extension is available.
+
 gl_OES_sample_variables :: Bool
 gl_OES_sample_variables = member "GL_OES_sample_variables" extensions
+{-# NOINLINE gl_OES_sample_variables #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/ShaderImageAtomic.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/ShaderImageAtomic.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/ShaderImageAtomic.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/ShaderImageAtomic.hs
@@ -8,5 +8,8 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the GL_OES_shader_image_atomic extension is available.
+
 gl_OES_shader_image_atomic :: Bool
 gl_OES_shader_image_atomic = member "GL_OES_shader_image_atomic" extensions
+{-# NOINLINE gl_OES_shader_image_atomic #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/ShaderMultisampleInterpolation.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/ShaderMultisampleInterpolation.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/ShaderMultisampleInterpolation.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/ShaderMultisampleInterpolation.hs
@@ -13,8 +13,11 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the GL_OES_shader_multisample_interpolation extension is available.
+
 gl_OES_shader_multisample_interpolation :: Bool
 gl_OES_shader_multisample_interpolation = member "GL_OES_shader_multisample_interpolation" extensions
+{-# NOINLINE gl_OES_shader_multisample_interpolation #-}
 
 pattern GL_FRAGMENT_INTERPOLATION_OFFSET_BITS_OES = 0x8E5D
 
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/SinglePrecision.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/SinglePrecision.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/SinglePrecision.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/SinglePrecision.hs
@@ -21,9 +21,19 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the GL_OES_single_precision extension is available.
+
 gl_OES_single_precision :: Bool
 gl_OES_single_precision = member "GL_OES_single_precision" extensions
+{-# NOINLINE gl_OES_single_precision #-}
 
+-- | Usage: @'glClearDepthfOES' depth@
+--
+-- The parameter @depth@ is a @ClampedFloat32@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glClearDepthf'.
+
+
 glClearDepthfOES :: MonadIO m => GLclampf -> m ()
 glClearDepthfOES = fficlampfIOV glClearDepthfOESFunPtr
 
@@ -32,6 +42,11 @@
 
 {-# NOINLINE glClearDepthfOESFunPtr #-}
 
+-- | Usage: @'glClipPlanefOES' plane equation@
+--
+-- The length of @equation@ should be @4@.
+
+
 glClipPlanefOES :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
 glClipPlanefOES = ffienumPtrfloatIOV glClipPlanefOESFunPtr
 
@@ -40,6 +55,15 @@
 
 {-# NOINLINE glClipPlanefOESFunPtr #-}
 
+-- | Usage: @'glDepthRangefOES' n f@
+--
+-- The parameter @n@ is a @ClampedFloat32@.
+--
+-- The parameter @f@ is a @ClampedFloat32@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glDepthRangef'.
+
+
 glDepthRangefOES :: MonadIO m => GLclampf -> GLclampf -> m ()
 glDepthRangefOES = fficlampfclampfIOV glDepthRangefOESFunPtr
 
@@ -48,6 +72,9 @@
 
 {-# NOINLINE glDepthRangefOESFunPtr #-}
 
+-- | Usage: @'glFrustumfOES' l r b t n f@
+
+
 glFrustumfOES :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
 glFrustumfOES = ffifloatfloatfloatfloatfloatfloatIOV glFrustumfOESFunPtr
 
@@ -56,6 +83,11 @@
 
 {-# NOINLINE glFrustumfOESFunPtr #-}
 
+-- | Usage: @'glGetClipPlanefOES' plane equation@
+--
+-- The length of @equation@ should be @4@.
+
+
 glGetClipPlanefOES :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
 glGetClipPlanefOES = ffienumPtrfloatIOV glGetClipPlanefOESFunPtr
 
@@ -63,6 +95,9 @@
 glGetClipPlanefOESFunPtr = unsafePerformIO (getProcAddress "glGetClipPlanefOES")
 
 {-# NOINLINE glGetClipPlanefOESFunPtr #-}
+
+-- | Usage: @'glOrthofOES' l r b t n f@
+
 
 glOrthofOES :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
 glOrthofOES = ffifloatfloatfloatfloatfloatfloatIOV glOrthofOESFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/StandardDerivatives.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/StandardDerivatives.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/StandardDerivatives.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/StandardDerivatives.hs
@@ -11,7 +11,10 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the GL_OES_standard_derivatives extension is available.
+
 gl_OES_standard_derivatives :: Bool
 gl_OES_standard_derivatives = member "GL_OES_standard_derivatives" extensions
+{-# NOINLINE gl_OES_standard_derivatives #-}
 
 pattern GL_FRAGMENT_SHADER_DERIVATIVE_HINT_OES = 0x8B8B
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/Stencil1.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/Stencil1.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/Stencil1.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/Stencil1.hs
@@ -11,7 +11,10 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the GL_OES_stencil1 extension is available.
+
 gl_OES_stencil1 :: Bool
 gl_OES_stencil1 = member "GL_OES_stencil1" extensions
+{-# NOINLINE gl_OES_stencil1 #-}
 
 pattern GL_STENCIL_INDEX1_OES = 0x8D46
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/Stencil4.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/Stencil4.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/Stencil4.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/Stencil4.hs
@@ -11,7 +11,10 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the GL_OES_stencil4 extension is available.
+
 gl_OES_stencil4 :: Bool
 gl_OES_stencil4 = member "GL_OES_stencil4" extensions
+{-# NOINLINE gl_OES_stencil4 #-}
 
 pattern GL_STENCIL_INDEX4_OES = 0x8D47
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/Stencil8.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/Stencil8.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/Stencil8.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/Stencil8.hs
@@ -12,5 +12,8 @@
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
 
+-- | Checks that the GL_OES_stencil8 extension is available.
+
 gl_OES_stencil8 :: Bool
 gl_OES_stencil8 = member "GL_OES_stencil8" extensions
+{-# NOINLINE gl_OES_stencil8 #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/StencilWrap.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/StencilWrap.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/StencilWrap.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/StencilWrap.hs
@@ -12,8 +12,11 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the GL_OES_stencil_wrap extension is available.
+
 gl_OES_stencil_wrap :: Bool
 gl_OES_stencil_wrap = member "GL_OES_stencil_wrap" extensions
+{-# NOINLINE gl_OES_stencil_wrap #-}
 
 pattern GL_DECR_WRAP_OES = 0x8508
 
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/SurfacelessContext.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/SurfacelessContext.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/SurfacelessContext.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/SurfacelessContext.hs
@@ -11,7 +11,10 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the GL_OES_surfaceless_context extension is available.
+
 gl_OES_surfaceless_context :: Bool
 gl_OES_surfaceless_context = member "GL_OES_surfaceless_context" extensions
+{-# NOINLINE gl_OES_surfaceless_context #-}
 
 pattern GL_FRAMEBUFFER_UNDEFINED_OES = 0x8219
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/Texture3D.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/Texture3D.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/Texture3D.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/Texture3D.hs
@@ -27,9 +27,19 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the GL_OES_texture_3D extension is available.
+
 gl_OES_texture_3D :: Bool
 gl_OES_texture_3D = member "GL_OES_texture_3D" extensions
+{-# NOINLINE gl_OES_texture_3D #-}
 
+-- | Usage: @'glCompressedTexImage3DOES' target level internalformat width height depth border imageSize data@
+--
+-- The length of @data@ should be @imageSize@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glCompressedTexImage3D'.
+
+
 glCompressedTexImage3DOES :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> m ()
 glCompressedTexImage3DOES = ffienumintenumsizeisizeisizeiintsizeiPtrVIOV glCompressedTexImage3DOESFunPtr
 
@@ -38,6 +48,13 @@
 
 {-# NOINLINE glCompressedTexImage3DOESFunPtr #-}
 
+-- | Usage: @'glCompressedTexSubImage3DOES' target level xoffset yoffset zoffset width height depth format imageSize data@
+--
+-- The length of @data@ should be @imageSize@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glCompressedTexSubImage3D'.
+
+
 glCompressedTexSubImage3DOES :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> m ()
 glCompressedTexSubImage3DOES = ffienumintintintintsizeisizeisizeienumsizeiPtrVIOV glCompressedTexSubImage3DOESFunPtr
 
@@ -46,6 +63,11 @@
 
 {-# NOINLINE glCompressedTexSubImage3DOESFunPtr #-}
 
+-- | Usage: @'glCopyTexSubImage3DOES' target level xoffset yoffset zoffset x y width height@
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glCopyTexSubImage3D'.
+
+
 glCopyTexSubImage3DOES :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()
 glCopyTexSubImage3DOES = ffienumintintintintintintsizeisizeiIOV glCopyTexSubImage3DOESFunPtr
 
@@ -54,6 +76,11 @@
 
 {-# NOINLINE glCopyTexSubImage3DOESFunPtr #-}
 
+-- | Usage: @'glFramebufferTexture3DOES' target attachment textarget texture level zoffset@
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glFramebufferTexture3D'.
+
+
 glFramebufferTexture3DOES :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> GLint -> m ()
 glFramebufferTexture3DOES = ffienumenumenumuintintintIOV glFramebufferTexture3DOESFunPtr
 
@@ -62,6 +89,13 @@
 
 {-# NOINLINE glFramebufferTexture3DOESFunPtr #-}
 
+-- | Usage: @'glTexImage3DOES' target level internalformat width height depth border format type pixels@
+--
+-- The length of @pixels@ should be @COMPSIZE(format,type,width,height,depth)@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glTexImage3D'.
+
+
 glTexImage3DOES :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> m ()
 glTexImage3DOES = ffienumintenumsizeisizeisizeiintenumenumPtrVIOV glTexImage3DOESFunPtr
 
@@ -69,6 +103,13 @@
 glTexImage3DOESFunPtr = unsafePerformIO (getProcAddress "glTexImage3DOES")
 
 {-# NOINLINE glTexImage3DOESFunPtr #-}
+
+-- | Usage: @'glTexSubImage3DOES' target level xoffset yoffset zoffset width height depth format type pixels@
+--
+-- The length of @pixels@ should be @COMPSIZE(format,type,width,height,depth)@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glTexSubImage3D'.
+
 
 glTexSubImage3DOES :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
 glTexSubImage3DOES = ffienumintintintintsizeisizeisizeienumenumPtrVIOV glTexSubImage3DOESFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/TextureCompressionAstc.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/TextureCompressionAstc.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/TextureCompressionAstc.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/TextureCompressionAstc.hs
@@ -59,8 +59,11 @@
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
 
+-- | Checks that the GL_OES_texture_compression_astc extension is available.
+
 gl_OES_texture_compression_astc :: Bool
 gl_OES_texture_compression_astc = member "GL_OES_texture_compression_astc" extensions
+{-# NOINLINE gl_OES_texture_compression_astc #-}
 
 pattern GL_COMPRESSED_RGBA_ASTC_3x3x3_OES = 0x93C0
 
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/TextureCubeMap.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/TextureCubeMap.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/TextureCubeMap.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/TextureCubeMap.hs
@@ -38,9 +38,17 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the GL_OES_texture_cube_map extension is available.
+
 gl_OES_texture_cube_map :: Bool
 gl_OES_texture_cube_map = member "GL_OES_texture_cube_map" extensions
+{-# NOINLINE gl_OES_texture_cube_map #-}
 
+-- | Usage: @'glGetTexGenfvOES' coord pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
 glGetTexGenfvOES :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
 glGetTexGenfvOES = ffienumenumPtrfloatIOV glGetTexGenfvOESFunPtr
 
@@ -49,6 +57,11 @@
 
 {-# NOINLINE glGetTexGenfvOESFunPtr #-}
 
+-- | Usage: @'glGetTexGenivOES' coord pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
 glGetTexGenivOES :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
 glGetTexGenivOES = ffienumenumPtrintIOV glGetTexGenivOESFunPtr
 
@@ -57,6 +70,9 @@
 
 {-# NOINLINE glGetTexGenivOESFunPtr #-}
 
+-- | Usage: @'glTexGenfOES' coord pname param@
+
+
 glTexGenfOES :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()
 glTexGenfOES = ffienumenumfloatIOV glTexGenfOESFunPtr
 
@@ -65,6 +81,11 @@
 
 {-# NOINLINE glTexGenfOESFunPtr #-}
 
+-- | Usage: @'glTexGenfvOES' coord pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
 glTexGenfvOES :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
 glTexGenfvOES = ffienumenumPtrfloatIOV glTexGenfvOESFunPtr
 
@@ -73,6 +94,9 @@
 
 {-# NOINLINE glTexGenfvOESFunPtr #-}
 
+-- | Usage: @'glTexGeniOES' coord pname param@
+
+
 glTexGeniOES :: MonadIO m => GLenum -> GLenum -> GLint -> m ()
 glTexGeniOES = ffienumenumintIOV glTexGeniOESFunPtr
 
@@ -80,6 +104,11 @@
 glTexGeniOESFunPtr = unsafePerformIO (getProcAddress "glTexGeniOES")
 
 {-# NOINLINE glTexGeniOESFunPtr #-}
+
+-- | Usage: @'glTexGenivOES' coord pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
 
 glTexGenivOES :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
 glTexGenivOES = ffienumenumPtrintIOV glTexGenivOESFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/TextureEnvCrossbar.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/TextureEnvCrossbar.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/TextureEnvCrossbar.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/TextureEnvCrossbar.hs
@@ -8,5 +8,8 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the GL_OES_texture_env_crossbar extension is available.
+
 gl_OES_texture_env_crossbar :: Bool
 gl_OES_texture_env_crossbar = member "GL_OES_texture_env_crossbar" extensions
+{-# NOINLINE gl_OES_texture_env_crossbar #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/TextureFloat.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/TextureFloat.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/TextureFloat.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/TextureFloat.hs
@@ -12,5 +12,8 @@
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
 
+-- | Checks that the GL_OES_texture_float extension is available.
+
 gl_OES_texture_float :: Bool
 gl_OES_texture_float = member "GL_OES_texture_float" extensions
+{-# NOINLINE gl_OES_texture_float #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/TextureFloatLinear.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/TextureFloatLinear.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/TextureFloatLinear.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/TextureFloatLinear.hs
@@ -8,5 +8,8 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the GL_OES_texture_float_linear extension is available.
+
 gl_OES_texture_float_linear :: Bool
 gl_OES_texture_float_linear = member "GL_OES_texture_float_linear" extensions
+{-# NOINLINE gl_OES_texture_float_linear #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/TextureHalfFloat.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/TextureHalfFloat.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/TextureHalfFloat.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/TextureHalfFloat.hs
@@ -12,5 +12,8 @@
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
 
+-- | Checks that the GL_OES_texture_half_float extension is available.
+
 gl_OES_texture_half_float :: Bool
 gl_OES_texture_half_float = member "GL_OES_texture_half_float" extensions
+{-# NOINLINE gl_OES_texture_half_float #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/TextureHalfFloatLinear.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/TextureHalfFloatLinear.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/TextureHalfFloatLinear.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/TextureHalfFloatLinear.hs
@@ -8,5 +8,8 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the GL_OES_texture_half_float_linear extension is available.
+
 gl_OES_texture_half_float_linear :: Bool
 gl_OES_texture_half_float_linear = member "GL_OES_texture_half_float_linear" extensions
+{-# NOINLINE gl_OES_texture_half_float_linear #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/TextureMirroredRepeat.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/TextureMirroredRepeat.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/TextureMirroredRepeat.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/TextureMirroredRepeat.hs
@@ -11,7 +11,10 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the GL_OES_texture_mirrored_repeat extension is available.
+
 gl_OES_texture_mirrored_repeat :: Bool
 gl_OES_texture_mirrored_repeat = member "GL_OES_texture_mirrored_repeat" extensions
+{-# NOINLINE gl_OES_texture_mirrored_repeat #-}
 
 pattern GL_MIRRORED_REPEAT_OES = 0x8370
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/TextureNpot.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/TextureNpot.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/TextureNpot.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/TextureNpot.hs
@@ -8,5 +8,8 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the GL_OES_texture_npot extension is available.
+
 gl_OES_texture_npot :: Bool
 gl_OES_texture_npot = member "GL_OES_texture_npot" extensions
+{-# NOINLINE gl_OES_texture_npot #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/TextureStencil8.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/TextureStencil8.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/TextureStencil8.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/TextureStencil8.hs
@@ -13,7 +13,10 @@
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
 
+-- | Checks that the GL_OES_texture_stencil8 extension is available.
+
 gl_OES_texture_stencil8 :: Bool
 gl_OES_texture_stencil8 = member "GL_OES_texture_stencil8" extensions
+{-# NOINLINE gl_OES_texture_stencil8 #-}
 
 pattern GL_STENCIL_INDEX_OES = 0x1901
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/TextureStorageMultisample2dArray.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/TextureStorageMultisample2dArray.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/TextureStorageMultisample2dArray.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/TextureStorageMultisample2dArray.hs
@@ -21,8 +21,18 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the GL_OES_texture_storage_multisample_2d_array extension is available.
+
 gl_OES_texture_storage_multisample_2d_array :: Bool
 gl_OES_texture_storage_multisample_2d_array = member "GL_OES_texture_storage_multisample_2d_array" extensions
+{-# NOINLINE gl_OES_texture_storage_multisample_2d_array #-}
+
+-- | Usage: @'glTexStorage3DMultisampleOES' target samples internalformat width height depth fixedsamplelocations@
+--
+-- The parameter @fixedsamplelocations@ is a @Boolean@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FALSE', 'Graphics.GL.Raw.Internal.Shared.GL_TRUE'.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glTexStorage3DMultisample'.
+
 
 glTexStorage3DMultisampleOES :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> m ()
 glTexStorage3DMultisampleOES = ffienumsizeienumsizeisizeisizeibooleanIOV glTexStorage3DMultisampleOESFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/VertexArrayObject.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/VertexArrayObject.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/VertexArrayObject.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/VertexArrayObject.hs
@@ -20,9 +20,17 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the GL_OES_vertex_array_object extension is available.
+
 gl_OES_vertex_array_object :: Bool
 gl_OES_vertex_array_object = member "GL_OES_vertex_array_object" extensions
+{-# NOINLINE gl_OES_vertex_array_object #-}
 
+-- | Usage: @'glBindVertexArrayOES' array@
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glBindVertexArray'.
+
+
 glBindVertexArrayOES :: MonadIO m => GLuint -> m ()
 glBindVertexArrayOES = ffiuintIOV glBindVertexArrayOESFunPtr
 
@@ -31,6 +39,13 @@
 
 {-# NOINLINE glBindVertexArrayOESFunPtr #-}
 
+-- | Usage: @'glDeleteVertexArraysOES' n arrays@
+--
+-- The length of @arrays@ should be @n@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glDeleteVertexArrays'.
+
+
 glDeleteVertexArraysOES :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
 glDeleteVertexArraysOES = ffisizeiPtruintIOV glDeleteVertexArraysOESFunPtr
 
@@ -39,6 +54,13 @@
 
 {-# NOINLINE glDeleteVertexArraysOESFunPtr #-}
 
+-- | Usage: @'glGenVertexArraysOES' n arrays@
+--
+-- The length of @arrays@ should be @n@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glGenVertexArrays'.
+
+
 glGenVertexArraysOES :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
 glGenVertexArraysOES = ffisizeiPtruintIOV glGenVertexArraysOESFunPtr
 
@@ -46,6 +68,11 @@
 glGenVertexArraysOESFunPtr = unsafePerformIO (getProcAddress "glGenVertexArraysOES")
 
 {-# NOINLINE glGenVertexArraysOESFunPtr #-}
+
+-- | Usage: @'glIsVertexArrayOES' array@
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glIsVertexArray'.
+
 
 glIsVertexArrayOES :: MonadIO m => GLuint -> m GLboolean
 glIsVertexArrayOES = ffiuintIOboolean glIsVertexArrayOESFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/VertexHalfFloat.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/VertexHalfFloat.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/VertexHalfFloat.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/VertexHalfFloat.hs
@@ -12,5 +12,8 @@
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
 
+-- | Checks that the GL_OES_vertex_half_float extension is available.
+
 gl_OES_vertex_half_float :: Bool
 gl_OES_vertex_half_float = member "GL_OES_vertex_half_float" extensions
+{-# NOINLINE gl_OES_vertex_half_float #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/VertexType1010102.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/VertexType1010102.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/VertexType1010102.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/VertexType1010102.hs
@@ -12,8 +12,11 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the GL_OES_vertex_type_10_10_10_2 extension is available.
+
 gl_OES_vertex_type_10_10_10_2 :: Bool
 gl_OES_vertex_type_10_10_10_2 = member "GL_OES_vertex_type_10_10_10_2" extensions
+{-# NOINLINE gl_OES_vertex_type_10_10_10_2 #-}
 
 pattern GL_INT_10_10_10_2_OES = 0x8DF7
 
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/OML/Interlace.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/OML/Interlace.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/OML/Interlace.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/OML/Interlace.hs
@@ -12,8 +12,11 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/OML/interlace.txt GL_OML_interlace> extension is available.
+
 gl_OML_interlace :: Bool
 gl_OML_interlace = member "GL_OML_interlace" extensions
+{-# NOINLINE gl_OML_interlace #-}
 
 pattern GL_INTERLACE_OML = 0x8980
 
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/OML/Resample.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/OML/Resample.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/OML/Resample.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/OML/Resample.hs
@@ -16,8 +16,11 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/OML/resample.txt GL_OML_resample> extension is available.
+
 gl_OML_resample :: Bool
 gl_OML_resample = member "GL_OML_resample" extensions
+{-# NOINLINE gl_OML_resample #-}
 
 pattern GL_PACK_RESAMPLE_OML = 0x8984
 
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/OML/Subsample.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/OML/Subsample.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/OML/Subsample.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/OML/Subsample.hs
@@ -12,8 +12,11 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/OML/subsample.txt GL_OML_subsample> extension is available.
+
 gl_OML_subsample :: Bool
 gl_OML_subsample = member "GL_OML_subsample" extensions
+{-# NOINLINE gl_OML_subsample #-}
 
 pattern GL_FORMAT_SUBSAMPLE_244_244_OML = 0x8983
 
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/PGI/MiscHints.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/PGI/MiscHints.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/PGI/MiscHints.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/PGI/MiscHints.hs
@@ -36,8 +36,16 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/PGI/misc_hints.txt GL_PGI_misc_hints> extension is available.
+
 gl_PGI_misc_hints :: Bool
 gl_PGI_misc_hints = member "GL_PGI_misc_hints" extensions
+{-# NOINLINE gl_PGI_misc_hints #-}
+
+-- | Usage: @'glHintPGI' target mode@
+--
+-- The parameter @target@ is a @HintTargetPGI@.
+
 
 glHintPGI :: MonadIO m => GLenum -> GLint -> m ()
 glHintPGI = ffienumintIOV glHintPGIFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/PGI/VertexHints.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/PGI/VertexHints.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/PGI/VertexHints.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/PGI/VertexHints.hs
@@ -32,8 +32,11 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/PGI/vertex_hints.txt GL_PGI_vertex_hints> extension is available.
+
 gl_PGI_vertex_hints :: Bool
 gl_PGI_vertex_hints = member "GL_PGI_vertex_hints" extensions
+{-# NOINLINE gl_PGI_vertex_hints #-}
 
 pattern GL_COLOR3_BIT_PGI = 0x00010000
 
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/QCOM/AlphaTest.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/QCOM/AlphaTest.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/QCOM/AlphaTest.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/QCOM/AlphaTest.hs
@@ -19,8 +19,14 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the GL_QCOM_alpha_test extension is available.
+
 gl_QCOM_alpha_test :: Bool
 gl_QCOM_alpha_test = member "GL_QCOM_alpha_test" extensions
+{-# NOINLINE gl_QCOM_alpha_test #-}
+
+-- | Usage: @'glAlphaFuncQCOM' func ref@
+
 
 glAlphaFuncQCOM :: MonadIO m => GLenum -> GLclampf -> m ()
 glAlphaFuncQCOM = ffienumclampfIOV glAlphaFuncQCOMFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/QCOM/BinningControl.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/QCOM/BinningControl.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/QCOM/BinningControl.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/QCOM/BinningControl.hs
@@ -14,8 +14,11 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the GL_QCOM_binning_control extension is available.
+
 gl_QCOM_binning_control :: Bool
 gl_QCOM_binning_control = member "GL_QCOM_binning_control" extensions
+{-# NOINLINE gl_QCOM_binning_control #-}
 
 pattern GL_BINNING_CONTROL_HINT_QCOM = 0x8FB0
 
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/QCOM/DriverControl.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/QCOM/DriverControl.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/QCOM/DriverControl.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/QCOM/DriverControl.hs
@@ -19,9 +19,15 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the GL_QCOM_driver_control extension is available.
+
 gl_QCOM_driver_control :: Bool
 gl_QCOM_driver_control = member "GL_QCOM_driver_control" extensions
+{-# NOINLINE gl_QCOM_driver_control #-}
 
+-- | Usage: @'glDisableDriverControlQCOM' driverControl@
+
+
 glDisableDriverControlQCOM :: MonadIO m => GLuint -> m ()
 glDisableDriverControlQCOM = ffiuintIOV glDisableDriverControlQCOMFunPtr
 
@@ -30,6 +36,9 @@
 
 {-# NOINLINE glDisableDriverControlQCOMFunPtr #-}
 
+-- | Usage: @'glEnableDriverControlQCOM' driverControl@
+
+
 glEnableDriverControlQCOM :: MonadIO m => GLuint -> m ()
 glEnableDriverControlQCOM = ffiuintIOV glEnableDriverControlQCOMFunPtr
 
@@ -38,6 +47,11 @@
 
 {-# NOINLINE glEnableDriverControlQCOMFunPtr #-}
 
+-- | Usage: @'glGetDriverControlStringQCOM' driverControl bufSize length driverControlString@
+--
+-- The length of @driverControlString@ should be @bufSize@.
+
+
 glGetDriverControlStringQCOM :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
 glGetDriverControlStringQCOM = ffiuintsizeiPtrsizeiPtrcharIOV glGetDriverControlStringQCOMFunPtr
 
@@ -45,6 +59,11 @@
 glGetDriverControlStringQCOMFunPtr = unsafePerformIO (getProcAddress "glGetDriverControlStringQCOM")
 
 {-# NOINLINE glGetDriverControlStringQCOMFunPtr #-}
+
+-- | Usage: @'glGetDriverControlsQCOM' num size driverControls@
+--
+-- The length of @driverControls@ should be @size@.
+
 
 glGetDriverControlsQCOM :: MonadIO m => Ptr GLint -> GLsizei -> Ptr GLuint -> m ()
 glGetDriverControlsQCOM = ffiPtrintsizeiPtruintIOV glGetDriverControlsQCOMFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/QCOM/ExtendedGet.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/QCOM/ExtendedGet.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/QCOM/ExtendedGet.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/QCOM/ExtendedGet.hs
@@ -34,17 +34,30 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the GL_QCOM_extended_get extension is available.
+
 gl_QCOM_extended_get :: Bool
 gl_QCOM_extended_get = member "GL_QCOM_extended_get" extensions
+{-# NOINLINE gl_QCOM_extended_get #-}
 
-glExtGetBufferPointervQCOM :: MonadIO m => GLenum -> Ptr () -> m ()
-glExtGetBufferPointervQCOM = ffienumPtrVIOV glExtGetBufferPointervQCOMFunPtr
+-- | Usage: @'glExtGetBufferPointervQCOM' target params@
 
-glExtGetBufferPointervQCOMFunPtr :: FunPtr (GLenum -> Ptr () -> IO ())
+
+glExtGetBufferPointervQCOM :: MonadIO m => GLenum -> Ptr (Ptr ()) -> m ()
+glExtGetBufferPointervQCOM = ffienumPtrPtrVIOV glExtGetBufferPointervQCOMFunPtr
+
+glExtGetBufferPointervQCOMFunPtr :: FunPtr (GLenum -> Ptr (Ptr ()) -> IO ())
 glExtGetBufferPointervQCOMFunPtr = unsafePerformIO (getProcAddress "glExtGetBufferPointervQCOM")
 
 {-# NOINLINE glExtGetBufferPointervQCOMFunPtr #-}
 
+-- | Usage: @'glExtGetBuffersQCOM' buffers maxBuffers numBuffers@
+--
+-- The length of @buffers@ should be @maxBuffers@.
+--
+-- The length of @numBuffers@ should be @1@.
+
+
 glExtGetBuffersQCOM :: MonadIO m => Ptr GLuint -> GLint -> Ptr GLint -> m ()
 glExtGetBuffersQCOM = ffiPtruintintPtrintIOV glExtGetBuffersQCOMFunPtr
 
@@ -53,6 +66,13 @@
 
 {-# NOINLINE glExtGetBuffersQCOMFunPtr #-}
 
+-- | Usage: @'glExtGetFramebuffersQCOM' framebuffers maxFramebuffers numFramebuffers@
+--
+-- The length of @framebuffers@ should be @maxFramebuffers@.
+--
+-- The length of @numFramebuffers@ should be @1@.
+
+
 glExtGetFramebuffersQCOM :: MonadIO m => Ptr GLuint -> GLint -> Ptr GLint -> m ()
 glExtGetFramebuffersQCOM = ffiPtruintintPtrintIOV glExtGetFramebuffersQCOMFunPtr
 
@@ -61,6 +81,13 @@
 
 {-# NOINLINE glExtGetFramebuffersQCOMFunPtr #-}
 
+-- | Usage: @'glExtGetRenderbuffersQCOM' renderbuffers maxRenderbuffers numRenderbuffers@
+--
+-- The length of @renderbuffers@ should be @maxRenderbuffers@.
+--
+-- The length of @numRenderbuffers@ should be @1@.
+
+
 glExtGetRenderbuffersQCOM :: MonadIO m => Ptr GLuint -> GLint -> Ptr GLint -> m ()
 glExtGetRenderbuffersQCOM = ffiPtruintintPtrintIOV glExtGetRenderbuffersQCOMFunPtr
 
@@ -69,6 +96,9 @@
 
 {-# NOINLINE glExtGetRenderbuffersQCOMFunPtr #-}
 
+-- | Usage: @'glExtGetTexLevelParameterivQCOM' texture face level pname params@
+
+
 glExtGetTexLevelParameterivQCOM :: MonadIO m => GLuint -> GLenum -> GLint -> GLenum -> Ptr GLint -> m ()
 glExtGetTexLevelParameterivQCOM = ffiuintenumintenumPtrintIOV glExtGetTexLevelParameterivQCOMFunPtr
 
@@ -77,6 +107,9 @@
 
 {-# NOINLINE glExtGetTexLevelParameterivQCOMFunPtr #-}
 
+-- | Usage: @'glExtGetTexSubImageQCOM' target level xoffset yoffset zoffset width height depth format type texels@
+
+
 glExtGetTexSubImageQCOM :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
 glExtGetTexSubImageQCOM = ffienumintintintintsizeisizeisizeienumenumPtrVIOV glExtGetTexSubImageQCOMFunPtr
 
@@ -85,6 +118,9 @@
 
 {-# NOINLINE glExtGetTexSubImageQCOMFunPtr #-}
 
+-- | Usage: @'glExtGetTexturesQCOM' textures maxTextures numTextures@
+
+
 glExtGetTexturesQCOM :: MonadIO m => Ptr GLuint -> GLint -> Ptr GLint -> m ()
 glExtGetTexturesQCOM = ffiPtruintintPtrintIOV glExtGetTexturesQCOMFunPtr
 
@@ -92,6 +128,9 @@
 glExtGetTexturesQCOMFunPtr = unsafePerformIO (getProcAddress "glExtGetTexturesQCOM")
 
 {-# NOINLINE glExtGetTexturesQCOMFunPtr #-}
+
+-- | Usage: @'glExtTexObjectStateOverrideiQCOM' target pname param@
+
 
 glExtTexObjectStateOverrideiQCOM :: MonadIO m => GLenum -> GLenum -> GLint -> m ()
 glExtTexObjectStateOverrideiQCOM = ffienumenumintIOV glExtTexObjectStateOverrideiQCOMFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/QCOM/ExtendedGet2.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/QCOM/ExtendedGet2.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/QCOM/ExtendedGet2.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/QCOM/ExtendedGet2.hs
@@ -19,9 +19,15 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the GL_QCOM_extended_get2 extension is available.
+
 gl_QCOM_extended_get2 :: Bool
 gl_QCOM_extended_get2 = member "GL_QCOM_extended_get2" extensions
+{-# NOINLINE gl_QCOM_extended_get2 #-}
 
+-- | Usage: @'glExtGetProgramBinarySourceQCOM' program shadertype source length@
+
+
 glExtGetProgramBinarySourceQCOM :: MonadIO m => GLuint -> GLenum -> Ptr GLchar -> Ptr GLint -> m ()
 glExtGetProgramBinarySourceQCOM = ffiuintenumPtrcharPtrintIOV glExtGetProgramBinarySourceQCOMFunPtr
 
@@ -30,6 +36,13 @@
 
 {-# NOINLINE glExtGetProgramBinarySourceQCOMFunPtr #-}
 
+-- | Usage: @'glExtGetProgramsQCOM' programs maxPrograms numPrograms@
+--
+-- The length of @programs@ should be @maxPrograms@.
+--
+-- The length of @numPrograms@ should be @1@.
+
+
 glExtGetProgramsQCOM :: MonadIO m => Ptr GLuint -> GLint -> Ptr GLint -> m ()
 glExtGetProgramsQCOM = ffiPtruintintPtrintIOV glExtGetProgramsQCOMFunPtr
 
@@ -38,6 +51,13 @@
 
 {-# NOINLINE glExtGetProgramsQCOMFunPtr #-}
 
+-- | Usage: @'glExtGetShadersQCOM' shaders maxShaders numShaders@
+--
+-- The length of @shaders@ should be @maxShaders@.
+--
+-- The length of @numShaders@ should be @1@.
+
+
 glExtGetShadersQCOM :: MonadIO m => Ptr GLuint -> GLint -> Ptr GLint -> m ()
 glExtGetShadersQCOM = ffiPtruintintPtrintIOV glExtGetShadersQCOMFunPtr
 
@@ -45,6 +65,9 @@
 glExtGetShadersQCOMFunPtr = unsafePerformIO (getProcAddress "glExtGetShadersQCOM")
 
 {-# NOINLINE glExtGetShadersQCOMFunPtr #-}
+
+-- | Usage: @'glExtIsProgramBinaryQCOM' program@
+
 
 glExtIsProgramBinaryQCOM :: MonadIO m => GLuint -> m GLboolean
 glExtIsProgramBinaryQCOM = ffiuintIOboolean glExtIsProgramBinaryQCOMFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/QCOM/PerfmonGlobalMode.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/QCOM/PerfmonGlobalMode.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/QCOM/PerfmonGlobalMode.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/QCOM/PerfmonGlobalMode.hs
@@ -11,7 +11,10 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the GL_QCOM_perfmon_global_mode extension is available.
+
 gl_QCOM_perfmon_global_mode :: Bool
 gl_QCOM_perfmon_global_mode = member "GL_QCOM_perfmon_global_mode" extensions
+{-# NOINLINE gl_QCOM_perfmon_global_mode #-}
 
 pattern GL_PERFMON_GLOBAL_MODE_QCOM = 0x8FA0
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/QCOM/TiledRendering.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/QCOM/TiledRendering.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/QCOM/TiledRendering.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/QCOM/TiledRendering.hs
@@ -49,9 +49,15 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the GL_QCOM_tiled_rendering extension is available.
+
 gl_QCOM_tiled_rendering :: Bool
 gl_QCOM_tiled_rendering = member "GL_QCOM_tiled_rendering" extensions
+{-# NOINLINE gl_QCOM_tiled_rendering #-}
 
+-- | Usage: @'glEndTilingQCOM' preserveMask@
+
+
 glEndTilingQCOM :: MonadIO m => GLbitfield -> m ()
 glEndTilingQCOM = ffibitfieldIOV glEndTilingQCOMFunPtr
 
@@ -59,6 +65,9 @@
 glEndTilingQCOMFunPtr = unsafePerformIO (getProcAddress "glEndTilingQCOM")
 
 {-# NOINLINE glEndTilingQCOMFunPtr #-}
+
+-- | Usage: @'glStartTilingQCOM' x y width height preserveMask@
+
 
 glStartTilingQCOM :: MonadIO m => GLuint -> GLuint -> GLuint -> GLuint -> GLbitfield -> m ()
 glStartTilingQCOM = ffiuintuintuintuintbitfieldIOV glStartTilingQCOMFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/QCOM/WriteonlyRendering.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/QCOM/WriteonlyRendering.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/QCOM/WriteonlyRendering.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/QCOM/WriteonlyRendering.hs
@@ -11,7 +11,10 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the GL_QCOM_writeonly_rendering extension is available.
+
 gl_QCOM_writeonly_rendering :: Bool
 gl_QCOM_writeonly_rendering = member "GL_QCOM_writeonly_rendering" extensions
+{-# NOINLINE gl_QCOM_writeonly_rendering #-}
 
 pattern GL_WRITEONLY_RENDERING_QCOM = 0x8823
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/REND/ScreenCoordinates.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/REND/ScreenCoordinates.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/REND/ScreenCoordinates.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/REND/ScreenCoordinates.hs
@@ -12,8 +12,11 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/REND/screen_coordinates.txt GL_REND_screen_coordinates> extension is available.
+
 gl_REND_screen_coordinates :: Bool
 gl_REND_screen_coordinates = member "GL_REND_screen_coordinates" extensions
+{-# NOINLINE gl_REND_screen_coordinates #-}
 
 pattern GL_INVERTED_SCREEN_W_REND = 0x8491
 
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/S3/S3tc.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/S3/S3tc.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/S3/S3tc.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/S3/S3tc.hs
@@ -16,8 +16,11 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/S3/s3tc.txt GL_S3_s3tc> extension is available.
+
 gl_S3_s3tc :: Bool
 gl_S3_s3tc = member "GL_S3_s3tc" extensions
+{-# NOINLINE gl_S3_s3tc #-}
 
 pattern GL_RGB4_S3TC = 0x83A1
 
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/SGI/ColorMatrix.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/SGI/ColorMatrix.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/SGI/ColorMatrix.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/SGI/ColorMatrix.hs
@@ -21,8 +21,11 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGI/color_matrix.txt GL_SGI_color_matrix> extension is available.
+
 gl_SGI_color_matrix :: Bool
 gl_SGI_color_matrix = member "GL_SGI_color_matrix" extensions
+{-# NOINLINE gl_SGI_color_matrix #-}
 
 pattern GL_COLOR_MATRIX_SGI = 0x80B1
 
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/SGI/ColorTable.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/SGI/ColorTable.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/SGI/ColorTable.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/SGI/ColorTable.hs
@@ -38,9 +38,25 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGI/color_table.txt GL_SGI_color_table> extension is available.
+
 gl_SGI_color_table :: Bool
 gl_SGI_color_table = member "GL_SGI_color_table" extensions
+{-# NOINLINE gl_SGI_color_table #-}
 
+-- | Usage: @'glColorTableParameterfvSGI' target pname params@
+--
+-- The parameter @target@ is a @ColorTableTargetSGI@, one of: 'Graphics.GL.Raw.Extension.ARB.Imaging.GL_COLOR_TABLE', 'Graphics.GL.Raw.Extension.SGI.ColorTable.GL_COLOR_TABLE_SGI', 'Graphics.GL.Raw.Extension.ARB.Imaging.GL_POST_COLOR_MATRIX_COLOR_TABLE', 'Graphics.GL.Raw.Extension.SGI.ColorTable.GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI', 'Graphics.GL.Raw.Extension.ARB.Imaging.GL_POST_CONVOLUTION_COLOR_TABLE', 'Graphics.GL.Raw.Extension.SGI.ColorTable.GL_POST_CONVOLUTION_COLOR_TABLE_SGI', 'Graphics.GL.Raw.Extension.ARB.Imaging.GL_PROXY_COLOR_TABLE', 'Graphics.GL.Raw.Extension.SGI.ColorTable.GL_PROXY_COLOR_TABLE_SGI', 'Graphics.GL.Raw.Extension.ARB.Imaging.GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE', 'Graphics.GL.Raw.Extension.SGI.ColorTable.GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE_SGI', 'Graphics.GL.Raw.Extension.ARB.Imaging.GL_PROXY_POST_CONVOLUTION_COLOR_TABLE', 'Graphics.GL.Raw.Extension.SGI.ColorTable.GL_PROXY_POST_CONVOLUTION_COLOR_TABLE_SGI', 'Graphics.GL.Raw.Extension.SGI.TextureColorTable.GL_PROXY_TEXTURE_COLOR_TABLE_SGI', 'Graphics.GL.Raw.Extension.SGI.TextureColorTable.GL_TEXTURE_COLOR_TABLE_SGI'.
+--
+-- The parameter @pname@ is a @ColorTableParameterPNameSGI@, one of: 'Graphics.GL.Raw.Extension.ARB.Imaging.GL_COLOR_TABLE_BIAS', 'Graphics.GL.Raw.Extension.SGI.ColorTable.GL_COLOR_TABLE_BIAS_SGI', 'Graphics.GL.Raw.Extension.ARB.Imaging.GL_COLOR_TABLE_SCALE', 'Graphics.GL.Raw.Extension.SGI.ColorTable.GL_COLOR_TABLE_SCALE_SGI'.
+--
+-- The parameter @params@ is a @CheckedFloat32@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Extension.ARB.Imaging.glColorTableParameterfv'.
+
+
 glColorTableParameterfvSGI :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
 glColorTableParameterfvSGI = ffienumenumPtrfloatIOV glColorTableParameterfvSGIFunPtr
 
@@ -49,6 +65,19 @@
 
 {-# NOINLINE glColorTableParameterfvSGIFunPtr #-}
 
+-- | Usage: @'glColorTableParameterivSGI' target pname params@
+--
+-- The parameter @target@ is a @ColorTableTargetSGI@, one of: 'Graphics.GL.Raw.Extension.ARB.Imaging.GL_COLOR_TABLE', 'Graphics.GL.Raw.Extension.SGI.ColorTable.GL_COLOR_TABLE_SGI', 'Graphics.GL.Raw.Extension.ARB.Imaging.GL_POST_COLOR_MATRIX_COLOR_TABLE', 'Graphics.GL.Raw.Extension.SGI.ColorTable.GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI', 'Graphics.GL.Raw.Extension.ARB.Imaging.GL_POST_CONVOLUTION_COLOR_TABLE', 'Graphics.GL.Raw.Extension.SGI.ColorTable.GL_POST_CONVOLUTION_COLOR_TABLE_SGI', 'Graphics.GL.Raw.Extension.ARB.Imaging.GL_PROXY_COLOR_TABLE', 'Graphics.GL.Raw.Extension.SGI.ColorTable.GL_PROXY_COLOR_TABLE_SGI', 'Graphics.GL.Raw.Extension.ARB.Imaging.GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE', 'Graphics.GL.Raw.Extension.SGI.ColorTable.GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE_SGI', 'Graphics.GL.Raw.Extension.ARB.Imaging.GL_PROXY_POST_CONVOLUTION_COLOR_TABLE', 'Graphics.GL.Raw.Extension.SGI.ColorTable.GL_PROXY_POST_CONVOLUTION_COLOR_TABLE_SGI', 'Graphics.GL.Raw.Extension.SGI.TextureColorTable.GL_PROXY_TEXTURE_COLOR_TABLE_SGI', 'Graphics.GL.Raw.Extension.SGI.TextureColorTable.GL_TEXTURE_COLOR_TABLE_SGI'.
+--
+-- The parameter @pname@ is a @ColorTableParameterPNameSGI@, one of: 'Graphics.GL.Raw.Extension.ARB.Imaging.GL_COLOR_TABLE_BIAS', 'Graphics.GL.Raw.Extension.SGI.ColorTable.GL_COLOR_TABLE_BIAS_SGI', 'Graphics.GL.Raw.Extension.ARB.Imaging.GL_COLOR_TABLE_SCALE', 'Graphics.GL.Raw.Extension.SGI.ColorTable.GL_COLOR_TABLE_SCALE_SGI'.
+--
+-- The parameter @params@ is a @CheckedInt32@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Extension.ARB.Imaging.glColorTableParameteriv'.
+
+
 glColorTableParameterivSGI :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
 glColorTableParameterivSGI = ffienumenumPtrintIOV glColorTableParameterivSGIFunPtr
 
@@ -57,6 +86,21 @@
 
 {-# NOINLINE glColorTableParameterivSGIFunPtr #-}
 
+-- | Usage: @'glColorTableSGI' target internalformat width format type table@
+--
+-- The parameter @target@ is a @ColorTableTargetSGI@, one of: 'Graphics.GL.Raw.Extension.ARB.Imaging.GL_COLOR_TABLE', 'Graphics.GL.Raw.Extension.SGI.ColorTable.GL_COLOR_TABLE_SGI', 'Graphics.GL.Raw.Extension.ARB.Imaging.GL_POST_COLOR_MATRIX_COLOR_TABLE', 'Graphics.GL.Raw.Extension.SGI.ColorTable.GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI', 'Graphics.GL.Raw.Extension.ARB.Imaging.GL_POST_CONVOLUTION_COLOR_TABLE', 'Graphics.GL.Raw.Extension.SGI.ColorTable.GL_POST_CONVOLUTION_COLOR_TABLE_SGI', 'Graphics.GL.Raw.Extension.ARB.Imaging.GL_PROXY_COLOR_TABLE', 'Graphics.GL.Raw.Extension.SGI.ColorTable.GL_PROXY_COLOR_TABLE_SGI', 'Graphics.GL.Raw.Extension.ARB.Imaging.GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE', 'Graphics.GL.Raw.Extension.SGI.ColorTable.GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE_SGI', 'Graphics.GL.Raw.Extension.ARB.Imaging.GL_PROXY_POST_CONVOLUTION_COLOR_TABLE', 'Graphics.GL.Raw.Extension.SGI.ColorTable.GL_PROXY_POST_CONVOLUTION_COLOR_TABLE_SGI', 'Graphics.GL.Raw.Extension.SGI.TextureColorTable.GL_PROXY_TEXTURE_COLOR_TABLE_SGI', 'Graphics.GL.Raw.Extension.SGI.TextureColorTable.GL_TEXTURE_COLOR_TABLE_SGI'.
+--
+-- The parameter @internalformat@ is a @PixelInternalFormat@.
+--
+-- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Raw.Extension.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_ALPHA', 'Graphics.GL.Raw.Internal.Shared.GL_BLUE', 'Graphics.GL.Raw.Extension.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Raw.Extension.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Raw.Internal.Shared.GL_GREEN', 'Graphics.GL.Raw.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Raw.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Raw.Internal.Shared.GL_RED', 'Graphics.GL.Raw.Extension.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_RGB', 'Graphics.GL.Raw.Internal.Shared.GL_RGBA', 'Graphics.GL.Raw.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Raw.Extension.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
+--
+-- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_BITMAP', 'Graphics.GL.Raw.Internal.Shared.GL_BYTE', 'Graphics.GL.Raw.Internal.Shared.GL_FLOAT', 'Graphics.GL.Raw.Internal.Shared.GL_INT', 'Graphics.GL.Raw.Internal.Shared.GL_SHORT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
+--
+-- The length of @table@ should be @COMPSIZE(format,type,width)@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Extension.ARB.Imaging.glColorTable'.
+
+
 glColorTableSGI :: MonadIO m => GLenum -> GLenum -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
 glColorTableSGI = ffienumenumsizeienumenumPtrVIOV glColorTableSGIFunPtr
 
@@ -65,6 +109,19 @@
 
 {-# NOINLINE glColorTableSGIFunPtr #-}
 
+-- | Usage: @'glCopyColorTableSGI' target internalformat x y width@
+--
+-- The parameter @target@ is a @ColorTableTargetSGI@, one of: 'Graphics.GL.Raw.Extension.ARB.Imaging.GL_COLOR_TABLE', 'Graphics.GL.Raw.Extension.SGI.ColorTable.GL_COLOR_TABLE_SGI', 'Graphics.GL.Raw.Extension.ARB.Imaging.GL_POST_COLOR_MATRIX_COLOR_TABLE', 'Graphics.GL.Raw.Extension.SGI.ColorTable.GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI', 'Graphics.GL.Raw.Extension.ARB.Imaging.GL_POST_CONVOLUTION_COLOR_TABLE', 'Graphics.GL.Raw.Extension.SGI.ColorTable.GL_POST_CONVOLUTION_COLOR_TABLE_SGI', 'Graphics.GL.Raw.Extension.ARB.Imaging.GL_PROXY_COLOR_TABLE', 'Graphics.GL.Raw.Extension.SGI.ColorTable.GL_PROXY_COLOR_TABLE_SGI', 'Graphics.GL.Raw.Extension.ARB.Imaging.GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE', 'Graphics.GL.Raw.Extension.SGI.ColorTable.GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE_SGI', 'Graphics.GL.Raw.Extension.ARB.Imaging.GL_PROXY_POST_CONVOLUTION_COLOR_TABLE', 'Graphics.GL.Raw.Extension.SGI.ColorTable.GL_PROXY_POST_CONVOLUTION_COLOR_TABLE_SGI', 'Graphics.GL.Raw.Extension.SGI.TextureColorTable.GL_PROXY_TEXTURE_COLOR_TABLE_SGI', 'Graphics.GL.Raw.Extension.SGI.TextureColorTable.GL_TEXTURE_COLOR_TABLE_SGI'.
+--
+-- The parameter @internalformat@ is a @PixelInternalFormat@.
+--
+-- The parameter @x@ is a @WinCoord@.
+--
+-- The parameter @y@ is a @WinCoord@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Extension.ARB.Imaging.glCopyColorTable'.
+
+
 glCopyColorTableSGI :: MonadIO m => GLenum -> GLenum -> GLint -> GLint -> GLsizei -> m ()
 glCopyColorTableSGI = ffienumenumintintsizeiIOV glCopyColorTableSGIFunPtr
 
@@ -73,6 +130,15 @@
 
 {-# NOINLINE glCopyColorTableSGIFunPtr #-}
 
+-- | Usage: @'glGetColorTableParameterfvSGI' target pname params@
+--
+-- The parameter @target@ is a @ColorTableTargetSGI@, one of: 'Graphics.GL.Raw.Extension.ARB.Imaging.GL_COLOR_TABLE', 'Graphics.GL.Raw.Extension.SGI.ColorTable.GL_COLOR_TABLE_SGI', 'Graphics.GL.Raw.Extension.ARB.Imaging.GL_POST_COLOR_MATRIX_COLOR_TABLE', 'Graphics.GL.Raw.Extension.SGI.ColorTable.GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI', 'Graphics.GL.Raw.Extension.ARB.Imaging.GL_POST_CONVOLUTION_COLOR_TABLE', 'Graphics.GL.Raw.Extension.SGI.ColorTable.GL_POST_CONVOLUTION_COLOR_TABLE_SGI', 'Graphics.GL.Raw.Extension.ARB.Imaging.GL_PROXY_COLOR_TABLE', 'Graphics.GL.Raw.Extension.SGI.ColorTable.GL_PROXY_COLOR_TABLE_SGI', 'Graphics.GL.Raw.Extension.ARB.Imaging.GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE', 'Graphics.GL.Raw.Extension.SGI.ColorTable.GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE_SGI', 'Graphics.GL.Raw.Extension.ARB.Imaging.GL_PROXY_POST_CONVOLUTION_COLOR_TABLE', 'Graphics.GL.Raw.Extension.SGI.ColorTable.GL_PROXY_POST_CONVOLUTION_COLOR_TABLE_SGI', 'Graphics.GL.Raw.Extension.SGI.TextureColorTable.GL_PROXY_TEXTURE_COLOR_TABLE_SGI', 'Graphics.GL.Raw.Extension.SGI.TextureColorTable.GL_TEXTURE_COLOR_TABLE_SGI'.
+--
+-- The parameter @pname@ is a @GetColorTableParameterPNameSGI@, one of: 'Graphics.GL.Raw.Extension.SGI.ColorTable.GL_COLOR_TABLE_ALPHA_SIZE_SGI', 'Graphics.GL.Raw.Extension.SGI.ColorTable.GL_COLOR_TABLE_BIAS_SGI', 'Graphics.GL.Raw.Extension.SGI.ColorTable.GL_COLOR_TABLE_BLUE_SIZE_SGI', 'Graphics.GL.Raw.Extension.SGI.ColorTable.GL_COLOR_TABLE_FORMAT_SGI', 'Graphics.GL.Raw.Extension.SGI.ColorTable.GL_COLOR_TABLE_GREEN_SIZE_SGI', 'Graphics.GL.Raw.Extension.SGI.ColorTable.GL_COLOR_TABLE_INTENSITY_SIZE_SGI', 'Graphics.GL.Raw.Extension.SGI.ColorTable.GL_COLOR_TABLE_LUMINANCE_SIZE_SGI', 'Graphics.GL.Raw.Extension.SGI.ColorTable.GL_COLOR_TABLE_RED_SIZE_SGI', 'Graphics.GL.Raw.Extension.SGI.ColorTable.GL_COLOR_TABLE_SCALE_SGI', 'Graphics.GL.Raw.Extension.SGI.ColorTable.GL_COLOR_TABLE_WIDTH_SGI'.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
 glGetColorTableParameterfvSGI :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
 glGetColorTableParameterfvSGI = ffienumenumPtrfloatIOV glGetColorTableParameterfvSGIFunPtr
 
@@ -81,6 +147,15 @@
 
 {-# NOINLINE glGetColorTableParameterfvSGIFunPtr #-}
 
+-- | Usage: @'glGetColorTableParameterivSGI' target pname params@
+--
+-- The parameter @target@ is a @ColorTableTargetSGI@, one of: 'Graphics.GL.Raw.Extension.ARB.Imaging.GL_COLOR_TABLE', 'Graphics.GL.Raw.Extension.SGI.ColorTable.GL_COLOR_TABLE_SGI', 'Graphics.GL.Raw.Extension.ARB.Imaging.GL_POST_COLOR_MATRIX_COLOR_TABLE', 'Graphics.GL.Raw.Extension.SGI.ColorTable.GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI', 'Graphics.GL.Raw.Extension.ARB.Imaging.GL_POST_CONVOLUTION_COLOR_TABLE', 'Graphics.GL.Raw.Extension.SGI.ColorTable.GL_POST_CONVOLUTION_COLOR_TABLE_SGI', 'Graphics.GL.Raw.Extension.ARB.Imaging.GL_PROXY_COLOR_TABLE', 'Graphics.GL.Raw.Extension.SGI.ColorTable.GL_PROXY_COLOR_TABLE_SGI', 'Graphics.GL.Raw.Extension.ARB.Imaging.GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE', 'Graphics.GL.Raw.Extension.SGI.ColorTable.GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE_SGI', 'Graphics.GL.Raw.Extension.ARB.Imaging.GL_PROXY_POST_CONVOLUTION_COLOR_TABLE', 'Graphics.GL.Raw.Extension.SGI.ColorTable.GL_PROXY_POST_CONVOLUTION_COLOR_TABLE_SGI', 'Graphics.GL.Raw.Extension.SGI.TextureColorTable.GL_PROXY_TEXTURE_COLOR_TABLE_SGI', 'Graphics.GL.Raw.Extension.SGI.TextureColorTable.GL_TEXTURE_COLOR_TABLE_SGI'.
+--
+-- The parameter @pname@ is a @GetColorTableParameterPNameSGI@, one of: 'Graphics.GL.Raw.Extension.SGI.ColorTable.GL_COLOR_TABLE_ALPHA_SIZE_SGI', 'Graphics.GL.Raw.Extension.SGI.ColorTable.GL_COLOR_TABLE_BIAS_SGI', 'Graphics.GL.Raw.Extension.SGI.ColorTable.GL_COLOR_TABLE_BLUE_SIZE_SGI', 'Graphics.GL.Raw.Extension.SGI.ColorTable.GL_COLOR_TABLE_FORMAT_SGI', 'Graphics.GL.Raw.Extension.SGI.ColorTable.GL_COLOR_TABLE_GREEN_SIZE_SGI', 'Graphics.GL.Raw.Extension.SGI.ColorTable.GL_COLOR_TABLE_INTENSITY_SIZE_SGI', 'Graphics.GL.Raw.Extension.SGI.ColorTable.GL_COLOR_TABLE_LUMINANCE_SIZE_SGI', 'Graphics.GL.Raw.Extension.SGI.ColorTable.GL_COLOR_TABLE_RED_SIZE_SGI', 'Graphics.GL.Raw.Extension.SGI.ColorTable.GL_COLOR_TABLE_SCALE_SGI', 'Graphics.GL.Raw.Extension.SGI.ColorTable.GL_COLOR_TABLE_WIDTH_SGI'.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
 glGetColorTableParameterivSGI :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
 glGetColorTableParameterivSGI = ffienumenumPtrintIOV glGetColorTableParameterivSGIFunPtr
 
@@ -88,6 +163,17 @@
 glGetColorTableParameterivSGIFunPtr = unsafePerformIO (getProcAddress "glGetColorTableParameterivSGI")
 
 {-# NOINLINE glGetColorTableParameterivSGIFunPtr #-}
+
+-- | Usage: @'glGetColorTableSGI' target format type table@
+--
+-- The parameter @target@ is a @ColorTableTargetSGI@, one of: 'Graphics.GL.Raw.Extension.ARB.Imaging.GL_COLOR_TABLE', 'Graphics.GL.Raw.Extension.SGI.ColorTable.GL_COLOR_TABLE_SGI', 'Graphics.GL.Raw.Extension.ARB.Imaging.GL_POST_COLOR_MATRIX_COLOR_TABLE', 'Graphics.GL.Raw.Extension.SGI.ColorTable.GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI', 'Graphics.GL.Raw.Extension.ARB.Imaging.GL_POST_CONVOLUTION_COLOR_TABLE', 'Graphics.GL.Raw.Extension.SGI.ColorTable.GL_POST_CONVOLUTION_COLOR_TABLE_SGI', 'Graphics.GL.Raw.Extension.ARB.Imaging.GL_PROXY_COLOR_TABLE', 'Graphics.GL.Raw.Extension.SGI.ColorTable.GL_PROXY_COLOR_TABLE_SGI', 'Graphics.GL.Raw.Extension.ARB.Imaging.GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE', 'Graphics.GL.Raw.Extension.SGI.ColorTable.GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE_SGI', 'Graphics.GL.Raw.Extension.ARB.Imaging.GL_PROXY_POST_CONVOLUTION_COLOR_TABLE', 'Graphics.GL.Raw.Extension.SGI.ColorTable.GL_PROXY_POST_CONVOLUTION_COLOR_TABLE_SGI', 'Graphics.GL.Raw.Extension.SGI.TextureColorTable.GL_PROXY_TEXTURE_COLOR_TABLE_SGI', 'Graphics.GL.Raw.Extension.SGI.TextureColorTable.GL_TEXTURE_COLOR_TABLE_SGI'.
+--
+-- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Raw.Extension.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_ALPHA', 'Graphics.GL.Raw.Internal.Shared.GL_BLUE', 'Graphics.GL.Raw.Extension.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Raw.Extension.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Raw.Internal.Shared.GL_GREEN', 'Graphics.GL.Raw.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Raw.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Raw.Internal.Shared.GL_RED', 'Graphics.GL.Raw.Extension.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_RGB', 'Graphics.GL.Raw.Internal.Shared.GL_RGBA', 'Graphics.GL.Raw.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Raw.Extension.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
+--
+-- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_BITMAP', 'Graphics.GL.Raw.Internal.Shared.GL_BYTE', 'Graphics.GL.Raw.Internal.Shared.GL_FLOAT', 'Graphics.GL.Raw.Internal.Shared.GL_INT', 'Graphics.GL.Raw.Internal.Shared.GL_SHORT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
+--
+-- The length of @table@ should be @COMPSIZE(target,format,type)@.
+
 
 glGetColorTableSGI :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr () -> m ()
 glGetColorTableSGI = ffienumenumenumPtrVIOV glGetColorTableSGIFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/SGI/TextureColorTable.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/SGI/TextureColorTable.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/SGI/TextureColorTable.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/SGI/TextureColorTable.hs
@@ -12,8 +12,11 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGI/texture_color_table.txt GL_SGI_texture_color_table> extension is available.
+
 gl_SGI_texture_color_table :: Bool
 gl_SGI_texture_color_table = member "GL_SGI_texture_color_table" extensions
+{-# NOINLINE gl_SGI_texture_color_table #-}
 
 pattern GL_PROXY_TEXTURE_COLOR_TABLE_SGI = 0x80BD
 
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIS/DetailTexture.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIS/DetailTexture.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIS/DetailTexture.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIS/DetailTexture.hs
@@ -25,9 +25,19 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIS/detail_texture.txt GL_SGIS_detail_texture> extension is available.
+
 gl_SGIS_detail_texture :: Bool
 gl_SGIS_detail_texture = member "GL_SGIS_detail_texture" extensions
+{-# NOINLINE gl_SGIS_detail_texture #-}
 
+-- | Usage: @'glDetailTexFuncSGIS' target n points@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The length of @points@ should be @n*2@.
+
+
 glDetailTexFuncSGIS :: MonadIO m => GLenum -> GLsizei -> Ptr GLfloat -> m ()
 glDetailTexFuncSGIS = ffienumsizeiPtrfloatIOV glDetailTexFuncSGISFunPtr
 
@@ -35,6 +45,13 @@
 glDetailTexFuncSGISFunPtr = unsafePerformIO (getProcAddress "glDetailTexFuncSGIS")
 
 {-# NOINLINE glDetailTexFuncSGISFunPtr #-}
+
+-- | Usage: @'glGetDetailTexFuncSGIS' target points@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The length of @points@ should be @COMPSIZE(target)@.
+
 
 glGetDetailTexFuncSGIS :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
 glGetDetailTexFuncSGIS = ffienumPtrfloatIOV glGetDetailTexFuncSGISFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIS/FogFunction.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIS/FogFunction.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIS/FogFunction.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIS/FogFunction.hs
@@ -20,9 +20,17 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the GL_SGIS_fog_function extension is available.
+
 gl_SGIS_fog_function :: Bool
 gl_SGIS_fog_function = member "GL_SGIS_fog_function" extensions
+{-# NOINLINE gl_SGIS_fog_function #-}
 
+-- | Usage: @'glFogFuncSGIS' n points@
+--
+-- The length of @points@ should be @n*2@.
+
+
 glFogFuncSGIS :: MonadIO m => GLsizei -> Ptr GLfloat -> m ()
 glFogFuncSGIS = ffisizeiPtrfloatIOV glFogFuncSGISFunPtr
 
@@ -30,6 +38,11 @@
 glFogFuncSGISFunPtr = unsafePerformIO (getProcAddress "glFogFuncSGIS")
 
 {-# NOINLINE glFogFuncSGISFunPtr #-}
+
+-- | Usage: @'glGetFogFuncSGIS' points@
+--
+-- The length of @points@ should be @COMPSIZE()@.
+
 
 glGetFogFuncSGIS :: MonadIO m => Ptr GLfloat -> m ()
 glGetFogFuncSGIS = ffiPtrfloatIOV glGetFogFuncSGISFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIS/GenerateMipmap.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIS/GenerateMipmap.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIS/GenerateMipmap.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIS/GenerateMipmap.hs
@@ -12,8 +12,11 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIS/generate_mipmap.txt GL_SGIS_generate_mipmap> extension is available.
+
 gl_SGIS_generate_mipmap :: Bool
 gl_SGIS_generate_mipmap = member "GL_SGIS_generate_mipmap" extensions
+{-# NOINLINE gl_SGIS_generate_mipmap #-}
 
 pattern GL_GENERATE_MIPMAP_HINT_SGIS = 0x8192
 
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIS/Multisample.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIS/Multisample.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIS/Multisample.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIS/Multisample.hs
@@ -33,9 +33,21 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIS/multisample.txt GL_SGIS_multisample> extension is available.
+
 gl_SGIS_multisample :: Bool
 gl_SGIS_multisample = member "GL_SGIS_multisample" extensions
+{-# NOINLINE gl_SGIS_multisample #-}
 
+-- | Usage: @'glSampleMaskSGIS' value invert@
+--
+-- The parameter @value@ is a @ClampedFloat32@.
+--
+-- The parameter @invert@ is a @Boolean@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FALSE', 'Graphics.GL.Raw.Internal.Shared.GL_TRUE'.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Extension.EXT.Multisample.glSampleMaskEXT'.
+
+
 glSampleMaskSGIS :: MonadIO m => GLclampf -> GLboolean -> m ()
 glSampleMaskSGIS = fficlampfbooleanIOV glSampleMaskSGISFunPtr
 
@@ -43,6 +55,13 @@
 glSampleMaskSGISFunPtr = unsafePerformIO (getProcAddress "glSampleMaskSGIS")
 
 {-# NOINLINE glSampleMaskSGISFunPtr #-}
+
+-- | Usage: @'glSamplePatternSGIS' pattern@
+--
+-- The parameter @pattern@ is a @SamplePatternSGIS@, one of: 'Graphics.GL.Raw.Extension.EXT.Multisample.GL_1PASS_EXT', 'Graphics.GL.Raw.Extension.SGIS.Multisample.GL_1PASS_SGIS', 'Graphics.GL.Raw.Extension.EXT.Multisample.GL_2PASS_0_EXT', 'Graphics.GL.Raw.Extension.SGIS.Multisample.GL_2PASS_0_SGIS', 'Graphics.GL.Raw.Extension.EXT.Multisample.GL_2PASS_1_EXT', 'Graphics.GL.Raw.Extension.SGIS.Multisample.GL_2PASS_1_SGIS', 'Graphics.GL.Raw.Extension.EXT.Multisample.GL_4PASS_0_EXT', 'Graphics.GL.Raw.Extension.SGIS.Multisample.GL_4PASS_0_SGIS', 'Graphics.GL.Raw.Extension.EXT.Multisample.GL_4PASS_1_EXT', 'Graphics.GL.Raw.Extension.SGIS.Multisample.GL_4PASS_1_SGIS', 'Graphics.GL.Raw.Extension.EXT.Multisample.GL_4PASS_2_EXT', 'Graphics.GL.Raw.Extension.SGIS.Multisample.GL_4PASS_2_SGIS', 'Graphics.GL.Raw.Extension.EXT.Multisample.GL_4PASS_3_EXT', 'Graphics.GL.Raw.Extension.SGIS.Multisample.GL_4PASS_3_SGIS'.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Extension.EXT.Multisample.glSamplePatternEXT'.
+
 
 glSamplePatternSGIS :: MonadIO m => GLenum -> m ()
 glSamplePatternSGIS = ffienumIOV glSamplePatternSGISFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIS/PixelTexture.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIS/PixelTexture.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIS/PixelTexture.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIS/PixelTexture.hs
@@ -25,9 +25,21 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIS/pixel_texture.txt GL_SGIS_pixel_texture> extension is available.
+
 gl_SGIS_pixel_texture :: Bool
 gl_SGIS_pixel_texture = member "GL_SGIS_pixel_texture" extensions
+{-# NOINLINE gl_SGIS_pixel_texture #-}
 
+-- | Usage: @'glGetPixelTexGenParameterfvSGIS' pname params@
+--
+-- The parameter @pname@ is a @PixelTexGenParameterNameSGIS@, one of: 'Graphics.GL.Raw.Extension.SGIS.PixelTexture.GL_PIXEL_FRAGMENT_ALPHA_SOURCE_SGIS', 'Graphics.GL.Raw.Extension.SGIS.PixelTexture.GL_PIXEL_FRAGMENT_RGB_SOURCE_SGIS'.
+--
+-- The parameter @params@ is a @CheckedFloat32@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
 glGetPixelTexGenParameterfvSGIS :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
 glGetPixelTexGenParameterfvSGIS = ffienumPtrfloatIOV glGetPixelTexGenParameterfvSGISFunPtr
 
@@ -36,6 +48,15 @@
 
 {-# NOINLINE glGetPixelTexGenParameterfvSGISFunPtr #-}
 
+-- | Usage: @'glGetPixelTexGenParameterivSGIS' pname params@
+--
+-- The parameter @pname@ is a @PixelTexGenParameterNameSGIS@, one of: 'Graphics.GL.Raw.Extension.SGIS.PixelTexture.GL_PIXEL_FRAGMENT_ALPHA_SOURCE_SGIS', 'Graphics.GL.Raw.Extension.SGIS.PixelTexture.GL_PIXEL_FRAGMENT_RGB_SOURCE_SGIS'.
+--
+-- The parameter @params@ is a @CheckedInt32@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
 glGetPixelTexGenParameterivSGIS :: MonadIO m => GLenum -> Ptr GLint -> m ()
 glGetPixelTexGenParameterivSGIS = ffienumPtrintIOV glGetPixelTexGenParameterivSGISFunPtr
 
@@ -44,6 +65,13 @@
 
 {-# NOINLINE glGetPixelTexGenParameterivSGISFunPtr #-}
 
+-- | Usage: @'glPixelTexGenParameterfSGIS' pname param@
+--
+-- The parameter @pname@ is a @PixelTexGenParameterNameSGIS@, one of: 'Graphics.GL.Raw.Extension.SGIS.PixelTexture.GL_PIXEL_FRAGMENT_ALPHA_SOURCE_SGIS', 'Graphics.GL.Raw.Extension.SGIS.PixelTexture.GL_PIXEL_FRAGMENT_RGB_SOURCE_SGIS'.
+--
+-- The parameter @param@ is a @CheckedFloat32@.
+
+
 glPixelTexGenParameterfSGIS :: MonadIO m => GLenum -> GLfloat -> m ()
 glPixelTexGenParameterfSGIS = ffienumfloatIOV glPixelTexGenParameterfSGISFunPtr
 
@@ -52,6 +80,15 @@
 
 {-# NOINLINE glPixelTexGenParameterfSGISFunPtr #-}
 
+-- | Usage: @'glPixelTexGenParameterfvSGIS' pname params@
+--
+-- The parameter @pname@ is a @PixelTexGenParameterNameSGIS@, one of: 'Graphics.GL.Raw.Extension.SGIS.PixelTexture.GL_PIXEL_FRAGMENT_ALPHA_SOURCE_SGIS', 'Graphics.GL.Raw.Extension.SGIS.PixelTexture.GL_PIXEL_FRAGMENT_RGB_SOURCE_SGIS'.
+--
+-- The parameter @params@ is a @CheckedFloat32@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
 glPixelTexGenParameterfvSGIS :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
 glPixelTexGenParameterfvSGIS = ffienumPtrfloatIOV glPixelTexGenParameterfvSGISFunPtr
 
@@ -60,6 +97,13 @@
 
 {-# NOINLINE glPixelTexGenParameterfvSGISFunPtr #-}
 
+-- | Usage: @'glPixelTexGenParameteriSGIS' pname param@
+--
+-- The parameter @pname@ is a @PixelTexGenParameterNameSGIS@, one of: 'Graphics.GL.Raw.Extension.SGIS.PixelTexture.GL_PIXEL_FRAGMENT_ALPHA_SOURCE_SGIS', 'Graphics.GL.Raw.Extension.SGIS.PixelTexture.GL_PIXEL_FRAGMENT_RGB_SOURCE_SGIS'.
+--
+-- The parameter @param@ is a @CheckedInt32@.
+
+
 glPixelTexGenParameteriSGIS :: MonadIO m => GLenum -> GLint -> m ()
 glPixelTexGenParameteriSGIS = ffienumintIOV glPixelTexGenParameteriSGISFunPtr
 
@@ -67,6 +111,15 @@
 glPixelTexGenParameteriSGISFunPtr = unsafePerformIO (getProcAddress "glPixelTexGenParameteriSGIS")
 
 {-# NOINLINE glPixelTexGenParameteriSGISFunPtr #-}
+
+-- | Usage: @'glPixelTexGenParameterivSGIS' pname params@
+--
+-- The parameter @pname@ is a @PixelTexGenParameterNameSGIS@, one of: 'Graphics.GL.Raw.Extension.SGIS.PixelTexture.GL_PIXEL_FRAGMENT_ALPHA_SOURCE_SGIS', 'Graphics.GL.Raw.Extension.SGIS.PixelTexture.GL_PIXEL_FRAGMENT_RGB_SOURCE_SGIS'.
+--
+-- The parameter @params@ is a @CheckedInt32@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
 
 glPixelTexGenParameterivSGIS :: MonadIO m => GLenum -> Ptr GLint -> m ()
 glPixelTexGenParameterivSGIS = ffienumPtrintIOV glPixelTexGenParameterivSGISFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIS/PointLineTexgen.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIS/PointLineTexgen.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIS/PointLineTexgen.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIS/PointLineTexgen.hs
@@ -18,8 +18,11 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIS/point_line_texgen.txt GL_SGIS_point_line_texgen> extension is available.
+
 gl_SGIS_point_line_texgen :: Bool
 gl_SGIS_point_line_texgen = member "GL_SGIS_point_line_texgen" extensions
+{-# NOINLINE gl_SGIS_point_line_texgen #-}
 
 pattern GL_EYE_DISTANCE_TO_LINE_SGIS = 0x81F2
 
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIS/PointParameters.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIS/PointParameters.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIS/PointParameters.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIS/PointParameters.hs
@@ -21,9 +21,21 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the GL_SGIS_point_parameters extension is available.
+
 gl_SGIS_point_parameters :: Bool
 gl_SGIS_point_parameters = member "GL_SGIS_point_parameters" extensions
+{-# NOINLINE gl_SGIS_point_parameters #-}
 
+-- | Usage: @'glPointParameterfSGIS' pname param@
+--
+-- The parameter @pname@ is a @PointParameterNameARB@.
+--
+-- The parameter @param@ is a @CheckedFloat32@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glPointParameterf'.
+
+
 glPointParameterfSGIS :: MonadIO m => GLenum -> GLfloat -> m ()
 glPointParameterfSGIS = ffienumfloatIOV glPointParameterfSGISFunPtr
 
@@ -31,6 +43,17 @@
 glPointParameterfSGISFunPtr = unsafePerformIO (getProcAddress "glPointParameterfSGIS")
 
 {-# NOINLINE glPointParameterfSGISFunPtr #-}
+
+-- | Usage: @'glPointParameterfvSGIS' pname params@
+--
+-- The parameter @pname@ is a @PointParameterNameARB@.
+--
+-- The parameter @params@ is a @CheckedFloat32@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glPointParameterfv'.
+
 
 glPointParameterfvSGIS :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
 glPointParameterfvSGIS = ffienumPtrfloatIOV glPointParameterfvSGISFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIS/SharpenTexture.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIS/SharpenTexture.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIS/SharpenTexture.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIS/SharpenTexture.hs
@@ -21,9 +21,19 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIS/sharpen_texture.txt GL_SGIS_sharpen_texture> extension is available.
+
 gl_SGIS_sharpen_texture :: Bool
 gl_SGIS_sharpen_texture = member "GL_SGIS_sharpen_texture" extensions
+{-# NOINLINE gl_SGIS_sharpen_texture #-}
 
+-- | Usage: @'glGetSharpenTexFuncSGIS' target points@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The length of @points@ should be @COMPSIZE(target)@.
+
+
 glGetSharpenTexFuncSGIS :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
 glGetSharpenTexFuncSGIS = ffienumPtrfloatIOV glGetSharpenTexFuncSGISFunPtr
 
@@ -31,6 +41,13 @@
 glGetSharpenTexFuncSGISFunPtr = unsafePerformIO (getProcAddress "glGetSharpenTexFuncSGIS")
 
 {-# NOINLINE glGetSharpenTexFuncSGISFunPtr #-}
+
+-- | Usage: @'glSharpenTexFuncSGIS' target n points@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The length of @points@ should be @n*2@.
+
 
 glSharpenTexFuncSGIS :: MonadIO m => GLenum -> GLsizei -> Ptr GLfloat -> m ()
 glSharpenTexFuncSGIS = ffienumsizeiPtrfloatIOV glSharpenTexFuncSGISFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIS/Texture4D.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIS/Texture4D.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIS/Texture4D.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIS/Texture4D.hs
@@ -27,9 +27,29 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIS/texture4D.txt GL_SGIS_texture4D> extension is available.
+
 gl_SGIS_texture4D :: Bool
 gl_SGIS_texture4D = member "GL_SGIS_texture4D" extensions
+{-# NOINLINE gl_SGIS_texture4D #-}
 
+-- | Usage: @'glTexImage4DSGIS' target level internalformat width height depth size4d border format type pixels@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @internalformat@ is a @PixelInternalFormat@.
+--
+-- The parameter @border@ is a @CheckedInt32@.
+--
+-- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Raw.Extension.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_ALPHA', 'Graphics.GL.Raw.Internal.Shared.GL_BLUE', 'Graphics.GL.Raw.Extension.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Raw.Extension.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Raw.Internal.Shared.GL_GREEN', 'Graphics.GL.Raw.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Raw.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Raw.Internal.Shared.GL_RED', 'Graphics.GL.Raw.Extension.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_RGB', 'Graphics.GL.Raw.Internal.Shared.GL_RGBA', 'Graphics.GL.Raw.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Raw.Extension.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
+--
+-- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_BITMAP', 'Graphics.GL.Raw.Internal.Shared.GL_BYTE', 'Graphics.GL.Raw.Internal.Shared.GL_FLOAT', 'Graphics.GL.Raw.Internal.Shared.GL_INT', 'Graphics.GL.Raw.Internal.Shared.GL_SHORT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
+--
+-- The length of @pixels@ should be @COMPSIZE(format,type,width,height,depth,size4d)@.
+
+
 glTexImage4DSGIS :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> m ()
 glTexImage4DSGIS = ffienumintenumsizeisizeisizeisizeiintenumenumPtrVIOV glTexImage4DSGISFunPtr
 
@@ -37,6 +57,27 @@
 glTexImage4DSGISFunPtr = unsafePerformIO (getProcAddress "glTexImage4DSGIS")
 
 {-# NOINLINE glTexImage4DSGISFunPtr #-}
+
+-- | Usage: @'glTexSubImage4DSGIS' target level xoffset yoffset zoffset woffset width height depth size4d format type pixels@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @xoffset@ is a @CheckedInt32@.
+--
+-- The parameter @yoffset@ is a @CheckedInt32@.
+--
+-- The parameter @zoffset@ is a @CheckedInt32@.
+--
+-- The parameter @woffset@ is a @CheckedInt32@.
+--
+-- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Raw.Extension.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_ALPHA', 'Graphics.GL.Raw.Internal.Shared.GL_BLUE', 'Graphics.GL.Raw.Extension.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Raw.Extension.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Raw.Internal.Shared.GL_GREEN', 'Graphics.GL.Raw.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Raw.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Raw.Internal.Shared.GL_RED', 'Graphics.GL.Raw.Extension.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_RGB', 'Graphics.GL.Raw.Internal.Shared.GL_RGBA', 'Graphics.GL.Raw.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Raw.Extension.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
+--
+-- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_BITMAP', 'Graphics.GL.Raw.Internal.Shared.GL_BYTE', 'Graphics.GL.Raw.Internal.Shared.GL_FLOAT', 'Graphics.GL.Raw.Internal.Shared.GL_INT', 'Graphics.GL.Raw.Internal.Shared.GL_SHORT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
+--
+-- The length of @pixels@ should be @COMPSIZE(format,type,width,height,depth,size4d)@.
+
 
 glTexSubImage4DSGIS :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
 glTexSubImage4DSGIS = ffienumintintintintintsizeisizeisizeisizeienumenumPtrVIOV glTexSubImage4DSGISFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIS/TextureBorderClamp.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIS/TextureBorderClamp.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIS/TextureBorderClamp.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIS/TextureBorderClamp.hs
@@ -11,7 +11,10 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIS/texture_border_clamp.txt GL_SGIS_texture_border_clamp> extension is available.
+
 gl_SGIS_texture_border_clamp :: Bool
 gl_SGIS_texture_border_clamp = member "GL_SGIS_texture_border_clamp" extensions
+{-# NOINLINE gl_SGIS_texture_border_clamp #-}
 
 pattern GL_CLAMP_TO_BORDER_SGIS = 0x812D
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIS/TextureColorMask.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIS/TextureColorMask.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIS/TextureColorMask.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIS/TextureColorMask.hs
@@ -17,8 +17,22 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIS/texture_color_mask.txt GL_SGIS_texture_color_mask> extension is available.
+
 gl_SGIS_texture_color_mask :: Bool
 gl_SGIS_texture_color_mask = member "GL_SGIS_texture_color_mask" extensions
+{-# NOINLINE gl_SGIS_texture_color_mask #-}
+
+-- | Usage: @'glTextureColorMaskSGIS' red green blue alpha@
+--
+-- The parameter @red@ is a @Boolean@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FALSE', 'Graphics.GL.Raw.Internal.Shared.GL_TRUE'.
+--
+-- The parameter @green@ is a @Boolean@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FALSE', 'Graphics.GL.Raw.Internal.Shared.GL_TRUE'.
+--
+-- The parameter @blue@ is a @Boolean@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FALSE', 'Graphics.GL.Raw.Internal.Shared.GL_TRUE'.
+--
+-- The parameter @alpha@ is a @Boolean@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FALSE', 'Graphics.GL.Raw.Internal.Shared.GL_TRUE'.
+
 
 glTextureColorMaskSGIS :: MonadIO m => GLboolean -> GLboolean -> GLboolean -> GLboolean -> m ()
 glTextureColorMaskSGIS = ffibooleanbooleanbooleanbooleanIOV glTextureColorMaskSGISFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIS/TextureEdgeClamp.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIS/TextureEdgeClamp.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIS/TextureEdgeClamp.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIS/TextureEdgeClamp.hs
@@ -11,7 +11,10 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIS/texture_edge_clamp.txt GL_SGIS_texture_edge_clamp> extension is available.
+
 gl_SGIS_texture_edge_clamp :: Bool
 gl_SGIS_texture_edge_clamp = member "GL_SGIS_texture_edge_clamp" extensions
+{-# NOINLINE gl_SGIS_texture_edge_clamp #-}
 
 pattern GL_CLAMP_TO_EDGE_SGIS = 0x812F
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIS/TextureFilter4.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIS/TextureFilter4.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIS/TextureFilter4.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIS/TextureFilter4.hs
@@ -19,9 +19,21 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIS/texture_filter4.txt GL_SGIS_texture_filter4> extension is available.
+
 gl_SGIS_texture_filter4 :: Bool
 gl_SGIS_texture_filter4 = member "GL_SGIS_texture_filter4" extensions
+{-# NOINLINE gl_SGIS_texture_filter4 #-}
 
+-- | Usage: @'glGetTexFilterFuncSGIS' target filter weights@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @filter@ is a @TextureFilterSGIS@.
+--
+-- The length of @weights@ should be @COMPSIZE(target,filter)@.
+
+
 glGetTexFilterFuncSGIS :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
 glGetTexFilterFuncSGIS = ffienumenumPtrfloatIOV glGetTexFilterFuncSGISFunPtr
 
@@ -29,6 +41,15 @@
 glGetTexFilterFuncSGISFunPtr = unsafePerformIO (getProcAddress "glGetTexFilterFuncSGIS")
 
 {-# NOINLINE glGetTexFilterFuncSGISFunPtr #-}
+
+-- | Usage: @'glTexFilterFuncSGIS' target filter n weights@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @filter@ is a @TextureFilterSGIS@.
+--
+-- The length of @weights@ should be @n@.
+
 
 glTexFilterFuncSGIS :: MonadIO m => GLenum -> GLenum -> GLsizei -> Ptr GLfloat -> m ()
 glTexFilterFuncSGIS = ffienumenumsizeiPtrfloatIOV glTexFilterFuncSGISFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIS/TextureLod.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIS/TextureLod.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIS/TextureLod.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIS/TextureLod.hs
@@ -14,8 +14,11 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIS/texture_lod.txt GL_SGIS_texture_lod> extension is available.
+
 gl_SGIS_texture_lod :: Bool
 gl_SGIS_texture_lod = member "GL_SGIS_texture_lod" extensions
+{-# NOINLINE gl_SGIS_texture_lod #-}
 
 pattern GL_TEXTURE_BASE_LEVEL_SGIS = 0x813C
 
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIS/TextureSelect.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIS/TextureSelect.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIS/TextureSelect.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIS/TextureSelect.hs
@@ -32,8 +32,11 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIS/texture_select.txt GL_SGIS_texture_select> extension is available.
+
 gl_SGIS_texture_select :: Bool
 gl_SGIS_texture_select = member "GL_SGIS_texture_select" extensions
+{-# NOINLINE gl_SGIS_texture_select #-}
 
 pattern GL_DUAL_ALPHA12_SGIS = 0x8112
 
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/Async.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/Async.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/Async.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/Async.hs
@@ -22,9 +22,15 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIX/async.txt GL_SGIX_async> extension is available.
+
 gl_SGIX_async :: Bool
 gl_SGIX_async = member "GL_SGIX_async" extensions
+{-# NOINLINE gl_SGIX_async #-}
 
+-- | Usage: @'glAsyncMarkerSGIX' marker@
+
+
 glAsyncMarkerSGIX :: MonadIO m => GLuint -> m ()
 glAsyncMarkerSGIX = ffiuintIOV glAsyncMarkerSGIXFunPtr
 
@@ -33,6 +39,9 @@
 
 {-# NOINLINE glAsyncMarkerSGIXFunPtr #-}
 
+-- | Usage: @'glDeleteAsyncMarkersSGIX' marker range@
+
+
 glDeleteAsyncMarkersSGIX :: MonadIO m => GLuint -> GLsizei -> m ()
 glDeleteAsyncMarkersSGIX = ffiuintsizeiIOV glDeleteAsyncMarkersSGIXFunPtr
 
@@ -41,6 +50,11 @@
 
 {-# NOINLINE glDeleteAsyncMarkersSGIXFunPtr #-}
 
+-- | Usage: @'glFinishAsyncSGIX' markerp@
+--
+-- The length of @markerp@ should be @1@.
+
+
 glFinishAsyncSGIX :: MonadIO m => Ptr GLuint -> m GLint
 glFinishAsyncSGIX = ffiPtruintIOint glFinishAsyncSGIXFunPtr
 
@@ -49,6 +63,9 @@
 
 {-# NOINLINE glFinishAsyncSGIXFunPtr #-}
 
+-- | Usage: @'glGenAsyncMarkersSGIX' range@
+
+
 glGenAsyncMarkersSGIX :: MonadIO m => GLsizei -> m GLuint
 glGenAsyncMarkersSGIX = ffisizeiIOuint glGenAsyncMarkersSGIXFunPtr
 
@@ -57,6 +74,9 @@
 
 {-# NOINLINE glGenAsyncMarkersSGIXFunPtr #-}
 
+-- | Usage: @'glIsAsyncMarkerSGIX' marker@
+
+
 glIsAsyncMarkerSGIX :: MonadIO m => GLuint -> m GLboolean
 glIsAsyncMarkerSGIX = ffiuintIOboolean glIsAsyncMarkerSGIXFunPtr
 
@@ -64,6 +84,11 @@
 glIsAsyncMarkerSGIXFunPtr = unsafePerformIO (getProcAddress "glIsAsyncMarkerSGIX")
 
 {-# NOINLINE glIsAsyncMarkerSGIXFunPtr #-}
+
+-- | Usage: @'glPollAsyncSGIX' markerp@
+--
+-- The length of @markerp@ should be @1@.
+
 
 glPollAsyncSGIX :: MonadIO m => Ptr GLuint -> m GLint
 glPollAsyncSGIX = ffiPtruintIOint glPollAsyncSGIXFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/AsyncHistogram.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/AsyncHistogram.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/AsyncHistogram.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/AsyncHistogram.hs
@@ -12,8 +12,11 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIX/async_histogram.txt GL_SGIX_async_histogram> extension is available.
+
 gl_SGIX_async_histogram :: Bool
 gl_SGIX_async_histogram = member "GL_SGIX_async_histogram" extensions
+{-# NOINLINE gl_SGIX_async_histogram #-}
 
 pattern GL_ASYNC_HISTOGRAM_SGIX = 0x832C
 
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/AsyncPixel.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/AsyncPixel.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/AsyncPixel.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/AsyncPixel.hs
@@ -16,8 +16,11 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIX/async_pixel.txt GL_SGIX_async_pixel> extension is available.
+
 gl_SGIX_async_pixel :: Bool
 gl_SGIX_async_pixel = member "GL_SGIX_async_pixel" extensions
+{-# NOINLINE gl_SGIX_async_pixel #-}
 
 pattern GL_ASYNC_DRAW_PIXELS_SGIX = 0x835D
 
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/BlendAlphaMinmax.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/BlendAlphaMinmax.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/BlendAlphaMinmax.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/BlendAlphaMinmax.hs
@@ -12,8 +12,11 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIX/blend_alpha_minmax.txt GL_SGIX_blend_alpha_minmax> extension is available.
+
 gl_SGIX_blend_alpha_minmax :: Bool
 gl_SGIX_blend_alpha_minmax = member "GL_SGIX_blend_alpha_minmax" extensions
+{-# NOINLINE gl_SGIX_blend_alpha_minmax #-}
 
 pattern GL_ALPHA_MAX_SGIX = 0x8321
 
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/CalligraphicFragment.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/CalligraphicFragment.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/CalligraphicFragment.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/CalligraphicFragment.hs
@@ -11,7 +11,10 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the GL_SGIX_calligraphic_fragment extension is available.
+
 gl_SGIX_calligraphic_fragment :: Bool
 gl_SGIX_calligraphic_fragment = member "GL_SGIX_calligraphic_fragment" extensions
+{-# NOINLINE gl_SGIX_calligraphic_fragment #-}
 
 pattern GL_CALLIGRAPHIC_FRAGMENT_SGIX = 0x8183
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/Clipmap.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/Clipmap.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/Clipmap.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/Clipmap.hs
@@ -22,8 +22,11 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIX/clipmap.txt GL_SGIX_clipmap> extension is available.
+
 gl_SGIX_clipmap :: Bool
 gl_SGIX_clipmap = member "GL_SGIX_clipmap" extensions
+{-# NOINLINE gl_SGIX_clipmap #-}
 
 pattern GL_LINEAR_CLIPMAP_LINEAR_SGIX = 0x8170
 
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/ConvolutionAccuracy.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/ConvolutionAccuracy.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/ConvolutionAccuracy.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/ConvolutionAccuracy.hs
@@ -11,7 +11,10 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIX/convolution_accuracy.txt GL_SGIX_convolution_accuracy> extension is available.
+
 gl_SGIX_convolution_accuracy :: Bool
 gl_SGIX_convolution_accuracy = member "GL_SGIX_convolution_accuracy" extensions
+{-# NOINLINE gl_SGIX_convolution_accuracy #-}
 
 pattern GL_CONVOLUTION_HINT_SGIX = 0x8316
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/DepthPassInstrument.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/DepthPassInstrument.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/DepthPassInstrument.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/DepthPassInstrument.hs
@@ -8,5 +8,8 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the GL_SGIX_depth_pass_instrument extension is available.
+
 gl_SGIX_depth_pass_instrument :: Bool
 gl_SGIX_depth_pass_instrument = member "GL_SGIX_depth_pass_instrument" extensions
+{-# NOINLINE gl_SGIX_depth_pass_instrument #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/DepthTexture.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/DepthTexture.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/DepthTexture.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/DepthTexture.hs
@@ -13,8 +13,11 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIX/depth_texture.txt GL_SGIX_depth_texture> extension is available.
+
 gl_SGIX_depth_texture :: Bool
 gl_SGIX_depth_texture = member "GL_SGIX_depth_texture" extensions
+{-# NOINLINE gl_SGIX_depth_texture #-}
 
 pattern GL_DEPTH_COMPONENT16_SGIX = 0x81A5
 
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/FlushRaster.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/FlushRaster.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/FlushRaster.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/FlushRaster.hs
@@ -15,8 +15,14 @@
 import Graphics.GL.Raw.Internal.Proc
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIX/flush_raster.txt GL_SGIX_flush_raster> extension is available.
+
 gl_SGIX_flush_raster :: Bool
 gl_SGIX_flush_raster = member "GL_SGIX_flush_raster" extensions
+{-# NOINLINE gl_SGIX_flush_raster #-}
+
+-- | Usage: @'glFlushRasterSGIX'@
+
 
 glFlushRasterSGIX :: MonadIO m => m ()
 glFlushRasterSGIX = ffiIOV glFlushRasterSGIXFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/FogOffset.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/FogOffset.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/FogOffset.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/FogOffset.hs
@@ -12,8 +12,11 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIX/fog_offset.txt GL_SGIX_fog_offset> extension is available.
+
 gl_SGIX_fog_offset :: Bool
 gl_SGIX_fog_offset = member "GL_SGIX_fog_offset" extensions
+{-# NOINLINE gl_SGIX_fog_offset #-}
 
 pattern GL_FOG_OFFSET_SGIX = 0x8198
 
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/FragmentLighting.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/FragmentLighting.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/FragmentLighting.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/FragmentLighting.hs
@@ -53,9 +53,19 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the GL_SGIX_fragment_lighting extension is available.
+
 gl_SGIX_fragment_lighting :: Bool
 gl_SGIX_fragment_lighting = member "GL_SGIX_fragment_lighting" extensions
+{-# NOINLINE gl_SGIX_fragment_lighting #-}
 
+-- | Usage: @'glFragmentColorMaterialSGIX' face mode@
+--
+-- The parameter @face@ is a @MaterialFace@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_BACK', 'Graphics.GL.Raw.Internal.Shared.GL_FRONT', 'Graphics.GL.Raw.Internal.Shared.GL_FRONT_AND_BACK'.
+--
+-- The parameter @mode@ is a @MaterialParameter@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_AMBIENT', 'Graphics.GL.Raw.Internal.Shared.GL_AMBIENT_AND_DIFFUSE', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_INDEXES', 'Graphics.GL.Raw.Internal.Shared.GL_DIFFUSE', 'Graphics.GL.Raw.Internal.Shared.GL_EMISSION', 'Graphics.GL.Raw.Internal.Shared.GL_SHININESS', 'Graphics.GL.Raw.Internal.Shared.GL_SPECULAR'.
+
+
 glFragmentColorMaterialSGIX :: MonadIO m => GLenum -> GLenum -> m ()
 glFragmentColorMaterialSGIX = ffienumenumIOV glFragmentColorMaterialSGIXFunPtr
 
@@ -64,6 +74,13 @@
 
 {-# NOINLINE glFragmentColorMaterialSGIXFunPtr #-}
 
+-- | Usage: @'glFragmentLightModelfSGIX' pname param@
+--
+-- The parameter @pname@ is a @FragmentLightModelParameterSGIX@, one of: 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX'.
+--
+-- The parameter @param@ is a @CheckedFloat32@.
+
+
 glFragmentLightModelfSGIX :: MonadIO m => GLenum -> GLfloat -> m ()
 glFragmentLightModelfSGIX = ffienumfloatIOV glFragmentLightModelfSGIXFunPtr
 
@@ -72,6 +89,15 @@
 
 {-# NOINLINE glFragmentLightModelfSGIXFunPtr #-}
 
+-- | Usage: @'glFragmentLightModelfvSGIX' pname params@
+--
+-- The parameter @pname@ is a @FragmentLightModelParameterSGIX@, one of: 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX'.
+--
+-- The parameter @params@ is a @CheckedFloat32@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
 glFragmentLightModelfvSGIX :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
 glFragmentLightModelfvSGIX = ffienumPtrfloatIOV glFragmentLightModelfvSGIXFunPtr
 
@@ -80,6 +106,13 @@
 
 {-# NOINLINE glFragmentLightModelfvSGIXFunPtr #-}
 
+-- | Usage: @'glFragmentLightModeliSGIX' pname param@
+--
+-- The parameter @pname@ is a @FragmentLightModelParameterSGIX@, one of: 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX'.
+--
+-- The parameter @param@ is a @CheckedInt32@.
+
+
 glFragmentLightModeliSGIX :: MonadIO m => GLenum -> GLint -> m ()
 glFragmentLightModeliSGIX = ffienumintIOV glFragmentLightModeliSGIXFunPtr
 
@@ -88,6 +121,15 @@
 
 {-# NOINLINE glFragmentLightModeliSGIXFunPtr #-}
 
+-- | Usage: @'glFragmentLightModelivSGIX' pname params@
+--
+-- The parameter @pname@ is a @FragmentLightModelParameterSGIX@, one of: 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX'.
+--
+-- The parameter @params@ is a @CheckedInt32@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
 glFragmentLightModelivSGIX :: MonadIO m => GLenum -> Ptr GLint -> m ()
 glFragmentLightModelivSGIX = ffienumPtrintIOV glFragmentLightModelivSGIXFunPtr
 
@@ -96,6 +138,15 @@
 
 {-# NOINLINE glFragmentLightModelivSGIXFunPtr #-}
 
+-- | Usage: @'glFragmentLightfSGIX' light pname param@
+--
+-- The parameter @light@ is a @FragmentLightNameSGIX@.
+--
+-- The parameter @pname@ is a @FragmentLightParameterSGIX@.
+--
+-- The parameter @param@ is a @CheckedFloat32@.
+
+
 glFragmentLightfSGIX :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()
 glFragmentLightfSGIX = ffienumenumfloatIOV glFragmentLightfSGIXFunPtr
 
@@ -104,6 +155,17 @@
 
 {-# NOINLINE glFragmentLightfSGIXFunPtr #-}
 
+-- | Usage: @'glFragmentLightfvSGIX' light pname params@
+--
+-- The parameter @light@ is a @FragmentLightNameSGIX@.
+--
+-- The parameter @pname@ is a @FragmentLightParameterSGIX@.
+--
+-- The parameter @params@ is a @CheckedFloat32@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
 glFragmentLightfvSGIX :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
 glFragmentLightfvSGIX = ffienumenumPtrfloatIOV glFragmentLightfvSGIXFunPtr
 
@@ -112,6 +174,15 @@
 
 {-# NOINLINE glFragmentLightfvSGIXFunPtr #-}
 
+-- | Usage: @'glFragmentLightiSGIX' light pname param@
+--
+-- The parameter @light@ is a @FragmentLightNameSGIX@.
+--
+-- The parameter @pname@ is a @FragmentLightParameterSGIX@.
+--
+-- The parameter @param@ is a @CheckedInt32@.
+
+
 glFragmentLightiSGIX :: MonadIO m => GLenum -> GLenum -> GLint -> m ()
 glFragmentLightiSGIX = ffienumenumintIOV glFragmentLightiSGIXFunPtr
 
@@ -120,6 +191,17 @@
 
 {-# NOINLINE glFragmentLightiSGIXFunPtr #-}
 
+-- | Usage: @'glFragmentLightivSGIX' light pname params@
+--
+-- The parameter @light@ is a @FragmentLightNameSGIX@.
+--
+-- The parameter @pname@ is a @FragmentLightParameterSGIX@.
+--
+-- The parameter @params@ is a @CheckedInt32@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
 glFragmentLightivSGIX :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
 glFragmentLightivSGIX = ffienumenumPtrintIOV glFragmentLightivSGIXFunPtr
 
@@ -128,6 +210,15 @@
 
 {-# NOINLINE glFragmentLightivSGIXFunPtr #-}
 
+-- | Usage: @'glFragmentMaterialfSGIX' face pname param@
+--
+-- The parameter @face@ is a @MaterialFace@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_BACK', 'Graphics.GL.Raw.Internal.Shared.GL_FRONT', 'Graphics.GL.Raw.Internal.Shared.GL_FRONT_AND_BACK'.
+--
+-- The parameter @pname@ is a @MaterialParameter@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_AMBIENT', 'Graphics.GL.Raw.Internal.Shared.GL_AMBIENT_AND_DIFFUSE', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_INDEXES', 'Graphics.GL.Raw.Internal.Shared.GL_DIFFUSE', 'Graphics.GL.Raw.Internal.Shared.GL_EMISSION', 'Graphics.GL.Raw.Internal.Shared.GL_SHININESS', 'Graphics.GL.Raw.Internal.Shared.GL_SPECULAR'.
+--
+-- The parameter @param@ is a @CheckedFloat32@.
+
+
 glFragmentMaterialfSGIX :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()
 glFragmentMaterialfSGIX = ffienumenumfloatIOV glFragmentMaterialfSGIXFunPtr
 
@@ -136,6 +227,17 @@
 
 {-# NOINLINE glFragmentMaterialfSGIXFunPtr #-}
 
+-- | Usage: @'glFragmentMaterialfvSGIX' face pname params@
+--
+-- The parameter @face@ is a @MaterialFace@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_BACK', 'Graphics.GL.Raw.Internal.Shared.GL_FRONT', 'Graphics.GL.Raw.Internal.Shared.GL_FRONT_AND_BACK'.
+--
+-- The parameter @pname@ is a @MaterialParameter@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_AMBIENT', 'Graphics.GL.Raw.Internal.Shared.GL_AMBIENT_AND_DIFFUSE', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_INDEXES', 'Graphics.GL.Raw.Internal.Shared.GL_DIFFUSE', 'Graphics.GL.Raw.Internal.Shared.GL_EMISSION', 'Graphics.GL.Raw.Internal.Shared.GL_SHININESS', 'Graphics.GL.Raw.Internal.Shared.GL_SPECULAR'.
+--
+-- The parameter @params@ is a @CheckedFloat32@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
 glFragmentMaterialfvSGIX :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
 glFragmentMaterialfvSGIX = ffienumenumPtrfloatIOV glFragmentMaterialfvSGIXFunPtr
 
@@ -144,6 +246,15 @@
 
 {-# NOINLINE glFragmentMaterialfvSGIXFunPtr #-}
 
+-- | Usage: @'glFragmentMaterialiSGIX' face pname param@
+--
+-- The parameter @face@ is a @MaterialFace@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_BACK', 'Graphics.GL.Raw.Internal.Shared.GL_FRONT', 'Graphics.GL.Raw.Internal.Shared.GL_FRONT_AND_BACK'.
+--
+-- The parameter @pname@ is a @MaterialParameter@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_AMBIENT', 'Graphics.GL.Raw.Internal.Shared.GL_AMBIENT_AND_DIFFUSE', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_INDEXES', 'Graphics.GL.Raw.Internal.Shared.GL_DIFFUSE', 'Graphics.GL.Raw.Internal.Shared.GL_EMISSION', 'Graphics.GL.Raw.Internal.Shared.GL_SHININESS', 'Graphics.GL.Raw.Internal.Shared.GL_SPECULAR'.
+--
+-- The parameter @param@ is a @CheckedInt32@.
+
+
 glFragmentMaterialiSGIX :: MonadIO m => GLenum -> GLenum -> GLint -> m ()
 glFragmentMaterialiSGIX = ffienumenumintIOV glFragmentMaterialiSGIXFunPtr
 
@@ -152,6 +263,17 @@
 
 {-# NOINLINE glFragmentMaterialiSGIXFunPtr #-}
 
+-- | Usage: @'glFragmentMaterialivSGIX' face pname params@
+--
+-- The parameter @face@ is a @MaterialFace@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_BACK', 'Graphics.GL.Raw.Internal.Shared.GL_FRONT', 'Graphics.GL.Raw.Internal.Shared.GL_FRONT_AND_BACK'.
+--
+-- The parameter @pname@ is a @MaterialParameter@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_AMBIENT', 'Graphics.GL.Raw.Internal.Shared.GL_AMBIENT_AND_DIFFUSE', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_INDEXES', 'Graphics.GL.Raw.Internal.Shared.GL_DIFFUSE', 'Graphics.GL.Raw.Internal.Shared.GL_EMISSION', 'Graphics.GL.Raw.Internal.Shared.GL_SHININESS', 'Graphics.GL.Raw.Internal.Shared.GL_SPECULAR'.
+--
+-- The parameter @params@ is a @CheckedInt32@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
 glFragmentMaterialivSGIX :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
 glFragmentMaterialivSGIX = ffienumenumPtrintIOV glFragmentMaterialivSGIXFunPtr
 
@@ -160,6 +282,15 @@
 
 {-# NOINLINE glFragmentMaterialivSGIXFunPtr #-}
 
+-- | Usage: @'glGetFragmentLightfvSGIX' light pname params@
+--
+-- The parameter @light@ is a @FragmentLightNameSGIX@.
+--
+-- The parameter @pname@ is a @FragmentLightParameterSGIX@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
 glGetFragmentLightfvSGIX :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
 glGetFragmentLightfvSGIX = ffienumenumPtrfloatIOV glGetFragmentLightfvSGIXFunPtr
 
@@ -168,6 +299,15 @@
 
 {-# NOINLINE glGetFragmentLightfvSGIXFunPtr #-}
 
+-- | Usage: @'glGetFragmentLightivSGIX' light pname params@
+--
+-- The parameter @light@ is a @FragmentLightNameSGIX@.
+--
+-- The parameter @pname@ is a @FragmentLightParameterSGIX@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
 glGetFragmentLightivSGIX :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
 glGetFragmentLightivSGIX = ffienumenumPtrintIOV glGetFragmentLightivSGIXFunPtr
 
@@ -176,6 +316,15 @@
 
 {-# NOINLINE glGetFragmentLightivSGIXFunPtr #-}
 
+-- | Usage: @'glGetFragmentMaterialfvSGIX' face pname params@
+--
+-- The parameter @face@ is a @MaterialFace@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_BACK', 'Graphics.GL.Raw.Internal.Shared.GL_FRONT', 'Graphics.GL.Raw.Internal.Shared.GL_FRONT_AND_BACK'.
+--
+-- The parameter @pname@ is a @MaterialParameter@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_AMBIENT', 'Graphics.GL.Raw.Internal.Shared.GL_AMBIENT_AND_DIFFUSE', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_INDEXES', 'Graphics.GL.Raw.Internal.Shared.GL_DIFFUSE', 'Graphics.GL.Raw.Internal.Shared.GL_EMISSION', 'Graphics.GL.Raw.Internal.Shared.GL_SHININESS', 'Graphics.GL.Raw.Internal.Shared.GL_SPECULAR'.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
 glGetFragmentMaterialfvSGIX :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
 glGetFragmentMaterialfvSGIX = ffienumenumPtrfloatIOV glGetFragmentMaterialfvSGIXFunPtr
 
@@ -184,6 +333,15 @@
 
 {-# NOINLINE glGetFragmentMaterialfvSGIXFunPtr #-}
 
+-- | Usage: @'glGetFragmentMaterialivSGIX' face pname params@
+--
+-- The parameter @face@ is a @MaterialFace@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_BACK', 'Graphics.GL.Raw.Internal.Shared.GL_FRONT', 'Graphics.GL.Raw.Internal.Shared.GL_FRONT_AND_BACK'.
+--
+-- The parameter @pname@ is a @MaterialParameter@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_AMBIENT', 'Graphics.GL.Raw.Internal.Shared.GL_AMBIENT_AND_DIFFUSE', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_INDEXES', 'Graphics.GL.Raw.Internal.Shared.GL_DIFFUSE', 'Graphics.GL.Raw.Internal.Shared.GL_EMISSION', 'Graphics.GL.Raw.Internal.Shared.GL_SHININESS', 'Graphics.GL.Raw.Internal.Shared.GL_SPECULAR'.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
 glGetFragmentMaterialivSGIX :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
 glGetFragmentMaterialivSGIX = ffienumenumPtrintIOV glGetFragmentMaterialivSGIXFunPtr
 
@@ -191,6 +349,13 @@
 glGetFragmentMaterialivSGIXFunPtr = unsafePerformIO (getProcAddress "glGetFragmentMaterialivSGIX")
 
 {-# NOINLINE glGetFragmentMaterialivSGIXFunPtr #-}
+
+-- | Usage: @'glLightEnviSGIX' pname param@
+--
+-- The parameter @pname@ is a @LightEnvParameterSGIX@, one of: 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_LIGHT_ENV_MODE_SGIX'.
+--
+-- The parameter @param@ is a @CheckedInt32@.
+
 
 glLightEnviSGIX :: MonadIO m => GLenum -> GLint -> m ()
 glLightEnviSGIX = ffienumintIOV glLightEnviSGIXFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/Framezoom.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/Framezoom.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/Framezoom.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/Framezoom.hs
@@ -19,8 +19,16 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIX/framezoom.txt GL_SGIX_framezoom> extension is available.
+
 gl_SGIX_framezoom :: Bool
 gl_SGIX_framezoom = member "GL_SGIX_framezoom" extensions
+{-# NOINLINE gl_SGIX_framezoom #-}
+
+-- | Usage: @'glFrameZoomSGIX' factor@
+--
+-- The parameter @factor@ is a @CheckedInt32@.
+
 
 glFrameZoomSGIX :: MonadIO m => GLint -> m ()
 glFrameZoomSGIX = ffiintIOV glFrameZoomSGIXFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/IglooInterface.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/IglooInterface.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/IglooInterface.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/IglooInterface.hs
@@ -16,8 +16,20 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the GL_SGIX_igloo_interface extension is available.
+
 gl_SGIX_igloo_interface :: Bool
 gl_SGIX_igloo_interface = member "GL_SGIX_igloo_interface" extensions
+{-# NOINLINE gl_SGIX_igloo_interface #-}
+
+-- | Usage: @'glIglooInterfaceSGIX' pname params@
+--
+-- The parameter @pname@ is a @IglooFunctionSelectSGIX@.
+--
+-- The parameter @params@ is a @IglooParameterSGIX@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
 
 glIglooInterfaceSGIX :: MonadIO m => GLenum -> Ptr () -> m ()
 glIglooInterfaceSGIX = ffienumPtrVIOV glIglooInterfaceSGIXFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/Instruments.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/Instruments.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/Instruments.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/Instruments.hs
@@ -23,9 +23,15 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIX/instruments.txt GL_SGIX_instruments> extension is available.
+
 gl_SGIX_instruments :: Bool
 gl_SGIX_instruments = member "GL_SGIX_instruments" extensions
+{-# NOINLINE gl_SGIX_instruments #-}
 
+-- | Usage: @'glGetInstrumentsSGIX'@
+
+
 glGetInstrumentsSGIX :: MonadIO m => m GLint
 glGetInstrumentsSGIX = ffiIOint glGetInstrumentsSGIXFunPtr
 
@@ -34,6 +40,11 @@
 
 {-# NOINLINE glGetInstrumentsSGIXFunPtr #-}
 
+-- | Usage: @'glInstrumentsBufferSGIX' size buffer@
+--
+-- The length of @buffer@ should be @size@.
+
+
 glInstrumentsBufferSGIX :: MonadIO m => GLsizei -> Ptr GLint -> m ()
 glInstrumentsBufferSGIX = ffisizeiPtrintIOV glInstrumentsBufferSGIXFunPtr
 
@@ -42,6 +53,11 @@
 
 {-# NOINLINE glInstrumentsBufferSGIXFunPtr #-}
 
+-- | Usage: @'glPollInstrumentsSGIX' marker_p@
+--
+-- The length of @marker_p@ should be @1@.
+
+
 glPollInstrumentsSGIX :: MonadIO m => Ptr GLint -> m GLint
 glPollInstrumentsSGIX = ffiPtrintIOint glPollInstrumentsSGIXFunPtr
 
@@ -50,6 +66,9 @@
 
 {-# NOINLINE glPollInstrumentsSGIXFunPtr #-}
 
+-- | Usage: @'glReadInstrumentsSGIX' marker@
+
+
 glReadInstrumentsSGIX :: MonadIO m => GLint -> m ()
 glReadInstrumentsSGIX = ffiintIOV glReadInstrumentsSGIXFunPtr
 
@@ -58,6 +77,9 @@
 
 {-# NOINLINE glReadInstrumentsSGIXFunPtr #-}
 
+-- | Usage: @'glStartInstrumentsSGIX'@
+
+
 glStartInstrumentsSGIX :: MonadIO m => m ()
 glStartInstrumentsSGIX = ffiIOV glStartInstrumentsSGIXFunPtr
 
@@ -65,6 +87,9 @@
 glStartInstrumentsSGIXFunPtr = unsafePerformIO (getProcAddress "glStartInstrumentsSGIX")
 
 {-# NOINLINE glStartInstrumentsSGIXFunPtr #-}
+
+-- | Usage: @'glStopInstrumentsSGIX' marker@
+
 
 glStopInstrumentsSGIX :: MonadIO m => GLint -> m ()
 glStopInstrumentsSGIX = ffiintIOV glStopInstrumentsSGIXFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/Interlace.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/Interlace.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/Interlace.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/Interlace.hs
@@ -11,7 +11,10 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIX/interlace.txt GL_SGIX_interlace> extension is available.
+
 gl_SGIX_interlace :: Bool
 gl_SGIX_interlace = member "GL_SGIX_interlace" extensions
+{-# NOINLINE gl_SGIX_interlace #-}
 
 pattern GL_INTERLACE_SGIX = 0x8094
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/IrInstrument1.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/IrInstrument1.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/IrInstrument1.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/IrInstrument1.hs
@@ -11,7 +11,10 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIX/ir_instrument1.txt GL_SGIX_ir_instrument1> extension is available.
+
 gl_SGIX_ir_instrument1 :: Bool
 gl_SGIX_ir_instrument1 = member "GL_SGIX_ir_instrument1" extensions
+{-# NOINLINE gl_SGIX_ir_instrument1 #-}
 
 pattern GL_IR_INSTRUMENT1_SGIX = 0x817F
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/ListPriority.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/ListPriority.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/ListPriority.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/ListPriority.hs
@@ -22,9 +22,23 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIX/list_priority.txt GL_SGIX_list_priority> extension is available.
+
 gl_SGIX_list_priority :: Bool
 gl_SGIX_list_priority = member "GL_SGIX_list_priority" extensions
+{-# NOINLINE gl_SGIX_list_priority #-}
 
+-- | Usage: @'glGetListParameterfvSGIX' list pname params@
+--
+-- The parameter @list@ is a @List@.
+--
+-- The parameter @pname@ is a @ListParameterName@, one of: 'Graphics.GL.Raw.Extension.SGIX.ListPriority.GL_LIST_PRIORITY_SGIX'.
+--
+-- The parameter @params@ is a @CheckedFloat32@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
 glGetListParameterfvSGIX :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()
 glGetListParameterfvSGIX = ffiuintenumPtrfloatIOV glGetListParameterfvSGIXFunPtr
 
@@ -33,6 +47,17 @@
 
 {-# NOINLINE glGetListParameterfvSGIXFunPtr #-}
 
+-- | Usage: @'glGetListParameterivSGIX' list pname params@
+--
+-- The parameter @list@ is a @List@.
+--
+-- The parameter @pname@ is a @ListParameterName@, one of: 'Graphics.GL.Raw.Extension.SGIX.ListPriority.GL_LIST_PRIORITY_SGIX'.
+--
+-- The parameter @params@ is a @CheckedInt32@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
 glGetListParameterivSGIX :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
 glGetListParameterivSGIX = ffiuintenumPtrintIOV glGetListParameterivSGIXFunPtr
 
@@ -41,6 +66,15 @@
 
 {-# NOINLINE glGetListParameterivSGIXFunPtr #-}
 
+-- | Usage: @'glListParameterfSGIX' list pname param@
+--
+-- The parameter @list@ is a @List@.
+--
+-- The parameter @pname@ is a @ListParameterName@, one of: 'Graphics.GL.Raw.Extension.SGIX.ListPriority.GL_LIST_PRIORITY_SGIX'.
+--
+-- The parameter @param@ is a @CheckedFloat32@.
+
+
 glListParameterfSGIX :: MonadIO m => GLuint -> GLenum -> GLfloat -> m ()
 glListParameterfSGIX = ffiuintenumfloatIOV glListParameterfSGIXFunPtr
 
@@ -49,6 +83,17 @@
 
 {-# NOINLINE glListParameterfSGIXFunPtr #-}
 
+-- | Usage: @'glListParameterfvSGIX' list pname params@
+--
+-- The parameter @list@ is a @List@.
+--
+-- The parameter @pname@ is a @ListParameterName@, one of: 'Graphics.GL.Raw.Extension.SGIX.ListPriority.GL_LIST_PRIORITY_SGIX'.
+--
+-- The parameter @params@ is a @CheckedFloat32@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
 glListParameterfvSGIX :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()
 glListParameterfvSGIX = ffiuintenumPtrfloatIOV glListParameterfvSGIXFunPtr
 
@@ -57,6 +102,15 @@
 
 {-# NOINLINE glListParameterfvSGIXFunPtr #-}
 
+-- | Usage: @'glListParameteriSGIX' list pname param@
+--
+-- The parameter @list@ is a @List@.
+--
+-- The parameter @pname@ is a @ListParameterName@, one of: 'Graphics.GL.Raw.Extension.SGIX.ListPriority.GL_LIST_PRIORITY_SGIX'.
+--
+-- The parameter @param@ is a @CheckedInt32@.
+
+
 glListParameteriSGIX :: MonadIO m => GLuint -> GLenum -> GLint -> m ()
 glListParameteriSGIX = ffiuintenumintIOV glListParameteriSGIXFunPtr
 
@@ -64,6 +118,17 @@
 glListParameteriSGIXFunPtr = unsafePerformIO (getProcAddress "glListParameteriSGIX")
 
 {-# NOINLINE glListParameteriSGIXFunPtr #-}
+
+-- | Usage: @'glListParameterivSGIX' list pname params@
+--
+-- The parameter @list@ is a @List@.
+--
+-- The parameter @pname@ is a @ListParameterName@, one of: 'Graphics.GL.Raw.Extension.SGIX.ListPriority.GL_LIST_PRIORITY_SGIX'.
+--
+-- The parameter @params@ is a @CheckedInt32@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
 
 glListParameterivSGIX :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
 glListParameterivSGIX = ffiuintenumPtrintIOV glListParameterivSGIXFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/PixelTexture.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/PixelTexture.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/PixelTexture.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/PixelTexture.hs
@@ -18,8 +18,16 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the GL_SGIX_pixel_texture extension is available.
+
 gl_SGIX_pixel_texture :: Bool
 gl_SGIX_pixel_texture = member "GL_SGIX_pixel_texture" extensions
+{-# NOINLINE gl_SGIX_pixel_texture #-}
+
+-- | Usage: @'glPixelTexGenSGIX' mode@
+--
+-- The parameter @mode@ is a @PixelTexGenModeSGIX@.
+
 
 glPixelTexGenSGIX :: MonadIO m => GLenum -> m ()
 glPixelTexGenSGIX = ffienumIOV glPixelTexGenSGIXFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/PixelTiles.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/PixelTiles.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/PixelTiles.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/PixelTiles.hs
@@ -18,8 +18,11 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the GL_SGIX_pixel_tiles extension is available.
+
 gl_SGIX_pixel_tiles :: Bool
 gl_SGIX_pixel_tiles = member "GL_SGIX_pixel_tiles" extensions
+{-# NOINLINE gl_SGIX_pixel_tiles #-}
 
 pattern GL_PIXEL_TILE_BEST_ALIGNMENT_SGIX = 0x813E
 
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/PolynomialFfd.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/PolynomialFfd.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/PolynomialFfd.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/PolynomialFfd.hs
@@ -25,9 +25,17 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the GL_SGIX_polynomial_ffd extension is available.
+
 gl_SGIX_polynomial_ffd :: Bool
 gl_SGIX_polynomial_ffd = member "GL_SGIX_polynomial_ffd" extensions
+{-# NOINLINE gl_SGIX_polynomial_ffd #-}
 
+-- | Usage: @'glDeformSGIX' mask@
+--
+-- The parameter @mask@ is a @FfdMaskSGIX@, one of: .
+
+
 glDeformSGIX :: MonadIO m => GLbitfield -> m ()
 glDeformSGIX = ffibitfieldIOV glDeformSGIXFunPtr
 
@@ -36,6 +44,33 @@
 
 {-# NOINLINE glDeformSGIXFunPtr #-}
 
+-- | Usage: @'glDeformationMap3dSGIX' target u1 u2 ustride uorder v1 v2 vstride vorder w1 w2 wstride worder points@
+--
+-- The parameter @target@ is a @FfdTargetSGIX@, one of: 'Graphics.GL.Raw.Extension.SGIX.PolynomialFfd.GL_GEOMETRY_DEFORMATION_SGIX', 'Graphics.GL.Raw.Extension.SGIX.PolynomialFfd.GL_TEXTURE_DEFORMATION_SGIX'.
+--
+-- The parameter @u1@ is a @CoordD@.
+--
+-- The parameter @u2@ is a @CoordD@.
+--
+-- The parameter @uorder@ is a @CheckedInt32@.
+--
+-- The parameter @v1@ is a @CoordD@.
+--
+-- The parameter @v2@ is a @CoordD@.
+--
+-- The parameter @vorder@ is a @CheckedInt32@.
+--
+-- The parameter @w1@ is a @CoordD@.
+--
+-- The parameter @w2@ is a @CoordD@.
+--
+-- The parameter @worder@ is a @CheckedInt32@.
+--
+-- The parameter @points@ is a @CoordD@.
+--
+-- The length of @points@ should be @COMPSIZE(target,ustride,uorder,vstride,vorder,wstride,worder)@.
+
+
 glDeformationMap3dSGIX :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLint -> GLint -> GLdouble -> GLdouble -> GLint -> GLint -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> m ()
 glDeformationMap3dSGIX = ffienumdoubledoubleintintdoubledoubleintintdoubledoubleintintPtrdoubleIOV glDeformationMap3dSGIXFunPtr
 
@@ -44,6 +79,33 @@
 
 {-# NOINLINE glDeformationMap3dSGIXFunPtr #-}
 
+-- | Usage: @'glDeformationMap3fSGIX' target u1 u2 ustride uorder v1 v2 vstride vorder w1 w2 wstride worder points@
+--
+-- The parameter @target@ is a @FfdTargetSGIX@, one of: 'Graphics.GL.Raw.Extension.SGIX.PolynomialFfd.GL_GEOMETRY_DEFORMATION_SGIX', 'Graphics.GL.Raw.Extension.SGIX.PolynomialFfd.GL_TEXTURE_DEFORMATION_SGIX'.
+--
+-- The parameter @u1@ is a @CoordF@.
+--
+-- The parameter @u2@ is a @CoordF@.
+--
+-- The parameter @uorder@ is a @CheckedInt32@.
+--
+-- The parameter @v1@ is a @CoordF@.
+--
+-- The parameter @v2@ is a @CoordF@.
+--
+-- The parameter @vorder@ is a @CheckedInt32@.
+--
+-- The parameter @w1@ is a @CoordF@.
+--
+-- The parameter @w2@ is a @CoordF@.
+--
+-- The parameter @worder@ is a @CheckedInt32@.
+--
+-- The parameter @points@ is a @CoordF@.
+--
+-- The length of @points@ should be @COMPSIZE(target,ustride,uorder,vstride,vorder,wstride,worder)@.
+
+
 glDeformationMap3fSGIX :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLint -> GLint -> GLfloat -> GLfloat -> GLint -> GLint -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> m ()
 glDeformationMap3fSGIX = ffienumfloatfloatintintfloatfloatintintfloatfloatintintPtrfloatIOV glDeformationMap3fSGIXFunPtr
 
@@ -51,6 +113,11 @@
 glDeformationMap3fSGIXFunPtr = unsafePerformIO (getProcAddress "glDeformationMap3fSGIX")
 
 {-# NOINLINE glDeformationMap3fSGIXFunPtr #-}
+
+-- | Usage: @'glLoadIdentityDeformationMapSGIX' mask@
+--
+-- The parameter @mask@ is a @FfdMaskSGIX@, one of: .
+
 
 glLoadIdentityDeformationMapSGIX :: MonadIO m => GLbitfield -> m ()
 glLoadIdentityDeformationMapSGIX = ffibitfieldIOV glLoadIdentityDeformationMapSGIXFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/ReferencePlane.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/ReferencePlane.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/ReferencePlane.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/ReferencePlane.hs
@@ -18,8 +18,16 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIX/reference_plane.txt GL_SGIX_reference_plane> extension is available.
+
 gl_SGIX_reference_plane :: Bool
 gl_SGIX_reference_plane = member "GL_SGIX_reference_plane" extensions
+{-# NOINLINE gl_SGIX_reference_plane #-}
+
+-- | Usage: @'glReferencePlaneSGIX' equation@
+--
+-- The length of @equation@ should be @4@.
+
 
 glReferencePlaneSGIX :: MonadIO m => Ptr GLdouble -> m ()
 glReferencePlaneSGIX = ffiPtrdoubleIOV glReferencePlaneSGIXFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/Resample.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/Resample.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/Resample.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/Resample.hs
@@ -15,8 +15,11 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIX/resample.txt GL_SGIX_resample> extension is available.
+
 gl_SGIX_resample :: Bool
 gl_SGIX_resample = member "GL_SGIX_resample" extensions
+{-# NOINLINE gl_SGIX_resample #-}
 
 pattern GL_PACK_RESAMPLE_SGIX = 0x842C
 
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/ScalebiasHint.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/ScalebiasHint.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/ScalebiasHint.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/ScalebiasHint.hs
@@ -11,7 +11,10 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the GL_SGIX_scalebias_hint extension is available.
+
 gl_SGIX_scalebias_hint :: Bool
 gl_SGIX_scalebias_hint = member "GL_SGIX_scalebias_hint" extensions
+{-# NOINLINE gl_SGIX_scalebias_hint #-}
 
 pattern GL_SCALEBIAS_HINT_SGIX = 0x8322
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/Shadow.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/Shadow.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/Shadow.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/Shadow.hs
@@ -14,8 +14,11 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIX/shadow.txt GL_SGIX_shadow> extension is available.
+
 gl_SGIX_shadow :: Bool
 gl_SGIX_shadow = member "GL_SGIX_shadow" extensions
+{-# NOINLINE gl_SGIX_shadow #-}
 
 pattern GL_TEXTURE_COMPARE_OPERATOR_SGIX = 0x819B
 
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/ShadowAmbient.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/ShadowAmbient.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/ShadowAmbient.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/ShadowAmbient.hs
@@ -11,7 +11,10 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIX/shadow_ambient.txt GL_SGIX_shadow_ambient> extension is available.
+
 gl_SGIX_shadow_ambient :: Bool
 gl_SGIX_shadow_ambient = member "GL_SGIX_shadow_ambient" extensions
+{-# NOINLINE gl_SGIX_shadow_ambient #-}
 
 pattern GL_SHADOW_AMBIENT_SGIX = 0x80BF
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/Sprite.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/Sprite.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/Sprite.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/Sprite.hs
@@ -26,9 +26,19 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIX/sprite.txt GL_SGIX_sprite> extension is available.
+
 gl_SGIX_sprite :: Bool
 gl_SGIX_sprite = member "GL_SGIX_sprite" extensions
+{-# NOINLINE gl_SGIX_sprite #-}
 
+-- | Usage: @'glSpriteParameterfSGIX' pname param@
+--
+-- The parameter @pname@ is a @SpriteParameterNameSGIX@.
+--
+-- The parameter @param@ is a @CheckedFloat32@.
+
+
 glSpriteParameterfSGIX :: MonadIO m => GLenum -> GLfloat -> m ()
 glSpriteParameterfSGIX = ffienumfloatIOV glSpriteParameterfSGIXFunPtr
 
@@ -37,6 +47,15 @@
 
 {-# NOINLINE glSpriteParameterfSGIXFunPtr #-}
 
+-- | Usage: @'glSpriteParameterfvSGIX' pname params@
+--
+-- The parameter @pname@ is a @SpriteParameterNameSGIX@.
+--
+-- The parameter @params@ is a @CheckedFloat32@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
 glSpriteParameterfvSGIX :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
 glSpriteParameterfvSGIX = ffienumPtrfloatIOV glSpriteParameterfvSGIXFunPtr
 
@@ -45,6 +64,13 @@
 
 {-# NOINLINE glSpriteParameterfvSGIXFunPtr #-}
 
+-- | Usage: @'glSpriteParameteriSGIX' pname param@
+--
+-- The parameter @pname@ is a @SpriteParameterNameSGIX@.
+--
+-- The parameter @param@ is a @CheckedInt32@.
+
+
 glSpriteParameteriSGIX :: MonadIO m => GLenum -> GLint -> m ()
 glSpriteParameteriSGIX = ffienumintIOV glSpriteParameteriSGIXFunPtr
 
@@ -52,6 +78,15 @@
 glSpriteParameteriSGIXFunPtr = unsafePerformIO (getProcAddress "glSpriteParameteriSGIX")
 
 {-# NOINLINE glSpriteParameteriSGIXFunPtr #-}
+
+-- | Usage: @'glSpriteParameterivSGIX' pname params@
+--
+-- The parameter @pname@ is a @SpriteParameterNameSGIX@.
+--
+-- The parameter @params@ is a @CheckedInt32@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
 
 glSpriteParameterivSGIX :: MonadIO m => GLenum -> Ptr GLint -> m ()
 glSpriteParameterivSGIX = ffienumPtrintIOV glSpriteParameterivSGIXFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/Subsample.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/Subsample.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/Subsample.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/Subsample.hs
@@ -15,8 +15,11 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the GL_SGIX_subsample extension is available.
+
 gl_SGIX_subsample :: Bool
 gl_SGIX_subsample = member "GL_SGIX_subsample" extensions
+{-# NOINLINE gl_SGIX_subsample #-}
 
 pattern GL_PACK_SUBSAMPLE_RATE_SGIX = 0x85A0
 
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/TagSampleBuffer.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/TagSampleBuffer.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/TagSampleBuffer.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/TagSampleBuffer.hs
@@ -15,8 +15,14 @@
 import Graphics.GL.Raw.Internal.Proc
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIX/tag_sample_buffer.txt GL_SGIX_tag_sample_buffer> extension is available.
+
 gl_SGIX_tag_sample_buffer :: Bool
 gl_SGIX_tag_sample_buffer = member "GL_SGIX_tag_sample_buffer" extensions
+{-# NOINLINE gl_SGIX_tag_sample_buffer #-}
+
+-- | Usage: @'glTagSampleBufferSGIX'@
+
 
 glTagSampleBufferSGIX :: MonadIO m => m ()
 glTagSampleBufferSGIX = ffiIOV glTagSampleBufferSGIXFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/TextureAddEnv.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/TextureAddEnv.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/TextureAddEnv.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/TextureAddEnv.hs
@@ -11,7 +11,10 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the GL_SGIX_texture_add_env extension is available.
+
 gl_SGIX_texture_add_env :: Bool
 gl_SGIX_texture_add_env = member "GL_SGIX_texture_add_env" extensions
+{-# NOINLINE gl_SGIX_texture_add_env #-}
 
 pattern GL_TEXTURE_ENV_BIAS_SGIX = 0x80BE
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/TextureCoordinateClamp.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/TextureCoordinateClamp.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/TextureCoordinateClamp.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/TextureCoordinateClamp.hs
@@ -13,8 +13,11 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIX/texture_coordinate_clamp.txt GL_SGIX_texture_coordinate_clamp> extension is available.
+
 gl_SGIX_texture_coordinate_clamp :: Bool
 gl_SGIX_texture_coordinate_clamp = member "GL_SGIX_texture_coordinate_clamp" extensions
+{-# NOINLINE gl_SGIX_texture_coordinate_clamp #-}
 
 pattern GL_TEXTURE_MAX_CLAMP_R_SGIX = 0x836B
 
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/TextureLodBias.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/TextureLodBias.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/TextureLodBias.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/TextureLodBias.hs
@@ -13,8 +13,11 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIX/texture_lod_bias.txt GL_SGIX_texture_lod_bias> extension is available.
+
 gl_SGIX_texture_lod_bias :: Bool
 gl_SGIX_texture_lod_bias = member "GL_SGIX_texture_lod_bias" extensions
+{-# NOINLINE gl_SGIX_texture_lod_bias #-}
 
 pattern GL_TEXTURE_LOD_BIAS_R_SGIX = 0x8190
 
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/TextureMultiBuffer.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/TextureMultiBuffer.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/TextureMultiBuffer.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/TextureMultiBuffer.hs
@@ -11,7 +11,10 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIX/texture_multi_buffer.txt GL_SGIX_texture_multi_buffer> extension is available.
+
 gl_SGIX_texture_multi_buffer :: Bool
 gl_SGIX_texture_multi_buffer = member "GL_SGIX_texture_multi_buffer" extensions
+{-# NOINLINE gl_SGIX_texture_multi_buffer #-}
 
 pattern GL_TEXTURE_MULTI_BUFFER_HINT_SGIX = 0x812E
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/TextureScaleBias.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/TextureScaleBias.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/TextureScaleBias.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/TextureScaleBias.hs
@@ -14,8 +14,11 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIX/texture_scale_bias.txt GL_SGIX_texture_scale_bias> extension is available.
+
 gl_SGIX_texture_scale_bias :: Bool
 gl_SGIX_texture_scale_bias = member "GL_SGIX_texture_scale_bias" extensions
+{-# NOINLINE gl_SGIX_texture_scale_bias #-}
 
 pattern GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX = 0x817B
 
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/VertexPreclip.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/VertexPreclip.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/VertexPreclip.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/VertexPreclip.hs
@@ -12,8 +12,11 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIX/vertex_preclip.txt GL_SGIX_vertex_preclip> extension is available.
+
 gl_SGIX_vertex_preclip :: Bool
 gl_SGIX_vertex_preclip = member "GL_SGIX_vertex_preclip" extensions
+{-# NOINLINE gl_SGIX_vertex_preclip #-}
 
 pattern GL_VERTEX_PRECLIP_HINT_SGIX = 0x83EF
 
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/Ycrcb.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/Ycrcb.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/Ycrcb.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/Ycrcb.hs
@@ -12,8 +12,11 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIX/ycrcb.txt GL_SGIX_ycrcb> extension is available.
+
 gl_SGIX_ycrcb :: Bool
 gl_SGIX_ycrcb = member "GL_SGIX_ycrcb" extensions
+{-# NOINLINE gl_SGIX_ycrcb #-}
 
 pattern GL_YCRCB_422_SGIX = 0x81BB
 
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/YcrcbSubsample.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/YcrcbSubsample.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/YcrcbSubsample.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/YcrcbSubsample.hs
@@ -8,5 +8,8 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the GL_SGIX_ycrcb_subsample extension is available.
+
 gl_SGIX_ycrcb_subsample :: Bool
 gl_SGIX_ycrcb_subsample = member "GL_SGIX_ycrcb_subsample" extensions
+{-# NOINLINE gl_SGIX_ycrcb_subsample #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/Ycrcba.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/Ycrcba.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/Ycrcba.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/Ycrcba.hs
@@ -12,8 +12,11 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the GL_SGIX_ycrcba extension is available.
+
 gl_SGIX_ycrcba :: Bool
 gl_SGIX_ycrcba = member "GL_SGIX_ycrcba" extensions
+{-# NOINLINE gl_SGIX_ycrcba #-}
 
 pattern GL_YCRCBA_SGIX = 0x8319
 
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/SUN/ConvolutionBorderModes.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/SUN/ConvolutionBorderModes.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/SUN/ConvolutionBorderModes.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/SUN/ConvolutionBorderModes.hs
@@ -11,7 +11,10 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SUN/convolution_border_modes.txt GL_SUN_convolution_border_modes> extension is available.
+
 gl_SUN_convolution_border_modes :: Bool
 gl_SUN_convolution_border_modes = member "GL_SUN_convolution_border_modes" extensions
+{-# NOINLINE gl_SUN_convolution_border_modes #-}
 
 pattern GL_WRAP_BORDER_SUN = 0x81D4
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/SUN/GlobalAlpha.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/SUN/GlobalAlpha.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/SUN/GlobalAlpha.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/SUN/GlobalAlpha.hs
@@ -25,9 +25,15 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SUN/global_alpha.txt GL_SUN_global_alpha> extension is available.
+
 gl_SUN_global_alpha :: Bool
 gl_SUN_global_alpha = member "GL_SUN_global_alpha" extensions
+{-# NOINLINE gl_SUN_global_alpha #-}
 
+-- | Usage: @'glGlobalAlphaFactorbSUN' factor@
+
+
 glGlobalAlphaFactorbSUN :: MonadIO m => GLbyte -> m ()
 glGlobalAlphaFactorbSUN = ffibyteIOV glGlobalAlphaFactorbSUNFunPtr
 
@@ -36,6 +42,9 @@
 
 {-# NOINLINE glGlobalAlphaFactorbSUNFunPtr #-}
 
+-- | Usage: @'glGlobalAlphaFactordSUN' factor@
+
+
 glGlobalAlphaFactordSUN :: MonadIO m => GLdouble -> m ()
 glGlobalAlphaFactordSUN = ffidoubleIOV glGlobalAlphaFactordSUNFunPtr
 
@@ -44,6 +53,9 @@
 
 {-# NOINLINE glGlobalAlphaFactordSUNFunPtr #-}
 
+-- | Usage: @'glGlobalAlphaFactorfSUN' factor@
+
+
 glGlobalAlphaFactorfSUN :: MonadIO m => GLfloat -> m ()
 glGlobalAlphaFactorfSUN = ffifloatIOV glGlobalAlphaFactorfSUNFunPtr
 
@@ -52,6 +64,9 @@
 
 {-# NOINLINE glGlobalAlphaFactorfSUNFunPtr #-}
 
+-- | Usage: @'glGlobalAlphaFactoriSUN' factor@
+
+
 glGlobalAlphaFactoriSUN :: MonadIO m => GLint -> m ()
 glGlobalAlphaFactoriSUN = ffiintIOV glGlobalAlphaFactoriSUNFunPtr
 
@@ -60,6 +75,9 @@
 
 {-# NOINLINE glGlobalAlphaFactoriSUNFunPtr #-}
 
+-- | Usage: @'glGlobalAlphaFactorsSUN' factor@
+
+
 glGlobalAlphaFactorsSUN :: MonadIO m => GLshort -> m ()
 glGlobalAlphaFactorsSUN = ffishortIOV glGlobalAlphaFactorsSUNFunPtr
 
@@ -68,6 +86,9 @@
 
 {-# NOINLINE glGlobalAlphaFactorsSUNFunPtr #-}
 
+-- | Usage: @'glGlobalAlphaFactorubSUN' factor@
+
+
 glGlobalAlphaFactorubSUN :: MonadIO m => GLubyte -> m ()
 glGlobalAlphaFactorubSUN = ffiubyteIOV glGlobalAlphaFactorubSUNFunPtr
 
@@ -76,6 +97,9 @@
 
 {-# NOINLINE glGlobalAlphaFactorubSUNFunPtr #-}
 
+-- | Usage: @'glGlobalAlphaFactoruiSUN' factor@
+
+
 glGlobalAlphaFactoruiSUN :: MonadIO m => GLuint -> m ()
 glGlobalAlphaFactoruiSUN = ffiuintIOV glGlobalAlphaFactoruiSUNFunPtr
 
@@ -83,6 +107,9 @@
 glGlobalAlphaFactoruiSUNFunPtr = unsafePerformIO (getProcAddress "glGlobalAlphaFactoruiSUN")
 
 {-# NOINLINE glGlobalAlphaFactoruiSUNFunPtr #-}
+
+-- | Usage: @'glGlobalAlphaFactorusSUN' factor@
+
 
 glGlobalAlphaFactorusSUN :: MonadIO m => GLushort -> m ()
 glGlobalAlphaFactorusSUN = ffiushortIOV glGlobalAlphaFactorusSUNFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/SUN/MeshArray.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/SUN/MeshArray.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/SUN/MeshArray.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/SUN/MeshArray.hs
@@ -18,8 +18,16 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SUN/mesh_array.txt GL_SUN_mesh_array> extension is available.
+
 gl_SUN_mesh_array :: Bool
 gl_SUN_mesh_array = member "GL_SUN_mesh_array" extensions
+{-# NOINLINE gl_SUN_mesh_array #-}
+
+-- | Usage: @'glDrawMeshArraysSUN' mode first count width@
+--
+-- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_LINES', 'Graphics.GL.Raw.Profile.Core32.GL_LINES_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Raw.Profile.Core32.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PATCHES', 'Graphics.GL.Raw.Extension.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_POINTS', 'Graphics.GL.Raw.Internal.Shared.GL_POLYGON', 'Graphics.GL.Raw.Internal.Shared.GL_QUADS', 'Graphics.GL.Raw.Extension.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Raw.Profile.Core32.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Raw.Profile.Core32.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
+
 
 glDrawMeshArraysSUN :: MonadIO m => GLenum -> GLint -> GLsizei -> GLsizei -> m ()
 glDrawMeshArraysSUN = ffienumintsizeisizeiIOV glDrawMeshArraysSUNFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/SUN/SliceAccum.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/SUN/SliceAccum.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/SUN/SliceAccum.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/SUN/SliceAccum.hs
@@ -11,7 +11,10 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SUN/slice_accum.txt GL_SUN_slice_accum> extension is available.
+
 gl_SUN_slice_accum :: Bool
 gl_SUN_slice_accum = member "GL_SUN_slice_accum" extensions
+{-# NOINLINE gl_SUN_slice_accum #-}
 
 pattern GL_SLICE_ACCUM_SUN = 0x85CC
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/SUN/TriangleList.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/SUN/TriangleList.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/SUN/TriangleList.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/SUN/TriangleList.hs
@@ -39,17 +39,30 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SUN/triangle_list.txt GL_SUN_triangle_list> extension is available.
+
 gl_SUN_triangle_list :: Bool
 gl_SUN_triangle_list = member "GL_SUN_triangle_list" extensions
+{-# NOINLINE gl_SUN_triangle_list #-}
 
-glReplacementCodePointerSUN :: MonadIO m => GLenum -> GLsizei -> Ptr () -> m ()
-glReplacementCodePointerSUN = ffienumsizeiPtrVIOV glReplacementCodePointerSUNFunPtr
+-- | Usage: @'glReplacementCodePointerSUN' type stride pointer@
+--
+-- The parameter @type@ is a @ReplacementCodeTypeSUN@.
+--
+-- The length of @pointer@ should be @COMPSIZE(type,stride)@.
 
-glReplacementCodePointerSUNFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr () -> IO ())
+
+glReplacementCodePointerSUN :: MonadIO m => GLenum -> GLsizei -> Ptr (Ptr ()) -> m ()
+glReplacementCodePointerSUN = ffienumsizeiPtrPtrVIOV glReplacementCodePointerSUNFunPtr
+
+glReplacementCodePointerSUNFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr (Ptr ()) -> IO ())
 glReplacementCodePointerSUNFunPtr = unsafePerformIO (getProcAddress "glReplacementCodePointerSUN")
 
 {-# NOINLINE glReplacementCodePointerSUNFunPtr #-}
 
+-- | Usage: @'glReplacementCodeubSUN' code@
+
+
 glReplacementCodeubSUN :: MonadIO m => GLubyte -> m ()
 glReplacementCodeubSUN = ffiubyteIOV glReplacementCodeubSUNFunPtr
 
@@ -58,6 +71,11 @@
 
 {-# NOINLINE glReplacementCodeubSUNFunPtr #-}
 
+-- | Usage: @'glReplacementCodeubvSUN' code@
+--
+-- The length of @code@ should be @COMPSIZE()@.
+
+
 glReplacementCodeubvSUN :: MonadIO m => Ptr GLubyte -> m ()
 glReplacementCodeubvSUN = ffiPtrubyteIOV glReplacementCodeubvSUNFunPtr
 
@@ -66,6 +84,9 @@
 
 {-# NOINLINE glReplacementCodeubvSUNFunPtr #-}
 
+-- | Usage: @'glReplacementCodeuiSUN' code@
+
+
 glReplacementCodeuiSUN :: MonadIO m => GLuint -> m ()
 glReplacementCodeuiSUN = ffiuintIOV glReplacementCodeuiSUNFunPtr
 
@@ -74,6 +95,11 @@
 
 {-# NOINLINE glReplacementCodeuiSUNFunPtr #-}
 
+-- | Usage: @'glReplacementCodeuivSUN' code@
+--
+-- The length of @code@ should be @COMPSIZE()@.
+
+
 glReplacementCodeuivSUN :: MonadIO m => Ptr GLuint -> m ()
 glReplacementCodeuivSUN = ffiPtruintIOV glReplacementCodeuivSUNFunPtr
 
@@ -82,6 +108,9 @@
 
 {-# NOINLINE glReplacementCodeuivSUNFunPtr #-}
 
+-- | Usage: @'glReplacementCodeusSUN' code@
+
+
 glReplacementCodeusSUN :: MonadIO m => GLushort -> m ()
 glReplacementCodeusSUN = ffiushortIOV glReplacementCodeusSUNFunPtr
 
@@ -89,6 +118,11 @@
 glReplacementCodeusSUNFunPtr = unsafePerformIO (getProcAddress "glReplacementCodeusSUN")
 
 {-# NOINLINE glReplacementCodeusSUNFunPtr #-}
+
+-- | Usage: @'glReplacementCodeusvSUN' code@
+--
+-- The length of @code@ should be @COMPSIZE()@.
+
 
 glReplacementCodeusvSUN :: MonadIO m => Ptr GLushort -> m ()
 glReplacementCodeusvSUN = ffiPtrushortIOV glReplacementCodeusvSUNFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/SUN/Vertex.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/SUN/Vertex.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/SUN/Vertex.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/SUN/Vertex.hs
@@ -55,9 +55,15 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SUN/vertex.txt GL_SUN_vertex> extension is available.
+
 gl_SUN_vertex :: Bool
 gl_SUN_vertex = member "GL_SUN_vertex" extensions
+{-# NOINLINE gl_SUN_vertex #-}
 
+-- | Usage: @'glColor3fVertex3fSUN' r g b x y z@
+
+
 glColor3fVertex3fSUN :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
 glColor3fVertex3fSUN = ffifloatfloatfloatfloatfloatfloatIOV glColor3fVertex3fSUNFunPtr
 
@@ -66,6 +72,13 @@
 
 {-# NOINLINE glColor3fVertex3fSUNFunPtr #-}
 
+-- | Usage: @'glColor3fVertex3fvSUN' c v@
+--
+-- The length of @c@ should be @3@.
+--
+-- The length of @v@ should be @3@.
+
+
 glColor3fVertex3fvSUN :: MonadIO m => Ptr GLfloat -> Ptr GLfloat -> m ()
 glColor3fVertex3fvSUN = ffiPtrfloatPtrfloatIOV glColor3fVertex3fvSUNFunPtr
 
@@ -74,6 +87,9 @@
 
 {-# NOINLINE glColor3fVertex3fvSUNFunPtr #-}
 
+-- | Usage: @'glColor4fNormal3fVertex3fSUN' r g b a nx ny nz x y z@
+
+
 glColor4fNormal3fVertex3fSUN :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
 glColor4fNormal3fVertex3fSUN = ffifloatfloatfloatfloatfloatfloatfloatfloatfloatfloatIOV glColor4fNormal3fVertex3fSUNFunPtr
 
@@ -82,6 +98,15 @@
 
 {-# NOINLINE glColor4fNormal3fVertex3fSUNFunPtr #-}
 
+-- | Usage: @'glColor4fNormal3fVertex3fvSUN' c n v@
+--
+-- The length of @c@ should be @4@.
+--
+-- The length of @n@ should be @3@.
+--
+-- The length of @v@ should be @3@.
+
+
 glColor4fNormal3fVertex3fvSUN :: MonadIO m => Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> m ()
 glColor4fNormal3fVertex3fvSUN = ffiPtrfloatPtrfloatPtrfloatIOV glColor4fNormal3fVertex3fvSUNFunPtr
 
@@ -90,6 +115,9 @@
 
 {-# NOINLINE glColor4fNormal3fVertex3fvSUNFunPtr #-}
 
+-- | Usage: @'glColor4ubVertex2fSUN' r g b a x y@
+
+
 glColor4ubVertex2fSUN :: MonadIO m => GLubyte -> GLubyte -> GLubyte -> GLubyte -> GLfloat -> GLfloat -> m ()
 glColor4ubVertex2fSUN = ffiubyteubyteubyteubytefloatfloatIOV glColor4ubVertex2fSUNFunPtr
 
@@ -98,6 +126,13 @@
 
 {-# NOINLINE glColor4ubVertex2fSUNFunPtr #-}
 
+-- | Usage: @'glColor4ubVertex2fvSUN' c v@
+--
+-- The length of @c@ should be @4@.
+--
+-- The length of @v@ should be @2@.
+
+
 glColor4ubVertex2fvSUN :: MonadIO m => Ptr GLubyte -> Ptr GLfloat -> m ()
 glColor4ubVertex2fvSUN = ffiPtrubytePtrfloatIOV glColor4ubVertex2fvSUNFunPtr
 
@@ -106,6 +141,9 @@
 
 {-# NOINLINE glColor4ubVertex2fvSUNFunPtr #-}
 
+-- | Usage: @'glColor4ubVertex3fSUN' r g b a x y z@
+
+
 glColor4ubVertex3fSUN :: MonadIO m => GLubyte -> GLubyte -> GLubyte -> GLubyte -> GLfloat -> GLfloat -> GLfloat -> m ()
 glColor4ubVertex3fSUN = ffiubyteubyteubyteubytefloatfloatfloatIOV glColor4ubVertex3fSUNFunPtr
 
@@ -114,6 +152,13 @@
 
 {-# NOINLINE glColor4ubVertex3fSUNFunPtr #-}
 
+-- | Usage: @'glColor4ubVertex3fvSUN' c v@
+--
+-- The length of @c@ should be @4@.
+--
+-- The length of @v@ should be @3@.
+
+
 glColor4ubVertex3fvSUN :: MonadIO m => Ptr GLubyte -> Ptr GLfloat -> m ()
 glColor4ubVertex3fvSUN = ffiPtrubytePtrfloatIOV glColor4ubVertex3fvSUNFunPtr
 
@@ -122,6 +167,9 @@
 
 {-# NOINLINE glColor4ubVertex3fvSUNFunPtr #-}
 
+-- | Usage: @'glNormal3fVertex3fSUN' nx ny nz x y z@
+
+
 glNormal3fVertex3fSUN :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
 glNormal3fVertex3fSUN = ffifloatfloatfloatfloatfloatfloatIOV glNormal3fVertex3fSUNFunPtr
 
@@ -130,6 +178,13 @@
 
 {-# NOINLINE glNormal3fVertex3fSUNFunPtr #-}
 
+-- | Usage: @'glNormal3fVertex3fvSUN' n v@
+--
+-- The length of @n@ should be @3@.
+--
+-- The length of @v@ should be @3@.
+
+
 glNormal3fVertex3fvSUN :: MonadIO m => Ptr GLfloat -> Ptr GLfloat -> m ()
 glNormal3fVertex3fvSUN = ffiPtrfloatPtrfloatIOV glNormal3fVertex3fvSUNFunPtr
 
@@ -138,6 +193,11 @@
 
 {-# NOINLINE glNormal3fVertex3fvSUNFunPtr #-}
 
+-- | Usage: @'glReplacementCodeuiColor3fVertex3fSUN' rc r g b x y z@
+--
+-- The parameter @rc@ is a @ReplacementCodeSUN@.
+
+
 glReplacementCodeuiColor3fVertex3fSUN :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
 glReplacementCodeuiColor3fVertex3fSUN = ffiuintfloatfloatfloatfloatfloatfloatIOV glReplacementCodeuiColor3fVertex3fSUNFunPtr
 
@@ -146,6 +206,17 @@
 
 {-# NOINLINE glReplacementCodeuiColor3fVertex3fSUNFunPtr #-}
 
+-- | Usage: @'glReplacementCodeuiColor3fVertex3fvSUN' rc c v@
+--
+-- The parameter @rc@ is a @ReplacementCodeSUN@.
+--
+-- The length of @rc@ should be @1@.
+--
+-- The length of @c@ should be @3@.
+--
+-- The length of @v@ should be @3@.
+
+
 glReplacementCodeuiColor3fVertex3fvSUN :: MonadIO m => Ptr GLuint -> Ptr GLfloat -> Ptr GLfloat -> m ()
 glReplacementCodeuiColor3fVertex3fvSUN = ffiPtruintPtrfloatPtrfloatIOV glReplacementCodeuiColor3fVertex3fvSUNFunPtr
 
@@ -154,6 +225,11 @@
 
 {-# NOINLINE glReplacementCodeuiColor3fVertex3fvSUNFunPtr #-}
 
+-- | Usage: @'glReplacementCodeuiColor4fNormal3fVertex3fSUN' rc r g b a nx ny nz x y z@
+--
+-- The parameter @rc@ is a @ReplacementCodeSUN@.
+
+
 glReplacementCodeuiColor4fNormal3fVertex3fSUN :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
 glReplacementCodeuiColor4fNormal3fVertex3fSUN = ffiuintfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatIOV glReplacementCodeuiColor4fNormal3fVertex3fSUNFunPtr
 
@@ -162,6 +238,19 @@
 
 {-# NOINLINE glReplacementCodeuiColor4fNormal3fVertex3fSUNFunPtr #-}
 
+-- | Usage: @'glReplacementCodeuiColor4fNormal3fVertex3fvSUN' rc c n v@
+--
+-- The parameter @rc@ is a @ReplacementCodeSUN@.
+--
+-- The length of @rc@ should be @1@.
+--
+-- The length of @c@ should be @4@.
+--
+-- The length of @n@ should be @3@.
+--
+-- The length of @v@ should be @3@.
+
+
 glReplacementCodeuiColor4fNormal3fVertex3fvSUN :: MonadIO m => Ptr GLuint -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> m ()
 glReplacementCodeuiColor4fNormal3fVertex3fvSUN = ffiPtruintPtrfloatPtrfloatPtrfloatIOV glReplacementCodeuiColor4fNormal3fVertex3fvSUNFunPtr
 
@@ -170,6 +259,11 @@
 
 {-# NOINLINE glReplacementCodeuiColor4fNormal3fVertex3fvSUNFunPtr #-}
 
+-- | Usage: @'glReplacementCodeuiColor4ubVertex3fSUN' rc r g b a x y z@
+--
+-- The parameter @rc@ is a @ReplacementCodeSUN@.
+
+
 glReplacementCodeuiColor4ubVertex3fSUN :: MonadIO m => GLuint -> GLubyte -> GLubyte -> GLubyte -> GLubyte -> GLfloat -> GLfloat -> GLfloat -> m ()
 glReplacementCodeuiColor4ubVertex3fSUN = ffiuintubyteubyteubyteubytefloatfloatfloatIOV glReplacementCodeuiColor4ubVertex3fSUNFunPtr
 
@@ -178,6 +272,17 @@
 
 {-# NOINLINE glReplacementCodeuiColor4ubVertex3fSUNFunPtr #-}
 
+-- | Usage: @'glReplacementCodeuiColor4ubVertex3fvSUN' rc c v@
+--
+-- The parameter @rc@ is a @ReplacementCodeSUN@.
+--
+-- The length of @rc@ should be @1@.
+--
+-- The length of @c@ should be @4@.
+--
+-- The length of @v@ should be @3@.
+
+
 glReplacementCodeuiColor4ubVertex3fvSUN :: MonadIO m => Ptr GLuint -> Ptr GLubyte -> Ptr GLfloat -> m ()
 glReplacementCodeuiColor4ubVertex3fvSUN = ffiPtruintPtrubytePtrfloatIOV glReplacementCodeuiColor4ubVertex3fvSUNFunPtr
 
@@ -186,6 +291,11 @@
 
 {-# NOINLINE glReplacementCodeuiColor4ubVertex3fvSUNFunPtr #-}
 
+-- | Usage: @'glReplacementCodeuiNormal3fVertex3fSUN' rc nx ny nz x y z@
+--
+-- The parameter @rc@ is a @ReplacementCodeSUN@.
+
+
 glReplacementCodeuiNormal3fVertex3fSUN :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
 glReplacementCodeuiNormal3fVertex3fSUN = ffiuintfloatfloatfloatfloatfloatfloatIOV glReplacementCodeuiNormal3fVertex3fSUNFunPtr
 
@@ -194,6 +304,17 @@
 
 {-# NOINLINE glReplacementCodeuiNormal3fVertex3fSUNFunPtr #-}
 
+-- | Usage: @'glReplacementCodeuiNormal3fVertex3fvSUN' rc n v@
+--
+-- The parameter @rc@ is a @ReplacementCodeSUN@.
+--
+-- The length of @rc@ should be @1@.
+--
+-- The length of @n@ should be @3@.
+--
+-- The length of @v@ should be @3@.
+
+
 glReplacementCodeuiNormal3fVertex3fvSUN :: MonadIO m => Ptr GLuint -> Ptr GLfloat -> Ptr GLfloat -> m ()
 glReplacementCodeuiNormal3fVertex3fvSUN = ffiPtruintPtrfloatPtrfloatIOV glReplacementCodeuiNormal3fVertex3fvSUNFunPtr
 
@@ -202,6 +323,11 @@
 
 {-# NOINLINE glReplacementCodeuiNormal3fVertex3fvSUNFunPtr #-}
 
+-- | Usage: @'glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN' rc s t r g b a nx ny nz x y z@
+--
+-- The parameter @rc@ is a @ReplacementCodeSUN@.
+
+
 glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
 glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN = ffiuintfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatIOV glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUNFunPtr
 
@@ -210,6 +336,21 @@
 
 {-# NOINLINE glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUNFunPtr #-}
 
+-- | Usage: @'glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN' rc tc c n v@
+--
+-- The parameter @rc@ is a @ReplacementCodeSUN@.
+--
+-- The length of @rc@ should be @1@.
+--
+-- The length of @tc@ should be @2@.
+--
+-- The length of @c@ should be @4@.
+--
+-- The length of @n@ should be @3@.
+--
+-- The length of @v@ should be @3@.
+
+
 glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN :: MonadIO m => Ptr GLuint -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> m ()
 glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN = ffiPtruintPtrfloatPtrfloatPtrfloatPtrfloatIOV glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUNFunPtr
 
@@ -218,6 +359,11 @@
 
 {-# NOINLINE glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUNFunPtr #-}
 
+-- | Usage: @'glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN' rc s t nx ny nz x y z@
+--
+-- The parameter @rc@ is a @ReplacementCodeSUN@.
+
+
 glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
 glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN = ffiuintfloatfloatfloatfloatfloatfloatfloatfloatIOV glReplacementCodeuiTexCoord2fNormal3fVertex3fSUNFunPtr
 
@@ -226,6 +372,19 @@
 
 {-# NOINLINE glReplacementCodeuiTexCoord2fNormal3fVertex3fSUNFunPtr #-}
 
+-- | Usage: @'glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN' rc tc n v@
+--
+-- The parameter @rc@ is a @ReplacementCodeSUN@.
+--
+-- The length of @rc@ should be @1@.
+--
+-- The length of @tc@ should be @2@.
+--
+-- The length of @n@ should be @3@.
+--
+-- The length of @v@ should be @3@.
+
+
 glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN :: MonadIO m => Ptr GLuint -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> m ()
 glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN = ffiPtruintPtrfloatPtrfloatPtrfloatIOV glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUNFunPtr
 
@@ -234,6 +393,11 @@
 
 {-# NOINLINE glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUNFunPtr #-}
 
+-- | Usage: @'glReplacementCodeuiTexCoord2fVertex3fSUN' rc s t x y z@
+--
+-- The parameter @rc@ is a @ReplacementCodeSUN@.
+
+
 glReplacementCodeuiTexCoord2fVertex3fSUN :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
 glReplacementCodeuiTexCoord2fVertex3fSUN = ffiuintfloatfloatfloatfloatfloatIOV glReplacementCodeuiTexCoord2fVertex3fSUNFunPtr
 
@@ -242,6 +406,17 @@
 
 {-# NOINLINE glReplacementCodeuiTexCoord2fVertex3fSUNFunPtr #-}
 
+-- | Usage: @'glReplacementCodeuiTexCoord2fVertex3fvSUN' rc tc v@
+--
+-- The parameter @rc@ is a @ReplacementCodeSUN@.
+--
+-- The length of @rc@ should be @1@.
+--
+-- The length of @tc@ should be @2@.
+--
+-- The length of @v@ should be @3@.
+
+
 glReplacementCodeuiTexCoord2fVertex3fvSUN :: MonadIO m => Ptr GLuint -> Ptr GLfloat -> Ptr GLfloat -> m ()
 glReplacementCodeuiTexCoord2fVertex3fvSUN = ffiPtruintPtrfloatPtrfloatIOV glReplacementCodeuiTexCoord2fVertex3fvSUNFunPtr
 
@@ -250,6 +425,11 @@
 
 {-# NOINLINE glReplacementCodeuiTexCoord2fVertex3fvSUNFunPtr #-}
 
+-- | Usage: @'glReplacementCodeuiVertex3fSUN' rc x y z@
+--
+-- The parameter @rc@ is a @ReplacementCodeSUN@.
+
+
 glReplacementCodeuiVertex3fSUN :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> m ()
 glReplacementCodeuiVertex3fSUN = ffiuintfloatfloatfloatIOV glReplacementCodeuiVertex3fSUNFunPtr
 
@@ -258,6 +438,15 @@
 
 {-# NOINLINE glReplacementCodeuiVertex3fSUNFunPtr #-}
 
+-- | Usage: @'glReplacementCodeuiVertex3fvSUN' rc v@
+--
+-- The parameter @rc@ is a @ReplacementCodeSUN@.
+--
+-- The length of @rc@ should be @1@.
+--
+-- The length of @v@ should be @3@.
+
+
 glReplacementCodeuiVertex3fvSUN :: MonadIO m => Ptr GLuint -> Ptr GLfloat -> m ()
 glReplacementCodeuiVertex3fvSUN = ffiPtruintPtrfloatIOV glReplacementCodeuiVertex3fvSUNFunPtr
 
@@ -266,6 +455,9 @@
 
 {-# NOINLINE glReplacementCodeuiVertex3fvSUNFunPtr #-}
 
+-- | Usage: @'glTexCoord2fColor3fVertex3fSUN' s t r g b x y z@
+
+
 glTexCoord2fColor3fVertex3fSUN :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
 glTexCoord2fColor3fVertex3fSUN = ffifloatfloatfloatfloatfloatfloatfloatfloatIOV glTexCoord2fColor3fVertex3fSUNFunPtr
 
@@ -274,6 +466,15 @@
 
 {-# NOINLINE glTexCoord2fColor3fVertex3fSUNFunPtr #-}
 
+-- | Usage: @'glTexCoord2fColor3fVertex3fvSUN' tc c v@
+--
+-- The length of @tc@ should be @2@.
+--
+-- The length of @c@ should be @3@.
+--
+-- The length of @v@ should be @3@.
+
+
 glTexCoord2fColor3fVertex3fvSUN :: MonadIO m => Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> m ()
 glTexCoord2fColor3fVertex3fvSUN = ffiPtrfloatPtrfloatPtrfloatIOV glTexCoord2fColor3fVertex3fvSUNFunPtr
 
@@ -282,6 +483,9 @@
 
 {-# NOINLINE glTexCoord2fColor3fVertex3fvSUNFunPtr #-}
 
+-- | Usage: @'glTexCoord2fColor4fNormal3fVertex3fSUN' s t r g b a nx ny nz x y z@
+
+
 glTexCoord2fColor4fNormal3fVertex3fSUN :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
 glTexCoord2fColor4fNormal3fVertex3fSUN = ffifloatfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatIOV glTexCoord2fColor4fNormal3fVertex3fSUNFunPtr
 
@@ -290,6 +494,17 @@
 
 {-# NOINLINE glTexCoord2fColor4fNormal3fVertex3fSUNFunPtr #-}
 
+-- | Usage: @'glTexCoord2fColor4fNormal3fVertex3fvSUN' tc c n v@
+--
+-- The length of @tc@ should be @2@.
+--
+-- The length of @c@ should be @4@.
+--
+-- The length of @n@ should be @3@.
+--
+-- The length of @v@ should be @3@.
+
+
 glTexCoord2fColor4fNormal3fVertex3fvSUN :: MonadIO m => Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> m ()
 glTexCoord2fColor4fNormal3fVertex3fvSUN = ffiPtrfloatPtrfloatPtrfloatPtrfloatIOV glTexCoord2fColor4fNormal3fVertex3fvSUNFunPtr
 
@@ -298,6 +513,9 @@
 
 {-# NOINLINE glTexCoord2fColor4fNormal3fVertex3fvSUNFunPtr #-}
 
+-- | Usage: @'glTexCoord2fColor4ubVertex3fSUN' s t r g b a x y z@
+
+
 glTexCoord2fColor4ubVertex3fSUN :: MonadIO m => GLfloat -> GLfloat -> GLubyte -> GLubyte -> GLubyte -> GLubyte -> GLfloat -> GLfloat -> GLfloat -> m ()
 glTexCoord2fColor4ubVertex3fSUN = ffifloatfloatubyteubyteubyteubytefloatfloatfloatIOV glTexCoord2fColor4ubVertex3fSUNFunPtr
 
@@ -306,6 +524,15 @@
 
 {-# NOINLINE glTexCoord2fColor4ubVertex3fSUNFunPtr #-}
 
+-- | Usage: @'glTexCoord2fColor4ubVertex3fvSUN' tc c v@
+--
+-- The length of @tc@ should be @2@.
+--
+-- The length of @c@ should be @4@.
+--
+-- The length of @v@ should be @3@.
+
+
 glTexCoord2fColor4ubVertex3fvSUN :: MonadIO m => Ptr GLfloat -> Ptr GLubyte -> Ptr GLfloat -> m ()
 glTexCoord2fColor4ubVertex3fvSUN = ffiPtrfloatPtrubytePtrfloatIOV glTexCoord2fColor4ubVertex3fvSUNFunPtr
 
@@ -314,6 +541,9 @@
 
 {-# NOINLINE glTexCoord2fColor4ubVertex3fvSUNFunPtr #-}
 
+-- | Usage: @'glTexCoord2fNormal3fVertex3fSUN' s t nx ny nz x y z@
+
+
 glTexCoord2fNormal3fVertex3fSUN :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
 glTexCoord2fNormal3fVertex3fSUN = ffifloatfloatfloatfloatfloatfloatfloatfloatIOV glTexCoord2fNormal3fVertex3fSUNFunPtr
 
@@ -322,6 +552,15 @@
 
 {-# NOINLINE glTexCoord2fNormal3fVertex3fSUNFunPtr #-}
 
+-- | Usage: @'glTexCoord2fNormal3fVertex3fvSUN' tc n v@
+--
+-- The length of @tc@ should be @2@.
+--
+-- The length of @n@ should be @3@.
+--
+-- The length of @v@ should be @3@.
+
+
 glTexCoord2fNormal3fVertex3fvSUN :: MonadIO m => Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> m ()
 glTexCoord2fNormal3fVertex3fvSUN = ffiPtrfloatPtrfloatPtrfloatIOV glTexCoord2fNormal3fVertex3fvSUNFunPtr
 
@@ -330,6 +569,9 @@
 
 {-# NOINLINE glTexCoord2fNormal3fVertex3fvSUNFunPtr #-}
 
+-- | Usage: @'glTexCoord2fVertex3fSUN' s t x y z@
+
+
 glTexCoord2fVertex3fSUN :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
 glTexCoord2fVertex3fSUN = ffifloatfloatfloatfloatfloatIOV glTexCoord2fVertex3fSUNFunPtr
 
@@ -338,6 +580,13 @@
 
 {-# NOINLINE glTexCoord2fVertex3fSUNFunPtr #-}
 
+-- | Usage: @'glTexCoord2fVertex3fvSUN' tc v@
+--
+-- The length of @tc@ should be @2@.
+--
+-- The length of @v@ should be @3@.
+
+
 glTexCoord2fVertex3fvSUN :: MonadIO m => Ptr GLfloat -> Ptr GLfloat -> m ()
 glTexCoord2fVertex3fvSUN = ffiPtrfloatPtrfloatIOV glTexCoord2fVertex3fvSUNFunPtr
 
@@ -346,6 +595,9 @@
 
 {-# NOINLINE glTexCoord2fVertex3fvSUNFunPtr #-}
 
+-- | Usage: @'glTexCoord4fColor4fNormal3fVertex4fSUN' s t p q r g b a nx ny nz x y z w@
+
+
 glTexCoord4fColor4fNormal3fVertex4fSUN :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
 glTexCoord4fColor4fNormal3fVertex4fSUN = ffifloatfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatIOV glTexCoord4fColor4fNormal3fVertex4fSUNFunPtr
 
@@ -354,6 +606,17 @@
 
 {-# NOINLINE glTexCoord4fColor4fNormal3fVertex4fSUNFunPtr #-}
 
+-- | Usage: @'glTexCoord4fColor4fNormal3fVertex4fvSUN' tc c n v@
+--
+-- The length of @tc@ should be @4@.
+--
+-- The length of @c@ should be @4@.
+--
+-- The length of @n@ should be @3@.
+--
+-- The length of @v@ should be @4@.
+
+
 glTexCoord4fColor4fNormal3fVertex4fvSUN :: MonadIO m => Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> m ()
 glTexCoord4fColor4fNormal3fVertex4fvSUN = ffiPtrfloatPtrfloatPtrfloatPtrfloatIOV glTexCoord4fColor4fNormal3fVertex4fvSUNFunPtr
 
@@ -362,6 +625,9 @@
 
 {-# NOINLINE glTexCoord4fColor4fNormal3fVertex4fvSUNFunPtr #-}
 
+-- | Usage: @'glTexCoord4fVertex4fSUN' s t p q x y z w@
+
+
 glTexCoord4fVertex4fSUN :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
 glTexCoord4fVertex4fSUN = ffifloatfloatfloatfloatfloatfloatfloatfloatIOV glTexCoord4fVertex4fSUNFunPtr
 
@@ -369,6 +635,13 @@
 glTexCoord4fVertex4fSUNFunPtr = unsafePerformIO (getProcAddress "glTexCoord4fVertex4fSUN")
 
 {-# NOINLINE glTexCoord4fVertex4fSUNFunPtr #-}
+
+-- | Usage: @'glTexCoord4fVertex4fvSUN' tc v@
+--
+-- The length of @tc@ should be @4@.
+--
+-- The length of @v@ should be @4@.
+
 
 glTexCoord4fVertex4fvSUN :: MonadIO m => Ptr GLfloat -> Ptr GLfloat -> m ()
 glTexCoord4fVertex4fvSUN = ffiPtrfloatPtrfloatIOV glTexCoord4fVertex4fvSUNFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/SUNX/ConstantData.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/SUNX/ConstantData.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/SUNX/ConstantData.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/SUNX/ConstantData.hs
@@ -17,8 +17,14 @@
 import Graphics.GL.Raw.Internal.Proc
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SUNX/constant_data.txt GL_SUNX_constant_data> extension is available.
+
 gl_SUNX_constant_data :: Bool
 gl_SUNX_constant_data = member "GL_SUNX_constant_data" extensions
+{-# NOINLINE gl_SUNX_constant_data #-}
+
+-- | Usage: @'glFinishTextureSUNX'@
+
 
 glFinishTextureSUNX :: MonadIO m => m ()
 glFinishTextureSUNX = ffiIOV glFinishTextureSUNXFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ThreeDFX/Multisample.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ThreeDFX/Multisample.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ThreeDFX/Multisample.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ThreeDFX/Multisample.hs
@@ -14,8 +14,11 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the GL_3DFX_multisample extension is available.
+
 gl_3DFX_multisample :: Bool
 gl_3DFX_multisample = member "GL_3DFX_multisample" extensions
+{-# NOINLINE gl_3DFX_multisample #-}
 
 pattern GL_MULTISAMPLE_3DFX = 0x86B2
 
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ThreeDFX/Tbuffer.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ThreeDFX/Tbuffer.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ThreeDFX/Tbuffer.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ThreeDFX/Tbuffer.hs
@@ -16,8 +16,14 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/3DFX/tbuffer.txt GL_3DFX_tbuffer> extension is available.
+
 gl_3DFX_tbuffer :: Bool
 gl_3DFX_tbuffer = member "GL_3DFX_tbuffer" extensions
+{-# NOINLINE gl_3DFX_tbuffer #-}
+
+-- | Usage: @'glTbufferMask3DFX' mask@
+
 
 glTbufferMask3DFX :: MonadIO m => GLuint -> m ()
 glTbufferMask3DFX = ffiuintIOV glTbufferMask3DFXFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ThreeDFX/TextureCompressionFXT1.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ThreeDFX/TextureCompressionFXT1.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ThreeDFX/TextureCompressionFXT1.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ThreeDFX/TextureCompressionFXT1.hs
@@ -12,8 +12,11 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/3DFX/texture_compression_FXT1.txt GL_3DFX_texture_compression_FXT1> extension is available.
+
 gl_3DFX_texture_compression_FXT1 :: Bool
 gl_3DFX_texture_compression_FXT1 = member "GL_3DFX_texture_compression_FXT1" extensions
+{-# NOINLINE gl_3DFX_texture_compression_FXT1 #-}
 
 pattern GL_COMPRESSED_RGBA_FXT1_3DFX = 0x86B1
 
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/VIV/ShaderBinary.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/VIV/ShaderBinary.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/VIV/ShaderBinary.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/VIV/ShaderBinary.hs
@@ -11,7 +11,10 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the GL_VIV_shader_binary extension is available.
+
 gl_VIV_shader_binary :: Bool
 gl_VIV_shader_binary = member "GL_VIV_shader_binary" extensions
+{-# NOINLINE gl_VIV_shader_binary #-}
 
 pattern GL_SHADER_BINARY_VIV = 0x8FC4
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/WIN/PhongShading.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/WIN/PhongShading.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/WIN/PhongShading.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/WIN/PhongShading.hs
@@ -12,8 +12,11 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/WIN/phong_shading.txt GL_WIN_phong_shading> extension is available.
+
 gl_WIN_phong_shading :: Bool
 gl_WIN_phong_shading = member "GL_WIN_phong_shading" extensions
+{-# NOINLINE gl_WIN_phong_shading #-}
 
 pattern GL_PHONG_HINT_WIN = 0x80EB
 
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/WIN/SpecularFog.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/WIN/SpecularFog.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/WIN/SpecularFog.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/WIN/SpecularFog.hs
@@ -11,7 +11,10 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/WIN/specular_fog.txt GL_WIN_specular_fog> extension is available.
+
 gl_WIN_specular_fog :: Bool
 gl_WIN_specular_fog = member "GL_WIN_specular_fog" extensions
+{-# NOINLINE gl_WIN_specular_fog #-}
 
 pattern GL_FOG_SPECULAR_TEXTURE_WIN = 0x80EC
diff --git a/dist/build/autogen/Graphics/GL/Raw/Internal/FFI.hs b/dist/build/autogen/Graphics/GL/Raw/Internal/FFI.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Internal/FFI.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Internal/FFI.hs
@@ -129,8 +129,8 @@
   , ffienumPtruintIOV
   , ffiintenumsizeiPtrVIOV
   , ffiintenumsizeisizeiPtrVIOV
-  , ffiintenumintPtrVintIOV
-  , ffiintenumPtrVIOV
+  , ffiintenumintPtrPtrVintIOV
+  , ffiintenumPtrPtrVIOV
   , ffienumsizeisizeienumenumPtrVIOV
   , ffienumenumsizeienumenumPtrVIOV
   , ffienumenumPtrfloatIOV
@@ -139,7 +139,7 @@
   , ffienumenumenumenumenumenumenumbooleanbooleanbooleanIOV
   , ffienumPtrintIOV
   , ffihandleARBIOV
-  , ffiuintsizeiPtrcharPtrintIOV
+  , ffiuintsizeiPtrPtrcharPtrintIOV
   , ffienumenumintenumsizeiintsizeiPtrVIOV
   , ffienumenumintenumsizeisizeiintsizeiPtrVIOV
   , ffienumenumintenumsizeisizeisizeiintsizeiPtrVIOV
@@ -201,7 +201,7 @@
   , ffienumsizeiPtruintIOV
   , ffienumIOhandleARB
   , ffienumPtrcharIOuint
-  , ffienumsizeiPtrcharIOuint
+  , ffienumsizeiPtrPtrcharIOuint
   , ffiPtrVPtrVbitfieldIOsync
   , ffiDEBUGPROCPtrVIOV
   , ffiDEBUGPROCAMDPtrVIOV
@@ -257,12 +257,13 @@
   , ffisizeiIOV
   , ffisizeiPtrVIOV
   , ffisizeisizeiPtrbooleanIOV
-  , ffiintPtrbooleanintIOV
+  , ffiintPtrPtrbooleanintIOV
   , ffiPtrbooleanIOV
   , ffienumintintIOV
   , ffienumintintintintIOV
   , ffiintintIOV
   , ffienumuintPtrfloatIOV
+  , ffienumPtrPtrVIOV
   , ffiPtruintintPtrintIOV
   , ffiuintenumPtrcharPtrintIOV
   , ffiuintenumintenumPtrintIOV
@@ -275,7 +276,7 @@
   , ffienumintptrsizeiptrIOV
   , ffiuintintptrsizeiIOV
   , ffiuintintptrsizeiptrIOV
-  , ffienumintPtrVintIOV
+  , ffienumintPtrPtrVintIOV
   , ffihalfNVIOV
   , ffiuintsizeiPtrenumIOV
   , ffienumenumenumuintIOV
@@ -307,6 +308,7 @@
   , ffienumPtrbooleanIOV
   , ffienumenumPtrint64IOV
   , ffienumenumPtruint64EXTIOV
+  , ffienumenumPtrPtrVIOV
   , ffienumenumenumPtrVIOV
   , ffienumenumenumenumPtrfloatIOV
   , ffienumenumenumenumPtrintIOV
@@ -349,7 +351,7 @@
   , ffienumenumenumPtruintIOV
   , ffiuintenumPtrint64IOV
   , ffiuintenumPtruint64EXTIOV
-  , ffiuintenumPtrVIOV
+  , ffiuintenumPtrPtrVIOV
   , ffiuintintptrsizeiPtrVIOV
   , ffiuintintptrsizeiptrPtrVIOV
   , ffiuintenumenumPtrintIOV
@@ -380,7 +382,7 @@
   , ffiuintuintPtrcharPtruintPtruintPtruintPtruintIOV
   , ffienumPtrushortIOV
   , ffienumintPtrfixedIOV
-  , ffienumuintPtrVIOV
+  , ffienumuintPtrPtrVIOV
   , ffiuintsizeiPtrsizeiPtrenumPtrVIOV
   , ffiuintsizeiPtrubytePtrdoubleIOV
   , ffiuintsizeiPtrubytePtrfloatIOV
@@ -416,7 +418,7 @@
   , ffiuintenumuintPtrint64IOV
   , ffiuintPtrcharIOuint
   , ffiuintintIOint
-  , ffiuintsizeiPtrcharPtruintIOV
+  , ffiuintsizeiPtrPtrcharPtruintIOV
   , ffiuintintIOintptr
   , ffiuintintPtrdoubleIOV
   , ffiuintintPtrfloatIOV
@@ -427,6 +429,7 @@
   , ffiuintintPtruint64EXTIOV
   , ffiuintintPtruintIOV
   , ffiuintuintenumPtrint64IOV
+  , ffiuintuintenumPtrPtrVIOV
   , ffiuintenumPtrdoubleIOV
   , ffiuintenumPtrint64EXTIOV
   , ffiuintuintenumPtrdoubleIOV
@@ -513,15 +516,15 @@
   , ffienumPtrVsizeisizeisizeiintIOV
   , ffienumPtrVsizeisizeiintIOV
   , ffienumintptrintptrsizeisizeiIOV
-  , ffienumPtrsizeienumPtrVsizeiIOV
-  , ffienumPtrsizeienumPtrVsizeiPtrintIOV
+  , ffienumPtrsizeienumPtrPtrVsizeiIOV
+  , ffienumPtrsizeienumPtrPtrVsizeiPtrintIOV
   , ffienumenumPtrVsizeisizeiIOV
   , ffienumenumPtrVsizeisizeisizeiintIOV
   , ffienumenumPtrVsizeisizeiintIOV
   , ffienumenumintptrintptrsizeisizeiIOV
   , ffienumuintuintPtrintPtrsizeisizeiIOV
   , ffiPtrenumPtrintPtrsizeisizeiintIOV
-  , ffiPtrenumPtrsizeienumPtrVsizeiintIOV
+  , ffiPtrenumPtrsizeienumPtrPtrVsizeiintIOV
   , ffienumbyteIOV
   , ffienumPtrbyteIOV
   , ffienumdoubleIOV
@@ -662,6 +665,7 @@
   , ffienumenumsizeisizeiIOV
   , ffienumsizeienumsizeisizeiIOV
   , ffienumsizeisizeienumsizeisizeiIOV
+  , ffienumsizeiPtrPtrVIOV
   , ffiuintfloatfloatfloatfloatfloatfloatIOV
   , ffiPtruintPtrfloatPtrfloatIOV
   , ffiuintfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatIOV
@@ -685,10 +689,11 @@
   , ffiuintPtrintIOV
   , ffiuintbooleanuintintPtruintIOV
   , ffienumenumsizeisizeienumenumPtrVPtrVIOV
+  , ffiuintenumPtrVIOV
   , ffisizeiPtruintenumPtrVsizeiIOV
   , ffienumuintuintuintIOV
   , ffienumuintuintuintuintIOV
-  , ffihandleARBsizeiPtrcharARBPtrintIOV
+  , ffihandleARBsizeiPtrPtrcharARBPtrintIOV
   , ffiuintuintuintuintbitfieldIOV
   , ffisizeiuintIOV
   , ffisizeienumPtrVuintenumuintenumPtrfloatIOV
@@ -758,7 +763,7 @@
   , ffisizeiPtrintenumIOV
   , ffiuintuintuintintptrsizeiIOV
   , ffisizeiPtrintsizeiPtrintenumIOV
-  , ffiuintsizeiPtrcharenumIOV
+  , ffiuintsizeiPtrPtrcharenumIOV
   , ffiuintsizeiPtrintenumIOV
   , ffiintdoubleIOV
   , ffiintsizeiPtrdoubleIOV
@@ -1503,15 +1508,15 @@
 ffiintenumsizeisizeiPtrVIOV :: MonadIO m => FunPtr (GLint -> GLenum -> GLsizei -> GLsizei -> Ptr () -> IO ()) -> GLint -> GLenum -> GLsizei -> GLsizei -> Ptr () -> m ()
 ffiintenumsizeisizeiPtrVIOV fp v0 v1 v2 v3 v4 = liftIO (dynintenumsizeisizeiPtrVIOV fp v0 v1 v2 v3 v4)
 
-foreign import ccall "dynamic" dynintenumintPtrVintIOV :: FunPtr (GLint -> GLenum -> GLint -> Ptr () -> GLint -> IO ()) -> GLint -> GLenum -> GLint -> Ptr () -> GLint -> IO ()
+foreign import ccall "dynamic" dynintenumintPtrPtrVintIOV :: FunPtr (GLint -> GLenum -> GLint -> Ptr (Ptr ()) -> GLint -> IO ()) -> GLint -> GLenum -> GLint -> Ptr (Ptr ()) -> GLint -> IO ()
 
-ffiintenumintPtrVintIOV :: MonadIO m => FunPtr (GLint -> GLenum -> GLint -> Ptr () -> GLint -> IO ()) -> GLint -> GLenum -> GLint -> Ptr () -> GLint -> m ()
-ffiintenumintPtrVintIOV fp v0 v1 v2 v3 v4 = liftIO (dynintenumintPtrVintIOV fp v0 v1 v2 v3 v4)
+ffiintenumintPtrPtrVintIOV :: MonadIO m => FunPtr (GLint -> GLenum -> GLint -> Ptr (Ptr ()) -> GLint -> IO ()) -> GLint -> GLenum -> GLint -> Ptr (Ptr ()) -> GLint -> m ()
+ffiintenumintPtrPtrVintIOV fp v0 v1 v2 v3 v4 = liftIO (dynintenumintPtrPtrVintIOV fp v0 v1 v2 v3 v4)
 
-foreign import ccall "dynamic" dynintenumPtrVIOV :: FunPtr (GLint -> GLenum -> Ptr () -> IO ()) -> GLint -> GLenum -> Ptr () -> IO ()
+foreign import ccall "dynamic" dynintenumPtrPtrVIOV :: FunPtr (GLint -> GLenum -> Ptr (Ptr ()) -> IO ()) -> GLint -> GLenum -> Ptr (Ptr ()) -> IO ()
 
-ffiintenumPtrVIOV :: MonadIO m => FunPtr (GLint -> GLenum -> Ptr () -> IO ()) -> GLint -> GLenum -> Ptr () -> m ()
-ffiintenumPtrVIOV fp v0 v1 v2 = liftIO (dynintenumPtrVIOV fp v0 v1 v2)
+ffiintenumPtrPtrVIOV :: MonadIO m => FunPtr (GLint -> GLenum -> Ptr (Ptr ()) -> IO ()) -> GLint -> GLenum -> Ptr (Ptr ()) -> m ()
+ffiintenumPtrPtrVIOV fp v0 v1 v2 = liftIO (dynintenumPtrPtrVIOV fp v0 v1 v2)
 
 foreign import ccall "dynamic" dynenumsizeisizeienumenumPtrVIOV :: FunPtr (GLenum -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLenum -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ()
 
@@ -1553,10 +1558,10 @@
 ffihandleARBIOV :: MonadIO m => FunPtr (GLhandleARB -> IO ()) -> GLhandleARB -> m ()
 ffihandleARBIOV fp v0 = liftIO (dynhandleARBIOV fp v0)
 
-foreign import ccall "dynamic" dynuintsizeiPtrcharPtrintIOV :: FunPtr (GLuint -> GLsizei -> Ptr GLchar -> Ptr GLint -> IO ()) -> GLuint -> GLsizei -> Ptr GLchar -> Ptr GLint -> IO ()
+foreign import ccall "dynamic" dynuintsizeiPtrPtrcharPtrintIOV :: FunPtr (GLuint -> GLsizei -> Ptr (Ptr GLchar) -> Ptr GLint -> IO ()) -> GLuint -> GLsizei -> Ptr (Ptr GLchar) -> Ptr GLint -> IO ()
 
-ffiuintsizeiPtrcharPtrintIOV :: MonadIO m => FunPtr (GLuint -> GLsizei -> Ptr GLchar -> Ptr GLint -> IO ()) -> GLuint -> GLsizei -> Ptr GLchar -> Ptr GLint -> m ()
-ffiuintsizeiPtrcharPtrintIOV fp v0 v1 v2 v3 = liftIO (dynuintsizeiPtrcharPtrintIOV fp v0 v1 v2 v3)
+ffiuintsizeiPtrPtrcharPtrintIOV :: MonadIO m => FunPtr (GLuint -> GLsizei -> Ptr (Ptr GLchar) -> Ptr GLint -> IO ()) -> GLuint -> GLsizei -> Ptr (Ptr GLchar) -> Ptr GLint -> m ()
+ffiuintsizeiPtrPtrcharPtrintIOV fp v0 v1 v2 v3 = liftIO (dynuintsizeiPtrPtrcharPtrintIOV fp v0 v1 v2 v3)
 
 foreign import ccall "dynamic" dynenumenumintenumsizeiintsizeiPtrVIOV :: FunPtr (GLenum -> GLenum -> GLint -> GLenum -> GLsizei -> GLint -> GLsizei -> Ptr () -> IO ()) -> GLenum -> GLenum -> GLint -> GLenum -> GLsizei -> GLint -> GLsizei -> Ptr () -> IO ()
 
@@ -1863,10 +1868,10 @@
 ffienumPtrcharIOuint :: MonadIO m => FunPtr (GLenum -> Ptr GLchar -> IO GLuint) -> GLenum -> Ptr GLchar -> m GLuint
 ffienumPtrcharIOuint fp v0 v1 = liftIO (dynenumPtrcharIOuint fp v0 v1)
 
-foreign import ccall "dynamic" dynenumsizeiPtrcharIOuint :: FunPtr (GLenum -> GLsizei -> Ptr GLchar -> IO GLuint) -> GLenum -> GLsizei -> Ptr GLchar -> IO GLuint
+foreign import ccall "dynamic" dynenumsizeiPtrPtrcharIOuint :: FunPtr (GLenum -> GLsizei -> Ptr (Ptr GLchar) -> IO GLuint) -> GLenum -> GLsizei -> Ptr (Ptr GLchar) -> IO GLuint
 
-ffienumsizeiPtrcharIOuint :: MonadIO m => FunPtr (GLenum -> GLsizei -> Ptr GLchar -> IO GLuint) -> GLenum -> GLsizei -> Ptr GLchar -> m GLuint
-ffienumsizeiPtrcharIOuint fp v0 v1 v2 = liftIO (dynenumsizeiPtrcharIOuint fp v0 v1 v2)
+ffienumsizeiPtrPtrcharIOuint :: MonadIO m => FunPtr (GLenum -> GLsizei -> Ptr (Ptr GLchar) -> IO GLuint) -> GLenum -> GLsizei -> Ptr (Ptr GLchar) -> m GLuint
+ffienumsizeiPtrPtrcharIOuint fp v0 v1 v2 = liftIO (dynenumsizeiPtrPtrcharIOuint fp v0 v1 v2)
 
 foreign import ccall "dynamic" dynPtrVPtrVbitfieldIOsync :: FunPtr (Ptr () -> Ptr () -> GLbitfield -> IO GLsync) -> Ptr () -> Ptr () -> GLbitfield -> IO GLsync
 
@@ -2143,10 +2148,10 @@
 ffisizeisizeiPtrbooleanIOV :: MonadIO m => FunPtr (GLsizei -> GLsizei -> Ptr GLboolean -> IO ()) -> GLsizei -> GLsizei -> Ptr GLboolean -> m ()
 ffisizeisizeiPtrbooleanIOV fp v0 v1 v2 = liftIO (dynsizeisizeiPtrbooleanIOV fp v0 v1 v2)
 
-foreign import ccall "dynamic" dynintPtrbooleanintIOV :: FunPtr (GLint -> Ptr GLboolean -> GLint -> IO ()) -> GLint -> Ptr GLboolean -> GLint -> IO ()
+foreign import ccall "dynamic" dynintPtrPtrbooleanintIOV :: FunPtr (GLint -> Ptr (Ptr GLboolean) -> GLint -> IO ()) -> GLint -> Ptr (Ptr GLboolean) -> GLint -> IO ()
 
-ffiintPtrbooleanintIOV :: MonadIO m => FunPtr (GLint -> Ptr GLboolean -> GLint -> IO ()) -> GLint -> Ptr GLboolean -> GLint -> m ()
-ffiintPtrbooleanintIOV fp v0 v1 v2 = liftIO (dynintPtrbooleanintIOV fp v0 v1 v2)
+ffiintPtrPtrbooleanintIOV :: MonadIO m => FunPtr (GLint -> Ptr (Ptr GLboolean) -> GLint -> IO ()) -> GLint -> Ptr (Ptr GLboolean) -> GLint -> m ()
+ffiintPtrPtrbooleanintIOV fp v0 v1 v2 = liftIO (dynintPtrPtrbooleanintIOV fp v0 v1 v2)
 
 foreign import ccall "dynamic" dynPtrbooleanIOV :: FunPtr (Ptr GLboolean -> IO ()) -> Ptr GLboolean -> IO ()
 
@@ -2173,6 +2178,11 @@
 ffienumuintPtrfloatIOV :: MonadIO m => FunPtr (GLenum -> GLuint -> Ptr GLfloat -> IO ()) -> GLenum -> GLuint -> Ptr GLfloat -> m ()
 ffienumuintPtrfloatIOV fp v0 v1 v2 = liftIO (dynenumuintPtrfloatIOV fp v0 v1 v2)
 
+foreign import ccall "dynamic" dynenumPtrPtrVIOV :: FunPtr (GLenum -> Ptr (Ptr ()) -> IO ()) -> GLenum -> Ptr (Ptr ()) -> IO ()
+
+ffienumPtrPtrVIOV :: MonadIO m => FunPtr (GLenum -> Ptr (Ptr ()) -> IO ()) -> GLenum -> Ptr (Ptr ()) -> m ()
+ffienumPtrPtrVIOV fp v0 v1 = liftIO (dynenumPtrPtrVIOV fp v0 v1)
+
 foreign import ccall "dynamic" dynPtruintintPtrintIOV :: FunPtr (Ptr GLuint -> GLint -> Ptr GLint -> IO ()) -> Ptr GLuint -> GLint -> Ptr GLint -> IO ()
 
 ffiPtruintintPtrintIOV :: MonadIO m => FunPtr (Ptr GLuint -> GLint -> Ptr GLint -> IO ()) -> Ptr GLuint -> GLint -> Ptr GLint -> m ()
@@ -2233,10 +2243,10 @@
 ffiuintintptrsizeiptrIOV :: MonadIO m => FunPtr (GLuint -> GLintptr -> GLsizeiptr -> IO ()) -> GLuint -> GLintptr -> GLsizeiptr -> m ()
 ffiuintintptrsizeiptrIOV fp v0 v1 v2 = liftIO (dynuintintptrsizeiptrIOV fp v0 v1 v2)
 
-foreign import ccall "dynamic" dynenumintPtrVintIOV :: FunPtr (GLenum -> GLint -> Ptr () -> GLint -> IO ()) -> GLenum -> GLint -> Ptr () -> GLint -> IO ()
+foreign import ccall "dynamic" dynenumintPtrPtrVintIOV :: FunPtr (GLenum -> GLint -> Ptr (Ptr ()) -> GLint -> IO ()) -> GLenum -> GLint -> Ptr (Ptr ()) -> GLint -> IO ()
 
-ffienumintPtrVintIOV :: MonadIO m => FunPtr (GLenum -> GLint -> Ptr () -> GLint -> IO ()) -> GLenum -> GLint -> Ptr () -> GLint -> m ()
-ffienumintPtrVintIOV fp v0 v1 v2 v3 = liftIO (dynenumintPtrVintIOV fp v0 v1 v2 v3)
+ffienumintPtrPtrVintIOV :: MonadIO m => FunPtr (GLenum -> GLint -> Ptr (Ptr ()) -> GLint -> IO ()) -> GLenum -> GLint -> Ptr (Ptr ()) -> GLint -> m ()
+ffienumintPtrPtrVintIOV fp v0 v1 v2 v3 = liftIO (dynenumintPtrPtrVintIOV fp v0 v1 v2 v3)
 
 foreign import ccall "dynamic" dynhalfNVIOV :: FunPtr (GLhalfNV -> IO ()) -> GLhalfNV -> IO ()
 
@@ -2393,6 +2403,11 @@
 ffienumenumPtruint64EXTIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> Ptr GLuint64EXT -> IO ()) -> GLenum -> GLenum -> Ptr GLuint64EXT -> m ()
 ffienumenumPtruint64EXTIOV fp v0 v1 v2 = liftIO (dynenumenumPtruint64EXTIOV fp v0 v1 v2)
 
+foreign import ccall "dynamic" dynenumenumPtrPtrVIOV :: FunPtr (GLenum -> GLenum -> Ptr (Ptr ()) -> IO ()) -> GLenum -> GLenum -> Ptr (Ptr ()) -> IO ()
+
+ffienumenumPtrPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> Ptr (Ptr ()) -> IO ()) -> GLenum -> GLenum -> Ptr (Ptr ()) -> m ()
+ffienumenumPtrPtrVIOV fp v0 v1 v2 = liftIO (dynenumenumPtrPtrVIOV fp v0 v1 v2)
+
 foreign import ccall "dynamic" dynenumenumenumPtrVIOV :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLenum -> GLenum -> GLenum -> Ptr () -> IO ()
 
 ffienumenumenumPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLenum -> GLenum -> GLenum -> Ptr () -> m ()
@@ -2603,10 +2618,10 @@
 ffiuintenumPtruint64EXTIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> Ptr GLuint64EXT -> IO ()) -> GLuint -> GLenum -> Ptr GLuint64EXT -> m ()
 ffiuintenumPtruint64EXTIOV fp v0 v1 v2 = liftIO (dynuintenumPtruint64EXTIOV fp v0 v1 v2)
 
-foreign import ccall "dynamic" dynuintenumPtrVIOV :: FunPtr (GLuint -> GLenum -> Ptr () -> IO ()) -> GLuint -> GLenum -> Ptr () -> IO ()
+foreign import ccall "dynamic" dynuintenumPtrPtrVIOV :: FunPtr (GLuint -> GLenum -> Ptr (Ptr ()) -> IO ()) -> GLuint -> GLenum -> Ptr (Ptr ()) -> IO ()
 
-ffiuintenumPtrVIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> Ptr () -> IO ()) -> GLuint -> GLenum -> Ptr () -> m ()
-ffiuintenumPtrVIOV fp v0 v1 v2 = liftIO (dynuintenumPtrVIOV fp v0 v1 v2)
+ffiuintenumPtrPtrVIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> Ptr (Ptr ()) -> IO ()) -> GLuint -> GLenum -> Ptr (Ptr ()) -> m ()
+ffiuintenumPtrPtrVIOV fp v0 v1 v2 = liftIO (dynuintenumPtrPtrVIOV fp v0 v1 v2)
 
 foreign import ccall "dynamic" dynuintintptrsizeiPtrVIOV :: FunPtr (GLuint -> GLintptr -> GLsizei -> Ptr () -> IO ()) -> GLuint -> GLintptr -> GLsizei -> Ptr () -> IO ()
 
@@ -2758,10 +2773,10 @@
 ffienumintPtrfixedIOV :: MonadIO m => FunPtr (GLenum -> GLint -> Ptr GLfixed -> IO ()) -> GLenum -> GLint -> Ptr GLfixed -> m ()
 ffienumintPtrfixedIOV fp v0 v1 v2 = liftIO (dynenumintPtrfixedIOV fp v0 v1 v2)
 
-foreign import ccall "dynamic" dynenumuintPtrVIOV :: FunPtr (GLenum -> GLuint -> Ptr () -> IO ()) -> GLenum -> GLuint -> Ptr () -> IO ()
+foreign import ccall "dynamic" dynenumuintPtrPtrVIOV :: FunPtr (GLenum -> GLuint -> Ptr (Ptr ()) -> IO ()) -> GLenum -> GLuint -> Ptr (Ptr ()) -> IO ()
 
-ffienumuintPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLuint -> Ptr () -> IO ()) -> GLenum -> GLuint -> Ptr () -> m ()
-ffienumuintPtrVIOV fp v0 v1 v2 = liftIO (dynenumuintPtrVIOV fp v0 v1 v2)
+ffienumuintPtrPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLuint -> Ptr (Ptr ()) -> IO ()) -> GLenum -> GLuint -> Ptr (Ptr ()) -> m ()
+ffienumuintPtrPtrVIOV fp v0 v1 v2 = liftIO (dynenumuintPtrPtrVIOV fp v0 v1 v2)
 
 foreign import ccall "dynamic" dynuintsizeiPtrsizeiPtrenumPtrVIOV :: FunPtr (GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLenum -> Ptr () -> IO ()) -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLenum -> Ptr () -> IO ()
 
@@ -2938,10 +2953,10 @@
 ffiuintintIOint :: MonadIO m => FunPtr (GLuint -> GLint -> IO GLint) -> GLuint -> GLint -> m GLint
 ffiuintintIOint fp v0 v1 = liftIO (dynuintintIOint fp v0 v1)
 
-foreign import ccall "dynamic" dynuintsizeiPtrcharPtruintIOV :: FunPtr (GLuint -> GLsizei -> Ptr GLchar -> Ptr GLuint -> IO ()) -> GLuint -> GLsizei -> Ptr GLchar -> Ptr GLuint -> IO ()
+foreign import ccall "dynamic" dynuintsizeiPtrPtrcharPtruintIOV :: FunPtr (GLuint -> GLsizei -> Ptr (Ptr GLchar) -> Ptr GLuint -> IO ()) -> GLuint -> GLsizei -> Ptr (Ptr GLchar) -> Ptr GLuint -> IO ()
 
-ffiuintsizeiPtrcharPtruintIOV :: MonadIO m => FunPtr (GLuint -> GLsizei -> Ptr GLchar -> Ptr GLuint -> IO ()) -> GLuint -> GLsizei -> Ptr GLchar -> Ptr GLuint -> m ()
-ffiuintsizeiPtrcharPtruintIOV fp v0 v1 v2 v3 = liftIO (dynuintsizeiPtrcharPtruintIOV fp v0 v1 v2 v3)
+ffiuintsizeiPtrPtrcharPtruintIOV :: MonadIO m => FunPtr (GLuint -> GLsizei -> Ptr (Ptr GLchar) -> Ptr GLuint -> IO ()) -> GLuint -> GLsizei -> Ptr (Ptr GLchar) -> Ptr GLuint -> m ()
+ffiuintsizeiPtrPtrcharPtruintIOV fp v0 v1 v2 v3 = liftIO (dynuintsizeiPtrPtrcharPtruintIOV fp v0 v1 v2 v3)
 
 foreign import ccall "dynamic" dynuintintIOintptr :: FunPtr (GLuint -> GLint -> IO GLintptr) -> GLuint -> GLint -> IO GLintptr
 
@@ -2993,6 +3008,11 @@
 ffiuintuintenumPtrint64IOV :: MonadIO m => FunPtr (GLuint -> GLuint -> GLenum -> Ptr GLint64 -> IO ()) -> GLuint -> GLuint -> GLenum -> Ptr GLint64 -> m ()
 ffiuintuintenumPtrint64IOV fp v0 v1 v2 v3 = liftIO (dynuintuintenumPtrint64IOV fp v0 v1 v2 v3)
 
+foreign import ccall "dynamic" dynuintuintenumPtrPtrVIOV :: FunPtr (GLuint -> GLuint -> GLenum -> Ptr (Ptr ()) -> IO ()) -> GLuint -> GLuint -> GLenum -> Ptr (Ptr ()) -> IO ()
+
+ffiuintuintenumPtrPtrVIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> GLenum -> Ptr (Ptr ()) -> IO ()) -> GLuint -> GLuint -> GLenum -> Ptr (Ptr ()) -> m ()
+ffiuintuintenumPtrPtrVIOV fp v0 v1 v2 v3 = liftIO (dynuintuintenumPtrPtrVIOV fp v0 v1 v2 v3)
+
 foreign import ccall "dynamic" dynuintenumPtrdoubleIOV :: FunPtr (GLuint -> GLenum -> Ptr GLdouble -> IO ()) -> GLuint -> GLenum -> Ptr GLdouble -> IO ()
 
 ffiuintenumPtrdoubleIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> Ptr GLdouble -> IO ()) -> GLuint -> GLenum -> Ptr GLdouble -> m ()
@@ -3423,15 +3443,15 @@
 ffienumintptrintptrsizeisizeiIOV :: MonadIO m => FunPtr (GLenum -> GLintptr -> GLintptr -> GLsizei -> GLsizei -> IO ()) -> GLenum -> GLintptr -> GLintptr -> GLsizei -> GLsizei -> m ()
 ffienumintptrintptrsizeisizeiIOV fp v0 v1 v2 v3 v4 = liftIO (dynenumintptrintptrsizeisizeiIOV fp v0 v1 v2 v3 v4)
 
-foreign import ccall "dynamic" dynenumPtrsizeienumPtrVsizeiIOV :: FunPtr (GLenum -> Ptr GLsizei -> GLenum -> Ptr () -> GLsizei -> IO ()) -> GLenum -> Ptr GLsizei -> GLenum -> Ptr () -> GLsizei -> IO ()
+foreign import ccall "dynamic" dynenumPtrsizeienumPtrPtrVsizeiIOV :: FunPtr (GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr ()) -> GLsizei -> IO ()) -> GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr ()) -> GLsizei -> IO ()
 
-ffienumPtrsizeienumPtrVsizeiIOV :: MonadIO m => FunPtr (GLenum -> Ptr GLsizei -> GLenum -> Ptr () -> GLsizei -> IO ()) -> GLenum -> Ptr GLsizei -> GLenum -> Ptr () -> GLsizei -> m ()
-ffienumPtrsizeienumPtrVsizeiIOV fp v0 v1 v2 v3 v4 = liftIO (dynenumPtrsizeienumPtrVsizeiIOV fp v0 v1 v2 v3 v4)
+ffienumPtrsizeienumPtrPtrVsizeiIOV :: MonadIO m => FunPtr (GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr ()) -> GLsizei -> IO ()) -> GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr ()) -> GLsizei -> m ()
+ffienumPtrsizeienumPtrPtrVsizeiIOV fp v0 v1 v2 v3 v4 = liftIO (dynenumPtrsizeienumPtrPtrVsizeiIOV fp v0 v1 v2 v3 v4)
 
-foreign import ccall "dynamic" dynenumPtrsizeienumPtrVsizeiPtrintIOV :: FunPtr (GLenum -> Ptr GLsizei -> GLenum -> Ptr () -> GLsizei -> Ptr GLint -> IO ()) -> GLenum -> Ptr GLsizei -> GLenum -> Ptr () -> GLsizei -> Ptr GLint -> IO ()
+foreign import ccall "dynamic" dynenumPtrsizeienumPtrPtrVsizeiPtrintIOV :: FunPtr (GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr ()) -> GLsizei -> Ptr GLint -> IO ()) -> GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr ()) -> GLsizei -> Ptr GLint -> IO ()
 
-ffienumPtrsizeienumPtrVsizeiPtrintIOV :: MonadIO m => FunPtr (GLenum -> Ptr GLsizei -> GLenum -> Ptr () -> GLsizei -> Ptr GLint -> IO ()) -> GLenum -> Ptr GLsizei -> GLenum -> Ptr () -> GLsizei -> Ptr GLint -> m ()
-ffienumPtrsizeienumPtrVsizeiPtrintIOV fp v0 v1 v2 v3 v4 v5 = liftIO (dynenumPtrsizeienumPtrVsizeiPtrintIOV fp v0 v1 v2 v3 v4 v5)
+ffienumPtrsizeienumPtrPtrVsizeiPtrintIOV :: MonadIO m => FunPtr (GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr ()) -> GLsizei -> Ptr GLint -> IO ()) -> GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr ()) -> GLsizei -> Ptr GLint -> m ()
+ffienumPtrsizeienumPtrPtrVsizeiPtrintIOV fp v0 v1 v2 v3 v4 v5 = liftIO (dynenumPtrsizeienumPtrPtrVsizeiPtrintIOV fp v0 v1 v2 v3 v4 v5)
 
 foreign import ccall "dynamic" dynenumenumPtrVsizeisizeiIOV :: FunPtr (GLenum -> GLenum -> Ptr () -> GLsizei -> GLsizei -> IO ()) -> GLenum -> GLenum -> Ptr () -> GLsizei -> GLsizei -> IO ()
 
@@ -3463,10 +3483,10 @@
 ffiPtrenumPtrintPtrsizeisizeiintIOV :: MonadIO m => FunPtr (Ptr GLenum -> Ptr GLint -> Ptr GLsizei -> GLsizei -> GLint -> IO ()) -> Ptr GLenum -> Ptr GLint -> Ptr GLsizei -> GLsizei -> GLint -> m ()
 ffiPtrenumPtrintPtrsizeisizeiintIOV fp v0 v1 v2 v3 v4 = liftIO (dynPtrenumPtrintPtrsizeisizeiintIOV fp v0 v1 v2 v3 v4)
 
-foreign import ccall "dynamic" dynPtrenumPtrsizeienumPtrVsizeiintIOV :: FunPtr (Ptr GLenum -> Ptr GLsizei -> GLenum -> Ptr () -> GLsizei -> GLint -> IO ()) -> Ptr GLenum -> Ptr GLsizei -> GLenum -> Ptr () -> GLsizei -> GLint -> IO ()
+foreign import ccall "dynamic" dynPtrenumPtrsizeienumPtrPtrVsizeiintIOV :: FunPtr (Ptr GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr ()) -> GLsizei -> GLint -> IO ()) -> Ptr GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr ()) -> GLsizei -> GLint -> IO ()
 
-ffiPtrenumPtrsizeienumPtrVsizeiintIOV :: MonadIO m => FunPtr (Ptr GLenum -> Ptr GLsizei -> GLenum -> Ptr () -> GLsizei -> GLint -> IO ()) -> Ptr GLenum -> Ptr GLsizei -> GLenum -> Ptr () -> GLsizei -> GLint -> m ()
-ffiPtrenumPtrsizeienumPtrVsizeiintIOV fp v0 v1 v2 v3 v4 v5 = liftIO (dynPtrenumPtrsizeienumPtrVsizeiintIOV fp v0 v1 v2 v3 v4 v5)
+ffiPtrenumPtrsizeienumPtrPtrVsizeiintIOV :: MonadIO m => FunPtr (Ptr GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr ()) -> GLsizei -> GLint -> IO ()) -> Ptr GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr ()) -> GLsizei -> GLint -> m ()
+ffiPtrenumPtrsizeienumPtrPtrVsizeiintIOV fp v0 v1 v2 v3 v4 v5 = liftIO (dynPtrenumPtrsizeienumPtrPtrVsizeiintIOV fp v0 v1 v2 v3 v4 v5)
 
 foreign import ccall "dynamic" dynenumbyteIOV :: FunPtr (GLenum -> GLbyte -> IO ()) -> GLenum -> GLbyte -> IO ()
 
@@ -4168,6 +4188,11 @@
 ffienumsizeisizeienumsizeisizeiIOV :: MonadIO m => FunPtr (GLenum -> GLsizei -> GLsizei -> GLenum -> GLsizei -> GLsizei -> IO ()) -> GLenum -> GLsizei -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()
 ffienumsizeisizeienumsizeisizeiIOV fp v0 v1 v2 v3 v4 v5 = liftIO (dynenumsizeisizeienumsizeisizeiIOV fp v0 v1 v2 v3 v4 v5)
 
+foreign import ccall "dynamic" dynenumsizeiPtrPtrVIOV :: FunPtr (GLenum -> GLsizei -> Ptr (Ptr ()) -> IO ()) -> GLenum -> GLsizei -> Ptr (Ptr ()) -> IO ()
+
+ffienumsizeiPtrPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLsizei -> Ptr (Ptr ()) -> IO ()) -> GLenum -> GLsizei -> Ptr (Ptr ()) -> m ()
+ffienumsizeiPtrPtrVIOV fp v0 v1 v2 = liftIO (dynenumsizeiPtrPtrVIOV fp v0 v1 v2)
+
 foreign import ccall "dynamic" dynuintfloatfloatfloatfloatfloatfloatIOV :: FunPtr (GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()) -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()
 
 ffiuintfloatfloatfloatfloatfloatfloatIOV :: MonadIO m => FunPtr (GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()) -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
@@ -4283,6 +4308,11 @@
 ffienumenumsizeisizeienumenumPtrVPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> Ptr () -> IO ()) -> GLenum -> GLenum -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> Ptr () -> m ()
 ffienumenumsizeisizeienumenumPtrVPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 = liftIO (dynenumenumsizeisizeienumenumPtrVPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7)
 
+foreign import ccall "dynamic" dynuintenumPtrVIOV :: FunPtr (GLuint -> GLenum -> Ptr () -> IO ()) -> GLuint -> GLenum -> Ptr () -> IO ()
+
+ffiuintenumPtrVIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> Ptr () -> IO ()) -> GLuint -> GLenum -> Ptr () -> m ()
+ffiuintenumPtrVIOV fp v0 v1 v2 = liftIO (dynuintenumPtrVIOV fp v0 v1 v2)
+
 foreign import ccall "dynamic" dynsizeiPtruintenumPtrVsizeiIOV :: FunPtr (GLsizei -> Ptr GLuint -> GLenum -> Ptr () -> GLsizei -> IO ()) -> GLsizei -> Ptr GLuint -> GLenum -> Ptr () -> GLsizei -> IO ()
 
 ffisizeiPtruintenumPtrVsizeiIOV :: MonadIO m => FunPtr (GLsizei -> Ptr GLuint -> GLenum -> Ptr () -> GLsizei -> IO ()) -> GLsizei -> Ptr GLuint -> GLenum -> Ptr () -> GLsizei -> m ()
@@ -4298,10 +4328,10 @@
 ffienumuintuintuintuintIOV :: MonadIO m => FunPtr (GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> IO ()) -> GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
 ffienumuintuintuintuintIOV fp v0 v1 v2 v3 v4 = liftIO (dynenumuintuintuintuintIOV fp v0 v1 v2 v3 v4)
 
-foreign import ccall "dynamic" dynhandleARBsizeiPtrcharARBPtrintIOV :: FunPtr (GLhandleARB -> GLsizei -> Ptr GLcharARB -> Ptr GLint -> IO ()) -> GLhandleARB -> GLsizei -> Ptr GLcharARB -> Ptr GLint -> IO ()
+foreign import ccall "dynamic" dynhandleARBsizeiPtrPtrcharARBPtrintIOV :: FunPtr (GLhandleARB -> GLsizei -> Ptr (Ptr GLcharARB) -> Ptr GLint -> IO ()) -> GLhandleARB -> GLsizei -> Ptr (Ptr GLcharARB) -> Ptr GLint -> IO ()
 
-ffihandleARBsizeiPtrcharARBPtrintIOV :: MonadIO m => FunPtr (GLhandleARB -> GLsizei -> Ptr GLcharARB -> Ptr GLint -> IO ()) -> GLhandleARB -> GLsizei -> Ptr GLcharARB -> Ptr GLint -> m ()
-ffihandleARBsizeiPtrcharARBPtrintIOV fp v0 v1 v2 v3 = liftIO (dynhandleARBsizeiPtrcharARBPtrintIOV fp v0 v1 v2 v3)
+ffihandleARBsizeiPtrPtrcharARBPtrintIOV :: MonadIO m => FunPtr (GLhandleARB -> GLsizei -> Ptr (Ptr GLcharARB) -> Ptr GLint -> IO ()) -> GLhandleARB -> GLsizei -> Ptr (Ptr GLcharARB) -> Ptr GLint -> m ()
+ffihandleARBsizeiPtrPtrcharARBPtrintIOV fp v0 v1 v2 v3 = liftIO (dynhandleARBsizeiPtrPtrcharARBPtrintIOV fp v0 v1 v2 v3)
 
 foreign import ccall "dynamic" dynuintuintuintuintbitfieldIOV :: FunPtr (GLuint -> GLuint -> GLuint -> GLuint -> GLbitfield -> IO ()) -> GLuint -> GLuint -> GLuint -> GLuint -> GLbitfield -> IO ()
 
@@ -4648,10 +4678,10 @@
 ffisizeiPtrintsizeiPtrintenumIOV :: MonadIO m => FunPtr (GLsizei -> Ptr GLint -> GLsizei -> Ptr GLint -> GLenum -> IO ()) -> GLsizei -> Ptr GLint -> GLsizei -> Ptr GLint -> GLenum -> m ()
 ffisizeiPtrintsizeiPtrintenumIOV fp v0 v1 v2 v3 v4 = liftIO (dynsizeiPtrintsizeiPtrintenumIOV fp v0 v1 v2 v3 v4)
 
-foreign import ccall "dynamic" dynuintsizeiPtrcharenumIOV :: FunPtr (GLuint -> GLsizei -> Ptr GLchar -> GLenum -> IO ()) -> GLuint -> GLsizei -> Ptr GLchar -> GLenum -> IO ()
+foreign import ccall "dynamic" dynuintsizeiPtrPtrcharenumIOV :: FunPtr (GLuint -> GLsizei -> Ptr (Ptr GLchar) -> GLenum -> IO ()) -> GLuint -> GLsizei -> Ptr (Ptr GLchar) -> GLenum -> IO ()
 
-ffiuintsizeiPtrcharenumIOV :: MonadIO m => FunPtr (GLuint -> GLsizei -> Ptr GLchar -> GLenum -> IO ()) -> GLuint -> GLsizei -> Ptr GLchar -> GLenum -> m ()
-ffiuintsizeiPtrcharenumIOV fp v0 v1 v2 v3 = liftIO (dynuintsizeiPtrcharenumIOV fp v0 v1 v2 v3)
+ffiuintsizeiPtrPtrcharenumIOV :: MonadIO m => FunPtr (GLuint -> GLsizei -> Ptr (Ptr GLchar) -> GLenum -> IO ()) -> GLuint -> GLsizei -> Ptr (Ptr GLchar) -> GLenum -> m ()
+ffiuintsizeiPtrPtrcharenumIOV fp v0 v1 v2 v3 = liftIO (dynuintsizeiPtrPtrcharenumIOV fp v0 v1 v2 v3)
 
 foreign import ccall "dynamic" dynuintsizeiPtrintenumIOV :: FunPtr (GLuint -> GLsizei -> Ptr GLint -> GLenum -> IO ()) -> GLuint -> GLsizei -> Ptr GLint -> GLenum -> IO ()
 
diff --git a/dist/build/autogen/Graphics/GL/Raw/Internal/Shared.hs b/dist/build/autogen/Graphics/GL/Raw/Internal/Shared.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Internal/Shared.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Internal/Shared.hs
@@ -9,13423 +9,21415 @@
 import Graphics.GL.Raw.Internal.Proc
 import System.IO.Unsafe
 
-glGetUniformi64vNV :: MonadIO m => GLuint -> GLint -> Ptr GLint64EXT -> m ()
-glGetUniformi64vNV = ffiuintintPtrint64EXTIOV glGetUniformi64vNVFunPtr
-
-glGetUniformi64vNVFunPtr :: FunPtr (GLuint -> GLint -> Ptr GLint64EXT -> IO ())
-glGetUniformi64vNVFunPtr = unsafePerformIO (getProcAddress "glGetUniformi64vNV")
-
-{-# NOINLINE glGetUniformi64vNVFunPtr #-}
-
-glGetUniformui64vNV :: MonadIO m => GLuint -> GLint -> Ptr GLuint64EXT -> m ()
-glGetUniformui64vNV = ffiuintintPtruint64EXTIOV glGetUniformui64vNVFunPtr
-
-glGetUniformui64vNVFunPtr :: FunPtr (GLuint -> GLint -> Ptr GLuint64EXT -> IO ())
-glGetUniformui64vNVFunPtr = unsafePerformIO (getProcAddress "glGetUniformui64vNV")
-
-{-# NOINLINE glGetUniformui64vNVFunPtr #-}
-
-glProgramUniform1i64NV :: MonadIO m => GLuint -> GLint -> GLint64EXT -> m ()
-glProgramUniform1i64NV = ffiuintintint64EXTIOV glProgramUniform1i64NVFunPtr
-
-glProgramUniform1i64NVFunPtr :: FunPtr (GLuint -> GLint -> GLint64EXT -> IO ())
-glProgramUniform1i64NVFunPtr = unsafePerformIO (getProcAddress "glProgramUniform1i64NV")
-
-{-# NOINLINE glProgramUniform1i64NVFunPtr #-}
-
-glProgramUniform1i64vNV :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint64EXT -> m ()
-glProgramUniform1i64vNV = ffiuintintsizeiPtrint64EXTIOV glProgramUniform1i64vNVFunPtr
-
-glProgramUniform1i64vNVFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint64EXT -> IO ())
-glProgramUniform1i64vNVFunPtr = unsafePerformIO (getProcAddress "glProgramUniform1i64vNV")
-
-{-# NOINLINE glProgramUniform1i64vNVFunPtr #-}
-
-glProgramUniform1ui64NV :: MonadIO m => GLuint -> GLint -> GLuint64EXT -> m ()
-glProgramUniform1ui64NV = ffiuintintuint64EXTIOV glProgramUniform1ui64NVFunPtr
-
-glProgramUniform1ui64NVFunPtr :: FunPtr (GLuint -> GLint -> GLuint64EXT -> IO ())
-glProgramUniform1ui64NVFunPtr = unsafePerformIO (getProcAddress "glProgramUniform1ui64NV")
-
-{-# NOINLINE glProgramUniform1ui64NVFunPtr #-}
-
-glProgramUniform1ui64vNV :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint64EXT -> m ()
-glProgramUniform1ui64vNV = ffiuintintsizeiPtruint64EXTIOV glProgramUniform1ui64vNVFunPtr
-
-glProgramUniform1ui64vNVFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint64EXT -> IO ())
-glProgramUniform1ui64vNVFunPtr = unsafePerformIO (getProcAddress "glProgramUniform1ui64vNV")
-
-{-# NOINLINE glProgramUniform1ui64vNVFunPtr #-}
-
-glProgramUniform2i64NV :: MonadIO m => GLuint -> GLint -> GLint64EXT -> GLint64EXT -> m ()
-glProgramUniform2i64NV = ffiuintintint64EXTint64EXTIOV glProgramUniform2i64NVFunPtr
-
-glProgramUniform2i64NVFunPtr :: FunPtr (GLuint -> GLint -> GLint64EXT -> GLint64EXT -> IO ())
-glProgramUniform2i64NVFunPtr = unsafePerformIO (getProcAddress "glProgramUniform2i64NV")
-
-{-# NOINLINE glProgramUniform2i64NVFunPtr #-}
-
-glProgramUniform2i64vNV :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint64EXT -> m ()
-glProgramUniform2i64vNV = ffiuintintsizeiPtrint64EXTIOV glProgramUniform2i64vNVFunPtr
-
-glProgramUniform2i64vNVFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint64EXT -> IO ())
-glProgramUniform2i64vNVFunPtr = unsafePerformIO (getProcAddress "glProgramUniform2i64vNV")
-
-{-# NOINLINE glProgramUniform2i64vNVFunPtr #-}
-
-glProgramUniform2ui64NV :: MonadIO m => GLuint -> GLint -> GLuint64EXT -> GLuint64EXT -> m ()
-glProgramUniform2ui64NV = ffiuintintuint64EXTuint64EXTIOV glProgramUniform2ui64NVFunPtr
-
-glProgramUniform2ui64NVFunPtr :: FunPtr (GLuint -> GLint -> GLuint64EXT -> GLuint64EXT -> IO ())
-glProgramUniform2ui64NVFunPtr = unsafePerformIO (getProcAddress "glProgramUniform2ui64NV")
-
-{-# NOINLINE glProgramUniform2ui64NVFunPtr #-}
-
-glProgramUniform2ui64vNV :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint64EXT -> m ()
-glProgramUniform2ui64vNV = ffiuintintsizeiPtruint64EXTIOV glProgramUniform2ui64vNVFunPtr
-
-glProgramUniform2ui64vNVFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint64EXT -> IO ())
-glProgramUniform2ui64vNVFunPtr = unsafePerformIO (getProcAddress "glProgramUniform2ui64vNV")
-
-{-# NOINLINE glProgramUniform2ui64vNVFunPtr #-}
-
-glProgramUniform3i64NV :: MonadIO m => GLuint -> GLint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> m ()
-glProgramUniform3i64NV = ffiuintintint64EXTint64EXTint64EXTIOV glProgramUniform3i64NVFunPtr
-
-glProgramUniform3i64NVFunPtr :: FunPtr (GLuint -> GLint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> IO ())
-glProgramUniform3i64NVFunPtr = unsafePerformIO (getProcAddress "glProgramUniform3i64NV")
-
-{-# NOINLINE glProgramUniform3i64NVFunPtr #-}
-
-glProgramUniform3i64vNV :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint64EXT -> m ()
-glProgramUniform3i64vNV = ffiuintintsizeiPtrint64EXTIOV glProgramUniform3i64vNVFunPtr
-
-glProgramUniform3i64vNVFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint64EXT -> IO ())
-glProgramUniform3i64vNVFunPtr = unsafePerformIO (getProcAddress "glProgramUniform3i64vNV")
-
-{-# NOINLINE glProgramUniform3i64vNVFunPtr #-}
-
-glProgramUniform3ui64NV :: MonadIO m => GLuint -> GLint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> m ()
-glProgramUniform3ui64NV = ffiuintintuint64EXTuint64EXTuint64EXTIOV glProgramUniform3ui64NVFunPtr
-
-glProgramUniform3ui64NVFunPtr :: FunPtr (GLuint -> GLint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> IO ())
-glProgramUniform3ui64NVFunPtr = unsafePerformIO (getProcAddress "glProgramUniform3ui64NV")
-
-{-# NOINLINE glProgramUniform3ui64NVFunPtr #-}
-
-glProgramUniform3ui64vNV :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint64EXT -> m ()
-glProgramUniform3ui64vNV = ffiuintintsizeiPtruint64EXTIOV glProgramUniform3ui64vNVFunPtr
-
-glProgramUniform3ui64vNVFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint64EXT -> IO ())
-glProgramUniform3ui64vNVFunPtr = unsafePerformIO (getProcAddress "glProgramUniform3ui64vNV")
-
-{-# NOINLINE glProgramUniform3ui64vNVFunPtr #-}
-
-glProgramUniform4i64NV :: MonadIO m => GLuint -> GLint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> GLint64EXT -> m ()
-glProgramUniform4i64NV = ffiuintintint64EXTint64EXTint64EXTint64EXTIOV glProgramUniform4i64NVFunPtr
-
-glProgramUniform4i64NVFunPtr :: FunPtr (GLuint -> GLint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> GLint64EXT -> IO ())
-glProgramUniform4i64NVFunPtr = unsafePerformIO (getProcAddress "glProgramUniform4i64NV")
-
-{-# NOINLINE glProgramUniform4i64NVFunPtr #-}
-
-glProgramUniform4i64vNV :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint64EXT -> m ()
-glProgramUniform4i64vNV = ffiuintintsizeiPtrint64EXTIOV glProgramUniform4i64vNVFunPtr
-
-glProgramUniform4i64vNVFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint64EXT -> IO ())
-glProgramUniform4i64vNVFunPtr = unsafePerformIO (getProcAddress "glProgramUniform4i64vNV")
-
-{-# NOINLINE glProgramUniform4i64vNVFunPtr #-}
-
-glProgramUniform4ui64NV :: MonadIO m => GLuint -> GLint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> m ()
-glProgramUniform4ui64NV = ffiuintintuint64EXTuint64EXTuint64EXTuint64EXTIOV glProgramUniform4ui64NVFunPtr
-
-glProgramUniform4ui64NVFunPtr :: FunPtr (GLuint -> GLint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> IO ())
-glProgramUniform4ui64NVFunPtr = unsafePerformIO (getProcAddress "glProgramUniform4ui64NV")
-
-{-# NOINLINE glProgramUniform4ui64NVFunPtr #-}
-
-glProgramUniform4ui64vNV :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint64EXT -> m ()
-glProgramUniform4ui64vNV = ffiuintintsizeiPtruint64EXTIOV glProgramUniform4ui64vNVFunPtr
-
-glProgramUniform4ui64vNVFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint64EXT -> IO ())
-glProgramUniform4ui64vNVFunPtr = unsafePerformIO (getProcAddress "glProgramUniform4ui64vNV")
-
-{-# NOINLINE glProgramUniform4ui64vNVFunPtr #-}
-
-glUniform1i64NV :: MonadIO m => GLint -> GLint64EXT -> m ()
-glUniform1i64NV = ffiintint64EXTIOV glUniform1i64NVFunPtr
-
-glUniform1i64NVFunPtr :: FunPtr (GLint -> GLint64EXT -> IO ())
-glUniform1i64NVFunPtr = unsafePerformIO (getProcAddress "glUniform1i64NV")
-
-{-# NOINLINE glUniform1i64NVFunPtr #-}
-
-glUniform1i64vNV :: MonadIO m => GLint -> GLsizei -> Ptr GLint64EXT -> m ()
-glUniform1i64vNV = ffiintsizeiPtrint64EXTIOV glUniform1i64vNVFunPtr
-
-glUniform1i64vNVFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLint64EXT -> IO ())
-glUniform1i64vNVFunPtr = unsafePerformIO (getProcAddress "glUniform1i64vNV")
-
-{-# NOINLINE glUniform1i64vNVFunPtr #-}
-
-glUniform1ui64NV :: MonadIO m => GLint -> GLuint64EXT -> m ()
-glUniform1ui64NV = ffiintuint64EXTIOV glUniform1ui64NVFunPtr
-
-glUniform1ui64NVFunPtr :: FunPtr (GLint -> GLuint64EXT -> IO ())
-glUniform1ui64NVFunPtr = unsafePerformIO (getProcAddress "glUniform1ui64NV")
-
-{-# NOINLINE glUniform1ui64NVFunPtr #-}
-
-glUniform1ui64vNV :: MonadIO m => GLint -> GLsizei -> Ptr GLuint64EXT -> m ()
-glUniform1ui64vNV = ffiintsizeiPtruint64EXTIOV glUniform1ui64vNVFunPtr
-
-glUniform1ui64vNVFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLuint64EXT -> IO ())
-glUniform1ui64vNVFunPtr = unsafePerformIO (getProcAddress "glUniform1ui64vNV")
-
-{-# NOINLINE glUniform1ui64vNVFunPtr #-}
-
-glUniform2i64NV :: MonadIO m => GLint -> GLint64EXT -> GLint64EXT -> m ()
-glUniform2i64NV = ffiintint64EXTint64EXTIOV glUniform2i64NVFunPtr
-
-glUniform2i64NVFunPtr :: FunPtr (GLint -> GLint64EXT -> GLint64EXT -> IO ())
-glUniform2i64NVFunPtr = unsafePerformIO (getProcAddress "glUniform2i64NV")
-
-{-# NOINLINE glUniform2i64NVFunPtr #-}
-
-glUniform2i64vNV :: MonadIO m => GLint -> GLsizei -> Ptr GLint64EXT -> m ()
-glUniform2i64vNV = ffiintsizeiPtrint64EXTIOV glUniform2i64vNVFunPtr
-
-glUniform2i64vNVFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLint64EXT -> IO ())
-glUniform2i64vNVFunPtr = unsafePerformIO (getProcAddress "glUniform2i64vNV")
-
-{-# NOINLINE glUniform2i64vNVFunPtr #-}
-
-glUniform2ui64NV :: MonadIO m => GLint -> GLuint64EXT -> GLuint64EXT -> m ()
-glUniform2ui64NV = ffiintuint64EXTuint64EXTIOV glUniform2ui64NVFunPtr
-
-glUniform2ui64NVFunPtr :: FunPtr (GLint -> GLuint64EXT -> GLuint64EXT -> IO ())
-glUniform2ui64NVFunPtr = unsafePerformIO (getProcAddress "glUniform2ui64NV")
-
-{-# NOINLINE glUniform2ui64NVFunPtr #-}
-
-glUniform2ui64vNV :: MonadIO m => GLint -> GLsizei -> Ptr GLuint64EXT -> m ()
-glUniform2ui64vNV = ffiintsizeiPtruint64EXTIOV glUniform2ui64vNVFunPtr
-
-glUniform2ui64vNVFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLuint64EXT -> IO ())
-glUniform2ui64vNVFunPtr = unsafePerformIO (getProcAddress "glUniform2ui64vNV")
-
-{-# NOINLINE glUniform2ui64vNVFunPtr #-}
-
-glUniform3i64NV :: MonadIO m => GLint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> m ()
-glUniform3i64NV = ffiintint64EXTint64EXTint64EXTIOV glUniform3i64NVFunPtr
-
-glUniform3i64NVFunPtr :: FunPtr (GLint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> IO ())
-glUniform3i64NVFunPtr = unsafePerformIO (getProcAddress "glUniform3i64NV")
-
-{-# NOINLINE glUniform3i64NVFunPtr #-}
-
-glUniform3i64vNV :: MonadIO m => GLint -> GLsizei -> Ptr GLint64EXT -> m ()
-glUniform3i64vNV = ffiintsizeiPtrint64EXTIOV glUniform3i64vNVFunPtr
-
-glUniform3i64vNVFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLint64EXT -> IO ())
-glUniform3i64vNVFunPtr = unsafePerformIO (getProcAddress "glUniform3i64vNV")
-
-{-# NOINLINE glUniform3i64vNVFunPtr #-}
-
-glUniform3ui64NV :: MonadIO m => GLint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> m ()
-glUniform3ui64NV = ffiintuint64EXTuint64EXTuint64EXTIOV glUniform3ui64NVFunPtr
-
-glUniform3ui64NVFunPtr :: FunPtr (GLint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> IO ())
-glUniform3ui64NVFunPtr = unsafePerformIO (getProcAddress "glUniform3ui64NV")
-
-{-# NOINLINE glUniform3ui64NVFunPtr #-}
-
-glUniform3ui64vNV :: MonadIO m => GLint -> GLsizei -> Ptr GLuint64EXT -> m ()
-glUniform3ui64vNV = ffiintsizeiPtruint64EXTIOV glUniform3ui64vNVFunPtr
-
-glUniform3ui64vNVFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLuint64EXT -> IO ())
-glUniform3ui64vNVFunPtr = unsafePerformIO (getProcAddress "glUniform3ui64vNV")
-
-{-# NOINLINE glUniform3ui64vNVFunPtr #-}
-
-glUniform4i64NV :: MonadIO m => GLint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> GLint64EXT -> m ()
-glUniform4i64NV = ffiintint64EXTint64EXTint64EXTint64EXTIOV glUniform4i64NVFunPtr
-
-glUniform4i64NVFunPtr :: FunPtr (GLint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> GLint64EXT -> IO ())
-glUniform4i64NVFunPtr = unsafePerformIO (getProcAddress "glUniform4i64NV")
-
-{-# NOINLINE glUniform4i64NVFunPtr #-}
-
-glUniform4i64vNV :: MonadIO m => GLint -> GLsizei -> Ptr GLint64EXT -> m ()
-glUniform4i64vNV = ffiintsizeiPtrint64EXTIOV glUniform4i64vNVFunPtr
-
-glUniform4i64vNVFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLint64EXT -> IO ())
-glUniform4i64vNVFunPtr = unsafePerformIO (getProcAddress "glUniform4i64vNV")
-
-{-# NOINLINE glUniform4i64vNVFunPtr #-}
-
-glUniform4ui64NV :: MonadIO m => GLint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> m ()
-glUniform4ui64NV = ffiintuint64EXTuint64EXTuint64EXTuint64EXTIOV glUniform4ui64NVFunPtr
-
-glUniform4ui64NVFunPtr :: FunPtr (GLint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> IO ())
-glUniform4ui64NVFunPtr = unsafePerformIO (getProcAddress "glUniform4ui64NV")
-
-{-# NOINLINE glUniform4ui64NVFunPtr #-}
-
-glUniform4ui64vNV :: MonadIO m => GLint -> GLsizei -> Ptr GLuint64EXT -> m ()
-glUniform4ui64vNV = ffiintsizeiPtruint64EXTIOV glUniform4ui64vNVFunPtr
-
-glUniform4ui64vNVFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLuint64EXT -> IO ())
-glUniform4ui64vNVFunPtr = unsafePerformIO (getProcAddress "glUniform4ui64vNV")
-
-{-# NOINLINE glUniform4ui64vNVFunPtr #-}
-
-pattern GL_FLOAT16_NV = 0x8FF8
-
-pattern GL_FLOAT16_VEC2_NV = 0x8FF9
-
-pattern GL_FLOAT16_VEC3_NV = 0x8FFA
-
-pattern GL_FLOAT16_VEC4_NV = 0x8FFB
-
-pattern GL_INT16_NV = 0x8FE4
-
-pattern GL_INT16_VEC2_NV = 0x8FE5
-
-pattern GL_INT16_VEC3_NV = 0x8FE6
-
-pattern GL_INT16_VEC4_NV = 0x8FE7
-
-pattern GL_INT64_NV = 0x140E
-
-pattern GL_INT64_VEC2_NV = 0x8FE9
-
-pattern GL_INT64_VEC3_NV = 0x8FEA
-
-pattern GL_INT64_VEC4_NV = 0x8FEB
-
-pattern GL_INT8_NV = 0x8FE0
-
-pattern GL_INT8_VEC2_NV = 0x8FE1
-
-pattern GL_INT8_VEC3_NV = 0x8FE2
-
-pattern GL_INT8_VEC4_NV = 0x8FE3
-
-pattern GL_UNSIGNED_INT16_NV = 0x8FF0
-
-pattern GL_UNSIGNED_INT16_VEC2_NV = 0x8FF1
-
-pattern GL_UNSIGNED_INT16_VEC3_NV = 0x8FF2
-
-pattern GL_UNSIGNED_INT16_VEC4_NV = 0x8FF3
-
-pattern GL_UNSIGNED_INT64_NV = 0x140F
-
-pattern GL_UNSIGNED_INT64_VEC2_NV = 0x8FF5
-
-pattern GL_UNSIGNED_INT64_VEC3_NV = 0x8FF6
-
-pattern GL_UNSIGNED_INT64_VEC4_NV = 0x8FF7
-
-pattern GL_UNSIGNED_INT8_NV = 0x8FEC
-
-pattern GL_UNSIGNED_INT8_VEC2_NV = 0x8FED
-
-pattern GL_UNSIGNED_INT8_VEC3_NV = 0x8FEE
-
-pattern GL_UNSIGNED_INT8_VEC4_NV = 0x8FEF
-
-pattern GL_ALPHA = 0x1906
-
-pattern GL_BLUE = 0x1905
-
-pattern GL_GREEN = 0x1904
-
-pattern GL_RED = 0x1903
-
-pattern GL_RG16UI = 0x823A
-
-pattern GL_RG8UI = 0x8238
-
-pattern GL_RGBA8UI = 0x8D7C
-
-pattern GL_TEXTURE_CUBE_MAP_SEAMLESS = 0x884F
-
-pattern GL_DEPTH24_STENCIL8_OES = 0x88F0
-
-pattern GL_DEPTH_COMPONENT = 0x1902
-
-pattern GL_DEPTH_COMPONENT16 = 0x81A5
-
-pattern GL_DEPTH_COMPONENT32_OES = 0x81A7
-
-pattern GL_DEPTH_STENCIL_OES = 0x84F9
-
-pattern GL_UNSIGNED_INT = 0x1405
-
-pattern GL_UNSIGNED_INT_24_8_OES = 0x84FA
-
-pattern GL_UNSIGNED_SHORT = 0x1403
-
-pattern GL_UNSIGNED_SHORT_8_8_APPLE = 0x85BA
-
-pattern GL_UNSIGNED_SHORT_8_8_REV_APPLE = 0x85BB
-
-pattern GL_BGRA8_EXT = 0x93A1
-
-pattern GL_BGRA_EXT = 0x80E1
-
-pattern GL_STORAGE_CACHED_APPLE = 0x85BE
-
-pattern GL_STORAGE_SHARED_APPLE = 0x85BF
-
-glDrawArraysInstancedBaseInstance :: MonadIO m => GLenum -> GLint -> GLsizei -> GLsizei -> GLuint -> m ()
-glDrawArraysInstancedBaseInstance = ffienumintsizeisizeiuintIOV glDrawArraysInstancedBaseInstanceFunPtr
-
-glDrawArraysInstancedBaseInstanceFunPtr :: FunPtr (GLenum -> GLint -> GLsizei -> GLsizei -> GLuint -> IO ())
-glDrawArraysInstancedBaseInstanceFunPtr = unsafePerformIO (getProcAddress "glDrawArraysInstancedBaseInstance")
-
-{-# NOINLINE glDrawArraysInstancedBaseInstanceFunPtr #-}
-
-glDrawElementsInstancedBaseInstance :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> GLuint -> m ()
-glDrawElementsInstancedBaseInstance = ffienumsizeienumPtrVsizeiuintIOV glDrawElementsInstancedBaseInstanceFunPtr
-
-glDrawElementsInstancedBaseInstanceFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> GLuint -> IO ())
-glDrawElementsInstancedBaseInstanceFunPtr = unsafePerformIO (getProcAddress "glDrawElementsInstancedBaseInstance")
-
-{-# NOINLINE glDrawElementsInstancedBaseInstanceFunPtr #-}
-
-glDrawElementsInstancedBaseVertexBaseInstance :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> GLint -> GLuint -> m ()
-glDrawElementsInstancedBaseVertexBaseInstance = ffienumsizeienumPtrVsizeiintuintIOV glDrawElementsInstancedBaseVertexBaseInstanceFunPtr
-
-glDrawElementsInstancedBaseVertexBaseInstanceFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> GLint -> GLuint -> IO ())
-glDrawElementsInstancedBaseVertexBaseInstanceFunPtr = unsafePerformIO (getProcAddress "glDrawElementsInstancedBaseVertexBaseInstance")
-
-{-# NOINLINE glDrawElementsInstancedBaseVertexBaseInstanceFunPtr #-}
-
-glBindFragDataLocationIndexed :: MonadIO m => GLuint -> GLuint -> GLuint -> Ptr GLchar -> m ()
-glBindFragDataLocationIndexed = ffiuintuintuintPtrcharIOV glBindFragDataLocationIndexedFunPtr
-
-glBindFragDataLocationIndexedFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> Ptr GLchar -> IO ())
-glBindFragDataLocationIndexedFunPtr = unsafePerformIO (getProcAddress "glBindFragDataLocationIndexed")
-
-{-# NOINLINE glBindFragDataLocationIndexedFunPtr #-}
-
-glGetFragDataIndex :: MonadIO m => GLuint -> Ptr GLchar -> m GLint
-glGetFragDataIndex = ffiuintPtrcharIOint glGetFragDataIndexFunPtr
-
-glGetFragDataIndexFunPtr :: FunPtr (GLuint -> Ptr GLchar -> IO GLint)
-glGetFragDataIndexFunPtr = unsafePerformIO (getProcAddress "glGetFragDataIndex")
-
-{-# NOINLINE glGetFragDataIndexFunPtr #-}
-
-pattern GL_MAX_DUAL_SOURCE_DRAW_BUFFERS = 0x88FC
-
-pattern GL_ONE_MINUS_SRC1_ALPHA = 0x88FB
-
-pattern GL_ONE_MINUS_SRC1_COLOR = 0x88FA
-
-pattern GL_SRC1_ALPHA = 0x8589
-
-pattern GL_SRC1_COLOR = 0x88F9
-
-glBufferStorage :: MonadIO m => GLenum -> GLsizeiptr -> Ptr () -> GLbitfield -> m ()
-glBufferStorage = ffienumsizeiptrPtrVbitfieldIOV glBufferStorageFunPtr
-
-glBufferStorageFunPtr :: FunPtr (GLenum -> GLsizeiptr -> Ptr () -> GLbitfield -> IO ())
-glBufferStorageFunPtr = unsafePerformIO (getProcAddress "glBufferStorage")
-
-{-# NOINLINE glBufferStorageFunPtr #-}
-
-pattern GL_BUFFER_IMMUTABLE_STORAGE = 0x821F
-
-pattern GL_BUFFER_STORAGE_FLAGS = 0x8220
-
-pattern GL_CLIENT_MAPPED_BUFFER_BARRIER_BIT = 0x00004000
-
-pattern GL_CLIENT_STORAGE_BIT = 0x0200
-
-pattern GL_DYNAMIC_STORAGE_BIT = 0x0100
-
-pattern GL_MAP_COHERENT_BIT = 0x0080
-
-pattern GL_MAP_PERSISTENT_BIT = 0x0040
-
-pattern GL_MAP_READ_BIT = 0x0001
-
-pattern GL_MAP_WRITE_BIT = 0x0002
-
-glClearBufferData :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> Ptr () -> m ()
-glClearBufferData = ffienumenumenumenumPtrVIOV glClearBufferDataFunPtr
-
-glClearBufferDataFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLenum -> Ptr () -> IO ())
-glClearBufferDataFunPtr = unsafePerformIO (getProcAddress "glClearBufferData")
-
-{-# NOINLINE glClearBufferDataFunPtr #-}
-
-glClearBufferSubData :: MonadIO m => GLenum -> GLenum -> GLintptr -> GLsizeiptr -> GLenum -> GLenum -> Ptr () -> m ()
-glClearBufferSubData = ffienumenumintptrsizeiptrenumenumPtrVIOV glClearBufferSubDataFunPtr
-
-glClearBufferSubDataFunPtr :: FunPtr (GLenum -> GLenum -> GLintptr -> GLsizeiptr -> GLenum -> GLenum -> Ptr () -> IO ())
-glClearBufferSubDataFunPtr = unsafePerformIO (getProcAddress "glClearBufferSubData")
-
-{-# NOINLINE glClearBufferSubDataFunPtr #-}
-
-glClearTexImage :: MonadIO m => GLuint -> GLint -> GLenum -> GLenum -> Ptr () -> m ()
-glClearTexImage = ffiuintintenumenumPtrVIOV glClearTexImageFunPtr
-
-glClearTexImageFunPtr :: FunPtr (GLuint -> GLint -> GLenum -> GLenum -> Ptr () -> IO ())
-glClearTexImageFunPtr = unsafePerformIO (getProcAddress "glClearTexImage")
-
-{-# NOINLINE glClearTexImageFunPtr #-}
-
-glClearTexSubImage :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
-glClearTexSubImage = ffiuintintintintintsizeisizeisizeienumenumPtrVIOV glClearTexSubImageFunPtr
-
-glClearTexSubImageFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ())
-glClearTexSubImageFunPtr = unsafePerformIO (getProcAddress "glClearTexSubImage")
-
-{-# NOINLINE glClearTexSubImageFunPtr #-}
-
-pattern GL_CLEAR_TEXTURE = 0x9365
-
-glClipControl :: MonadIO m => GLenum -> GLenum -> m ()
-glClipControl = ffienumenumIOV glClipControlFunPtr
-
-glClipControlFunPtr :: FunPtr (GLenum -> GLenum -> IO ())
-glClipControlFunPtr = unsafePerformIO (getProcAddress "glClipControl")
-
-{-# NOINLINE glClipControlFunPtr #-}
-
-pattern GL_CLIP_DEPTH_MODE = 0x935D
-
-pattern GL_CLIP_ORIGIN = 0x935C
-
-pattern GL_LOWER_LEFT = 0x8CA1
-
-pattern GL_NEGATIVE_ONE_TO_ONE = 0x935E
-
-pattern GL_UPPER_LEFT = 0x8CA2
-
-pattern GL_ZERO_TO_ONE = 0x935F
-
-pattern GL_PACK_COMPRESSED_BLOCK_DEPTH = 0x912D
-
-pattern GL_PACK_COMPRESSED_BLOCK_HEIGHT = 0x912C
-
-pattern GL_PACK_COMPRESSED_BLOCK_SIZE = 0x912E
-
-pattern GL_PACK_COMPRESSED_BLOCK_WIDTH = 0x912B
-
-pattern GL_UNPACK_COMPRESSED_BLOCK_DEPTH = 0x9129
-
-pattern GL_UNPACK_COMPRESSED_BLOCK_HEIGHT = 0x9128
-
-pattern GL_UNPACK_COMPRESSED_BLOCK_SIZE = 0x912A
-
-pattern GL_UNPACK_COMPRESSED_BLOCK_WIDTH = 0x9127
-
-glDispatchCompute :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()
-glDispatchCompute = ffiuintuintuintIOV glDispatchComputeFunPtr
-
-glDispatchComputeFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> IO ())
-glDispatchComputeFunPtr = unsafePerformIO (getProcAddress "glDispatchCompute")
-
-{-# NOINLINE glDispatchComputeFunPtr #-}
-
-glDispatchComputeIndirect :: MonadIO m => GLintptr -> m ()
-glDispatchComputeIndirect = ffiintptrIOV glDispatchComputeIndirectFunPtr
-
-glDispatchComputeIndirectFunPtr :: FunPtr (GLintptr -> IO ())
-glDispatchComputeIndirectFunPtr = unsafePerformIO (getProcAddress "glDispatchComputeIndirect")
-
-{-# NOINLINE glDispatchComputeIndirectFunPtr #-}
-
-pattern GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_COMPUTE_SHADER = 0x90ED
-
-pattern GL_COMPUTE_SHADER = 0x91B9
-
-pattern GL_COMPUTE_SHADER_BIT = 0x00000020
-
-pattern GL_COMPUTE_WORK_GROUP_SIZE = 0x8267
-
-pattern GL_DISPATCH_INDIRECT_BUFFER = 0x90EE
-
-pattern GL_DISPATCH_INDIRECT_BUFFER_BINDING = 0x90EF
-
-pattern GL_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS = 0x8266
-
-pattern GL_MAX_COMPUTE_ATOMIC_COUNTERS = 0x8265
-
-pattern GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS = 0x8264
-
-pattern GL_MAX_COMPUTE_IMAGE_UNIFORMS = 0x91BD
-
-pattern GL_MAX_COMPUTE_SHARED_MEMORY_SIZE = 0x8262
-
-pattern GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS = 0x91BC
-
-pattern GL_MAX_COMPUTE_UNIFORM_BLOCKS = 0x91BB
-
-pattern GL_MAX_COMPUTE_UNIFORM_COMPONENTS = 0x8263
-
-pattern GL_MAX_COMPUTE_WORK_GROUP_COUNT = 0x91BE
-
-pattern GL_MAX_COMPUTE_WORK_GROUP_INVOCATIONS = 0x90EB
-
-pattern GL_MAX_COMPUTE_WORK_GROUP_SIZE = 0x91BF
-
-pattern GL_UNIFORM_BLOCK_REFERENCED_BY_COMPUTE_SHADER = 0x90EC
-
-pattern GL_QUERY_BY_REGION_NO_WAIT_INVERTED = 0x8E1A
-
-pattern GL_QUERY_BY_REGION_WAIT_INVERTED = 0x8E19
-
-pattern GL_QUERY_NO_WAIT_INVERTED = 0x8E18
-
-pattern GL_QUERY_WAIT_INVERTED = 0x8E17
-
-glCopyBufferSubData :: MonadIO m => GLenum -> GLenum -> GLintptr -> GLintptr -> GLsizeiptr -> m ()
-glCopyBufferSubData = ffienumenumintptrintptrsizeiptrIOV glCopyBufferSubDataFunPtr
-
-glCopyBufferSubDataFunPtr :: FunPtr (GLenum -> GLenum -> GLintptr -> GLintptr -> GLsizeiptr -> IO ())
-glCopyBufferSubDataFunPtr = unsafePerformIO (getProcAddress "glCopyBufferSubData")
-
-{-# NOINLINE glCopyBufferSubDataFunPtr #-}
-
-pattern GL_COPY_READ_BUFFER = 0x8F36
-
-pattern GL_COPY_WRITE_BUFFER = 0x8F37
-
-glCopyImageSubData :: MonadIO m => GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> m ()
-glCopyImageSubData = ffiuintenumintintintintuintenumintintintintsizeisizeisizeiIOV glCopyImageSubDataFunPtr
-
-glCopyImageSubDataFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> IO ())
-glCopyImageSubDataFunPtr = unsafePerformIO (getProcAddress "glCopyImageSubData")
-
-{-# NOINLINE glCopyImageSubDataFunPtr #-}
-
-pattern GL_MAX_COMBINED_CLIP_AND_CULL_DISTANCES = 0x82FA
-
-pattern GL_MAX_CULL_DISTANCES = 0x82F9
-
-pattern GL_DEPTH32F_STENCIL8 = 0x8CAD
-
-pattern GL_DEPTH_COMPONENT32F = 0x8CAC
-
-pattern GL_FLOAT_32_UNSIGNED_INT_24_8_REV = 0x8DAD
-
-pattern GL_DEPTH_CLAMP = 0x864F
-
-glBindTextureUnit :: MonadIO m => GLuint -> GLuint -> m ()
-glBindTextureUnit = ffiuintuintIOV glBindTextureUnitFunPtr
-
-glBindTextureUnitFunPtr :: FunPtr (GLuint -> GLuint -> IO ())
-glBindTextureUnitFunPtr = unsafePerformIO (getProcAddress "glBindTextureUnit")
-
-{-# NOINLINE glBindTextureUnitFunPtr #-}
-
-glBlitNamedFramebuffer :: MonadIO m => GLuint -> GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLbitfield -> GLenum -> m ()
-glBlitNamedFramebuffer = ffiuintuintintintintintintintintintbitfieldenumIOV glBlitNamedFramebufferFunPtr
-
-glBlitNamedFramebufferFunPtr :: FunPtr (GLuint -> GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLbitfield -> GLenum -> IO ())
-glBlitNamedFramebufferFunPtr = unsafePerformIO (getProcAddress "glBlitNamedFramebuffer")
-
-{-# NOINLINE glBlitNamedFramebufferFunPtr #-}
-
-glCheckNamedFramebufferStatus :: MonadIO m => GLuint -> GLenum -> m GLenum
-glCheckNamedFramebufferStatus = ffiuintenumIOenum glCheckNamedFramebufferStatusFunPtr
-
-glCheckNamedFramebufferStatusFunPtr :: FunPtr (GLuint -> GLenum -> IO GLenum)
-glCheckNamedFramebufferStatusFunPtr = unsafePerformIO (getProcAddress "glCheckNamedFramebufferStatus")
-
-{-# NOINLINE glCheckNamedFramebufferStatusFunPtr #-}
-
-glClearNamedBufferData :: MonadIO m => GLuint -> GLenum -> GLenum -> GLenum -> Ptr () -> m ()
-glClearNamedBufferData = ffiuintenumenumenumPtrVIOV glClearNamedBufferDataFunPtr
-
-glClearNamedBufferDataFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> GLenum -> Ptr () -> IO ())
-glClearNamedBufferDataFunPtr = unsafePerformIO (getProcAddress "glClearNamedBufferData")
-
-{-# NOINLINE glClearNamedBufferDataFunPtr #-}
-
-glClearNamedBufferSubData :: MonadIO m => GLuint -> GLenum -> GLintptr -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
-glClearNamedBufferSubData = ffiuintenumintptrsizeienumenumPtrVIOV glClearNamedBufferSubDataFunPtr
-
-glClearNamedBufferSubDataFunPtr :: FunPtr (GLuint -> GLenum -> GLintptr -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ())
-glClearNamedBufferSubDataFunPtr = unsafePerformIO (getProcAddress "glClearNamedBufferSubData")
-
-{-# NOINLINE glClearNamedBufferSubDataFunPtr #-}
-
-glClearNamedFramebufferfi :: MonadIO m => GLuint -> GLenum -> GLfloat -> GLint -> m ()
-glClearNamedFramebufferfi = ffiuintenumfloatintIOV glClearNamedFramebufferfiFunPtr
-
-glClearNamedFramebufferfiFunPtr :: FunPtr (GLuint -> GLenum -> GLfloat -> GLint -> IO ())
-glClearNamedFramebufferfiFunPtr = unsafePerformIO (getProcAddress "glClearNamedFramebufferfi")
-
-{-# NOINLINE glClearNamedFramebufferfiFunPtr #-}
-
-glClearNamedFramebufferfv :: MonadIO m => GLuint -> GLenum -> GLint -> Ptr GLfloat -> m ()
-glClearNamedFramebufferfv = ffiuintenumintPtrfloatIOV glClearNamedFramebufferfvFunPtr
-
-glClearNamedFramebufferfvFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> Ptr GLfloat -> IO ())
-glClearNamedFramebufferfvFunPtr = unsafePerformIO (getProcAddress "glClearNamedFramebufferfv")
-
-{-# NOINLINE glClearNamedFramebufferfvFunPtr #-}
-
-glClearNamedFramebufferiv :: MonadIO m => GLuint -> GLenum -> GLint -> Ptr GLint -> m ()
-glClearNamedFramebufferiv = ffiuintenumintPtrintIOV glClearNamedFramebufferivFunPtr
-
-glClearNamedFramebufferivFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> Ptr GLint -> IO ())
-glClearNamedFramebufferivFunPtr = unsafePerformIO (getProcAddress "glClearNamedFramebufferiv")
-
-{-# NOINLINE glClearNamedFramebufferivFunPtr #-}
-
-glClearNamedFramebufferuiv :: MonadIO m => GLuint -> GLenum -> GLint -> Ptr GLuint -> m ()
-glClearNamedFramebufferuiv = ffiuintenumintPtruintIOV glClearNamedFramebufferuivFunPtr
-
-glClearNamedFramebufferuivFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> Ptr GLuint -> IO ())
-glClearNamedFramebufferuivFunPtr = unsafePerformIO (getProcAddress "glClearNamedFramebufferuiv")
-
-{-# NOINLINE glClearNamedFramebufferuivFunPtr #-}
-
-glCompressedTextureSubImage1D :: MonadIO m => GLuint -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr () -> m ()
-glCompressedTextureSubImage1D = ffiuintintintsizeienumsizeiPtrVIOV glCompressedTextureSubImage1DFunPtr
-
-glCompressedTextureSubImage1DFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ())
-glCompressedTextureSubImage1DFunPtr = unsafePerformIO (getProcAddress "glCompressedTextureSubImage1D")
-
-{-# NOINLINE glCompressedTextureSubImage1DFunPtr #-}
-
-glCompressedTextureSubImage2D :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> m ()
-glCompressedTextureSubImage2D = ffiuintintintintsizeisizeienumsizeiPtrVIOV glCompressedTextureSubImage2DFunPtr
-
-glCompressedTextureSubImage2DFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ())
-glCompressedTextureSubImage2DFunPtr = unsafePerformIO (getProcAddress "glCompressedTextureSubImage2D")
-
-{-# NOINLINE glCompressedTextureSubImage2DFunPtr #-}
-
-glCompressedTextureSubImage3D :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> m ()
-glCompressedTextureSubImage3D = ffiuintintintintintsizeisizeisizeienumsizeiPtrVIOV glCompressedTextureSubImage3DFunPtr
-
-glCompressedTextureSubImage3DFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ())
-glCompressedTextureSubImage3DFunPtr = unsafePerformIO (getProcAddress "glCompressedTextureSubImage3D")
-
-{-# NOINLINE glCompressedTextureSubImage3DFunPtr #-}
-
-glCopyNamedBufferSubData :: MonadIO m => GLuint -> GLuint -> GLintptr -> GLintptr -> GLsizei -> m ()
-glCopyNamedBufferSubData = ffiuintuintintptrintptrsizeiIOV glCopyNamedBufferSubDataFunPtr
-
-glCopyNamedBufferSubDataFunPtr :: FunPtr (GLuint -> GLuint -> GLintptr -> GLintptr -> GLsizei -> IO ())
-glCopyNamedBufferSubDataFunPtr = unsafePerformIO (getProcAddress "glCopyNamedBufferSubData")
-
-{-# NOINLINE glCopyNamedBufferSubDataFunPtr #-}
-
-glCopyTextureSubImage1D :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> m ()
-glCopyTextureSubImage1D = ffiuintintintintintsizeiIOV glCopyTextureSubImage1DFunPtr
-
-glCopyTextureSubImage1DFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> IO ())
-glCopyTextureSubImage1DFunPtr = unsafePerformIO (getProcAddress "glCopyTextureSubImage1D")
-
-{-# NOINLINE glCopyTextureSubImage1DFunPtr #-}
-
-glCopyTextureSubImage2D :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()
-glCopyTextureSubImage2D = ffiuintintintintintintsizeisizeiIOV glCopyTextureSubImage2DFunPtr
-
-glCopyTextureSubImage2DFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ())
-glCopyTextureSubImage2DFunPtr = unsafePerformIO (getProcAddress "glCopyTextureSubImage2D")
-
-{-# NOINLINE glCopyTextureSubImage2DFunPtr #-}
-
-glCopyTextureSubImage3D :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()
-glCopyTextureSubImage3D = ffiuintintintintintintintsizeisizeiIOV glCopyTextureSubImage3DFunPtr
-
-glCopyTextureSubImage3DFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ())
-glCopyTextureSubImage3DFunPtr = unsafePerformIO (getProcAddress "glCopyTextureSubImage3D")
-
-{-# NOINLINE glCopyTextureSubImage3DFunPtr #-}
-
-glCreateBuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
-glCreateBuffers = ffisizeiPtruintIOV glCreateBuffersFunPtr
-
-glCreateBuffersFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
-glCreateBuffersFunPtr = unsafePerformIO (getProcAddress "glCreateBuffers")
-
-{-# NOINLINE glCreateBuffersFunPtr #-}
-
-glCreateFramebuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
-glCreateFramebuffers = ffisizeiPtruintIOV glCreateFramebuffersFunPtr
-
-glCreateFramebuffersFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
-glCreateFramebuffersFunPtr = unsafePerformIO (getProcAddress "glCreateFramebuffers")
-
-{-# NOINLINE glCreateFramebuffersFunPtr #-}
-
-glCreateProgramPipelines :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
-glCreateProgramPipelines = ffisizeiPtruintIOV glCreateProgramPipelinesFunPtr
-
-glCreateProgramPipelinesFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
-glCreateProgramPipelinesFunPtr = unsafePerformIO (getProcAddress "glCreateProgramPipelines")
-
-{-# NOINLINE glCreateProgramPipelinesFunPtr #-}
-
-glCreateQueries :: MonadIO m => GLenum -> GLsizei -> Ptr GLuint -> m ()
-glCreateQueries = ffienumsizeiPtruintIOV glCreateQueriesFunPtr
-
-glCreateQueriesFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr GLuint -> IO ())
-glCreateQueriesFunPtr = unsafePerformIO (getProcAddress "glCreateQueries")
-
-{-# NOINLINE glCreateQueriesFunPtr #-}
-
-glCreateRenderbuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
-glCreateRenderbuffers = ffisizeiPtruintIOV glCreateRenderbuffersFunPtr
-
-glCreateRenderbuffersFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
-glCreateRenderbuffersFunPtr = unsafePerformIO (getProcAddress "glCreateRenderbuffers")
-
-{-# NOINLINE glCreateRenderbuffersFunPtr #-}
-
-glCreateSamplers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
-glCreateSamplers = ffisizeiPtruintIOV glCreateSamplersFunPtr
-
-glCreateSamplersFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
-glCreateSamplersFunPtr = unsafePerformIO (getProcAddress "glCreateSamplers")
-
-{-# NOINLINE glCreateSamplersFunPtr #-}
-
-glCreateTextures :: MonadIO m => GLenum -> GLsizei -> Ptr GLuint -> m ()
-glCreateTextures = ffienumsizeiPtruintIOV glCreateTexturesFunPtr
-
-glCreateTexturesFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr GLuint -> IO ())
-glCreateTexturesFunPtr = unsafePerformIO (getProcAddress "glCreateTextures")
-
-{-# NOINLINE glCreateTexturesFunPtr #-}
-
-glCreateTransformFeedbacks :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
-glCreateTransformFeedbacks = ffisizeiPtruintIOV glCreateTransformFeedbacksFunPtr
-
-glCreateTransformFeedbacksFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
-glCreateTransformFeedbacksFunPtr = unsafePerformIO (getProcAddress "glCreateTransformFeedbacks")
-
-{-# NOINLINE glCreateTransformFeedbacksFunPtr #-}
-
-glCreateVertexArrays :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
-glCreateVertexArrays = ffisizeiPtruintIOV glCreateVertexArraysFunPtr
-
-glCreateVertexArraysFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
-glCreateVertexArraysFunPtr = unsafePerformIO (getProcAddress "glCreateVertexArrays")
-
-{-# NOINLINE glCreateVertexArraysFunPtr #-}
-
-glDisableVertexArrayAttrib :: MonadIO m => GLuint -> GLuint -> m ()
-glDisableVertexArrayAttrib = ffiuintuintIOV glDisableVertexArrayAttribFunPtr
-
-glDisableVertexArrayAttribFunPtr :: FunPtr (GLuint -> GLuint -> IO ())
-glDisableVertexArrayAttribFunPtr = unsafePerformIO (getProcAddress "glDisableVertexArrayAttrib")
-
-{-# NOINLINE glDisableVertexArrayAttribFunPtr #-}
-
-glEnableVertexArrayAttrib :: MonadIO m => GLuint -> GLuint -> m ()
-glEnableVertexArrayAttrib = ffiuintuintIOV glEnableVertexArrayAttribFunPtr
-
-glEnableVertexArrayAttribFunPtr :: FunPtr (GLuint -> GLuint -> IO ())
-glEnableVertexArrayAttribFunPtr = unsafePerformIO (getProcAddress "glEnableVertexArrayAttrib")
-
-{-# NOINLINE glEnableVertexArrayAttribFunPtr #-}
-
-glFlushMappedNamedBufferRange :: MonadIO m => GLuint -> GLintptr -> GLsizei -> m ()
-glFlushMappedNamedBufferRange = ffiuintintptrsizeiIOV glFlushMappedNamedBufferRangeFunPtr
-
-glFlushMappedNamedBufferRangeFunPtr :: FunPtr (GLuint -> GLintptr -> GLsizei -> IO ())
-glFlushMappedNamedBufferRangeFunPtr = unsafePerformIO (getProcAddress "glFlushMappedNamedBufferRange")
-
-{-# NOINLINE glFlushMappedNamedBufferRangeFunPtr #-}
-
-glGenerateTextureMipmap :: MonadIO m => GLuint -> m ()
-glGenerateTextureMipmap = ffiuintIOV glGenerateTextureMipmapFunPtr
-
-glGenerateTextureMipmapFunPtr :: FunPtr (GLuint -> IO ())
-glGenerateTextureMipmapFunPtr = unsafePerformIO (getProcAddress "glGenerateTextureMipmap")
-
-{-# NOINLINE glGenerateTextureMipmapFunPtr #-}
-
-glGetCompressedTextureImage :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr () -> m ()
-glGetCompressedTextureImage = ffiuintintsizeiPtrVIOV glGetCompressedTextureImageFunPtr
-
-glGetCompressedTextureImageFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr () -> IO ())
-glGetCompressedTextureImageFunPtr = unsafePerformIO (getProcAddress "glGetCompressedTextureImage")
-
-{-# NOINLINE glGetCompressedTextureImageFunPtr #-}
-
-glGetNamedBufferParameteri64v :: MonadIO m => GLuint -> GLenum -> Ptr GLint64 -> m ()
-glGetNamedBufferParameteri64v = ffiuintenumPtrint64IOV glGetNamedBufferParameteri64vFunPtr
-
-glGetNamedBufferParameteri64vFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint64 -> IO ())
-glGetNamedBufferParameteri64vFunPtr = unsafePerformIO (getProcAddress "glGetNamedBufferParameteri64v")
-
-{-# NOINLINE glGetNamedBufferParameteri64vFunPtr #-}
-
-glGetNamedBufferParameteriv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
-glGetNamedBufferParameteriv = ffiuintenumPtrintIOV glGetNamedBufferParameterivFunPtr
-
-glGetNamedBufferParameterivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
-glGetNamedBufferParameterivFunPtr = unsafePerformIO (getProcAddress "glGetNamedBufferParameteriv")
-
-{-# NOINLINE glGetNamedBufferParameterivFunPtr #-}
-
-glGetNamedBufferPointerv :: MonadIO m => GLuint -> GLenum -> Ptr () -> m ()
-glGetNamedBufferPointerv = ffiuintenumPtrVIOV glGetNamedBufferPointervFunPtr
-
-glGetNamedBufferPointervFunPtr :: FunPtr (GLuint -> GLenum -> Ptr () -> IO ())
-glGetNamedBufferPointervFunPtr = unsafePerformIO (getProcAddress "glGetNamedBufferPointerv")
-
-{-# NOINLINE glGetNamedBufferPointervFunPtr #-}
-
-glGetNamedBufferSubData :: MonadIO m => GLuint -> GLintptr -> GLsizei -> Ptr () -> m ()
-glGetNamedBufferSubData = ffiuintintptrsizeiPtrVIOV glGetNamedBufferSubDataFunPtr
-
-glGetNamedBufferSubDataFunPtr :: FunPtr (GLuint -> GLintptr -> GLsizei -> Ptr () -> IO ())
-glGetNamedBufferSubDataFunPtr = unsafePerformIO (getProcAddress "glGetNamedBufferSubData")
-
-{-# NOINLINE glGetNamedBufferSubDataFunPtr #-}
-
-glGetNamedFramebufferAttachmentParameteriv :: MonadIO m => GLuint -> GLenum -> GLenum -> Ptr GLint -> m ()
-glGetNamedFramebufferAttachmentParameteriv = ffiuintenumenumPtrintIOV glGetNamedFramebufferAttachmentParameterivFunPtr
-
-glGetNamedFramebufferAttachmentParameterivFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> Ptr GLint -> IO ())
-glGetNamedFramebufferAttachmentParameterivFunPtr = unsafePerformIO (getProcAddress "glGetNamedFramebufferAttachmentParameteriv")
-
-{-# NOINLINE glGetNamedFramebufferAttachmentParameterivFunPtr #-}
-
-glGetNamedFramebufferParameteriv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
-glGetNamedFramebufferParameteriv = ffiuintenumPtrintIOV glGetNamedFramebufferParameterivFunPtr
-
-glGetNamedFramebufferParameterivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
-glGetNamedFramebufferParameterivFunPtr = unsafePerformIO (getProcAddress "glGetNamedFramebufferParameteriv")
-
-{-# NOINLINE glGetNamedFramebufferParameterivFunPtr #-}
-
-glGetNamedRenderbufferParameteriv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
-glGetNamedRenderbufferParameteriv = ffiuintenumPtrintIOV glGetNamedRenderbufferParameterivFunPtr
-
-glGetNamedRenderbufferParameterivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
-glGetNamedRenderbufferParameterivFunPtr = unsafePerformIO (getProcAddress "glGetNamedRenderbufferParameteriv")
-
-{-# NOINLINE glGetNamedRenderbufferParameterivFunPtr #-}
-
-glGetQueryBufferObjecti64v :: MonadIO m => GLuint -> GLuint -> GLenum -> GLintptr -> m ()
-glGetQueryBufferObjecti64v = ffiuintuintenumintptrIOV glGetQueryBufferObjecti64vFunPtr
-
-glGetQueryBufferObjecti64vFunPtr :: FunPtr (GLuint -> GLuint -> GLenum -> GLintptr -> IO ())
-glGetQueryBufferObjecti64vFunPtr = unsafePerformIO (getProcAddress "glGetQueryBufferObjecti64v")
-
-{-# NOINLINE glGetQueryBufferObjecti64vFunPtr #-}
-
-glGetQueryBufferObjectiv :: MonadIO m => GLuint -> GLuint -> GLenum -> GLintptr -> m ()
-glGetQueryBufferObjectiv = ffiuintuintenumintptrIOV glGetQueryBufferObjectivFunPtr
-
-glGetQueryBufferObjectivFunPtr :: FunPtr (GLuint -> GLuint -> GLenum -> GLintptr -> IO ())
-glGetQueryBufferObjectivFunPtr = unsafePerformIO (getProcAddress "glGetQueryBufferObjectiv")
-
-{-# NOINLINE glGetQueryBufferObjectivFunPtr #-}
-
-glGetQueryBufferObjectui64v :: MonadIO m => GLuint -> GLuint -> GLenum -> GLintptr -> m ()
-glGetQueryBufferObjectui64v = ffiuintuintenumintptrIOV glGetQueryBufferObjectui64vFunPtr
-
-glGetQueryBufferObjectui64vFunPtr :: FunPtr (GLuint -> GLuint -> GLenum -> GLintptr -> IO ())
-glGetQueryBufferObjectui64vFunPtr = unsafePerformIO (getProcAddress "glGetQueryBufferObjectui64v")
-
-{-# NOINLINE glGetQueryBufferObjectui64vFunPtr #-}
-
-glGetQueryBufferObjectuiv :: MonadIO m => GLuint -> GLuint -> GLenum -> GLintptr -> m ()
-glGetQueryBufferObjectuiv = ffiuintuintenumintptrIOV glGetQueryBufferObjectuivFunPtr
-
-glGetQueryBufferObjectuivFunPtr :: FunPtr (GLuint -> GLuint -> GLenum -> GLintptr -> IO ())
-glGetQueryBufferObjectuivFunPtr = unsafePerformIO (getProcAddress "glGetQueryBufferObjectuiv")
-
-{-# NOINLINE glGetQueryBufferObjectuivFunPtr #-}
-
-glGetTextureImage :: MonadIO m => GLuint -> GLint -> GLenum -> GLenum -> GLsizei -> Ptr () -> m ()
-glGetTextureImage = ffiuintintenumenumsizeiPtrVIOV glGetTextureImageFunPtr
-
-glGetTextureImageFunPtr :: FunPtr (GLuint -> GLint -> GLenum -> GLenum -> GLsizei -> Ptr () -> IO ())
-glGetTextureImageFunPtr = unsafePerformIO (getProcAddress "glGetTextureImage")
-
-{-# NOINLINE glGetTextureImageFunPtr #-}
-
-glGetTextureLevelParameterfv :: MonadIO m => GLuint -> GLint -> GLenum -> Ptr GLfloat -> m ()
-glGetTextureLevelParameterfv = ffiuintintenumPtrfloatIOV glGetTextureLevelParameterfvFunPtr
-
-glGetTextureLevelParameterfvFunPtr :: FunPtr (GLuint -> GLint -> GLenum -> Ptr GLfloat -> IO ())
-glGetTextureLevelParameterfvFunPtr = unsafePerformIO (getProcAddress "glGetTextureLevelParameterfv")
-
-{-# NOINLINE glGetTextureLevelParameterfvFunPtr #-}
-
-glGetTextureLevelParameteriv :: MonadIO m => GLuint -> GLint -> GLenum -> Ptr GLint -> m ()
-glGetTextureLevelParameteriv = ffiuintintenumPtrintIOV glGetTextureLevelParameterivFunPtr
-
-glGetTextureLevelParameterivFunPtr :: FunPtr (GLuint -> GLint -> GLenum -> Ptr GLint -> IO ())
-glGetTextureLevelParameterivFunPtr = unsafePerformIO (getProcAddress "glGetTextureLevelParameteriv")
-
-{-# NOINLINE glGetTextureLevelParameterivFunPtr #-}
-
-glGetTextureParameterIiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
-glGetTextureParameterIiv = ffiuintenumPtrintIOV glGetTextureParameterIivFunPtr
-
-glGetTextureParameterIivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
-glGetTextureParameterIivFunPtr = unsafePerformIO (getProcAddress "glGetTextureParameterIiv")
-
-{-# NOINLINE glGetTextureParameterIivFunPtr #-}
-
-glGetTextureParameterIuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()
-glGetTextureParameterIuiv = ffiuintenumPtruintIOV glGetTextureParameterIuivFunPtr
-
-glGetTextureParameterIuivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLuint -> IO ())
-glGetTextureParameterIuivFunPtr = unsafePerformIO (getProcAddress "glGetTextureParameterIuiv")
-
-{-# NOINLINE glGetTextureParameterIuivFunPtr #-}
-
-glGetTextureParameterfv :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()
-glGetTextureParameterfv = ffiuintenumPtrfloatIOV glGetTextureParameterfvFunPtr
-
-glGetTextureParameterfvFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLfloat -> IO ())
-glGetTextureParameterfvFunPtr = unsafePerformIO (getProcAddress "glGetTextureParameterfv")
-
-{-# NOINLINE glGetTextureParameterfvFunPtr #-}
-
-glGetTextureParameteriv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
-glGetTextureParameteriv = ffiuintenumPtrintIOV glGetTextureParameterivFunPtr
-
-glGetTextureParameterivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
-glGetTextureParameterivFunPtr = unsafePerformIO (getProcAddress "glGetTextureParameteriv")
-
-{-# NOINLINE glGetTextureParameterivFunPtr #-}
-
-glGetTransformFeedbacki64_v :: MonadIO m => GLuint -> GLenum -> GLuint -> Ptr GLint64 -> m ()
-glGetTransformFeedbacki64_v = ffiuintenumuintPtrint64IOV glGetTransformFeedbacki64_vFunPtr
-
-glGetTransformFeedbacki64_vFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> Ptr GLint64 -> IO ())
-glGetTransformFeedbacki64_vFunPtr = unsafePerformIO (getProcAddress "glGetTransformFeedbacki64_v")
-
-{-# NOINLINE glGetTransformFeedbacki64_vFunPtr #-}
-
-glGetTransformFeedbacki_v :: MonadIO m => GLuint -> GLenum -> GLuint -> Ptr GLint -> m ()
-glGetTransformFeedbacki_v = ffiuintenumuintPtrintIOV glGetTransformFeedbacki_vFunPtr
-
-glGetTransformFeedbacki_vFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> Ptr GLint -> IO ())
-glGetTransformFeedbacki_vFunPtr = unsafePerformIO (getProcAddress "glGetTransformFeedbacki_v")
-
-{-# NOINLINE glGetTransformFeedbacki_vFunPtr #-}
-
-glGetTransformFeedbackiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
-glGetTransformFeedbackiv = ffiuintenumPtrintIOV glGetTransformFeedbackivFunPtr
-
-glGetTransformFeedbackivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
-glGetTransformFeedbackivFunPtr = unsafePerformIO (getProcAddress "glGetTransformFeedbackiv")
-
-{-# NOINLINE glGetTransformFeedbackivFunPtr #-}
-
-glGetVertexArrayIndexed64iv :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr GLint64 -> m ()
-glGetVertexArrayIndexed64iv = ffiuintuintenumPtrint64IOV glGetVertexArrayIndexed64ivFunPtr
-
-glGetVertexArrayIndexed64ivFunPtr :: FunPtr (GLuint -> GLuint -> GLenum -> Ptr GLint64 -> IO ())
-glGetVertexArrayIndexed64ivFunPtr = unsafePerformIO (getProcAddress "glGetVertexArrayIndexed64iv")
-
-{-# NOINLINE glGetVertexArrayIndexed64ivFunPtr #-}
-
-glGetVertexArrayIndexediv :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr GLint -> m ()
-glGetVertexArrayIndexediv = ffiuintuintenumPtrintIOV glGetVertexArrayIndexedivFunPtr
-
-glGetVertexArrayIndexedivFunPtr :: FunPtr (GLuint -> GLuint -> GLenum -> Ptr GLint -> IO ())
-glGetVertexArrayIndexedivFunPtr = unsafePerformIO (getProcAddress "glGetVertexArrayIndexediv")
-
-{-# NOINLINE glGetVertexArrayIndexedivFunPtr #-}
-
-glGetVertexArrayiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
-glGetVertexArrayiv = ffiuintenumPtrintIOV glGetVertexArrayivFunPtr
-
-glGetVertexArrayivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
-glGetVertexArrayivFunPtr = unsafePerformIO (getProcAddress "glGetVertexArrayiv")
-
-{-# NOINLINE glGetVertexArrayivFunPtr #-}
-
-glInvalidateNamedFramebufferData :: MonadIO m => GLuint -> GLsizei -> Ptr GLenum -> m ()
-glInvalidateNamedFramebufferData = ffiuintsizeiPtrenumIOV glInvalidateNamedFramebufferDataFunPtr
-
-glInvalidateNamedFramebufferDataFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLenum -> IO ())
-glInvalidateNamedFramebufferDataFunPtr = unsafePerformIO (getProcAddress "glInvalidateNamedFramebufferData")
-
-{-# NOINLINE glInvalidateNamedFramebufferDataFunPtr #-}
-
-glInvalidateNamedFramebufferSubData :: MonadIO m => GLuint -> GLsizei -> Ptr GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> m ()
-glInvalidateNamedFramebufferSubData = ffiuintsizeiPtrenumintintsizeisizeiIOV glInvalidateNamedFramebufferSubDataFunPtr
-
-glInvalidateNamedFramebufferSubDataFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> IO ())
-glInvalidateNamedFramebufferSubDataFunPtr = unsafePerformIO (getProcAddress "glInvalidateNamedFramebufferSubData")
-
-{-# NOINLINE glInvalidateNamedFramebufferSubDataFunPtr #-}
-
-glMapNamedBuffer :: MonadIO m => GLuint -> GLenum -> m (Ptr ())
-glMapNamedBuffer = ffiuintenumIOPtrV glMapNamedBufferFunPtr
-
-glMapNamedBufferFunPtr :: FunPtr (GLuint -> GLenum -> IO (Ptr ()))
-glMapNamedBufferFunPtr = unsafePerformIO (getProcAddress "glMapNamedBuffer")
-
-{-# NOINLINE glMapNamedBufferFunPtr #-}
-
-glMapNamedBufferRange :: MonadIO m => GLuint -> GLintptr -> GLsizei -> GLbitfield -> m (Ptr ())
-glMapNamedBufferRange = ffiuintintptrsizeibitfieldIOPtrV glMapNamedBufferRangeFunPtr
-
-glMapNamedBufferRangeFunPtr :: FunPtr (GLuint -> GLintptr -> GLsizei -> GLbitfield -> IO (Ptr ()))
-glMapNamedBufferRangeFunPtr = unsafePerformIO (getProcAddress "glMapNamedBufferRange")
-
-{-# NOINLINE glMapNamedBufferRangeFunPtr #-}
-
-glNamedBufferData :: MonadIO m => GLuint -> GLsizei -> Ptr () -> GLenum -> m ()
-glNamedBufferData = ffiuintsizeiPtrVenumIOV glNamedBufferDataFunPtr
-
-glNamedBufferDataFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr () -> GLenum -> IO ())
-glNamedBufferDataFunPtr = unsafePerformIO (getProcAddress "glNamedBufferData")
-
-{-# NOINLINE glNamedBufferDataFunPtr #-}
-
-glNamedBufferStorage :: MonadIO m => GLuint -> GLsizei -> Ptr () -> GLbitfield -> m ()
-glNamedBufferStorage = ffiuintsizeiPtrVbitfieldIOV glNamedBufferStorageFunPtr
-
-glNamedBufferStorageFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr () -> GLbitfield -> IO ())
-glNamedBufferStorageFunPtr = unsafePerformIO (getProcAddress "glNamedBufferStorage")
-
-{-# NOINLINE glNamedBufferStorageFunPtr #-}
-
-glNamedBufferSubData :: MonadIO m => GLuint -> GLintptr -> GLsizei -> Ptr () -> m ()
-glNamedBufferSubData = ffiuintintptrsizeiPtrVIOV glNamedBufferSubDataFunPtr
-
-glNamedBufferSubDataFunPtr :: FunPtr (GLuint -> GLintptr -> GLsizei -> Ptr () -> IO ())
-glNamedBufferSubDataFunPtr = unsafePerformIO (getProcAddress "glNamedBufferSubData")
-
-{-# NOINLINE glNamedBufferSubDataFunPtr #-}
-
-glNamedFramebufferDrawBuffer :: MonadIO m => GLuint -> GLenum -> m ()
-glNamedFramebufferDrawBuffer = ffiuintenumIOV glNamedFramebufferDrawBufferFunPtr
-
-glNamedFramebufferDrawBufferFunPtr :: FunPtr (GLuint -> GLenum -> IO ())
-glNamedFramebufferDrawBufferFunPtr = unsafePerformIO (getProcAddress "glNamedFramebufferDrawBuffer")
-
-{-# NOINLINE glNamedFramebufferDrawBufferFunPtr #-}
-
-glNamedFramebufferDrawBuffers :: MonadIO m => GLuint -> GLsizei -> Ptr GLenum -> m ()
-glNamedFramebufferDrawBuffers = ffiuintsizeiPtrenumIOV glNamedFramebufferDrawBuffersFunPtr
-
-glNamedFramebufferDrawBuffersFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLenum -> IO ())
-glNamedFramebufferDrawBuffersFunPtr = unsafePerformIO (getProcAddress "glNamedFramebufferDrawBuffers")
-
-{-# NOINLINE glNamedFramebufferDrawBuffersFunPtr #-}
-
-glNamedFramebufferParameteri :: MonadIO m => GLuint -> GLenum -> GLint -> m ()
-glNamedFramebufferParameteri = ffiuintenumintIOV glNamedFramebufferParameteriFunPtr
-
-glNamedFramebufferParameteriFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> IO ())
-glNamedFramebufferParameteriFunPtr = unsafePerformIO (getProcAddress "glNamedFramebufferParameteri")
-
-{-# NOINLINE glNamedFramebufferParameteriFunPtr #-}
-
-glNamedFramebufferReadBuffer :: MonadIO m => GLuint -> GLenum -> m ()
-glNamedFramebufferReadBuffer = ffiuintenumIOV glNamedFramebufferReadBufferFunPtr
-
-glNamedFramebufferReadBufferFunPtr :: FunPtr (GLuint -> GLenum -> IO ())
-glNamedFramebufferReadBufferFunPtr = unsafePerformIO (getProcAddress "glNamedFramebufferReadBuffer")
-
-{-# NOINLINE glNamedFramebufferReadBufferFunPtr #-}
-
-glNamedFramebufferRenderbuffer :: MonadIO m => GLuint -> GLenum -> GLenum -> GLuint -> m ()
-glNamedFramebufferRenderbuffer = ffiuintenumenumuintIOV glNamedFramebufferRenderbufferFunPtr
-
-glNamedFramebufferRenderbufferFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> GLuint -> IO ())
-glNamedFramebufferRenderbufferFunPtr = unsafePerformIO (getProcAddress "glNamedFramebufferRenderbuffer")
-
-{-# NOINLINE glNamedFramebufferRenderbufferFunPtr #-}
-
-glNamedFramebufferTexture :: MonadIO m => GLuint -> GLenum -> GLuint -> GLint -> m ()
-glNamedFramebufferTexture = ffiuintenumuintintIOV glNamedFramebufferTextureFunPtr
-
-glNamedFramebufferTextureFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> GLint -> IO ())
-glNamedFramebufferTextureFunPtr = unsafePerformIO (getProcAddress "glNamedFramebufferTexture")
-
-{-# NOINLINE glNamedFramebufferTextureFunPtr #-}
-
-glNamedFramebufferTextureLayer :: MonadIO m => GLuint -> GLenum -> GLuint -> GLint -> GLint -> m ()
-glNamedFramebufferTextureLayer = ffiuintenumuintintintIOV glNamedFramebufferTextureLayerFunPtr
-
-glNamedFramebufferTextureLayerFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> GLint -> GLint -> IO ())
-glNamedFramebufferTextureLayerFunPtr = unsafePerformIO (getProcAddress "glNamedFramebufferTextureLayer")
-
-{-# NOINLINE glNamedFramebufferTextureLayerFunPtr #-}
-
-glNamedRenderbufferStorage :: MonadIO m => GLuint -> GLenum -> GLsizei -> GLsizei -> m ()
-glNamedRenderbufferStorage = ffiuintenumsizeisizeiIOV glNamedRenderbufferStorageFunPtr
-
-glNamedRenderbufferStorageFunPtr :: FunPtr (GLuint -> GLenum -> GLsizei -> GLsizei -> IO ())
-glNamedRenderbufferStorageFunPtr = unsafePerformIO (getProcAddress "glNamedRenderbufferStorage")
-
-{-# NOINLINE glNamedRenderbufferStorageFunPtr #-}
-
-glNamedRenderbufferStorageMultisample :: MonadIO m => GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()
-glNamedRenderbufferStorageMultisample = ffiuintsizeienumsizeisizeiIOV glNamedRenderbufferStorageMultisampleFunPtr
-
-glNamedRenderbufferStorageMultisampleFunPtr :: FunPtr (GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> IO ())
-glNamedRenderbufferStorageMultisampleFunPtr = unsafePerformIO (getProcAddress "glNamedRenderbufferStorageMultisample")
-
-{-# NOINLINE glNamedRenderbufferStorageMultisampleFunPtr #-}
-
-glTextureBuffer :: MonadIO m => GLuint -> GLenum -> GLuint -> m ()
-glTextureBuffer = ffiuintenumuintIOV glTextureBufferFunPtr
-
-glTextureBufferFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> IO ())
-glTextureBufferFunPtr = unsafePerformIO (getProcAddress "glTextureBuffer")
-
-{-# NOINLINE glTextureBufferFunPtr #-}
-
-glTextureBufferRange :: MonadIO m => GLuint -> GLenum -> GLuint -> GLintptr -> GLsizei -> m ()
-glTextureBufferRange = ffiuintenumuintintptrsizeiIOV glTextureBufferRangeFunPtr
-
-glTextureBufferRangeFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> GLintptr -> GLsizei -> IO ())
-glTextureBufferRangeFunPtr = unsafePerformIO (getProcAddress "glTextureBufferRange")
-
-{-# NOINLINE glTextureBufferRangeFunPtr #-}
-
-glTextureParameterIiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
-glTextureParameterIiv = ffiuintenumPtrintIOV glTextureParameterIivFunPtr
-
-glTextureParameterIivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
-glTextureParameterIivFunPtr = unsafePerformIO (getProcAddress "glTextureParameterIiv")
-
-{-# NOINLINE glTextureParameterIivFunPtr #-}
-
-glTextureParameterIuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()
-glTextureParameterIuiv = ffiuintenumPtruintIOV glTextureParameterIuivFunPtr
-
-glTextureParameterIuivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLuint -> IO ())
-glTextureParameterIuivFunPtr = unsafePerformIO (getProcAddress "glTextureParameterIuiv")
-
-{-# NOINLINE glTextureParameterIuivFunPtr #-}
-
-glTextureParameterf :: MonadIO m => GLuint -> GLenum -> GLfloat -> m ()
-glTextureParameterf = ffiuintenumfloatIOV glTextureParameterfFunPtr
-
-glTextureParameterfFunPtr :: FunPtr (GLuint -> GLenum -> GLfloat -> IO ())
-glTextureParameterfFunPtr = unsafePerformIO (getProcAddress "glTextureParameterf")
-
-{-# NOINLINE glTextureParameterfFunPtr #-}
-
-glTextureParameterfv :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()
-glTextureParameterfv = ffiuintenumPtrfloatIOV glTextureParameterfvFunPtr
-
-glTextureParameterfvFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLfloat -> IO ())
-glTextureParameterfvFunPtr = unsafePerformIO (getProcAddress "glTextureParameterfv")
-
-{-# NOINLINE glTextureParameterfvFunPtr #-}
-
-glTextureParameteri :: MonadIO m => GLuint -> GLenum -> GLint -> m ()
-glTextureParameteri = ffiuintenumintIOV glTextureParameteriFunPtr
-
-glTextureParameteriFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> IO ())
-glTextureParameteriFunPtr = unsafePerformIO (getProcAddress "glTextureParameteri")
-
-{-# NOINLINE glTextureParameteriFunPtr #-}
-
-glTextureParameteriv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
-glTextureParameteriv = ffiuintenumPtrintIOV glTextureParameterivFunPtr
-
-glTextureParameterivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
-glTextureParameterivFunPtr = unsafePerformIO (getProcAddress "glTextureParameteriv")
-
-{-# NOINLINE glTextureParameterivFunPtr #-}
-
-glTextureStorage1D :: MonadIO m => GLuint -> GLsizei -> GLenum -> GLsizei -> m ()
-glTextureStorage1D = ffiuintsizeienumsizeiIOV glTextureStorage1DFunPtr
-
-glTextureStorage1DFunPtr :: FunPtr (GLuint -> GLsizei -> GLenum -> GLsizei -> IO ())
-glTextureStorage1DFunPtr = unsafePerformIO (getProcAddress "glTextureStorage1D")
-
-{-# NOINLINE glTextureStorage1DFunPtr #-}
-
-glTextureStorage2D :: MonadIO m => GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()
-glTextureStorage2D = ffiuintsizeienumsizeisizeiIOV glTextureStorage2DFunPtr
-
-glTextureStorage2DFunPtr :: FunPtr (GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> IO ())
-glTextureStorage2DFunPtr = unsafePerformIO (getProcAddress "glTextureStorage2D")
-
-{-# NOINLINE glTextureStorage2DFunPtr #-}
-
-glTextureStorage2DMultisample :: MonadIO m => GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> m ()
-glTextureStorage2DMultisample = ffiuintsizeienumsizeisizeibooleanIOV glTextureStorage2DMultisampleFunPtr
-
-glTextureStorage2DMultisampleFunPtr :: FunPtr (GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> IO ())
-glTextureStorage2DMultisampleFunPtr = unsafePerformIO (getProcAddress "glTextureStorage2DMultisample")
-
-{-# NOINLINE glTextureStorage2DMultisampleFunPtr #-}
-
-glTextureStorage3D :: MonadIO m => GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> m ()
-glTextureStorage3D = ffiuintsizeienumsizeisizeisizeiIOV glTextureStorage3DFunPtr
-
-glTextureStorage3DFunPtr :: FunPtr (GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> IO ())
-glTextureStorage3DFunPtr = unsafePerformIO (getProcAddress "glTextureStorage3D")
-
-{-# NOINLINE glTextureStorage3DFunPtr #-}
-
-glTextureStorage3DMultisample :: MonadIO m => GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> m ()
-glTextureStorage3DMultisample = ffiuintsizeienumsizeisizeisizeibooleanIOV glTextureStorage3DMultisampleFunPtr
-
-glTextureStorage3DMultisampleFunPtr :: FunPtr (GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> IO ())
-glTextureStorage3DMultisampleFunPtr = unsafePerformIO (getProcAddress "glTextureStorage3DMultisample")
-
-{-# NOINLINE glTextureStorage3DMultisampleFunPtr #-}
-
-glTextureSubImage1D :: MonadIO m => GLuint -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
-glTextureSubImage1D = ffiuintintintsizeienumenumPtrVIOV glTextureSubImage1DFunPtr
-
-glTextureSubImage1DFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ())
-glTextureSubImage1DFunPtr = unsafePerformIO (getProcAddress "glTextureSubImage1D")
-
-{-# NOINLINE glTextureSubImage1DFunPtr #-}
-
-glTextureSubImage2D :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
-glTextureSubImage2D = ffiuintintintintsizeisizeienumenumPtrVIOV glTextureSubImage2DFunPtr
-
-glTextureSubImage2DFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ())
-glTextureSubImage2DFunPtr = unsafePerformIO (getProcAddress "glTextureSubImage2D")
-
-{-# NOINLINE glTextureSubImage2DFunPtr #-}
-
-glTextureSubImage3D :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
-glTextureSubImage3D = ffiuintintintintintsizeisizeisizeienumenumPtrVIOV glTextureSubImage3DFunPtr
-
-glTextureSubImage3DFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ())
-glTextureSubImage3DFunPtr = unsafePerformIO (getProcAddress "glTextureSubImage3D")
-
-{-# NOINLINE glTextureSubImage3DFunPtr #-}
-
-glTransformFeedbackBufferBase :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()
-glTransformFeedbackBufferBase = ffiuintuintuintIOV glTransformFeedbackBufferBaseFunPtr
-
-glTransformFeedbackBufferBaseFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> IO ())
-glTransformFeedbackBufferBaseFunPtr = unsafePerformIO (getProcAddress "glTransformFeedbackBufferBase")
-
-{-# NOINLINE glTransformFeedbackBufferBaseFunPtr #-}
-
-glTransformFeedbackBufferRange :: MonadIO m => GLuint -> GLuint -> GLuint -> GLintptr -> GLsizei -> m ()
-glTransformFeedbackBufferRange = ffiuintuintuintintptrsizeiIOV glTransformFeedbackBufferRangeFunPtr
-
-glTransformFeedbackBufferRangeFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> GLintptr -> GLsizei -> IO ())
-glTransformFeedbackBufferRangeFunPtr = unsafePerformIO (getProcAddress "glTransformFeedbackBufferRange")
-
-{-# NOINLINE glTransformFeedbackBufferRangeFunPtr #-}
-
-glUnmapNamedBuffer :: MonadIO m => GLuint -> m GLboolean
-glUnmapNamedBuffer = ffiuintIOboolean glUnmapNamedBufferFunPtr
-
-glUnmapNamedBufferFunPtr :: FunPtr (GLuint -> IO GLboolean)
-glUnmapNamedBufferFunPtr = unsafePerformIO (getProcAddress "glUnmapNamedBuffer")
-
-{-# NOINLINE glUnmapNamedBufferFunPtr #-}
-
-glVertexArrayAttribBinding :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()
-glVertexArrayAttribBinding = ffiuintuintuintIOV glVertexArrayAttribBindingFunPtr
-
-glVertexArrayAttribBindingFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> IO ())
-glVertexArrayAttribBindingFunPtr = unsafePerformIO (getProcAddress "glVertexArrayAttribBinding")
-
-{-# NOINLINE glVertexArrayAttribBindingFunPtr #-}
-
-glVertexArrayAttribFormat :: MonadIO m => GLuint -> GLuint -> GLint -> GLenum -> GLboolean -> GLuint -> m ()
-glVertexArrayAttribFormat = ffiuintuintintenumbooleanuintIOV glVertexArrayAttribFormatFunPtr
-
-glVertexArrayAttribFormatFunPtr :: FunPtr (GLuint -> GLuint -> GLint -> GLenum -> GLboolean -> GLuint -> IO ())
-glVertexArrayAttribFormatFunPtr = unsafePerformIO (getProcAddress "glVertexArrayAttribFormat")
-
-{-# NOINLINE glVertexArrayAttribFormatFunPtr #-}
-
-glVertexArrayAttribIFormat :: MonadIO m => GLuint -> GLuint -> GLint -> GLenum -> GLuint -> m ()
-glVertexArrayAttribIFormat = ffiuintuintintenumuintIOV glVertexArrayAttribIFormatFunPtr
-
-glVertexArrayAttribIFormatFunPtr :: FunPtr (GLuint -> GLuint -> GLint -> GLenum -> GLuint -> IO ())
-glVertexArrayAttribIFormatFunPtr = unsafePerformIO (getProcAddress "glVertexArrayAttribIFormat")
-
-{-# NOINLINE glVertexArrayAttribIFormatFunPtr #-}
-
-glVertexArrayAttribLFormat :: MonadIO m => GLuint -> GLuint -> GLint -> GLenum -> GLuint -> m ()
-glVertexArrayAttribLFormat = ffiuintuintintenumuintIOV glVertexArrayAttribLFormatFunPtr
-
-glVertexArrayAttribLFormatFunPtr :: FunPtr (GLuint -> GLuint -> GLint -> GLenum -> GLuint -> IO ())
-glVertexArrayAttribLFormatFunPtr = unsafePerformIO (getProcAddress "glVertexArrayAttribLFormat")
-
-{-# NOINLINE glVertexArrayAttribLFormatFunPtr #-}
-
-glVertexArrayBindingDivisor :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()
-glVertexArrayBindingDivisor = ffiuintuintuintIOV glVertexArrayBindingDivisorFunPtr
-
-glVertexArrayBindingDivisorFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> IO ())
-glVertexArrayBindingDivisorFunPtr = unsafePerformIO (getProcAddress "glVertexArrayBindingDivisor")
-
-{-# NOINLINE glVertexArrayBindingDivisorFunPtr #-}
-
-glVertexArrayElementBuffer :: MonadIO m => GLuint -> GLuint -> m ()
-glVertexArrayElementBuffer = ffiuintuintIOV glVertexArrayElementBufferFunPtr
-
-glVertexArrayElementBufferFunPtr :: FunPtr (GLuint -> GLuint -> IO ())
-glVertexArrayElementBufferFunPtr = unsafePerformIO (getProcAddress "glVertexArrayElementBuffer")
-
-{-# NOINLINE glVertexArrayElementBufferFunPtr #-}
-
-glVertexArrayVertexBuffer :: MonadIO m => GLuint -> GLuint -> GLuint -> GLintptr -> GLsizei -> m ()
-glVertexArrayVertexBuffer = ffiuintuintuintintptrsizeiIOV glVertexArrayVertexBufferFunPtr
-
-glVertexArrayVertexBufferFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> GLintptr -> GLsizei -> IO ())
-glVertexArrayVertexBufferFunPtr = unsafePerformIO (getProcAddress "glVertexArrayVertexBuffer")
-
-{-# NOINLINE glVertexArrayVertexBufferFunPtr #-}
-
-glVertexArrayVertexBuffers :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLuint -> Ptr GLintptr -> Ptr GLsizei -> m ()
-glVertexArrayVertexBuffers = ffiuintuintsizeiPtruintPtrintptrPtrsizeiIOV glVertexArrayVertexBuffersFunPtr
-
-glVertexArrayVertexBuffersFunPtr :: FunPtr (GLuint -> GLuint -> GLsizei -> Ptr GLuint -> Ptr GLintptr -> Ptr GLsizei -> IO ())
-glVertexArrayVertexBuffersFunPtr = unsafePerformIO (getProcAddress "glVertexArrayVertexBuffers")
-
-{-# NOINLINE glVertexArrayVertexBuffersFunPtr #-}
-
-pattern GL_QUERY_TARGET = 0x82EA
-
-pattern GL_TEXTURE_BINDING = 0x82EB
-
-pattern GL_TEXTURE_BINDING_1D = 0x8068
-
-pattern GL_TEXTURE_BINDING_1D_ARRAY = 0x8C1C
-
-pattern GL_TEXTURE_BINDING_2D = 0x8069
-
-pattern GL_TEXTURE_BINDING_2D_ARRAY = 0x8C1D
-
-pattern GL_TEXTURE_BINDING_2D_MULTISAMPLE = 0x9104
-
-pattern GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY = 0x9105
-
-pattern GL_TEXTURE_BINDING_3D = 0x806A
-
-pattern GL_TEXTURE_BINDING_BUFFER = 0x8C2C
-
-pattern GL_TEXTURE_BINDING_CUBE_MAP = 0x8514
-
-pattern GL_TEXTURE_BINDING_CUBE_MAP_ARRAY = 0x900A
-
-pattern GL_TEXTURE_BINDING_RECTANGLE = 0x84F6
-
-pattern GL_TEXTURE_TARGET = 0x1006
-
-glDrawElementsBaseVertex :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr () -> GLint -> m ()
-glDrawElementsBaseVertex = ffienumsizeienumPtrVintIOV glDrawElementsBaseVertexFunPtr
-
-glDrawElementsBaseVertexFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> Ptr () -> GLint -> IO ())
-glDrawElementsBaseVertexFunPtr = unsafePerformIO (getProcAddress "glDrawElementsBaseVertex")
-
-{-# NOINLINE glDrawElementsBaseVertexFunPtr #-}
-
-glDrawElementsInstancedBaseVertex :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> GLint -> m ()
-glDrawElementsInstancedBaseVertex = ffienumsizeienumPtrVsizeiintIOV glDrawElementsInstancedBaseVertexFunPtr
-
-glDrawElementsInstancedBaseVertexFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> GLint -> IO ())
-glDrawElementsInstancedBaseVertexFunPtr = unsafePerformIO (getProcAddress "glDrawElementsInstancedBaseVertex")
-
-{-# NOINLINE glDrawElementsInstancedBaseVertexFunPtr #-}
-
-glDrawRangeElementsBaseVertex :: MonadIO m => GLenum -> GLuint -> GLuint -> GLsizei -> GLenum -> Ptr () -> GLint -> m ()
-glDrawRangeElementsBaseVertex = ffienumuintuintsizeienumPtrVintIOV glDrawRangeElementsBaseVertexFunPtr
-
-glDrawRangeElementsBaseVertexFunPtr :: FunPtr (GLenum -> GLuint -> GLuint -> GLsizei -> GLenum -> Ptr () -> GLint -> IO ())
-glDrawRangeElementsBaseVertexFunPtr = unsafePerformIO (getProcAddress "glDrawRangeElementsBaseVertex")
-
-{-# NOINLINE glDrawRangeElementsBaseVertexFunPtr #-}
-
-glMultiDrawElementsBaseVertex :: MonadIO m => GLenum -> Ptr GLsizei -> GLenum -> Ptr () -> GLsizei -> Ptr GLint -> m ()
-glMultiDrawElementsBaseVertex = ffienumPtrsizeienumPtrVsizeiPtrintIOV glMultiDrawElementsBaseVertexFunPtr
-
-glMultiDrawElementsBaseVertexFunPtr :: FunPtr (GLenum -> Ptr GLsizei -> GLenum -> Ptr () -> GLsizei -> Ptr GLint -> IO ())
-glMultiDrawElementsBaseVertexFunPtr = unsafePerformIO (getProcAddress "glMultiDrawElementsBaseVertex")
-
-{-# NOINLINE glMultiDrawElementsBaseVertexFunPtr #-}
-
-glDrawArraysIndirect :: MonadIO m => GLenum -> Ptr () -> m ()
-glDrawArraysIndirect = ffienumPtrVIOV glDrawArraysIndirectFunPtr
-
-glDrawArraysIndirectFunPtr :: FunPtr (GLenum -> Ptr () -> IO ())
-glDrawArraysIndirectFunPtr = unsafePerformIO (getProcAddress "glDrawArraysIndirect")
-
-{-# NOINLINE glDrawArraysIndirectFunPtr #-}
-
-glDrawElementsIndirect :: MonadIO m => GLenum -> GLenum -> Ptr () -> m ()
-glDrawElementsIndirect = ffienumenumPtrVIOV glDrawElementsIndirectFunPtr
-
-glDrawElementsIndirectFunPtr :: FunPtr (GLenum -> GLenum -> Ptr () -> IO ())
-glDrawElementsIndirectFunPtr = unsafePerformIO (getProcAddress "glDrawElementsIndirect")
-
-{-# NOINLINE glDrawElementsIndirectFunPtr #-}
-
-pattern GL_DRAW_INDIRECT_BUFFER = 0x8F3F
-
-pattern GL_DRAW_INDIRECT_BUFFER_BINDING = 0x8F43
-
-glClearDepthf :: MonadIO m => GLfloat -> m ()
-glClearDepthf = ffifloatIOV glClearDepthfFunPtr
-
-glClearDepthfFunPtr :: FunPtr (GLfloat -> IO ())
-glClearDepthfFunPtr = unsafePerformIO (getProcAddress "glClearDepthf")
-
-{-# NOINLINE glClearDepthfFunPtr #-}
-
-glDepthRangef :: MonadIO m => GLfloat -> GLfloat -> m ()
-glDepthRangef = ffifloatfloatIOV glDepthRangefFunPtr
-
-glDepthRangefFunPtr :: FunPtr (GLfloat -> GLfloat -> IO ())
-glDepthRangefFunPtr = unsafePerformIO (getProcAddress "glDepthRangef")
-
-{-# NOINLINE glDepthRangefFunPtr #-}
-
-glGetShaderPrecisionFormat :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> Ptr GLint -> m ()
-glGetShaderPrecisionFormat = ffienumenumPtrintPtrintIOV glGetShaderPrecisionFormatFunPtr
-
-glGetShaderPrecisionFormatFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> Ptr GLint -> IO ())
-glGetShaderPrecisionFormatFunPtr = unsafePerformIO (getProcAddress "glGetShaderPrecisionFormat")
-
-{-# NOINLINE glGetShaderPrecisionFormatFunPtr #-}
-
-glReleaseShaderCompiler :: MonadIO m => m ()
-glReleaseShaderCompiler = ffiIOV glReleaseShaderCompilerFunPtr
-
-glReleaseShaderCompilerFunPtr :: FunPtr (IO ())
-glReleaseShaderCompilerFunPtr = unsafePerformIO (getProcAddress "glReleaseShaderCompiler")
-
-{-# NOINLINE glReleaseShaderCompilerFunPtr #-}
-
-glShaderBinary :: MonadIO m => GLsizei -> Ptr GLuint -> GLenum -> Ptr () -> GLsizei -> m ()
-glShaderBinary = ffisizeiPtruintenumPtrVsizeiIOV glShaderBinaryFunPtr
-
-glShaderBinaryFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> GLenum -> Ptr () -> GLsizei -> IO ())
-glShaderBinaryFunPtr = unsafePerformIO (getProcAddress "glShaderBinary")
-
-{-# NOINLINE glShaderBinaryFunPtr #-}
-
-pattern GL_FIXED = 0x140C
-
-pattern GL_HIGH_FLOAT = 0x8DF2
-
-pattern GL_HIGH_INT = 0x8DF5
-
-pattern GL_IMPLEMENTATION_COLOR_READ_FORMAT = 0x8B9B
-
-pattern GL_IMPLEMENTATION_COLOR_READ_TYPE = 0x8B9A
-
-pattern GL_LOW_FLOAT = 0x8DF0
-
-pattern GL_LOW_INT = 0x8DF3
-
-pattern GL_MAX_FRAGMENT_UNIFORM_VECTORS = 0x8DFD
-
-pattern GL_MAX_VARYING_VECTORS = 0x8DFC
-
-pattern GL_MAX_VERTEX_UNIFORM_VECTORS = 0x8DFB
-
-pattern GL_MEDIUM_FLOAT = 0x8DF1
-
-pattern GL_MEDIUM_INT = 0x8DF4
-
-pattern GL_NUM_SHADER_BINARY_FORMATS = 0x8DF9
-
-pattern GL_RGB565 = 0x8D62
-
-pattern GL_SHADER_BINARY_FORMATS = 0x8DF8
-
-pattern GL_SHADER_COMPILER = 0x8DFA
-
-glMemoryBarrierByRegion :: MonadIO m => GLbitfield -> m ()
-glMemoryBarrierByRegion = ffibitfieldIOV glMemoryBarrierByRegionFunPtr
-
-glMemoryBarrierByRegionFunPtr :: FunPtr (GLbitfield -> IO ())
-glMemoryBarrierByRegionFunPtr = unsafePerformIO (getProcAddress "glMemoryBarrierByRegion")
-
-{-# NOINLINE glMemoryBarrierByRegionFunPtr #-}
-
-pattern GL_BACK = 0x0405
-
-pattern GL_ANY_SAMPLES_PASSED_CONSERVATIVE = 0x8D6A
-
-pattern GL_COMPRESSED_R11_EAC = 0x9270
-
-pattern GL_COMPRESSED_RG11_EAC = 0x9272
-
-pattern GL_COMPRESSED_RGB8_ETC2 = 0x9274
-
-pattern GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 = 0x9276
-
-pattern GL_COMPRESSED_RGBA8_ETC2_EAC = 0x9278
-
-pattern GL_COMPRESSED_SIGNED_R11_EAC = 0x9271
-
-pattern GL_COMPRESSED_SIGNED_RG11_EAC = 0x9273
-
-pattern GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC = 0x9279
-
-pattern GL_COMPRESSED_SRGB8_ETC2 = 0x9275
-
-pattern GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 = 0x9277
-
-pattern GL_MAX_ELEMENT_INDEX = 0x8D6B
-
-pattern GL_PRIMITIVE_RESTART_FIXED_INDEX = 0x8D69
-
-pattern GL_LOCATION_COMPONENT = 0x934A
-
-pattern GL_TRANSFORM_FEEDBACK_BUFFER = 0x8C8E
-
-pattern GL_TRANSFORM_FEEDBACK_BUFFER_INDEX = 0x934B
-
-pattern GL_TRANSFORM_FEEDBACK_BUFFER_STRIDE = 0x934C
-
-pattern GL_MAX_UNIFORM_LOCATIONS = 0x826E
-
-glBindProgramARB :: MonadIO m => GLenum -> GLuint -> m ()
-glBindProgramARB = ffienumuintIOV glBindProgramARBFunPtr
-
-glBindProgramARBFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
-glBindProgramARBFunPtr = unsafePerformIO (getProcAddress "glBindProgramARB")
-
-{-# NOINLINE glBindProgramARBFunPtr #-}
-
-glDeleteProgramsARB :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
-glDeleteProgramsARB = ffisizeiPtruintIOV glDeleteProgramsARBFunPtr
-
-glDeleteProgramsARBFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
-glDeleteProgramsARBFunPtr = unsafePerformIO (getProcAddress "glDeleteProgramsARB")
-
-{-# NOINLINE glDeleteProgramsARBFunPtr #-}
-
-glGenProgramsARB :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
-glGenProgramsARB = ffisizeiPtruintIOV glGenProgramsARBFunPtr
-
-glGenProgramsARBFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
-glGenProgramsARBFunPtr = unsafePerformIO (getProcAddress "glGenProgramsARB")
-
-{-# NOINLINE glGenProgramsARBFunPtr #-}
-
-glGetProgramEnvParameterdvARB :: MonadIO m => GLenum -> GLuint -> Ptr GLdouble -> m ()
-glGetProgramEnvParameterdvARB = ffienumuintPtrdoubleIOV glGetProgramEnvParameterdvARBFunPtr
-
-glGetProgramEnvParameterdvARBFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLdouble -> IO ())
-glGetProgramEnvParameterdvARBFunPtr = unsafePerformIO (getProcAddress "glGetProgramEnvParameterdvARB")
-
-{-# NOINLINE glGetProgramEnvParameterdvARBFunPtr #-}
-
-glGetProgramEnvParameterfvARB :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()
-glGetProgramEnvParameterfvARB = ffienumuintPtrfloatIOV glGetProgramEnvParameterfvARBFunPtr
-
-glGetProgramEnvParameterfvARBFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLfloat -> IO ())
-glGetProgramEnvParameterfvARBFunPtr = unsafePerformIO (getProcAddress "glGetProgramEnvParameterfvARB")
-
-{-# NOINLINE glGetProgramEnvParameterfvARBFunPtr #-}
-
-glGetProgramLocalParameterdvARB :: MonadIO m => GLenum -> GLuint -> Ptr GLdouble -> m ()
-glGetProgramLocalParameterdvARB = ffienumuintPtrdoubleIOV glGetProgramLocalParameterdvARBFunPtr
-
-glGetProgramLocalParameterdvARBFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLdouble -> IO ())
-glGetProgramLocalParameterdvARBFunPtr = unsafePerformIO (getProcAddress "glGetProgramLocalParameterdvARB")
-
-{-# NOINLINE glGetProgramLocalParameterdvARBFunPtr #-}
-
-glGetProgramLocalParameterfvARB :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()
-glGetProgramLocalParameterfvARB = ffienumuintPtrfloatIOV glGetProgramLocalParameterfvARBFunPtr
-
-glGetProgramLocalParameterfvARBFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLfloat -> IO ())
-glGetProgramLocalParameterfvARBFunPtr = unsafePerformIO (getProcAddress "glGetProgramLocalParameterfvARB")
-
-{-# NOINLINE glGetProgramLocalParameterfvARBFunPtr #-}
-
-glGetProgramStringARB :: MonadIO m => GLenum -> GLenum -> Ptr () -> m ()
-glGetProgramStringARB = ffienumenumPtrVIOV glGetProgramStringARBFunPtr
-
-glGetProgramStringARBFunPtr :: FunPtr (GLenum -> GLenum -> Ptr () -> IO ())
-glGetProgramStringARBFunPtr = unsafePerformIO (getProcAddress "glGetProgramStringARB")
-
-{-# NOINLINE glGetProgramStringARBFunPtr #-}
-
-glGetProgramivARB :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
-glGetProgramivARB = ffienumenumPtrintIOV glGetProgramivARBFunPtr
-
-glGetProgramivARBFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
-glGetProgramivARBFunPtr = unsafePerformIO (getProcAddress "glGetProgramivARB")
-
-{-# NOINLINE glGetProgramivARBFunPtr #-}
-
-glIsProgramARB :: MonadIO m => GLuint -> m GLboolean
-glIsProgramARB = ffiuintIOboolean glIsProgramARBFunPtr
-
-glIsProgramARBFunPtr :: FunPtr (GLuint -> IO GLboolean)
-glIsProgramARBFunPtr = unsafePerformIO (getProcAddress "glIsProgramARB")
-
-{-# NOINLINE glIsProgramARBFunPtr #-}
-
-glProgramEnvParameter4dARB :: MonadIO m => GLenum -> GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
-glProgramEnvParameter4dARB = ffienumuintdoubledoubledoubledoubleIOV glProgramEnvParameter4dARBFunPtr
-
-glProgramEnvParameter4dARBFunPtr :: FunPtr (GLenum -> GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
-glProgramEnvParameter4dARBFunPtr = unsafePerformIO (getProcAddress "glProgramEnvParameter4dARB")
-
-{-# NOINLINE glProgramEnvParameter4dARBFunPtr #-}
-
-glProgramEnvParameter4dvARB :: MonadIO m => GLenum -> GLuint -> Ptr GLdouble -> m ()
-glProgramEnvParameter4dvARB = ffienumuintPtrdoubleIOV glProgramEnvParameter4dvARBFunPtr
-
-glProgramEnvParameter4dvARBFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLdouble -> IO ())
-glProgramEnvParameter4dvARBFunPtr = unsafePerformIO (getProcAddress "glProgramEnvParameter4dvARB")
-
-{-# NOINLINE glProgramEnvParameter4dvARBFunPtr #-}
-
-glProgramEnvParameter4fARB :: MonadIO m => GLenum -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
-glProgramEnvParameter4fARB = ffienumuintfloatfloatfloatfloatIOV glProgramEnvParameter4fARBFunPtr
-
-glProgramEnvParameter4fARBFunPtr :: FunPtr (GLenum -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
-glProgramEnvParameter4fARBFunPtr = unsafePerformIO (getProcAddress "glProgramEnvParameter4fARB")
-
-{-# NOINLINE glProgramEnvParameter4fARBFunPtr #-}
-
-glProgramEnvParameter4fvARB :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()
-glProgramEnvParameter4fvARB = ffienumuintPtrfloatIOV glProgramEnvParameter4fvARBFunPtr
-
-glProgramEnvParameter4fvARBFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLfloat -> IO ())
-glProgramEnvParameter4fvARBFunPtr = unsafePerformIO (getProcAddress "glProgramEnvParameter4fvARB")
-
-{-# NOINLINE glProgramEnvParameter4fvARBFunPtr #-}
-
-glProgramLocalParameter4dARB :: MonadIO m => GLenum -> GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
-glProgramLocalParameter4dARB = ffienumuintdoubledoubledoubledoubleIOV glProgramLocalParameter4dARBFunPtr
-
-glProgramLocalParameter4dARBFunPtr :: FunPtr (GLenum -> GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
-glProgramLocalParameter4dARBFunPtr = unsafePerformIO (getProcAddress "glProgramLocalParameter4dARB")
-
-{-# NOINLINE glProgramLocalParameter4dARBFunPtr #-}
-
-glProgramLocalParameter4dvARB :: MonadIO m => GLenum -> GLuint -> Ptr GLdouble -> m ()
-glProgramLocalParameter4dvARB = ffienumuintPtrdoubleIOV glProgramLocalParameter4dvARBFunPtr
-
-glProgramLocalParameter4dvARBFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLdouble -> IO ())
-glProgramLocalParameter4dvARBFunPtr = unsafePerformIO (getProcAddress "glProgramLocalParameter4dvARB")
-
-{-# NOINLINE glProgramLocalParameter4dvARBFunPtr #-}
-
-glProgramLocalParameter4fARB :: MonadIO m => GLenum -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
-glProgramLocalParameter4fARB = ffienumuintfloatfloatfloatfloatIOV glProgramLocalParameter4fARBFunPtr
-
-glProgramLocalParameter4fARBFunPtr :: FunPtr (GLenum -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
-glProgramLocalParameter4fARBFunPtr = unsafePerformIO (getProcAddress "glProgramLocalParameter4fARB")
-
-{-# NOINLINE glProgramLocalParameter4fARBFunPtr #-}
-
-glProgramLocalParameter4fvARB :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()
-glProgramLocalParameter4fvARB = ffienumuintPtrfloatIOV glProgramLocalParameter4fvARBFunPtr
-
-glProgramLocalParameter4fvARBFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLfloat -> IO ())
-glProgramLocalParameter4fvARBFunPtr = unsafePerformIO (getProcAddress "glProgramLocalParameter4fvARB")
-
-{-# NOINLINE glProgramLocalParameter4fvARBFunPtr #-}
-
-glProgramStringARB :: MonadIO m => GLenum -> GLenum -> GLsizei -> Ptr () -> m ()
-glProgramStringARB = ffienumenumsizeiPtrVIOV glProgramStringARBFunPtr
-
-glProgramStringARBFunPtr :: FunPtr (GLenum -> GLenum -> GLsizei -> Ptr () -> IO ())
-glProgramStringARBFunPtr = unsafePerformIO (getProcAddress "glProgramStringARB")
-
-{-# NOINLINE glProgramStringARBFunPtr #-}
-
-pattern GL_CURRENT_MATRIX_ARB = 0x8641
-
-pattern GL_CURRENT_MATRIX_STACK_DEPTH_ARB = 0x8640
-
-pattern GL_MATRIX0_ARB = 0x88C0
-
-pattern GL_MATRIX10_ARB = 0x88CA
-
-pattern GL_MATRIX11_ARB = 0x88CB
-
-pattern GL_MATRIX12_ARB = 0x88CC
-
-pattern GL_MATRIX13_ARB = 0x88CD
-
-pattern GL_MATRIX14_ARB = 0x88CE
-
-pattern GL_MATRIX15_ARB = 0x88CF
-
-pattern GL_MATRIX16_ARB = 0x88D0
-
-pattern GL_MATRIX17_ARB = 0x88D1
-
-pattern GL_MATRIX18_ARB = 0x88D2
-
-pattern GL_MATRIX19_ARB = 0x88D3
-
-pattern GL_MATRIX1_ARB = 0x88C1
-
-pattern GL_MATRIX20_ARB = 0x88D4
-
-pattern GL_MATRIX21_ARB = 0x88D5
-
-pattern GL_MATRIX22_ARB = 0x88D6
-
-pattern GL_MATRIX23_ARB = 0x88D7
-
-pattern GL_MATRIX24_ARB = 0x88D8
-
-pattern GL_MATRIX25_ARB = 0x88D9
-
-pattern GL_MATRIX26_ARB = 0x88DA
-
-pattern GL_MATRIX27_ARB = 0x88DB
-
-pattern GL_MATRIX28_ARB = 0x88DC
-
-pattern GL_MATRIX29_ARB = 0x88DD
-
-pattern GL_MATRIX2_ARB = 0x88C2
-
-pattern GL_MATRIX30_ARB = 0x88DE
-
-pattern GL_MATRIX31_ARB = 0x88DF
-
-pattern GL_MATRIX3_ARB = 0x88C3
-
-pattern GL_MATRIX4_ARB = 0x88C4
-
-pattern GL_MATRIX5_ARB = 0x88C5
-
-pattern GL_MATRIX6_ARB = 0x88C6
-
-pattern GL_MATRIX7_ARB = 0x88C7
-
-pattern GL_MATRIX8_ARB = 0x88C8
-
-pattern GL_MATRIX9_ARB = 0x88C9
-
-pattern GL_MAX_PROGRAM_ATTRIBS_ARB = 0x88AD
-
-pattern GL_MAX_PROGRAM_ENV_PARAMETERS_ARB = 0x88B5
-
-pattern GL_MAX_PROGRAM_INSTRUCTIONS_ARB = 0x88A1
-
-pattern GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB = 0x88B4
-
-pattern GL_MAX_PROGRAM_MATRICES_ARB = 0x862F
-
-pattern GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB = 0x862E
-
-pattern GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB = 0x88AF
-
-pattern GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB = 0x88A3
-
-pattern GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB = 0x88AB
-
-pattern GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB = 0x88A7
-
-pattern GL_MAX_PROGRAM_PARAMETERS_ARB = 0x88A9
-
-pattern GL_MAX_PROGRAM_TEMPORARIES_ARB = 0x88A5
-
-pattern GL_MAX_TEXTURE_COORDS_ARB = 0x8871
-
-pattern GL_MAX_TEXTURE_IMAGE_UNITS_ARB = 0x8872
-
-pattern GL_PROGRAM_ATTRIBS_ARB = 0x88AC
-
-pattern GL_PROGRAM_BINDING_ARB = 0x8677
-
-pattern GL_PROGRAM_ERROR_POSITION_ARB = 0x864B
-
-pattern GL_PROGRAM_ERROR_STRING_ARB = 0x8874
-
-pattern GL_PROGRAM_FORMAT_ARB = 0x8876
-
-pattern GL_PROGRAM_FORMAT_ASCII_ARB = 0x8875
-
-pattern GL_PROGRAM_INSTRUCTIONS_ARB = 0x88A0
-
-pattern GL_PROGRAM_LENGTH_ARB = 0x8627
-
-pattern GL_PROGRAM_NATIVE_ATTRIBS_ARB = 0x88AE
-
-pattern GL_PROGRAM_NATIVE_INSTRUCTIONS_ARB = 0x88A2
-
-pattern GL_PROGRAM_NATIVE_PARAMETERS_ARB = 0x88AA
-
-pattern GL_PROGRAM_NATIVE_TEMPORARIES_ARB = 0x88A6
-
-pattern GL_PROGRAM_PARAMETERS_ARB = 0x88A8
-
-pattern GL_PROGRAM_STRING_ARB = 0x8628
-
-pattern GL_PROGRAM_TEMPORARIES_ARB = 0x88A4
-
-pattern GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB = 0x88B6
-
-pattern GL_TRANSPOSE_CURRENT_MATRIX_ARB = 0x88B7
-
-glFramebufferParameteri :: MonadIO m => GLenum -> GLenum -> GLint -> m ()
-glFramebufferParameteri = ffienumenumintIOV glFramebufferParameteriFunPtr
-
-glFramebufferParameteriFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> IO ())
-glFramebufferParameteriFunPtr = unsafePerformIO (getProcAddress "glFramebufferParameteri")
-
-{-# NOINLINE glFramebufferParameteriFunPtr #-}
-
-glGetFramebufferParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
-glGetFramebufferParameteriv = ffienumenumPtrintIOV glGetFramebufferParameterivFunPtr
-
-glGetFramebufferParameterivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
-glGetFramebufferParameterivFunPtr = unsafePerformIO (getProcAddress "glGetFramebufferParameteriv")
-
-{-# NOINLINE glGetFramebufferParameterivFunPtr #-}
-
-pattern GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS = 0x9314
-
-pattern GL_FRAMEBUFFER_DEFAULT_HEIGHT = 0x9311
-
-pattern GL_FRAMEBUFFER_DEFAULT_LAYERS = 0x9312
-
-pattern GL_FRAMEBUFFER_DEFAULT_SAMPLES = 0x9313
-
-pattern GL_FRAMEBUFFER_DEFAULT_WIDTH = 0x9310
-
-pattern GL_MAX_FRAMEBUFFER_HEIGHT = 0x9316
-
-pattern GL_MAX_FRAMEBUFFER_LAYERS = 0x9317
-
-pattern GL_MAX_FRAMEBUFFER_SAMPLES = 0x9318
-
-pattern GL_MAX_FRAMEBUFFER_WIDTH = 0x9315
-
-glBindFramebuffer :: MonadIO m => GLenum -> GLuint -> m ()
-glBindFramebuffer = ffienumuintIOV glBindFramebufferFunPtr
-
-glBindFramebufferFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
-glBindFramebufferFunPtr = unsafePerformIO (getProcAddress "glBindFramebuffer")
-
-{-# NOINLINE glBindFramebufferFunPtr #-}
-
-glBindRenderbuffer :: MonadIO m => GLenum -> GLuint -> m ()
-glBindRenderbuffer = ffienumuintIOV glBindRenderbufferFunPtr
-
-glBindRenderbufferFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
-glBindRenderbufferFunPtr = unsafePerformIO (getProcAddress "glBindRenderbuffer")
-
-{-# NOINLINE glBindRenderbufferFunPtr #-}
-
-glBlitFramebuffer :: MonadIO m => GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLbitfield -> GLenum -> m ()
-glBlitFramebuffer = ffiintintintintintintintintbitfieldenumIOV glBlitFramebufferFunPtr
-
-glBlitFramebufferFunPtr :: FunPtr (GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLbitfield -> GLenum -> IO ())
-glBlitFramebufferFunPtr = unsafePerformIO (getProcAddress "glBlitFramebuffer")
-
-{-# NOINLINE glBlitFramebufferFunPtr #-}
-
-glCheckFramebufferStatus :: MonadIO m => GLenum -> m GLenum
-glCheckFramebufferStatus = ffienumIOenum glCheckFramebufferStatusFunPtr
-
-glCheckFramebufferStatusFunPtr :: FunPtr (GLenum -> IO GLenum)
-glCheckFramebufferStatusFunPtr = unsafePerformIO (getProcAddress "glCheckFramebufferStatus")
-
-{-# NOINLINE glCheckFramebufferStatusFunPtr #-}
-
-glDeleteFramebuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
-glDeleteFramebuffers = ffisizeiPtruintIOV glDeleteFramebuffersFunPtr
-
-glDeleteFramebuffersFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
-glDeleteFramebuffersFunPtr = unsafePerformIO (getProcAddress "glDeleteFramebuffers")
-
-{-# NOINLINE glDeleteFramebuffersFunPtr #-}
-
-glDeleteRenderbuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
-glDeleteRenderbuffers = ffisizeiPtruintIOV glDeleteRenderbuffersFunPtr
-
-glDeleteRenderbuffersFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
-glDeleteRenderbuffersFunPtr = unsafePerformIO (getProcAddress "glDeleteRenderbuffers")
-
-{-# NOINLINE glDeleteRenderbuffersFunPtr #-}
-
-glFramebufferRenderbuffer :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> m ()
-glFramebufferRenderbuffer = ffienumenumenumuintIOV glFramebufferRenderbufferFunPtr
-
-glFramebufferRenderbufferFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLuint -> IO ())
-glFramebufferRenderbufferFunPtr = unsafePerformIO (getProcAddress "glFramebufferRenderbuffer")
-
-{-# NOINLINE glFramebufferRenderbufferFunPtr #-}
-
-glFramebufferTexture1D :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> m ()
-glFramebufferTexture1D = ffienumenumenumuintintIOV glFramebufferTexture1DFunPtr
-
-glFramebufferTexture1DFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLuint -> GLint -> IO ())
-glFramebufferTexture1DFunPtr = unsafePerformIO (getProcAddress "glFramebufferTexture1D")
-
-{-# NOINLINE glFramebufferTexture1DFunPtr #-}
-
-glFramebufferTexture2D :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> m ()
-glFramebufferTexture2D = ffienumenumenumuintintIOV glFramebufferTexture2DFunPtr
-
-glFramebufferTexture2DFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLuint -> GLint -> IO ())
-glFramebufferTexture2DFunPtr = unsafePerformIO (getProcAddress "glFramebufferTexture2D")
-
-{-# NOINLINE glFramebufferTexture2DFunPtr #-}
-
-glFramebufferTexture3D :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> GLint -> m ()
-glFramebufferTexture3D = ffienumenumenumuintintintIOV glFramebufferTexture3DFunPtr
-
-glFramebufferTexture3DFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLuint -> GLint -> GLint -> IO ())
-glFramebufferTexture3DFunPtr = unsafePerformIO (getProcAddress "glFramebufferTexture3D")
-
-{-# NOINLINE glFramebufferTexture3DFunPtr #-}
-
-glFramebufferTextureLayer :: MonadIO m => GLenum -> GLenum -> GLuint -> GLint -> GLint -> m ()
-glFramebufferTextureLayer = ffienumenumuintintintIOV glFramebufferTextureLayerFunPtr
-
-glFramebufferTextureLayerFunPtr :: FunPtr (GLenum -> GLenum -> GLuint -> GLint -> GLint -> IO ())
-glFramebufferTextureLayerFunPtr = unsafePerformIO (getProcAddress "glFramebufferTextureLayer")
-
-{-# NOINLINE glFramebufferTextureLayerFunPtr #-}
-
-glGenFramebuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
-glGenFramebuffers = ffisizeiPtruintIOV glGenFramebuffersFunPtr
-
-glGenFramebuffersFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
-glGenFramebuffersFunPtr = unsafePerformIO (getProcAddress "glGenFramebuffers")
-
-{-# NOINLINE glGenFramebuffersFunPtr #-}
-
-glGenRenderbuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
-glGenRenderbuffers = ffisizeiPtruintIOV glGenRenderbuffersFunPtr
-
-glGenRenderbuffersFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
-glGenRenderbuffersFunPtr = unsafePerformIO (getProcAddress "glGenRenderbuffers")
-
-{-# NOINLINE glGenRenderbuffersFunPtr #-}
-
-glGenerateMipmap :: MonadIO m => GLenum -> m ()
-glGenerateMipmap = ffienumIOV glGenerateMipmapFunPtr
-
-glGenerateMipmapFunPtr :: FunPtr (GLenum -> IO ())
-glGenerateMipmapFunPtr = unsafePerformIO (getProcAddress "glGenerateMipmap")
-
-{-# NOINLINE glGenerateMipmapFunPtr #-}
-
-glGetFramebufferAttachmentParameteriv :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLint -> m ()
-glGetFramebufferAttachmentParameteriv = ffienumenumenumPtrintIOV glGetFramebufferAttachmentParameterivFunPtr
-
-glGetFramebufferAttachmentParameterivFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ())
-glGetFramebufferAttachmentParameterivFunPtr = unsafePerformIO (getProcAddress "glGetFramebufferAttachmentParameteriv")
-
-{-# NOINLINE glGetFramebufferAttachmentParameterivFunPtr #-}
-
-glGetRenderbufferParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
-glGetRenderbufferParameteriv = ffienumenumPtrintIOV glGetRenderbufferParameterivFunPtr
-
-glGetRenderbufferParameterivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
-glGetRenderbufferParameterivFunPtr = unsafePerformIO (getProcAddress "glGetRenderbufferParameteriv")
-
-{-# NOINLINE glGetRenderbufferParameterivFunPtr #-}
-
-glIsFramebuffer :: MonadIO m => GLuint -> m GLboolean
-glIsFramebuffer = ffiuintIOboolean glIsFramebufferFunPtr
-
-glIsFramebufferFunPtr :: FunPtr (GLuint -> IO GLboolean)
-glIsFramebufferFunPtr = unsafePerformIO (getProcAddress "glIsFramebuffer")
-
-{-# NOINLINE glIsFramebufferFunPtr #-}
-
-glIsRenderbuffer :: MonadIO m => GLuint -> m GLboolean
-glIsRenderbuffer = ffiuintIOboolean glIsRenderbufferFunPtr
-
-glIsRenderbufferFunPtr :: FunPtr (GLuint -> IO GLboolean)
-glIsRenderbufferFunPtr = unsafePerformIO (getProcAddress "glIsRenderbuffer")
-
-{-# NOINLINE glIsRenderbufferFunPtr #-}
-
-glRenderbufferStorage :: MonadIO m => GLenum -> GLenum -> GLsizei -> GLsizei -> m ()
-glRenderbufferStorage = ffienumenumsizeisizeiIOV glRenderbufferStorageFunPtr
-
-glRenderbufferStorageFunPtr :: FunPtr (GLenum -> GLenum -> GLsizei -> GLsizei -> IO ())
-glRenderbufferStorageFunPtr = unsafePerformIO (getProcAddress "glRenderbufferStorage")
-
-{-# NOINLINE glRenderbufferStorageFunPtr #-}
-
-glRenderbufferStorageMultisample :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()
-glRenderbufferStorageMultisample = ffienumsizeienumsizeisizeiIOV glRenderbufferStorageMultisampleFunPtr
-
-glRenderbufferStorageMultisampleFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> IO ())
-glRenderbufferStorageMultisampleFunPtr = unsafePerformIO (getProcAddress "glRenderbufferStorageMultisample")
-
-{-# NOINLINE glRenderbufferStorageMultisampleFunPtr #-}
-
-pattern GL_COLOR_ATTACHMENT0 = 0x8CE0
-
-pattern GL_COLOR_ATTACHMENT1 = 0x8CE1
-
-pattern GL_COLOR_ATTACHMENT10 = 0x8CEA
-
-pattern GL_COLOR_ATTACHMENT11 = 0x8CEB
-
-pattern GL_COLOR_ATTACHMENT12 = 0x8CEC
-
-pattern GL_COLOR_ATTACHMENT13 = 0x8CED
-
-pattern GL_COLOR_ATTACHMENT14 = 0x8CEE
-
-pattern GL_COLOR_ATTACHMENT15 = 0x8CEF
-
-pattern GL_COLOR_ATTACHMENT2 = 0x8CE2
-
-pattern GL_COLOR_ATTACHMENT3 = 0x8CE3
-
-pattern GL_COLOR_ATTACHMENT4 = 0x8CE4
-
-pattern GL_COLOR_ATTACHMENT5 = 0x8CE5
-
-pattern GL_COLOR_ATTACHMENT6 = 0x8CE6
-
-pattern GL_COLOR_ATTACHMENT7 = 0x8CE7
-
-pattern GL_COLOR_ATTACHMENT8 = 0x8CE8
-
-pattern GL_COLOR_ATTACHMENT9 = 0x8CE9
-
-pattern GL_DEPTH24_STENCIL8 = 0x88F0
-
-pattern GL_DEPTH_ATTACHMENT = 0x8D00
-
-pattern GL_DEPTH_STENCIL = 0x84F9
-
-pattern GL_DEPTH_STENCIL_ATTACHMENT = 0x821A
-
-pattern GL_DRAW_FRAMEBUFFER = 0x8CA9
-
-pattern GL_DRAW_FRAMEBUFFER_BINDING = 0x8CA6
-
-pattern GL_FRAMEBUFFER = 0x8D40
-
-pattern GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE = 0x8215
-
-pattern GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE = 0x8214
-
-pattern GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING = 0x8210
-
-pattern GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE = 0x8211
-
-pattern GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE = 0x8216
-
-pattern GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE = 0x8213
-
-pattern GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME = 0x8CD1
-
-pattern GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE = 0x8CD0
-
-pattern GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE = 0x8212
-
-pattern GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE = 0x8217
-
-pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE = 0x8CD3
-
-pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER = 0x8CD4
-
-pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL = 0x8CD2
-
-pattern GL_FRAMEBUFFER_BINDING = 0x8CA6
-
-pattern GL_FRAMEBUFFER_COMPLETE = 0x8CD5
-
-pattern GL_FRAMEBUFFER_DEFAULT = 0x8218
-
-pattern GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT = 0x8CD6
-
-pattern GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER = 0x8CDB
-
-pattern GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT = 0x8CD7
-
-pattern GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE = 0x8D56
-
-pattern GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER = 0x8CDC
-
-pattern GL_FRAMEBUFFER_UNDEFINED = 0x8219
-
-pattern GL_FRAMEBUFFER_UNSUPPORTED = 0x8CDD
-
-pattern GL_INDEX = 0x8222
-
-pattern GL_INVALID_FRAMEBUFFER_OPERATION = 0x0506
-
-pattern GL_MAX_COLOR_ATTACHMENTS = 0x8CDF
-
-pattern GL_MAX_RENDERBUFFER_SIZE = 0x84E8
-
-pattern GL_MAX_SAMPLES = 0x8D57
-
-pattern GL_READ_FRAMEBUFFER = 0x8CA8
-
-pattern GL_READ_FRAMEBUFFER_BINDING = 0x8CAA
-
-pattern GL_RENDERBUFFER = 0x8D41
-
-pattern GL_RENDERBUFFER_ALPHA_SIZE = 0x8D53
-
-pattern GL_RENDERBUFFER_BINDING = 0x8CA7
-
-pattern GL_RENDERBUFFER_BLUE_SIZE = 0x8D52
-
-pattern GL_RENDERBUFFER_DEPTH_SIZE = 0x8D54
-
-pattern GL_RENDERBUFFER_GREEN_SIZE = 0x8D51
-
-pattern GL_RENDERBUFFER_HEIGHT = 0x8D43
-
-pattern GL_RENDERBUFFER_INTERNAL_FORMAT = 0x8D44
-
-pattern GL_RENDERBUFFER_RED_SIZE = 0x8D50
-
-pattern GL_RENDERBUFFER_SAMPLES = 0x8CAB
-
-pattern GL_RENDERBUFFER_STENCIL_SIZE = 0x8D55
-
-pattern GL_RENDERBUFFER_WIDTH = 0x8D42
-
-pattern GL_STENCIL_ATTACHMENT = 0x8D20
-
-pattern GL_STENCIL_INDEX1 = 0x8D46
-
-pattern GL_STENCIL_INDEX16 = 0x8D49
-
-pattern GL_STENCIL_INDEX4 = 0x8D47
-
-pattern GL_STENCIL_INDEX8 = 0x8D48
-
-pattern GL_TEXTURE_STENCIL_SIZE = 0x88F1
-
-pattern GL_UNSIGNED_INT_24_8 = 0x84FA
-
-pattern GL_UNSIGNED_NORMALIZED = 0x8C17
-
-pattern GL_FRAMEBUFFER_SRGB = 0x8DB9
-
-pattern GL_MAX_VARYING_COMPONENTS = 0x8B4B
-
-glGetProgramBinary :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLenum -> Ptr () -> m ()
-glGetProgramBinary = ffiuintsizeiPtrsizeiPtrenumPtrVIOV glGetProgramBinaryFunPtr
-
-glGetProgramBinaryFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLenum -> Ptr () -> IO ())
-glGetProgramBinaryFunPtr = unsafePerformIO (getProcAddress "glGetProgramBinary")
-
-{-# NOINLINE glGetProgramBinaryFunPtr #-}
-
-glProgramBinary :: MonadIO m => GLuint -> GLenum -> Ptr () -> GLsizei -> m ()
-glProgramBinary = ffiuintenumPtrVsizeiIOV glProgramBinaryFunPtr
-
-glProgramBinaryFunPtr :: FunPtr (GLuint -> GLenum -> Ptr () -> GLsizei -> IO ())
-glProgramBinaryFunPtr = unsafePerformIO (getProcAddress "glProgramBinary")
-
-{-# NOINLINE glProgramBinaryFunPtr #-}
-
-glProgramParameteri :: MonadIO m => GLuint -> GLenum -> GLint -> m ()
-glProgramParameteri = ffiuintenumintIOV glProgramParameteriFunPtr
-
-glProgramParameteriFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> IO ())
-glProgramParameteriFunPtr = unsafePerformIO (getProcAddress "glProgramParameteri")
-
-{-# NOINLINE glProgramParameteriFunPtr #-}
-
-pattern GL_NUM_PROGRAM_BINARY_FORMATS = 0x87FE
-
-pattern GL_PROGRAM_BINARY_FORMATS = 0x87FF
-
-pattern GL_PROGRAM_BINARY_LENGTH = 0x8741
-
-pattern GL_PROGRAM_BINARY_RETRIEVABLE_HINT = 0x8257
-
-glGetCompressedTextureSubImage :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> Ptr () -> m ()
-glGetCompressedTextureSubImage = ffiuintintintintintsizeisizeisizeisizeiPtrVIOV glGetCompressedTextureSubImageFunPtr
-
-glGetCompressedTextureSubImageFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> Ptr () -> IO ())
-glGetCompressedTextureSubImageFunPtr = unsafePerformIO (getProcAddress "glGetCompressedTextureSubImage")
-
-{-# NOINLINE glGetCompressedTextureSubImageFunPtr #-}
-
-glGetTextureSubImage :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> GLsizei -> Ptr () -> m ()
-glGetTextureSubImage = ffiuintintintintintsizeisizeisizeienumenumsizeiPtrVIOV glGetTextureSubImageFunPtr
-
-glGetTextureSubImageFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> GLsizei -> Ptr () -> IO ())
-glGetTextureSubImageFunPtr = unsafePerformIO (getProcAddress "glGetTextureSubImage")
-
-{-# NOINLINE glGetTextureSubImageFunPtr #-}
-
-pattern GL_FRAGMENT_INTERPOLATION_OFFSET_BITS = 0x8E5D
-
-pattern GL_GEOMETRY_SHADER_INVOCATIONS = 0x887F
-
-pattern GL_MAX_FRAGMENT_INTERPOLATION_OFFSET = 0x8E5C
-
-pattern GL_MAX_GEOMETRY_SHADER_INVOCATIONS = 0x8E5A
-
-pattern GL_MAX_VERTEX_STREAMS = 0x8E71
-
-pattern GL_MIN_FRAGMENT_INTERPOLATION_OFFSET = 0x8E5B
-
-glGetUniformdv :: MonadIO m => GLuint -> GLint -> Ptr GLdouble -> m ()
-glGetUniformdv = ffiuintintPtrdoubleIOV glGetUniformdvFunPtr
-
-glGetUniformdvFunPtr :: FunPtr (GLuint -> GLint -> Ptr GLdouble -> IO ())
-glGetUniformdvFunPtr = unsafePerformIO (getProcAddress "glGetUniformdv")
-
-{-# NOINLINE glGetUniformdvFunPtr #-}
-
-glUniform1d :: MonadIO m => GLint -> GLdouble -> m ()
-glUniform1d = ffiintdoubleIOV glUniform1dFunPtr
-
-glUniform1dFunPtr :: FunPtr (GLint -> GLdouble -> IO ())
-glUniform1dFunPtr = unsafePerformIO (getProcAddress "glUniform1d")
-
-{-# NOINLINE glUniform1dFunPtr #-}
-
-glUniform1dv :: MonadIO m => GLint -> GLsizei -> Ptr GLdouble -> m ()
-glUniform1dv = ffiintsizeiPtrdoubleIOV glUniform1dvFunPtr
-
-glUniform1dvFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLdouble -> IO ())
-glUniform1dvFunPtr = unsafePerformIO (getProcAddress "glUniform1dv")
-
-{-# NOINLINE glUniform1dvFunPtr #-}
-
-glUniform2d :: MonadIO m => GLint -> GLdouble -> GLdouble -> m ()
-glUniform2d = ffiintdoubledoubleIOV glUniform2dFunPtr
-
-glUniform2dFunPtr :: FunPtr (GLint -> GLdouble -> GLdouble -> IO ())
-glUniform2dFunPtr = unsafePerformIO (getProcAddress "glUniform2d")
-
-{-# NOINLINE glUniform2dFunPtr #-}
-
-glUniform2dv :: MonadIO m => GLint -> GLsizei -> Ptr GLdouble -> m ()
-glUniform2dv = ffiintsizeiPtrdoubleIOV glUniform2dvFunPtr
-
-glUniform2dvFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLdouble -> IO ())
-glUniform2dvFunPtr = unsafePerformIO (getProcAddress "glUniform2dv")
-
-{-# NOINLINE glUniform2dvFunPtr #-}
-
-glUniform3d :: MonadIO m => GLint -> GLdouble -> GLdouble -> GLdouble -> m ()
-glUniform3d = ffiintdoubledoubledoubleIOV glUniform3dFunPtr
-
-glUniform3dFunPtr :: FunPtr (GLint -> GLdouble -> GLdouble -> GLdouble -> IO ())
-glUniform3dFunPtr = unsafePerformIO (getProcAddress "glUniform3d")
-
-{-# NOINLINE glUniform3dFunPtr #-}
-
-glUniform3dv :: MonadIO m => GLint -> GLsizei -> Ptr GLdouble -> m ()
-glUniform3dv = ffiintsizeiPtrdoubleIOV glUniform3dvFunPtr
-
-glUniform3dvFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLdouble -> IO ())
-glUniform3dvFunPtr = unsafePerformIO (getProcAddress "glUniform3dv")
-
-{-# NOINLINE glUniform3dvFunPtr #-}
-
-glUniform4d :: MonadIO m => GLint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
-glUniform4d = ffiintdoubledoubledoubledoubleIOV glUniform4dFunPtr
-
-glUniform4dFunPtr :: FunPtr (GLint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
-glUniform4dFunPtr = unsafePerformIO (getProcAddress "glUniform4d")
-
-{-# NOINLINE glUniform4dFunPtr #-}
-
-glUniform4dv :: MonadIO m => GLint -> GLsizei -> Ptr GLdouble -> m ()
-glUniform4dv = ffiintsizeiPtrdoubleIOV glUniform4dvFunPtr
-
-glUniform4dvFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLdouble -> IO ())
-glUniform4dvFunPtr = unsafePerformIO (getProcAddress "glUniform4dv")
-
-{-# NOINLINE glUniform4dvFunPtr #-}
-
-glUniformMatrix2dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
-glUniformMatrix2dv = ffiintsizeibooleanPtrdoubleIOV glUniformMatrix2dvFunPtr
-
-glUniformMatrix2dvFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
-glUniformMatrix2dvFunPtr = unsafePerformIO (getProcAddress "glUniformMatrix2dv")
-
-{-# NOINLINE glUniformMatrix2dvFunPtr #-}
-
-glUniformMatrix2x3dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
-glUniformMatrix2x3dv = ffiintsizeibooleanPtrdoubleIOV glUniformMatrix2x3dvFunPtr
-
-glUniformMatrix2x3dvFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
-glUniformMatrix2x3dvFunPtr = unsafePerformIO (getProcAddress "glUniformMatrix2x3dv")
-
-{-# NOINLINE glUniformMatrix2x3dvFunPtr #-}
-
-glUniformMatrix2x4dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
-glUniformMatrix2x4dv = ffiintsizeibooleanPtrdoubleIOV glUniformMatrix2x4dvFunPtr
-
-glUniformMatrix2x4dvFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
-glUniformMatrix2x4dvFunPtr = unsafePerformIO (getProcAddress "glUniformMatrix2x4dv")
-
-{-# NOINLINE glUniformMatrix2x4dvFunPtr #-}
-
-glUniformMatrix3dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
-glUniformMatrix3dv = ffiintsizeibooleanPtrdoubleIOV glUniformMatrix3dvFunPtr
-
-glUniformMatrix3dvFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
-glUniformMatrix3dvFunPtr = unsafePerformIO (getProcAddress "glUniformMatrix3dv")
-
-{-# NOINLINE glUniformMatrix3dvFunPtr #-}
-
-glUniformMatrix3x2dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
-glUniformMatrix3x2dv = ffiintsizeibooleanPtrdoubleIOV glUniformMatrix3x2dvFunPtr
-
-glUniformMatrix3x2dvFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
-glUniformMatrix3x2dvFunPtr = unsafePerformIO (getProcAddress "glUniformMatrix3x2dv")
-
-{-# NOINLINE glUniformMatrix3x2dvFunPtr #-}
-
-glUniformMatrix3x4dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
-glUniformMatrix3x4dv = ffiintsizeibooleanPtrdoubleIOV glUniformMatrix3x4dvFunPtr
-
-glUniformMatrix3x4dvFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
-glUniformMatrix3x4dvFunPtr = unsafePerformIO (getProcAddress "glUniformMatrix3x4dv")
-
-{-# NOINLINE glUniformMatrix3x4dvFunPtr #-}
-
-glUniformMatrix4dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
-glUniformMatrix4dv = ffiintsizeibooleanPtrdoubleIOV glUniformMatrix4dvFunPtr
-
-glUniformMatrix4dvFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
-glUniformMatrix4dvFunPtr = unsafePerformIO (getProcAddress "glUniformMatrix4dv")
-
-{-# NOINLINE glUniformMatrix4dvFunPtr #-}
-
-glUniformMatrix4x2dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
-glUniformMatrix4x2dv = ffiintsizeibooleanPtrdoubleIOV glUniformMatrix4x2dvFunPtr
-
-glUniformMatrix4x2dvFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
-glUniformMatrix4x2dvFunPtr = unsafePerformIO (getProcAddress "glUniformMatrix4x2dv")
-
-{-# NOINLINE glUniformMatrix4x2dvFunPtr #-}
-
-glUniformMatrix4x3dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
-glUniformMatrix4x3dv = ffiintsizeibooleanPtrdoubleIOV glUniformMatrix4x3dvFunPtr
-
-glUniformMatrix4x3dvFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
-glUniformMatrix4x3dvFunPtr = unsafePerformIO (getProcAddress "glUniformMatrix4x3dv")
-
-{-# NOINLINE glUniformMatrix4x3dvFunPtr #-}
-
-pattern GL_DOUBLE = 0x140A
-
-pattern GL_DOUBLE_MAT2 = 0x8F46
-
-pattern GL_DOUBLE_MAT2x3 = 0x8F49
-
-pattern GL_DOUBLE_MAT2x4 = 0x8F4A
-
-pattern GL_DOUBLE_MAT3 = 0x8F47
-
-pattern GL_DOUBLE_MAT3x2 = 0x8F4B
-
-pattern GL_DOUBLE_MAT3x4 = 0x8F4C
-
-pattern GL_DOUBLE_MAT4 = 0x8F48
-
-pattern GL_DOUBLE_MAT4x2 = 0x8F4D
-
-pattern GL_DOUBLE_MAT4x3 = 0x8F4E
-
-pattern GL_DOUBLE_VEC2 = 0x8FFC
-
-pattern GL_DOUBLE_VEC3 = 0x8FFD
-
-pattern GL_DOUBLE_VEC4 = 0x8FFE
-
-pattern GL_HALF_FLOAT = 0x140B
-
-glBlendColor :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
-glBlendColor = ffifloatfloatfloatfloatIOV glBlendColorFunPtr
-
-glBlendColorFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
-glBlendColorFunPtr = unsafePerformIO (getProcAddress "glBlendColor")
-
-{-# NOINLINE glBlendColorFunPtr #-}
-
-glBlendEquation :: MonadIO m => GLenum -> m ()
-glBlendEquation = ffienumIOV glBlendEquationFunPtr
-
-glBlendEquationFunPtr :: FunPtr (GLenum -> IO ())
-glBlendEquationFunPtr = unsafePerformIO (getProcAddress "glBlendEquation")
-
-{-# NOINLINE glBlendEquationFunPtr #-}
-
-pattern GL_BLEND_COLOR = 0x8005
-
-pattern GL_BLEND_EQUATION = 0x8009
-
-pattern GL_CONSTANT_ALPHA = 0x8003
-
-pattern GL_CONSTANT_COLOR = 0x8001
-
-pattern GL_FUNC_ADD = 0x8006
-
-pattern GL_FUNC_REVERSE_SUBTRACT = 0x800B
-
-pattern GL_FUNC_SUBTRACT = 0x800A
-
-pattern GL_MAX = 0x8008
-
-pattern GL_MIN = 0x8007
-
-pattern GL_ONE_MINUS_CONSTANT_ALPHA = 0x8004
-
-pattern GL_ONE_MINUS_CONSTANT_COLOR = 0x8002
-
-glGetInternalformativ :: MonadIO m => GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLint -> m ()
-glGetInternalformativ = ffienumenumenumsizeiPtrintIOV glGetInternalformativFunPtr
-
-glGetInternalformativFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLint -> IO ())
-glGetInternalformativFunPtr = unsafePerformIO (getProcAddress "glGetInternalformativ")
-
-{-# NOINLINE glGetInternalformativFunPtr #-}
-
-pattern GL_NUM_SAMPLE_COUNTS = 0x9380
-
-glGetInternalformati64v :: MonadIO m => GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLint64 -> m ()
-glGetInternalformati64v = ffienumenumenumsizeiPtrint64IOV glGetInternalformati64vFunPtr
-
-glGetInternalformati64vFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLint64 -> IO ())
-glGetInternalformati64vFunPtr = unsafePerformIO (getProcAddress "glGetInternalformati64v")
-
-{-# NOINLINE glGetInternalformati64vFunPtr #-}
-
-pattern GL_AUTO_GENERATE_MIPMAP = 0x8295
-
-pattern GL_CAVEAT_SUPPORT = 0x82B8
-
-pattern GL_CLEAR_BUFFER = 0x82B4
-
-pattern GL_COLOR_COMPONENTS = 0x8283
-
-pattern GL_COLOR_ENCODING = 0x8296
-
-pattern GL_COLOR_RENDERABLE = 0x8286
-
-pattern GL_COMPUTE_TEXTURE = 0x82A0
-
-pattern GL_DEPTH_COMPONENTS = 0x8284
-
-pattern GL_DEPTH_RENDERABLE = 0x8287
-
-pattern GL_FILTER = 0x829A
-
-pattern GL_FRAGMENT_TEXTURE = 0x829F
-
-pattern GL_FRAMEBUFFER_BLEND = 0x828B
-
-pattern GL_FRAMEBUFFER_RENDERABLE = 0x8289
-
-pattern GL_FRAMEBUFFER_RENDERABLE_LAYERED = 0x828A
-
-pattern GL_FULL_SUPPORT = 0x82B7
-
-pattern GL_GEOMETRY_TEXTURE = 0x829E
-
-pattern GL_GET_TEXTURE_IMAGE_FORMAT = 0x8291
-
-pattern GL_GET_TEXTURE_IMAGE_TYPE = 0x8292
-
-pattern GL_IMAGE_CLASS_10_10_10_2 = 0x82C3
-
-pattern GL_IMAGE_CLASS_11_11_10 = 0x82C2
-
-pattern GL_IMAGE_CLASS_1_X_16 = 0x82BE
-
-pattern GL_IMAGE_CLASS_1_X_32 = 0x82BB
-
-pattern GL_IMAGE_CLASS_1_X_8 = 0x82C1
-
-pattern GL_IMAGE_CLASS_2_X_16 = 0x82BD
-
-pattern GL_IMAGE_CLASS_2_X_32 = 0x82BA
-
-pattern GL_IMAGE_CLASS_2_X_8 = 0x82C0
-
-pattern GL_IMAGE_CLASS_4_X_16 = 0x82BC
-
-pattern GL_IMAGE_CLASS_4_X_32 = 0x82B9
-
-pattern GL_IMAGE_CLASS_4_X_8 = 0x82BF
-
-pattern GL_IMAGE_COMPATIBILITY_CLASS = 0x82A8
-
-pattern GL_IMAGE_FORMAT_COMPATIBILITY_TYPE = 0x90C7
-
-pattern GL_IMAGE_PIXEL_FORMAT = 0x82A9
-
-pattern GL_IMAGE_PIXEL_TYPE = 0x82AA
-
-pattern GL_IMAGE_TEXEL_SIZE = 0x82A7
-
-pattern GL_INTERNALFORMAT_ALPHA_SIZE = 0x8274
-
-pattern GL_INTERNALFORMAT_ALPHA_TYPE = 0x827B
-
-pattern GL_INTERNALFORMAT_BLUE_SIZE = 0x8273
-
-pattern GL_INTERNALFORMAT_BLUE_TYPE = 0x827A
-
-pattern GL_INTERNALFORMAT_DEPTH_SIZE = 0x8275
-
-pattern GL_INTERNALFORMAT_DEPTH_TYPE = 0x827C
-
-pattern GL_INTERNALFORMAT_GREEN_SIZE = 0x8272
-
-pattern GL_INTERNALFORMAT_GREEN_TYPE = 0x8279
-
-pattern GL_INTERNALFORMAT_PREFERRED = 0x8270
-
-pattern GL_INTERNALFORMAT_RED_SIZE = 0x8271
-
-pattern GL_INTERNALFORMAT_RED_TYPE = 0x8278
-
-pattern GL_INTERNALFORMAT_SHARED_SIZE = 0x8277
-
-pattern GL_INTERNALFORMAT_STENCIL_SIZE = 0x8276
-
-pattern GL_INTERNALFORMAT_STENCIL_TYPE = 0x827D
-
-pattern GL_INTERNALFORMAT_SUPPORTED = 0x826F
-
-pattern GL_MANUAL_GENERATE_MIPMAP = 0x8294
-
-pattern GL_MAX_COMBINED_DIMENSIONS = 0x8282
-
-pattern GL_MAX_DEPTH = 0x8280
-
-pattern GL_MAX_HEIGHT = 0x827F
-
-pattern GL_MAX_LAYERS = 0x8281
-
-pattern GL_MAX_WIDTH = 0x827E
-
-pattern GL_MIPMAP = 0x8293
-
-pattern GL_READ_PIXELS = 0x828C
-
-pattern GL_READ_PIXELS_FORMAT = 0x828D
-
-pattern GL_READ_PIXELS_TYPE = 0x828E
-
-pattern GL_SAMPLES = 0x80A9
-
-pattern GL_SHADER_IMAGE_ATOMIC = 0x82A6
-
-pattern GL_SHADER_IMAGE_LOAD = 0x82A4
-
-pattern GL_SHADER_IMAGE_STORE = 0x82A5
-
-pattern GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_TEST = 0x82AC
-
-pattern GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_WRITE = 0x82AE
-
-pattern GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_TEST = 0x82AD
-
-pattern GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_WRITE = 0x82AF
-
-pattern GL_SRGB_READ = 0x8297
-
-pattern GL_SRGB_WRITE = 0x8298
-
-pattern GL_STENCIL_COMPONENTS = 0x8285
-
-pattern GL_STENCIL_RENDERABLE = 0x8288
-
-pattern GL_TESS_CONTROL_TEXTURE = 0x829C
-
-pattern GL_TESS_EVALUATION_TEXTURE = 0x829D
-
-pattern GL_TEXTURE_1D = 0x0DE0
-
-pattern GL_TEXTURE_1D_ARRAY = 0x8C18
-
-pattern GL_TEXTURE_2D = 0x0DE1
-
-pattern GL_TEXTURE_2D_ARRAY = 0x8C1A
-
-pattern GL_TEXTURE_2D_MULTISAMPLE = 0x9100
-
-pattern GL_TEXTURE_2D_MULTISAMPLE_ARRAY = 0x9102
-
-pattern GL_TEXTURE_3D = 0x806F
-
-pattern GL_TEXTURE_BUFFER = 0x8C2A
-
-pattern GL_TEXTURE_COMPRESSED = 0x86A1
-
-pattern GL_TEXTURE_COMPRESSED_BLOCK_HEIGHT = 0x82B2
-
-pattern GL_TEXTURE_COMPRESSED_BLOCK_SIZE = 0x82B3
-
-pattern GL_TEXTURE_COMPRESSED_BLOCK_WIDTH = 0x82B1
-
-pattern GL_TEXTURE_CUBE_MAP = 0x8513
-
-pattern GL_TEXTURE_CUBE_MAP_ARRAY = 0x9009
-
-pattern GL_TEXTURE_GATHER = 0x82A2
-
-pattern GL_TEXTURE_GATHER_SHADOW = 0x82A3
-
-pattern GL_TEXTURE_IMAGE_FORMAT = 0x828F
-
-pattern GL_TEXTURE_IMAGE_TYPE = 0x8290
-
-pattern GL_TEXTURE_RECTANGLE = 0x84F5
-
-pattern GL_TEXTURE_SHADOW = 0x82A1
-
-pattern GL_TEXTURE_VIEW = 0x82B5
-
-pattern GL_VERTEX_TEXTURE = 0x829B
-
-pattern GL_VIEW_CLASS_128_BITS = 0x82C4
-
-pattern GL_VIEW_CLASS_16_BITS = 0x82CA
-
-pattern GL_VIEW_CLASS_24_BITS = 0x82C9
-
-pattern GL_VIEW_CLASS_32_BITS = 0x82C8
-
-pattern GL_VIEW_CLASS_48_BITS = 0x82C7
-
-pattern GL_VIEW_CLASS_64_BITS = 0x82C6
-
-pattern GL_VIEW_CLASS_8_BITS = 0x82CB
-
-pattern GL_VIEW_CLASS_96_BITS = 0x82C5
-
-pattern GL_VIEW_CLASS_BPTC_FLOAT = 0x82D3
-
-pattern GL_VIEW_CLASS_BPTC_UNORM = 0x82D2
-
-pattern GL_VIEW_CLASS_RGTC1_RED = 0x82D0
-
-pattern GL_VIEW_CLASS_RGTC2_RG = 0x82D1
-
-pattern GL_VIEW_CLASS_S3TC_DXT1_RGB = 0x82CC
-
-pattern GL_VIEW_CLASS_S3TC_DXT1_RGBA = 0x82CD
-
-pattern GL_VIEW_CLASS_S3TC_DXT3_RGBA = 0x82CE
-
-pattern GL_VIEW_CLASS_S3TC_DXT5_RGBA = 0x82CF
-
-pattern GL_VIEW_COMPATIBILITY_CLASS = 0x82B6
-
-glInvalidateBufferData :: MonadIO m => GLuint -> m ()
-glInvalidateBufferData = ffiuintIOV glInvalidateBufferDataFunPtr
-
-glInvalidateBufferDataFunPtr :: FunPtr (GLuint -> IO ())
-glInvalidateBufferDataFunPtr = unsafePerformIO (getProcAddress "glInvalidateBufferData")
-
-{-# NOINLINE glInvalidateBufferDataFunPtr #-}
-
-glInvalidateBufferSubData :: MonadIO m => GLuint -> GLintptr -> GLsizeiptr -> m ()
-glInvalidateBufferSubData = ffiuintintptrsizeiptrIOV glInvalidateBufferSubDataFunPtr
-
-glInvalidateBufferSubDataFunPtr :: FunPtr (GLuint -> GLintptr -> GLsizeiptr -> IO ())
-glInvalidateBufferSubDataFunPtr = unsafePerformIO (getProcAddress "glInvalidateBufferSubData")
-
-{-# NOINLINE glInvalidateBufferSubDataFunPtr #-}
-
-glInvalidateFramebuffer :: MonadIO m => GLenum -> GLsizei -> Ptr GLenum -> m ()
-glInvalidateFramebuffer = ffienumsizeiPtrenumIOV glInvalidateFramebufferFunPtr
-
-glInvalidateFramebufferFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr GLenum -> IO ())
-glInvalidateFramebufferFunPtr = unsafePerformIO (getProcAddress "glInvalidateFramebuffer")
-
-{-# NOINLINE glInvalidateFramebufferFunPtr #-}
-
-glInvalidateSubFramebuffer :: MonadIO m => GLenum -> GLsizei -> Ptr GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> m ()
-glInvalidateSubFramebuffer = ffienumsizeiPtrenumintintsizeisizeiIOV glInvalidateSubFramebufferFunPtr
-
-glInvalidateSubFramebufferFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> IO ())
-glInvalidateSubFramebufferFunPtr = unsafePerformIO (getProcAddress "glInvalidateSubFramebuffer")
-
-{-# NOINLINE glInvalidateSubFramebufferFunPtr #-}
-
-glInvalidateTexImage :: MonadIO m => GLuint -> GLint -> m ()
-glInvalidateTexImage = ffiuintintIOV glInvalidateTexImageFunPtr
-
-glInvalidateTexImageFunPtr :: FunPtr (GLuint -> GLint -> IO ())
-glInvalidateTexImageFunPtr = unsafePerformIO (getProcAddress "glInvalidateTexImage")
-
-{-# NOINLINE glInvalidateTexImageFunPtr #-}
-
-glInvalidateTexSubImage :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> m ()
-glInvalidateTexSubImage = ffiuintintintintintsizeisizeisizeiIOV glInvalidateTexSubImageFunPtr
-
-glInvalidateTexSubImageFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> IO ())
-glInvalidateTexSubImageFunPtr = unsafePerformIO (getProcAddress "glInvalidateTexSubImage")
-
-{-# NOINLINE glInvalidateTexSubImageFunPtr #-}
-
-pattern GL_MIN_MAP_BUFFER_ALIGNMENT = 0x90BC
-
-glFlushMappedBufferRange :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> m ()
-glFlushMappedBufferRange = ffienumintptrsizeiptrIOV glFlushMappedBufferRangeFunPtr
-
-glFlushMappedBufferRangeFunPtr :: FunPtr (GLenum -> GLintptr -> GLsizeiptr -> IO ())
-glFlushMappedBufferRangeFunPtr = unsafePerformIO (getProcAddress "glFlushMappedBufferRange")
-
-{-# NOINLINE glFlushMappedBufferRangeFunPtr #-}
-
-glMapBufferRange :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> GLbitfield -> m (Ptr ())
-glMapBufferRange = ffienumintptrsizeiptrbitfieldIOPtrV glMapBufferRangeFunPtr
-
-glMapBufferRangeFunPtr :: FunPtr (GLenum -> GLintptr -> GLsizeiptr -> GLbitfield -> IO (Ptr ()))
-glMapBufferRangeFunPtr = unsafePerformIO (getProcAddress "glMapBufferRange")
-
-{-# NOINLINE glMapBufferRangeFunPtr #-}
-
-pattern GL_MAP_FLUSH_EXPLICIT_BIT = 0x0010
-
-pattern GL_MAP_INVALIDATE_BUFFER_BIT = 0x0008
-
-pattern GL_MAP_INVALIDATE_RANGE_BIT = 0x0004
-
-pattern GL_MAP_UNSYNCHRONIZED_BIT = 0x0020
-
-glBindBuffersBase :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLuint -> m ()
-glBindBuffersBase = ffienumuintsizeiPtruintIOV glBindBuffersBaseFunPtr
-
-glBindBuffersBaseFunPtr :: FunPtr (GLenum -> GLuint -> GLsizei -> Ptr GLuint -> IO ())
-glBindBuffersBaseFunPtr = unsafePerformIO (getProcAddress "glBindBuffersBase")
-
-{-# NOINLINE glBindBuffersBaseFunPtr #-}
-
-glBindBuffersRange :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLuint -> Ptr GLintptr -> Ptr GLsizeiptr -> m ()
-glBindBuffersRange = ffienumuintsizeiPtruintPtrintptrPtrsizeiptrIOV glBindBuffersRangeFunPtr
-
-glBindBuffersRangeFunPtr :: FunPtr (GLenum -> GLuint -> GLsizei -> Ptr GLuint -> Ptr GLintptr -> Ptr GLsizeiptr -> IO ())
-glBindBuffersRangeFunPtr = unsafePerformIO (getProcAddress "glBindBuffersRange")
-
-{-# NOINLINE glBindBuffersRangeFunPtr #-}
-
-glBindImageTextures :: MonadIO m => GLuint -> GLsizei -> Ptr GLuint -> m ()
-glBindImageTextures = ffiuintsizeiPtruintIOV glBindImageTexturesFunPtr
-
-glBindImageTexturesFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLuint -> IO ())
-glBindImageTexturesFunPtr = unsafePerformIO (getProcAddress "glBindImageTextures")
-
-{-# NOINLINE glBindImageTexturesFunPtr #-}
-
-glBindSamplers :: MonadIO m => GLuint -> GLsizei -> Ptr GLuint -> m ()
-glBindSamplers = ffiuintsizeiPtruintIOV glBindSamplersFunPtr
-
-glBindSamplersFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLuint -> IO ())
-glBindSamplersFunPtr = unsafePerformIO (getProcAddress "glBindSamplers")
-
-{-# NOINLINE glBindSamplersFunPtr #-}
-
-glBindTextures :: MonadIO m => GLuint -> GLsizei -> Ptr GLuint -> m ()
-glBindTextures = ffiuintsizeiPtruintIOV glBindTexturesFunPtr
-
-glBindTexturesFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLuint -> IO ())
-glBindTexturesFunPtr = unsafePerformIO (getProcAddress "glBindTextures")
-
-{-# NOINLINE glBindTexturesFunPtr #-}
-
-glBindVertexBuffers :: MonadIO m => GLuint -> GLsizei -> Ptr GLuint -> Ptr GLintptr -> Ptr GLsizei -> m ()
-glBindVertexBuffers = ffiuintsizeiPtruintPtrintptrPtrsizeiIOV glBindVertexBuffersFunPtr
-
-glBindVertexBuffersFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLuint -> Ptr GLintptr -> Ptr GLsizei -> IO ())
-glBindVertexBuffersFunPtr = unsafePerformIO (getProcAddress "glBindVertexBuffers")
-
-{-# NOINLINE glBindVertexBuffersFunPtr #-}
-
-glMultiDrawArraysIndirect :: MonadIO m => GLenum -> Ptr () -> GLsizei -> GLsizei -> m ()
-glMultiDrawArraysIndirect = ffienumPtrVsizeisizeiIOV glMultiDrawArraysIndirectFunPtr
-
-glMultiDrawArraysIndirectFunPtr :: FunPtr (GLenum -> Ptr () -> GLsizei -> GLsizei -> IO ())
-glMultiDrawArraysIndirectFunPtr = unsafePerformIO (getProcAddress "glMultiDrawArraysIndirect")
-
-{-# NOINLINE glMultiDrawArraysIndirectFunPtr #-}
-
-glMultiDrawElementsIndirect :: MonadIO m => GLenum -> GLenum -> Ptr () -> GLsizei -> GLsizei -> m ()
-glMultiDrawElementsIndirect = ffienumenumPtrVsizeisizeiIOV glMultiDrawElementsIndirectFunPtr
-
-glMultiDrawElementsIndirectFunPtr :: FunPtr (GLenum -> GLenum -> Ptr () -> GLsizei -> GLsizei -> IO ())
-glMultiDrawElementsIndirectFunPtr = unsafePerformIO (getProcAddress "glMultiDrawElementsIndirect")
-
-{-# NOINLINE glMultiDrawElementsIndirectFunPtr #-}
-
-pattern GL_SAMPLES_ARB = 0x80A9
-
-pattern GL_TEXTURE0_ARB = 0x84C0
-
-pattern GL_TEXTURE1_ARB = 0x84C1
-
-pattern GL_ANY_SAMPLES_PASSED = 0x8C2F
-
-glGetProgramInterfaceiv :: MonadIO m => GLuint -> GLenum -> GLenum -> Ptr GLint -> m ()
-glGetProgramInterfaceiv = ffiuintenumenumPtrintIOV glGetProgramInterfaceivFunPtr
-
-glGetProgramInterfaceivFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> Ptr GLint -> IO ())
-glGetProgramInterfaceivFunPtr = unsafePerformIO (getProcAddress "glGetProgramInterfaceiv")
-
-{-# NOINLINE glGetProgramInterfaceivFunPtr #-}
-
-glGetProgramResourceIndex :: MonadIO m => GLuint -> GLenum -> Ptr GLchar -> m GLuint
-glGetProgramResourceIndex = ffiuintenumPtrcharIOuint glGetProgramResourceIndexFunPtr
-
-glGetProgramResourceIndexFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLchar -> IO GLuint)
-glGetProgramResourceIndexFunPtr = unsafePerformIO (getProcAddress "glGetProgramResourceIndex")
-
-{-# NOINLINE glGetProgramResourceIndexFunPtr #-}
-
-glGetProgramResourceLocation :: MonadIO m => GLuint -> GLenum -> Ptr GLchar -> m GLint
-glGetProgramResourceLocation = ffiuintenumPtrcharIOint glGetProgramResourceLocationFunPtr
-
-glGetProgramResourceLocationFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLchar -> IO GLint)
-glGetProgramResourceLocationFunPtr = unsafePerformIO (getProcAddress "glGetProgramResourceLocation")
-
-{-# NOINLINE glGetProgramResourceLocationFunPtr #-}
-
-glGetProgramResourceLocationIndex :: MonadIO m => GLuint -> GLenum -> Ptr GLchar -> m GLint
-glGetProgramResourceLocationIndex = ffiuintenumPtrcharIOint glGetProgramResourceLocationIndexFunPtr
-
-glGetProgramResourceLocationIndexFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLchar -> IO GLint)
-glGetProgramResourceLocationIndexFunPtr = unsafePerformIO (getProcAddress "glGetProgramResourceLocationIndex")
-
-{-# NOINLINE glGetProgramResourceLocationIndexFunPtr #-}
-
-glGetProgramResourceName :: MonadIO m => GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
-glGetProgramResourceName = ffiuintenumuintsizeiPtrsizeiPtrcharIOV glGetProgramResourceNameFunPtr
-
-glGetProgramResourceNameFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
-glGetProgramResourceNameFunPtr = unsafePerformIO (getProcAddress "glGetProgramResourceName")
-
-{-# NOINLINE glGetProgramResourceNameFunPtr #-}
-
-glGetProgramResourceiv :: MonadIO m => GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLint -> m ()
-glGetProgramResourceiv = ffiuintenumuintsizeiPtrenumsizeiPtrsizeiPtrintIOV glGetProgramResourceivFunPtr
-
-glGetProgramResourceivFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLint -> IO ())
-glGetProgramResourceivFunPtr = unsafePerformIO (getProcAddress "glGetProgramResourceiv")
-
-{-# NOINLINE glGetProgramResourceivFunPtr #-}
-
-pattern GL_ACTIVE_RESOURCES = 0x92F5
-
-pattern GL_ACTIVE_VARIABLES = 0x9305
-
-pattern GL_ARRAY_SIZE = 0x92FB
-
-pattern GL_ARRAY_STRIDE = 0x92FE
-
-pattern GL_ATOMIC_COUNTER_BUFFER = 0x92C0
-
-pattern GL_ATOMIC_COUNTER_BUFFER_INDEX = 0x9301
-
-pattern GL_BLOCK_INDEX = 0x92FD
-
-pattern GL_BUFFER_BINDING = 0x9302
-
-pattern GL_BUFFER_DATA_SIZE = 0x9303
-
-pattern GL_BUFFER_VARIABLE = 0x92E5
-
-pattern GL_COMPATIBLE_SUBROUTINES = 0x8E4B
-
-pattern GL_COMPUTE_SUBROUTINE = 0x92ED
-
-pattern GL_COMPUTE_SUBROUTINE_UNIFORM = 0x92F3
-
-pattern GL_FRAGMENT_SUBROUTINE = 0x92EC
-
-pattern GL_FRAGMENT_SUBROUTINE_UNIFORM = 0x92F2
-
-pattern GL_GEOMETRY_SUBROUTINE = 0x92EB
-
-pattern GL_GEOMETRY_SUBROUTINE_UNIFORM = 0x92F1
-
-pattern GL_IS_PER_PATCH = 0x92E7
-
-pattern GL_IS_ROW_MAJOR = 0x9300
-
-pattern GL_LOCATION = 0x930E
-
-pattern GL_LOCATION_INDEX = 0x930F
-
-pattern GL_MATRIX_STRIDE = 0x92FF
-
-pattern GL_MAX_NAME_LENGTH = 0x92F6
-
-pattern GL_MAX_NUM_ACTIVE_VARIABLES = 0x92F7
-
-pattern GL_MAX_NUM_COMPATIBLE_SUBROUTINES = 0x92F8
-
-pattern GL_NAME_LENGTH = 0x92F9
-
-pattern GL_NUM_ACTIVE_VARIABLES = 0x9304
-
-pattern GL_NUM_COMPATIBLE_SUBROUTINES = 0x8E4A
-
-pattern GL_OFFSET = 0x92FC
-
-pattern GL_PROGRAM_INPUT = 0x92E3
-
-pattern GL_PROGRAM_OUTPUT = 0x92E4
-
-pattern GL_REFERENCED_BY_COMPUTE_SHADER = 0x930B
-
-pattern GL_REFERENCED_BY_FRAGMENT_SHADER = 0x930A
-
-pattern GL_REFERENCED_BY_GEOMETRY_SHADER = 0x9309
-
-pattern GL_REFERENCED_BY_TESS_CONTROL_SHADER = 0x9307
-
-pattern GL_REFERENCED_BY_TESS_EVALUATION_SHADER = 0x9308
-
-pattern GL_REFERENCED_BY_VERTEX_SHADER = 0x9306
-
-pattern GL_SHADER_STORAGE_BLOCK = 0x92E6
-
-pattern GL_TESS_CONTROL_SUBROUTINE = 0x92E9
-
-pattern GL_TESS_CONTROL_SUBROUTINE_UNIFORM = 0x92EF
-
-pattern GL_TESS_EVALUATION_SUBROUTINE = 0x92EA
-
-pattern GL_TESS_EVALUATION_SUBROUTINE_UNIFORM = 0x92F0
-
-pattern GL_TOP_LEVEL_ARRAY_SIZE = 0x930C
-
-pattern GL_TOP_LEVEL_ARRAY_STRIDE = 0x930D
-
-pattern GL_TRANSFORM_FEEDBACK_VARYING = 0x92F4
-
-pattern GL_TYPE = 0x92FA
-
-pattern GL_UNIFORM = 0x92E1
-
-pattern GL_UNIFORM_BLOCK = 0x92E2
-
-pattern GL_VERTEX_SUBROUTINE = 0x92E8
-
-pattern GL_VERTEX_SUBROUTINE_UNIFORM = 0x92EE
-
-glProvokingVertex :: MonadIO m => GLenum -> m ()
-glProvokingVertex = ffienumIOV glProvokingVertexFunPtr
-
-glProvokingVertexFunPtr :: FunPtr (GLenum -> IO ())
-glProvokingVertexFunPtr = unsafePerformIO (getProcAddress "glProvokingVertex")
-
-{-# NOINLINE glProvokingVertexFunPtr #-}
-
-pattern GL_FIRST_VERTEX_CONVENTION = 0x8E4D
-
-pattern GL_LAST_VERTEX_CONVENTION = 0x8E4E
-
-pattern GL_PROVOKING_VERTEX = 0x8E4F
-
-pattern GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION = 0x8E4C
-
-pattern GL_QUERY_BUFFER = 0x9192
-
-pattern GL_QUERY_BUFFER_BARRIER_BIT = 0x00008000
-
-pattern GL_QUERY_BUFFER_BINDING = 0x9193
-
-pattern GL_QUERY_RESULT_NO_WAIT = 0x9194
-
-pattern GL_NO_ERROR = 0
-
-glBindSampler :: MonadIO m => GLuint -> GLuint -> m ()
-glBindSampler = ffiuintuintIOV glBindSamplerFunPtr
-
-glBindSamplerFunPtr :: FunPtr (GLuint -> GLuint -> IO ())
-glBindSamplerFunPtr = unsafePerformIO (getProcAddress "glBindSampler")
-
-{-# NOINLINE glBindSamplerFunPtr #-}
-
-glDeleteSamplers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
-glDeleteSamplers = ffisizeiPtruintIOV glDeleteSamplersFunPtr
-
-glDeleteSamplersFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
-glDeleteSamplersFunPtr = unsafePerformIO (getProcAddress "glDeleteSamplers")
-
-{-# NOINLINE glDeleteSamplersFunPtr #-}
-
-glGenSamplers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
-glGenSamplers = ffisizeiPtruintIOV glGenSamplersFunPtr
-
-glGenSamplersFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
-glGenSamplersFunPtr = unsafePerformIO (getProcAddress "glGenSamplers")
-
-{-# NOINLINE glGenSamplersFunPtr #-}
-
-glGetSamplerParameterIiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
-glGetSamplerParameterIiv = ffiuintenumPtrintIOV glGetSamplerParameterIivFunPtr
-
-glGetSamplerParameterIivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
-glGetSamplerParameterIivFunPtr = unsafePerformIO (getProcAddress "glGetSamplerParameterIiv")
-
-{-# NOINLINE glGetSamplerParameterIivFunPtr #-}
-
-glGetSamplerParameterIuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()
-glGetSamplerParameterIuiv = ffiuintenumPtruintIOV glGetSamplerParameterIuivFunPtr
-
-glGetSamplerParameterIuivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLuint -> IO ())
-glGetSamplerParameterIuivFunPtr = unsafePerformIO (getProcAddress "glGetSamplerParameterIuiv")
-
-{-# NOINLINE glGetSamplerParameterIuivFunPtr #-}
-
-glGetSamplerParameterfv :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()
-glGetSamplerParameterfv = ffiuintenumPtrfloatIOV glGetSamplerParameterfvFunPtr
-
-glGetSamplerParameterfvFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLfloat -> IO ())
-glGetSamplerParameterfvFunPtr = unsafePerformIO (getProcAddress "glGetSamplerParameterfv")
-
-{-# NOINLINE glGetSamplerParameterfvFunPtr #-}
-
-glGetSamplerParameteriv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
-glGetSamplerParameteriv = ffiuintenumPtrintIOV glGetSamplerParameterivFunPtr
-
-glGetSamplerParameterivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
-glGetSamplerParameterivFunPtr = unsafePerformIO (getProcAddress "glGetSamplerParameteriv")
-
-{-# NOINLINE glGetSamplerParameterivFunPtr #-}
-
-glIsSampler :: MonadIO m => GLuint -> m GLboolean
-glIsSampler = ffiuintIOboolean glIsSamplerFunPtr
-
-glIsSamplerFunPtr :: FunPtr (GLuint -> IO GLboolean)
-glIsSamplerFunPtr = unsafePerformIO (getProcAddress "glIsSampler")
-
-{-# NOINLINE glIsSamplerFunPtr #-}
-
-glSamplerParameterIiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
-glSamplerParameterIiv = ffiuintenumPtrintIOV glSamplerParameterIivFunPtr
-
-glSamplerParameterIivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
-glSamplerParameterIivFunPtr = unsafePerformIO (getProcAddress "glSamplerParameterIiv")
-
-{-# NOINLINE glSamplerParameterIivFunPtr #-}
-
-glSamplerParameterIuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()
-glSamplerParameterIuiv = ffiuintenumPtruintIOV glSamplerParameterIuivFunPtr
-
-glSamplerParameterIuivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLuint -> IO ())
-glSamplerParameterIuivFunPtr = unsafePerformIO (getProcAddress "glSamplerParameterIuiv")
-
-{-# NOINLINE glSamplerParameterIuivFunPtr #-}
-
-glSamplerParameterf :: MonadIO m => GLuint -> GLenum -> GLfloat -> m ()
-glSamplerParameterf = ffiuintenumfloatIOV glSamplerParameterfFunPtr
-
-glSamplerParameterfFunPtr :: FunPtr (GLuint -> GLenum -> GLfloat -> IO ())
-glSamplerParameterfFunPtr = unsafePerformIO (getProcAddress "glSamplerParameterf")
-
-{-# NOINLINE glSamplerParameterfFunPtr #-}
-
-glSamplerParameterfv :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()
-glSamplerParameterfv = ffiuintenumPtrfloatIOV glSamplerParameterfvFunPtr
-
-glSamplerParameterfvFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLfloat -> IO ())
-glSamplerParameterfvFunPtr = unsafePerformIO (getProcAddress "glSamplerParameterfv")
-
-{-# NOINLINE glSamplerParameterfvFunPtr #-}
-
-glSamplerParameteri :: MonadIO m => GLuint -> GLenum -> GLint -> m ()
-glSamplerParameteri = ffiuintenumintIOV glSamplerParameteriFunPtr
-
-glSamplerParameteriFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> IO ())
-glSamplerParameteriFunPtr = unsafePerformIO (getProcAddress "glSamplerParameteri")
-
-{-# NOINLINE glSamplerParameteriFunPtr #-}
-
-glSamplerParameteriv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
-glSamplerParameteriv = ffiuintenumPtrintIOV glSamplerParameterivFunPtr
-
-glSamplerParameterivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
-glSamplerParameterivFunPtr = unsafePerformIO (getProcAddress "glSamplerParameteriv")
-
-{-# NOINLINE glSamplerParameterivFunPtr #-}
-
-pattern GL_SAMPLER_BINDING = 0x8919
-
-glActiveShaderProgram :: MonadIO m => GLuint -> GLuint -> m ()
-glActiveShaderProgram = ffiuintuintIOV glActiveShaderProgramFunPtr
-
-glActiveShaderProgramFunPtr :: FunPtr (GLuint -> GLuint -> IO ())
-glActiveShaderProgramFunPtr = unsafePerformIO (getProcAddress "glActiveShaderProgram")
-
-{-# NOINLINE glActiveShaderProgramFunPtr #-}
-
-glBindProgramPipeline :: MonadIO m => GLuint -> m ()
-glBindProgramPipeline = ffiuintIOV glBindProgramPipelineFunPtr
-
-glBindProgramPipelineFunPtr :: FunPtr (GLuint -> IO ())
-glBindProgramPipelineFunPtr = unsafePerformIO (getProcAddress "glBindProgramPipeline")
-
-{-# NOINLINE glBindProgramPipelineFunPtr #-}
-
-glCreateShaderProgramv :: MonadIO m => GLenum -> GLsizei -> Ptr GLchar -> m GLuint
-glCreateShaderProgramv = ffienumsizeiPtrcharIOuint glCreateShaderProgramvFunPtr
-
-glCreateShaderProgramvFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr GLchar -> IO GLuint)
-glCreateShaderProgramvFunPtr = unsafePerformIO (getProcAddress "glCreateShaderProgramv")
-
-{-# NOINLINE glCreateShaderProgramvFunPtr #-}
-
-glDeleteProgramPipelines :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
-glDeleteProgramPipelines = ffisizeiPtruintIOV glDeleteProgramPipelinesFunPtr
-
-glDeleteProgramPipelinesFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
-glDeleteProgramPipelinesFunPtr = unsafePerformIO (getProcAddress "glDeleteProgramPipelines")
-
-{-# NOINLINE glDeleteProgramPipelinesFunPtr #-}
-
-glGenProgramPipelines :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
-glGenProgramPipelines = ffisizeiPtruintIOV glGenProgramPipelinesFunPtr
-
-glGenProgramPipelinesFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
-glGenProgramPipelinesFunPtr = unsafePerformIO (getProcAddress "glGenProgramPipelines")
-
-{-# NOINLINE glGenProgramPipelinesFunPtr #-}
-
-glGetProgramPipelineInfoLog :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
-glGetProgramPipelineInfoLog = ffiuintsizeiPtrsizeiPtrcharIOV glGetProgramPipelineInfoLogFunPtr
-
-glGetProgramPipelineInfoLogFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
-glGetProgramPipelineInfoLogFunPtr = unsafePerformIO (getProcAddress "glGetProgramPipelineInfoLog")
-
-{-# NOINLINE glGetProgramPipelineInfoLogFunPtr #-}
-
-glGetProgramPipelineiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
-glGetProgramPipelineiv = ffiuintenumPtrintIOV glGetProgramPipelineivFunPtr
-
-glGetProgramPipelineivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
-glGetProgramPipelineivFunPtr = unsafePerformIO (getProcAddress "glGetProgramPipelineiv")
-
-{-# NOINLINE glGetProgramPipelineivFunPtr #-}
-
-glIsProgramPipeline :: MonadIO m => GLuint -> m GLboolean
-glIsProgramPipeline = ffiuintIOboolean glIsProgramPipelineFunPtr
-
-glIsProgramPipelineFunPtr :: FunPtr (GLuint -> IO GLboolean)
-glIsProgramPipelineFunPtr = unsafePerformIO (getProcAddress "glIsProgramPipeline")
-
-{-# NOINLINE glIsProgramPipelineFunPtr #-}
-
-glProgramUniform1d :: MonadIO m => GLuint -> GLint -> GLdouble -> m ()
-glProgramUniform1d = ffiuintintdoubleIOV glProgramUniform1dFunPtr
-
-glProgramUniform1dFunPtr :: FunPtr (GLuint -> GLint -> GLdouble -> IO ())
-glProgramUniform1dFunPtr = unsafePerformIO (getProcAddress "glProgramUniform1d")
-
-{-# NOINLINE glProgramUniform1dFunPtr #-}
-
-glProgramUniform1dv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLdouble -> m ()
-glProgramUniform1dv = ffiuintintsizeiPtrdoubleIOV glProgramUniform1dvFunPtr
-
-glProgramUniform1dvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLdouble -> IO ())
-glProgramUniform1dvFunPtr = unsafePerformIO (getProcAddress "glProgramUniform1dv")
-
-{-# NOINLINE glProgramUniform1dvFunPtr #-}
-
-glProgramUniform1f :: MonadIO m => GLuint -> GLint -> GLfloat -> m ()
-glProgramUniform1f = ffiuintintfloatIOV glProgramUniform1fFunPtr
-
-glProgramUniform1fFunPtr :: FunPtr (GLuint -> GLint -> GLfloat -> IO ())
-glProgramUniform1fFunPtr = unsafePerformIO (getProcAddress "glProgramUniform1f")
-
-{-# NOINLINE glProgramUniform1fFunPtr #-}
-
-glProgramUniform1fv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()
-glProgramUniform1fv = ffiuintintsizeiPtrfloatIOV glProgramUniform1fvFunPtr
-
-glProgramUniform1fvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLfloat -> IO ())
-glProgramUniform1fvFunPtr = unsafePerformIO (getProcAddress "glProgramUniform1fv")
-
-{-# NOINLINE glProgramUniform1fvFunPtr #-}
-
-glProgramUniform1i :: MonadIO m => GLuint -> GLint -> GLint -> m ()
-glProgramUniform1i = ffiuintintintIOV glProgramUniform1iFunPtr
-
-glProgramUniform1iFunPtr :: FunPtr (GLuint -> GLint -> GLint -> IO ())
-glProgramUniform1iFunPtr = unsafePerformIO (getProcAddress "glProgramUniform1i")
-
-{-# NOINLINE glProgramUniform1iFunPtr #-}
-
-glProgramUniform1iv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()
-glProgramUniform1iv = ffiuintintsizeiPtrintIOV glProgramUniform1ivFunPtr
-
-glProgramUniform1ivFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint -> IO ())
-glProgramUniform1ivFunPtr = unsafePerformIO (getProcAddress "glProgramUniform1iv")
-
-{-# NOINLINE glProgramUniform1ivFunPtr #-}
-
-glProgramUniform1ui :: MonadIO m => GLuint -> GLint -> GLuint -> m ()
-glProgramUniform1ui = ffiuintintuintIOV glProgramUniform1uiFunPtr
-
-glProgramUniform1uiFunPtr :: FunPtr (GLuint -> GLint -> GLuint -> IO ())
-glProgramUniform1uiFunPtr = unsafePerformIO (getProcAddress "glProgramUniform1ui")
-
-{-# NOINLINE glProgramUniform1uiFunPtr #-}
-
-glProgramUniform1uiv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()
-glProgramUniform1uiv = ffiuintintsizeiPtruintIOV glProgramUniform1uivFunPtr
-
-glProgramUniform1uivFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint -> IO ())
-glProgramUniform1uivFunPtr = unsafePerformIO (getProcAddress "glProgramUniform1uiv")
-
-{-# NOINLINE glProgramUniform1uivFunPtr #-}
-
-glProgramUniform2d :: MonadIO m => GLuint -> GLint -> GLdouble -> GLdouble -> m ()
-glProgramUniform2d = ffiuintintdoubledoubleIOV glProgramUniform2dFunPtr
-
-glProgramUniform2dFunPtr :: FunPtr (GLuint -> GLint -> GLdouble -> GLdouble -> IO ())
-glProgramUniform2dFunPtr = unsafePerformIO (getProcAddress "glProgramUniform2d")
-
-{-# NOINLINE glProgramUniform2dFunPtr #-}
-
-glProgramUniform2dv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLdouble -> m ()
-glProgramUniform2dv = ffiuintintsizeiPtrdoubleIOV glProgramUniform2dvFunPtr
-
-glProgramUniform2dvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLdouble -> IO ())
-glProgramUniform2dvFunPtr = unsafePerformIO (getProcAddress "glProgramUniform2dv")
-
-{-# NOINLINE glProgramUniform2dvFunPtr #-}
-
-glProgramUniform2f :: MonadIO m => GLuint -> GLint -> GLfloat -> GLfloat -> m ()
-glProgramUniform2f = ffiuintintfloatfloatIOV glProgramUniform2fFunPtr
-
-glProgramUniform2fFunPtr :: FunPtr (GLuint -> GLint -> GLfloat -> GLfloat -> IO ())
-glProgramUniform2fFunPtr = unsafePerformIO (getProcAddress "glProgramUniform2f")
-
-{-# NOINLINE glProgramUniform2fFunPtr #-}
-
-glProgramUniform2fv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()
-glProgramUniform2fv = ffiuintintsizeiPtrfloatIOV glProgramUniform2fvFunPtr
-
-glProgramUniform2fvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLfloat -> IO ())
-glProgramUniform2fvFunPtr = unsafePerformIO (getProcAddress "glProgramUniform2fv")
-
-{-# NOINLINE glProgramUniform2fvFunPtr #-}
-
-glProgramUniform2i :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> m ()
-glProgramUniform2i = ffiuintintintintIOV glProgramUniform2iFunPtr
-
-glProgramUniform2iFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> IO ())
-glProgramUniform2iFunPtr = unsafePerformIO (getProcAddress "glProgramUniform2i")
-
-{-# NOINLINE glProgramUniform2iFunPtr #-}
-
-glProgramUniform2iv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()
-glProgramUniform2iv = ffiuintintsizeiPtrintIOV glProgramUniform2ivFunPtr
-
-glProgramUniform2ivFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint -> IO ())
-glProgramUniform2ivFunPtr = unsafePerformIO (getProcAddress "glProgramUniform2iv")
-
-{-# NOINLINE glProgramUniform2ivFunPtr #-}
-
-glProgramUniform2ui :: MonadIO m => GLuint -> GLint -> GLuint -> GLuint -> m ()
-glProgramUniform2ui = ffiuintintuintuintIOV glProgramUniform2uiFunPtr
-
-glProgramUniform2uiFunPtr :: FunPtr (GLuint -> GLint -> GLuint -> GLuint -> IO ())
-glProgramUniform2uiFunPtr = unsafePerformIO (getProcAddress "glProgramUniform2ui")
-
-{-# NOINLINE glProgramUniform2uiFunPtr #-}
-
-glProgramUniform2uiv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()
-glProgramUniform2uiv = ffiuintintsizeiPtruintIOV glProgramUniform2uivFunPtr
-
-glProgramUniform2uivFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint -> IO ())
-glProgramUniform2uivFunPtr = unsafePerformIO (getProcAddress "glProgramUniform2uiv")
-
-{-# NOINLINE glProgramUniform2uivFunPtr #-}
-
-glProgramUniform3d :: MonadIO m => GLuint -> GLint -> GLdouble -> GLdouble -> GLdouble -> m ()
-glProgramUniform3d = ffiuintintdoubledoubledoubleIOV glProgramUniform3dFunPtr
-
-glProgramUniform3dFunPtr :: FunPtr (GLuint -> GLint -> GLdouble -> GLdouble -> GLdouble -> IO ())
-glProgramUniform3dFunPtr = unsafePerformIO (getProcAddress "glProgramUniform3d")
-
-{-# NOINLINE glProgramUniform3dFunPtr #-}
-
-glProgramUniform3dv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLdouble -> m ()
-glProgramUniform3dv = ffiuintintsizeiPtrdoubleIOV glProgramUniform3dvFunPtr
-
-glProgramUniform3dvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLdouble -> IO ())
-glProgramUniform3dvFunPtr = unsafePerformIO (getProcAddress "glProgramUniform3dv")
-
-{-# NOINLINE glProgramUniform3dvFunPtr #-}
-
-glProgramUniform3f :: MonadIO m => GLuint -> GLint -> GLfloat -> GLfloat -> GLfloat -> m ()
-glProgramUniform3f = ffiuintintfloatfloatfloatIOV glProgramUniform3fFunPtr
-
-glProgramUniform3fFunPtr :: FunPtr (GLuint -> GLint -> GLfloat -> GLfloat -> GLfloat -> IO ())
-glProgramUniform3fFunPtr = unsafePerformIO (getProcAddress "glProgramUniform3f")
-
-{-# NOINLINE glProgramUniform3fFunPtr #-}
-
-glProgramUniform3fv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()
-glProgramUniform3fv = ffiuintintsizeiPtrfloatIOV glProgramUniform3fvFunPtr
-
-glProgramUniform3fvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLfloat -> IO ())
-glProgramUniform3fvFunPtr = unsafePerformIO (getProcAddress "glProgramUniform3fv")
-
-{-# NOINLINE glProgramUniform3fvFunPtr #-}
-
-glProgramUniform3i :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> m ()
-glProgramUniform3i = ffiuintintintintintIOV glProgramUniform3iFunPtr
-
-glProgramUniform3iFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> IO ())
-glProgramUniform3iFunPtr = unsafePerformIO (getProcAddress "glProgramUniform3i")
-
-{-# NOINLINE glProgramUniform3iFunPtr #-}
-
-glProgramUniform3iv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()
-glProgramUniform3iv = ffiuintintsizeiPtrintIOV glProgramUniform3ivFunPtr
-
-glProgramUniform3ivFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint -> IO ())
-glProgramUniform3ivFunPtr = unsafePerformIO (getProcAddress "glProgramUniform3iv")
-
-{-# NOINLINE glProgramUniform3ivFunPtr #-}
-
-glProgramUniform3ui :: MonadIO m => GLuint -> GLint -> GLuint -> GLuint -> GLuint -> m ()
-glProgramUniform3ui = ffiuintintuintuintuintIOV glProgramUniform3uiFunPtr
-
-glProgramUniform3uiFunPtr :: FunPtr (GLuint -> GLint -> GLuint -> GLuint -> GLuint -> IO ())
-glProgramUniform3uiFunPtr = unsafePerformIO (getProcAddress "glProgramUniform3ui")
-
-{-# NOINLINE glProgramUniform3uiFunPtr #-}
-
-glProgramUniform3uiv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()
-glProgramUniform3uiv = ffiuintintsizeiPtruintIOV glProgramUniform3uivFunPtr
-
-glProgramUniform3uivFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint -> IO ())
-glProgramUniform3uivFunPtr = unsafePerformIO (getProcAddress "glProgramUniform3uiv")
-
-{-# NOINLINE glProgramUniform3uivFunPtr #-}
-
-glProgramUniform4d :: MonadIO m => GLuint -> GLint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
-glProgramUniform4d = ffiuintintdoubledoubledoubledoubleIOV glProgramUniform4dFunPtr
-
-glProgramUniform4dFunPtr :: FunPtr (GLuint -> GLint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
-glProgramUniform4dFunPtr = unsafePerformIO (getProcAddress "glProgramUniform4d")
-
-{-# NOINLINE glProgramUniform4dFunPtr #-}
-
-glProgramUniform4dv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLdouble -> m ()
-glProgramUniform4dv = ffiuintintsizeiPtrdoubleIOV glProgramUniform4dvFunPtr
-
-glProgramUniform4dvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLdouble -> IO ())
-glProgramUniform4dvFunPtr = unsafePerformIO (getProcAddress "glProgramUniform4dv")
-
-{-# NOINLINE glProgramUniform4dvFunPtr #-}
-
-glProgramUniform4f :: MonadIO m => GLuint -> GLint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
-glProgramUniform4f = ffiuintintfloatfloatfloatfloatIOV glProgramUniform4fFunPtr
-
-glProgramUniform4fFunPtr :: FunPtr (GLuint -> GLint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
-glProgramUniform4fFunPtr = unsafePerformIO (getProcAddress "glProgramUniform4f")
-
-{-# NOINLINE glProgramUniform4fFunPtr #-}
-
-glProgramUniform4fv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()
-glProgramUniform4fv = ffiuintintsizeiPtrfloatIOV glProgramUniform4fvFunPtr
-
-glProgramUniform4fvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLfloat -> IO ())
-glProgramUniform4fvFunPtr = unsafePerformIO (getProcAddress "glProgramUniform4fv")
-
-{-# NOINLINE glProgramUniform4fvFunPtr #-}
-
-glProgramUniform4i :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> m ()
-glProgramUniform4i = ffiuintintintintintintIOV glProgramUniform4iFunPtr
-
-glProgramUniform4iFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> IO ())
-glProgramUniform4iFunPtr = unsafePerformIO (getProcAddress "glProgramUniform4i")
-
-{-# NOINLINE glProgramUniform4iFunPtr #-}
-
-glProgramUniform4iv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()
-glProgramUniform4iv = ffiuintintsizeiPtrintIOV glProgramUniform4ivFunPtr
-
-glProgramUniform4ivFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint -> IO ())
-glProgramUniform4ivFunPtr = unsafePerformIO (getProcAddress "glProgramUniform4iv")
-
-{-# NOINLINE glProgramUniform4ivFunPtr #-}
-
-glProgramUniform4ui :: MonadIO m => GLuint -> GLint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
-glProgramUniform4ui = ffiuintintuintuintuintuintIOV glProgramUniform4uiFunPtr
-
-glProgramUniform4uiFunPtr :: FunPtr (GLuint -> GLint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ())
-glProgramUniform4uiFunPtr = unsafePerformIO (getProcAddress "glProgramUniform4ui")
-
-{-# NOINLINE glProgramUniform4uiFunPtr #-}
-
-glProgramUniform4uiv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()
-glProgramUniform4uiv = ffiuintintsizeiPtruintIOV glProgramUniform4uivFunPtr
-
-glProgramUniform4uivFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint -> IO ())
-glProgramUniform4uivFunPtr = unsafePerformIO (getProcAddress "glProgramUniform4uiv")
-
-{-# NOINLINE glProgramUniform4uivFunPtr #-}
-
-glProgramUniformMatrix2dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
-glProgramUniformMatrix2dv = ffiuintintsizeibooleanPtrdoubleIOV glProgramUniformMatrix2dvFunPtr
-
-glProgramUniformMatrix2dvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
-glProgramUniformMatrix2dvFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix2dv")
-
-{-# NOINLINE glProgramUniformMatrix2dvFunPtr #-}
-
-glProgramUniformMatrix2fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
-glProgramUniformMatrix2fv = ffiuintintsizeibooleanPtrfloatIOV glProgramUniformMatrix2fvFunPtr
-
-glProgramUniformMatrix2fvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
-glProgramUniformMatrix2fvFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix2fv")
-
-{-# NOINLINE glProgramUniformMatrix2fvFunPtr #-}
-
-glProgramUniformMatrix2x3dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
-glProgramUniformMatrix2x3dv = ffiuintintsizeibooleanPtrdoubleIOV glProgramUniformMatrix2x3dvFunPtr
-
-glProgramUniformMatrix2x3dvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
-glProgramUniformMatrix2x3dvFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix2x3dv")
-
-{-# NOINLINE glProgramUniformMatrix2x3dvFunPtr #-}
-
-glProgramUniformMatrix2x3fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
-glProgramUniformMatrix2x3fv = ffiuintintsizeibooleanPtrfloatIOV glProgramUniformMatrix2x3fvFunPtr
-
-glProgramUniformMatrix2x3fvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
-glProgramUniformMatrix2x3fvFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix2x3fv")
-
-{-# NOINLINE glProgramUniformMatrix2x3fvFunPtr #-}
-
-glProgramUniformMatrix2x4dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
-glProgramUniformMatrix2x4dv = ffiuintintsizeibooleanPtrdoubleIOV glProgramUniformMatrix2x4dvFunPtr
-
-glProgramUniformMatrix2x4dvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
-glProgramUniformMatrix2x4dvFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix2x4dv")
-
-{-# NOINLINE glProgramUniformMatrix2x4dvFunPtr #-}
-
-glProgramUniformMatrix2x4fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
-glProgramUniformMatrix2x4fv = ffiuintintsizeibooleanPtrfloatIOV glProgramUniformMatrix2x4fvFunPtr
-
-glProgramUniformMatrix2x4fvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
-glProgramUniformMatrix2x4fvFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix2x4fv")
-
-{-# NOINLINE glProgramUniformMatrix2x4fvFunPtr #-}
-
-glProgramUniformMatrix3dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
-glProgramUniformMatrix3dv = ffiuintintsizeibooleanPtrdoubleIOV glProgramUniformMatrix3dvFunPtr
-
-glProgramUniformMatrix3dvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
-glProgramUniformMatrix3dvFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix3dv")
-
-{-# NOINLINE glProgramUniformMatrix3dvFunPtr #-}
-
-glProgramUniformMatrix3fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
-glProgramUniformMatrix3fv = ffiuintintsizeibooleanPtrfloatIOV glProgramUniformMatrix3fvFunPtr
-
-glProgramUniformMatrix3fvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
-glProgramUniformMatrix3fvFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix3fv")
-
-{-# NOINLINE glProgramUniformMatrix3fvFunPtr #-}
-
-glProgramUniformMatrix3x2dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
-glProgramUniformMatrix3x2dv = ffiuintintsizeibooleanPtrdoubleIOV glProgramUniformMatrix3x2dvFunPtr
-
-glProgramUniformMatrix3x2dvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
-glProgramUniformMatrix3x2dvFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix3x2dv")
-
-{-# NOINLINE glProgramUniformMatrix3x2dvFunPtr #-}
-
-glProgramUniformMatrix3x2fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
-glProgramUniformMatrix3x2fv = ffiuintintsizeibooleanPtrfloatIOV glProgramUniformMatrix3x2fvFunPtr
-
-glProgramUniformMatrix3x2fvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
-glProgramUniformMatrix3x2fvFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix3x2fv")
-
-{-# NOINLINE glProgramUniformMatrix3x2fvFunPtr #-}
-
-glProgramUniformMatrix3x4dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
-glProgramUniformMatrix3x4dv = ffiuintintsizeibooleanPtrdoubleIOV glProgramUniformMatrix3x4dvFunPtr
-
-glProgramUniformMatrix3x4dvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
-glProgramUniformMatrix3x4dvFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix3x4dv")
-
-{-# NOINLINE glProgramUniformMatrix3x4dvFunPtr #-}
-
-glProgramUniformMatrix3x4fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
-glProgramUniformMatrix3x4fv = ffiuintintsizeibooleanPtrfloatIOV glProgramUniformMatrix3x4fvFunPtr
-
-glProgramUniformMatrix3x4fvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
-glProgramUniformMatrix3x4fvFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix3x4fv")
-
-{-# NOINLINE glProgramUniformMatrix3x4fvFunPtr #-}
-
-glProgramUniformMatrix4dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
-glProgramUniformMatrix4dv = ffiuintintsizeibooleanPtrdoubleIOV glProgramUniformMatrix4dvFunPtr
-
-glProgramUniformMatrix4dvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
-glProgramUniformMatrix4dvFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix4dv")
-
-{-# NOINLINE glProgramUniformMatrix4dvFunPtr #-}
-
-glProgramUniformMatrix4fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
-glProgramUniformMatrix4fv = ffiuintintsizeibooleanPtrfloatIOV glProgramUniformMatrix4fvFunPtr
-
-glProgramUniformMatrix4fvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
-glProgramUniformMatrix4fvFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix4fv")
-
-{-# NOINLINE glProgramUniformMatrix4fvFunPtr #-}
-
-glProgramUniformMatrix4x2dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
-glProgramUniformMatrix4x2dv = ffiuintintsizeibooleanPtrdoubleIOV glProgramUniformMatrix4x2dvFunPtr
-
-glProgramUniformMatrix4x2dvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
-glProgramUniformMatrix4x2dvFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix4x2dv")
-
-{-# NOINLINE glProgramUniformMatrix4x2dvFunPtr #-}
-
-glProgramUniformMatrix4x2fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
-glProgramUniformMatrix4x2fv = ffiuintintsizeibooleanPtrfloatIOV glProgramUniformMatrix4x2fvFunPtr
-
-glProgramUniformMatrix4x2fvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
-glProgramUniformMatrix4x2fvFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix4x2fv")
-
-{-# NOINLINE glProgramUniformMatrix4x2fvFunPtr #-}
-
-glProgramUniformMatrix4x3dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
-glProgramUniformMatrix4x3dv = ffiuintintsizeibooleanPtrdoubleIOV glProgramUniformMatrix4x3dvFunPtr
-
-glProgramUniformMatrix4x3dvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
-glProgramUniformMatrix4x3dvFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix4x3dv")
-
-{-# NOINLINE glProgramUniformMatrix4x3dvFunPtr #-}
-
-glProgramUniformMatrix4x3fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
-glProgramUniformMatrix4x3fv = ffiuintintsizeibooleanPtrfloatIOV glProgramUniformMatrix4x3fvFunPtr
-
-glProgramUniformMatrix4x3fvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
-glProgramUniformMatrix4x3fvFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix4x3fv")
-
-{-# NOINLINE glProgramUniformMatrix4x3fvFunPtr #-}
-
-glUseProgramStages :: MonadIO m => GLuint -> GLbitfield -> GLuint -> m ()
-glUseProgramStages = ffiuintbitfielduintIOV glUseProgramStagesFunPtr
-
-glUseProgramStagesFunPtr :: FunPtr (GLuint -> GLbitfield -> GLuint -> IO ())
-glUseProgramStagesFunPtr = unsafePerformIO (getProcAddress "glUseProgramStages")
-
-{-# NOINLINE glUseProgramStagesFunPtr #-}
-
-glValidateProgramPipeline :: MonadIO m => GLuint -> m ()
-glValidateProgramPipeline = ffiuintIOV glValidateProgramPipelineFunPtr
-
-glValidateProgramPipelineFunPtr :: FunPtr (GLuint -> IO ())
-glValidateProgramPipelineFunPtr = unsafePerformIO (getProcAddress "glValidateProgramPipeline")
-
-{-# NOINLINE glValidateProgramPipelineFunPtr #-}
-
-pattern GL_ACTIVE_PROGRAM = 0x8259
-
-pattern GL_ALL_SHADER_BITS = 0xFFFFFFFF
-
-pattern GL_FRAGMENT_SHADER_BIT = 0x00000002
-
-pattern GL_GEOMETRY_SHADER_BIT = 0x00000004
-
-pattern GL_PROGRAM_PIPELINE_BINDING = 0x825A
-
-pattern GL_PROGRAM_SEPARABLE = 0x8258
-
-pattern GL_TESS_CONTROL_SHADER_BIT = 0x00000008
-
-pattern GL_TESS_EVALUATION_SHADER_BIT = 0x00000010
-
-pattern GL_VERTEX_SHADER_BIT = 0x00000001
-
-glGetActiveAtomicCounterBufferiv :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr GLint -> m ()
-glGetActiveAtomicCounterBufferiv = ffiuintuintenumPtrintIOV glGetActiveAtomicCounterBufferivFunPtr
-
-glGetActiveAtomicCounterBufferivFunPtr :: FunPtr (GLuint -> GLuint -> GLenum -> Ptr GLint -> IO ())
-glGetActiveAtomicCounterBufferivFunPtr = unsafePerformIO (getProcAddress "glGetActiveAtomicCounterBufferiv")
-
-{-# NOINLINE glGetActiveAtomicCounterBufferivFunPtr #-}
-
-pattern GL_ACTIVE_ATOMIC_COUNTER_BUFFERS = 0x92D9
-
-pattern GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS = 0x92C5
-
-pattern GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTER_INDICES = 0x92C6
-
-pattern GL_ATOMIC_COUNTER_BUFFER_BINDING = 0x92C1
-
-pattern GL_ATOMIC_COUNTER_BUFFER_DATA_SIZE = 0x92C4
-
-pattern GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_FRAGMENT_SHADER = 0x92CB
-
-pattern GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_GEOMETRY_SHADER = 0x92CA
-
-pattern GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_CONTROL_SHADER = 0x92C8
-
-pattern GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_EVALUATION_SHADER = 0x92C9
-
-pattern GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER = 0x92C7
-
-pattern GL_ATOMIC_COUNTER_BUFFER_SIZE = 0x92C3
-
-pattern GL_ATOMIC_COUNTER_BUFFER_START = 0x92C2
-
-pattern GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS = 0x92DC
-
-pattern GL_MAX_ATOMIC_COUNTER_BUFFER_SIZE = 0x92D8
-
-pattern GL_MAX_COMBINED_ATOMIC_COUNTERS = 0x92D7
-
-pattern GL_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS = 0x92D1
-
-pattern GL_MAX_FRAGMENT_ATOMIC_COUNTERS = 0x92D6
-
-pattern GL_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS = 0x92D0
-
-pattern GL_MAX_GEOMETRY_ATOMIC_COUNTERS = 0x92D5
-
-pattern GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS = 0x92CF
-
-pattern GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS = 0x92D3
-
-pattern GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS = 0x92CD
-
-pattern GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS = 0x92D4
-
-pattern GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS = 0x92CE
-
-pattern GL_MAX_VERTEX_ATOMIC_COUNTERS = 0x92D2
-
-pattern GL_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS = 0x92CC
-
-pattern GL_UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX = 0x92DA
-
-pattern GL_UNSIGNED_INT_ATOMIC_COUNTER = 0x92DB
-
-glBindImageTexture :: MonadIO m => GLuint -> GLuint -> GLint -> GLboolean -> GLint -> GLenum -> GLenum -> m ()
-glBindImageTexture = ffiuintuintintbooleanintenumenumIOV glBindImageTextureFunPtr
-
-glBindImageTextureFunPtr :: FunPtr (GLuint -> GLuint -> GLint -> GLboolean -> GLint -> GLenum -> GLenum -> IO ())
-glBindImageTextureFunPtr = unsafePerformIO (getProcAddress "glBindImageTexture")
-
-{-# NOINLINE glBindImageTextureFunPtr #-}
-
-glMemoryBarrier :: MonadIO m => GLbitfield -> m ()
-glMemoryBarrier = ffibitfieldIOV glMemoryBarrierFunPtr
-
-glMemoryBarrierFunPtr :: FunPtr (GLbitfield -> IO ())
-glMemoryBarrierFunPtr = unsafePerformIO (getProcAddress "glMemoryBarrier")
-
-{-# NOINLINE glMemoryBarrierFunPtr #-}
-
-pattern GL_ALL_BARRIER_BITS = 0xFFFFFFFF
-
-pattern GL_ATOMIC_COUNTER_BARRIER_BIT = 0x00001000
-
-pattern GL_BUFFER_UPDATE_BARRIER_BIT = 0x00000200
-
-pattern GL_COMMAND_BARRIER_BIT = 0x00000040
-
-pattern GL_ELEMENT_ARRAY_BARRIER_BIT = 0x00000002
-
-pattern GL_FRAMEBUFFER_BARRIER_BIT = 0x00000400
-
-pattern GL_IMAGE_1D = 0x904C
-
-pattern GL_IMAGE_1D_ARRAY = 0x9052
-
-pattern GL_IMAGE_2D = 0x904D
-
-pattern GL_IMAGE_2D_ARRAY = 0x9053
-
-pattern GL_IMAGE_2D_MULTISAMPLE = 0x9055
-
-pattern GL_IMAGE_2D_MULTISAMPLE_ARRAY = 0x9056
-
-pattern GL_IMAGE_2D_RECT = 0x904F
-
-pattern GL_IMAGE_3D = 0x904E
-
-pattern GL_IMAGE_BINDING_ACCESS = 0x8F3E
-
-pattern GL_IMAGE_BINDING_FORMAT = 0x906E
-
-pattern GL_IMAGE_BINDING_LAYER = 0x8F3D
-
-pattern GL_IMAGE_BINDING_LAYERED = 0x8F3C
-
-pattern GL_IMAGE_BINDING_LEVEL = 0x8F3B
-
-pattern GL_IMAGE_BINDING_NAME = 0x8F3A
-
-pattern GL_IMAGE_BUFFER = 0x9051
-
-pattern GL_IMAGE_CUBE = 0x9050
-
-pattern GL_IMAGE_CUBE_MAP_ARRAY = 0x9054
-
-pattern GL_IMAGE_FORMAT_COMPATIBILITY_BY_CLASS = 0x90C9
-
-pattern GL_IMAGE_FORMAT_COMPATIBILITY_BY_SIZE = 0x90C8
-
-pattern GL_INT_IMAGE_1D = 0x9057
-
-pattern GL_INT_IMAGE_1D_ARRAY = 0x905D
-
-pattern GL_INT_IMAGE_2D = 0x9058
-
-pattern GL_INT_IMAGE_2D_ARRAY = 0x905E
-
-pattern GL_INT_IMAGE_2D_MULTISAMPLE = 0x9060
-
-pattern GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY = 0x9061
-
-pattern GL_INT_IMAGE_2D_RECT = 0x905A
-
-pattern GL_INT_IMAGE_3D = 0x9059
-
-pattern GL_INT_IMAGE_BUFFER = 0x905C
-
-pattern GL_INT_IMAGE_CUBE = 0x905B
-
-pattern GL_INT_IMAGE_CUBE_MAP_ARRAY = 0x905F
-
-pattern GL_MAX_COMBINED_IMAGE_UNIFORMS = 0x90CF
-
-pattern GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS = 0x8F39
-
-pattern GL_MAX_FRAGMENT_IMAGE_UNIFORMS = 0x90CE
-
-pattern GL_MAX_GEOMETRY_IMAGE_UNIFORMS = 0x90CD
-
-pattern GL_MAX_IMAGE_SAMPLES = 0x906D
-
-pattern GL_MAX_IMAGE_UNITS = 0x8F38
-
-pattern GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS = 0x90CB
-
-pattern GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS = 0x90CC
-
-pattern GL_MAX_VERTEX_IMAGE_UNIFORMS = 0x90CA
-
-pattern GL_PIXEL_BUFFER_BARRIER_BIT = 0x00000080
-
-pattern GL_SHADER_IMAGE_ACCESS_BARRIER_BIT = 0x00000020
-
-pattern GL_TEXTURE_FETCH_BARRIER_BIT = 0x00000008
-
-pattern GL_TEXTURE_UPDATE_BARRIER_BIT = 0x00000100
-
-pattern GL_TRANSFORM_FEEDBACK_BARRIER_BIT = 0x00000800
-
-pattern GL_UNIFORM_BARRIER_BIT = 0x00000004
-
-pattern GL_UNSIGNED_INT_IMAGE_1D = 0x9062
-
-pattern GL_UNSIGNED_INT_IMAGE_1D_ARRAY = 0x9068
-
-pattern GL_UNSIGNED_INT_IMAGE_2D = 0x9063
-
-pattern GL_UNSIGNED_INT_IMAGE_2D_ARRAY = 0x9069
-
-pattern GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE = 0x906B
-
-pattern GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY = 0x906C
-
-pattern GL_UNSIGNED_INT_IMAGE_2D_RECT = 0x9065
-
-pattern GL_UNSIGNED_INT_IMAGE_3D = 0x9064
-
-pattern GL_UNSIGNED_INT_IMAGE_BUFFER = 0x9067
-
-pattern GL_UNSIGNED_INT_IMAGE_CUBE = 0x9066
-
-pattern GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY = 0x906A
-
-pattern GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT = 0x00000001
-
-pattern GL_FLOAT_MAT2_ARB = 0x8B5A
-
-pattern GL_FLOAT_MAT3_ARB = 0x8B5B
-
-pattern GL_FLOAT_MAT4_ARB = 0x8B5C
-
-pattern GL_FLOAT_VEC2_ARB = 0x8B50
-
-pattern GL_FLOAT_VEC3_ARB = 0x8B51
-
-pattern GL_FLOAT_VEC4_ARB = 0x8B52
-
-glShaderStorageBlockBinding :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()
-glShaderStorageBlockBinding = ffiuintuintuintIOV glShaderStorageBlockBindingFunPtr
-
-glShaderStorageBlockBindingFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> IO ())
-glShaderStorageBlockBindingFunPtr = unsafePerformIO (getProcAddress "glShaderStorageBlockBinding")
-
-{-# NOINLINE glShaderStorageBlockBindingFunPtr #-}
-
-pattern GL_MAX_COMBINED_SHADER_OUTPUT_RESOURCES = 0x8F39
-
-pattern GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS = 0x90DC
-
-pattern GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS = 0x90DB
-
-pattern GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS = 0x90DA
-
-pattern GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS = 0x90D7
-
-pattern GL_MAX_SHADER_STORAGE_BLOCK_SIZE = 0x90DE
-
-pattern GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS = 0x90DD
-
-pattern GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS = 0x90D8
-
-pattern GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS = 0x90D9
-
-pattern GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS = 0x90D6
-
-pattern GL_SHADER_STORAGE_BARRIER_BIT = 0x00002000
-
-pattern GL_SHADER_STORAGE_BUFFER = 0x90D2
-
-pattern GL_SHADER_STORAGE_BUFFER_BINDING = 0x90D3
-
-pattern GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT = 0x90DF
-
-pattern GL_SHADER_STORAGE_BUFFER_SIZE = 0x90D5
-
-pattern GL_SHADER_STORAGE_BUFFER_START = 0x90D4
-
-glGetActiveSubroutineName :: MonadIO m => GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
-glGetActiveSubroutineName = ffiuintenumuintsizeiPtrsizeiPtrcharIOV glGetActiveSubroutineNameFunPtr
-
-glGetActiveSubroutineNameFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
-glGetActiveSubroutineNameFunPtr = unsafePerformIO (getProcAddress "glGetActiveSubroutineName")
-
-{-# NOINLINE glGetActiveSubroutineNameFunPtr #-}
-
-glGetActiveSubroutineUniformName :: MonadIO m => GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
-glGetActiveSubroutineUniformName = ffiuintenumuintsizeiPtrsizeiPtrcharIOV glGetActiveSubroutineUniformNameFunPtr
-
-glGetActiveSubroutineUniformNameFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
-glGetActiveSubroutineUniformNameFunPtr = unsafePerformIO (getProcAddress "glGetActiveSubroutineUniformName")
-
-{-# NOINLINE glGetActiveSubroutineUniformNameFunPtr #-}
-
-glGetActiveSubroutineUniformiv :: MonadIO m => GLuint -> GLenum -> GLuint -> GLenum -> Ptr GLint -> m ()
-glGetActiveSubroutineUniformiv = ffiuintenumuintenumPtrintIOV glGetActiveSubroutineUniformivFunPtr
-
-glGetActiveSubroutineUniformivFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> GLenum -> Ptr GLint -> IO ())
-glGetActiveSubroutineUniformivFunPtr = unsafePerformIO (getProcAddress "glGetActiveSubroutineUniformiv")
-
-{-# NOINLINE glGetActiveSubroutineUniformivFunPtr #-}
-
-glGetProgramStageiv :: MonadIO m => GLuint -> GLenum -> GLenum -> Ptr GLint -> m ()
-glGetProgramStageiv = ffiuintenumenumPtrintIOV glGetProgramStageivFunPtr
-
-glGetProgramStageivFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> Ptr GLint -> IO ())
-glGetProgramStageivFunPtr = unsafePerformIO (getProcAddress "glGetProgramStageiv")
-
-{-# NOINLINE glGetProgramStageivFunPtr #-}
-
-glGetSubroutineIndex :: MonadIO m => GLuint -> GLenum -> Ptr GLchar -> m GLuint
-glGetSubroutineIndex = ffiuintenumPtrcharIOuint glGetSubroutineIndexFunPtr
-
-glGetSubroutineIndexFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLchar -> IO GLuint)
-glGetSubroutineIndexFunPtr = unsafePerformIO (getProcAddress "glGetSubroutineIndex")
-
-{-# NOINLINE glGetSubroutineIndexFunPtr #-}
-
-glGetSubroutineUniformLocation :: MonadIO m => GLuint -> GLenum -> Ptr GLchar -> m GLint
-glGetSubroutineUniformLocation = ffiuintenumPtrcharIOint glGetSubroutineUniformLocationFunPtr
-
-glGetSubroutineUniformLocationFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLchar -> IO GLint)
-glGetSubroutineUniformLocationFunPtr = unsafePerformIO (getProcAddress "glGetSubroutineUniformLocation")
-
-{-# NOINLINE glGetSubroutineUniformLocationFunPtr #-}
-
-glGetUniformSubroutineuiv :: MonadIO m => GLenum -> GLint -> Ptr GLuint -> m ()
-glGetUniformSubroutineuiv = ffienumintPtruintIOV glGetUniformSubroutineuivFunPtr
-
-glGetUniformSubroutineuivFunPtr :: FunPtr (GLenum -> GLint -> Ptr GLuint -> IO ())
-glGetUniformSubroutineuivFunPtr = unsafePerformIO (getProcAddress "glGetUniformSubroutineuiv")
-
-{-# NOINLINE glGetUniformSubroutineuivFunPtr #-}
-
-glUniformSubroutinesuiv :: MonadIO m => GLenum -> GLsizei -> Ptr GLuint -> m ()
-glUniformSubroutinesuiv = ffienumsizeiPtruintIOV glUniformSubroutinesuivFunPtr
-
-glUniformSubroutinesuivFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr GLuint -> IO ())
-glUniformSubroutinesuivFunPtr = unsafePerformIO (getProcAddress "glUniformSubroutinesuiv")
-
-{-# NOINLINE glUniformSubroutinesuivFunPtr #-}
-
-pattern GL_ACTIVE_SUBROUTINES = 0x8DE5
-
-pattern GL_ACTIVE_SUBROUTINE_MAX_LENGTH = 0x8E48
-
-pattern GL_ACTIVE_SUBROUTINE_UNIFORMS = 0x8DE6
-
-pattern GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS = 0x8E47
-
-pattern GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH = 0x8E49
-
-pattern GL_MAX_SUBROUTINES = 0x8DE7
-
-pattern GL_MAX_SUBROUTINE_UNIFORM_LOCATIONS = 0x8DE8
-
-pattern GL_UNIFORM_NAME_LENGTH = 0x8A39
-
-pattern GL_UNIFORM_SIZE = 0x8A38
-
-pattern GL_DEPTH_STENCIL_TEXTURE_MODE = 0x90EA
-
-glClientWaitSync :: MonadIO m => GLsync -> GLbitfield -> GLuint64 -> m GLenum
-glClientWaitSync = ffisyncbitfielduint64IOenum glClientWaitSyncFunPtr
-
-glClientWaitSyncFunPtr :: FunPtr (GLsync -> GLbitfield -> GLuint64 -> IO GLenum)
-glClientWaitSyncFunPtr = unsafePerformIO (getProcAddress "glClientWaitSync")
-
-{-# NOINLINE glClientWaitSyncFunPtr #-}
-
-glDeleteSync :: MonadIO m => GLsync -> m ()
-glDeleteSync = ffisyncIOV glDeleteSyncFunPtr
-
-glDeleteSyncFunPtr :: FunPtr (GLsync -> IO ())
-glDeleteSyncFunPtr = unsafePerformIO (getProcAddress "glDeleteSync")
-
-{-# NOINLINE glDeleteSyncFunPtr #-}
-
-glFenceSync :: MonadIO m => GLenum -> GLbitfield -> m GLsync
-glFenceSync = ffienumbitfieldIOsync glFenceSyncFunPtr
-
-glFenceSyncFunPtr :: FunPtr (GLenum -> GLbitfield -> IO GLsync)
-glFenceSyncFunPtr = unsafePerformIO (getProcAddress "glFenceSync")
-
-{-# NOINLINE glFenceSyncFunPtr #-}
-
-glGetInteger64v :: MonadIO m => GLenum -> Ptr GLint64 -> m ()
-glGetInteger64v = ffienumPtrint64IOV glGetInteger64vFunPtr
-
-glGetInteger64vFunPtr :: FunPtr (GLenum -> Ptr GLint64 -> IO ())
-glGetInteger64vFunPtr = unsafePerformIO (getProcAddress "glGetInteger64v")
-
-{-# NOINLINE glGetInteger64vFunPtr #-}
-
-glGetSynciv :: MonadIO m => GLsync -> GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLint -> m ()
-glGetSynciv = ffisyncenumsizeiPtrsizeiPtrintIOV glGetSyncivFunPtr
-
-glGetSyncivFunPtr :: FunPtr (GLsync -> GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLint -> IO ())
-glGetSyncivFunPtr = unsafePerformIO (getProcAddress "glGetSynciv")
-
-{-# NOINLINE glGetSyncivFunPtr #-}
-
-glIsSync :: MonadIO m => GLsync -> m GLboolean
-glIsSync = ffisyncIOboolean glIsSyncFunPtr
-
-glIsSyncFunPtr :: FunPtr (GLsync -> IO GLboolean)
-glIsSyncFunPtr = unsafePerformIO (getProcAddress "glIsSync")
-
-{-# NOINLINE glIsSyncFunPtr #-}
-
-glWaitSync :: MonadIO m => GLsync -> GLbitfield -> GLuint64 -> m ()
-glWaitSync = ffisyncbitfielduint64IOV glWaitSyncFunPtr
-
-glWaitSyncFunPtr :: FunPtr (GLsync -> GLbitfield -> GLuint64 -> IO ())
-glWaitSyncFunPtr = unsafePerformIO (getProcAddress "glWaitSync")
-
-{-# NOINLINE glWaitSyncFunPtr #-}
-
-pattern GL_ALREADY_SIGNALED = 0x911A
-
-pattern GL_CONDITION_SATISFIED = 0x911C
-
-pattern GL_MAX_SERVER_WAIT_TIMEOUT = 0x9111
-
-pattern GL_OBJECT_TYPE = 0x9112
-
-pattern GL_SIGNALED = 0x9119
-
-pattern GL_SYNC_CONDITION = 0x9113
-
-pattern GL_SYNC_FENCE = 0x9116
-
-pattern GL_SYNC_FLAGS = 0x9115
-
-pattern GL_SYNC_FLUSH_COMMANDS_BIT = 0x00000001
-
-pattern GL_SYNC_GPU_COMMANDS_COMPLETE = 0x9117
-
-pattern GL_SYNC_STATUS = 0x9114
-
-pattern GL_TIMEOUT_EXPIRED = 0x911B
-
-pattern GL_TIMEOUT_IGNORED = 0xFFFFFFFFFFFFFFFF
-
-pattern GL_UNSIGNALED = 0x9118
-
-pattern GL_WAIT_FAILED = 0x911D
-
-glPatchParameterfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
-glPatchParameterfv = ffienumPtrfloatIOV glPatchParameterfvFunPtr
-
-glPatchParameterfvFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
-glPatchParameterfvFunPtr = unsafePerformIO (getProcAddress "glPatchParameterfv")
-
-{-# NOINLINE glPatchParameterfvFunPtr #-}
-
-glPatchParameteri :: MonadIO m => GLenum -> GLint -> m ()
-glPatchParameteri = ffienumintIOV glPatchParameteriFunPtr
-
-glPatchParameteriFunPtr :: FunPtr (GLenum -> GLint -> IO ())
-glPatchParameteriFunPtr = unsafePerformIO (getProcAddress "glPatchParameteri")
-
-{-# NOINLINE glPatchParameteriFunPtr #-}
-
-pattern GL_CCW = 0x0901
-
-pattern GL_CW = 0x0900
-
-pattern GL_EQUAL = 0x0202
-
-pattern GL_FRACTIONAL_EVEN = 0x8E7C
-
-pattern GL_FRACTIONAL_ODD = 0x8E7B
-
-pattern GL_ISOLINES = 0x8E7A
-
-pattern GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS = 0x8E1E
-
-pattern GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS = 0x8E1F
-
-pattern GL_MAX_PATCH_VERTICES = 0x8E7D
-
-pattern GL_MAX_TESS_CONTROL_INPUT_COMPONENTS = 0x886C
-
-pattern GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS = 0x8E83
-
-pattern GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS = 0x8E81
-
-pattern GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS = 0x8E85
-
-pattern GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS = 0x8E89
-
-pattern GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS = 0x8E7F
-
-pattern GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS = 0x886D
-
-pattern GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS = 0x8E86
-
-pattern GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS = 0x8E82
-
-pattern GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS = 0x8E8A
-
-pattern GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS = 0x8E80
-
-pattern GL_MAX_TESS_GEN_LEVEL = 0x8E7E
-
-pattern GL_MAX_TESS_PATCH_COMPONENTS = 0x8E84
-
-pattern GL_PATCHES = 0x000E
-
-pattern GL_PATCH_DEFAULT_INNER_LEVEL = 0x8E73
-
-pattern GL_PATCH_DEFAULT_OUTER_LEVEL = 0x8E74
-
-pattern GL_PATCH_VERTICES = 0x8E72
-
-pattern GL_QUADS = 0x0007
-
-pattern GL_TESS_CONTROL_OUTPUT_VERTICES = 0x8E75
-
-pattern GL_TESS_CONTROL_SHADER = 0x8E88
-
-pattern GL_TESS_EVALUATION_SHADER = 0x8E87
-
-pattern GL_TESS_GEN_MODE = 0x8E76
-
-pattern GL_TESS_GEN_POINT_MODE = 0x8E79
-
-pattern GL_TESS_GEN_SPACING = 0x8E77
-
-pattern GL_TESS_GEN_VERTEX_ORDER = 0x8E78
-
-pattern GL_TRIANGLES = 0x0004
-
-pattern GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER = 0x84F0
-
-pattern GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER = 0x84F1
-
-glTextureBarrier :: MonadIO m => m ()
-glTextureBarrier = ffiIOV glTextureBarrierFunPtr
-
-glTextureBarrierFunPtr :: FunPtr (IO ())
-glTextureBarrierFunPtr = unsafePerformIO (getProcAddress "glTextureBarrier")
-
-{-# NOINLINE glTextureBarrierFunPtr #-}
-
-pattern GL_RGB32F = 0x8815
-
-pattern GL_RGB32I = 0x8D83
-
-pattern GL_RGB32UI = 0x8D71
-
-glTexBufferRange :: MonadIO m => GLenum -> GLenum -> GLuint -> GLintptr -> GLsizeiptr -> m ()
-glTexBufferRange = ffienumenumuintintptrsizeiptrIOV glTexBufferRangeFunPtr
-
-glTexBufferRangeFunPtr :: FunPtr (GLenum -> GLenum -> GLuint -> GLintptr -> GLsizeiptr -> IO ())
-glTexBufferRangeFunPtr = unsafePerformIO (getProcAddress "glTexBufferRange")
-
-{-# NOINLINE glTexBufferRangeFunPtr #-}
-
-pattern GL_TEXTURE_BUFFER_OFFSET = 0x919D
-
-pattern GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT = 0x919F
-
-pattern GL_TEXTURE_BUFFER_SIZE = 0x919E
-
-pattern GL_COMPRESSED_RED_RGTC1 = 0x8DBB
-
-pattern GL_COMPRESSED_RG_RGTC2 = 0x8DBD
-
-pattern GL_COMPRESSED_SIGNED_RED_RGTC1 = 0x8DBC
-
-pattern GL_COMPRESSED_SIGNED_RG_RGTC2 = 0x8DBE
-
-pattern GL_MIRROR_CLAMP_TO_EDGE = 0x8743
-
-glGetMultisamplefv :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()
-glGetMultisamplefv = ffienumuintPtrfloatIOV glGetMultisamplefvFunPtr
-
-glGetMultisamplefvFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLfloat -> IO ())
-glGetMultisamplefvFunPtr = unsafePerformIO (getProcAddress "glGetMultisamplefv")
-
-{-# NOINLINE glGetMultisamplefvFunPtr #-}
-
-glSampleMaski :: MonadIO m => GLuint -> GLbitfield -> m ()
-glSampleMaski = ffiuintbitfieldIOV glSampleMaskiFunPtr
-
-glSampleMaskiFunPtr :: FunPtr (GLuint -> GLbitfield -> IO ())
-glSampleMaskiFunPtr = unsafePerformIO (getProcAddress "glSampleMaski")
-
-{-# NOINLINE glSampleMaskiFunPtr #-}
-
-glTexImage2DMultisample :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> m ()
-glTexImage2DMultisample = ffienumsizeienumsizeisizeibooleanIOV glTexImage2DMultisampleFunPtr
-
-glTexImage2DMultisampleFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> IO ())
-glTexImage2DMultisampleFunPtr = unsafePerformIO (getProcAddress "glTexImage2DMultisample")
-
-{-# NOINLINE glTexImage2DMultisampleFunPtr #-}
-
-glTexImage3DMultisample :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> m ()
-glTexImage3DMultisample = ffienumsizeienumsizeisizeisizeibooleanIOV glTexImage3DMultisampleFunPtr
-
-glTexImage3DMultisampleFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> IO ())
-glTexImage3DMultisampleFunPtr = unsafePerformIO (getProcAddress "glTexImage3DMultisample")
-
-{-# NOINLINE glTexImage3DMultisampleFunPtr #-}
-
-pattern GL_INT_SAMPLER_2D_MULTISAMPLE = 0x9109
-
-pattern GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY = 0x910C
-
-pattern GL_MAX_COLOR_TEXTURE_SAMPLES = 0x910E
-
-pattern GL_MAX_DEPTH_TEXTURE_SAMPLES = 0x910F
-
-pattern GL_MAX_INTEGER_SAMPLES = 0x9110
-
-pattern GL_MAX_SAMPLE_MASK_WORDS = 0x8E59
-
-pattern GL_PROXY_TEXTURE_2D_MULTISAMPLE = 0x9101
-
-pattern GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY = 0x9103
-
-pattern GL_SAMPLER_2D_MULTISAMPLE = 0x9108
-
-pattern GL_SAMPLER_2D_MULTISAMPLE_ARRAY = 0x910B
-
-pattern GL_SAMPLE_MASK = 0x8E51
-
-pattern GL_SAMPLE_MASK_VALUE = 0x8E52
-
-pattern GL_SAMPLE_POSITION = 0x8E50
-
-pattern GL_TEXTURE_FIXED_SAMPLE_LOCATIONS = 0x9107
-
-pattern GL_TEXTURE_SAMPLES = 0x9106
-
-pattern GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE = 0x910A
-
-pattern GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY = 0x910D
-
-pattern GL_R16 = 0x822A
-
-pattern GL_R16F = 0x822D
-
-pattern GL_R16I = 0x8233
-
-pattern GL_R16UI = 0x8234
-
-pattern GL_R32F = 0x822E
-
-pattern GL_R32I = 0x8235
-
-pattern GL_R32UI = 0x8236
-
-pattern GL_R8 = 0x8229
-
-pattern GL_R8I = 0x8231
-
-pattern GL_R8UI = 0x8232
-
-pattern GL_RG = 0x8227
-
-pattern GL_RG16 = 0x822C
-
-pattern GL_RG16F = 0x822F
-
-pattern GL_RG16I = 0x8239
-
-pattern GL_RG32F = 0x8230
-
-pattern GL_RG32I = 0x823B
-
-pattern GL_RG32UI = 0x823C
-
-pattern GL_RG8 = 0x822B
-
-pattern GL_RG8I = 0x8237
-
-pattern GL_RG_INTEGER = 0x8228
-
-pattern GL_RGB10_A2UI = 0x906F
-
-pattern GL_STENCIL_INDEX = 0x1901
-
-glTexStorage1D :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> m ()
-glTexStorage1D = ffienumsizeienumsizeiIOV glTexStorage1DFunPtr
-
-glTexStorage1DFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> GLsizei -> IO ())
-glTexStorage1DFunPtr = unsafePerformIO (getProcAddress "glTexStorage1D")
-
-{-# NOINLINE glTexStorage1DFunPtr #-}
-
-glTexStorage2D :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()
-glTexStorage2D = ffienumsizeienumsizeisizeiIOV glTexStorage2DFunPtr
-
-glTexStorage2DFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> IO ())
-glTexStorage2DFunPtr = unsafePerformIO (getProcAddress "glTexStorage2D")
-
-{-# NOINLINE glTexStorage2DFunPtr #-}
-
-glTexStorage3D :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> m ()
-glTexStorage3D = ffienumsizeienumsizeisizeisizeiIOV glTexStorage3DFunPtr
-
-glTexStorage3DFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> IO ())
-glTexStorage3DFunPtr = unsafePerformIO (getProcAddress "glTexStorage3D")
-
-{-# NOINLINE glTexStorage3DFunPtr #-}
-
-pattern GL_TEXTURE_IMMUTABLE_FORMAT = 0x912F
-
-glTexStorage2DMultisample :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> m ()
-glTexStorage2DMultisample = ffienumsizeienumsizeisizeibooleanIOV glTexStorage2DMultisampleFunPtr
-
-glTexStorage2DMultisampleFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> IO ())
-glTexStorage2DMultisampleFunPtr = unsafePerformIO (getProcAddress "glTexStorage2DMultisample")
-
-{-# NOINLINE glTexStorage2DMultisampleFunPtr #-}
-
-glTexStorage3DMultisample :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> m ()
-glTexStorage3DMultisample = ffienumsizeienumsizeisizeisizeibooleanIOV glTexStorage3DMultisampleFunPtr
-
-glTexStorage3DMultisampleFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> IO ())
-glTexStorage3DMultisampleFunPtr = unsafePerformIO (getProcAddress "glTexStorage3DMultisample")
-
-{-# NOINLINE glTexStorage3DMultisampleFunPtr #-}
-
-pattern GL_TEXTURE_SWIZZLE_A = 0x8E45
-
-pattern GL_TEXTURE_SWIZZLE_B = 0x8E44
-
-pattern GL_TEXTURE_SWIZZLE_G = 0x8E43
-
-pattern GL_TEXTURE_SWIZZLE_R = 0x8E42
-
-pattern GL_TEXTURE_SWIZZLE_RGBA = 0x8E46
-
-glTextureView :: MonadIO m => GLuint -> GLenum -> GLuint -> GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
-glTextureView = ffiuintenumuintenumuintuintuintuintIOV glTextureViewFunPtr
-
-glTextureViewFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> IO ())
-glTextureViewFunPtr = unsafePerformIO (getProcAddress "glTextureView")
-
-{-# NOINLINE glTextureViewFunPtr #-}
-
-pattern GL_TEXTURE_IMMUTABLE_LEVELS = 0x82DF
-
-pattern GL_TEXTURE_VIEW_MIN_LAYER = 0x82DD
-
-pattern GL_TEXTURE_VIEW_MIN_LEVEL = 0x82DB
-
-pattern GL_TEXTURE_VIEW_NUM_LAYERS = 0x82DE
-
-pattern GL_TEXTURE_VIEW_NUM_LEVELS = 0x82DC
-
-glGetQueryObjecti64v :: MonadIO m => GLuint -> GLenum -> Ptr GLint64 -> m ()
-glGetQueryObjecti64v = ffiuintenumPtrint64IOV glGetQueryObjecti64vFunPtr
-
-glGetQueryObjecti64vFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint64 -> IO ())
-glGetQueryObjecti64vFunPtr = unsafePerformIO (getProcAddress "glGetQueryObjecti64v")
-
-{-# NOINLINE glGetQueryObjecti64vFunPtr #-}
-
-glGetQueryObjectui64v :: MonadIO m => GLuint -> GLenum -> Ptr GLuint64 -> m ()
-glGetQueryObjectui64v = ffiuintenumPtruint64IOV glGetQueryObjectui64vFunPtr
-
-glGetQueryObjectui64vFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLuint64 -> IO ())
-glGetQueryObjectui64vFunPtr = unsafePerformIO (getProcAddress "glGetQueryObjectui64v")
-
-{-# NOINLINE glGetQueryObjectui64vFunPtr #-}
-
-glQueryCounter :: MonadIO m => GLuint -> GLenum -> m ()
-glQueryCounter = ffiuintenumIOV glQueryCounterFunPtr
-
-glQueryCounterFunPtr :: FunPtr (GLuint -> GLenum -> IO ())
-glQueryCounterFunPtr = unsafePerformIO (getProcAddress "glQueryCounter")
-
-{-# NOINLINE glQueryCounterFunPtr #-}
-
-pattern GL_TIMESTAMP = 0x8E28
-
-pattern GL_TIME_ELAPSED = 0x88BF
-
-glBindTransformFeedback :: MonadIO m => GLenum -> GLuint -> m ()
-glBindTransformFeedback = ffienumuintIOV glBindTransformFeedbackFunPtr
-
-glBindTransformFeedbackFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
-glBindTransformFeedbackFunPtr = unsafePerformIO (getProcAddress "glBindTransformFeedback")
-
-{-# NOINLINE glBindTransformFeedbackFunPtr #-}
-
-glDeleteTransformFeedbacks :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
-glDeleteTransformFeedbacks = ffisizeiPtruintIOV glDeleteTransformFeedbacksFunPtr
-
-glDeleteTransformFeedbacksFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
-glDeleteTransformFeedbacksFunPtr = unsafePerformIO (getProcAddress "glDeleteTransformFeedbacks")
-
-{-# NOINLINE glDeleteTransformFeedbacksFunPtr #-}
-
-glDrawTransformFeedback :: MonadIO m => GLenum -> GLuint -> m ()
-glDrawTransformFeedback = ffienumuintIOV glDrawTransformFeedbackFunPtr
-
-glDrawTransformFeedbackFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
-glDrawTransformFeedbackFunPtr = unsafePerformIO (getProcAddress "glDrawTransformFeedback")
-
-{-# NOINLINE glDrawTransformFeedbackFunPtr #-}
-
-glGenTransformFeedbacks :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
-glGenTransformFeedbacks = ffisizeiPtruintIOV glGenTransformFeedbacksFunPtr
-
-glGenTransformFeedbacksFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
-glGenTransformFeedbacksFunPtr = unsafePerformIO (getProcAddress "glGenTransformFeedbacks")
-
-{-# NOINLINE glGenTransformFeedbacksFunPtr #-}
-
-glIsTransformFeedback :: MonadIO m => GLuint -> m GLboolean
-glIsTransformFeedback = ffiuintIOboolean glIsTransformFeedbackFunPtr
-
-glIsTransformFeedbackFunPtr :: FunPtr (GLuint -> IO GLboolean)
-glIsTransformFeedbackFunPtr = unsafePerformIO (getProcAddress "glIsTransformFeedback")
-
-{-# NOINLINE glIsTransformFeedbackFunPtr #-}
-
-glPauseTransformFeedback :: MonadIO m => m ()
-glPauseTransformFeedback = ffiIOV glPauseTransformFeedbackFunPtr
-
-glPauseTransformFeedbackFunPtr :: FunPtr (IO ())
-glPauseTransformFeedbackFunPtr = unsafePerformIO (getProcAddress "glPauseTransformFeedback")
-
-{-# NOINLINE glPauseTransformFeedbackFunPtr #-}
-
-glResumeTransformFeedback :: MonadIO m => m ()
-glResumeTransformFeedback = ffiIOV glResumeTransformFeedbackFunPtr
-
-glResumeTransformFeedbackFunPtr :: FunPtr (IO ())
-glResumeTransformFeedbackFunPtr = unsafePerformIO (getProcAddress "glResumeTransformFeedback")
-
-{-# NOINLINE glResumeTransformFeedbackFunPtr #-}
-
-pattern GL_TRANSFORM_FEEDBACK = 0x8E22
-
-pattern GL_TRANSFORM_FEEDBACK_BINDING = 0x8E25
-
-pattern GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE = 0x8E24
-
-pattern GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED = 0x8E23
-
-glBeginQueryIndexed :: MonadIO m => GLenum -> GLuint -> GLuint -> m ()
-glBeginQueryIndexed = ffienumuintuintIOV glBeginQueryIndexedFunPtr
-
-glBeginQueryIndexedFunPtr :: FunPtr (GLenum -> GLuint -> GLuint -> IO ())
-glBeginQueryIndexedFunPtr = unsafePerformIO (getProcAddress "glBeginQueryIndexed")
-
-{-# NOINLINE glBeginQueryIndexedFunPtr #-}
-
-glDrawTransformFeedbackStream :: MonadIO m => GLenum -> GLuint -> GLuint -> m ()
-glDrawTransformFeedbackStream = ffienumuintuintIOV glDrawTransformFeedbackStreamFunPtr
-
-glDrawTransformFeedbackStreamFunPtr :: FunPtr (GLenum -> GLuint -> GLuint -> IO ())
-glDrawTransformFeedbackStreamFunPtr = unsafePerformIO (getProcAddress "glDrawTransformFeedbackStream")
-
-{-# NOINLINE glDrawTransformFeedbackStreamFunPtr #-}
-
-glEndQueryIndexed :: MonadIO m => GLenum -> GLuint -> m ()
-glEndQueryIndexed = ffienumuintIOV glEndQueryIndexedFunPtr
-
-glEndQueryIndexedFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
-glEndQueryIndexedFunPtr = unsafePerformIO (getProcAddress "glEndQueryIndexed")
-
-{-# NOINLINE glEndQueryIndexedFunPtr #-}
-
-glGetQueryIndexediv :: MonadIO m => GLenum -> GLuint -> GLenum -> Ptr GLint -> m ()
-glGetQueryIndexediv = ffienumuintenumPtrintIOV glGetQueryIndexedivFunPtr
-
-glGetQueryIndexedivFunPtr :: FunPtr (GLenum -> GLuint -> GLenum -> Ptr GLint -> IO ())
-glGetQueryIndexedivFunPtr = unsafePerformIO (getProcAddress "glGetQueryIndexediv")
-
-{-# NOINLINE glGetQueryIndexedivFunPtr #-}
-
-pattern GL_MAX_TRANSFORM_FEEDBACK_BUFFERS = 0x8E70
-
-glDrawTransformFeedbackInstanced :: MonadIO m => GLenum -> GLuint -> GLsizei -> m ()
-glDrawTransformFeedbackInstanced = ffienumuintsizeiIOV glDrawTransformFeedbackInstancedFunPtr
-
-glDrawTransformFeedbackInstancedFunPtr :: FunPtr (GLenum -> GLuint -> GLsizei -> IO ())
-glDrawTransformFeedbackInstancedFunPtr = unsafePerformIO (getProcAddress "glDrawTransformFeedbackInstanced")
-
-{-# NOINLINE glDrawTransformFeedbackInstancedFunPtr #-}
-
-glDrawTransformFeedbackStreamInstanced :: MonadIO m => GLenum -> GLuint -> GLuint -> GLsizei -> m ()
-glDrawTransformFeedbackStreamInstanced = ffienumuintuintsizeiIOV glDrawTransformFeedbackStreamInstancedFunPtr
-
-glDrawTransformFeedbackStreamInstancedFunPtr :: FunPtr (GLenum -> GLuint -> GLuint -> GLsizei -> IO ())
-glDrawTransformFeedbackStreamInstancedFunPtr = unsafePerformIO (getProcAddress "glDrawTransformFeedbackStreamInstanced")
-
-{-# NOINLINE glDrawTransformFeedbackStreamInstancedFunPtr #-}
-
-glGetActiveUniformBlockName :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
-glGetActiveUniformBlockName = ffiuintuintsizeiPtrsizeiPtrcharIOV glGetActiveUniformBlockNameFunPtr
-
-glGetActiveUniformBlockNameFunPtr :: FunPtr (GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
-glGetActiveUniformBlockNameFunPtr = unsafePerformIO (getProcAddress "glGetActiveUniformBlockName")
-
-{-# NOINLINE glGetActiveUniformBlockNameFunPtr #-}
-
-glGetActiveUniformBlockiv :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr GLint -> m ()
-glGetActiveUniformBlockiv = ffiuintuintenumPtrintIOV glGetActiveUniformBlockivFunPtr
-
-glGetActiveUniformBlockivFunPtr :: FunPtr (GLuint -> GLuint -> GLenum -> Ptr GLint -> IO ())
-glGetActiveUniformBlockivFunPtr = unsafePerformIO (getProcAddress "glGetActiveUniformBlockiv")
-
-{-# NOINLINE glGetActiveUniformBlockivFunPtr #-}
-
-glGetActiveUniformName :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
-glGetActiveUniformName = ffiuintuintsizeiPtrsizeiPtrcharIOV glGetActiveUniformNameFunPtr
-
-glGetActiveUniformNameFunPtr :: FunPtr (GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
-glGetActiveUniformNameFunPtr = unsafePerformIO (getProcAddress "glGetActiveUniformName")
-
-{-# NOINLINE glGetActiveUniformNameFunPtr #-}
-
-glGetActiveUniformsiv :: MonadIO m => GLuint -> GLsizei -> Ptr GLuint -> GLenum -> Ptr GLint -> m ()
-glGetActiveUniformsiv = ffiuintsizeiPtruintenumPtrintIOV glGetActiveUniformsivFunPtr
-
-glGetActiveUniformsivFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLuint -> GLenum -> Ptr GLint -> IO ())
-glGetActiveUniformsivFunPtr = unsafePerformIO (getProcAddress "glGetActiveUniformsiv")
-
-{-# NOINLINE glGetActiveUniformsivFunPtr #-}
-
-glGetUniformBlockIndex :: MonadIO m => GLuint -> Ptr GLchar -> m GLuint
-glGetUniformBlockIndex = ffiuintPtrcharIOuint glGetUniformBlockIndexFunPtr
-
-glGetUniformBlockIndexFunPtr :: FunPtr (GLuint -> Ptr GLchar -> IO GLuint)
-glGetUniformBlockIndexFunPtr = unsafePerformIO (getProcAddress "glGetUniformBlockIndex")
-
-{-# NOINLINE glGetUniformBlockIndexFunPtr #-}
-
-glGetUniformIndices :: MonadIO m => GLuint -> GLsizei -> Ptr GLchar -> Ptr GLuint -> m ()
-glGetUniformIndices = ffiuintsizeiPtrcharPtruintIOV glGetUniformIndicesFunPtr
-
-glGetUniformIndicesFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLchar -> Ptr GLuint -> IO ())
-glGetUniformIndicesFunPtr = unsafePerformIO (getProcAddress "glGetUniformIndices")
-
-{-# NOINLINE glGetUniformIndicesFunPtr #-}
-
-glUniformBlockBinding :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()
-glUniformBlockBinding = ffiuintuintuintIOV glUniformBlockBindingFunPtr
-
-glUniformBlockBindingFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> IO ())
-glUniformBlockBindingFunPtr = unsafePerformIO (getProcAddress "glUniformBlockBinding")
-
-{-# NOINLINE glUniformBlockBindingFunPtr #-}
-
-pattern GL_ACTIVE_UNIFORM_BLOCKS = 0x8A36
-
-pattern GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH = 0x8A35
-
-pattern GL_INVALID_INDEX = 0xFFFFFFFF
-
-pattern GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS = 0x8A33
-
-pattern GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS = 0x8A32
-
-pattern GL_MAX_COMBINED_UNIFORM_BLOCKS = 0x8A2E
-
-pattern GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS = 0x8A31
-
-pattern GL_MAX_FRAGMENT_UNIFORM_BLOCKS = 0x8A2D
-
-pattern GL_MAX_GEOMETRY_UNIFORM_BLOCKS = 0x8A2C
-
-pattern GL_MAX_UNIFORM_BLOCK_SIZE = 0x8A30
-
-pattern GL_MAX_UNIFORM_BUFFER_BINDINGS = 0x8A2F
-
-pattern GL_MAX_VERTEX_UNIFORM_BLOCKS = 0x8A2B
-
-pattern GL_UNIFORM_ARRAY_STRIDE = 0x8A3C
-
-pattern GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS = 0x8A42
-
-pattern GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES = 0x8A43
-
-pattern GL_UNIFORM_BLOCK_BINDING = 0x8A3F
-
-pattern GL_UNIFORM_BLOCK_DATA_SIZE = 0x8A40
-
-pattern GL_UNIFORM_BLOCK_INDEX = 0x8A3A
-
-pattern GL_UNIFORM_BLOCK_NAME_LENGTH = 0x8A41
-
-pattern GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER = 0x8A46
-
-pattern GL_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER = 0x8A45
-
-pattern GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER = 0x8A44
-
-pattern GL_UNIFORM_BUFFER = 0x8A11
-
-pattern GL_UNIFORM_BUFFER_BINDING = 0x8A28
-
-pattern GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT = 0x8A34
-
-pattern GL_UNIFORM_BUFFER_SIZE = 0x8A2A
-
-pattern GL_UNIFORM_BUFFER_START = 0x8A29
-
-pattern GL_UNIFORM_IS_ROW_MAJOR = 0x8A3E
-
-pattern GL_UNIFORM_MATRIX_STRIDE = 0x8A3D
-
-pattern GL_UNIFORM_OFFSET = 0x8A3B
-
-pattern GL_UNIFORM_TYPE = 0x8A37
-
-pattern GL_BGRA = 0x80E1
-
-glBindVertexArray :: MonadIO m => GLuint -> m ()
-glBindVertexArray = ffiuintIOV glBindVertexArrayFunPtr
-
-glBindVertexArrayFunPtr :: FunPtr (GLuint -> IO ())
-glBindVertexArrayFunPtr = unsafePerformIO (getProcAddress "glBindVertexArray")
-
-{-# NOINLINE glBindVertexArrayFunPtr #-}
-
-glDeleteVertexArrays :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
-glDeleteVertexArrays = ffisizeiPtruintIOV glDeleteVertexArraysFunPtr
-
-glDeleteVertexArraysFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
-glDeleteVertexArraysFunPtr = unsafePerformIO (getProcAddress "glDeleteVertexArrays")
-
-{-# NOINLINE glDeleteVertexArraysFunPtr #-}
-
-glGenVertexArrays :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
-glGenVertexArrays = ffisizeiPtruintIOV glGenVertexArraysFunPtr
-
-glGenVertexArraysFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
-glGenVertexArraysFunPtr = unsafePerformIO (getProcAddress "glGenVertexArrays")
-
-{-# NOINLINE glGenVertexArraysFunPtr #-}
-
-glIsVertexArray :: MonadIO m => GLuint -> m GLboolean
-glIsVertexArray = ffiuintIOboolean glIsVertexArrayFunPtr
-
-glIsVertexArrayFunPtr :: FunPtr (GLuint -> IO GLboolean)
-glIsVertexArrayFunPtr = unsafePerformIO (getProcAddress "glIsVertexArray")
-
-{-# NOINLINE glIsVertexArrayFunPtr #-}
-
-pattern GL_VERTEX_ARRAY_BINDING = 0x85B5
-
-glGetVertexAttribLdv :: MonadIO m => GLuint -> GLenum -> Ptr GLdouble -> m ()
-glGetVertexAttribLdv = ffiuintenumPtrdoubleIOV glGetVertexAttribLdvFunPtr
-
-glGetVertexAttribLdvFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLdouble -> IO ())
-glGetVertexAttribLdvFunPtr = unsafePerformIO (getProcAddress "glGetVertexAttribLdv")
-
-{-# NOINLINE glGetVertexAttribLdvFunPtr #-}
-
-glVertexAttribL1d :: MonadIO m => GLuint -> GLdouble -> m ()
-glVertexAttribL1d = ffiuintdoubleIOV glVertexAttribL1dFunPtr
-
-glVertexAttribL1dFunPtr :: FunPtr (GLuint -> GLdouble -> IO ())
-glVertexAttribL1dFunPtr = unsafePerformIO (getProcAddress "glVertexAttribL1d")
-
-{-# NOINLINE glVertexAttribL1dFunPtr #-}
-
-glVertexAttribL1dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()
-glVertexAttribL1dv = ffiuintPtrdoubleIOV glVertexAttribL1dvFunPtr
-
-glVertexAttribL1dvFunPtr :: FunPtr (GLuint -> Ptr GLdouble -> IO ())
-glVertexAttribL1dvFunPtr = unsafePerformIO (getProcAddress "glVertexAttribL1dv")
-
-{-# NOINLINE glVertexAttribL1dvFunPtr #-}
-
-glVertexAttribL2d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> m ()
-glVertexAttribL2d = ffiuintdoubledoubleIOV glVertexAttribL2dFunPtr
-
-glVertexAttribL2dFunPtr :: FunPtr (GLuint -> GLdouble -> GLdouble -> IO ())
-glVertexAttribL2dFunPtr = unsafePerformIO (getProcAddress "glVertexAttribL2d")
-
-{-# NOINLINE glVertexAttribL2dFunPtr #-}
-
-glVertexAttribL2dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()
-glVertexAttribL2dv = ffiuintPtrdoubleIOV glVertexAttribL2dvFunPtr
-
-glVertexAttribL2dvFunPtr :: FunPtr (GLuint -> Ptr GLdouble -> IO ())
-glVertexAttribL2dvFunPtr = unsafePerformIO (getProcAddress "glVertexAttribL2dv")
-
-{-# NOINLINE glVertexAttribL2dvFunPtr #-}
-
-glVertexAttribL3d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> m ()
-glVertexAttribL3d = ffiuintdoubledoubledoubleIOV glVertexAttribL3dFunPtr
-
-glVertexAttribL3dFunPtr :: FunPtr (GLuint -> GLdouble -> GLdouble -> GLdouble -> IO ())
-glVertexAttribL3dFunPtr = unsafePerformIO (getProcAddress "glVertexAttribL3d")
-
-{-# NOINLINE glVertexAttribL3dFunPtr #-}
-
-glVertexAttribL3dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()
-glVertexAttribL3dv = ffiuintPtrdoubleIOV glVertexAttribL3dvFunPtr
-
-glVertexAttribL3dvFunPtr :: FunPtr (GLuint -> Ptr GLdouble -> IO ())
-glVertexAttribL3dvFunPtr = unsafePerformIO (getProcAddress "glVertexAttribL3dv")
-
-{-# NOINLINE glVertexAttribL3dvFunPtr #-}
-
-glVertexAttribL4d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
-glVertexAttribL4d = ffiuintdoubledoubledoubledoubleIOV glVertexAttribL4dFunPtr
-
-glVertexAttribL4dFunPtr :: FunPtr (GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
-glVertexAttribL4dFunPtr = unsafePerformIO (getProcAddress "glVertexAttribL4d")
-
-{-# NOINLINE glVertexAttribL4dFunPtr #-}
-
-glVertexAttribL4dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()
-glVertexAttribL4dv = ffiuintPtrdoubleIOV glVertexAttribL4dvFunPtr
-
-glVertexAttribL4dvFunPtr :: FunPtr (GLuint -> Ptr GLdouble -> IO ())
-glVertexAttribL4dvFunPtr = unsafePerformIO (getProcAddress "glVertexAttribL4dv")
-
-{-# NOINLINE glVertexAttribL4dvFunPtr #-}
-
-glVertexAttribLPointer :: MonadIO m => GLuint -> GLint -> GLenum -> GLsizei -> Ptr () -> m ()
-glVertexAttribLPointer = ffiuintintenumsizeiPtrVIOV glVertexAttribLPointerFunPtr
-
-glVertexAttribLPointerFunPtr :: FunPtr (GLuint -> GLint -> GLenum -> GLsizei -> Ptr () -> IO ())
-glVertexAttribLPointerFunPtr = unsafePerformIO (getProcAddress "glVertexAttribLPointer")
-
-{-# NOINLINE glVertexAttribLPointerFunPtr #-}
-
-glBindVertexBuffer :: MonadIO m => GLuint -> GLuint -> GLintptr -> GLsizei -> m ()
-glBindVertexBuffer = ffiuintuintintptrsizeiIOV glBindVertexBufferFunPtr
-
-glBindVertexBufferFunPtr :: FunPtr (GLuint -> GLuint -> GLintptr -> GLsizei -> IO ())
-glBindVertexBufferFunPtr = unsafePerformIO (getProcAddress "glBindVertexBuffer")
-
-{-# NOINLINE glBindVertexBufferFunPtr #-}
-
-glVertexAttribBinding :: MonadIO m => GLuint -> GLuint -> m ()
-glVertexAttribBinding = ffiuintuintIOV glVertexAttribBindingFunPtr
-
-glVertexAttribBindingFunPtr :: FunPtr (GLuint -> GLuint -> IO ())
-glVertexAttribBindingFunPtr = unsafePerformIO (getProcAddress "glVertexAttribBinding")
-
-{-# NOINLINE glVertexAttribBindingFunPtr #-}
-
-glVertexAttribFormat :: MonadIO m => GLuint -> GLint -> GLenum -> GLboolean -> GLuint -> m ()
-glVertexAttribFormat = ffiuintintenumbooleanuintIOV glVertexAttribFormatFunPtr
-
-glVertexAttribFormatFunPtr :: FunPtr (GLuint -> GLint -> GLenum -> GLboolean -> GLuint -> IO ())
-glVertexAttribFormatFunPtr = unsafePerformIO (getProcAddress "glVertexAttribFormat")
-
-{-# NOINLINE glVertexAttribFormatFunPtr #-}
-
-glVertexAttribIFormat :: MonadIO m => GLuint -> GLint -> GLenum -> GLuint -> m ()
-glVertexAttribIFormat = ffiuintintenumuintIOV glVertexAttribIFormatFunPtr
-
-glVertexAttribIFormatFunPtr :: FunPtr (GLuint -> GLint -> GLenum -> GLuint -> IO ())
-glVertexAttribIFormatFunPtr = unsafePerformIO (getProcAddress "glVertexAttribIFormat")
-
-{-# NOINLINE glVertexAttribIFormatFunPtr #-}
-
-glVertexAttribLFormat :: MonadIO m => GLuint -> GLint -> GLenum -> GLuint -> m ()
-glVertexAttribLFormat = ffiuintintenumuintIOV glVertexAttribLFormatFunPtr
-
-glVertexAttribLFormatFunPtr :: FunPtr (GLuint -> GLint -> GLenum -> GLuint -> IO ())
-glVertexAttribLFormatFunPtr = unsafePerformIO (getProcAddress "glVertexAttribLFormat")
-
-{-# NOINLINE glVertexAttribLFormatFunPtr #-}
-
-glVertexBindingDivisor :: MonadIO m => GLuint -> GLuint -> m ()
-glVertexBindingDivisor = ffiuintuintIOV glVertexBindingDivisorFunPtr
-
-glVertexBindingDivisorFunPtr :: FunPtr (GLuint -> GLuint -> IO ())
-glVertexBindingDivisorFunPtr = unsafePerformIO (getProcAddress "glVertexBindingDivisor")
-
-{-# NOINLINE glVertexBindingDivisorFunPtr #-}
-
-pattern GL_MAX_VERTEX_ATTRIB_BINDINGS = 0x82DA
-
-pattern GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET = 0x82D9
-
-pattern GL_VERTEX_ATTRIB_BINDING = 0x82D4
-
-pattern GL_VERTEX_ATTRIB_RELATIVE_OFFSET = 0x82D5
-
-pattern GL_VERTEX_BINDING_DIVISOR = 0x82D6
-
-pattern GL_VERTEX_BINDING_OFFSET = 0x82D7
-
-pattern GL_VERTEX_BINDING_STRIDE = 0x82D8
-
-glDisableVertexAttribArrayARB :: MonadIO m => GLuint -> m ()
-glDisableVertexAttribArrayARB = ffiuintIOV glDisableVertexAttribArrayARBFunPtr
-
-glDisableVertexAttribArrayARBFunPtr :: FunPtr (GLuint -> IO ())
-glDisableVertexAttribArrayARBFunPtr = unsafePerformIO (getProcAddress "glDisableVertexAttribArrayARB")
-
-{-# NOINLINE glDisableVertexAttribArrayARBFunPtr #-}
-
-glEnableVertexAttribArrayARB :: MonadIO m => GLuint -> m ()
-glEnableVertexAttribArrayARB = ffiuintIOV glEnableVertexAttribArrayARBFunPtr
-
-glEnableVertexAttribArrayARBFunPtr :: FunPtr (GLuint -> IO ())
-glEnableVertexAttribArrayARBFunPtr = unsafePerformIO (getProcAddress "glEnableVertexAttribArrayARB")
-
-{-# NOINLINE glEnableVertexAttribArrayARBFunPtr #-}
-
-glGetVertexAttribPointervARB :: MonadIO m => GLuint -> GLenum -> Ptr () -> m ()
-glGetVertexAttribPointervARB = ffiuintenumPtrVIOV glGetVertexAttribPointervARBFunPtr
-
-glGetVertexAttribPointervARBFunPtr :: FunPtr (GLuint -> GLenum -> Ptr () -> IO ())
-glGetVertexAttribPointervARBFunPtr = unsafePerformIO (getProcAddress "glGetVertexAttribPointervARB")
-
-{-# NOINLINE glGetVertexAttribPointervARBFunPtr #-}
-
-glGetVertexAttribdvARB :: MonadIO m => GLuint -> GLenum -> Ptr GLdouble -> m ()
-glGetVertexAttribdvARB = ffiuintenumPtrdoubleIOV glGetVertexAttribdvARBFunPtr
-
-glGetVertexAttribdvARBFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLdouble -> IO ())
-glGetVertexAttribdvARBFunPtr = unsafePerformIO (getProcAddress "glGetVertexAttribdvARB")
-
-{-# NOINLINE glGetVertexAttribdvARBFunPtr #-}
-
-glGetVertexAttribfvARB :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()
-glGetVertexAttribfvARB = ffiuintenumPtrfloatIOV glGetVertexAttribfvARBFunPtr
-
-glGetVertexAttribfvARBFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLfloat -> IO ())
-glGetVertexAttribfvARBFunPtr = unsafePerformIO (getProcAddress "glGetVertexAttribfvARB")
-
-{-# NOINLINE glGetVertexAttribfvARBFunPtr #-}
-
-glGetVertexAttribivARB :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
-glGetVertexAttribivARB = ffiuintenumPtrintIOV glGetVertexAttribivARBFunPtr
-
-glGetVertexAttribivARBFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
-glGetVertexAttribivARBFunPtr = unsafePerformIO (getProcAddress "glGetVertexAttribivARB")
-
-{-# NOINLINE glGetVertexAttribivARBFunPtr #-}
-
-glVertexAttrib1dARB :: MonadIO m => GLuint -> GLdouble -> m ()
-glVertexAttrib1dARB = ffiuintdoubleIOV glVertexAttrib1dARBFunPtr
-
-glVertexAttrib1dARBFunPtr :: FunPtr (GLuint -> GLdouble -> IO ())
-glVertexAttrib1dARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib1dARB")
-
-{-# NOINLINE glVertexAttrib1dARBFunPtr #-}
-
-glVertexAttrib1dvARB :: MonadIO m => GLuint -> Ptr GLdouble -> m ()
-glVertexAttrib1dvARB = ffiuintPtrdoubleIOV glVertexAttrib1dvARBFunPtr
-
-glVertexAttrib1dvARBFunPtr :: FunPtr (GLuint -> Ptr GLdouble -> IO ())
-glVertexAttrib1dvARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib1dvARB")
-
-{-# NOINLINE glVertexAttrib1dvARBFunPtr #-}
-
-glVertexAttrib1fARB :: MonadIO m => GLuint -> GLfloat -> m ()
-glVertexAttrib1fARB = ffiuintfloatIOV glVertexAttrib1fARBFunPtr
-
-glVertexAttrib1fARBFunPtr :: FunPtr (GLuint -> GLfloat -> IO ())
-glVertexAttrib1fARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib1fARB")
-
-{-# NOINLINE glVertexAttrib1fARBFunPtr #-}
-
-glVertexAttrib1fvARB :: MonadIO m => GLuint -> Ptr GLfloat -> m ()
-glVertexAttrib1fvARB = ffiuintPtrfloatIOV glVertexAttrib1fvARBFunPtr
-
-glVertexAttrib1fvARBFunPtr :: FunPtr (GLuint -> Ptr GLfloat -> IO ())
-glVertexAttrib1fvARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib1fvARB")
-
-{-# NOINLINE glVertexAttrib1fvARBFunPtr #-}
-
-glVertexAttrib1sARB :: MonadIO m => GLuint -> GLshort -> m ()
-glVertexAttrib1sARB = ffiuintshortIOV glVertexAttrib1sARBFunPtr
-
-glVertexAttrib1sARBFunPtr :: FunPtr (GLuint -> GLshort -> IO ())
-glVertexAttrib1sARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib1sARB")
-
-{-# NOINLINE glVertexAttrib1sARBFunPtr #-}
-
-glVertexAttrib1svARB :: MonadIO m => GLuint -> Ptr GLshort -> m ()
-glVertexAttrib1svARB = ffiuintPtrshortIOV glVertexAttrib1svARBFunPtr
-
-glVertexAttrib1svARBFunPtr :: FunPtr (GLuint -> Ptr GLshort -> IO ())
-glVertexAttrib1svARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib1svARB")
-
-{-# NOINLINE glVertexAttrib1svARBFunPtr #-}
-
-glVertexAttrib2dARB :: MonadIO m => GLuint -> GLdouble -> GLdouble -> m ()
-glVertexAttrib2dARB = ffiuintdoubledoubleIOV glVertexAttrib2dARBFunPtr
-
-glVertexAttrib2dARBFunPtr :: FunPtr (GLuint -> GLdouble -> GLdouble -> IO ())
-glVertexAttrib2dARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib2dARB")
-
-{-# NOINLINE glVertexAttrib2dARBFunPtr #-}
-
-glVertexAttrib2dvARB :: MonadIO m => GLuint -> Ptr GLdouble -> m ()
-glVertexAttrib2dvARB = ffiuintPtrdoubleIOV glVertexAttrib2dvARBFunPtr
-
-glVertexAttrib2dvARBFunPtr :: FunPtr (GLuint -> Ptr GLdouble -> IO ())
-glVertexAttrib2dvARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib2dvARB")
-
-{-# NOINLINE glVertexAttrib2dvARBFunPtr #-}
-
-glVertexAttrib2fARB :: MonadIO m => GLuint -> GLfloat -> GLfloat -> m ()
-glVertexAttrib2fARB = ffiuintfloatfloatIOV glVertexAttrib2fARBFunPtr
-
-glVertexAttrib2fARBFunPtr :: FunPtr (GLuint -> GLfloat -> GLfloat -> IO ())
-glVertexAttrib2fARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib2fARB")
-
-{-# NOINLINE glVertexAttrib2fARBFunPtr #-}
-
-glVertexAttrib2fvARB :: MonadIO m => GLuint -> Ptr GLfloat -> m ()
-glVertexAttrib2fvARB = ffiuintPtrfloatIOV glVertexAttrib2fvARBFunPtr
-
-glVertexAttrib2fvARBFunPtr :: FunPtr (GLuint -> Ptr GLfloat -> IO ())
-glVertexAttrib2fvARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib2fvARB")
-
-{-# NOINLINE glVertexAttrib2fvARBFunPtr #-}
-
-glVertexAttrib2sARB :: MonadIO m => GLuint -> GLshort -> GLshort -> m ()
-glVertexAttrib2sARB = ffiuintshortshortIOV glVertexAttrib2sARBFunPtr
-
-glVertexAttrib2sARBFunPtr :: FunPtr (GLuint -> GLshort -> GLshort -> IO ())
-glVertexAttrib2sARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib2sARB")
-
-{-# NOINLINE glVertexAttrib2sARBFunPtr #-}
-
-glVertexAttrib2svARB :: MonadIO m => GLuint -> Ptr GLshort -> m ()
-glVertexAttrib2svARB = ffiuintPtrshortIOV glVertexAttrib2svARBFunPtr
-
-glVertexAttrib2svARBFunPtr :: FunPtr (GLuint -> Ptr GLshort -> IO ())
-glVertexAttrib2svARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib2svARB")
-
-{-# NOINLINE glVertexAttrib2svARBFunPtr #-}
-
-glVertexAttrib3dARB :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> m ()
-glVertexAttrib3dARB = ffiuintdoubledoubledoubleIOV glVertexAttrib3dARBFunPtr
-
-glVertexAttrib3dARBFunPtr :: FunPtr (GLuint -> GLdouble -> GLdouble -> GLdouble -> IO ())
-glVertexAttrib3dARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib3dARB")
-
-{-# NOINLINE glVertexAttrib3dARBFunPtr #-}
-
-glVertexAttrib3dvARB :: MonadIO m => GLuint -> Ptr GLdouble -> m ()
-glVertexAttrib3dvARB = ffiuintPtrdoubleIOV glVertexAttrib3dvARBFunPtr
-
-glVertexAttrib3dvARBFunPtr :: FunPtr (GLuint -> Ptr GLdouble -> IO ())
-glVertexAttrib3dvARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib3dvARB")
-
-{-# NOINLINE glVertexAttrib3dvARBFunPtr #-}
-
-glVertexAttrib3fARB :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> m ()
-glVertexAttrib3fARB = ffiuintfloatfloatfloatIOV glVertexAttrib3fARBFunPtr
-
-glVertexAttrib3fARBFunPtr :: FunPtr (GLuint -> GLfloat -> GLfloat -> GLfloat -> IO ())
-glVertexAttrib3fARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib3fARB")
-
-{-# NOINLINE glVertexAttrib3fARBFunPtr #-}
-
-glVertexAttrib3fvARB :: MonadIO m => GLuint -> Ptr GLfloat -> m ()
-glVertexAttrib3fvARB = ffiuintPtrfloatIOV glVertexAttrib3fvARBFunPtr
-
-glVertexAttrib3fvARBFunPtr :: FunPtr (GLuint -> Ptr GLfloat -> IO ())
-glVertexAttrib3fvARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib3fvARB")
-
-{-# NOINLINE glVertexAttrib3fvARBFunPtr #-}
-
-glVertexAttrib3sARB :: MonadIO m => GLuint -> GLshort -> GLshort -> GLshort -> m ()
-glVertexAttrib3sARB = ffiuintshortshortshortIOV glVertexAttrib3sARBFunPtr
-
-glVertexAttrib3sARBFunPtr :: FunPtr (GLuint -> GLshort -> GLshort -> GLshort -> IO ())
-glVertexAttrib3sARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib3sARB")
-
-{-# NOINLINE glVertexAttrib3sARBFunPtr #-}
-
-glVertexAttrib3svARB :: MonadIO m => GLuint -> Ptr GLshort -> m ()
-glVertexAttrib3svARB = ffiuintPtrshortIOV glVertexAttrib3svARBFunPtr
-
-glVertexAttrib3svARBFunPtr :: FunPtr (GLuint -> Ptr GLshort -> IO ())
-glVertexAttrib3svARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib3svARB")
-
-{-# NOINLINE glVertexAttrib3svARBFunPtr #-}
-
-glVertexAttrib4NbvARB :: MonadIO m => GLuint -> Ptr GLbyte -> m ()
-glVertexAttrib4NbvARB = ffiuintPtrbyteIOV glVertexAttrib4NbvARBFunPtr
-
-glVertexAttrib4NbvARBFunPtr :: FunPtr (GLuint -> Ptr GLbyte -> IO ())
-glVertexAttrib4NbvARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4NbvARB")
-
-{-# NOINLINE glVertexAttrib4NbvARBFunPtr #-}
-
-glVertexAttrib4NivARB :: MonadIO m => GLuint -> Ptr GLint -> m ()
-glVertexAttrib4NivARB = ffiuintPtrintIOV glVertexAttrib4NivARBFunPtr
-
-glVertexAttrib4NivARBFunPtr :: FunPtr (GLuint -> Ptr GLint -> IO ())
-glVertexAttrib4NivARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4NivARB")
-
-{-# NOINLINE glVertexAttrib4NivARBFunPtr #-}
-
-glVertexAttrib4NsvARB :: MonadIO m => GLuint -> Ptr GLshort -> m ()
-glVertexAttrib4NsvARB = ffiuintPtrshortIOV glVertexAttrib4NsvARBFunPtr
-
-glVertexAttrib4NsvARBFunPtr :: FunPtr (GLuint -> Ptr GLshort -> IO ())
-glVertexAttrib4NsvARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4NsvARB")
-
-{-# NOINLINE glVertexAttrib4NsvARBFunPtr #-}
-
-glVertexAttrib4NubARB :: MonadIO m => GLuint -> GLubyte -> GLubyte -> GLubyte -> GLubyte -> m ()
-glVertexAttrib4NubARB = ffiuintubyteubyteubyteubyteIOV glVertexAttrib4NubARBFunPtr
-
-glVertexAttrib4NubARBFunPtr :: FunPtr (GLuint -> GLubyte -> GLubyte -> GLubyte -> GLubyte -> IO ())
-glVertexAttrib4NubARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4NubARB")
-
-{-# NOINLINE glVertexAttrib4NubARBFunPtr #-}
-
-glVertexAttrib4NubvARB :: MonadIO m => GLuint -> Ptr GLubyte -> m ()
-glVertexAttrib4NubvARB = ffiuintPtrubyteIOV glVertexAttrib4NubvARBFunPtr
-
-glVertexAttrib4NubvARBFunPtr :: FunPtr (GLuint -> Ptr GLubyte -> IO ())
-glVertexAttrib4NubvARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4NubvARB")
-
-{-# NOINLINE glVertexAttrib4NubvARBFunPtr #-}
-
-glVertexAttrib4NuivARB :: MonadIO m => GLuint -> Ptr GLuint -> m ()
-glVertexAttrib4NuivARB = ffiuintPtruintIOV glVertexAttrib4NuivARBFunPtr
-
-glVertexAttrib4NuivARBFunPtr :: FunPtr (GLuint -> Ptr GLuint -> IO ())
-glVertexAttrib4NuivARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4NuivARB")
-
-{-# NOINLINE glVertexAttrib4NuivARBFunPtr #-}
-
-glVertexAttrib4NusvARB :: MonadIO m => GLuint -> Ptr GLushort -> m ()
-glVertexAttrib4NusvARB = ffiuintPtrushortIOV glVertexAttrib4NusvARBFunPtr
-
-glVertexAttrib4NusvARBFunPtr :: FunPtr (GLuint -> Ptr GLushort -> IO ())
-glVertexAttrib4NusvARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4NusvARB")
-
-{-# NOINLINE glVertexAttrib4NusvARBFunPtr #-}
-
-glVertexAttrib4bvARB :: MonadIO m => GLuint -> Ptr GLbyte -> m ()
-glVertexAttrib4bvARB = ffiuintPtrbyteIOV glVertexAttrib4bvARBFunPtr
-
-glVertexAttrib4bvARBFunPtr :: FunPtr (GLuint -> Ptr GLbyte -> IO ())
-glVertexAttrib4bvARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4bvARB")
-
-{-# NOINLINE glVertexAttrib4bvARBFunPtr #-}
-
-glVertexAttrib4dARB :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
-glVertexAttrib4dARB = ffiuintdoubledoubledoubledoubleIOV glVertexAttrib4dARBFunPtr
-
-glVertexAttrib4dARBFunPtr :: FunPtr (GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
-glVertexAttrib4dARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4dARB")
-
-{-# NOINLINE glVertexAttrib4dARBFunPtr #-}
-
-glVertexAttrib4dvARB :: MonadIO m => GLuint -> Ptr GLdouble -> m ()
-glVertexAttrib4dvARB = ffiuintPtrdoubleIOV glVertexAttrib4dvARBFunPtr
-
-glVertexAttrib4dvARBFunPtr :: FunPtr (GLuint -> Ptr GLdouble -> IO ())
-glVertexAttrib4dvARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4dvARB")
-
-{-# NOINLINE glVertexAttrib4dvARBFunPtr #-}
-
-glVertexAttrib4fARB :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
-glVertexAttrib4fARB = ffiuintfloatfloatfloatfloatIOV glVertexAttrib4fARBFunPtr
-
-glVertexAttrib4fARBFunPtr :: FunPtr (GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
-glVertexAttrib4fARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4fARB")
-
-{-# NOINLINE glVertexAttrib4fARBFunPtr #-}
-
-glVertexAttrib4fvARB :: MonadIO m => GLuint -> Ptr GLfloat -> m ()
-glVertexAttrib4fvARB = ffiuintPtrfloatIOV glVertexAttrib4fvARBFunPtr
-
-glVertexAttrib4fvARBFunPtr :: FunPtr (GLuint -> Ptr GLfloat -> IO ())
-glVertexAttrib4fvARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4fvARB")
-
-{-# NOINLINE glVertexAttrib4fvARBFunPtr #-}
-
-glVertexAttrib4ivARB :: MonadIO m => GLuint -> Ptr GLint -> m ()
-glVertexAttrib4ivARB = ffiuintPtrintIOV glVertexAttrib4ivARBFunPtr
-
-glVertexAttrib4ivARBFunPtr :: FunPtr (GLuint -> Ptr GLint -> IO ())
-glVertexAttrib4ivARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4ivARB")
-
-{-# NOINLINE glVertexAttrib4ivARBFunPtr #-}
-
-glVertexAttrib4sARB :: MonadIO m => GLuint -> GLshort -> GLshort -> GLshort -> GLshort -> m ()
-glVertexAttrib4sARB = ffiuintshortshortshortshortIOV glVertexAttrib4sARBFunPtr
-
-glVertexAttrib4sARBFunPtr :: FunPtr (GLuint -> GLshort -> GLshort -> GLshort -> GLshort -> IO ())
-glVertexAttrib4sARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4sARB")
-
-{-# NOINLINE glVertexAttrib4sARBFunPtr #-}
-
-glVertexAttrib4svARB :: MonadIO m => GLuint -> Ptr GLshort -> m ()
-glVertexAttrib4svARB = ffiuintPtrshortIOV glVertexAttrib4svARBFunPtr
-
-glVertexAttrib4svARBFunPtr :: FunPtr (GLuint -> Ptr GLshort -> IO ())
-glVertexAttrib4svARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4svARB")
-
-{-# NOINLINE glVertexAttrib4svARBFunPtr #-}
-
-glVertexAttrib4ubvARB :: MonadIO m => GLuint -> Ptr GLubyte -> m ()
-glVertexAttrib4ubvARB = ffiuintPtrubyteIOV glVertexAttrib4ubvARBFunPtr
-
-glVertexAttrib4ubvARBFunPtr :: FunPtr (GLuint -> Ptr GLubyte -> IO ())
-glVertexAttrib4ubvARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4ubvARB")
-
-{-# NOINLINE glVertexAttrib4ubvARBFunPtr #-}
-
-glVertexAttrib4uivARB :: MonadIO m => GLuint -> Ptr GLuint -> m ()
-glVertexAttrib4uivARB = ffiuintPtruintIOV glVertexAttrib4uivARBFunPtr
-
-glVertexAttrib4uivARBFunPtr :: FunPtr (GLuint -> Ptr GLuint -> IO ())
-glVertexAttrib4uivARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4uivARB")
-
-{-# NOINLINE glVertexAttrib4uivARBFunPtr #-}
-
-glVertexAttrib4usvARB :: MonadIO m => GLuint -> Ptr GLushort -> m ()
-glVertexAttrib4usvARB = ffiuintPtrushortIOV glVertexAttrib4usvARBFunPtr
-
-glVertexAttrib4usvARBFunPtr :: FunPtr (GLuint -> Ptr GLushort -> IO ())
-glVertexAttrib4usvARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4usvARB")
-
-{-# NOINLINE glVertexAttrib4usvARBFunPtr #-}
-
-glVertexAttribPointerARB :: MonadIO m => GLuint -> GLint -> GLenum -> GLboolean -> GLsizei -> Ptr () -> m ()
-glVertexAttribPointerARB = ffiuintintenumbooleansizeiPtrVIOV glVertexAttribPointerARBFunPtr
-
-glVertexAttribPointerARBFunPtr :: FunPtr (GLuint -> GLint -> GLenum -> GLboolean -> GLsizei -> Ptr () -> IO ())
-glVertexAttribPointerARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttribPointerARB")
-
-{-# NOINLINE glVertexAttribPointerARBFunPtr #-}
-
-pattern GL_CURRENT_VERTEX_ATTRIB_ARB = 0x8626
-
-pattern GL_MAX_VERTEX_ATTRIBS_ARB = 0x8869
-
-pattern GL_VERTEX_ATTRIB_ARRAY_ENABLED_ARB = 0x8622
-
-pattern GL_VERTEX_ATTRIB_ARRAY_NORMALIZED_ARB = 0x886A
-
-pattern GL_VERTEX_ATTRIB_ARRAY_POINTER_ARB = 0x8645
-
-pattern GL_VERTEX_ATTRIB_ARRAY_SIZE_ARB = 0x8623
-
-pattern GL_VERTEX_ATTRIB_ARRAY_STRIDE_ARB = 0x8624
-
-pattern GL_VERTEX_ATTRIB_ARRAY_TYPE_ARB = 0x8625
-
-pattern GL_VERTEX_PROGRAM_POINT_SIZE_ARB = 0x8642
-
-pattern GL_VERTEX_PROGRAM_TWO_SIDE_ARB = 0x8643
-
-pattern GL_FLOAT = 0x1406
-
-pattern GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB = 0x8B4C
-
-pattern GL_UNSIGNED_INT_10F_11F_11F_REV = 0x8C3B
-
-glColorP3ui :: MonadIO m => GLenum -> GLuint -> m ()
-glColorP3ui = ffienumuintIOV glColorP3uiFunPtr
-
-glColorP3uiFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
-glColorP3uiFunPtr = unsafePerformIO (getProcAddress "glColorP3ui")
-
-{-# NOINLINE glColorP3uiFunPtr #-}
-
-glColorP3uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
-glColorP3uiv = ffienumPtruintIOV glColorP3uivFunPtr
-
-glColorP3uivFunPtr :: FunPtr (GLenum -> Ptr GLuint -> IO ())
-glColorP3uivFunPtr = unsafePerformIO (getProcAddress "glColorP3uiv")
-
-{-# NOINLINE glColorP3uivFunPtr #-}
-
-glColorP4ui :: MonadIO m => GLenum -> GLuint -> m ()
-glColorP4ui = ffienumuintIOV glColorP4uiFunPtr
-
-glColorP4uiFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
-glColorP4uiFunPtr = unsafePerformIO (getProcAddress "glColorP4ui")
-
-{-# NOINLINE glColorP4uiFunPtr #-}
-
-glColorP4uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
-glColorP4uiv = ffienumPtruintIOV glColorP4uivFunPtr
-
-glColorP4uivFunPtr :: FunPtr (GLenum -> Ptr GLuint -> IO ())
-glColorP4uivFunPtr = unsafePerformIO (getProcAddress "glColorP4uiv")
-
-{-# NOINLINE glColorP4uivFunPtr #-}
-
-glMultiTexCoordP1ui :: MonadIO m => GLenum -> GLenum -> GLuint -> m ()
-glMultiTexCoordP1ui = ffienumenumuintIOV glMultiTexCoordP1uiFunPtr
-
-glMultiTexCoordP1uiFunPtr :: FunPtr (GLenum -> GLenum -> GLuint -> IO ())
-glMultiTexCoordP1uiFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoordP1ui")
-
-{-# NOINLINE glMultiTexCoordP1uiFunPtr #-}
-
-glMultiTexCoordP1uiv :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()
-glMultiTexCoordP1uiv = ffienumenumPtruintIOV glMultiTexCoordP1uivFunPtr
-
-glMultiTexCoordP1uivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLuint -> IO ())
-glMultiTexCoordP1uivFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoordP1uiv")
-
-{-# NOINLINE glMultiTexCoordP1uivFunPtr #-}
-
-glMultiTexCoordP2ui :: MonadIO m => GLenum -> GLenum -> GLuint -> m ()
-glMultiTexCoordP2ui = ffienumenumuintIOV glMultiTexCoordP2uiFunPtr
-
-glMultiTexCoordP2uiFunPtr :: FunPtr (GLenum -> GLenum -> GLuint -> IO ())
-glMultiTexCoordP2uiFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoordP2ui")
-
-{-# NOINLINE glMultiTexCoordP2uiFunPtr #-}
-
-glMultiTexCoordP2uiv :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()
-glMultiTexCoordP2uiv = ffienumenumPtruintIOV glMultiTexCoordP2uivFunPtr
-
-glMultiTexCoordP2uivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLuint -> IO ())
-glMultiTexCoordP2uivFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoordP2uiv")
-
-{-# NOINLINE glMultiTexCoordP2uivFunPtr #-}
-
-glMultiTexCoordP3ui :: MonadIO m => GLenum -> GLenum -> GLuint -> m ()
-glMultiTexCoordP3ui = ffienumenumuintIOV glMultiTexCoordP3uiFunPtr
-
-glMultiTexCoordP3uiFunPtr :: FunPtr (GLenum -> GLenum -> GLuint -> IO ())
-glMultiTexCoordP3uiFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoordP3ui")
-
-{-# NOINLINE glMultiTexCoordP3uiFunPtr #-}
-
-glMultiTexCoordP3uiv :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()
-glMultiTexCoordP3uiv = ffienumenumPtruintIOV glMultiTexCoordP3uivFunPtr
-
-glMultiTexCoordP3uivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLuint -> IO ())
-glMultiTexCoordP3uivFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoordP3uiv")
-
-{-# NOINLINE glMultiTexCoordP3uivFunPtr #-}
-
-glMultiTexCoordP4ui :: MonadIO m => GLenum -> GLenum -> GLuint -> m ()
-glMultiTexCoordP4ui = ffienumenumuintIOV glMultiTexCoordP4uiFunPtr
-
-glMultiTexCoordP4uiFunPtr :: FunPtr (GLenum -> GLenum -> GLuint -> IO ())
-glMultiTexCoordP4uiFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoordP4ui")
-
-{-# NOINLINE glMultiTexCoordP4uiFunPtr #-}
-
-glMultiTexCoordP4uiv :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()
-glMultiTexCoordP4uiv = ffienumenumPtruintIOV glMultiTexCoordP4uivFunPtr
-
-glMultiTexCoordP4uivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLuint -> IO ())
-glMultiTexCoordP4uivFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoordP4uiv")
-
-{-# NOINLINE glMultiTexCoordP4uivFunPtr #-}
-
-glNormalP3ui :: MonadIO m => GLenum -> GLuint -> m ()
-glNormalP3ui = ffienumuintIOV glNormalP3uiFunPtr
-
-glNormalP3uiFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
-glNormalP3uiFunPtr = unsafePerformIO (getProcAddress "glNormalP3ui")
-
-{-# NOINLINE glNormalP3uiFunPtr #-}
-
-glNormalP3uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
-glNormalP3uiv = ffienumPtruintIOV glNormalP3uivFunPtr
-
-glNormalP3uivFunPtr :: FunPtr (GLenum -> Ptr GLuint -> IO ())
-glNormalP3uivFunPtr = unsafePerformIO (getProcAddress "glNormalP3uiv")
-
-{-# NOINLINE glNormalP3uivFunPtr #-}
-
-glSecondaryColorP3ui :: MonadIO m => GLenum -> GLuint -> m ()
-glSecondaryColorP3ui = ffienumuintIOV glSecondaryColorP3uiFunPtr
-
-glSecondaryColorP3uiFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
-glSecondaryColorP3uiFunPtr = unsafePerformIO (getProcAddress "glSecondaryColorP3ui")
-
-{-# NOINLINE glSecondaryColorP3uiFunPtr #-}
-
-glSecondaryColorP3uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
-glSecondaryColorP3uiv = ffienumPtruintIOV glSecondaryColorP3uivFunPtr
-
-glSecondaryColorP3uivFunPtr :: FunPtr (GLenum -> Ptr GLuint -> IO ())
-glSecondaryColorP3uivFunPtr = unsafePerformIO (getProcAddress "glSecondaryColorP3uiv")
-
-{-# NOINLINE glSecondaryColorP3uivFunPtr #-}
-
-glTexCoordP1ui :: MonadIO m => GLenum -> GLuint -> m ()
-glTexCoordP1ui = ffienumuintIOV glTexCoordP1uiFunPtr
-
-glTexCoordP1uiFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
-glTexCoordP1uiFunPtr = unsafePerformIO (getProcAddress "glTexCoordP1ui")
-
-{-# NOINLINE glTexCoordP1uiFunPtr #-}
-
-glTexCoordP1uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
-glTexCoordP1uiv = ffienumPtruintIOV glTexCoordP1uivFunPtr
-
-glTexCoordP1uivFunPtr :: FunPtr (GLenum -> Ptr GLuint -> IO ())
-glTexCoordP1uivFunPtr = unsafePerformIO (getProcAddress "glTexCoordP1uiv")
-
-{-# NOINLINE glTexCoordP1uivFunPtr #-}
-
-glTexCoordP2ui :: MonadIO m => GLenum -> GLuint -> m ()
-glTexCoordP2ui = ffienumuintIOV glTexCoordP2uiFunPtr
-
-glTexCoordP2uiFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
-glTexCoordP2uiFunPtr = unsafePerformIO (getProcAddress "glTexCoordP2ui")
-
-{-# NOINLINE glTexCoordP2uiFunPtr #-}
-
-glTexCoordP2uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
-glTexCoordP2uiv = ffienumPtruintIOV glTexCoordP2uivFunPtr
-
-glTexCoordP2uivFunPtr :: FunPtr (GLenum -> Ptr GLuint -> IO ())
-glTexCoordP2uivFunPtr = unsafePerformIO (getProcAddress "glTexCoordP2uiv")
-
-{-# NOINLINE glTexCoordP2uivFunPtr #-}
-
-glTexCoordP3ui :: MonadIO m => GLenum -> GLuint -> m ()
-glTexCoordP3ui = ffienumuintIOV glTexCoordP3uiFunPtr
-
-glTexCoordP3uiFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
-glTexCoordP3uiFunPtr = unsafePerformIO (getProcAddress "glTexCoordP3ui")
-
-{-# NOINLINE glTexCoordP3uiFunPtr #-}
-
-glTexCoordP3uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
-glTexCoordP3uiv = ffienumPtruintIOV glTexCoordP3uivFunPtr
-
-glTexCoordP3uivFunPtr :: FunPtr (GLenum -> Ptr GLuint -> IO ())
-glTexCoordP3uivFunPtr = unsafePerformIO (getProcAddress "glTexCoordP3uiv")
-
-{-# NOINLINE glTexCoordP3uivFunPtr #-}
-
-glTexCoordP4ui :: MonadIO m => GLenum -> GLuint -> m ()
-glTexCoordP4ui = ffienumuintIOV glTexCoordP4uiFunPtr
-
-glTexCoordP4uiFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
-glTexCoordP4uiFunPtr = unsafePerformIO (getProcAddress "glTexCoordP4ui")
-
-{-# NOINLINE glTexCoordP4uiFunPtr #-}
-
-glTexCoordP4uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
-glTexCoordP4uiv = ffienumPtruintIOV glTexCoordP4uivFunPtr
-
-glTexCoordP4uivFunPtr :: FunPtr (GLenum -> Ptr GLuint -> IO ())
-glTexCoordP4uivFunPtr = unsafePerformIO (getProcAddress "glTexCoordP4uiv")
-
-{-# NOINLINE glTexCoordP4uivFunPtr #-}
-
-glVertexAttribP1ui :: MonadIO m => GLuint -> GLenum -> GLboolean -> GLuint -> m ()
-glVertexAttribP1ui = ffiuintenumbooleanuintIOV glVertexAttribP1uiFunPtr
-
-glVertexAttribP1uiFunPtr :: FunPtr (GLuint -> GLenum -> GLboolean -> GLuint -> IO ())
-glVertexAttribP1uiFunPtr = unsafePerformIO (getProcAddress "glVertexAttribP1ui")
-
-{-# NOINLINE glVertexAttribP1uiFunPtr #-}
-
-glVertexAttribP1uiv :: MonadIO m => GLuint -> GLenum -> GLboolean -> Ptr GLuint -> m ()
-glVertexAttribP1uiv = ffiuintenumbooleanPtruintIOV glVertexAttribP1uivFunPtr
-
-glVertexAttribP1uivFunPtr :: FunPtr (GLuint -> GLenum -> GLboolean -> Ptr GLuint -> IO ())
-glVertexAttribP1uivFunPtr = unsafePerformIO (getProcAddress "glVertexAttribP1uiv")
-
-{-# NOINLINE glVertexAttribP1uivFunPtr #-}
-
-glVertexAttribP2ui :: MonadIO m => GLuint -> GLenum -> GLboolean -> GLuint -> m ()
-glVertexAttribP2ui = ffiuintenumbooleanuintIOV glVertexAttribP2uiFunPtr
-
-glVertexAttribP2uiFunPtr :: FunPtr (GLuint -> GLenum -> GLboolean -> GLuint -> IO ())
-glVertexAttribP2uiFunPtr = unsafePerformIO (getProcAddress "glVertexAttribP2ui")
-
-{-# NOINLINE glVertexAttribP2uiFunPtr #-}
-
-glVertexAttribP2uiv :: MonadIO m => GLuint -> GLenum -> GLboolean -> Ptr GLuint -> m ()
-glVertexAttribP2uiv = ffiuintenumbooleanPtruintIOV glVertexAttribP2uivFunPtr
-
-glVertexAttribP2uivFunPtr :: FunPtr (GLuint -> GLenum -> GLboolean -> Ptr GLuint -> IO ())
-glVertexAttribP2uivFunPtr = unsafePerformIO (getProcAddress "glVertexAttribP2uiv")
-
-{-# NOINLINE glVertexAttribP2uivFunPtr #-}
-
-glVertexAttribP3ui :: MonadIO m => GLuint -> GLenum -> GLboolean -> GLuint -> m ()
-glVertexAttribP3ui = ffiuintenumbooleanuintIOV glVertexAttribP3uiFunPtr
-
-glVertexAttribP3uiFunPtr :: FunPtr (GLuint -> GLenum -> GLboolean -> GLuint -> IO ())
-glVertexAttribP3uiFunPtr = unsafePerformIO (getProcAddress "glVertexAttribP3ui")
-
-{-# NOINLINE glVertexAttribP3uiFunPtr #-}
-
-glVertexAttribP3uiv :: MonadIO m => GLuint -> GLenum -> GLboolean -> Ptr GLuint -> m ()
-glVertexAttribP3uiv = ffiuintenumbooleanPtruintIOV glVertexAttribP3uivFunPtr
-
-glVertexAttribP3uivFunPtr :: FunPtr (GLuint -> GLenum -> GLboolean -> Ptr GLuint -> IO ())
-glVertexAttribP3uivFunPtr = unsafePerformIO (getProcAddress "glVertexAttribP3uiv")
-
-{-# NOINLINE glVertexAttribP3uivFunPtr #-}
-
-glVertexAttribP4ui :: MonadIO m => GLuint -> GLenum -> GLboolean -> GLuint -> m ()
-glVertexAttribP4ui = ffiuintenumbooleanuintIOV glVertexAttribP4uiFunPtr
-
-glVertexAttribP4uiFunPtr :: FunPtr (GLuint -> GLenum -> GLboolean -> GLuint -> IO ())
-glVertexAttribP4uiFunPtr = unsafePerformIO (getProcAddress "glVertexAttribP4ui")
-
-{-# NOINLINE glVertexAttribP4uiFunPtr #-}
-
-glVertexAttribP4uiv :: MonadIO m => GLuint -> GLenum -> GLboolean -> Ptr GLuint -> m ()
-glVertexAttribP4uiv = ffiuintenumbooleanPtruintIOV glVertexAttribP4uivFunPtr
-
-glVertexAttribP4uivFunPtr :: FunPtr (GLuint -> GLenum -> GLboolean -> Ptr GLuint -> IO ())
-glVertexAttribP4uivFunPtr = unsafePerformIO (getProcAddress "glVertexAttribP4uiv")
-
-{-# NOINLINE glVertexAttribP4uivFunPtr #-}
-
-glVertexP2ui :: MonadIO m => GLenum -> GLuint -> m ()
-glVertexP2ui = ffienumuintIOV glVertexP2uiFunPtr
-
-glVertexP2uiFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
-glVertexP2uiFunPtr = unsafePerformIO (getProcAddress "glVertexP2ui")
-
-{-# NOINLINE glVertexP2uiFunPtr #-}
-
-glVertexP2uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
-glVertexP2uiv = ffienumPtruintIOV glVertexP2uivFunPtr
-
-glVertexP2uivFunPtr :: FunPtr (GLenum -> Ptr GLuint -> IO ())
-glVertexP2uivFunPtr = unsafePerformIO (getProcAddress "glVertexP2uiv")
-
-{-# NOINLINE glVertexP2uivFunPtr #-}
-
-glVertexP3ui :: MonadIO m => GLenum -> GLuint -> m ()
-glVertexP3ui = ffienumuintIOV glVertexP3uiFunPtr
-
-glVertexP3uiFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
-glVertexP3uiFunPtr = unsafePerformIO (getProcAddress "glVertexP3ui")
-
-{-# NOINLINE glVertexP3uiFunPtr #-}
-
-glVertexP3uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
-glVertexP3uiv = ffienumPtruintIOV glVertexP3uivFunPtr
-
-glVertexP3uivFunPtr :: FunPtr (GLenum -> Ptr GLuint -> IO ())
-glVertexP3uivFunPtr = unsafePerformIO (getProcAddress "glVertexP3uiv")
-
-{-# NOINLINE glVertexP3uivFunPtr #-}
-
-glVertexP4ui :: MonadIO m => GLenum -> GLuint -> m ()
-glVertexP4ui = ffienumuintIOV glVertexP4uiFunPtr
-
-glVertexP4uiFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
-glVertexP4uiFunPtr = unsafePerformIO (getProcAddress "glVertexP4ui")
-
-{-# NOINLINE glVertexP4uiFunPtr #-}
-
-glVertexP4uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
-glVertexP4uiv = ffienumPtruintIOV glVertexP4uivFunPtr
-
-glVertexP4uivFunPtr :: FunPtr (GLenum -> Ptr GLuint -> IO ())
-glVertexP4uivFunPtr = unsafePerformIO (getProcAddress "glVertexP4uiv")
-
-{-# NOINLINE glVertexP4uivFunPtr #-}
-
-pattern GL_INT_2_10_10_10_REV = 0x8D9F
-
-pattern GL_UNSIGNED_INT_2_10_10_10_REV = 0x8368
-
-glDepthRangeArrayv :: MonadIO m => GLuint -> GLsizei -> Ptr GLdouble -> m ()
-glDepthRangeArrayv = ffiuintsizeiPtrdoubleIOV glDepthRangeArrayvFunPtr
-
-glDepthRangeArrayvFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLdouble -> IO ())
-glDepthRangeArrayvFunPtr = unsafePerformIO (getProcAddress "glDepthRangeArrayv")
-
-{-# NOINLINE glDepthRangeArrayvFunPtr #-}
-
-glDepthRangeIndexed :: MonadIO m => GLuint -> GLdouble -> GLdouble -> m ()
-glDepthRangeIndexed = ffiuintdoubledoubleIOV glDepthRangeIndexedFunPtr
-
-glDepthRangeIndexedFunPtr :: FunPtr (GLuint -> GLdouble -> GLdouble -> IO ())
-glDepthRangeIndexedFunPtr = unsafePerformIO (getProcAddress "glDepthRangeIndexed")
-
-{-# NOINLINE glDepthRangeIndexedFunPtr #-}
-
-glGetDoublei_v :: MonadIO m => GLenum -> GLuint -> Ptr GLdouble -> m ()
-glGetDoublei_v = ffienumuintPtrdoubleIOV glGetDoublei_vFunPtr
-
-glGetDoublei_vFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLdouble -> IO ())
-glGetDoublei_vFunPtr = unsafePerformIO (getProcAddress "glGetDoublei_v")
-
-{-# NOINLINE glGetDoublei_vFunPtr #-}
-
-glGetFloati_v :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()
-glGetFloati_v = ffienumuintPtrfloatIOV glGetFloati_vFunPtr
-
-glGetFloati_vFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLfloat -> IO ())
-glGetFloati_vFunPtr = unsafePerformIO (getProcAddress "glGetFloati_v")
-
-{-# NOINLINE glGetFloati_vFunPtr #-}
-
-glScissorArrayv :: MonadIO m => GLuint -> GLsizei -> Ptr GLint -> m ()
-glScissorArrayv = ffiuintsizeiPtrintIOV glScissorArrayvFunPtr
-
-glScissorArrayvFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLint -> IO ())
-glScissorArrayvFunPtr = unsafePerformIO (getProcAddress "glScissorArrayv")
-
-{-# NOINLINE glScissorArrayvFunPtr #-}
-
-glScissorIndexed :: MonadIO m => GLuint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()
-glScissorIndexed = ffiuintintintsizeisizeiIOV glScissorIndexedFunPtr
-
-glScissorIndexedFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ())
-glScissorIndexedFunPtr = unsafePerformIO (getProcAddress "glScissorIndexed")
-
-{-# NOINLINE glScissorIndexedFunPtr #-}
-
-glScissorIndexedv :: MonadIO m => GLuint -> Ptr GLint -> m ()
-glScissorIndexedv = ffiuintPtrintIOV glScissorIndexedvFunPtr
-
-glScissorIndexedvFunPtr :: FunPtr (GLuint -> Ptr GLint -> IO ())
-glScissorIndexedvFunPtr = unsafePerformIO (getProcAddress "glScissorIndexedv")
-
-{-# NOINLINE glScissorIndexedvFunPtr #-}
-
-glViewportArrayv :: MonadIO m => GLuint -> GLsizei -> Ptr GLfloat -> m ()
-glViewportArrayv = ffiuintsizeiPtrfloatIOV glViewportArrayvFunPtr
-
-glViewportArrayvFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLfloat -> IO ())
-glViewportArrayvFunPtr = unsafePerformIO (getProcAddress "glViewportArrayv")
-
-{-# NOINLINE glViewportArrayvFunPtr #-}
-
-glViewportIndexedf :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
-glViewportIndexedf = ffiuintfloatfloatfloatfloatIOV glViewportIndexedfFunPtr
-
-glViewportIndexedfFunPtr :: FunPtr (GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
-glViewportIndexedfFunPtr = unsafePerformIO (getProcAddress "glViewportIndexedf")
-
-{-# NOINLINE glViewportIndexedfFunPtr #-}
-
-glViewportIndexedfv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()
-glViewportIndexedfv = ffiuintPtrfloatIOV glViewportIndexedfvFunPtr
-
-glViewportIndexedfvFunPtr :: FunPtr (GLuint -> Ptr GLfloat -> IO ())
-glViewportIndexedfvFunPtr = unsafePerformIO (getProcAddress "glViewportIndexedfv")
-
-{-# NOINLINE glViewportIndexedfvFunPtr #-}
-
-pattern GL_DEPTH_RANGE = 0x0B70
-
-pattern GL_LAYER_PROVOKING_VERTEX = 0x825E
-
-pattern GL_MAX_VIEWPORTS = 0x825B
-
-pattern GL_SCISSOR_BOX = 0x0C10
-
-pattern GL_SCISSOR_TEST = 0x0C11
-
-pattern GL_UNDEFINED_VERTEX = 0x8260
-
-pattern GL_VIEWPORT = 0x0BA2
-
-pattern GL_VIEWPORT_BOUNDS_RANGE = 0x825D
-
-pattern GL_VIEWPORT_INDEX_PROVOKING_VERTEX = 0x825F
-
-pattern GL_VIEWPORT_SUBPIXEL_BITS = 0x825C
-
-pattern GL_R16F_EXT = 0x822D
-
-pattern GL_RG16F_EXT = 0x822F
-
-pattern GL_RGB16F_EXT = 0x881B
-
-pattern GL_RGBA16F_EXT = 0x881A
-
-pattern GL_SAMPLER = 0x82E6
-
-glDisableIndexedEXT :: MonadIO m => GLenum -> GLuint -> m ()
-glDisableIndexedEXT = ffienumuintIOV glDisableIndexedEXTFunPtr
-
-glDisableIndexedEXTFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
-glDisableIndexedEXTFunPtr = unsafePerformIO (getProcAddress "glDisableIndexedEXT")
-
-{-# NOINLINE glDisableIndexedEXTFunPtr #-}
-
-glEnableIndexedEXT :: MonadIO m => GLenum -> GLuint -> m ()
-glEnableIndexedEXT = ffienumuintIOV glEnableIndexedEXTFunPtr
-
-glEnableIndexedEXTFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
-glEnableIndexedEXTFunPtr = unsafePerformIO (getProcAddress "glEnableIndexedEXT")
-
-{-# NOINLINE glEnableIndexedEXTFunPtr #-}
-
-glGetBooleanIndexedvEXT :: MonadIO m => GLenum -> GLuint -> Ptr GLboolean -> m ()
-glGetBooleanIndexedvEXT = ffienumuintPtrbooleanIOV glGetBooleanIndexedvEXTFunPtr
-
-glGetBooleanIndexedvEXTFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLboolean -> IO ())
-glGetBooleanIndexedvEXTFunPtr = unsafePerformIO (getProcAddress "glGetBooleanIndexedvEXT")
-
-{-# NOINLINE glGetBooleanIndexedvEXTFunPtr #-}
-
-glGetIntegerIndexedvEXT :: MonadIO m => GLenum -> GLuint -> Ptr GLint -> m ()
-glGetIntegerIndexedvEXT = ffienumuintPtrintIOV glGetIntegerIndexedvEXTFunPtr
-
-glGetIntegerIndexedvEXTFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLint -> IO ())
-glGetIntegerIndexedvEXTFunPtr = unsafePerformIO (getProcAddress "glGetIntegerIndexedvEXT")
-
-{-# NOINLINE glGetIntegerIndexedvEXTFunPtr #-}
-
-glIsEnabledIndexedEXT :: MonadIO m => GLenum -> GLuint -> m GLboolean
-glIsEnabledIndexedEXT = ffienumuintIOboolean glIsEnabledIndexedEXTFunPtr
-
-glIsEnabledIndexedEXTFunPtr :: FunPtr (GLenum -> GLuint -> IO GLboolean)
-glIsEnabledIndexedEXTFunPtr = unsafePerformIO (getProcAddress "glIsEnabledIndexedEXT")
-
-{-# NOINLINE glIsEnabledIndexedEXTFunPtr #-}
-
-glProgramUniform1fEXT :: MonadIO m => GLuint -> GLint -> GLfloat -> m ()
-glProgramUniform1fEXT = ffiuintintfloatIOV glProgramUniform1fEXTFunPtr
-
-glProgramUniform1fEXTFunPtr :: FunPtr (GLuint -> GLint -> GLfloat -> IO ())
-glProgramUniform1fEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform1fEXT")
-
-{-# NOINLINE glProgramUniform1fEXTFunPtr #-}
-
-glProgramUniform1fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()
-glProgramUniform1fvEXT = ffiuintintsizeiPtrfloatIOV glProgramUniform1fvEXTFunPtr
-
-glProgramUniform1fvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLfloat -> IO ())
-glProgramUniform1fvEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform1fvEXT")
-
-{-# NOINLINE glProgramUniform1fvEXTFunPtr #-}
-
-glProgramUniform1iEXT :: MonadIO m => GLuint -> GLint -> GLint -> m ()
-glProgramUniform1iEXT = ffiuintintintIOV glProgramUniform1iEXTFunPtr
-
-glProgramUniform1iEXTFunPtr :: FunPtr (GLuint -> GLint -> GLint -> IO ())
-glProgramUniform1iEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform1iEXT")
-
-{-# NOINLINE glProgramUniform1iEXTFunPtr #-}
-
-glProgramUniform1ivEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()
-glProgramUniform1ivEXT = ffiuintintsizeiPtrintIOV glProgramUniform1ivEXTFunPtr
-
-glProgramUniform1ivEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint -> IO ())
-glProgramUniform1ivEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform1ivEXT")
-
-{-# NOINLINE glProgramUniform1ivEXTFunPtr #-}
-
-glProgramUniform1uiEXT :: MonadIO m => GLuint -> GLint -> GLuint -> m ()
-glProgramUniform1uiEXT = ffiuintintuintIOV glProgramUniform1uiEXTFunPtr
-
-glProgramUniform1uiEXTFunPtr :: FunPtr (GLuint -> GLint -> GLuint -> IO ())
-glProgramUniform1uiEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform1uiEXT")
-
-{-# NOINLINE glProgramUniform1uiEXTFunPtr #-}
-
-glProgramUniform1uivEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()
-glProgramUniform1uivEXT = ffiuintintsizeiPtruintIOV glProgramUniform1uivEXTFunPtr
-
-glProgramUniform1uivEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint -> IO ())
-glProgramUniform1uivEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform1uivEXT")
-
-{-# NOINLINE glProgramUniform1uivEXTFunPtr #-}
-
-glProgramUniform2fEXT :: MonadIO m => GLuint -> GLint -> GLfloat -> GLfloat -> m ()
-glProgramUniform2fEXT = ffiuintintfloatfloatIOV glProgramUniform2fEXTFunPtr
-
-glProgramUniform2fEXTFunPtr :: FunPtr (GLuint -> GLint -> GLfloat -> GLfloat -> IO ())
-glProgramUniform2fEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform2fEXT")
-
-{-# NOINLINE glProgramUniform2fEXTFunPtr #-}
-
-glProgramUniform2fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()
-glProgramUniform2fvEXT = ffiuintintsizeiPtrfloatIOV glProgramUniform2fvEXTFunPtr
-
-glProgramUniform2fvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLfloat -> IO ())
-glProgramUniform2fvEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform2fvEXT")
-
-{-# NOINLINE glProgramUniform2fvEXTFunPtr #-}
-
-glProgramUniform2iEXT :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> m ()
-glProgramUniform2iEXT = ffiuintintintintIOV glProgramUniform2iEXTFunPtr
-
-glProgramUniform2iEXTFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> IO ())
-glProgramUniform2iEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform2iEXT")
-
-{-# NOINLINE glProgramUniform2iEXTFunPtr #-}
-
-glProgramUniform2ivEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()
-glProgramUniform2ivEXT = ffiuintintsizeiPtrintIOV glProgramUniform2ivEXTFunPtr
-
-glProgramUniform2ivEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint -> IO ())
-glProgramUniform2ivEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform2ivEXT")
-
-{-# NOINLINE glProgramUniform2ivEXTFunPtr #-}
-
-glProgramUniform2uiEXT :: MonadIO m => GLuint -> GLint -> GLuint -> GLuint -> m ()
-glProgramUniform2uiEXT = ffiuintintuintuintIOV glProgramUniform2uiEXTFunPtr
-
-glProgramUniform2uiEXTFunPtr :: FunPtr (GLuint -> GLint -> GLuint -> GLuint -> IO ())
-glProgramUniform2uiEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform2uiEXT")
-
-{-# NOINLINE glProgramUniform2uiEXTFunPtr #-}
-
-glProgramUniform2uivEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()
-glProgramUniform2uivEXT = ffiuintintsizeiPtruintIOV glProgramUniform2uivEXTFunPtr
-
-glProgramUniform2uivEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint -> IO ())
-glProgramUniform2uivEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform2uivEXT")
-
-{-# NOINLINE glProgramUniform2uivEXTFunPtr #-}
-
-glProgramUniform3fEXT :: MonadIO m => GLuint -> GLint -> GLfloat -> GLfloat -> GLfloat -> m ()
-glProgramUniform3fEXT = ffiuintintfloatfloatfloatIOV glProgramUniform3fEXTFunPtr
-
-glProgramUniform3fEXTFunPtr :: FunPtr (GLuint -> GLint -> GLfloat -> GLfloat -> GLfloat -> IO ())
-glProgramUniform3fEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform3fEXT")
-
-{-# NOINLINE glProgramUniform3fEXTFunPtr #-}
-
-glProgramUniform3fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()
-glProgramUniform3fvEXT = ffiuintintsizeiPtrfloatIOV glProgramUniform3fvEXTFunPtr
-
-glProgramUniform3fvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLfloat -> IO ())
-glProgramUniform3fvEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform3fvEXT")
-
-{-# NOINLINE glProgramUniform3fvEXTFunPtr #-}
-
-glProgramUniform3iEXT :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> m ()
-glProgramUniform3iEXT = ffiuintintintintintIOV glProgramUniform3iEXTFunPtr
-
-glProgramUniform3iEXTFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> IO ())
-glProgramUniform3iEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform3iEXT")
-
-{-# NOINLINE glProgramUniform3iEXTFunPtr #-}
-
-glProgramUniform3ivEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()
-glProgramUniform3ivEXT = ffiuintintsizeiPtrintIOV glProgramUniform3ivEXTFunPtr
-
-glProgramUniform3ivEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint -> IO ())
-glProgramUniform3ivEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform3ivEXT")
-
-{-# NOINLINE glProgramUniform3ivEXTFunPtr #-}
-
-glProgramUniform3uiEXT :: MonadIO m => GLuint -> GLint -> GLuint -> GLuint -> GLuint -> m ()
-glProgramUniform3uiEXT = ffiuintintuintuintuintIOV glProgramUniform3uiEXTFunPtr
-
-glProgramUniform3uiEXTFunPtr :: FunPtr (GLuint -> GLint -> GLuint -> GLuint -> GLuint -> IO ())
-glProgramUniform3uiEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform3uiEXT")
-
-{-# NOINLINE glProgramUniform3uiEXTFunPtr #-}
-
-glProgramUniform3uivEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()
-glProgramUniform3uivEXT = ffiuintintsizeiPtruintIOV glProgramUniform3uivEXTFunPtr
-
-glProgramUniform3uivEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint -> IO ())
-glProgramUniform3uivEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform3uivEXT")
-
-{-# NOINLINE glProgramUniform3uivEXTFunPtr #-}
-
-glProgramUniform4fEXT :: MonadIO m => GLuint -> GLint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
-glProgramUniform4fEXT = ffiuintintfloatfloatfloatfloatIOV glProgramUniform4fEXTFunPtr
-
-glProgramUniform4fEXTFunPtr :: FunPtr (GLuint -> GLint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
-glProgramUniform4fEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform4fEXT")
-
-{-# NOINLINE glProgramUniform4fEXTFunPtr #-}
-
-glProgramUniform4fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()
-glProgramUniform4fvEXT = ffiuintintsizeiPtrfloatIOV glProgramUniform4fvEXTFunPtr
-
-glProgramUniform4fvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLfloat -> IO ())
-glProgramUniform4fvEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform4fvEXT")
-
-{-# NOINLINE glProgramUniform4fvEXTFunPtr #-}
-
-glProgramUniform4iEXT :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> m ()
-glProgramUniform4iEXT = ffiuintintintintintintIOV glProgramUniform4iEXTFunPtr
-
-glProgramUniform4iEXTFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> IO ())
-glProgramUniform4iEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform4iEXT")
-
-{-# NOINLINE glProgramUniform4iEXTFunPtr #-}
-
-glProgramUniform4ivEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()
-glProgramUniform4ivEXT = ffiuintintsizeiPtrintIOV glProgramUniform4ivEXTFunPtr
-
-glProgramUniform4ivEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint -> IO ())
-glProgramUniform4ivEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform4ivEXT")
-
-{-# NOINLINE glProgramUniform4ivEXTFunPtr #-}
-
-glProgramUniform4uiEXT :: MonadIO m => GLuint -> GLint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
-glProgramUniform4uiEXT = ffiuintintuintuintuintuintIOV glProgramUniform4uiEXTFunPtr
-
-glProgramUniform4uiEXTFunPtr :: FunPtr (GLuint -> GLint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ())
-glProgramUniform4uiEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform4uiEXT")
-
-{-# NOINLINE glProgramUniform4uiEXTFunPtr #-}
-
-glProgramUniform4uivEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()
-glProgramUniform4uivEXT = ffiuintintsizeiPtruintIOV glProgramUniform4uivEXTFunPtr
-
-glProgramUniform4uivEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint -> IO ())
-glProgramUniform4uivEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform4uivEXT")
-
-{-# NOINLINE glProgramUniform4uivEXTFunPtr #-}
-
-glProgramUniformMatrix2fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
-glProgramUniformMatrix2fvEXT = ffiuintintsizeibooleanPtrfloatIOV glProgramUniformMatrix2fvEXTFunPtr
-
-glProgramUniformMatrix2fvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
-glProgramUniformMatrix2fvEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix2fvEXT")
-
-{-# NOINLINE glProgramUniformMatrix2fvEXTFunPtr #-}
-
-glProgramUniformMatrix2x3fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
-glProgramUniformMatrix2x3fvEXT = ffiuintintsizeibooleanPtrfloatIOV glProgramUniformMatrix2x3fvEXTFunPtr
-
-glProgramUniformMatrix2x3fvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
-glProgramUniformMatrix2x3fvEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix2x3fvEXT")
-
-{-# NOINLINE glProgramUniformMatrix2x3fvEXTFunPtr #-}
-
-glProgramUniformMatrix2x4fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
-glProgramUniformMatrix2x4fvEXT = ffiuintintsizeibooleanPtrfloatIOV glProgramUniformMatrix2x4fvEXTFunPtr
-
-glProgramUniformMatrix2x4fvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
-glProgramUniformMatrix2x4fvEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix2x4fvEXT")
-
-{-# NOINLINE glProgramUniformMatrix2x4fvEXTFunPtr #-}
-
-glProgramUniformMatrix3fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
-glProgramUniformMatrix3fvEXT = ffiuintintsizeibooleanPtrfloatIOV glProgramUniformMatrix3fvEXTFunPtr
-
-glProgramUniformMatrix3fvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
-glProgramUniformMatrix3fvEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix3fvEXT")
-
-{-# NOINLINE glProgramUniformMatrix3fvEXTFunPtr #-}
-
-glProgramUniformMatrix3x2fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
-glProgramUniformMatrix3x2fvEXT = ffiuintintsizeibooleanPtrfloatIOV glProgramUniformMatrix3x2fvEXTFunPtr
-
-glProgramUniformMatrix3x2fvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
-glProgramUniformMatrix3x2fvEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix3x2fvEXT")
-
-{-# NOINLINE glProgramUniformMatrix3x2fvEXTFunPtr #-}
-
-glProgramUniformMatrix3x4fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
-glProgramUniformMatrix3x4fvEXT = ffiuintintsizeibooleanPtrfloatIOV glProgramUniformMatrix3x4fvEXTFunPtr
-
-glProgramUniformMatrix3x4fvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
-glProgramUniformMatrix3x4fvEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix3x4fvEXT")
-
-{-# NOINLINE glProgramUniformMatrix3x4fvEXTFunPtr #-}
-
-glProgramUniformMatrix4fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
-glProgramUniformMatrix4fvEXT = ffiuintintsizeibooleanPtrfloatIOV glProgramUniformMatrix4fvEXTFunPtr
-
-glProgramUniformMatrix4fvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
-glProgramUniformMatrix4fvEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix4fvEXT")
-
-{-# NOINLINE glProgramUniformMatrix4fvEXTFunPtr #-}
-
-glProgramUniformMatrix4x2fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
-glProgramUniformMatrix4x2fvEXT = ffiuintintsizeibooleanPtrfloatIOV glProgramUniformMatrix4x2fvEXTFunPtr
-
-glProgramUniformMatrix4x2fvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
-glProgramUniformMatrix4x2fvEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix4x2fvEXT")
-
-{-# NOINLINE glProgramUniformMatrix4x2fvEXTFunPtr #-}
-
-glProgramUniformMatrix4x3fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
-glProgramUniformMatrix4x3fvEXT = ffiuintintsizeibooleanPtrfloatIOV glProgramUniformMatrix4x3fvEXTFunPtr
-
-glProgramUniformMatrix4x3fvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
-glProgramUniformMatrix4x3fvEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix4x3fvEXT")
-
-{-# NOINLINE glProgramUniformMatrix4x3fvEXTFunPtr #-}
-
-glTextureStorage1DEXT :: MonadIO m => GLuint -> GLenum -> GLsizei -> GLenum -> GLsizei -> m ()
-glTextureStorage1DEXT = ffiuintenumsizeienumsizeiIOV glTextureStorage1DEXTFunPtr
-
-glTextureStorage1DEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLsizei -> GLenum -> GLsizei -> IO ())
-glTextureStorage1DEXTFunPtr = unsafePerformIO (getProcAddress "glTextureStorage1DEXT")
-
-{-# NOINLINE glTextureStorage1DEXTFunPtr #-}
-
-glTextureStorage2DEXT :: MonadIO m => GLuint -> GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()
-glTextureStorage2DEXT = ffiuintenumsizeienumsizeisizeiIOV glTextureStorage2DEXTFunPtr
-
-glTextureStorage2DEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> IO ())
-glTextureStorage2DEXTFunPtr = unsafePerformIO (getProcAddress "glTextureStorage2DEXT")
-
-{-# NOINLINE glTextureStorage2DEXTFunPtr #-}
-
-glTextureStorage3DEXT :: MonadIO m => GLuint -> GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> m ()
-glTextureStorage3DEXT = ffiuintenumsizeienumsizeisizeisizeiIOV glTextureStorage3DEXTFunPtr
-
-glTextureStorage3DEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> IO ())
-glTextureStorage3DEXTFunPtr = unsafePerformIO (getProcAddress "glTextureStorage3DEXT")
-
-{-# NOINLINE glTextureStorage3DEXTFunPtr #-}
-
-glBeginQueryEXT :: MonadIO m => GLenum -> GLuint -> m ()
-glBeginQueryEXT = ffienumuintIOV glBeginQueryEXTFunPtr
-
-glBeginQueryEXTFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
-glBeginQueryEXTFunPtr = unsafePerformIO (getProcAddress "glBeginQueryEXT")
-
-{-# NOINLINE glBeginQueryEXTFunPtr #-}
-
-glDeleteQueriesEXT :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
-glDeleteQueriesEXT = ffisizeiPtruintIOV glDeleteQueriesEXTFunPtr
-
-glDeleteQueriesEXTFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
-glDeleteQueriesEXTFunPtr = unsafePerformIO (getProcAddress "glDeleteQueriesEXT")
-
-{-# NOINLINE glDeleteQueriesEXTFunPtr #-}
-
-glEndQueryEXT :: MonadIO m => GLenum -> m ()
-glEndQueryEXT = ffienumIOV glEndQueryEXTFunPtr
-
-glEndQueryEXTFunPtr :: FunPtr (GLenum -> IO ())
-glEndQueryEXTFunPtr = unsafePerformIO (getProcAddress "glEndQueryEXT")
-
-{-# NOINLINE glEndQueryEXTFunPtr #-}
-
-glGenQueriesEXT :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
-glGenQueriesEXT = ffisizeiPtruintIOV glGenQueriesEXTFunPtr
-
-glGenQueriesEXTFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
-glGenQueriesEXTFunPtr = unsafePerformIO (getProcAddress "glGenQueriesEXT")
-
-{-# NOINLINE glGenQueriesEXTFunPtr #-}
-
-glGetQueryObjecti64vEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLint64 -> m ()
-glGetQueryObjecti64vEXT = ffiuintenumPtrint64IOV glGetQueryObjecti64vEXTFunPtr
-
-glGetQueryObjecti64vEXTFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint64 -> IO ())
-glGetQueryObjecti64vEXTFunPtr = unsafePerformIO (getProcAddress "glGetQueryObjecti64vEXT")
-
-{-# NOINLINE glGetQueryObjecti64vEXTFunPtr #-}
-
-glGetQueryObjectui64vEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLuint64 -> m ()
-glGetQueryObjectui64vEXT = ffiuintenumPtruint64IOV glGetQueryObjectui64vEXTFunPtr
-
-glGetQueryObjectui64vEXTFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLuint64 -> IO ())
-glGetQueryObjectui64vEXTFunPtr = unsafePerformIO (getProcAddress "glGetQueryObjectui64vEXT")
-
-{-# NOINLINE glGetQueryObjectui64vEXTFunPtr #-}
-
-glGetQueryObjectuivEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()
-glGetQueryObjectuivEXT = ffiuintenumPtruintIOV glGetQueryObjectuivEXTFunPtr
-
-glGetQueryObjectuivEXTFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLuint -> IO ())
-glGetQueryObjectuivEXTFunPtr = unsafePerformIO (getProcAddress "glGetQueryObjectuivEXT")
-
-{-# NOINLINE glGetQueryObjectuivEXTFunPtr #-}
-
-glGetQueryivEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
-glGetQueryivEXT = ffienumenumPtrintIOV glGetQueryivEXTFunPtr
-
-glGetQueryivEXTFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
-glGetQueryivEXTFunPtr = unsafePerformIO (getProcAddress "glGetQueryivEXT")
-
-{-# NOINLINE glGetQueryivEXTFunPtr #-}
-
-glIsQueryEXT :: MonadIO m => GLuint -> m GLboolean
-glIsQueryEXT = ffiuintIOboolean glIsQueryEXTFunPtr
-
-glIsQueryEXTFunPtr :: FunPtr (GLuint -> IO GLboolean)
-glIsQueryEXTFunPtr = unsafePerformIO (getProcAddress "glIsQueryEXT")
-
-{-# NOINLINE glIsQueryEXTFunPtr #-}
-
-pattern GL_CURRENT_QUERY_EXT = 0x8865
-
-pattern GL_QUERY_RESULT_AVAILABLE_EXT = 0x8867
-
-pattern GL_QUERY_RESULT_EXT = 0x8866
-
-pattern GL_TIME_ELAPSED_EXT = 0x88BF
-
-pattern GL_COLOR_ATTACHMENT0_EXT = 0x8CE0
-
-pattern GL_COLOR_ATTACHMENT10_EXT = 0x8CEA
-
-pattern GL_COLOR_ATTACHMENT11_EXT = 0x8CEB
-
-pattern GL_COLOR_ATTACHMENT12_EXT = 0x8CEC
-
-pattern GL_COLOR_ATTACHMENT13_EXT = 0x8CED
-
-pattern GL_COLOR_ATTACHMENT14_EXT = 0x8CEE
-
-pattern GL_COLOR_ATTACHMENT15_EXT = 0x8CEF
-
-pattern GL_COLOR_ATTACHMENT1_EXT = 0x8CE1
-
-pattern GL_COLOR_ATTACHMENT2_EXT = 0x8CE2
-
-pattern GL_COLOR_ATTACHMENT3_EXT = 0x8CE3
-
-pattern GL_COLOR_ATTACHMENT4_EXT = 0x8CE4
-
-pattern GL_COLOR_ATTACHMENT5_EXT = 0x8CE5
-
-pattern GL_COLOR_ATTACHMENT6_EXT = 0x8CE6
-
-pattern GL_COLOR_ATTACHMENT7_EXT = 0x8CE7
-
-pattern GL_COLOR_ATTACHMENT8_EXT = 0x8CE8
-
-pattern GL_COLOR_ATTACHMENT9_EXT = 0x8CE9
-
-pattern GL_MAX_COLOR_ATTACHMENTS_EXT = 0x8CDF
-
-pattern GL_BLEND = 0x0BE2
-
-pattern GL_BLEND_DST_ALPHA = 0x80CA
-
-pattern GL_BLEND_DST_RGB = 0x80C8
-
-pattern GL_BLEND_EQUATION_ALPHA = 0x883D
-
-pattern GL_BLEND_EQUATION_RGB = 0x8009
-
-pattern GL_BLEND_SRC_ALPHA = 0x80CB
-
-pattern GL_BLEND_SRC_RGB = 0x80C9
-
-pattern GL_COLOR_WRITEMASK = 0x0C23
-
-pattern GL_DST_ALPHA = 0x0304
-
-pattern GL_DST_COLOR = 0x0306
-
-pattern GL_ONE = 1
-
-pattern GL_ONE_MINUS_DST_ALPHA = 0x0305
-
-pattern GL_ONE_MINUS_DST_COLOR = 0x0307
-
-pattern GL_ONE_MINUS_SRC_ALPHA = 0x0303
-
-pattern GL_ONE_MINUS_SRC_COLOR = 0x0301
-
-pattern GL_SRC_ALPHA = 0x0302
-
-pattern GL_SRC_ALPHA_SATURATE = 0x0308
-
-pattern GL_SRC_COLOR = 0x0300
-
-pattern GL_ZERO = 0
-
-glDrawArraysInstancedEXT :: MonadIO m => GLenum -> GLint -> GLsizei -> GLsizei -> m ()
-glDrawArraysInstancedEXT = ffienumintsizeisizeiIOV glDrawArraysInstancedEXTFunPtr
-
-glDrawArraysInstancedEXTFunPtr :: FunPtr (GLenum -> GLint -> GLsizei -> GLsizei -> IO ())
-glDrawArraysInstancedEXTFunPtr = unsafePerformIO (getProcAddress "glDrawArraysInstancedEXT")
-
-{-# NOINLINE glDrawArraysInstancedEXTFunPtr #-}
-
-glDrawElementsInstancedEXT :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> m ()
-glDrawElementsInstancedEXT = ffienumsizeienumPtrVsizeiIOV glDrawElementsInstancedEXTFunPtr
-
-glDrawElementsInstancedEXTFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> IO ())
-glDrawElementsInstancedEXTFunPtr = unsafePerformIO (getProcAddress "glDrawElementsInstancedEXT")
-
-{-# NOINLINE glDrawElementsInstancedEXTFunPtr #-}
-
-pattern GL_FRAGMENT_DEPTH_EXT = 0x8452
-
-glRenderbufferStorageMultisampleEXT :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()
-glRenderbufferStorageMultisampleEXT = ffienumsizeienumsizeisizeiIOV glRenderbufferStorageMultisampleEXTFunPtr
-
-glRenderbufferStorageMultisampleEXTFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> IO ())
-glRenderbufferStorageMultisampleEXTFunPtr = unsafePerformIO (getProcAddress "glRenderbufferStorageMultisampleEXT")
-
-{-# NOINLINE glRenderbufferStorageMultisampleEXTFunPtr #-}
-
-pattern GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT = 0x8D56
-
-pattern GL_MAX_SAMPLES_EXT = 0x8D57
-
-pattern GL_RENDERBUFFER_SAMPLES_EXT = 0x8CAB
-
-pattern GL_FRAMEBUFFER_SRGB_EXT = 0x8DB9
-
-glFramebufferTextureEXT :: MonadIO m => GLenum -> GLenum -> GLuint -> GLint -> m ()
-glFramebufferTextureEXT = ffienumenumuintintIOV glFramebufferTextureEXTFunPtr
-
-glFramebufferTextureEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLuint -> GLint -> IO ())
-glFramebufferTextureEXTFunPtr = unsafePerformIO (getProcAddress "glFramebufferTextureEXT")
-
-{-# NOINLINE glFramebufferTextureEXTFunPtr #-}
-
-pattern GL_FIRST_VERTEX_CONVENTION_EXT = 0x8E4D
-
-pattern GL_FRAMEBUFFER_ATTACHMENT_LAYERED_EXT = 0x8DA7
-
-pattern GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_EXT = 0x8DA8
-
-pattern GL_GEOMETRY_SHADER_EXT = 0x8DD9
-
-pattern GL_LAST_VERTEX_CONVENTION_EXT = 0x8E4E
-
-pattern GL_LINES_ADJACENCY_EXT = 0x000A
-
-pattern GL_LINE_STRIP_ADJACENCY_EXT = 0x000B
-
-pattern GL_MAX_GEOMETRY_OUTPUT_VERTICES_EXT = 0x8DE0
-
-pattern GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_EXT = 0x8C29
-
-pattern GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_EXT = 0x8DE1
-
-pattern GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_EXT = 0x8DDF
-
-pattern GL_PRIMITIVES_GENERATED_EXT = 0x8C87
-
-pattern GL_TRIANGLES_ADJACENCY_EXT = 0x000C
-
-pattern GL_TRIANGLE_STRIP_ADJACENCY_EXT = 0x000D
-
-glProgramParameteriEXT :: MonadIO m => GLuint -> GLenum -> GLint -> m ()
-glProgramParameteriEXT = ffiuintenumintIOV glProgramParameteriEXTFunPtr
-
-glProgramParameteriEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> IO ())
-glProgramParameteriEXTFunPtr = unsafePerformIO (getProcAddress "glProgramParameteriEXT")
-
-{-# NOINLINE glProgramParameteriEXTFunPtr #-}
-
-pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT = 0x8CD4
-
-pattern GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_EXT = 0x8DA9
-
-pattern GL_GEOMETRY_INPUT_TYPE_EXT = 0x8DDB
-
-pattern GL_GEOMETRY_OUTPUT_TYPE_EXT = 0x8DDC
-
-pattern GL_GEOMETRY_VERTICES_OUT_EXT = 0x8DDA
-
-pattern GL_PROGRAM_POINT_SIZE_EXT = 0x8642
-
-pattern GL_INT_SAMPLER_BUFFER_EXT = 0x8DD0
-
-pattern GL_SAMPLER_BUFFER_EXT = 0x8DC2
-
-pattern GL_UNSIGNED_INT_SAMPLER_BUFFER_EXT = 0x8DD8
-
-glRasterSamplesEXT :: MonadIO m => GLuint -> GLboolean -> m ()
-glRasterSamplesEXT = ffiuintbooleanIOV glRasterSamplesEXTFunPtr
-
-glRasterSamplesEXTFunPtr :: FunPtr (GLuint -> GLboolean -> IO ())
-glRasterSamplesEXTFunPtr = unsafePerformIO (getProcAddress "glRasterSamplesEXT")
-
-{-# NOINLINE glRasterSamplesEXTFunPtr #-}
-
-pattern GL_EFFECTIVE_RASTER_SAMPLES_EXT = 0x932C
-
-pattern GL_MAX_RASTER_SAMPLES_EXT = 0x9329
-
-pattern GL_MULTISAMPLE_RASTERIZATION_ALLOWED_EXT = 0x932B
-
-pattern GL_RASTER_FIXED_SAMPLE_LOCATIONS_EXT = 0x932A
-
-pattern GL_RASTER_MULTISAMPLE_EXT = 0x9327
-
-pattern GL_RASTER_SAMPLES_EXT = 0x9328
-
-pattern GL_SRGB8_ALPHA8_EXT = 0x8C43
-
-pattern GL_SRGB_ALPHA_EXT = 0x8C42
-
-pattern GL_SRGB_EXT = 0x8C40
-
-pattern GL_IMAGE_BUFFER_EXT = 0x9051
-
-pattern GL_IMAGE_CUBE_MAP_ARRAY_EXT = 0x9054
-
-pattern GL_INT_IMAGE_BUFFER_EXT = 0x905C
-
-pattern GL_INT_IMAGE_CUBE_MAP_ARRAY_EXT = 0x905F
-
-pattern GL_UNSIGNED_INT_IMAGE_BUFFER_EXT = 0x9067
-
-pattern GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY_EXT = 0x906A
-
-pattern GL_PRIMITIVE_RESTART_FOR_PATCHES_SUPPORTED = 0x8221
-
-pattern GL_ALPHA8_EXT = 0x803C
-
-pattern GL_LUMINANCE8_ALPHA8_EXT = 0x8045
-
-pattern GL_LUMINANCE8_EXT = 0x8040
-
-pattern GL_RGB10_A2_EXT = 0x8059
-
-pattern GL_RGB10_EXT = 0x8052
-
-glFramebufferTextureLayerEXT :: MonadIO m => GLenum -> GLenum -> GLuint -> GLint -> GLint -> m ()
-glFramebufferTextureLayerEXT = ffienumenumuintintintIOV glFramebufferTextureLayerEXTFunPtr
-
-glFramebufferTextureLayerEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLuint -> GLint -> GLint -> IO ())
-glFramebufferTextureLayerEXTFunPtr = unsafePerformIO (getProcAddress "glFramebufferTextureLayerEXT")
-
-{-# NOINLINE glFramebufferTextureLayerEXTFunPtr #-}
-
-glGetTexParameterIivEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
-glGetTexParameterIivEXT = ffienumenumPtrintIOV glGetTexParameterIivEXTFunPtr
-
-glGetTexParameterIivEXTFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
-glGetTexParameterIivEXTFunPtr = unsafePerformIO (getProcAddress "glGetTexParameterIivEXT")
-
-{-# NOINLINE glGetTexParameterIivEXTFunPtr #-}
-
-glGetTexParameterIuivEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()
-glGetTexParameterIuivEXT = ffienumenumPtruintIOV glGetTexParameterIuivEXTFunPtr
-
-glGetTexParameterIuivEXTFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLuint -> IO ())
-glGetTexParameterIuivEXTFunPtr = unsafePerformIO (getProcAddress "glGetTexParameterIuivEXT")
-
-{-# NOINLINE glGetTexParameterIuivEXTFunPtr #-}
-
-glTexParameterIivEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
-glTexParameterIivEXT = ffienumenumPtrintIOV glTexParameterIivEXTFunPtr
-
-glTexParameterIivEXTFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
-glTexParameterIivEXTFunPtr = unsafePerformIO (getProcAddress "glTexParameterIivEXT")
-
-{-# NOINLINE glTexParameterIivEXTFunPtr #-}
-
-glTexParameterIuivEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()
-glTexParameterIuivEXT = ffienumenumPtruintIOV glTexParameterIuivEXTFunPtr
-
-glTexParameterIuivEXTFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLuint -> IO ())
-glTexParameterIuivEXTFunPtr = unsafePerformIO (getProcAddress "glTexParameterIuivEXT")
-
-{-# NOINLINE glTexParameterIuivEXTFunPtr #-}
-
-glTexBufferEXT :: MonadIO m => GLenum -> GLenum -> GLuint -> m ()
-glTexBufferEXT = ffienumenumuintIOV glTexBufferEXTFunPtr
-
-glTexBufferEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLuint -> IO ())
-glTexBufferEXTFunPtr = unsafePerformIO (getProcAddress "glTexBufferEXT")
-
-{-# NOINLINE glTexBufferEXTFunPtr #-}
-
-pattern GL_MAX_TEXTURE_BUFFER_SIZE_EXT = 0x8C2B
-
-pattern GL_TEXTURE_BINDING_BUFFER_EXT = 0x8C2C
-
-pattern GL_TEXTURE_BUFFER_DATA_STORE_BINDING_EXT = 0x8C2D
-
-pattern GL_TEXTURE_BUFFER_EXT = 0x8C2A
-
-pattern GL_COMPRESSED_RGBA_S3TC_DXT1_EXT = 0x83F1
-
-pattern GL_COMPRESSED_RGB_S3TC_DXT1_EXT = 0x83F0
-
-pattern GL_R8_EXT = 0x8229
-
-pattern GL_RG8_EXT = 0x822B
-
-pattern GL_R16_SNORM = 0x8F98
-
-pattern GL_R8_SNORM = 0x8F94
-
-pattern GL_RG16_SNORM = 0x8F99
-
-pattern GL_RG8_SNORM = 0x8F95
-
-pattern GL_RGB16_SNORM = 0x8F9A
-
-pattern GL_RGB8_SNORM = 0x8F96
-
-pattern GL_RGBA16_SNORM = 0x8F9B
-
-pattern GL_RGBA8_SNORM = 0x8F97
-
-pattern GL_SIGNED_NORMALIZED = 0x8F9C
-
-pattern GL_CONTEXT_RELEASE_BEHAVIOR = 0x82FB
-
-pattern GL_CONTEXT_RELEASE_BEHAVIOR_FLUSH = 0x82FC
-
-pattern GL_NONE = 0
-
-glDebugMessageCallback :: MonadIO m => GLDEBUGPROC -> Ptr () -> m ()
-glDebugMessageCallback = ffiDEBUGPROCPtrVIOV glDebugMessageCallbackFunPtr
-
-glDebugMessageCallbackFunPtr :: FunPtr (GLDEBUGPROC -> Ptr () -> IO ())
-glDebugMessageCallbackFunPtr = unsafePerformIO (getProcAddress "glDebugMessageCallback")
-
-{-# NOINLINE glDebugMessageCallbackFunPtr #-}
-
-glDebugMessageControl :: MonadIO m => GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLuint -> GLboolean -> m ()
-glDebugMessageControl = ffienumenumenumsizeiPtruintbooleanIOV glDebugMessageControlFunPtr
-
-glDebugMessageControlFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLuint -> GLboolean -> IO ())
-glDebugMessageControlFunPtr = unsafePerformIO (getProcAddress "glDebugMessageControl")
-
-{-# NOINLINE glDebugMessageControlFunPtr #-}
-
-glDebugMessageInsert :: MonadIO m => GLenum -> GLenum -> GLuint -> GLenum -> GLsizei -> Ptr GLchar -> m ()
-glDebugMessageInsert = ffienumenumuintenumsizeiPtrcharIOV glDebugMessageInsertFunPtr
-
-glDebugMessageInsertFunPtr :: FunPtr (GLenum -> GLenum -> GLuint -> GLenum -> GLsizei -> Ptr GLchar -> IO ())
-glDebugMessageInsertFunPtr = unsafePerformIO (getProcAddress "glDebugMessageInsert")
-
-{-# NOINLINE glDebugMessageInsertFunPtr #-}
-
-glGetDebugMessageLog :: MonadIO m => GLuint -> GLsizei -> Ptr GLenum -> Ptr GLenum -> Ptr GLuint -> Ptr GLenum -> Ptr GLsizei -> Ptr GLchar -> m GLuint
-glGetDebugMessageLog = ffiuintsizeiPtrenumPtrenumPtruintPtrenumPtrsizeiPtrcharIOuint glGetDebugMessageLogFunPtr
-
-glGetDebugMessageLogFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLenum -> Ptr GLenum -> Ptr GLuint -> Ptr GLenum -> Ptr GLsizei -> Ptr GLchar -> IO GLuint)
-glGetDebugMessageLogFunPtr = unsafePerformIO (getProcAddress "glGetDebugMessageLog")
-
-{-# NOINLINE glGetDebugMessageLogFunPtr #-}
-
-glGetObjectLabel :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
-glGetObjectLabel = ffienumuintsizeiPtrsizeiPtrcharIOV glGetObjectLabelFunPtr
-
-glGetObjectLabelFunPtr :: FunPtr (GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
-glGetObjectLabelFunPtr = unsafePerformIO (getProcAddress "glGetObjectLabel")
-
-{-# NOINLINE glGetObjectLabelFunPtr #-}
-
-glGetObjectPtrLabel :: MonadIO m => Ptr () -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
-glGetObjectPtrLabel = ffiPtrVsizeiPtrsizeiPtrcharIOV glGetObjectPtrLabelFunPtr
-
-glGetObjectPtrLabelFunPtr :: FunPtr (Ptr () -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
-glGetObjectPtrLabelFunPtr = unsafePerformIO (getProcAddress "glGetObjectPtrLabel")
-
-{-# NOINLINE glGetObjectPtrLabelFunPtr #-}
-
-glGetPointerv :: MonadIO m => GLenum -> Ptr () -> m ()
-glGetPointerv = ffienumPtrVIOV glGetPointervFunPtr
-
-glGetPointervFunPtr :: FunPtr (GLenum -> Ptr () -> IO ())
-glGetPointervFunPtr = unsafePerformIO (getProcAddress "glGetPointerv")
-
-{-# NOINLINE glGetPointervFunPtr #-}
-
-glObjectLabel :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLchar -> m ()
-glObjectLabel = ffienumuintsizeiPtrcharIOV glObjectLabelFunPtr
-
-glObjectLabelFunPtr :: FunPtr (GLenum -> GLuint -> GLsizei -> Ptr GLchar -> IO ())
-glObjectLabelFunPtr = unsafePerformIO (getProcAddress "glObjectLabel")
-
-{-# NOINLINE glObjectLabelFunPtr #-}
-
-glObjectPtrLabel :: MonadIO m => Ptr () -> GLsizei -> Ptr GLchar -> m ()
-glObjectPtrLabel = ffiPtrVsizeiPtrcharIOV glObjectPtrLabelFunPtr
-
-glObjectPtrLabelFunPtr :: FunPtr (Ptr () -> GLsizei -> Ptr GLchar -> IO ())
-glObjectPtrLabelFunPtr = unsafePerformIO (getProcAddress "glObjectPtrLabel")
-
-{-# NOINLINE glObjectPtrLabelFunPtr #-}
-
-glPopDebugGroup :: MonadIO m => m ()
-glPopDebugGroup = ffiIOV glPopDebugGroupFunPtr
-
-glPopDebugGroupFunPtr :: FunPtr (IO ())
-glPopDebugGroupFunPtr = unsafePerformIO (getProcAddress "glPopDebugGroup")
-
-{-# NOINLINE glPopDebugGroupFunPtr #-}
-
-glPushDebugGroup :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLchar -> m ()
-glPushDebugGroup = ffienumuintsizeiPtrcharIOV glPushDebugGroupFunPtr
-
-glPushDebugGroupFunPtr :: FunPtr (GLenum -> GLuint -> GLsizei -> Ptr GLchar -> IO ())
-glPushDebugGroupFunPtr = unsafePerformIO (getProcAddress "glPushDebugGroup")
-
-{-# NOINLINE glPushDebugGroupFunPtr #-}
-
-pattern GL_BUFFER = 0x82E0
-
-pattern GL_CONTEXT_FLAG_DEBUG_BIT = 0x00000002
-
-pattern GL_DEBUG_CALLBACK_FUNCTION = 0x8244
-
-pattern GL_DEBUG_CALLBACK_USER_PARAM = 0x8245
-
-pattern GL_DEBUG_GROUP_STACK_DEPTH = 0x826D
-
-pattern GL_DEBUG_LOGGED_MESSAGES = 0x9145
-
-pattern GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH = 0x8243
-
-pattern GL_DEBUG_OUTPUT = 0x92E0
-
-pattern GL_DEBUG_OUTPUT_SYNCHRONOUS = 0x8242
-
-pattern GL_DEBUG_SEVERITY_HIGH = 0x9146
-
-pattern GL_DEBUG_SEVERITY_LOW = 0x9148
-
-pattern GL_DEBUG_SEVERITY_MEDIUM = 0x9147
-
-pattern GL_DEBUG_SEVERITY_NOTIFICATION = 0x826B
-
-pattern GL_DEBUG_SOURCE_API = 0x8246
-
-pattern GL_DEBUG_SOURCE_APPLICATION = 0x824A
-
-pattern GL_DEBUG_SOURCE_OTHER = 0x824B
-
-pattern GL_DEBUG_SOURCE_SHADER_COMPILER = 0x8248
-
-pattern GL_DEBUG_SOURCE_THIRD_PARTY = 0x8249
-
-pattern GL_DEBUG_SOURCE_WINDOW_SYSTEM = 0x8247
-
-pattern GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR = 0x824D
-
-pattern GL_DEBUG_TYPE_ERROR = 0x824C
-
-pattern GL_DEBUG_TYPE_MARKER = 0x8268
-
-pattern GL_DEBUG_TYPE_OTHER = 0x8251
-
-pattern GL_DEBUG_TYPE_PERFORMANCE = 0x8250
-
-pattern GL_DEBUG_TYPE_POP_GROUP = 0x826A
-
-pattern GL_DEBUG_TYPE_PORTABILITY = 0x824F
-
-pattern GL_DEBUG_TYPE_PUSH_GROUP = 0x8269
-
-pattern GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR = 0x824E
-
-pattern GL_DISPLAY_LIST = 0x82E7
-
-pattern GL_MAX_DEBUG_GROUP_STACK_DEPTH = 0x826C
-
-pattern GL_MAX_DEBUG_LOGGED_MESSAGES = 0x9144
-
-pattern GL_MAX_DEBUG_MESSAGE_LENGTH = 0x9143
-
-pattern GL_MAX_LABEL_LENGTH = 0x82E8
-
-pattern GL_PROGRAM = 0x82E2
-
-pattern GL_PROGRAM_PIPELINE = 0x82E4
-
-pattern GL_QUERY = 0x82E3
-
-pattern GL_SHADER = 0x82E1
-
-pattern GL_STACK_OVERFLOW = 0x0503
-
-pattern GL_STACK_UNDERFLOW = 0x0504
-
-pattern GL_VERTEX_ARRAY = 0x8074
-
-glGetGraphicsResetStatus :: MonadIO m => m GLenum
-glGetGraphicsResetStatus = ffiIOenum glGetGraphicsResetStatusFunPtr
-
-glGetGraphicsResetStatusFunPtr :: FunPtr (IO GLenum)
-glGetGraphicsResetStatusFunPtr = unsafePerformIO (getProcAddress "glGetGraphicsResetStatus")
-
-{-# NOINLINE glGetGraphicsResetStatusFunPtr #-}
-
-glGetnUniformfv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()
-glGetnUniformfv = ffiuintintsizeiPtrfloatIOV glGetnUniformfvFunPtr
-
-glGetnUniformfvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLfloat -> IO ())
-glGetnUniformfvFunPtr = unsafePerformIO (getProcAddress "glGetnUniformfv")
-
-{-# NOINLINE glGetnUniformfvFunPtr #-}
-
-glGetnUniformiv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()
-glGetnUniformiv = ffiuintintsizeiPtrintIOV glGetnUniformivFunPtr
-
-glGetnUniformivFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint -> IO ())
-glGetnUniformivFunPtr = unsafePerformIO (getProcAddress "glGetnUniformiv")
-
-{-# NOINLINE glGetnUniformivFunPtr #-}
-
-glGetnUniformuiv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()
-glGetnUniformuiv = ffiuintintsizeiPtruintIOV glGetnUniformuivFunPtr
-
-glGetnUniformuivFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint -> IO ())
-glGetnUniformuivFunPtr = unsafePerformIO (getProcAddress "glGetnUniformuiv")
-
-{-# NOINLINE glGetnUniformuivFunPtr #-}
-
-glReadnPixels :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> GLsizei -> Ptr () -> m ()
-glReadnPixels = ffiintintsizeisizeienumenumsizeiPtrVIOV glReadnPixelsFunPtr
-
-glReadnPixelsFunPtr :: FunPtr (GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> GLsizei -> Ptr () -> IO ())
-glReadnPixelsFunPtr = unsafePerformIO (getProcAddress "glReadnPixels")
-
-{-# NOINLINE glReadnPixelsFunPtr #-}
-
-pattern GL_CONTEXT_LOST = 0x0507
-
-pattern GL_GUILTY_CONTEXT_RESET = 0x8253
-
-pattern GL_INNOCENT_CONTEXT_RESET = 0x8254
-
-pattern GL_LOSE_CONTEXT_ON_RESET = 0x8252
-
-pattern GL_NO_RESET_NOTIFICATION = 0x8261
-
-pattern GL_RESET_NOTIFICATION_STRATEGY = 0x8256
-
-pattern GL_UNKNOWN_CONTEXT_RESET = 0x8255
-
-pattern GL_COMPRESSED_RGBA_ASTC_10x10_KHR = 0x93BB
-
-pattern GL_COMPRESSED_RGBA_ASTC_10x5_KHR = 0x93B8
-
-pattern GL_COMPRESSED_RGBA_ASTC_10x6_KHR = 0x93B9
-
-pattern GL_COMPRESSED_RGBA_ASTC_10x8_KHR = 0x93BA
-
-pattern GL_COMPRESSED_RGBA_ASTC_12x10_KHR = 0x93BC
-
-pattern GL_COMPRESSED_RGBA_ASTC_12x12_KHR = 0x93BD
-
-pattern GL_COMPRESSED_RGBA_ASTC_4x4_KHR = 0x93B0
-
-pattern GL_COMPRESSED_RGBA_ASTC_5x4_KHR = 0x93B1
-
-pattern GL_COMPRESSED_RGBA_ASTC_5x5_KHR = 0x93B2
-
-pattern GL_COMPRESSED_RGBA_ASTC_6x5_KHR = 0x93B3
-
-pattern GL_COMPRESSED_RGBA_ASTC_6x6_KHR = 0x93B4
-
-pattern GL_COMPRESSED_RGBA_ASTC_8x5_KHR = 0x93B5
-
-pattern GL_COMPRESSED_RGBA_ASTC_8x6_KHR = 0x93B6
-
-pattern GL_COMPRESSED_RGBA_ASTC_8x8_KHR = 0x93B7
-
-pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR = 0x93DB
-
-pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR = 0x93D8
-
-pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR = 0x93D9
-
-pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR = 0x93DA
-
-pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR = 0x93DC
-
-pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR = 0x93DD
-
-pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR = 0x93D0
-
-pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR = 0x93D1
-
-pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR = 0x93D2
-
-pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR = 0x93D3
-
-pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR = 0x93D4
-
-pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR = 0x93D5
-
-pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR = 0x93D6
-
-pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR = 0x93D7
-
-pattern GL_INVERT = 0x150A
-
-pattern GL_COLOR_ATTACHMENT0_NV = 0x8CE0
-
-pattern GL_COLOR_ATTACHMENT10_NV = 0x8CEA
-
-pattern GL_COLOR_ATTACHMENT11_NV = 0x8CEB
-
-pattern GL_COLOR_ATTACHMENT12_NV = 0x8CEC
-
-pattern GL_COLOR_ATTACHMENT13_NV = 0x8CED
-
-pattern GL_COLOR_ATTACHMENT14_NV = 0x8CEE
-
-pattern GL_COLOR_ATTACHMENT15_NV = 0x8CEF
-
-pattern GL_COLOR_ATTACHMENT1_NV = 0x8CE1
-
-pattern GL_COLOR_ATTACHMENT2_NV = 0x8CE2
-
-pattern GL_COLOR_ATTACHMENT3_NV = 0x8CE3
-
-pattern GL_COLOR_ATTACHMENT4_NV = 0x8CE4
-
-pattern GL_COLOR_ATTACHMENT5_NV = 0x8CE5
-
-pattern GL_COLOR_ATTACHMENT6_NV = 0x8CE6
-
-pattern GL_COLOR_ATTACHMENT7_NV = 0x8CE7
-
-pattern GL_COLOR_ATTACHMENT8_NV = 0x8CE8
-
-pattern GL_COLOR_ATTACHMENT9_NV = 0x8CE9
-
-pattern GL_EYE_PLANE = 0x2502
-
-pattern GL_MAX_PROGRAM_CALL_DEPTH_NV = 0x88F5
-
-pattern GL_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV = 0x88F4
-
-pattern GL_COLOR_SAMPLES_NV = 0x8E20
-
-pattern GL_PRIMARY_COLOR = 0x8577
-
-pattern GL_PRIMARY_COLOR_NV = 0x852C
-
-pattern GL_SECONDARY_COLOR_NV = 0x852D
-
-pattern GL_FOG = 0x0B60
-
-pattern GL_READ_WRITE = 0x88BA
-
-pattern GL_WRITE_ONLY = 0x88B9
-
-pattern GL_BYTE = 0x1400
-
-pattern GL_DEPTH_COMPONENT24_OES = 0x81A6
-
-glGetTexGenxvOES :: MonadIO m => GLenum -> GLenum -> Ptr GLfixed -> m ()
-glGetTexGenxvOES = ffienumenumPtrfixedIOV glGetTexGenxvOESFunPtr
-
-glGetTexGenxvOESFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfixed -> IO ())
-glGetTexGenxvOESFunPtr = unsafePerformIO (getProcAddress "glGetTexGenxvOES")
-
-{-# NOINLINE glGetTexGenxvOESFunPtr #-}
-
-glTexGenxOES :: MonadIO m => GLenum -> GLenum -> GLfixed -> m ()
-glTexGenxOES = ffienumenumfixedIOV glTexGenxOESFunPtr
-
-glTexGenxOESFunPtr :: FunPtr (GLenum -> GLenum -> GLfixed -> IO ())
-glTexGenxOESFunPtr = unsafePerformIO (getProcAddress "glTexGenxOES")
-
-{-# NOINLINE glTexGenxOESFunPtr #-}
-
-glTexGenxvOES :: MonadIO m => GLenum -> GLenum -> Ptr GLfixed -> m ()
-glTexGenxvOES = ffienumenumPtrfixedIOV glTexGenxvOESFunPtr
-
-glTexGenxvOESFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfixed -> IO ())
-glTexGenxvOESFunPtr = unsafePerformIO (getProcAddress "glTexGenxvOES")
-
-{-# NOINLINE glTexGenxvOESFunPtr #-}
-
-pattern GL_DEPTH_COMPONENT16_OES = 0x81A5
-
-pattern GL_RGB565_OES = 0x8D62
-
-pattern GL_RGB5_A1_OES = 0x8057
-
-pattern GL_RGBA4_OES = 0x8056
-
-pattern GL_RGB8_OES = 0x8051
-
-pattern GL_RGBA8_OES = 0x8058
-
-pattern GL_STENCIL_INDEX8_OES = 0x8D48
-
-pattern GL_HALF_FLOAT_OES = 0x8D61
-
-glAccum :: MonadIO m => GLenum -> GLfloat -> m ()
-glAccum = ffienumfloatIOV glAccumFunPtr
-
-glAccumFunPtr :: FunPtr (GLenum -> GLfloat -> IO ())
-glAccumFunPtr = unsafePerformIO (getProcAddress "glAccum")
-
-{-# NOINLINE glAccumFunPtr #-}
-
-glAlphaFunc :: MonadIO m => GLenum -> GLfloat -> m ()
-glAlphaFunc = ffienumfloatIOV glAlphaFuncFunPtr
-
-glAlphaFuncFunPtr :: FunPtr (GLenum -> GLfloat -> IO ())
-glAlphaFuncFunPtr = unsafePerformIO (getProcAddress "glAlphaFunc")
-
-{-# NOINLINE glAlphaFuncFunPtr #-}
-
-glAreTexturesResident :: MonadIO m => GLsizei -> Ptr GLuint -> Ptr GLboolean -> m GLboolean
-glAreTexturesResident = ffisizeiPtruintPtrbooleanIOboolean glAreTexturesResidentFunPtr
-
-glAreTexturesResidentFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> Ptr GLboolean -> IO GLboolean)
-glAreTexturesResidentFunPtr = unsafePerformIO (getProcAddress "glAreTexturesResident")
-
-{-# NOINLINE glAreTexturesResidentFunPtr #-}
-
-glArrayElement :: MonadIO m => GLint -> m ()
-glArrayElement = ffiintIOV glArrayElementFunPtr
-
-glArrayElementFunPtr :: FunPtr (GLint -> IO ())
-glArrayElementFunPtr = unsafePerformIO (getProcAddress "glArrayElement")
-
-{-# NOINLINE glArrayElementFunPtr #-}
-
-glBegin :: MonadIO m => GLenum -> m ()
-glBegin = ffienumIOV glBeginFunPtr
-
-glBeginFunPtr :: FunPtr (GLenum -> IO ())
-glBeginFunPtr = unsafePerformIO (getProcAddress "glBegin")
-
-{-# NOINLINE glBeginFunPtr #-}
-
-glBitmap :: MonadIO m => GLsizei -> GLsizei -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> Ptr GLubyte -> m ()
-glBitmap = ffisizeisizeifloatfloatfloatfloatPtrubyteIOV glBitmapFunPtr
-
-glBitmapFunPtr :: FunPtr (GLsizei -> GLsizei -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> Ptr GLubyte -> IO ())
-glBitmapFunPtr = unsafePerformIO (getProcAddress "glBitmap")
-
-{-# NOINLINE glBitmapFunPtr #-}
-
-glCallList :: MonadIO m => GLuint -> m ()
-glCallList = ffiuintIOV glCallListFunPtr
-
-glCallListFunPtr :: FunPtr (GLuint -> IO ())
-glCallListFunPtr = unsafePerformIO (getProcAddress "glCallList")
-
-{-# NOINLINE glCallListFunPtr #-}
-
-glCallLists :: MonadIO m => GLsizei -> GLenum -> Ptr () -> m ()
-glCallLists = ffisizeienumPtrVIOV glCallListsFunPtr
-
-glCallListsFunPtr :: FunPtr (GLsizei -> GLenum -> Ptr () -> IO ())
-glCallListsFunPtr = unsafePerformIO (getProcAddress "glCallLists")
-
-{-# NOINLINE glCallListsFunPtr #-}
-
-glClearAccum :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
-glClearAccum = ffifloatfloatfloatfloatIOV glClearAccumFunPtr
-
-glClearAccumFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
-glClearAccumFunPtr = unsafePerformIO (getProcAddress "glClearAccum")
-
-{-# NOINLINE glClearAccumFunPtr #-}
-
-glClearIndex :: MonadIO m => GLfloat -> m ()
-glClearIndex = ffifloatIOV glClearIndexFunPtr
-
-glClearIndexFunPtr :: FunPtr (GLfloat -> IO ())
-glClearIndexFunPtr = unsafePerformIO (getProcAddress "glClearIndex")
-
-{-# NOINLINE glClearIndexFunPtr #-}
-
-glClientActiveTexture :: MonadIO m => GLenum -> m ()
-glClientActiveTexture = ffienumIOV glClientActiveTextureFunPtr
-
-glClientActiveTextureFunPtr :: FunPtr (GLenum -> IO ())
-glClientActiveTextureFunPtr = unsafePerformIO (getProcAddress "glClientActiveTexture")
-
-{-# NOINLINE glClientActiveTextureFunPtr #-}
-
-glClipPlane :: MonadIO m => GLenum -> Ptr GLdouble -> m ()
-glClipPlane = ffienumPtrdoubleIOV glClipPlaneFunPtr
-
-glClipPlaneFunPtr :: FunPtr (GLenum -> Ptr GLdouble -> IO ())
-glClipPlaneFunPtr = unsafePerformIO (getProcAddress "glClipPlane")
-
-{-# NOINLINE glClipPlaneFunPtr #-}
-
-glColor3b :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> m ()
-glColor3b = ffibytebytebyteIOV glColor3bFunPtr
-
-glColor3bFunPtr :: FunPtr (GLbyte -> GLbyte -> GLbyte -> IO ())
-glColor3bFunPtr = unsafePerformIO (getProcAddress "glColor3b")
-
-{-# NOINLINE glColor3bFunPtr #-}
-
-glColor3bv :: MonadIO m => Ptr GLbyte -> m ()
-glColor3bv = ffiPtrbyteIOV glColor3bvFunPtr
-
-glColor3bvFunPtr :: FunPtr (Ptr GLbyte -> IO ())
-glColor3bvFunPtr = unsafePerformIO (getProcAddress "glColor3bv")
-
-{-# NOINLINE glColor3bvFunPtr #-}
-
-glColor3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()
-glColor3d = ffidoubledoubledoubleIOV glColor3dFunPtr
-
-glColor3dFunPtr :: FunPtr (GLdouble -> GLdouble -> GLdouble -> IO ())
-glColor3dFunPtr = unsafePerformIO (getProcAddress "glColor3d")
-
-{-# NOINLINE glColor3dFunPtr #-}
-
-glColor3dv :: MonadIO m => Ptr GLdouble -> m ()
-glColor3dv = ffiPtrdoubleIOV glColor3dvFunPtr
-
-glColor3dvFunPtr :: FunPtr (Ptr GLdouble -> IO ())
-glColor3dvFunPtr = unsafePerformIO (getProcAddress "glColor3dv")
-
-{-# NOINLINE glColor3dvFunPtr #-}
-
-glColor3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()
-glColor3f = ffifloatfloatfloatIOV glColor3fFunPtr
-
-glColor3fFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> IO ())
-glColor3fFunPtr = unsafePerformIO (getProcAddress "glColor3f")
-
-{-# NOINLINE glColor3fFunPtr #-}
-
-glColor3fv :: MonadIO m => Ptr GLfloat -> m ()
-glColor3fv = ffiPtrfloatIOV glColor3fvFunPtr
-
-glColor3fvFunPtr :: FunPtr (Ptr GLfloat -> IO ())
-glColor3fvFunPtr = unsafePerformIO (getProcAddress "glColor3fv")
-
-{-# NOINLINE glColor3fvFunPtr #-}
-
-glColor3i :: MonadIO m => GLint -> GLint -> GLint -> m ()
-glColor3i = ffiintintintIOV glColor3iFunPtr
-
-glColor3iFunPtr :: FunPtr (GLint -> GLint -> GLint -> IO ())
-glColor3iFunPtr = unsafePerformIO (getProcAddress "glColor3i")
-
-{-# NOINLINE glColor3iFunPtr #-}
-
-glColor3iv :: MonadIO m => Ptr GLint -> m ()
-glColor3iv = ffiPtrintIOV glColor3ivFunPtr
-
-glColor3ivFunPtr :: FunPtr (Ptr GLint -> IO ())
-glColor3ivFunPtr = unsafePerformIO (getProcAddress "glColor3iv")
-
-{-# NOINLINE glColor3ivFunPtr #-}
-
-glColor3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()
-glColor3s = ffishortshortshortIOV glColor3sFunPtr
-
-glColor3sFunPtr :: FunPtr (GLshort -> GLshort -> GLshort -> IO ())
-glColor3sFunPtr = unsafePerformIO (getProcAddress "glColor3s")
-
-{-# NOINLINE glColor3sFunPtr #-}
-
-glColor3sv :: MonadIO m => Ptr GLshort -> m ()
-glColor3sv = ffiPtrshortIOV glColor3svFunPtr
-
-glColor3svFunPtr :: FunPtr (Ptr GLshort -> IO ())
-glColor3svFunPtr = unsafePerformIO (getProcAddress "glColor3sv")
-
-{-# NOINLINE glColor3svFunPtr #-}
-
-glColor3ub :: MonadIO m => GLubyte -> GLubyte -> GLubyte -> m ()
-glColor3ub = ffiubyteubyteubyteIOV glColor3ubFunPtr
-
-glColor3ubFunPtr :: FunPtr (GLubyte -> GLubyte -> GLubyte -> IO ())
-glColor3ubFunPtr = unsafePerformIO (getProcAddress "glColor3ub")
-
-{-# NOINLINE glColor3ubFunPtr #-}
-
-glColor3ubv :: MonadIO m => Ptr GLubyte -> m ()
-glColor3ubv = ffiPtrubyteIOV glColor3ubvFunPtr
-
-glColor3ubvFunPtr :: FunPtr (Ptr GLubyte -> IO ())
-glColor3ubvFunPtr = unsafePerformIO (getProcAddress "glColor3ubv")
-
-{-# NOINLINE glColor3ubvFunPtr #-}
-
-glColor3ui :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()
-glColor3ui = ffiuintuintuintIOV glColor3uiFunPtr
-
-glColor3uiFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> IO ())
-glColor3uiFunPtr = unsafePerformIO (getProcAddress "glColor3ui")
-
-{-# NOINLINE glColor3uiFunPtr #-}
-
-glColor3uiv :: MonadIO m => Ptr GLuint -> m ()
-glColor3uiv = ffiPtruintIOV glColor3uivFunPtr
-
-glColor3uivFunPtr :: FunPtr (Ptr GLuint -> IO ())
-glColor3uivFunPtr = unsafePerformIO (getProcAddress "glColor3uiv")
-
-{-# NOINLINE glColor3uivFunPtr #-}
-
-glColor3us :: MonadIO m => GLushort -> GLushort -> GLushort -> m ()
-glColor3us = ffiushortushortushortIOV glColor3usFunPtr
-
-glColor3usFunPtr :: FunPtr (GLushort -> GLushort -> GLushort -> IO ())
-glColor3usFunPtr = unsafePerformIO (getProcAddress "glColor3us")
-
-{-# NOINLINE glColor3usFunPtr #-}
-
-glColor3usv :: MonadIO m => Ptr GLushort -> m ()
-glColor3usv = ffiPtrushortIOV glColor3usvFunPtr
-
-glColor3usvFunPtr :: FunPtr (Ptr GLushort -> IO ())
-glColor3usvFunPtr = unsafePerformIO (getProcAddress "glColor3usv")
-
-{-# NOINLINE glColor3usvFunPtr #-}
-
-glColor4b :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> GLbyte -> m ()
-glColor4b = ffibytebytebytebyteIOV glColor4bFunPtr
-
-glColor4bFunPtr :: FunPtr (GLbyte -> GLbyte -> GLbyte -> GLbyte -> IO ())
-glColor4bFunPtr = unsafePerformIO (getProcAddress "glColor4b")
-
-{-# NOINLINE glColor4bFunPtr #-}
-
-glColor4bv :: MonadIO m => Ptr GLbyte -> m ()
-glColor4bv = ffiPtrbyteIOV glColor4bvFunPtr
-
-glColor4bvFunPtr :: FunPtr (Ptr GLbyte -> IO ())
-glColor4bvFunPtr = unsafePerformIO (getProcAddress "glColor4bv")
-
-{-# NOINLINE glColor4bvFunPtr #-}
-
-glColor4d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
-glColor4d = ffidoubledoubledoubledoubleIOV glColor4dFunPtr
-
-glColor4dFunPtr :: FunPtr (GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
-glColor4dFunPtr = unsafePerformIO (getProcAddress "glColor4d")
-
-{-# NOINLINE glColor4dFunPtr #-}
-
-glColor4dv :: MonadIO m => Ptr GLdouble -> m ()
-glColor4dv = ffiPtrdoubleIOV glColor4dvFunPtr
-
-glColor4dvFunPtr :: FunPtr (Ptr GLdouble -> IO ())
-glColor4dvFunPtr = unsafePerformIO (getProcAddress "glColor4dv")
-
-{-# NOINLINE glColor4dvFunPtr #-}
-
-glColor4f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
-glColor4f = ffifloatfloatfloatfloatIOV glColor4fFunPtr
-
-glColor4fFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
-glColor4fFunPtr = unsafePerformIO (getProcAddress "glColor4f")
-
-{-# NOINLINE glColor4fFunPtr #-}
-
-glColor4fv :: MonadIO m => Ptr GLfloat -> m ()
-glColor4fv = ffiPtrfloatIOV glColor4fvFunPtr
-
-glColor4fvFunPtr :: FunPtr (Ptr GLfloat -> IO ())
-glColor4fvFunPtr = unsafePerformIO (getProcAddress "glColor4fv")
-
-{-# NOINLINE glColor4fvFunPtr #-}
-
-glColor4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()
-glColor4i = ffiintintintintIOV glColor4iFunPtr
-
-glColor4iFunPtr :: FunPtr (GLint -> GLint -> GLint -> GLint -> IO ())
-glColor4iFunPtr = unsafePerformIO (getProcAddress "glColor4i")
-
-{-# NOINLINE glColor4iFunPtr #-}
-
-glColor4iv :: MonadIO m => Ptr GLint -> m ()
-glColor4iv = ffiPtrintIOV glColor4ivFunPtr
-
-glColor4ivFunPtr :: FunPtr (Ptr GLint -> IO ())
-glColor4ivFunPtr = unsafePerformIO (getProcAddress "glColor4iv")
-
-{-# NOINLINE glColor4ivFunPtr #-}
-
-glColor4s :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()
-glColor4s = ffishortshortshortshortIOV glColor4sFunPtr
-
-glColor4sFunPtr :: FunPtr (GLshort -> GLshort -> GLshort -> GLshort -> IO ())
-glColor4sFunPtr = unsafePerformIO (getProcAddress "glColor4s")
-
-{-# NOINLINE glColor4sFunPtr #-}
-
-glColor4sv :: MonadIO m => Ptr GLshort -> m ()
-glColor4sv = ffiPtrshortIOV glColor4svFunPtr
-
-glColor4svFunPtr :: FunPtr (Ptr GLshort -> IO ())
-glColor4svFunPtr = unsafePerformIO (getProcAddress "glColor4sv")
-
-{-# NOINLINE glColor4svFunPtr #-}
-
-glColor4ub :: MonadIO m => GLubyte -> GLubyte -> GLubyte -> GLubyte -> m ()
-glColor4ub = ffiubyteubyteubyteubyteIOV glColor4ubFunPtr
-
-glColor4ubFunPtr :: FunPtr (GLubyte -> GLubyte -> GLubyte -> GLubyte -> IO ())
-glColor4ubFunPtr = unsafePerformIO (getProcAddress "glColor4ub")
-
-{-# NOINLINE glColor4ubFunPtr #-}
-
-glColor4ubv :: MonadIO m => Ptr GLubyte -> m ()
-glColor4ubv = ffiPtrubyteIOV glColor4ubvFunPtr
-
-glColor4ubvFunPtr :: FunPtr (Ptr GLubyte -> IO ())
-glColor4ubvFunPtr = unsafePerformIO (getProcAddress "glColor4ubv")
-
-{-# NOINLINE glColor4ubvFunPtr #-}
-
-glColor4ui :: MonadIO m => GLuint -> GLuint -> GLuint -> GLuint -> m ()
-glColor4ui = ffiuintuintuintuintIOV glColor4uiFunPtr
-
-glColor4uiFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> GLuint -> IO ())
-glColor4uiFunPtr = unsafePerformIO (getProcAddress "glColor4ui")
-
-{-# NOINLINE glColor4uiFunPtr #-}
-
-glColor4uiv :: MonadIO m => Ptr GLuint -> m ()
-glColor4uiv = ffiPtruintIOV glColor4uivFunPtr
-
-glColor4uivFunPtr :: FunPtr (Ptr GLuint -> IO ())
-glColor4uivFunPtr = unsafePerformIO (getProcAddress "glColor4uiv")
-
-{-# NOINLINE glColor4uivFunPtr #-}
-
-glColor4us :: MonadIO m => GLushort -> GLushort -> GLushort -> GLushort -> m ()
-glColor4us = ffiushortushortushortushortIOV glColor4usFunPtr
-
-glColor4usFunPtr :: FunPtr (GLushort -> GLushort -> GLushort -> GLushort -> IO ())
-glColor4usFunPtr = unsafePerformIO (getProcAddress "glColor4us")
-
-{-# NOINLINE glColor4usFunPtr #-}
-
-glColor4usv :: MonadIO m => Ptr GLushort -> m ()
-glColor4usv = ffiPtrushortIOV glColor4usvFunPtr
-
-glColor4usvFunPtr :: FunPtr (Ptr GLushort -> IO ())
-glColor4usvFunPtr = unsafePerformIO (getProcAddress "glColor4usv")
-
-{-# NOINLINE glColor4usvFunPtr #-}
-
-glColorMaterial :: MonadIO m => GLenum -> GLenum -> m ()
-glColorMaterial = ffienumenumIOV glColorMaterialFunPtr
-
-glColorMaterialFunPtr :: FunPtr (GLenum -> GLenum -> IO ())
-glColorMaterialFunPtr = unsafePerformIO (getProcAddress "glColorMaterial")
-
-{-# NOINLINE glColorMaterialFunPtr #-}
-
-glColorPointer :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr () -> m ()
-glColorPointer = ffiintenumsizeiPtrVIOV glColorPointerFunPtr
-
-glColorPointerFunPtr :: FunPtr (GLint -> GLenum -> GLsizei -> Ptr () -> IO ())
-glColorPointerFunPtr = unsafePerformIO (getProcAddress "glColorPointer")
-
-{-# NOINLINE glColorPointerFunPtr #-}
-
-glCopyPixels :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> m ()
-glCopyPixels = ffiintintsizeisizeienumIOV glCopyPixelsFunPtr
-
-glCopyPixelsFunPtr :: FunPtr (GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> IO ())
-glCopyPixelsFunPtr = unsafePerformIO (getProcAddress "glCopyPixels")
-
-{-# NOINLINE glCopyPixelsFunPtr #-}
-
-glDeleteLists :: MonadIO m => GLuint -> GLsizei -> m ()
-glDeleteLists = ffiuintsizeiIOV glDeleteListsFunPtr
-
-glDeleteListsFunPtr :: FunPtr (GLuint -> GLsizei -> IO ())
-glDeleteListsFunPtr = unsafePerformIO (getProcAddress "glDeleteLists")
-
-{-# NOINLINE glDeleteListsFunPtr #-}
-
-glDisableClientState :: MonadIO m => GLenum -> m ()
-glDisableClientState = ffienumIOV glDisableClientStateFunPtr
-
-glDisableClientStateFunPtr :: FunPtr (GLenum -> IO ())
-glDisableClientStateFunPtr = unsafePerformIO (getProcAddress "glDisableClientState")
-
-{-# NOINLINE glDisableClientStateFunPtr #-}
-
-glDrawPixels :: MonadIO m => GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
-glDrawPixels = ffisizeisizeienumenumPtrVIOV glDrawPixelsFunPtr
-
-glDrawPixelsFunPtr :: FunPtr (GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ())
-glDrawPixelsFunPtr = unsafePerformIO (getProcAddress "glDrawPixels")
-
-{-# NOINLINE glDrawPixelsFunPtr #-}
-
-glEdgeFlag :: MonadIO m => GLboolean -> m ()
-glEdgeFlag = ffibooleanIOV glEdgeFlagFunPtr
-
-glEdgeFlagFunPtr :: FunPtr (GLboolean -> IO ())
-glEdgeFlagFunPtr = unsafePerformIO (getProcAddress "glEdgeFlag")
-
-{-# NOINLINE glEdgeFlagFunPtr #-}
-
-glEdgeFlagPointer :: MonadIO m => GLsizei -> Ptr () -> m ()
-glEdgeFlagPointer = ffisizeiPtrVIOV glEdgeFlagPointerFunPtr
-
-glEdgeFlagPointerFunPtr :: FunPtr (GLsizei -> Ptr () -> IO ())
-glEdgeFlagPointerFunPtr = unsafePerformIO (getProcAddress "glEdgeFlagPointer")
-
-{-# NOINLINE glEdgeFlagPointerFunPtr #-}
-
-glEdgeFlagv :: MonadIO m => Ptr GLboolean -> m ()
-glEdgeFlagv = ffiPtrbooleanIOV glEdgeFlagvFunPtr
-
-glEdgeFlagvFunPtr :: FunPtr (Ptr GLboolean -> IO ())
-glEdgeFlagvFunPtr = unsafePerformIO (getProcAddress "glEdgeFlagv")
-
-{-# NOINLINE glEdgeFlagvFunPtr #-}
-
-glEnableClientState :: MonadIO m => GLenum -> m ()
-glEnableClientState = ffienumIOV glEnableClientStateFunPtr
-
-glEnableClientStateFunPtr :: FunPtr (GLenum -> IO ())
-glEnableClientStateFunPtr = unsafePerformIO (getProcAddress "glEnableClientState")
-
-{-# NOINLINE glEnableClientStateFunPtr #-}
-
-glEnd :: MonadIO m => m ()
-glEnd = ffiIOV glEndFunPtr
-
-glEndFunPtr :: FunPtr (IO ())
-glEndFunPtr = unsafePerformIO (getProcAddress "glEnd")
-
-{-# NOINLINE glEndFunPtr #-}
-
-glEndList :: MonadIO m => m ()
-glEndList = ffiIOV glEndListFunPtr
-
-glEndListFunPtr :: FunPtr (IO ())
-glEndListFunPtr = unsafePerformIO (getProcAddress "glEndList")
-
-{-# NOINLINE glEndListFunPtr #-}
-
-glEvalCoord1d :: MonadIO m => GLdouble -> m ()
-glEvalCoord1d = ffidoubleIOV glEvalCoord1dFunPtr
-
-glEvalCoord1dFunPtr :: FunPtr (GLdouble -> IO ())
-glEvalCoord1dFunPtr = unsafePerformIO (getProcAddress "glEvalCoord1d")
-
-{-# NOINLINE glEvalCoord1dFunPtr #-}
-
-glEvalCoord1dv :: MonadIO m => Ptr GLdouble -> m ()
-glEvalCoord1dv = ffiPtrdoubleIOV glEvalCoord1dvFunPtr
-
-glEvalCoord1dvFunPtr :: FunPtr (Ptr GLdouble -> IO ())
-glEvalCoord1dvFunPtr = unsafePerformIO (getProcAddress "glEvalCoord1dv")
-
-{-# NOINLINE glEvalCoord1dvFunPtr #-}
-
-glEvalCoord1f :: MonadIO m => GLfloat -> m ()
-glEvalCoord1f = ffifloatIOV glEvalCoord1fFunPtr
-
-glEvalCoord1fFunPtr :: FunPtr (GLfloat -> IO ())
-glEvalCoord1fFunPtr = unsafePerformIO (getProcAddress "glEvalCoord1f")
-
-{-# NOINLINE glEvalCoord1fFunPtr #-}
-
-glEvalCoord1fv :: MonadIO m => Ptr GLfloat -> m ()
-glEvalCoord1fv = ffiPtrfloatIOV glEvalCoord1fvFunPtr
-
-glEvalCoord1fvFunPtr :: FunPtr (Ptr GLfloat -> IO ())
-glEvalCoord1fvFunPtr = unsafePerformIO (getProcAddress "glEvalCoord1fv")
-
-{-# NOINLINE glEvalCoord1fvFunPtr #-}
-
-glEvalCoord2d :: MonadIO m => GLdouble -> GLdouble -> m ()
-glEvalCoord2d = ffidoubledoubleIOV glEvalCoord2dFunPtr
-
-glEvalCoord2dFunPtr :: FunPtr (GLdouble -> GLdouble -> IO ())
-glEvalCoord2dFunPtr = unsafePerformIO (getProcAddress "glEvalCoord2d")
-
-{-# NOINLINE glEvalCoord2dFunPtr #-}
-
-glEvalCoord2dv :: MonadIO m => Ptr GLdouble -> m ()
-glEvalCoord2dv = ffiPtrdoubleIOV glEvalCoord2dvFunPtr
-
-glEvalCoord2dvFunPtr :: FunPtr (Ptr GLdouble -> IO ())
-glEvalCoord2dvFunPtr = unsafePerformIO (getProcAddress "glEvalCoord2dv")
-
-{-# NOINLINE glEvalCoord2dvFunPtr #-}
-
-glEvalCoord2f :: MonadIO m => GLfloat -> GLfloat -> m ()
-glEvalCoord2f = ffifloatfloatIOV glEvalCoord2fFunPtr
-
-glEvalCoord2fFunPtr :: FunPtr (GLfloat -> GLfloat -> IO ())
-glEvalCoord2fFunPtr = unsafePerformIO (getProcAddress "glEvalCoord2f")
-
-{-# NOINLINE glEvalCoord2fFunPtr #-}
-
-glEvalCoord2fv :: MonadIO m => Ptr GLfloat -> m ()
-glEvalCoord2fv = ffiPtrfloatIOV glEvalCoord2fvFunPtr
-
-glEvalCoord2fvFunPtr :: FunPtr (Ptr GLfloat -> IO ())
-glEvalCoord2fvFunPtr = unsafePerformIO (getProcAddress "glEvalCoord2fv")
-
-{-# NOINLINE glEvalCoord2fvFunPtr #-}
-
-glEvalMesh1 :: MonadIO m => GLenum -> GLint -> GLint -> m ()
-glEvalMesh1 = ffienumintintIOV glEvalMesh1FunPtr
-
-glEvalMesh1FunPtr :: FunPtr (GLenum -> GLint -> GLint -> IO ())
-glEvalMesh1FunPtr = unsafePerformIO (getProcAddress "glEvalMesh1")
-
-{-# NOINLINE glEvalMesh1FunPtr #-}
-
-glEvalMesh2 :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> m ()
-glEvalMesh2 = ffienumintintintintIOV glEvalMesh2FunPtr
-
-glEvalMesh2FunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> IO ())
-glEvalMesh2FunPtr = unsafePerformIO (getProcAddress "glEvalMesh2")
-
-{-# NOINLINE glEvalMesh2FunPtr #-}
-
-glEvalPoint1 :: MonadIO m => GLint -> m ()
-glEvalPoint1 = ffiintIOV glEvalPoint1FunPtr
-
-glEvalPoint1FunPtr :: FunPtr (GLint -> IO ())
-glEvalPoint1FunPtr = unsafePerformIO (getProcAddress "glEvalPoint1")
-
-{-# NOINLINE glEvalPoint1FunPtr #-}
-
-glEvalPoint2 :: MonadIO m => GLint -> GLint -> m ()
-glEvalPoint2 = ffiintintIOV glEvalPoint2FunPtr
-
-glEvalPoint2FunPtr :: FunPtr (GLint -> GLint -> IO ())
-glEvalPoint2FunPtr = unsafePerformIO (getProcAddress "glEvalPoint2")
-
-{-# NOINLINE glEvalPoint2FunPtr #-}
-
-glFeedbackBuffer :: MonadIO m => GLsizei -> GLenum -> Ptr GLfloat -> m ()
-glFeedbackBuffer = ffisizeienumPtrfloatIOV glFeedbackBufferFunPtr
-
-glFeedbackBufferFunPtr :: FunPtr (GLsizei -> GLenum -> Ptr GLfloat -> IO ())
-glFeedbackBufferFunPtr = unsafePerformIO (getProcAddress "glFeedbackBuffer")
-
-{-# NOINLINE glFeedbackBufferFunPtr #-}
-
-glFogCoordPointer :: MonadIO m => GLenum -> GLsizei -> Ptr () -> m ()
-glFogCoordPointer = ffienumsizeiPtrVIOV glFogCoordPointerFunPtr
-
-glFogCoordPointerFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr () -> IO ())
-glFogCoordPointerFunPtr = unsafePerformIO (getProcAddress "glFogCoordPointer")
-
-{-# NOINLINE glFogCoordPointerFunPtr #-}
-
-glFogCoordd :: MonadIO m => GLdouble -> m ()
-glFogCoordd = ffidoubleIOV glFogCoorddFunPtr
-
-glFogCoorddFunPtr :: FunPtr (GLdouble -> IO ())
-glFogCoorddFunPtr = unsafePerformIO (getProcAddress "glFogCoordd")
-
-{-# NOINLINE glFogCoorddFunPtr #-}
-
-glFogCoorddv :: MonadIO m => Ptr GLdouble -> m ()
-glFogCoorddv = ffiPtrdoubleIOV glFogCoorddvFunPtr
-
-glFogCoorddvFunPtr :: FunPtr (Ptr GLdouble -> IO ())
-glFogCoorddvFunPtr = unsafePerformIO (getProcAddress "glFogCoorddv")
-
-{-# NOINLINE glFogCoorddvFunPtr #-}
-
-glFogCoordf :: MonadIO m => GLfloat -> m ()
-glFogCoordf = ffifloatIOV glFogCoordfFunPtr
-
-glFogCoordfFunPtr :: FunPtr (GLfloat -> IO ())
-glFogCoordfFunPtr = unsafePerformIO (getProcAddress "glFogCoordf")
-
-{-# NOINLINE glFogCoordfFunPtr #-}
-
-glFogCoordfv :: MonadIO m => Ptr GLfloat -> m ()
-glFogCoordfv = ffiPtrfloatIOV glFogCoordfvFunPtr
-
-glFogCoordfvFunPtr :: FunPtr (Ptr GLfloat -> IO ())
-glFogCoordfvFunPtr = unsafePerformIO (getProcAddress "glFogCoordfv")
-
-{-# NOINLINE glFogCoordfvFunPtr #-}
-
-glFogf :: MonadIO m => GLenum -> GLfloat -> m ()
-glFogf = ffienumfloatIOV glFogfFunPtr
-
-glFogfFunPtr :: FunPtr (GLenum -> GLfloat -> IO ())
-glFogfFunPtr = unsafePerformIO (getProcAddress "glFogf")
-
-{-# NOINLINE glFogfFunPtr #-}
-
-glFogfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
-glFogfv = ffienumPtrfloatIOV glFogfvFunPtr
-
-glFogfvFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
-glFogfvFunPtr = unsafePerformIO (getProcAddress "glFogfv")
-
-{-# NOINLINE glFogfvFunPtr #-}
-
-glFogi :: MonadIO m => GLenum -> GLint -> m ()
-glFogi = ffienumintIOV glFogiFunPtr
-
-glFogiFunPtr :: FunPtr (GLenum -> GLint -> IO ())
-glFogiFunPtr = unsafePerformIO (getProcAddress "glFogi")
-
-{-# NOINLINE glFogiFunPtr #-}
-
-glFogiv :: MonadIO m => GLenum -> Ptr GLint -> m ()
-glFogiv = ffienumPtrintIOV glFogivFunPtr
-
-glFogivFunPtr :: FunPtr (GLenum -> Ptr GLint -> IO ())
-glFogivFunPtr = unsafePerformIO (getProcAddress "glFogiv")
-
-{-# NOINLINE glFogivFunPtr #-}
-
-glFrustum :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
-glFrustum = ffidoubledoubledoubledoubledoubledoubleIOV glFrustumFunPtr
-
-glFrustumFunPtr :: FunPtr (GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
-glFrustumFunPtr = unsafePerformIO (getProcAddress "glFrustum")
-
-{-# NOINLINE glFrustumFunPtr #-}
-
-glGenLists :: MonadIO m => GLsizei -> m GLuint
-glGenLists = ffisizeiIOuint glGenListsFunPtr
-
-glGenListsFunPtr :: FunPtr (GLsizei -> IO GLuint)
-glGenListsFunPtr = unsafePerformIO (getProcAddress "glGenLists")
-
-{-# NOINLINE glGenListsFunPtr #-}
-
-glGetClipPlane :: MonadIO m => GLenum -> Ptr GLdouble -> m ()
-glGetClipPlane = ffienumPtrdoubleIOV glGetClipPlaneFunPtr
-
-glGetClipPlaneFunPtr :: FunPtr (GLenum -> Ptr GLdouble -> IO ())
-glGetClipPlaneFunPtr = unsafePerformIO (getProcAddress "glGetClipPlane")
-
-{-# NOINLINE glGetClipPlaneFunPtr #-}
-
-glGetLightfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
-glGetLightfv = ffienumenumPtrfloatIOV glGetLightfvFunPtr
-
-glGetLightfvFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
-glGetLightfvFunPtr = unsafePerformIO (getProcAddress "glGetLightfv")
-
-{-# NOINLINE glGetLightfvFunPtr #-}
-
-glGetLightiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
-glGetLightiv = ffienumenumPtrintIOV glGetLightivFunPtr
-
-glGetLightivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
-glGetLightivFunPtr = unsafePerformIO (getProcAddress "glGetLightiv")
-
-{-# NOINLINE glGetLightivFunPtr #-}
-
-glGetMapdv :: MonadIO m => GLenum -> GLenum -> Ptr GLdouble -> m ()
-glGetMapdv = ffienumenumPtrdoubleIOV glGetMapdvFunPtr
-
-glGetMapdvFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLdouble -> IO ())
-glGetMapdvFunPtr = unsafePerformIO (getProcAddress "glGetMapdv")
-
-{-# NOINLINE glGetMapdvFunPtr #-}
-
-glGetMapfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
-glGetMapfv = ffienumenumPtrfloatIOV glGetMapfvFunPtr
-
-glGetMapfvFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
-glGetMapfvFunPtr = unsafePerformIO (getProcAddress "glGetMapfv")
-
-{-# NOINLINE glGetMapfvFunPtr #-}
-
-glGetMapiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
-glGetMapiv = ffienumenumPtrintIOV glGetMapivFunPtr
-
-glGetMapivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
-glGetMapivFunPtr = unsafePerformIO (getProcAddress "glGetMapiv")
-
-{-# NOINLINE glGetMapivFunPtr #-}
-
-glGetMaterialfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
-glGetMaterialfv = ffienumenumPtrfloatIOV glGetMaterialfvFunPtr
-
-glGetMaterialfvFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
-glGetMaterialfvFunPtr = unsafePerformIO (getProcAddress "glGetMaterialfv")
-
-{-# NOINLINE glGetMaterialfvFunPtr #-}
-
-glGetMaterialiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
-glGetMaterialiv = ffienumenumPtrintIOV glGetMaterialivFunPtr
-
-glGetMaterialivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
-glGetMaterialivFunPtr = unsafePerformIO (getProcAddress "glGetMaterialiv")
-
-{-# NOINLINE glGetMaterialivFunPtr #-}
-
-glGetPixelMapfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
-glGetPixelMapfv = ffienumPtrfloatIOV glGetPixelMapfvFunPtr
-
-glGetPixelMapfvFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
-glGetPixelMapfvFunPtr = unsafePerformIO (getProcAddress "glGetPixelMapfv")
-
-{-# NOINLINE glGetPixelMapfvFunPtr #-}
-
-glGetPixelMapuiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
-glGetPixelMapuiv = ffienumPtruintIOV glGetPixelMapuivFunPtr
-
-glGetPixelMapuivFunPtr :: FunPtr (GLenum -> Ptr GLuint -> IO ())
-glGetPixelMapuivFunPtr = unsafePerformIO (getProcAddress "glGetPixelMapuiv")
-
-{-# NOINLINE glGetPixelMapuivFunPtr #-}
-
-glGetPixelMapusv :: MonadIO m => GLenum -> Ptr GLushort -> m ()
-glGetPixelMapusv = ffienumPtrushortIOV glGetPixelMapusvFunPtr
-
-glGetPixelMapusvFunPtr :: FunPtr (GLenum -> Ptr GLushort -> IO ())
-glGetPixelMapusvFunPtr = unsafePerformIO (getProcAddress "glGetPixelMapusv")
-
-{-# NOINLINE glGetPixelMapusvFunPtr #-}
-
-glGetPolygonStipple :: MonadIO m => Ptr GLubyte -> m ()
-glGetPolygonStipple = ffiPtrubyteIOV glGetPolygonStippleFunPtr
-
-glGetPolygonStippleFunPtr :: FunPtr (Ptr GLubyte -> IO ())
-glGetPolygonStippleFunPtr = unsafePerformIO (getProcAddress "glGetPolygonStipple")
-
-{-# NOINLINE glGetPolygonStippleFunPtr #-}
-
-glGetTexEnvfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
-glGetTexEnvfv = ffienumenumPtrfloatIOV glGetTexEnvfvFunPtr
-
-glGetTexEnvfvFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
-glGetTexEnvfvFunPtr = unsafePerformIO (getProcAddress "glGetTexEnvfv")
-
-{-# NOINLINE glGetTexEnvfvFunPtr #-}
-
-glGetTexEnviv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
-glGetTexEnviv = ffienumenumPtrintIOV glGetTexEnvivFunPtr
-
-glGetTexEnvivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
-glGetTexEnvivFunPtr = unsafePerformIO (getProcAddress "glGetTexEnviv")
-
-{-# NOINLINE glGetTexEnvivFunPtr #-}
-
-glGetTexGendv :: MonadIO m => GLenum -> GLenum -> Ptr GLdouble -> m ()
-glGetTexGendv = ffienumenumPtrdoubleIOV glGetTexGendvFunPtr
-
-glGetTexGendvFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLdouble -> IO ())
-glGetTexGendvFunPtr = unsafePerformIO (getProcAddress "glGetTexGendv")
-
-{-# NOINLINE glGetTexGendvFunPtr #-}
-
-glGetTexGenfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
-glGetTexGenfv = ffienumenumPtrfloatIOV glGetTexGenfvFunPtr
-
-glGetTexGenfvFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
-glGetTexGenfvFunPtr = unsafePerformIO (getProcAddress "glGetTexGenfv")
-
-{-# NOINLINE glGetTexGenfvFunPtr #-}
-
-glGetTexGeniv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
-glGetTexGeniv = ffienumenumPtrintIOV glGetTexGenivFunPtr
-
-glGetTexGenivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
-glGetTexGenivFunPtr = unsafePerformIO (getProcAddress "glGetTexGeniv")
-
-{-# NOINLINE glGetTexGenivFunPtr #-}
-
-glIndexMask :: MonadIO m => GLuint -> m ()
-glIndexMask = ffiuintIOV glIndexMaskFunPtr
-
-glIndexMaskFunPtr :: FunPtr (GLuint -> IO ())
-glIndexMaskFunPtr = unsafePerformIO (getProcAddress "glIndexMask")
-
-{-# NOINLINE glIndexMaskFunPtr #-}
-
-glIndexPointer :: MonadIO m => GLenum -> GLsizei -> Ptr () -> m ()
-glIndexPointer = ffienumsizeiPtrVIOV glIndexPointerFunPtr
-
-glIndexPointerFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr () -> IO ())
-glIndexPointerFunPtr = unsafePerformIO (getProcAddress "glIndexPointer")
-
-{-# NOINLINE glIndexPointerFunPtr #-}
-
-glIndexd :: MonadIO m => GLdouble -> m ()
-glIndexd = ffidoubleIOV glIndexdFunPtr
-
-glIndexdFunPtr :: FunPtr (GLdouble -> IO ())
-glIndexdFunPtr = unsafePerformIO (getProcAddress "glIndexd")
-
-{-# NOINLINE glIndexdFunPtr #-}
-
-glIndexdv :: MonadIO m => Ptr GLdouble -> m ()
-glIndexdv = ffiPtrdoubleIOV glIndexdvFunPtr
-
-glIndexdvFunPtr :: FunPtr (Ptr GLdouble -> IO ())
-glIndexdvFunPtr = unsafePerformIO (getProcAddress "glIndexdv")
-
-{-# NOINLINE glIndexdvFunPtr #-}
-
-glIndexf :: MonadIO m => GLfloat -> m ()
-glIndexf = ffifloatIOV glIndexfFunPtr
-
-glIndexfFunPtr :: FunPtr (GLfloat -> IO ())
-glIndexfFunPtr = unsafePerformIO (getProcAddress "glIndexf")
-
-{-# NOINLINE glIndexfFunPtr #-}
-
-glIndexfv :: MonadIO m => Ptr GLfloat -> m ()
-glIndexfv = ffiPtrfloatIOV glIndexfvFunPtr
-
-glIndexfvFunPtr :: FunPtr (Ptr GLfloat -> IO ())
-glIndexfvFunPtr = unsafePerformIO (getProcAddress "glIndexfv")
-
-{-# NOINLINE glIndexfvFunPtr #-}
-
-glIndexi :: MonadIO m => GLint -> m ()
-glIndexi = ffiintIOV glIndexiFunPtr
-
-glIndexiFunPtr :: FunPtr (GLint -> IO ())
-glIndexiFunPtr = unsafePerformIO (getProcAddress "glIndexi")
-
-{-# NOINLINE glIndexiFunPtr #-}
-
-glIndexiv :: MonadIO m => Ptr GLint -> m ()
-glIndexiv = ffiPtrintIOV glIndexivFunPtr
-
-glIndexivFunPtr :: FunPtr (Ptr GLint -> IO ())
-glIndexivFunPtr = unsafePerformIO (getProcAddress "glIndexiv")
-
-{-# NOINLINE glIndexivFunPtr #-}
-
-glIndexs :: MonadIO m => GLshort -> m ()
-glIndexs = ffishortIOV glIndexsFunPtr
-
-glIndexsFunPtr :: FunPtr (GLshort -> IO ())
-glIndexsFunPtr = unsafePerformIO (getProcAddress "glIndexs")
-
-{-# NOINLINE glIndexsFunPtr #-}
-
-glIndexsv :: MonadIO m => Ptr GLshort -> m ()
-glIndexsv = ffiPtrshortIOV glIndexsvFunPtr
-
-glIndexsvFunPtr :: FunPtr (Ptr GLshort -> IO ())
-glIndexsvFunPtr = unsafePerformIO (getProcAddress "glIndexsv")
-
-{-# NOINLINE glIndexsvFunPtr #-}
-
-glIndexub :: MonadIO m => GLubyte -> m ()
-glIndexub = ffiubyteIOV glIndexubFunPtr
-
-glIndexubFunPtr :: FunPtr (GLubyte -> IO ())
-glIndexubFunPtr = unsafePerformIO (getProcAddress "glIndexub")
-
-{-# NOINLINE glIndexubFunPtr #-}
-
-glIndexubv :: MonadIO m => Ptr GLubyte -> m ()
-glIndexubv = ffiPtrubyteIOV glIndexubvFunPtr
-
-glIndexubvFunPtr :: FunPtr (Ptr GLubyte -> IO ())
-glIndexubvFunPtr = unsafePerformIO (getProcAddress "glIndexubv")
-
-{-# NOINLINE glIndexubvFunPtr #-}
-
-glInitNames :: MonadIO m => m ()
-glInitNames = ffiIOV glInitNamesFunPtr
-
-glInitNamesFunPtr :: FunPtr (IO ())
-glInitNamesFunPtr = unsafePerformIO (getProcAddress "glInitNames")
-
-{-# NOINLINE glInitNamesFunPtr #-}
-
-glInterleavedArrays :: MonadIO m => GLenum -> GLsizei -> Ptr () -> m ()
-glInterleavedArrays = ffienumsizeiPtrVIOV glInterleavedArraysFunPtr
-
-glInterleavedArraysFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr () -> IO ())
-glInterleavedArraysFunPtr = unsafePerformIO (getProcAddress "glInterleavedArrays")
-
-{-# NOINLINE glInterleavedArraysFunPtr #-}
-
-glIsList :: MonadIO m => GLuint -> m GLboolean
-glIsList = ffiuintIOboolean glIsListFunPtr
-
-glIsListFunPtr :: FunPtr (GLuint -> IO GLboolean)
-glIsListFunPtr = unsafePerformIO (getProcAddress "glIsList")
-
-{-# NOINLINE glIsListFunPtr #-}
-
-glLightModelf :: MonadIO m => GLenum -> GLfloat -> m ()
-glLightModelf = ffienumfloatIOV glLightModelfFunPtr
-
-glLightModelfFunPtr :: FunPtr (GLenum -> GLfloat -> IO ())
-glLightModelfFunPtr = unsafePerformIO (getProcAddress "glLightModelf")
-
-{-# NOINLINE glLightModelfFunPtr #-}
-
-glLightModelfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
-glLightModelfv = ffienumPtrfloatIOV glLightModelfvFunPtr
-
-glLightModelfvFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
-glLightModelfvFunPtr = unsafePerformIO (getProcAddress "glLightModelfv")
-
-{-# NOINLINE glLightModelfvFunPtr #-}
-
-glLightModeli :: MonadIO m => GLenum -> GLint -> m ()
-glLightModeli = ffienumintIOV glLightModeliFunPtr
-
-glLightModeliFunPtr :: FunPtr (GLenum -> GLint -> IO ())
-glLightModeliFunPtr = unsafePerformIO (getProcAddress "glLightModeli")
-
-{-# NOINLINE glLightModeliFunPtr #-}
-
-glLightModeliv :: MonadIO m => GLenum -> Ptr GLint -> m ()
-glLightModeliv = ffienumPtrintIOV glLightModelivFunPtr
-
-glLightModelivFunPtr :: FunPtr (GLenum -> Ptr GLint -> IO ())
-glLightModelivFunPtr = unsafePerformIO (getProcAddress "glLightModeliv")
-
-{-# NOINLINE glLightModelivFunPtr #-}
-
-glLightf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()
-glLightf = ffienumenumfloatIOV glLightfFunPtr
-
-glLightfFunPtr :: FunPtr (GLenum -> GLenum -> GLfloat -> IO ())
-glLightfFunPtr = unsafePerformIO (getProcAddress "glLightf")
-
-{-# NOINLINE glLightfFunPtr #-}
-
-glLightfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
-glLightfv = ffienumenumPtrfloatIOV glLightfvFunPtr
-
-glLightfvFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
-glLightfvFunPtr = unsafePerformIO (getProcAddress "glLightfv")
-
-{-# NOINLINE glLightfvFunPtr #-}
-
-glLighti :: MonadIO m => GLenum -> GLenum -> GLint -> m ()
-glLighti = ffienumenumintIOV glLightiFunPtr
-
-glLightiFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> IO ())
-glLightiFunPtr = unsafePerformIO (getProcAddress "glLighti")
-
-{-# NOINLINE glLightiFunPtr #-}
-
-glLightiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
-glLightiv = ffienumenumPtrintIOV glLightivFunPtr
-
-glLightivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
-glLightivFunPtr = unsafePerformIO (getProcAddress "glLightiv")
-
-{-# NOINLINE glLightivFunPtr #-}
-
-glLineStipple :: MonadIO m => GLint -> GLushort -> m ()
-glLineStipple = ffiintushortIOV glLineStippleFunPtr
-
-glLineStippleFunPtr :: FunPtr (GLint -> GLushort -> IO ())
-glLineStippleFunPtr = unsafePerformIO (getProcAddress "glLineStipple")
-
-{-# NOINLINE glLineStippleFunPtr #-}
-
-glListBase :: MonadIO m => GLuint -> m ()
-glListBase = ffiuintIOV glListBaseFunPtr
-
-glListBaseFunPtr :: FunPtr (GLuint -> IO ())
-glListBaseFunPtr = unsafePerformIO (getProcAddress "glListBase")
-
-{-# NOINLINE glListBaseFunPtr #-}
-
-glLoadIdentity :: MonadIO m => m ()
-glLoadIdentity = ffiIOV glLoadIdentityFunPtr
-
-glLoadIdentityFunPtr :: FunPtr (IO ())
-glLoadIdentityFunPtr = unsafePerformIO (getProcAddress "glLoadIdentity")
-
-{-# NOINLINE glLoadIdentityFunPtr #-}
-
-glLoadMatrixd :: MonadIO m => Ptr GLdouble -> m ()
-glLoadMatrixd = ffiPtrdoubleIOV glLoadMatrixdFunPtr
-
-glLoadMatrixdFunPtr :: FunPtr (Ptr GLdouble -> IO ())
-glLoadMatrixdFunPtr = unsafePerformIO (getProcAddress "glLoadMatrixd")
-
-{-# NOINLINE glLoadMatrixdFunPtr #-}
-
-glLoadMatrixf :: MonadIO m => Ptr GLfloat -> m ()
-glLoadMatrixf = ffiPtrfloatIOV glLoadMatrixfFunPtr
-
-glLoadMatrixfFunPtr :: FunPtr (Ptr GLfloat -> IO ())
-glLoadMatrixfFunPtr = unsafePerformIO (getProcAddress "glLoadMatrixf")
-
-{-# NOINLINE glLoadMatrixfFunPtr #-}
-
-glLoadName :: MonadIO m => GLuint -> m ()
-glLoadName = ffiuintIOV glLoadNameFunPtr
-
-glLoadNameFunPtr :: FunPtr (GLuint -> IO ())
-glLoadNameFunPtr = unsafePerformIO (getProcAddress "glLoadName")
-
-{-# NOINLINE glLoadNameFunPtr #-}
-
-glLoadTransposeMatrixd :: MonadIO m => Ptr GLdouble -> m ()
-glLoadTransposeMatrixd = ffiPtrdoubleIOV glLoadTransposeMatrixdFunPtr
-
-glLoadTransposeMatrixdFunPtr :: FunPtr (Ptr GLdouble -> IO ())
-glLoadTransposeMatrixdFunPtr = unsafePerformIO (getProcAddress "glLoadTransposeMatrixd")
-
-{-# NOINLINE glLoadTransposeMatrixdFunPtr #-}
-
-glLoadTransposeMatrixf :: MonadIO m => Ptr GLfloat -> m ()
-glLoadTransposeMatrixf = ffiPtrfloatIOV glLoadTransposeMatrixfFunPtr
-
-glLoadTransposeMatrixfFunPtr :: FunPtr (Ptr GLfloat -> IO ())
-glLoadTransposeMatrixfFunPtr = unsafePerformIO (getProcAddress "glLoadTransposeMatrixf")
-
-{-# NOINLINE glLoadTransposeMatrixfFunPtr #-}
-
-glMap1d :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> m ()
-glMap1d = ffienumdoubledoubleintintPtrdoubleIOV glMap1dFunPtr
-
-glMap1dFunPtr :: FunPtr (GLenum -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> IO ())
-glMap1dFunPtr = unsafePerformIO (getProcAddress "glMap1d")
-
-{-# NOINLINE glMap1dFunPtr #-}
-
-glMap1f :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> m ()
-glMap1f = ffienumfloatfloatintintPtrfloatIOV glMap1fFunPtr
-
-glMap1fFunPtr :: FunPtr (GLenum -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> IO ())
-glMap1fFunPtr = unsafePerformIO (getProcAddress "glMap1f")
-
-{-# NOINLINE glMap1fFunPtr #-}
-
-glMap2d :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLint -> GLint -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> m ()
-glMap2d = ffienumdoubledoubleintintdoubledoubleintintPtrdoubleIOV glMap2dFunPtr
-
-glMap2dFunPtr :: FunPtr (GLenum -> GLdouble -> GLdouble -> GLint -> GLint -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> IO ())
-glMap2dFunPtr = unsafePerformIO (getProcAddress "glMap2d")
-
-{-# NOINLINE glMap2dFunPtr #-}
-
-glMap2f :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLint -> GLint -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> m ()
-glMap2f = ffienumfloatfloatintintfloatfloatintintPtrfloatIOV glMap2fFunPtr
-
-glMap2fFunPtr :: FunPtr (GLenum -> GLfloat -> GLfloat -> GLint -> GLint -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> IO ())
-glMap2fFunPtr = unsafePerformIO (getProcAddress "glMap2f")
-
-{-# NOINLINE glMap2fFunPtr #-}
-
-glMapGrid1d :: MonadIO m => GLint -> GLdouble -> GLdouble -> m ()
-glMapGrid1d = ffiintdoubledoubleIOV glMapGrid1dFunPtr
-
-glMapGrid1dFunPtr :: FunPtr (GLint -> GLdouble -> GLdouble -> IO ())
-glMapGrid1dFunPtr = unsafePerformIO (getProcAddress "glMapGrid1d")
-
-{-# NOINLINE glMapGrid1dFunPtr #-}
-
-glMapGrid1f :: MonadIO m => GLint -> GLfloat -> GLfloat -> m ()
-glMapGrid1f = ffiintfloatfloatIOV glMapGrid1fFunPtr
-
-glMapGrid1fFunPtr :: FunPtr (GLint -> GLfloat -> GLfloat -> IO ())
-glMapGrid1fFunPtr = unsafePerformIO (getProcAddress "glMapGrid1f")
-
-{-# NOINLINE glMapGrid1fFunPtr #-}
-
-glMapGrid2d :: MonadIO m => GLint -> GLdouble -> GLdouble -> GLint -> GLdouble -> GLdouble -> m ()
-glMapGrid2d = ffiintdoubledoubleintdoubledoubleIOV glMapGrid2dFunPtr
-
-glMapGrid2dFunPtr :: FunPtr (GLint -> GLdouble -> GLdouble -> GLint -> GLdouble -> GLdouble -> IO ())
-glMapGrid2dFunPtr = unsafePerformIO (getProcAddress "glMapGrid2d")
-
-{-# NOINLINE glMapGrid2dFunPtr #-}
-
-glMapGrid2f :: MonadIO m => GLint -> GLfloat -> GLfloat -> GLint -> GLfloat -> GLfloat -> m ()
-glMapGrid2f = ffiintfloatfloatintfloatfloatIOV glMapGrid2fFunPtr
-
-glMapGrid2fFunPtr :: FunPtr (GLint -> GLfloat -> GLfloat -> GLint -> GLfloat -> GLfloat -> IO ())
-glMapGrid2fFunPtr = unsafePerformIO (getProcAddress "glMapGrid2f")
-
-{-# NOINLINE glMapGrid2fFunPtr #-}
-
-glMaterialf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()
-glMaterialf = ffienumenumfloatIOV glMaterialfFunPtr
-
-glMaterialfFunPtr :: FunPtr (GLenum -> GLenum -> GLfloat -> IO ())
-glMaterialfFunPtr = unsafePerformIO (getProcAddress "glMaterialf")
-
-{-# NOINLINE glMaterialfFunPtr #-}
-
-glMaterialfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
-glMaterialfv = ffienumenumPtrfloatIOV glMaterialfvFunPtr
-
-glMaterialfvFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
-glMaterialfvFunPtr = unsafePerformIO (getProcAddress "glMaterialfv")
-
-{-# NOINLINE glMaterialfvFunPtr #-}
-
-glMateriali :: MonadIO m => GLenum -> GLenum -> GLint -> m ()
-glMateriali = ffienumenumintIOV glMaterialiFunPtr
-
-glMaterialiFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> IO ())
-glMaterialiFunPtr = unsafePerformIO (getProcAddress "glMateriali")
-
-{-# NOINLINE glMaterialiFunPtr #-}
-
-glMaterialiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
-glMaterialiv = ffienumenumPtrintIOV glMaterialivFunPtr
-
-glMaterialivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
-glMaterialivFunPtr = unsafePerformIO (getProcAddress "glMaterialiv")
-
-{-# NOINLINE glMaterialivFunPtr #-}
-
-glMatrixMode :: MonadIO m => GLenum -> m ()
-glMatrixMode = ffienumIOV glMatrixModeFunPtr
-
-glMatrixModeFunPtr :: FunPtr (GLenum -> IO ())
-glMatrixModeFunPtr = unsafePerformIO (getProcAddress "glMatrixMode")
-
-{-# NOINLINE glMatrixModeFunPtr #-}
-
-glMultMatrixd :: MonadIO m => Ptr GLdouble -> m ()
-glMultMatrixd = ffiPtrdoubleIOV glMultMatrixdFunPtr
-
-glMultMatrixdFunPtr :: FunPtr (Ptr GLdouble -> IO ())
-glMultMatrixdFunPtr = unsafePerformIO (getProcAddress "glMultMatrixd")
-
-{-# NOINLINE glMultMatrixdFunPtr #-}
-
-glMultMatrixf :: MonadIO m => Ptr GLfloat -> m ()
-glMultMatrixf = ffiPtrfloatIOV glMultMatrixfFunPtr
-
-glMultMatrixfFunPtr :: FunPtr (Ptr GLfloat -> IO ())
-glMultMatrixfFunPtr = unsafePerformIO (getProcAddress "glMultMatrixf")
-
-{-# NOINLINE glMultMatrixfFunPtr #-}
-
-glMultTransposeMatrixd :: MonadIO m => Ptr GLdouble -> m ()
-glMultTransposeMatrixd = ffiPtrdoubleIOV glMultTransposeMatrixdFunPtr
-
-glMultTransposeMatrixdFunPtr :: FunPtr (Ptr GLdouble -> IO ())
-glMultTransposeMatrixdFunPtr = unsafePerformIO (getProcAddress "glMultTransposeMatrixd")
-
-{-# NOINLINE glMultTransposeMatrixdFunPtr #-}
-
-glMultTransposeMatrixf :: MonadIO m => Ptr GLfloat -> m ()
-glMultTransposeMatrixf = ffiPtrfloatIOV glMultTransposeMatrixfFunPtr
-
-glMultTransposeMatrixfFunPtr :: FunPtr (Ptr GLfloat -> IO ())
-glMultTransposeMatrixfFunPtr = unsafePerformIO (getProcAddress "glMultTransposeMatrixf")
-
-{-# NOINLINE glMultTransposeMatrixfFunPtr #-}
-
-glMultiTexCoord1d :: MonadIO m => GLenum -> GLdouble -> m ()
-glMultiTexCoord1d = ffienumdoubleIOV glMultiTexCoord1dFunPtr
-
-glMultiTexCoord1dFunPtr :: FunPtr (GLenum -> GLdouble -> IO ())
-glMultiTexCoord1dFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord1d")
-
-{-# NOINLINE glMultiTexCoord1dFunPtr #-}
-
-glMultiTexCoord1dv :: MonadIO m => GLenum -> Ptr GLdouble -> m ()
-glMultiTexCoord1dv = ffienumPtrdoubleIOV glMultiTexCoord1dvFunPtr
-
-glMultiTexCoord1dvFunPtr :: FunPtr (GLenum -> Ptr GLdouble -> IO ())
-glMultiTexCoord1dvFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord1dv")
-
-{-# NOINLINE glMultiTexCoord1dvFunPtr #-}
-
-glMultiTexCoord1f :: MonadIO m => GLenum -> GLfloat -> m ()
-glMultiTexCoord1f = ffienumfloatIOV glMultiTexCoord1fFunPtr
-
-glMultiTexCoord1fFunPtr :: FunPtr (GLenum -> GLfloat -> IO ())
-glMultiTexCoord1fFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord1f")
-
-{-# NOINLINE glMultiTexCoord1fFunPtr #-}
-
-glMultiTexCoord1fv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
-glMultiTexCoord1fv = ffienumPtrfloatIOV glMultiTexCoord1fvFunPtr
-
-glMultiTexCoord1fvFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
-glMultiTexCoord1fvFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord1fv")
-
-{-# NOINLINE glMultiTexCoord1fvFunPtr #-}
-
-glMultiTexCoord1i :: MonadIO m => GLenum -> GLint -> m ()
-glMultiTexCoord1i = ffienumintIOV glMultiTexCoord1iFunPtr
-
-glMultiTexCoord1iFunPtr :: FunPtr (GLenum -> GLint -> IO ())
-glMultiTexCoord1iFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord1i")
-
-{-# NOINLINE glMultiTexCoord1iFunPtr #-}
-
-glMultiTexCoord1iv :: MonadIO m => GLenum -> Ptr GLint -> m ()
-glMultiTexCoord1iv = ffienumPtrintIOV glMultiTexCoord1ivFunPtr
-
-glMultiTexCoord1ivFunPtr :: FunPtr (GLenum -> Ptr GLint -> IO ())
-glMultiTexCoord1ivFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord1iv")
-
-{-# NOINLINE glMultiTexCoord1ivFunPtr #-}
-
-glMultiTexCoord1s :: MonadIO m => GLenum -> GLshort -> m ()
-glMultiTexCoord1s = ffienumshortIOV glMultiTexCoord1sFunPtr
-
-glMultiTexCoord1sFunPtr :: FunPtr (GLenum -> GLshort -> IO ())
-glMultiTexCoord1sFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord1s")
-
-{-# NOINLINE glMultiTexCoord1sFunPtr #-}
-
-glMultiTexCoord1sv :: MonadIO m => GLenum -> Ptr GLshort -> m ()
-glMultiTexCoord1sv = ffienumPtrshortIOV glMultiTexCoord1svFunPtr
-
-glMultiTexCoord1svFunPtr :: FunPtr (GLenum -> Ptr GLshort -> IO ())
-glMultiTexCoord1svFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord1sv")
-
-{-# NOINLINE glMultiTexCoord1svFunPtr #-}
-
-glMultiTexCoord2d :: MonadIO m => GLenum -> GLdouble -> GLdouble -> m ()
-glMultiTexCoord2d = ffienumdoubledoubleIOV glMultiTexCoord2dFunPtr
-
-glMultiTexCoord2dFunPtr :: FunPtr (GLenum -> GLdouble -> GLdouble -> IO ())
-glMultiTexCoord2dFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord2d")
-
-{-# NOINLINE glMultiTexCoord2dFunPtr #-}
-
-glMultiTexCoord2dv :: MonadIO m => GLenum -> Ptr GLdouble -> m ()
-glMultiTexCoord2dv = ffienumPtrdoubleIOV glMultiTexCoord2dvFunPtr
-
-glMultiTexCoord2dvFunPtr :: FunPtr (GLenum -> Ptr GLdouble -> IO ())
-glMultiTexCoord2dvFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord2dv")
-
-{-# NOINLINE glMultiTexCoord2dvFunPtr #-}
-
-glMultiTexCoord2f :: MonadIO m => GLenum -> GLfloat -> GLfloat -> m ()
-glMultiTexCoord2f = ffienumfloatfloatIOV glMultiTexCoord2fFunPtr
-
-glMultiTexCoord2fFunPtr :: FunPtr (GLenum -> GLfloat -> GLfloat -> IO ())
-glMultiTexCoord2fFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord2f")
-
-{-# NOINLINE glMultiTexCoord2fFunPtr #-}
-
-glMultiTexCoord2fv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
-glMultiTexCoord2fv = ffienumPtrfloatIOV glMultiTexCoord2fvFunPtr
-
-glMultiTexCoord2fvFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
-glMultiTexCoord2fvFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord2fv")
-
-{-# NOINLINE glMultiTexCoord2fvFunPtr #-}
-
-glMultiTexCoord2i :: MonadIO m => GLenum -> GLint -> GLint -> m ()
-glMultiTexCoord2i = ffienumintintIOV glMultiTexCoord2iFunPtr
-
-glMultiTexCoord2iFunPtr :: FunPtr (GLenum -> GLint -> GLint -> IO ())
-glMultiTexCoord2iFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord2i")
-
-{-# NOINLINE glMultiTexCoord2iFunPtr #-}
-
-glMultiTexCoord2iv :: MonadIO m => GLenum -> Ptr GLint -> m ()
-glMultiTexCoord2iv = ffienumPtrintIOV glMultiTexCoord2ivFunPtr
-
-glMultiTexCoord2ivFunPtr :: FunPtr (GLenum -> Ptr GLint -> IO ())
-glMultiTexCoord2ivFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord2iv")
-
-{-# NOINLINE glMultiTexCoord2ivFunPtr #-}
-
-glMultiTexCoord2s :: MonadIO m => GLenum -> GLshort -> GLshort -> m ()
-glMultiTexCoord2s = ffienumshortshortIOV glMultiTexCoord2sFunPtr
-
-glMultiTexCoord2sFunPtr :: FunPtr (GLenum -> GLshort -> GLshort -> IO ())
-glMultiTexCoord2sFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord2s")
-
-{-# NOINLINE glMultiTexCoord2sFunPtr #-}
-
-glMultiTexCoord2sv :: MonadIO m => GLenum -> Ptr GLshort -> m ()
-glMultiTexCoord2sv = ffienumPtrshortIOV glMultiTexCoord2svFunPtr
-
-glMultiTexCoord2svFunPtr :: FunPtr (GLenum -> Ptr GLshort -> IO ())
-glMultiTexCoord2svFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord2sv")
-
-{-# NOINLINE glMultiTexCoord2svFunPtr #-}
-
-glMultiTexCoord3d :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLdouble -> m ()
-glMultiTexCoord3d = ffienumdoubledoubledoubleIOV glMultiTexCoord3dFunPtr
-
-glMultiTexCoord3dFunPtr :: FunPtr (GLenum -> GLdouble -> GLdouble -> GLdouble -> IO ())
-glMultiTexCoord3dFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord3d")
-
-{-# NOINLINE glMultiTexCoord3dFunPtr #-}
-
-glMultiTexCoord3dv :: MonadIO m => GLenum -> Ptr GLdouble -> m ()
-glMultiTexCoord3dv = ffienumPtrdoubleIOV glMultiTexCoord3dvFunPtr
-
-glMultiTexCoord3dvFunPtr :: FunPtr (GLenum -> Ptr GLdouble -> IO ())
-glMultiTexCoord3dvFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord3dv")
-
-{-# NOINLINE glMultiTexCoord3dvFunPtr #-}
-
-glMultiTexCoord3f :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLfloat -> m ()
-glMultiTexCoord3f = ffienumfloatfloatfloatIOV glMultiTexCoord3fFunPtr
-
-glMultiTexCoord3fFunPtr :: FunPtr (GLenum -> GLfloat -> GLfloat -> GLfloat -> IO ())
-glMultiTexCoord3fFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord3f")
-
-{-# NOINLINE glMultiTexCoord3fFunPtr #-}
-
-glMultiTexCoord3fv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
-glMultiTexCoord3fv = ffienumPtrfloatIOV glMultiTexCoord3fvFunPtr
-
-glMultiTexCoord3fvFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
-glMultiTexCoord3fvFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord3fv")
-
-{-# NOINLINE glMultiTexCoord3fvFunPtr #-}
-
-glMultiTexCoord3i :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> m ()
-glMultiTexCoord3i = ffienumintintintIOV glMultiTexCoord3iFunPtr
-
-glMultiTexCoord3iFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLint -> IO ())
-glMultiTexCoord3iFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord3i")
-
-{-# NOINLINE glMultiTexCoord3iFunPtr #-}
-
-glMultiTexCoord3iv :: MonadIO m => GLenum -> Ptr GLint -> m ()
-glMultiTexCoord3iv = ffienumPtrintIOV glMultiTexCoord3ivFunPtr
-
-glMultiTexCoord3ivFunPtr :: FunPtr (GLenum -> Ptr GLint -> IO ())
-glMultiTexCoord3ivFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord3iv")
-
-{-# NOINLINE glMultiTexCoord3ivFunPtr #-}
-
-glMultiTexCoord3s :: MonadIO m => GLenum -> GLshort -> GLshort -> GLshort -> m ()
-glMultiTexCoord3s = ffienumshortshortshortIOV glMultiTexCoord3sFunPtr
-
-glMultiTexCoord3sFunPtr :: FunPtr (GLenum -> GLshort -> GLshort -> GLshort -> IO ())
-glMultiTexCoord3sFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord3s")
-
-{-# NOINLINE glMultiTexCoord3sFunPtr #-}
-
-glMultiTexCoord3sv :: MonadIO m => GLenum -> Ptr GLshort -> m ()
-glMultiTexCoord3sv = ffienumPtrshortIOV glMultiTexCoord3svFunPtr
-
-glMultiTexCoord3svFunPtr :: FunPtr (GLenum -> Ptr GLshort -> IO ())
-glMultiTexCoord3svFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord3sv")
-
-{-# NOINLINE glMultiTexCoord3svFunPtr #-}
-
-glMultiTexCoord4d :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
-glMultiTexCoord4d = ffienumdoubledoubledoubledoubleIOV glMultiTexCoord4dFunPtr
-
-glMultiTexCoord4dFunPtr :: FunPtr (GLenum -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
-glMultiTexCoord4dFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord4d")
-
-{-# NOINLINE glMultiTexCoord4dFunPtr #-}
-
-glMultiTexCoord4dv :: MonadIO m => GLenum -> Ptr GLdouble -> m ()
-glMultiTexCoord4dv = ffienumPtrdoubleIOV glMultiTexCoord4dvFunPtr
-
-glMultiTexCoord4dvFunPtr :: FunPtr (GLenum -> Ptr GLdouble -> IO ())
-glMultiTexCoord4dvFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord4dv")
-
-{-# NOINLINE glMultiTexCoord4dvFunPtr #-}
-
-glMultiTexCoord4f :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
-glMultiTexCoord4f = ffienumfloatfloatfloatfloatIOV glMultiTexCoord4fFunPtr
-
-glMultiTexCoord4fFunPtr :: FunPtr (GLenum -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
-glMultiTexCoord4fFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord4f")
-
-{-# NOINLINE glMultiTexCoord4fFunPtr #-}
-
-glMultiTexCoord4fv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
-glMultiTexCoord4fv = ffienumPtrfloatIOV glMultiTexCoord4fvFunPtr
-
-glMultiTexCoord4fvFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
-glMultiTexCoord4fvFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord4fv")
-
-{-# NOINLINE glMultiTexCoord4fvFunPtr #-}
-
-glMultiTexCoord4i :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> m ()
-glMultiTexCoord4i = ffienumintintintintIOV glMultiTexCoord4iFunPtr
-
-glMultiTexCoord4iFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> IO ())
-glMultiTexCoord4iFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord4i")
-
-{-# NOINLINE glMultiTexCoord4iFunPtr #-}
-
-glMultiTexCoord4iv :: MonadIO m => GLenum -> Ptr GLint -> m ()
-glMultiTexCoord4iv = ffienumPtrintIOV glMultiTexCoord4ivFunPtr
-
-glMultiTexCoord4ivFunPtr :: FunPtr (GLenum -> Ptr GLint -> IO ())
-glMultiTexCoord4ivFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord4iv")
-
-{-# NOINLINE glMultiTexCoord4ivFunPtr #-}
-
-glMultiTexCoord4s :: MonadIO m => GLenum -> GLshort -> GLshort -> GLshort -> GLshort -> m ()
-glMultiTexCoord4s = ffienumshortshortshortshortIOV glMultiTexCoord4sFunPtr
-
-glMultiTexCoord4sFunPtr :: FunPtr (GLenum -> GLshort -> GLshort -> GLshort -> GLshort -> IO ())
-glMultiTexCoord4sFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord4s")
-
-{-# NOINLINE glMultiTexCoord4sFunPtr #-}
-
-glMultiTexCoord4sv :: MonadIO m => GLenum -> Ptr GLshort -> m ()
-glMultiTexCoord4sv = ffienumPtrshortIOV glMultiTexCoord4svFunPtr
-
-glMultiTexCoord4svFunPtr :: FunPtr (GLenum -> Ptr GLshort -> IO ())
-glMultiTexCoord4svFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord4sv")
-
-{-# NOINLINE glMultiTexCoord4svFunPtr #-}
-
-glNewList :: MonadIO m => GLuint -> GLenum -> m ()
-glNewList = ffiuintenumIOV glNewListFunPtr
-
-glNewListFunPtr :: FunPtr (GLuint -> GLenum -> IO ())
-glNewListFunPtr = unsafePerformIO (getProcAddress "glNewList")
-
-{-# NOINLINE glNewListFunPtr #-}
-
-glNormal3b :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> m ()
-glNormal3b = ffibytebytebyteIOV glNormal3bFunPtr
-
-glNormal3bFunPtr :: FunPtr (GLbyte -> GLbyte -> GLbyte -> IO ())
-glNormal3bFunPtr = unsafePerformIO (getProcAddress "glNormal3b")
-
-{-# NOINLINE glNormal3bFunPtr #-}
-
-glNormal3bv :: MonadIO m => Ptr GLbyte -> m ()
-glNormal3bv = ffiPtrbyteIOV glNormal3bvFunPtr
-
-glNormal3bvFunPtr :: FunPtr (Ptr GLbyte -> IO ())
-glNormal3bvFunPtr = unsafePerformIO (getProcAddress "glNormal3bv")
-
-{-# NOINLINE glNormal3bvFunPtr #-}
-
-glNormal3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()
-glNormal3d = ffidoubledoubledoubleIOV glNormal3dFunPtr
-
-glNormal3dFunPtr :: FunPtr (GLdouble -> GLdouble -> GLdouble -> IO ())
-glNormal3dFunPtr = unsafePerformIO (getProcAddress "glNormal3d")
-
-{-# NOINLINE glNormal3dFunPtr #-}
-
-glNormal3dv :: MonadIO m => Ptr GLdouble -> m ()
-glNormal3dv = ffiPtrdoubleIOV glNormal3dvFunPtr
-
-glNormal3dvFunPtr :: FunPtr (Ptr GLdouble -> IO ())
-glNormal3dvFunPtr = unsafePerformIO (getProcAddress "glNormal3dv")
-
-{-# NOINLINE glNormal3dvFunPtr #-}
-
-glNormal3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()
-glNormal3f = ffifloatfloatfloatIOV glNormal3fFunPtr
-
-glNormal3fFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> IO ())
-glNormal3fFunPtr = unsafePerformIO (getProcAddress "glNormal3f")
-
-{-# NOINLINE glNormal3fFunPtr #-}
-
-glNormal3fv :: MonadIO m => Ptr GLfloat -> m ()
-glNormal3fv = ffiPtrfloatIOV glNormal3fvFunPtr
-
-glNormal3fvFunPtr :: FunPtr (Ptr GLfloat -> IO ())
-glNormal3fvFunPtr = unsafePerformIO (getProcAddress "glNormal3fv")
-
-{-# NOINLINE glNormal3fvFunPtr #-}
-
-glNormal3i :: MonadIO m => GLint -> GLint -> GLint -> m ()
-glNormal3i = ffiintintintIOV glNormal3iFunPtr
-
-glNormal3iFunPtr :: FunPtr (GLint -> GLint -> GLint -> IO ())
-glNormal3iFunPtr = unsafePerformIO (getProcAddress "glNormal3i")
-
-{-# NOINLINE glNormal3iFunPtr #-}
-
-glNormal3iv :: MonadIO m => Ptr GLint -> m ()
-glNormal3iv = ffiPtrintIOV glNormal3ivFunPtr
-
-glNormal3ivFunPtr :: FunPtr (Ptr GLint -> IO ())
-glNormal3ivFunPtr = unsafePerformIO (getProcAddress "glNormal3iv")
-
-{-# NOINLINE glNormal3ivFunPtr #-}
-
-glNormal3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()
-glNormal3s = ffishortshortshortIOV glNormal3sFunPtr
-
-glNormal3sFunPtr :: FunPtr (GLshort -> GLshort -> GLshort -> IO ())
-glNormal3sFunPtr = unsafePerformIO (getProcAddress "glNormal3s")
-
-{-# NOINLINE glNormal3sFunPtr #-}
-
-glNormal3sv :: MonadIO m => Ptr GLshort -> m ()
-glNormal3sv = ffiPtrshortIOV glNormal3svFunPtr
-
-glNormal3svFunPtr :: FunPtr (Ptr GLshort -> IO ())
-glNormal3svFunPtr = unsafePerformIO (getProcAddress "glNormal3sv")
-
-{-# NOINLINE glNormal3svFunPtr #-}
-
-glNormalPointer :: MonadIO m => GLenum -> GLsizei -> Ptr () -> m ()
-glNormalPointer = ffienumsizeiPtrVIOV glNormalPointerFunPtr
-
-glNormalPointerFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr () -> IO ())
-glNormalPointerFunPtr = unsafePerformIO (getProcAddress "glNormalPointer")
-
-{-# NOINLINE glNormalPointerFunPtr #-}
-
-glOrtho :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
-glOrtho = ffidoubledoubledoubledoubledoubledoubleIOV glOrthoFunPtr
-
-glOrthoFunPtr :: FunPtr (GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
-glOrthoFunPtr = unsafePerformIO (getProcAddress "glOrtho")
-
-{-# NOINLINE glOrthoFunPtr #-}
-
-glPassThrough :: MonadIO m => GLfloat -> m ()
-glPassThrough = ffifloatIOV glPassThroughFunPtr
-
-glPassThroughFunPtr :: FunPtr (GLfloat -> IO ())
-glPassThroughFunPtr = unsafePerformIO (getProcAddress "glPassThrough")
-
-{-# NOINLINE glPassThroughFunPtr #-}
-
-glPixelMapfv :: MonadIO m => GLenum -> GLsizei -> Ptr GLfloat -> m ()
-glPixelMapfv = ffienumsizeiPtrfloatIOV glPixelMapfvFunPtr
-
-glPixelMapfvFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr GLfloat -> IO ())
-glPixelMapfvFunPtr = unsafePerformIO (getProcAddress "glPixelMapfv")
-
-{-# NOINLINE glPixelMapfvFunPtr #-}
-
-glPixelMapuiv :: MonadIO m => GLenum -> GLsizei -> Ptr GLuint -> m ()
-glPixelMapuiv = ffienumsizeiPtruintIOV glPixelMapuivFunPtr
-
-glPixelMapuivFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr GLuint -> IO ())
-glPixelMapuivFunPtr = unsafePerformIO (getProcAddress "glPixelMapuiv")
-
-{-# NOINLINE glPixelMapuivFunPtr #-}
-
-glPixelMapusv :: MonadIO m => GLenum -> GLsizei -> Ptr GLushort -> m ()
-glPixelMapusv = ffienumsizeiPtrushortIOV glPixelMapusvFunPtr
-
-glPixelMapusvFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr GLushort -> IO ())
-glPixelMapusvFunPtr = unsafePerformIO (getProcAddress "glPixelMapusv")
-
-{-# NOINLINE glPixelMapusvFunPtr #-}
-
-glPixelTransferf :: MonadIO m => GLenum -> GLfloat -> m ()
-glPixelTransferf = ffienumfloatIOV glPixelTransferfFunPtr
-
-glPixelTransferfFunPtr :: FunPtr (GLenum -> GLfloat -> IO ())
-glPixelTransferfFunPtr = unsafePerformIO (getProcAddress "glPixelTransferf")
-
-{-# NOINLINE glPixelTransferfFunPtr #-}
-
-glPixelTransferi :: MonadIO m => GLenum -> GLint -> m ()
-glPixelTransferi = ffienumintIOV glPixelTransferiFunPtr
-
-glPixelTransferiFunPtr :: FunPtr (GLenum -> GLint -> IO ())
-glPixelTransferiFunPtr = unsafePerformIO (getProcAddress "glPixelTransferi")
-
-{-# NOINLINE glPixelTransferiFunPtr #-}
-
-glPixelZoom :: MonadIO m => GLfloat -> GLfloat -> m ()
-glPixelZoom = ffifloatfloatIOV glPixelZoomFunPtr
-
-glPixelZoomFunPtr :: FunPtr (GLfloat -> GLfloat -> IO ())
-glPixelZoomFunPtr = unsafePerformIO (getProcAddress "glPixelZoom")
-
-{-# NOINLINE glPixelZoomFunPtr #-}
-
-glPolygonStipple :: MonadIO m => Ptr GLubyte -> m ()
-glPolygonStipple = ffiPtrubyteIOV glPolygonStippleFunPtr
-
-glPolygonStippleFunPtr :: FunPtr (Ptr GLubyte -> IO ())
-glPolygonStippleFunPtr = unsafePerformIO (getProcAddress "glPolygonStipple")
-
-{-# NOINLINE glPolygonStippleFunPtr #-}
-
-glPopAttrib :: MonadIO m => m ()
-glPopAttrib = ffiIOV glPopAttribFunPtr
-
-glPopAttribFunPtr :: FunPtr (IO ())
-glPopAttribFunPtr = unsafePerformIO (getProcAddress "glPopAttrib")
-
-{-# NOINLINE glPopAttribFunPtr #-}
-
-glPopClientAttrib :: MonadIO m => m ()
-glPopClientAttrib = ffiIOV glPopClientAttribFunPtr
-
-glPopClientAttribFunPtr :: FunPtr (IO ())
-glPopClientAttribFunPtr = unsafePerformIO (getProcAddress "glPopClientAttrib")
-
-{-# NOINLINE glPopClientAttribFunPtr #-}
-
-glPopMatrix :: MonadIO m => m ()
-glPopMatrix = ffiIOV glPopMatrixFunPtr
-
-glPopMatrixFunPtr :: FunPtr (IO ())
-glPopMatrixFunPtr = unsafePerformIO (getProcAddress "glPopMatrix")
-
-{-# NOINLINE glPopMatrixFunPtr #-}
-
-glPopName :: MonadIO m => m ()
-glPopName = ffiIOV glPopNameFunPtr
-
-glPopNameFunPtr :: FunPtr (IO ())
-glPopNameFunPtr = unsafePerformIO (getProcAddress "glPopName")
-
-{-# NOINLINE glPopNameFunPtr #-}
-
-glPrioritizeTextures :: MonadIO m => GLsizei -> Ptr GLuint -> Ptr GLfloat -> m ()
-glPrioritizeTextures = ffisizeiPtruintPtrfloatIOV glPrioritizeTexturesFunPtr
-
-glPrioritizeTexturesFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> Ptr GLfloat -> IO ())
-glPrioritizeTexturesFunPtr = unsafePerformIO (getProcAddress "glPrioritizeTextures")
-
-{-# NOINLINE glPrioritizeTexturesFunPtr #-}
-
-glPushAttrib :: MonadIO m => GLbitfield -> m ()
-glPushAttrib = ffibitfieldIOV glPushAttribFunPtr
-
-glPushAttribFunPtr :: FunPtr (GLbitfield -> IO ())
-glPushAttribFunPtr = unsafePerformIO (getProcAddress "glPushAttrib")
-
-{-# NOINLINE glPushAttribFunPtr #-}
-
-glPushClientAttrib :: MonadIO m => GLbitfield -> m ()
-glPushClientAttrib = ffibitfieldIOV glPushClientAttribFunPtr
-
-glPushClientAttribFunPtr :: FunPtr (GLbitfield -> IO ())
-glPushClientAttribFunPtr = unsafePerformIO (getProcAddress "glPushClientAttrib")
-
-{-# NOINLINE glPushClientAttribFunPtr #-}
-
-glPushMatrix :: MonadIO m => m ()
-glPushMatrix = ffiIOV glPushMatrixFunPtr
-
-glPushMatrixFunPtr :: FunPtr (IO ())
-glPushMatrixFunPtr = unsafePerformIO (getProcAddress "glPushMatrix")
-
-{-# NOINLINE glPushMatrixFunPtr #-}
-
-glPushName :: MonadIO m => GLuint -> m ()
-glPushName = ffiuintIOV glPushNameFunPtr
-
-glPushNameFunPtr :: FunPtr (GLuint -> IO ())
-glPushNameFunPtr = unsafePerformIO (getProcAddress "glPushName")
-
-{-# NOINLINE glPushNameFunPtr #-}
-
-glRasterPos2d :: MonadIO m => GLdouble -> GLdouble -> m ()
-glRasterPos2d = ffidoubledoubleIOV glRasterPos2dFunPtr
-
-glRasterPos2dFunPtr :: FunPtr (GLdouble -> GLdouble -> IO ())
-glRasterPos2dFunPtr = unsafePerformIO (getProcAddress "glRasterPos2d")
-
-{-# NOINLINE glRasterPos2dFunPtr #-}
-
-glRasterPos2dv :: MonadIO m => Ptr GLdouble -> m ()
-glRasterPos2dv = ffiPtrdoubleIOV glRasterPos2dvFunPtr
-
-glRasterPos2dvFunPtr :: FunPtr (Ptr GLdouble -> IO ())
-glRasterPos2dvFunPtr = unsafePerformIO (getProcAddress "glRasterPos2dv")
-
-{-# NOINLINE glRasterPos2dvFunPtr #-}
-
-glRasterPos2f :: MonadIO m => GLfloat -> GLfloat -> m ()
-glRasterPos2f = ffifloatfloatIOV glRasterPos2fFunPtr
-
-glRasterPos2fFunPtr :: FunPtr (GLfloat -> GLfloat -> IO ())
-glRasterPos2fFunPtr = unsafePerformIO (getProcAddress "glRasterPos2f")
-
-{-# NOINLINE glRasterPos2fFunPtr #-}
-
-glRasterPos2fv :: MonadIO m => Ptr GLfloat -> m ()
-glRasterPos2fv = ffiPtrfloatIOV glRasterPos2fvFunPtr
-
-glRasterPos2fvFunPtr :: FunPtr (Ptr GLfloat -> IO ())
-glRasterPos2fvFunPtr = unsafePerformIO (getProcAddress "glRasterPos2fv")
-
-{-# NOINLINE glRasterPos2fvFunPtr #-}
-
-glRasterPos2i :: MonadIO m => GLint -> GLint -> m ()
-glRasterPos2i = ffiintintIOV glRasterPos2iFunPtr
-
-glRasterPos2iFunPtr :: FunPtr (GLint -> GLint -> IO ())
-glRasterPos2iFunPtr = unsafePerformIO (getProcAddress "glRasterPos2i")
-
-{-# NOINLINE glRasterPos2iFunPtr #-}
-
-glRasterPos2iv :: MonadIO m => Ptr GLint -> m ()
-glRasterPos2iv = ffiPtrintIOV glRasterPos2ivFunPtr
-
-glRasterPos2ivFunPtr :: FunPtr (Ptr GLint -> IO ())
-glRasterPos2ivFunPtr = unsafePerformIO (getProcAddress "glRasterPos2iv")
-
-{-# NOINLINE glRasterPos2ivFunPtr #-}
-
-glRasterPos2s :: MonadIO m => GLshort -> GLshort -> m ()
-glRasterPos2s = ffishortshortIOV glRasterPos2sFunPtr
-
-glRasterPos2sFunPtr :: FunPtr (GLshort -> GLshort -> IO ())
-glRasterPos2sFunPtr = unsafePerformIO (getProcAddress "glRasterPos2s")
-
-{-# NOINLINE glRasterPos2sFunPtr #-}
-
-glRasterPos2sv :: MonadIO m => Ptr GLshort -> m ()
-glRasterPos2sv = ffiPtrshortIOV glRasterPos2svFunPtr
-
-glRasterPos2svFunPtr :: FunPtr (Ptr GLshort -> IO ())
-glRasterPos2svFunPtr = unsafePerformIO (getProcAddress "glRasterPos2sv")
-
-{-# NOINLINE glRasterPos2svFunPtr #-}
-
-glRasterPos3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()
-glRasterPos3d = ffidoubledoubledoubleIOV glRasterPos3dFunPtr
-
-glRasterPos3dFunPtr :: FunPtr (GLdouble -> GLdouble -> GLdouble -> IO ())
-glRasterPos3dFunPtr = unsafePerformIO (getProcAddress "glRasterPos3d")
-
-{-# NOINLINE glRasterPos3dFunPtr #-}
-
-glRasterPos3dv :: MonadIO m => Ptr GLdouble -> m ()
-glRasterPos3dv = ffiPtrdoubleIOV glRasterPos3dvFunPtr
-
-glRasterPos3dvFunPtr :: FunPtr (Ptr GLdouble -> IO ())
-glRasterPos3dvFunPtr = unsafePerformIO (getProcAddress "glRasterPos3dv")
-
-{-# NOINLINE glRasterPos3dvFunPtr #-}
-
-glRasterPos3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()
-glRasterPos3f = ffifloatfloatfloatIOV glRasterPos3fFunPtr
-
-glRasterPos3fFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> IO ())
-glRasterPos3fFunPtr = unsafePerformIO (getProcAddress "glRasterPos3f")
-
-{-# NOINLINE glRasterPos3fFunPtr #-}
-
-glRasterPos3fv :: MonadIO m => Ptr GLfloat -> m ()
-glRasterPos3fv = ffiPtrfloatIOV glRasterPos3fvFunPtr
-
-glRasterPos3fvFunPtr :: FunPtr (Ptr GLfloat -> IO ())
-glRasterPos3fvFunPtr = unsafePerformIO (getProcAddress "glRasterPos3fv")
-
-{-# NOINLINE glRasterPos3fvFunPtr #-}
-
-glRasterPos3i :: MonadIO m => GLint -> GLint -> GLint -> m ()
-glRasterPos3i = ffiintintintIOV glRasterPos3iFunPtr
-
-glRasterPos3iFunPtr :: FunPtr (GLint -> GLint -> GLint -> IO ())
-glRasterPos3iFunPtr = unsafePerformIO (getProcAddress "glRasterPos3i")
-
-{-# NOINLINE glRasterPos3iFunPtr #-}
-
-glRasterPos3iv :: MonadIO m => Ptr GLint -> m ()
-glRasterPos3iv = ffiPtrintIOV glRasterPos3ivFunPtr
-
-glRasterPos3ivFunPtr :: FunPtr (Ptr GLint -> IO ())
-glRasterPos3ivFunPtr = unsafePerformIO (getProcAddress "glRasterPos3iv")
-
-{-# NOINLINE glRasterPos3ivFunPtr #-}
-
-glRasterPos3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()
-glRasterPos3s = ffishortshortshortIOV glRasterPos3sFunPtr
-
-glRasterPos3sFunPtr :: FunPtr (GLshort -> GLshort -> GLshort -> IO ())
-glRasterPos3sFunPtr = unsafePerformIO (getProcAddress "glRasterPos3s")
-
-{-# NOINLINE glRasterPos3sFunPtr #-}
-
-glRasterPos3sv :: MonadIO m => Ptr GLshort -> m ()
-glRasterPos3sv = ffiPtrshortIOV glRasterPos3svFunPtr
-
-glRasterPos3svFunPtr :: FunPtr (Ptr GLshort -> IO ())
-glRasterPos3svFunPtr = unsafePerformIO (getProcAddress "glRasterPos3sv")
-
-{-# NOINLINE glRasterPos3svFunPtr #-}
-
-glRasterPos4d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
-glRasterPos4d = ffidoubledoubledoubledoubleIOV glRasterPos4dFunPtr
-
-glRasterPos4dFunPtr :: FunPtr (GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
-glRasterPos4dFunPtr = unsafePerformIO (getProcAddress "glRasterPos4d")
-
-{-# NOINLINE glRasterPos4dFunPtr #-}
-
-glRasterPos4dv :: MonadIO m => Ptr GLdouble -> m ()
-glRasterPos4dv = ffiPtrdoubleIOV glRasterPos4dvFunPtr
-
-glRasterPos4dvFunPtr :: FunPtr (Ptr GLdouble -> IO ())
-glRasterPos4dvFunPtr = unsafePerformIO (getProcAddress "glRasterPos4dv")
-
-{-# NOINLINE glRasterPos4dvFunPtr #-}
-
-glRasterPos4f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
-glRasterPos4f = ffifloatfloatfloatfloatIOV glRasterPos4fFunPtr
-
-glRasterPos4fFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
-glRasterPos4fFunPtr = unsafePerformIO (getProcAddress "glRasterPos4f")
-
-{-# NOINLINE glRasterPos4fFunPtr #-}
-
-glRasterPos4fv :: MonadIO m => Ptr GLfloat -> m ()
-glRasterPos4fv = ffiPtrfloatIOV glRasterPos4fvFunPtr
-
-glRasterPos4fvFunPtr :: FunPtr (Ptr GLfloat -> IO ())
-glRasterPos4fvFunPtr = unsafePerformIO (getProcAddress "glRasterPos4fv")
-
-{-# NOINLINE glRasterPos4fvFunPtr #-}
-
-glRasterPos4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()
-glRasterPos4i = ffiintintintintIOV glRasterPos4iFunPtr
-
-glRasterPos4iFunPtr :: FunPtr (GLint -> GLint -> GLint -> GLint -> IO ())
-glRasterPos4iFunPtr = unsafePerformIO (getProcAddress "glRasterPos4i")
-
-{-# NOINLINE glRasterPos4iFunPtr #-}
-
-glRasterPos4iv :: MonadIO m => Ptr GLint -> m ()
-glRasterPos4iv = ffiPtrintIOV glRasterPos4ivFunPtr
-
-glRasterPos4ivFunPtr :: FunPtr (Ptr GLint -> IO ())
-glRasterPos4ivFunPtr = unsafePerformIO (getProcAddress "glRasterPos4iv")
-
-{-# NOINLINE glRasterPos4ivFunPtr #-}
-
-glRasterPos4s :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()
-glRasterPos4s = ffishortshortshortshortIOV glRasterPos4sFunPtr
-
-glRasterPos4sFunPtr :: FunPtr (GLshort -> GLshort -> GLshort -> GLshort -> IO ())
-glRasterPos4sFunPtr = unsafePerformIO (getProcAddress "glRasterPos4s")
-
-{-# NOINLINE glRasterPos4sFunPtr #-}
-
-glRasterPos4sv :: MonadIO m => Ptr GLshort -> m ()
-glRasterPos4sv = ffiPtrshortIOV glRasterPos4svFunPtr
-
-glRasterPos4svFunPtr :: FunPtr (Ptr GLshort -> IO ())
-glRasterPos4svFunPtr = unsafePerformIO (getProcAddress "glRasterPos4sv")
-
-{-# NOINLINE glRasterPos4svFunPtr #-}
-
-glRectd :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
-glRectd = ffidoubledoubledoubledoubleIOV glRectdFunPtr
-
-glRectdFunPtr :: FunPtr (GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
-glRectdFunPtr = unsafePerformIO (getProcAddress "glRectd")
-
-{-# NOINLINE glRectdFunPtr #-}
-
-glRectdv :: MonadIO m => Ptr GLdouble -> Ptr GLdouble -> m ()
-glRectdv = ffiPtrdoublePtrdoubleIOV glRectdvFunPtr
-
-glRectdvFunPtr :: FunPtr (Ptr GLdouble -> Ptr GLdouble -> IO ())
-glRectdvFunPtr = unsafePerformIO (getProcAddress "glRectdv")
-
-{-# NOINLINE glRectdvFunPtr #-}
-
-glRectf :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
-glRectf = ffifloatfloatfloatfloatIOV glRectfFunPtr
-
-glRectfFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
-glRectfFunPtr = unsafePerformIO (getProcAddress "glRectf")
-
-{-# NOINLINE glRectfFunPtr #-}
-
-glRectfv :: MonadIO m => Ptr GLfloat -> Ptr GLfloat -> m ()
-glRectfv = ffiPtrfloatPtrfloatIOV glRectfvFunPtr
-
-glRectfvFunPtr :: FunPtr (Ptr GLfloat -> Ptr GLfloat -> IO ())
-glRectfvFunPtr = unsafePerformIO (getProcAddress "glRectfv")
-
-{-# NOINLINE glRectfvFunPtr #-}
-
-glRecti :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()
-glRecti = ffiintintintintIOV glRectiFunPtr
-
-glRectiFunPtr :: FunPtr (GLint -> GLint -> GLint -> GLint -> IO ())
-glRectiFunPtr = unsafePerformIO (getProcAddress "glRecti")
-
-{-# NOINLINE glRectiFunPtr #-}
-
-glRectiv :: MonadIO m => Ptr GLint -> Ptr GLint -> m ()
-glRectiv = ffiPtrintPtrintIOV glRectivFunPtr
-
-glRectivFunPtr :: FunPtr (Ptr GLint -> Ptr GLint -> IO ())
-glRectivFunPtr = unsafePerformIO (getProcAddress "glRectiv")
-
-{-# NOINLINE glRectivFunPtr #-}
-
-glRects :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()
-glRects = ffishortshortshortshortIOV glRectsFunPtr
-
-glRectsFunPtr :: FunPtr (GLshort -> GLshort -> GLshort -> GLshort -> IO ())
-glRectsFunPtr = unsafePerformIO (getProcAddress "glRects")
-
-{-# NOINLINE glRectsFunPtr #-}
-
-glRectsv :: MonadIO m => Ptr GLshort -> Ptr GLshort -> m ()
-glRectsv = ffiPtrshortPtrshortIOV glRectsvFunPtr
-
-glRectsvFunPtr :: FunPtr (Ptr GLshort -> Ptr GLshort -> IO ())
-glRectsvFunPtr = unsafePerformIO (getProcAddress "glRectsv")
-
-{-# NOINLINE glRectsvFunPtr #-}
-
-glRenderMode :: MonadIO m => GLenum -> m GLint
-glRenderMode = ffienumIOint glRenderModeFunPtr
-
-glRenderModeFunPtr :: FunPtr (GLenum -> IO GLint)
-glRenderModeFunPtr = unsafePerformIO (getProcAddress "glRenderMode")
-
-{-# NOINLINE glRenderModeFunPtr #-}
-
-glRotated :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
-glRotated = ffidoubledoubledoubledoubleIOV glRotatedFunPtr
-
-glRotatedFunPtr :: FunPtr (GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
-glRotatedFunPtr = unsafePerformIO (getProcAddress "glRotated")
-
-{-# NOINLINE glRotatedFunPtr #-}
-
-glRotatef :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
-glRotatef = ffifloatfloatfloatfloatIOV glRotatefFunPtr
-
-glRotatefFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
-glRotatefFunPtr = unsafePerformIO (getProcAddress "glRotatef")
-
-{-# NOINLINE glRotatefFunPtr #-}
-
-glScaled :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()
-glScaled = ffidoubledoubledoubleIOV glScaledFunPtr
-
-glScaledFunPtr :: FunPtr (GLdouble -> GLdouble -> GLdouble -> IO ())
-glScaledFunPtr = unsafePerformIO (getProcAddress "glScaled")
-
-{-# NOINLINE glScaledFunPtr #-}
-
-glScalef :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()
-glScalef = ffifloatfloatfloatIOV glScalefFunPtr
-
-glScalefFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> IO ())
-glScalefFunPtr = unsafePerformIO (getProcAddress "glScalef")
-
-{-# NOINLINE glScalefFunPtr #-}
-
-glSecondaryColor3b :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> m ()
-glSecondaryColor3b = ffibytebytebyteIOV glSecondaryColor3bFunPtr
-
-glSecondaryColor3bFunPtr :: FunPtr (GLbyte -> GLbyte -> GLbyte -> IO ())
-glSecondaryColor3bFunPtr = unsafePerformIO (getProcAddress "glSecondaryColor3b")
-
-{-# NOINLINE glSecondaryColor3bFunPtr #-}
-
-glSecondaryColor3bv :: MonadIO m => Ptr GLbyte -> m ()
-glSecondaryColor3bv = ffiPtrbyteIOV glSecondaryColor3bvFunPtr
-
-glSecondaryColor3bvFunPtr :: FunPtr (Ptr GLbyte -> IO ())
-glSecondaryColor3bvFunPtr = unsafePerformIO (getProcAddress "glSecondaryColor3bv")
-
-{-# NOINLINE glSecondaryColor3bvFunPtr #-}
-
-glSecondaryColor3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()
-glSecondaryColor3d = ffidoubledoubledoubleIOV glSecondaryColor3dFunPtr
-
-glSecondaryColor3dFunPtr :: FunPtr (GLdouble -> GLdouble -> GLdouble -> IO ())
-glSecondaryColor3dFunPtr = unsafePerformIO (getProcAddress "glSecondaryColor3d")
-
-{-# NOINLINE glSecondaryColor3dFunPtr #-}
-
-glSecondaryColor3dv :: MonadIO m => Ptr GLdouble -> m ()
-glSecondaryColor3dv = ffiPtrdoubleIOV glSecondaryColor3dvFunPtr
-
-glSecondaryColor3dvFunPtr :: FunPtr (Ptr GLdouble -> IO ())
-glSecondaryColor3dvFunPtr = unsafePerformIO (getProcAddress "glSecondaryColor3dv")
-
-{-# NOINLINE glSecondaryColor3dvFunPtr #-}
-
-glSecondaryColor3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()
-glSecondaryColor3f = ffifloatfloatfloatIOV glSecondaryColor3fFunPtr
-
-glSecondaryColor3fFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> IO ())
-glSecondaryColor3fFunPtr = unsafePerformIO (getProcAddress "glSecondaryColor3f")
-
-{-# NOINLINE glSecondaryColor3fFunPtr #-}
-
-glSecondaryColor3fv :: MonadIO m => Ptr GLfloat -> m ()
-glSecondaryColor3fv = ffiPtrfloatIOV glSecondaryColor3fvFunPtr
-
-glSecondaryColor3fvFunPtr :: FunPtr (Ptr GLfloat -> IO ())
-glSecondaryColor3fvFunPtr = unsafePerformIO (getProcAddress "glSecondaryColor3fv")
-
-{-# NOINLINE glSecondaryColor3fvFunPtr #-}
-
-glSecondaryColor3i :: MonadIO m => GLint -> GLint -> GLint -> m ()
-glSecondaryColor3i = ffiintintintIOV glSecondaryColor3iFunPtr
-
-glSecondaryColor3iFunPtr :: FunPtr (GLint -> GLint -> GLint -> IO ())
-glSecondaryColor3iFunPtr = unsafePerformIO (getProcAddress "glSecondaryColor3i")
-
-{-# NOINLINE glSecondaryColor3iFunPtr #-}
-
-glSecondaryColor3iv :: MonadIO m => Ptr GLint -> m ()
-glSecondaryColor3iv = ffiPtrintIOV glSecondaryColor3ivFunPtr
-
-glSecondaryColor3ivFunPtr :: FunPtr (Ptr GLint -> IO ())
-glSecondaryColor3ivFunPtr = unsafePerformIO (getProcAddress "glSecondaryColor3iv")
-
-{-# NOINLINE glSecondaryColor3ivFunPtr #-}
-
-glSecondaryColor3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()
-glSecondaryColor3s = ffishortshortshortIOV glSecondaryColor3sFunPtr
-
-glSecondaryColor3sFunPtr :: FunPtr (GLshort -> GLshort -> GLshort -> IO ())
-glSecondaryColor3sFunPtr = unsafePerformIO (getProcAddress "glSecondaryColor3s")
-
-{-# NOINLINE glSecondaryColor3sFunPtr #-}
-
-glSecondaryColor3sv :: MonadIO m => Ptr GLshort -> m ()
-glSecondaryColor3sv = ffiPtrshortIOV glSecondaryColor3svFunPtr
-
-glSecondaryColor3svFunPtr :: FunPtr (Ptr GLshort -> IO ())
-glSecondaryColor3svFunPtr = unsafePerformIO (getProcAddress "glSecondaryColor3sv")
-
-{-# NOINLINE glSecondaryColor3svFunPtr #-}
-
-glSecondaryColor3ub :: MonadIO m => GLubyte -> GLubyte -> GLubyte -> m ()
-glSecondaryColor3ub = ffiubyteubyteubyteIOV glSecondaryColor3ubFunPtr
-
-glSecondaryColor3ubFunPtr :: FunPtr (GLubyte -> GLubyte -> GLubyte -> IO ())
-glSecondaryColor3ubFunPtr = unsafePerformIO (getProcAddress "glSecondaryColor3ub")
-
-{-# NOINLINE glSecondaryColor3ubFunPtr #-}
-
-glSecondaryColor3ubv :: MonadIO m => Ptr GLubyte -> m ()
-glSecondaryColor3ubv = ffiPtrubyteIOV glSecondaryColor3ubvFunPtr
-
-glSecondaryColor3ubvFunPtr :: FunPtr (Ptr GLubyte -> IO ())
-glSecondaryColor3ubvFunPtr = unsafePerformIO (getProcAddress "glSecondaryColor3ubv")
-
-{-# NOINLINE glSecondaryColor3ubvFunPtr #-}
-
-glSecondaryColor3ui :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()
-glSecondaryColor3ui = ffiuintuintuintIOV glSecondaryColor3uiFunPtr
-
-glSecondaryColor3uiFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> IO ())
-glSecondaryColor3uiFunPtr = unsafePerformIO (getProcAddress "glSecondaryColor3ui")
-
-{-# NOINLINE glSecondaryColor3uiFunPtr #-}
-
-glSecondaryColor3uiv :: MonadIO m => Ptr GLuint -> m ()
-glSecondaryColor3uiv = ffiPtruintIOV glSecondaryColor3uivFunPtr
-
-glSecondaryColor3uivFunPtr :: FunPtr (Ptr GLuint -> IO ())
-glSecondaryColor3uivFunPtr = unsafePerformIO (getProcAddress "glSecondaryColor3uiv")
-
-{-# NOINLINE glSecondaryColor3uivFunPtr #-}
-
-glSecondaryColor3us :: MonadIO m => GLushort -> GLushort -> GLushort -> m ()
-glSecondaryColor3us = ffiushortushortushortIOV glSecondaryColor3usFunPtr
-
-glSecondaryColor3usFunPtr :: FunPtr (GLushort -> GLushort -> GLushort -> IO ())
-glSecondaryColor3usFunPtr = unsafePerformIO (getProcAddress "glSecondaryColor3us")
-
-{-# NOINLINE glSecondaryColor3usFunPtr #-}
-
-glSecondaryColor3usv :: MonadIO m => Ptr GLushort -> m ()
-glSecondaryColor3usv = ffiPtrushortIOV glSecondaryColor3usvFunPtr
-
-glSecondaryColor3usvFunPtr :: FunPtr (Ptr GLushort -> IO ())
-glSecondaryColor3usvFunPtr = unsafePerformIO (getProcAddress "glSecondaryColor3usv")
-
-{-# NOINLINE glSecondaryColor3usvFunPtr #-}
-
-glSecondaryColorPointer :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr () -> m ()
-glSecondaryColorPointer = ffiintenumsizeiPtrVIOV glSecondaryColorPointerFunPtr
-
-glSecondaryColorPointerFunPtr :: FunPtr (GLint -> GLenum -> GLsizei -> Ptr () -> IO ())
-glSecondaryColorPointerFunPtr = unsafePerformIO (getProcAddress "glSecondaryColorPointer")
-
-{-# NOINLINE glSecondaryColorPointerFunPtr #-}
-
-glSelectBuffer :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
-glSelectBuffer = ffisizeiPtruintIOV glSelectBufferFunPtr
-
-glSelectBufferFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
-glSelectBufferFunPtr = unsafePerformIO (getProcAddress "glSelectBuffer")
-
-{-# NOINLINE glSelectBufferFunPtr #-}
-
-glShadeModel :: MonadIO m => GLenum -> m ()
-glShadeModel = ffienumIOV glShadeModelFunPtr
-
-glShadeModelFunPtr :: FunPtr (GLenum -> IO ())
-glShadeModelFunPtr = unsafePerformIO (getProcAddress "glShadeModel")
-
-{-# NOINLINE glShadeModelFunPtr #-}
-
-glTexCoord1d :: MonadIO m => GLdouble -> m ()
-glTexCoord1d = ffidoubleIOV glTexCoord1dFunPtr
-
-glTexCoord1dFunPtr :: FunPtr (GLdouble -> IO ())
-glTexCoord1dFunPtr = unsafePerformIO (getProcAddress "glTexCoord1d")
-
-{-# NOINLINE glTexCoord1dFunPtr #-}
-
-glTexCoord1dv :: MonadIO m => Ptr GLdouble -> m ()
-glTexCoord1dv = ffiPtrdoubleIOV glTexCoord1dvFunPtr
-
-glTexCoord1dvFunPtr :: FunPtr (Ptr GLdouble -> IO ())
-glTexCoord1dvFunPtr = unsafePerformIO (getProcAddress "glTexCoord1dv")
-
-{-# NOINLINE glTexCoord1dvFunPtr #-}
-
-glTexCoord1f :: MonadIO m => GLfloat -> m ()
-glTexCoord1f = ffifloatIOV glTexCoord1fFunPtr
-
-glTexCoord1fFunPtr :: FunPtr (GLfloat -> IO ())
-glTexCoord1fFunPtr = unsafePerformIO (getProcAddress "glTexCoord1f")
-
-{-# NOINLINE glTexCoord1fFunPtr #-}
-
-glTexCoord1fv :: MonadIO m => Ptr GLfloat -> m ()
-glTexCoord1fv = ffiPtrfloatIOV glTexCoord1fvFunPtr
-
-glTexCoord1fvFunPtr :: FunPtr (Ptr GLfloat -> IO ())
-glTexCoord1fvFunPtr = unsafePerformIO (getProcAddress "glTexCoord1fv")
-
-{-# NOINLINE glTexCoord1fvFunPtr #-}
-
-glTexCoord1i :: MonadIO m => GLint -> m ()
-glTexCoord1i = ffiintIOV glTexCoord1iFunPtr
-
-glTexCoord1iFunPtr :: FunPtr (GLint -> IO ())
-glTexCoord1iFunPtr = unsafePerformIO (getProcAddress "glTexCoord1i")
-
-{-# NOINLINE glTexCoord1iFunPtr #-}
-
-glTexCoord1iv :: MonadIO m => Ptr GLint -> m ()
-glTexCoord1iv = ffiPtrintIOV glTexCoord1ivFunPtr
-
-glTexCoord1ivFunPtr :: FunPtr (Ptr GLint -> IO ())
-glTexCoord1ivFunPtr = unsafePerformIO (getProcAddress "glTexCoord1iv")
-
-{-# NOINLINE glTexCoord1ivFunPtr #-}
-
-glTexCoord1s :: MonadIO m => GLshort -> m ()
-glTexCoord1s = ffishortIOV glTexCoord1sFunPtr
-
-glTexCoord1sFunPtr :: FunPtr (GLshort -> IO ())
-glTexCoord1sFunPtr = unsafePerformIO (getProcAddress "glTexCoord1s")
-
-{-# NOINLINE glTexCoord1sFunPtr #-}
-
-glTexCoord1sv :: MonadIO m => Ptr GLshort -> m ()
-glTexCoord1sv = ffiPtrshortIOV glTexCoord1svFunPtr
-
-glTexCoord1svFunPtr :: FunPtr (Ptr GLshort -> IO ())
-glTexCoord1svFunPtr = unsafePerformIO (getProcAddress "glTexCoord1sv")
-
-{-# NOINLINE glTexCoord1svFunPtr #-}
-
-glTexCoord2d :: MonadIO m => GLdouble -> GLdouble -> m ()
-glTexCoord2d = ffidoubledoubleIOV glTexCoord2dFunPtr
-
-glTexCoord2dFunPtr :: FunPtr (GLdouble -> GLdouble -> IO ())
-glTexCoord2dFunPtr = unsafePerformIO (getProcAddress "glTexCoord2d")
-
-{-# NOINLINE glTexCoord2dFunPtr #-}
-
-glTexCoord2dv :: MonadIO m => Ptr GLdouble -> m ()
-glTexCoord2dv = ffiPtrdoubleIOV glTexCoord2dvFunPtr
-
-glTexCoord2dvFunPtr :: FunPtr (Ptr GLdouble -> IO ())
-glTexCoord2dvFunPtr = unsafePerformIO (getProcAddress "glTexCoord2dv")
-
-{-# NOINLINE glTexCoord2dvFunPtr #-}
-
-glTexCoord2f :: MonadIO m => GLfloat -> GLfloat -> m ()
-glTexCoord2f = ffifloatfloatIOV glTexCoord2fFunPtr
-
-glTexCoord2fFunPtr :: FunPtr (GLfloat -> GLfloat -> IO ())
-glTexCoord2fFunPtr = unsafePerformIO (getProcAddress "glTexCoord2f")
-
-{-# NOINLINE glTexCoord2fFunPtr #-}
-
-glTexCoord2fv :: MonadIO m => Ptr GLfloat -> m ()
-glTexCoord2fv = ffiPtrfloatIOV glTexCoord2fvFunPtr
-
-glTexCoord2fvFunPtr :: FunPtr (Ptr GLfloat -> IO ())
-glTexCoord2fvFunPtr = unsafePerformIO (getProcAddress "glTexCoord2fv")
-
-{-# NOINLINE glTexCoord2fvFunPtr #-}
-
-glTexCoord2i :: MonadIO m => GLint -> GLint -> m ()
-glTexCoord2i = ffiintintIOV glTexCoord2iFunPtr
-
-glTexCoord2iFunPtr :: FunPtr (GLint -> GLint -> IO ())
-glTexCoord2iFunPtr = unsafePerformIO (getProcAddress "glTexCoord2i")
-
-{-# NOINLINE glTexCoord2iFunPtr #-}
-
-glTexCoord2iv :: MonadIO m => Ptr GLint -> m ()
-glTexCoord2iv = ffiPtrintIOV glTexCoord2ivFunPtr
-
-glTexCoord2ivFunPtr :: FunPtr (Ptr GLint -> IO ())
-glTexCoord2ivFunPtr = unsafePerformIO (getProcAddress "glTexCoord2iv")
-
-{-# NOINLINE glTexCoord2ivFunPtr #-}
-
-glTexCoord2s :: MonadIO m => GLshort -> GLshort -> m ()
-glTexCoord2s = ffishortshortIOV glTexCoord2sFunPtr
-
-glTexCoord2sFunPtr :: FunPtr (GLshort -> GLshort -> IO ())
-glTexCoord2sFunPtr = unsafePerformIO (getProcAddress "glTexCoord2s")
-
-{-# NOINLINE glTexCoord2sFunPtr #-}
-
-glTexCoord2sv :: MonadIO m => Ptr GLshort -> m ()
-glTexCoord2sv = ffiPtrshortIOV glTexCoord2svFunPtr
-
-glTexCoord2svFunPtr :: FunPtr (Ptr GLshort -> IO ())
-glTexCoord2svFunPtr = unsafePerformIO (getProcAddress "glTexCoord2sv")
-
-{-# NOINLINE glTexCoord2svFunPtr #-}
-
-glTexCoord3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()
-glTexCoord3d = ffidoubledoubledoubleIOV glTexCoord3dFunPtr
-
-glTexCoord3dFunPtr :: FunPtr (GLdouble -> GLdouble -> GLdouble -> IO ())
-glTexCoord3dFunPtr = unsafePerformIO (getProcAddress "glTexCoord3d")
-
-{-# NOINLINE glTexCoord3dFunPtr #-}
-
-glTexCoord3dv :: MonadIO m => Ptr GLdouble -> m ()
-glTexCoord3dv = ffiPtrdoubleIOV glTexCoord3dvFunPtr
-
-glTexCoord3dvFunPtr :: FunPtr (Ptr GLdouble -> IO ())
-glTexCoord3dvFunPtr = unsafePerformIO (getProcAddress "glTexCoord3dv")
-
-{-# NOINLINE glTexCoord3dvFunPtr #-}
-
-glTexCoord3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()
-glTexCoord3f = ffifloatfloatfloatIOV glTexCoord3fFunPtr
-
-glTexCoord3fFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> IO ())
-glTexCoord3fFunPtr = unsafePerformIO (getProcAddress "glTexCoord3f")
-
-{-# NOINLINE glTexCoord3fFunPtr #-}
-
-glTexCoord3fv :: MonadIO m => Ptr GLfloat -> m ()
-glTexCoord3fv = ffiPtrfloatIOV glTexCoord3fvFunPtr
-
-glTexCoord3fvFunPtr :: FunPtr (Ptr GLfloat -> IO ())
-glTexCoord3fvFunPtr = unsafePerformIO (getProcAddress "glTexCoord3fv")
-
-{-# NOINLINE glTexCoord3fvFunPtr #-}
-
-glTexCoord3i :: MonadIO m => GLint -> GLint -> GLint -> m ()
-glTexCoord3i = ffiintintintIOV glTexCoord3iFunPtr
-
-glTexCoord3iFunPtr :: FunPtr (GLint -> GLint -> GLint -> IO ())
-glTexCoord3iFunPtr = unsafePerformIO (getProcAddress "glTexCoord3i")
-
-{-# NOINLINE glTexCoord3iFunPtr #-}
-
-glTexCoord3iv :: MonadIO m => Ptr GLint -> m ()
-glTexCoord3iv = ffiPtrintIOV glTexCoord3ivFunPtr
-
-glTexCoord3ivFunPtr :: FunPtr (Ptr GLint -> IO ())
-glTexCoord3ivFunPtr = unsafePerformIO (getProcAddress "glTexCoord3iv")
-
-{-# NOINLINE glTexCoord3ivFunPtr #-}
-
-glTexCoord3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()
-glTexCoord3s = ffishortshortshortIOV glTexCoord3sFunPtr
-
-glTexCoord3sFunPtr :: FunPtr (GLshort -> GLshort -> GLshort -> IO ())
-glTexCoord3sFunPtr = unsafePerformIO (getProcAddress "glTexCoord3s")
-
-{-# NOINLINE glTexCoord3sFunPtr #-}
-
-glTexCoord3sv :: MonadIO m => Ptr GLshort -> m ()
-glTexCoord3sv = ffiPtrshortIOV glTexCoord3svFunPtr
-
-glTexCoord3svFunPtr :: FunPtr (Ptr GLshort -> IO ())
-glTexCoord3svFunPtr = unsafePerformIO (getProcAddress "glTexCoord3sv")
-
-{-# NOINLINE glTexCoord3svFunPtr #-}
-
-glTexCoord4d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
-glTexCoord4d = ffidoubledoubledoubledoubleIOV glTexCoord4dFunPtr
-
-glTexCoord4dFunPtr :: FunPtr (GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
-glTexCoord4dFunPtr = unsafePerformIO (getProcAddress "glTexCoord4d")
-
-{-# NOINLINE glTexCoord4dFunPtr #-}
-
-glTexCoord4dv :: MonadIO m => Ptr GLdouble -> m ()
-glTexCoord4dv = ffiPtrdoubleIOV glTexCoord4dvFunPtr
-
-glTexCoord4dvFunPtr :: FunPtr (Ptr GLdouble -> IO ())
-glTexCoord4dvFunPtr = unsafePerformIO (getProcAddress "glTexCoord4dv")
-
-{-# NOINLINE glTexCoord4dvFunPtr #-}
-
-glTexCoord4f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
-glTexCoord4f = ffifloatfloatfloatfloatIOV glTexCoord4fFunPtr
-
-glTexCoord4fFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
-glTexCoord4fFunPtr = unsafePerformIO (getProcAddress "glTexCoord4f")
-
-{-# NOINLINE glTexCoord4fFunPtr #-}
-
-glTexCoord4fv :: MonadIO m => Ptr GLfloat -> m ()
-glTexCoord4fv = ffiPtrfloatIOV glTexCoord4fvFunPtr
-
-glTexCoord4fvFunPtr :: FunPtr (Ptr GLfloat -> IO ())
-glTexCoord4fvFunPtr = unsafePerformIO (getProcAddress "glTexCoord4fv")
-
-{-# NOINLINE glTexCoord4fvFunPtr #-}
-
-glTexCoord4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()
-glTexCoord4i = ffiintintintintIOV glTexCoord4iFunPtr
-
-glTexCoord4iFunPtr :: FunPtr (GLint -> GLint -> GLint -> GLint -> IO ())
-glTexCoord4iFunPtr = unsafePerformIO (getProcAddress "glTexCoord4i")
-
-{-# NOINLINE glTexCoord4iFunPtr #-}
-
-glTexCoord4iv :: MonadIO m => Ptr GLint -> m ()
-glTexCoord4iv = ffiPtrintIOV glTexCoord4ivFunPtr
-
-glTexCoord4ivFunPtr :: FunPtr (Ptr GLint -> IO ())
-glTexCoord4ivFunPtr = unsafePerformIO (getProcAddress "glTexCoord4iv")
-
-{-# NOINLINE glTexCoord4ivFunPtr #-}
-
-glTexCoord4s :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()
-glTexCoord4s = ffishortshortshortshortIOV glTexCoord4sFunPtr
-
-glTexCoord4sFunPtr :: FunPtr (GLshort -> GLshort -> GLshort -> GLshort -> IO ())
-glTexCoord4sFunPtr = unsafePerformIO (getProcAddress "glTexCoord4s")
-
-{-# NOINLINE glTexCoord4sFunPtr #-}
-
-glTexCoord4sv :: MonadIO m => Ptr GLshort -> m ()
-glTexCoord4sv = ffiPtrshortIOV glTexCoord4svFunPtr
-
-glTexCoord4svFunPtr :: FunPtr (Ptr GLshort -> IO ())
-glTexCoord4svFunPtr = unsafePerformIO (getProcAddress "glTexCoord4sv")
-
-{-# NOINLINE glTexCoord4svFunPtr #-}
-
-glTexCoordPointer :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr () -> m ()
-glTexCoordPointer = ffiintenumsizeiPtrVIOV glTexCoordPointerFunPtr
-
-glTexCoordPointerFunPtr :: FunPtr (GLint -> GLenum -> GLsizei -> Ptr () -> IO ())
-glTexCoordPointerFunPtr = unsafePerformIO (getProcAddress "glTexCoordPointer")
-
-{-# NOINLINE glTexCoordPointerFunPtr #-}
-
-glTexEnvf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()
-glTexEnvf = ffienumenumfloatIOV glTexEnvfFunPtr
-
-glTexEnvfFunPtr :: FunPtr (GLenum -> GLenum -> GLfloat -> IO ())
-glTexEnvfFunPtr = unsafePerformIO (getProcAddress "glTexEnvf")
-
-{-# NOINLINE glTexEnvfFunPtr #-}
-
-glTexEnvfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
-glTexEnvfv = ffienumenumPtrfloatIOV glTexEnvfvFunPtr
-
-glTexEnvfvFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
-glTexEnvfvFunPtr = unsafePerformIO (getProcAddress "glTexEnvfv")
-
-{-# NOINLINE glTexEnvfvFunPtr #-}
-
-glTexEnvi :: MonadIO m => GLenum -> GLenum -> GLint -> m ()
-glTexEnvi = ffienumenumintIOV glTexEnviFunPtr
-
-glTexEnviFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> IO ())
-glTexEnviFunPtr = unsafePerformIO (getProcAddress "glTexEnvi")
-
-{-# NOINLINE glTexEnviFunPtr #-}
-
-glTexEnviv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
-glTexEnviv = ffienumenumPtrintIOV glTexEnvivFunPtr
-
-glTexEnvivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
-glTexEnvivFunPtr = unsafePerformIO (getProcAddress "glTexEnviv")
-
-{-# NOINLINE glTexEnvivFunPtr #-}
-
-glTexGend :: MonadIO m => GLenum -> GLenum -> GLdouble -> m ()
-glTexGend = ffienumenumdoubleIOV glTexGendFunPtr
-
-glTexGendFunPtr :: FunPtr (GLenum -> GLenum -> GLdouble -> IO ())
-glTexGendFunPtr = unsafePerformIO (getProcAddress "glTexGend")
-
-{-# NOINLINE glTexGendFunPtr #-}
-
-glTexGendv :: MonadIO m => GLenum -> GLenum -> Ptr GLdouble -> m ()
-glTexGendv = ffienumenumPtrdoubleIOV glTexGendvFunPtr
-
-glTexGendvFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLdouble -> IO ())
-glTexGendvFunPtr = unsafePerformIO (getProcAddress "glTexGendv")
-
-{-# NOINLINE glTexGendvFunPtr #-}
-
-glTexGenf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()
-glTexGenf = ffienumenumfloatIOV glTexGenfFunPtr
-
-glTexGenfFunPtr :: FunPtr (GLenum -> GLenum -> GLfloat -> IO ())
-glTexGenfFunPtr = unsafePerformIO (getProcAddress "glTexGenf")
-
-{-# NOINLINE glTexGenfFunPtr #-}
-
-glTexGenfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
-glTexGenfv = ffienumenumPtrfloatIOV glTexGenfvFunPtr
-
-glTexGenfvFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
-glTexGenfvFunPtr = unsafePerformIO (getProcAddress "glTexGenfv")
-
-{-# NOINLINE glTexGenfvFunPtr #-}
-
-glTexGeni :: MonadIO m => GLenum -> GLenum -> GLint -> m ()
-glTexGeni = ffienumenumintIOV glTexGeniFunPtr
-
-glTexGeniFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> IO ())
-glTexGeniFunPtr = unsafePerformIO (getProcAddress "glTexGeni")
-
-{-# NOINLINE glTexGeniFunPtr #-}
-
-glTexGeniv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
-glTexGeniv = ffienumenumPtrintIOV glTexGenivFunPtr
-
-glTexGenivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
-glTexGenivFunPtr = unsafePerformIO (getProcAddress "glTexGeniv")
-
-{-# NOINLINE glTexGenivFunPtr #-}
-
-glTranslated :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()
-glTranslated = ffidoubledoubledoubleIOV glTranslatedFunPtr
-
-glTranslatedFunPtr :: FunPtr (GLdouble -> GLdouble -> GLdouble -> IO ())
-glTranslatedFunPtr = unsafePerformIO (getProcAddress "glTranslated")
-
-{-# NOINLINE glTranslatedFunPtr #-}
-
-glTranslatef :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()
-glTranslatef = ffifloatfloatfloatIOV glTranslatefFunPtr
-
-glTranslatefFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> IO ())
-glTranslatefFunPtr = unsafePerformIO (getProcAddress "glTranslatef")
-
-{-# NOINLINE glTranslatefFunPtr #-}
-
-glVertex2d :: MonadIO m => GLdouble -> GLdouble -> m ()
-glVertex2d = ffidoubledoubleIOV glVertex2dFunPtr
-
-glVertex2dFunPtr :: FunPtr (GLdouble -> GLdouble -> IO ())
-glVertex2dFunPtr = unsafePerformIO (getProcAddress "glVertex2d")
-
-{-# NOINLINE glVertex2dFunPtr #-}
-
-glVertex2dv :: MonadIO m => Ptr GLdouble -> m ()
-glVertex2dv = ffiPtrdoubleIOV glVertex2dvFunPtr
-
-glVertex2dvFunPtr :: FunPtr (Ptr GLdouble -> IO ())
-glVertex2dvFunPtr = unsafePerformIO (getProcAddress "glVertex2dv")
-
-{-# NOINLINE glVertex2dvFunPtr #-}
-
-glVertex2f :: MonadIO m => GLfloat -> GLfloat -> m ()
-glVertex2f = ffifloatfloatIOV glVertex2fFunPtr
-
-glVertex2fFunPtr :: FunPtr (GLfloat -> GLfloat -> IO ())
-glVertex2fFunPtr = unsafePerformIO (getProcAddress "glVertex2f")
-
-{-# NOINLINE glVertex2fFunPtr #-}
-
-glVertex2fv :: MonadIO m => Ptr GLfloat -> m ()
-glVertex2fv = ffiPtrfloatIOV glVertex2fvFunPtr
-
-glVertex2fvFunPtr :: FunPtr (Ptr GLfloat -> IO ())
-glVertex2fvFunPtr = unsafePerformIO (getProcAddress "glVertex2fv")
-
-{-# NOINLINE glVertex2fvFunPtr #-}
-
-glVertex2i :: MonadIO m => GLint -> GLint -> m ()
-glVertex2i = ffiintintIOV glVertex2iFunPtr
-
-glVertex2iFunPtr :: FunPtr (GLint -> GLint -> IO ())
-glVertex2iFunPtr = unsafePerformIO (getProcAddress "glVertex2i")
-
-{-# NOINLINE glVertex2iFunPtr #-}
-
-glVertex2iv :: MonadIO m => Ptr GLint -> m ()
-glVertex2iv = ffiPtrintIOV glVertex2ivFunPtr
-
-glVertex2ivFunPtr :: FunPtr (Ptr GLint -> IO ())
-glVertex2ivFunPtr = unsafePerformIO (getProcAddress "glVertex2iv")
-
-{-# NOINLINE glVertex2ivFunPtr #-}
-
-glVertex2s :: MonadIO m => GLshort -> GLshort -> m ()
-glVertex2s = ffishortshortIOV glVertex2sFunPtr
-
-glVertex2sFunPtr :: FunPtr (GLshort -> GLshort -> IO ())
-glVertex2sFunPtr = unsafePerformIO (getProcAddress "glVertex2s")
-
-{-# NOINLINE glVertex2sFunPtr #-}
-
-glVertex2sv :: MonadIO m => Ptr GLshort -> m ()
-glVertex2sv = ffiPtrshortIOV glVertex2svFunPtr
-
-glVertex2svFunPtr :: FunPtr (Ptr GLshort -> IO ())
-glVertex2svFunPtr = unsafePerformIO (getProcAddress "glVertex2sv")
-
-{-# NOINLINE glVertex2svFunPtr #-}
-
-glVertex3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()
-glVertex3d = ffidoubledoubledoubleIOV glVertex3dFunPtr
-
-glVertex3dFunPtr :: FunPtr (GLdouble -> GLdouble -> GLdouble -> IO ())
-glVertex3dFunPtr = unsafePerformIO (getProcAddress "glVertex3d")
-
-{-# NOINLINE glVertex3dFunPtr #-}
-
-glVertex3dv :: MonadIO m => Ptr GLdouble -> m ()
-glVertex3dv = ffiPtrdoubleIOV glVertex3dvFunPtr
-
-glVertex3dvFunPtr :: FunPtr (Ptr GLdouble -> IO ())
-glVertex3dvFunPtr = unsafePerformIO (getProcAddress "glVertex3dv")
-
-{-# NOINLINE glVertex3dvFunPtr #-}
-
-glVertex3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()
-glVertex3f = ffifloatfloatfloatIOV glVertex3fFunPtr
-
-glVertex3fFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> IO ())
-glVertex3fFunPtr = unsafePerformIO (getProcAddress "glVertex3f")
-
-{-# NOINLINE glVertex3fFunPtr #-}
-
-glVertex3fv :: MonadIO m => Ptr GLfloat -> m ()
-glVertex3fv = ffiPtrfloatIOV glVertex3fvFunPtr
-
-glVertex3fvFunPtr :: FunPtr (Ptr GLfloat -> IO ())
-glVertex3fvFunPtr = unsafePerformIO (getProcAddress "glVertex3fv")
-
-{-# NOINLINE glVertex3fvFunPtr #-}
-
-glVertex3i :: MonadIO m => GLint -> GLint -> GLint -> m ()
-glVertex3i = ffiintintintIOV glVertex3iFunPtr
-
-glVertex3iFunPtr :: FunPtr (GLint -> GLint -> GLint -> IO ())
-glVertex3iFunPtr = unsafePerformIO (getProcAddress "glVertex3i")
-
-{-# NOINLINE glVertex3iFunPtr #-}
-
-glVertex3iv :: MonadIO m => Ptr GLint -> m ()
-glVertex3iv = ffiPtrintIOV glVertex3ivFunPtr
-
-glVertex3ivFunPtr :: FunPtr (Ptr GLint -> IO ())
-glVertex3ivFunPtr = unsafePerformIO (getProcAddress "glVertex3iv")
-
-{-# NOINLINE glVertex3ivFunPtr #-}
-
-glVertex3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()
-glVertex3s = ffishortshortshortIOV glVertex3sFunPtr
-
-glVertex3sFunPtr :: FunPtr (GLshort -> GLshort -> GLshort -> IO ())
-glVertex3sFunPtr = unsafePerformIO (getProcAddress "glVertex3s")
-
-{-# NOINLINE glVertex3sFunPtr #-}
-
-glVertex3sv :: MonadIO m => Ptr GLshort -> m ()
-glVertex3sv = ffiPtrshortIOV glVertex3svFunPtr
-
-glVertex3svFunPtr :: FunPtr (Ptr GLshort -> IO ())
-glVertex3svFunPtr = unsafePerformIO (getProcAddress "glVertex3sv")
-
-{-# NOINLINE glVertex3svFunPtr #-}
-
-glVertex4d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
-glVertex4d = ffidoubledoubledoubledoubleIOV glVertex4dFunPtr
-
-glVertex4dFunPtr :: FunPtr (GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
-glVertex4dFunPtr = unsafePerformIO (getProcAddress "glVertex4d")
-
-{-# NOINLINE glVertex4dFunPtr #-}
-
-glVertex4dv :: MonadIO m => Ptr GLdouble -> m ()
-glVertex4dv = ffiPtrdoubleIOV glVertex4dvFunPtr
-
-glVertex4dvFunPtr :: FunPtr (Ptr GLdouble -> IO ())
-glVertex4dvFunPtr = unsafePerformIO (getProcAddress "glVertex4dv")
-
-{-# NOINLINE glVertex4dvFunPtr #-}
-
-glVertex4f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
-glVertex4f = ffifloatfloatfloatfloatIOV glVertex4fFunPtr
-
-glVertex4fFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
-glVertex4fFunPtr = unsafePerformIO (getProcAddress "glVertex4f")
-
-{-# NOINLINE glVertex4fFunPtr #-}
-
-glVertex4fv :: MonadIO m => Ptr GLfloat -> m ()
-glVertex4fv = ffiPtrfloatIOV glVertex4fvFunPtr
-
-glVertex4fvFunPtr :: FunPtr (Ptr GLfloat -> IO ())
-glVertex4fvFunPtr = unsafePerformIO (getProcAddress "glVertex4fv")
-
-{-# NOINLINE glVertex4fvFunPtr #-}
-
-glVertex4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()
-glVertex4i = ffiintintintintIOV glVertex4iFunPtr
-
-glVertex4iFunPtr :: FunPtr (GLint -> GLint -> GLint -> GLint -> IO ())
-glVertex4iFunPtr = unsafePerformIO (getProcAddress "glVertex4i")
-
-{-# NOINLINE glVertex4iFunPtr #-}
-
-glVertex4iv :: MonadIO m => Ptr GLint -> m ()
-glVertex4iv = ffiPtrintIOV glVertex4ivFunPtr
-
-glVertex4ivFunPtr :: FunPtr (Ptr GLint -> IO ())
-glVertex4ivFunPtr = unsafePerformIO (getProcAddress "glVertex4iv")
-
-{-# NOINLINE glVertex4ivFunPtr #-}
-
-glVertex4s :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()
-glVertex4s = ffishortshortshortshortIOV glVertex4sFunPtr
-
-glVertex4sFunPtr :: FunPtr (GLshort -> GLshort -> GLshort -> GLshort -> IO ())
-glVertex4sFunPtr = unsafePerformIO (getProcAddress "glVertex4s")
-
-{-# NOINLINE glVertex4sFunPtr #-}
-
-glVertex4sv :: MonadIO m => Ptr GLshort -> m ()
-glVertex4sv = ffiPtrshortIOV glVertex4svFunPtr
-
-glVertex4svFunPtr :: FunPtr (Ptr GLshort -> IO ())
-glVertex4svFunPtr = unsafePerformIO (getProcAddress "glVertex4sv")
-
-{-# NOINLINE glVertex4svFunPtr #-}
-
-glVertexPointer :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr () -> m ()
-glVertexPointer = ffiintenumsizeiPtrVIOV glVertexPointerFunPtr
-
-glVertexPointerFunPtr :: FunPtr (GLint -> GLenum -> GLsizei -> Ptr () -> IO ())
-glVertexPointerFunPtr = unsafePerformIO (getProcAddress "glVertexPointer")
-
-{-# NOINLINE glVertexPointerFunPtr #-}
-
-glWindowPos2d :: MonadIO m => GLdouble -> GLdouble -> m ()
-glWindowPos2d = ffidoubledoubleIOV glWindowPos2dFunPtr
-
-glWindowPos2dFunPtr :: FunPtr (GLdouble -> GLdouble -> IO ())
-glWindowPos2dFunPtr = unsafePerformIO (getProcAddress "glWindowPos2d")
-
-{-# NOINLINE glWindowPos2dFunPtr #-}
-
-glWindowPos2dv :: MonadIO m => Ptr GLdouble -> m ()
-glWindowPos2dv = ffiPtrdoubleIOV glWindowPos2dvFunPtr
-
-glWindowPos2dvFunPtr :: FunPtr (Ptr GLdouble -> IO ())
-glWindowPos2dvFunPtr = unsafePerformIO (getProcAddress "glWindowPos2dv")
-
-{-# NOINLINE glWindowPos2dvFunPtr #-}
-
-glWindowPos2f :: MonadIO m => GLfloat -> GLfloat -> m ()
-glWindowPos2f = ffifloatfloatIOV glWindowPos2fFunPtr
-
-glWindowPos2fFunPtr :: FunPtr (GLfloat -> GLfloat -> IO ())
-glWindowPos2fFunPtr = unsafePerformIO (getProcAddress "glWindowPos2f")
-
-{-# NOINLINE glWindowPos2fFunPtr #-}
-
-glWindowPos2fv :: MonadIO m => Ptr GLfloat -> m ()
-glWindowPos2fv = ffiPtrfloatIOV glWindowPos2fvFunPtr
-
-glWindowPos2fvFunPtr :: FunPtr (Ptr GLfloat -> IO ())
-glWindowPos2fvFunPtr = unsafePerformIO (getProcAddress "glWindowPos2fv")
-
-{-# NOINLINE glWindowPos2fvFunPtr #-}
-
-glWindowPos2i :: MonadIO m => GLint -> GLint -> m ()
-glWindowPos2i = ffiintintIOV glWindowPos2iFunPtr
-
-glWindowPos2iFunPtr :: FunPtr (GLint -> GLint -> IO ())
-glWindowPos2iFunPtr = unsafePerformIO (getProcAddress "glWindowPos2i")
-
-{-# NOINLINE glWindowPos2iFunPtr #-}
-
-glWindowPos2iv :: MonadIO m => Ptr GLint -> m ()
-glWindowPos2iv = ffiPtrintIOV glWindowPos2ivFunPtr
-
-glWindowPos2ivFunPtr :: FunPtr (Ptr GLint -> IO ())
-glWindowPos2ivFunPtr = unsafePerformIO (getProcAddress "glWindowPos2iv")
-
-{-# NOINLINE glWindowPos2ivFunPtr #-}
-
-glWindowPos2s :: MonadIO m => GLshort -> GLshort -> m ()
-glWindowPos2s = ffishortshortIOV glWindowPos2sFunPtr
-
-glWindowPos2sFunPtr :: FunPtr (GLshort -> GLshort -> IO ())
-glWindowPos2sFunPtr = unsafePerformIO (getProcAddress "glWindowPos2s")
-
-{-# NOINLINE glWindowPos2sFunPtr #-}
-
-glWindowPos2sv :: MonadIO m => Ptr GLshort -> m ()
-glWindowPos2sv = ffiPtrshortIOV glWindowPos2svFunPtr
-
-glWindowPos2svFunPtr :: FunPtr (Ptr GLshort -> IO ())
-glWindowPos2svFunPtr = unsafePerformIO (getProcAddress "glWindowPos2sv")
-
-{-# NOINLINE glWindowPos2svFunPtr #-}
-
-glWindowPos3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()
-glWindowPos3d = ffidoubledoubledoubleIOV glWindowPos3dFunPtr
-
-glWindowPos3dFunPtr :: FunPtr (GLdouble -> GLdouble -> GLdouble -> IO ())
-glWindowPos3dFunPtr = unsafePerformIO (getProcAddress "glWindowPos3d")
-
-{-# NOINLINE glWindowPos3dFunPtr #-}
-
-glWindowPos3dv :: MonadIO m => Ptr GLdouble -> m ()
-glWindowPos3dv = ffiPtrdoubleIOV glWindowPos3dvFunPtr
-
-glWindowPos3dvFunPtr :: FunPtr (Ptr GLdouble -> IO ())
-glWindowPos3dvFunPtr = unsafePerformIO (getProcAddress "glWindowPos3dv")
-
-{-# NOINLINE glWindowPos3dvFunPtr #-}
-
-glWindowPos3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()
-glWindowPos3f = ffifloatfloatfloatIOV glWindowPos3fFunPtr
-
-glWindowPos3fFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> IO ())
-glWindowPos3fFunPtr = unsafePerformIO (getProcAddress "glWindowPos3f")
-
-{-# NOINLINE glWindowPos3fFunPtr #-}
-
-glWindowPos3fv :: MonadIO m => Ptr GLfloat -> m ()
-glWindowPos3fv = ffiPtrfloatIOV glWindowPos3fvFunPtr
-
-glWindowPos3fvFunPtr :: FunPtr (Ptr GLfloat -> IO ())
-glWindowPos3fvFunPtr = unsafePerformIO (getProcAddress "glWindowPos3fv")
-
-{-# NOINLINE glWindowPos3fvFunPtr #-}
-
-glWindowPos3i :: MonadIO m => GLint -> GLint -> GLint -> m ()
-glWindowPos3i = ffiintintintIOV glWindowPos3iFunPtr
-
-glWindowPos3iFunPtr :: FunPtr (GLint -> GLint -> GLint -> IO ())
-glWindowPos3iFunPtr = unsafePerformIO (getProcAddress "glWindowPos3i")
-
-{-# NOINLINE glWindowPos3iFunPtr #-}
-
-glWindowPos3iv :: MonadIO m => Ptr GLint -> m ()
-glWindowPos3iv = ffiPtrintIOV glWindowPos3ivFunPtr
-
-glWindowPos3ivFunPtr :: FunPtr (Ptr GLint -> IO ())
-glWindowPos3ivFunPtr = unsafePerformIO (getProcAddress "glWindowPos3iv")
-
-{-# NOINLINE glWindowPos3ivFunPtr #-}
-
-glWindowPos3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()
-glWindowPos3s = ffishortshortshortIOV glWindowPos3sFunPtr
-
-glWindowPos3sFunPtr :: FunPtr (GLshort -> GLshort -> GLshort -> IO ())
-glWindowPos3sFunPtr = unsafePerformIO (getProcAddress "glWindowPos3s")
-
-{-# NOINLINE glWindowPos3sFunPtr #-}
-
-glWindowPos3sv :: MonadIO m => Ptr GLshort -> m ()
-glWindowPos3sv = ffiPtrshortIOV glWindowPos3svFunPtr
-
-glWindowPos3svFunPtr :: FunPtr (Ptr GLshort -> IO ())
-glWindowPos3svFunPtr = unsafePerformIO (getProcAddress "glWindowPos3sv")
-
-{-# NOINLINE glWindowPos3svFunPtr #-}
-
-pattern GL_2D = 0x0600
-
-pattern GL_2_BYTES = 0x1407
-
-pattern GL_3D = 0x0601
-
-pattern GL_3D_COLOR = 0x0602
-
-pattern GL_3D_COLOR_TEXTURE = 0x0603
-
-pattern GL_3_BYTES = 0x1408
-
-pattern GL_4D_COLOR_TEXTURE = 0x0604
-
-pattern GL_4_BYTES = 0x1409
-
-pattern GL_ACCUM = 0x0100
-
-pattern GL_ACCUM_ALPHA_BITS = 0x0D5B
-
-pattern GL_ACCUM_BLUE_BITS = 0x0D5A
-
-pattern GL_ACCUM_BUFFER_BIT = 0x00000200
-
-pattern GL_ACCUM_CLEAR_VALUE = 0x0B80
-
-pattern GL_ACCUM_GREEN_BITS = 0x0D59
-
-pattern GL_ACCUM_RED_BITS = 0x0D58
-
-pattern GL_ADD = 0x0104
-
-pattern GL_ADD_SIGNED = 0x8574
-
-pattern GL_ALIASED_POINT_SIZE_RANGE = 0x846D
-
-pattern GL_ALL_ATTRIB_BITS = 0xFFFFFFFF
-
-pattern GL_ALPHA12 = 0x803D
-
-pattern GL_ALPHA16 = 0x803E
-
-pattern GL_ALPHA4 = 0x803B
-
-pattern GL_ALPHA8 = 0x803C
-
-pattern GL_ALPHA_BIAS = 0x0D1D
-
-pattern GL_ALPHA_BITS = 0x0D55
-
-pattern GL_ALPHA_INTEGER = 0x8D97
-
-pattern GL_ALPHA_SCALE = 0x0D1C
-
-pattern GL_ALPHA_TEST = 0x0BC0
-
-pattern GL_ALPHA_TEST_FUNC = 0x0BC1
-
-pattern GL_ALPHA_TEST_REF = 0x0BC2
-
-pattern GL_AMBIENT = 0x1200
-
-pattern GL_AMBIENT_AND_DIFFUSE = 0x1602
-
-pattern GL_ATTRIB_STACK_DEPTH = 0x0BB0
-
-pattern GL_AUTO_NORMAL = 0x0D80
-
-pattern GL_AUX0 = 0x0409
-
-pattern GL_AUX1 = 0x040A
-
-pattern GL_AUX2 = 0x040B
-
-pattern GL_AUX3 = 0x040C
-
-pattern GL_AUX_BUFFERS = 0x0C00
-
-pattern GL_BITMAP = 0x1A00
-
-pattern GL_BITMAP_TOKEN = 0x0704
-
-pattern GL_BLUE_BIAS = 0x0D1B
-
-pattern GL_BLUE_BITS = 0x0D54
-
-pattern GL_BLUE_SCALE = 0x0D1A
-
-pattern GL_C3F_V3F = 0x2A24
-
-pattern GL_C4F_N3F_V3F = 0x2A26
-
-pattern GL_C4UB_V2F = 0x2A22
-
-pattern GL_C4UB_V3F = 0x2A23
-
-pattern GL_CLAMP = 0x2900
-
-pattern GL_CLAMP_FRAGMENT_COLOR = 0x891B
-
-pattern GL_CLAMP_VERTEX_COLOR = 0x891A
-
-pattern GL_CLIENT_ACTIVE_TEXTURE = 0x84E1
-
-pattern GL_CLIENT_ALL_ATTRIB_BITS = 0xFFFFFFFF
-
-pattern GL_CLIENT_ATTRIB_STACK_DEPTH = 0x0BB1
-
-pattern GL_CLIENT_PIXEL_STORE_BIT = 0x00000001
-
-pattern GL_CLIENT_VERTEX_ARRAY_BIT = 0x00000002
-
-pattern GL_CLIP_PLANE0 = 0x3000
-
-pattern GL_CLIP_PLANE1 = 0x3001
-
-pattern GL_CLIP_PLANE2 = 0x3002
-
-pattern GL_CLIP_PLANE3 = 0x3003
-
-pattern GL_CLIP_PLANE4 = 0x3004
-
-pattern GL_CLIP_PLANE5 = 0x3005
-
-pattern GL_COEFF = 0x0A00
-
-pattern GL_COLOR_ARRAY = 0x8076
-
-pattern GL_COLOR_ARRAY_BUFFER_BINDING = 0x8898
-
-pattern GL_COLOR_ARRAY_POINTER = 0x8090
-
-pattern GL_COLOR_ARRAY_SIZE = 0x8081
-
-pattern GL_COLOR_ARRAY_STRIDE = 0x8083
-
-pattern GL_COLOR_ARRAY_TYPE = 0x8082
-
-pattern GL_COLOR_INDEX = 0x1900
-
-pattern GL_COLOR_INDEXES = 0x1603
-
-pattern GL_COLOR_MATERIAL = 0x0B57
-
-pattern GL_COLOR_MATERIAL_FACE = 0x0B55
-
-pattern GL_COLOR_MATERIAL_PARAMETER = 0x0B56
-
-pattern GL_COLOR_SUM = 0x8458
-
-pattern GL_COMBINE = 0x8570
-
-pattern GL_COMBINE_ALPHA = 0x8572
-
-pattern GL_COMBINE_RGB = 0x8571
-
-pattern GL_COMPARE_R_TO_TEXTURE = 0x884E
-
-pattern GL_COMPILE = 0x1300
-
-pattern GL_COMPILE_AND_EXECUTE = 0x1301
-
-pattern GL_COMPRESSED_ALPHA = 0x84E9
-
-pattern GL_COMPRESSED_INTENSITY = 0x84EC
-
-pattern GL_COMPRESSED_LUMINANCE = 0x84EA
-
-pattern GL_COMPRESSED_LUMINANCE_ALPHA = 0x84EB
-
-pattern GL_COMPRESSED_SLUMINANCE = 0x8C4A
-
-pattern GL_COMPRESSED_SLUMINANCE_ALPHA = 0x8C4B
-
-pattern GL_CONSTANT = 0x8576
-
-pattern GL_CONSTANT_ATTENUATION = 0x1207
-
-pattern GL_COORD_REPLACE = 0x8862
-
-pattern GL_COPY_PIXEL_TOKEN = 0x0706
-
-pattern GL_CURRENT_BIT = 0x00000001
-
-pattern GL_CURRENT_COLOR = 0x0B00
-
-pattern GL_CURRENT_FOG_COORD = 0x8453
-
-pattern GL_CURRENT_FOG_COORDINATE = 0x8453
-
-pattern GL_CURRENT_INDEX = 0x0B01
-
-pattern GL_CURRENT_NORMAL = 0x0B02
-
-pattern GL_CURRENT_RASTER_COLOR = 0x0B04
-
-pattern GL_CURRENT_RASTER_DISTANCE = 0x0B09
-
-pattern GL_CURRENT_RASTER_INDEX = 0x0B05
-
-pattern GL_CURRENT_RASTER_POSITION = 0x0B07
-
-pattern GL_CURRENT_RASTER_POSITION_VALID = 0x0B08
-
-pattern GL_CURRENT_RASTER_SECONDARY_COLOR = 0x845F
-
-pattern GL_CURRENT_RASTER_TEXTURE_COORDS = 0x0B06
-
-pattern GL_CURRENT_SECONDARY_COLOR = 0x8459
-
-pattern GL_CURRENT_TEXTURE_COORDS = 0x0B03
-
-pattern GL_DECAL = 0x2101
-
-pattern GL_DEPTH_BIAS = 0x0D1F
-
-pattern GL_DEPTH_BITS = 0x0D56
-
-pattern GL_DEPTH_SCALE = 0x0D1E
-
-pattern GL_DEPTH_TEXTURE_MODE = 0x884B
-
-pattern GL_DIFFUSE = 0x1201
-
-pattern GL_DOMAIN = 0x0A02
-
-pattern GL_DOT3_RGB = 0x86AE
-
-pattern GL_DOT3_RGBA = 0x86AF
-
-pattern GL_DRAW_PIXEL_TOKEN = 0x0705
-
-pattern GL_EDGE_FLAG = 0x0B43
-
-pattern GL_EDGE_FLAG_ARRAY = 0x8079
-
-pattern GL_EDGE_FLAG_ARRAY_BUFFER_BINDING = 0x889B
-
-pattern GL_EDGE_FLAG_ARRAY_POINTER = 0x8093
-
-pattern GL_EDGE_FLAG_ARRAY_STRIDE = 0x808C
-
-pattern GL_EMISSION = 0x1600
-
-pattern GL_ENABLE_BIT = 0x00002000
-
-pattern GL_EVAL_BIT = 0x00010000
-
-pattern GL_EXP = 0x0800
-
-pattern GL_EXP2 = 0x0801
-
-pattern GL_EYE_LINEAR = 0x2400
-
-pattern GL_FEEDBACK = 0x1C01
-
-pattern GL_FEEDBACK_BUFFER_POINTER = 0x0DF0
-
-pattern GL_FEEDBACK_BUFFER_SIZE = 0x0DF1
-
-pattern GL_FEEDBACK_BUFFER_TYPE = 0x0DF2
-
-pattern GL_FLAT = 0x1D00
-
-pattern GL_FOG_BIT = 0x00000080
-
-pattern GL_FOG_COLOR = 0x0B66
-
-pattern GL_FOG_COORD = 0x8451
-
-pattern GL_FOG_COORDINATE = 0x8451
-
-pattern GL_FOG_COORDINATE_ARRAY = 0x8457
-
-pattern GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING = 0x889D
-
-pattern GL_FOG_COORDINATE_ARRAY_POINTER = 0x8456
-
-pattern GL_FOG_COORDINATE_ARRAY_STRIDE = 0x8455
-
-pattern GL_FOG_COORDINATE_ARRAY_TYPE = 0x8454
-
-pattern GL_FOG_COORDINATE_SOURCE = 0x8450
-
-pattern GL_FOG_COORD_ARRAY = 0x8457
-
-pattern GL_FOG_COORD_ARRAY_BUFFER_BINDING = 0x889D
-
-pattern GL_FOG_COORD_ARRAY_POINTER = 0x8456
-
-pattern GL_FOG_COORD_ARRAY_STRIDE = 0x8455
-
-pattern GL_FOG_COORD_ARRAY_TYPE = 0x8454
-
-pattern GL_FOG_COORD_SRC = 0x8450
-
-pattern GL_FOG_DENSITY = 0x0B62
-
-pattern GL_FOG_END = 0x0B64
-
-pattern GL_FOG_HINT = 0x0C54
-
-pattern GL_FOG_INDEX = 0x0B61
-
-pattern GL_FOG_MODE = 0x0B65
-
-pattern GL_FOG_START = 0x0B63
-
-pattern GL_FRAGMENT_DEPTH = 0x8452
-
-pattern GL_GENERATE_MIPMAP = 0x8191
-
-pattern GL_GENERATE_MIPMAP_HINT = 0x8192
-
-pattern GL_GREEN_BIAS = 0x0D19
-
-pattern GL_GREEN_BITS = 0x0D53
-
-pattern GL_GREEN_SCALE = 0x0D18
-
-pattern GL_HINT_BIT = 0x00008000
-
-pattern GL_INDEX_ARRAY = 0x8077
-
-pattern GL_INDEX_ARRAY_BUFFER_BINDING = 0x8899
-
-pattern GL_INDEX_ARRAY_POINTER = 0x8091
-
-pattern GL_INDEX_ARRAY_STRIDE = 0x8086
-
-pattern GL_INDEX_ARRAY_TYPE = 0x8085
-
-pattern GL_INDEX_BITS = 0x0D51
-
-pattern GL_INDEX_CLEAR_VALUE = 0x0C20
-
-pattern GL_INDEX_LOGIC_OP = 0x0BF1
-
-pattern GL_INDEX_MODE = 0x0C30
-
-pattern GL_INDEX_OFFSET = 0x0D13
-
-pattern GL_INDEX_SHIFT = 0x0D12
-
-pattern GL_INDEX_WRITEMASK = 0x0C21
-
-pattern GL_INTENSITY = 0x8049
-
-pattern GL_INTENSITY12 = 0x804C
-
-pattern GL_INTENSITY16 = 0x804D
-
-pattern GL_INTENSITY4 = 0x804A
-
-pattern GL_INTENSITY8 = 0x804B
-
-pattern GL_INTERPOLATE = 0x8575
-
-pattern GL_LIGHT0 = 0x4000
-
-pattern GL_LIGHT1 = 0x4001
-
-pattern GL_LIGHT2 = 0x4002
-
-pattern GL_LIGHT3 = 0x4003
-
-pattern GL_LIGHT4 = 0x4004
-
-pattern GL_LIGHT5 = 0x4005
-
-pattern GL_LIGHT6 = 0x4006
-
-pattern GL_LIGHT7 = 0x4007
-
-pattern GL_LIGHTING = 0x0B50
-
-pattern GL_LIGHTING_BIT = 0x00000040
-
-pattern GL_LIGHT_MODEL_AMBIENT = 0x0B53
-
-pattern GL_LIGHT_MODEL_COLOR_CONTROL = 0x81F8
-
-pattern GL_LIGHT_MODEL_LOCAL_VIEWER = 0x0B51
-
-pattern GL_LIGHT_MODEL_TWO_SIDE = 0x0B52
-
-pattern GL_LINEAR_ATTENUATION = 0x1208
-
-pattern GL_LINE_BIT = 0x00000004
-
-pattern GL_LINE_RESET_TOKEN = 0x0707
-
-pattern GL_LINE_STIPPLE = 0x0B24
-
-pattern GL_LINE_STIPPLE_PATTERN = 0x0B25
-
-pattern GL_LINE_STIPPLE_REPEAT = 0x0B26
-
-pattern GL_LINE_TOKEN = 0x0702
-
-pattern GL_LIST_BASE = 0x0B32
-
-pattern GL_LIST_BIT = 0x00020000
-
-pattern GL_LIST_INDEX = 0x0B33
-
-pattern GL_LIST_MODE = 0x0B30
-
-pattern GL_LOAD = 0x0101
-
-pattern GL_LOGIC_OP = 0x0BF1
-
-pattern GL_LUMINANCE = 0x1909
-
-pattern GL_LUMINANCE12 = 0x8041
-
-pattern GL_LUMINANCE12_ALPHA12 = 0x8047
-
-pattern GL_LUMINANCE12_ALPHA4 = 0x8046
-
-pattern GL_LUMINANCE16 = 0x8042
-
-pattern GL_LUMINANCE16_ALPHA16 = 0x8048
-
-pattern GL_LUMINANCE4 = 0x803F
-
-pattern GL_LUMINANCE4_ALPHA4 = 0x8043
-
-pattern GL_LUMINANCE6_ALPHA2 = 0x8044
-
-pattern GL_LUMINANCE8 = 0x8040
-
-pattern GL_LUMINANCE8_ALPHA8 = 0x8045
-
-pattern GL_LUMINANCE_ALPHA = 0x190A
-
-pattern GL_MAP1_COLOR_4 = 0x0D90
-
-pattern GL_MAP1_GRID_DOMAIN = 0x0DD0
-
-pattern GL_MAP1_GRID_SEGMENTS = 0x0DD1
-
-pattern GL_MAP1_INDEX = 0x0D91
-
-pattern GL_MAP1_NORMAL = 0x0D92
-
-pattern GL_MAP1_TEXTURE_COORD_1 = 0x0D93
-
-pattern GL_MAP1_TEXTURE_COORD_2 = 0x0D94
-
-pattern GL_MAP1_TEXTURE_COORD_3 = 0x0D95
-
-pattern GL_MAP1_TEXTURE_COORD_4 = 0x0D96
-
-pattern GL_MAP1_VERTEX_3 = 0x0D97
-
-pattern GL_MAP1_VERTEX_4 = 0x0D98
-
-pattern GL_MAP2_COLOR_4 = 0x0DB0
-
-pattern GL_MAP2_GRID_DOMAIN = 0x0DD2
-
-pattern GL_MAP2_GRID_SEGMENTS = 0x0DD3
-
-pattern GL_MAP2_INDEX = 0x0DB1
-
-pattern GL_MAP2_NORMAL = 0x0DB2
-
-pattern GL_MAP2_TEXTURE_COORD_1 = 0x0DB3
-
-pattern GL_MAP2_TEXTURE_COORD_2 = 0x0DB4
-
-pattern GL_MAP2_TEXTURE_COORD_3 = 0x0DB5
-
-pattern GL_MAP2_TEXTURE_COORD_4 = 0x0DB6
-
-pattern GL_MAP2_VERTEX_3 = 0x0DB7
-
-pattern GL_MAP2_VERTEX_4 = 0x0DB8
-
-pattern GL_MAP_COLOR = 0x0D10
-
-pattern GL_MAP_STENCIL = 0x0D11
-
-pattern GL_MATRIX_MODE = 0x0BA0
-
-pattern GL_MAX_ATTRIB_STACK_DEPTH = 0x0D35
-
-pattern GL_MAX_CLIENT_ATTRIB_STACK_DEPTH = 0x0D3B
-
-pattern GL_MAX_CLIP_PLANES = 0x0D32
-
-pattern GL_MAX_EVAL_ORDER = 0x0D30
-
-pattern GL_MAX_LIGHTS = 0x0D31
-
-pattern GL_MAX_LIST_NESTING = 0x0B31
-
-pattern GL_MAX_MODELVIEW_STACK_DEPTH = 0x0D36
-
-pattern GL_MAX_NAME_STACK_DEPTH = 0x0D37
-
-pattern GL_MAX_PIXEL_MAP_TABLE = 0x0D34
-
-pattern GL_MAX_PROJECTION_STACK_DEPTH = 0x0D38
-
-pattern GL_MAX_TEXTURE_COORDS = 0x8871
-
-pattern GL_MAX_TEXTURE_STACK_DEPTH = 0x0D39
-
-pattern GL_MAX_TEXTURE_UNITS = 0x84E2
-
-pattern GL_MODELVIEW = 0x1700
-
-pattern GL_MODELVIEW_MATRIX = 0x0BA6
-
-pattern GL_MODELVIEW_STACK_DEPTH = 0x0BA3
-
-pattern GL_MODULATE = 0x2100
-
-pattern GL_MULT = 0x0103
-
-pattern GL_MULTISAMPLE_BIT = 0x20000000
-
-pattern GL_N3F_V3F = 0x2A25
-
-pattern GL_NAME_STACK_DEPTH = 0x0D70
-
-pattern GL_NORMALIZE = 0x0BA1
-
-pattern GL_NORMAL_ARRAY = 0x8075
-
-pattern GL_NORMAL_ARRAY_BUFFER_BINDING = 0x8897
-
-pattern GL_NORMAL_ARRAY_POINTER = 0x808F
-
-pattern GL_NORMAL_ARRAY_STRIDE = 0x807F
-
-pattern GL_NORMAL_ARRAY_TYPE = 0x807E
-
-pattern GL_NORMAL_MAP = 0x8511
-
-pattern GL_OBJECT_LINEAR = 0x2401
-
-pattern GL_OBJECT_PLANE = 0x2501
-
-pattern GL_OPERAND0_ALPHA = 0x8598
-
-pattern GL_OPERAND0_RGB = 0x8590
-
-pattern GL_OPERAND1_ALPHA = 0x8599
-
-pattern GL_OPERAND1_RGB = 0x8591
-
-pattern GL_OPERAND2_ALPHA = 0x859A
-
-pattern GL_OPERAND2_RGB = 0x8592
-
-pattern GL_ORDER = 0x0A01
-
-pattern GL_PASS_THROUGH_TOKEN = 0x0700
-
-pattern GL_PERSPECTIVE_CORRECTION_HINT = 0x0C50
-
-pattern GL_PIXEL_MAP_A_TO_A = 0x0C79
-
-pattern GL_PIXEL_MAP_A_TO_A_SIZE = 0x0CB9
-
-pattern GL_PIXEL_MAP_B_TO_B = 0x0C78
-
-pattern GL_PIXEL_MAP_B_TO_B_SIZE = 0x0CB8
-
-pattern GL_PIXEL_MAP_G_TO_G = 0x0C77
-
-pattern GL_PIXEL_MAP_G_TO_G_SIZE = 0x0CB7
-
-pattern GL_PIXEL_MAP_I_TO_A = 0x0C75
-
-pattern GL_PIXEL_MAP_I_TO_A_SIZE = 0x0CB5
-
-pattern GL_PIXEL_MAP_I_TO_B = 0x0C74
-
-pattern GL_PIXEL_MAP_I_TO_B_SIZE = 0x0CB4
-
-pattern GL_PIXEL_MAP_I_TO_G = 0x0C73
-
-pattern GL_PIXEL_MAP_I_TO_G_SIZE = 0x0CB3
-
-pattern GL_PIXEL_MAP_I_TO_I = 0x0C70
-
-pattern GL_PIXEL_MAP_I_TO_I_SIZE = 0x0CB0
-
-pattern GL_PIXEL_MAP_I_TO_R = 0x0C72
-
-pattern GL_PIXEL_MAP_I_TO_R_SIZE = 0x0CB2
-
-pattern GL_PIXEL_MAP_R_TO_R = 0x0C76
-
-pattern GL_PIXEL_MAP_R_TO_R_SIZE = 0x0CB6
-
-pattern GL_PIXEL_MAP_S_TO_S = 0x0C71
-
-pattern GL_PIXEL_MAP_S_TO_S_SIZE = 0x0CB1
-
-pattern GL_PIXEL_MODE_BIT = 0x00000020
-
-pattern GL_POINT_BIT = 0x00000002
-
-pattern GL_POINT_DISTANCE_ATTENUATION = 0x8129
-
-pattern GL_POINT_SIZE_MAX = 0x8127
-
-pattern GL_POINT_SIZE_MIN = 0x8126
-
-pattern GL_POINT_SMOOTH = 0x0B10
-
-pattern GL_POINT_SMOOTH_HINT = 0x0C51
-
-pattern GL_POINT_SPRITE = 0x8861
-
-pattern GL_POINT_TOKEN = 0x0701
-
-pattern GL_POLYGON = 0x0009
-
-pattern GL_POLYGON_BIT = 0x00000008
-
-pattern GL_POLYGON_STIPPLE = 0x0B42
-
-pattern GL_POLYGON_STIPPLE_BIT = 0x00000010
-
-pattern GL_POLYGON_TOKEN = 0x0703
-
-pattern GL_POSITION = 0x1203
-
-pattern GL_PREVIOUS = 0x8578
-
-pattern GL_PROJECTION = 0x1701
-
-pattern GL_PROJECTION_MATRIX = 0x0BA7
-
-pattern GL_PROJECTION_STACK_DEPTH = 0x0BA4
-
-pattern GL_Q = 0x2003
-
-pattern GL_QUADRATIC_ATTENUATION = 0x1209
-
-pattern GL_QUAD_STRIP = 0x0008
-
-pattern GL_R = 0x2002
-
-pattern GL_RED_BIAS = 0x0D15
-
-pattern GL_RED_BITS = 0x0D52
-
-pattern GL_RED_SCALE = 0x0D14
-
-pattern GL_REFLECTION_MAP = 0x8512
-
-pattern GL_RENDER = 0x1C00
-
-pattern GL_RENDER_MODE = 0x0C40
-
-pattern GL_RESCALE_NORMAL = 0x803A
-
-pattern GL_RETURN = 0x0102
-
-pattern GL_RGBA_MODE = 0x0C31
-
-pattern GL_RGB_SCALE = 0x8573
-
-pattern GL_S = 0x2000
-
-pattern GL_SCISSOR_BIT = 0x00080000
-
-pattern GL_SECONDARY_COLOR_ARRAY = 0x845E
-
-pattern GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING = 0x889C
-
-pattern GL_SECONDARY_COLOR_ARRAY_POINTER = 0x845D
-
-pattern GL_SECONDARY_COLOR_ARRAY_SIZE = 0x845A
-
-pattern GL_SECONDARY_COLOR_ARRAY_STRIDE = 0x845C
-
-pattern GL_SECONDARY_COLOR_ARRAY_TYPE = 0x845B
-
-pattern GL_SELECT = 0x1C02
-
-pattern GL_SELECTION_BUFFER_POINTER = 0x0DF3
-
-pattern GL_SELECTION_BUFFER_SIZE = 0x0DF4
-
-pattern GL_SEPARATE_SPECULAR_COLOR = 0x81FA
-
-pattern GL_SHADE_MODEL = 0x0B54
-
-pattern GL_SHININESS = 0x1601
-
-pattern GL_SINGLE_COLOR = 0x81F9
-
-pattern GL_SLUMINANCE = 0x8C46
-
-pattern GL_SLUMINANCE8 = 0x8C47
-
-pattern GL_SLUMINANCE8_ALPHA8 = 0x8C45
-
-pattern GL_SLUMINANCE_ALPHA = 0x8C44
-
-pattern GL_SMOOTH = 0x1D01
-
-pattern GL_SOURCE0_ALPHA = 0x8588
-
-pattern GL_SOURCE0_RGB = 0x8580
-
-pattern GL_SOURCE1_ALPHA = 0x8589
-
-pattern GL_SOURCE1_RGB = 0x8581
-
-pattern GL_SOURCE2_ALPHA = 0x858A
-
-pattern GL_SOURCE2_RGB = 0x8582
-
-pattern GL_SPECULAR = 0x1202
-
-pattern GL_SPHERE_MAP = 0x2402
-
-pattern GL_SPOT_CUTOFF = 0x1206
-
-pattern GL_SPOT_DIRECTION = 0x1204
-
-pattern GL_SPOT_EXPONENT = 0x1205
-
-pattern GL_SRC0_ALPHA = 0x8588
-
-pattern GL_SRC0_RGB = 0x8580
-
-pattern GL_SRC1_RGB = 0x8581
-
-pattern GL_SRC2_ALPHA = 0x858A
-
-pattern GL_SRC2_RGB = 0x8582
-
-pattern GL_STENCIL_BITS = 0x0D57
-
-pattern GL_SUBTRACT = 0x84E7
-
-pattern GL_T = 0x2001
-
-pattern GL_T2F_C3F_V3F = 0x2A2A
-
-pattern GL_T2F_C4F_N3F_V3F = 0x2A2C
-
-pattern GL_T2F_C4UB_V3F = 0x2A29
-
-pattern GL_T2F_N3F_V3F = 0x2A2B
-
-pattern GL_T2F_V3F = 0x2A27
-
-pattern GL_T4F_C4F_N3F_V4F = 0x2A2D
-
-pattern GL_T4F_V4F = 0x2A28
-
-pattern GL_TEXTURE_BIT = 0x00040000
-
-pattern GL_TEXTURE_BORDER = 0x1005
-
-pattern GL_TEXTURE_COMPONENTS = 0x1003
-
-pattern GL_TEXTURE_COORD_ARRAY = 0x8078
-
-pattern GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING = 0x889A
-
-pattern GL_TEXTURE_COORD_ARRAY_POINTER = 0x8092
-
-pattern GL_TEXTURE_COORD_ARRAY_SIZE = 0x8088
-
-pattern GL_TEXTURE_COORD_ARRAY_STRIDE = 0x808A
-
-pattern GL_TEXTURE_COORD_ARRAY_TYPE = 0x8089
-
-pattern GL_TEXTURE_ENV = 0x2300
-
-pattern GL_TEXTURE_ENV_COLOR = 0x2201
-
-pattern GL_TEXTURE_ENV_MODE = 0x2200
-
-pattern GL_TEXTURE_FILTER_CONTROL = 0x8500
-
-pattern GL_TEXTURE_GEN_MODE = 0x2500
-
-pattern GL_TEXTURE_GEN_Q = 0x0C63
-
-pattern GL_TEXTURE_GEN_R = 0x0C62
-
-pattern GL_TEXTURE_GEN_S = 0x0C60
-
-pattern GL_TEXTURE_GEN_T = 0x0C61
-
-pattern GL_TEXTURE_INTENSITY_SIZE = 0x8061
-
-pattern GL_TEXTURE_INTENSITY_TYPE = 0x8C15
-
-pattern GL_TEXTURE_LUMINANCE_SIZE = 0x8060
-
-pattern GL_TEXTURE_LUMINANCE_TYPE = 0x8C14
-
-pattern GL_TEXTURE_MATRIX = 0x0BA8
-
-pattern GL_TEXTURE_PRIORITY = 0x8066
-
-pattern GL_TEXTURE_RESIDENT = 0x8067
-
-pattern GL_TEXTURE_STACK_DEPTH = 0x0BA5
-
-pattern GL_TRANSFORM_BIT = 0x00001000
-
-pattern GL_TRANSPOSE_COLOR_MATRIX = 0x84E6
-
-pattern GL_TRANSPOSE_MODELVIEW_MATRIX = 0x84E3
-
-pattern GL_TRANSPOSE_PROJECTION_MATRIX = 0x84E4
-
-pattern GL_TRANSPOSE_TEXTURE_MATRIX = 0x84E5
-
-pattern GL_V2F = 0x2A20
-
-pattern GL_V3F = 0x2A21
-
-pattern GL_VERTEX_ARRAY_BUFFER_BINDING = 0x8896
-
-pattern GL_VERTEX_ARRAY_POINTER = 0x808E
-
-pattern GL_VERTEX_ARRAY_SIZE = 0x807A
-
-pattern GL_VERTEX_ARRAY_STRIDE = 0x807C
-
-pattern GL_VERTEX_ARRAY_TYPE = 0x807B
-
-pattern GL_VERTEX_PROGRAM_TWO_SIDE = 0x8643
-
-pattern GL_VIEWPORT_BIT = 0x00000800
-
-pattern GL_WEIGHT_ARRAY_BUFFER_BINDING = 0x889E
-
-pattern GL_ZOOM_X = 0x0D16
-
-pattern GL_ZOOM_Y = 0x0D17
-
-glActiveTexture :: MonadIO m => GLenum -> m ()
-glActiveTexture = ffienumIOV glActiveTextureFunPtr
-
-glActiveTextureFunPtr :: FunPtr (GLenum -> IO ())
-glActiveTextureFunPtr = unsafePerformIO (getProcAddress "glActiveTexture")
-
-{-# NOINLINE glActiveTextureFunPtr #-}
-
-glAttachShader :: MonadIO m => GLuint -> GLuint -> m ()
-glAttachShader = ffiuintuintIOV glAttachShaderFunPtr
-
-glAttachShaderFunPtr :: FunPtr (GLuint -> GLuint -> IO ())
-glAttachShaderFunPtr = unsafePerformIO (getProcAddress "glAttachShader")
-
-{-# NOINLINE glAttachShaderFunPtr #-}
-
-glBeginConditionalRender :: MonadIO m => GLuint -> GLenum -> m ()
-glBeginConditionalRender = ffiuintenumIOV glBeginConditionalRenderFunPtr
-
-glBeginConditionalRenderFunPtr :: FunPtr (GLuint -> GLenum -> IO ())
-glBeginConditionalRenderFunPtr = unsafePerformIO (getProcAddress "glBeginConditionalRender")
-
-{-# NOINLINE glBeginConditionalRenderFunPtr #-}
-
-glBeginQuery :: MonadIO m => GLenum -> GLuint -> m ()
-glBeginQuery = ffienumuintIOV glBeginQueryFunPtr
-
-glBeginQueryFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
-glBeginQueryFunPtr = unsafePerformIO (getProcAddress "glBeginQuery")
-
-{-# NOINLINE glBeginQueryFunPtr #-}
-
-glBeginTransformFeedback :: MonadIO m => GLenum -> m ()
-glBeginTransformFeedback = ffienumIOV glBeginTransformFeedbackFunPtr
-
-glBeginTransformFeedbackFunPtr :: FunPtr (GLenum -> IO ())
-glBeginTransformFeedbackFunPtr = unsafePerformIO (getProcAddress "glBeginTransformFeedback")
-
-{-# NOINLINE glBeginTransformFeedbackFunPtr #-}
-
-glBindAttribLocation :: MonadIO m => GLuint -> GLuint -> Ptr GLchar -> m ()
-glBindAttribLocation = ffiuintuintPtrcharIOV glBindAttribLocationFunPtr
-
-glBindAttribLocationFunPtr :: FunPtr (GLuint -> GLuint -> Ptr GLchar -> IO ())
-glBindAttribLocationFunPtr = unsafePerformIO (getProcAddress "glBindAttribLocation")
-
-{-# NOINLINE glBindAttribLocationFunPtr #-}
-
-glBindBuffer :: MonadIO m => GLenum -> GLuint -> m ()
-glBindBuffer = ffienumuintIOV glBindBufferFunPtr
-
-glBindBufferFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
-glBindBufferFunPtr = unsafePerformIO (getProcAddress "glBindBuffer")
-
-{-# NOINLINE glBindBufferFunPtr #-}
-
-glBindBufferBase :: MonadIO m => GLenum -> GLuint -> GLuint -> m ()
-glBindBufferBase = ffienumuintuintIOV glBindBufferBaseFunPtr
-
-glBindBufferBaseFunPtr :: FunPtr (GLenum -> GLuint -> GLuint -> IO ())
-glBindBufferBaseFunPtr = unsafePerformIO (getProcAddress "glBindBufferBase")
-
-{-# NOINLINE glBindBufferBaseFunPtr #-}
-
-glBindBufferRange :: MonadIO m => GLenum -> GLuint -> GLuint -> GLintptr -> GLsizeiptr -> m ()
-glBindBufferRange = ffienumuintuintintptrsizeiptrIOV glBindBufferRangeFunPtr
-
-glBindBufferRangeFunPtr :: FunPtr (GLenum -> GLuint -> GLuint -> GLintptr -> GLsizeiptr -> IO ())
-glBindBufferRangeFunPtr = unsafePerformIO (getProcAddress "glBindBufferRange")
-
-{-# NOINLINE glBindBufferRangeFunPtr #-}
-
-glBindFragDataLocation :: MonadIO m => GLuint -> GLuint -> Ptr GLchar -> m ()
-glBindFragDataLocation = ffiuintuintPtrcharIOV glBindFragDataLocationFunPtr
-
-glBindFragDataLocationFunPtr :: FunPtr (GLuint -> GLuint -> Ptr GLchar -> IO ())
-glBindFragDataLocationFunPtr = unsafePerformIO (getProcAddress "glBindFragDataLocation")
-
-{-# NOINLINE glBindFragDataLocationFunPtr #-}
-
-glBindTexture :: MonadIO m => GLenum -> GLuint -> m ()
-glBindTexture = ffienumuintIOV glBindTextureFunPtr
-
-glBindTextureFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
-glBindTextureFunPtr = unsafePerformIO (getProcAddress "glBindTexture")
-
-{-# NOINLINE glBindTextureFunPtr #-}
-
-glBlendEquationSeparate :: MonadIO m => GLenum -> GLenum -> m ()
-glBlendEquationSeparate = ffienumenumIOV glBlendEquationSeparateFunPtr
-
-glBlendEquationSeparateFunPtr :: FunPtr (GLenum -> GLenum -> IO ())
-glBlendEquationSeparateFunPtr = unsafePerformIO (getProcAddress "glBlendEquationSeparate")
-
-{-# NOINLINE glBlendEquationSeparateFunPtr #-}
-
-glBlendFunc :: MonadIO m => GLenum -> GLenum -> m ()
-glBlendFunc = ffienumenumIOV glBlendFuncFunPtr
-
-glBlendFuncFunPtr :: FunPtr (GLenum -> GLenum -> IO ())
-glBlendFuncFunPtr = unsafePerformIO (getProcAddress "glBlendFunc")
-
-{-# NOINLINE glBlendFuncFunPtr #-}
-
-glBlendFuncSeparate :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> m ()
-glBlendFuncSeparate = ffienumenumenumenumIOV glBlendFuncSeparateFunPtr
-
-glBlendFuncSeparateFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLenum -> IO ())
-glBlendFuncSeparateFunPtr = unsafePerformIO (getProcAddress "glBlendFuncSeparate")
-
-{-# NOINLINE glBlendFuncSeparateFunPtr #-}
-
-glBufferData :: MonadIO m => GLenum -> GLsizeiptr -> Ptr () -> GLenum -> m ()
-glBufferData = ffienumsizeiptrPtrVenumIOV glBufferDataFunPtr
-
-glBufferDataFunPtr :: FunPtr (GLenum -> GLsizeiptr -> Ptr () -> GLenum -> IO ())
-glBufferDataFunPtr = unsafePerformIO (getProcAddress "glBufferData")
-
-{-# NOINLINE glBufferDataFunPtr #-}
-
-glBufferSubData :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> Ptr () -> m ()
-glBufferSubData = ffienumintptrsizeiptrPtrVIOV glBufferSubDataFunPtr
-
-glBufferSubDataFunPtr :: FunPtr (GLenum -> GLintptr -> GLsizeiptr -> Ptr () -> IO ())
-glBufferSubDataFunPtr = unsafePerformIO (getProcAddress "glBufferSubData")
-
-{-# NOINLINE glBufferSubDataFunPtr #-}
-
-glClampColor :: MonadIO m => GLenum -> GLenum -> m ()
-glClampColor = ffienumenumIOV glClampColorFunPtr
-
-glClampColorFunPtr :: FunPtr (GLenum -> GLenum -> IO ())
-glClampColorFunPtr = unsafePerformIO (getProcAddress "glClampColor")
-
-{-# NOINLINE glClampColorFunPtr #-}
-
-glClear :: MonadIO m => GLbitfield -> m ()
-glClear = ffibitfieldIOV glClearFunPtr
-
-glClearFunPtr :: FunPtr (GLbitfield -> IO ())
-glClearFunPtr = unsafePerformIO (getProcAddress "glClear")
-
-{-# NOINLINE glClearFunPtr #-}
-
-glClearBufferfi :: MonadIO m => GLenum -> GLint -> GLfloat -> GLint -> m ()
-glClearBufferfi = ffienumintfloatintIOV glClearBufferfiFunPtr
-
-glClearBufferfiFunPtr :: FunPtr (GLenum -> GLint -> GLfloat -> GLint -> IO ())
-glClearBufferfiFunPtr = unsafePerformIO (getProcAddress "glClearBufferfi")
-
-{-# NOINLINE glClearBufferfiFunPtr #-}
-
-glClearBufferfv :: MonadIO m => GLenum -> GLint -> Ptr GLfloat -> m ()
-glClearBufferfv = ffienumintPtrfloatIOV glClearBufferfvFunPtr
-
-glClearBufferfvFunPtr :: FunPtr (GLenum -> GLint -> Ptr GLfloat -> IO ())
-glClearBufferfvFunPtr = unsafePerformIO (getProcAddress "glClearBufferfv")
-
-{-# NOINLINE glClearBufferfvFunPtr #-}
-
-glClearBufferiv :: MonadIO m => GLenum -> GLint -> Ptr GLint -> m ()
-glClearBufferiv = ffienumintPtrintIOV glClearBufferivFunPtr
-
-glClearBufferivFunPtr :: FunPtr (GLenum -> GLint -> Ptr GLint -> IO ())
-glClearBufferivFunPtr = unsafePerformIO (getProcAddress "glClearBufferiv")
-
-{-# NOINLINE glClearBufferivFunPtr #-}
-
-glClearBufferuiv :: MonadIO m => GLenum -> GLint -> Ptr GLuint -> m ()
-glClearBufferuiv = ffienumintPtruintIOV glClearBufferuivFunPtr
-
-glClearBufferuivFunPtr :: FunPtr (GLenum -> GLint -> Ptr GLuint -> IO ())
-glClearBufferuivFunPtr = unsafePerformIO (getProcAddress "glClearBufferuiv")
-
-{-# NOINLINE glClearBufferuivFunPtr #-}
-
-glClearColor :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
-glClearColor = ffifloatfloatfloatfloatIOV glClearColorFunPtr
-
-glClearColorFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
-glClearColorFunPtr = unsafePerformIO (getProcAddress "glClearColor")
-
-{-# NOINLINE glClearColorFunPtr #-}
-
-glClearDepth :: MonadIO m => GLdouble -> m ()
-glClearDepth = ffidoubleIOV glClearDepthFunPtr
-
-glClearDepthFunPtr :: FunPtr (GLdouble -> IO ())
-glClearDepthFunPtr = unsafePerformIO (getProcAddress "glClearDepth")
-
-{-# NOINLINE glClearDepthFunPtr #-}
-
-glClearStencil :: MonadIO m => GLint -> m ()
-glClearStencil = ffiintIOV glClearStencilFunPtr
-
-glClearStencilFunPtr :: FunPtr (GLint -> IO ())
-glClearStencilFunPtr = unsafePerformIO (getProcAddress "glClearStencil")
-
-{-# NOINLINE glClearStencilFunPtr #-}
-
-glColorMask :: MonadIO m => GLboolean -> GLboolean -> GLboolean -> GLboolean -> m ()
-glColorMask = ffibooleanbooleanbooleanbooleanIOV glColorMaskFunPtr
-
-glColorMaskFunPtr :: FunPtr (GLboolean -> GLboolean -> GLboolean -> GLboolean -> IO ())
-glColorMaskFunPtr = unsafePerformIO (getProcAddress "glColorMask")
-
-{-# NOINLINE glColorMaskFunPtr #-}
-
-glColorMaski :: MonadIO m => GLuint -> GLboolean -> GLboolean -> GLboolean -> GLboolean -> m ()
-glColorMaski = ffiuintbooleanbooleanbooleanbooleanIOV glColorMaskiFunPtr
-
-glColorMaskiFunPtr :: FunPtr (GLuint -> GLboolean -> GLboolean -> GLboolean -> GLboolean -> IO ())
-glColorMaskiFunPtr = unsafePerformIO (getProcAddress "glColorMaski")
-
-{-# NOINLINE glColorMaskiFunPtr #-}
-
-glCompileShader :: MonadIO m => GLuint -> m ()
-glCompileShader = ffiuintIOV glCompileShaderFunPtr
-
-glCompileShaderFunPtr :: FunPtr (GLuint -> IO ())
-glCompileShaderFunPtr = unsafePerformIO (getProcAddress "glCompileShader")
-
-{-# NOINLINE glCompileShaderFunPtr #-}
-
-glCompressedTexImage1D :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLint -> GLsizei -> Ptr () -> m ()
-glCompressedTexImage1D = ffienumintenumsizeiintsizeiPtrVIOV glCompressedTexImage1DFunPtr
-
-glCompressedTexImage1DFunPtr :: FunPtr (GLenum -> GLint -> GLenum -> GLsizei -> GLint -> GLsizei -> Ptr () -> IO ())
-glCompressedTexImage1DFunPtr = unsafePerformIO (getProcAddress "glCompressedTexImage1D")
-
-{-# NOINLINE glCompressedTexImage1DFunPtr #-}
-
-glCompressedTexImage2D :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> m ()
-glCompressedTexImage2D = ffienumintenumsizeisizeiintsizeiPtrVIOV glCompressedTexImage2DFunPtr
-
-glCompressedTexImage2DFunPtr :: FunPtr (GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> IO ())
-glCompressedTexImage2DFunPtr = unsafePerformIO (getProcAddress "glCompressedTexImage2D")
-
-{-# NOINLINE glCompressedTexImage2DFunPtr #-}
-
-glCompressedTexImage3D :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> m ()
-glCompressedTexImage3D = ffienumintenumsizeisizeisizeiintsizeiPtrVIOV glCompressedTexImage3DFunPtr
-
-glCompressedTexImage3DFunPtr :: FunPtr (GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> IO ())
-glCompressedTexImage3DFunPtr = unsafePerformIO (getProcAddress "glCompressedTexImage3D")
-
-{-# NOINLINE glCompressedTexImage3DFunPtr #-}
-
-glCompressedTexSubImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr () -> m ()
-glCompressedTexSubImage1D = ffienumintintsizeienumsizeiPtrVIOV glCompressedTexSubImage1DFunPtr
-
-glCompressedTexSubImage1DFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ())
-glCompressedTexSubImage1DFunPtr = unsafePerformIO (getProcAddress "glCompressedTexSubImage1D")
-
-{-# NOINLINE glCompressedTexSubImage1DFunPtr #-}
-
-glCompressedTexSubImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> m ()
-glCompressedTexSubImage2D = ffienumintintintsizeisizeienumsizeiPtrVIOV glCompressedTexSubImage2DFunPtr
-
-glCompressedTexSubImage2DFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ())
-glCompressedTexSubImage2DFunPtr = unsafePerformIO (getProcAddress "glCompressedTexSubImage2D")
-
-{-# NOINLINE glCompressedTexSubImage2DFunPtr #-}
-
-glCompressedTexSubImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> m ()
-glCompressedTexSubImage3D = ffienumintintintintsizeisizeisizeienumsizeiPtrVIOV glCompressedTexSubImage3DFunPtr
-
-glCompressedTexSubImage3DFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ())
-glCompressedTexSubImage3DFunPtr = unsafePerformIO (getProcAddress "glCompressedTexSubImage3D")
-
-{-# NOINLINE glCompressedTexSubImage3DFunPtr #-}
-
-glCopyTexImage1D :: MonadIO m => GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> m ()
-glCopyTexImage1D = ffienumintenumintintsizeiintIOV glCopyTexImage1DFunPtr
-
-glCopyTexImage1DFunPtr :: FunPtr (GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> IO ())
-glCopyTexImage1DFunPtr = unsafePerformIO (getProcAddress "glCopyTexImage1D")
-
-{-# NOINLINE glCopyTexImage1DFunPtr #-}
-
-glCopyTexImage2D :: MonadIO m => GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> m ()
-glCopyTexImage2D = ffienumintenumintintsizeisizeiintIOV glCopyTexImage2DFunPtr
-
-glCopyTexImage2DFunPtr :: FunPtr (GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> IO ())
-glCopyTexImage2DFunPtr = unsafePerformIO (getProcAddress "glCopyTexImage2D")
-
-{-# NOINLINE glCopyTexImage2DFunPtr #-}
-
-glCopyTexSubImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> m ()
-glCopyTexSubImage1D = ffienumintintintintsizeiIOV glCopyTexSubImage1DFunPtr
-
-glCopyTexSubImage1DFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> IO ())
-glCopyTexSubImage1DFunPtr = unsafePerformIO (getProcAddress "glCopyTexSubImage1D")
-
-{-# NOINLINE glCopyTexSubImage1DFunPtr #-}
-
-glCopyTexSubImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()
-glCopyTexSubImage2D = ffienumintintintintintsizeisizeiIOV glCopyTexSubImage2DFunPtr
-
-glCopyTexSubImage2DFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ())
-glCopyTexSubImage2DFunPtr = unsafePerformIO (getProcAddress "glCopyTexSubImage2D")
-
-{-# NOINLINE glCopyTexSubImage2DFunPtr #-}
-
-glCopyTexSubImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()
-glCopyTexSubImage3D = ffienumintintintintintintsizeisizeiIOV glCopyTexSubImage3DFunPtr
-
-glCopyTexSubImage3DFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ())
-glCopyTexSubImage3DFunPtr = unsafePerformIO (getProcAddress "glCopyTexSubImage3D")
-
-{-# NOINLINE glCopyTexSubImage3DFunPtr #-}
-
-glCreateProgram :: MonadIO m => m GLuint
-glCreateProgram = ffiIOuint glCreateProgramFunPtr
-
-glCreateProgramFunPtr :: FunPtr (IO GLuint)
-glCreateProgramFunPtr = unsafePerformIO (getProcAddress "glCreateProgram")
-
-{-# NOINLINE glCreateProgramFunPtr #-}
-
-glCreateShader :: MonadIO m => GLenum -> m GLuint
-glCreateShader = ffienumIOuint glCreateShaderFunPtr
-
-glCreateShaderFunPtr :: FunPtr (GLenum -> IO GLuint)
-glCreateShaderFunPtr = unsafePerformIO (getProcAddress "glCreateShader")
-
-{-# NOINLINE glCreateShaderFunPtr #-}
-
-glCullFace :: MonadIO m => GLenum -> m ()
-glCullFace = ffienumIOV glCullFaceFunPtr
-
-glCullFaceFunPtr :: FunPtr (GLenum -> IO ())
-glCullFaceFunPtr = unsafePerformIO (getProcAddress "glCullFace")
-
-{-# NOINLINE glCullFaceFunPtr #-}
-
-glDeleteBuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
-glDeleteBuffers = ffisizeiPtruintIOV glDeleteBuffersFunPtr
-
-glDeleteBuffersFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
-glDeleteBuffersFunPtr = unsafePerformIO (getProcAddress "glDeleteBuffers")
-
-{-# NOINLINE glDeleteBuffersFunPtr #-}
-
-glDeleteProgram :: MonadIO m => GLuint -> m ()
-glDeleteProgram = ffiuintIOV glDeleteProgramFunPtr
-
-glDeleteProgramFunPtr :: FunPtr (GLuint -> IO ())
-glDeleteProgramFunPtr = unsafePerformIO (getProcAddress "glDeleteProgram")
-
-{-# NOINLINE glDeleteProgramFunPtr #-}
-
-glDeleteQueries :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
-glDeleteQueries = ffisizeiPtruintIOV glDeleteQueriesFunPtr
-
-glDeleteQueriesFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
-glDeleteQueriesFunPtr = unsafePerformIO (getProcAddress "glDeleteQueries")
-
-{-# NOINLINE glDeleteQueriesFunPtr #-}
-
-glDeleteShader :: MonadIO m => GLuint -> m ()
-glDeleteShader = ffiuintIOV glDeleteShaderFunPtr
-
-glDeleteShaderFunPtr :: FunPtr (GLuint -> IO ())
-glDeleteShaderFunPtr = unsafePerformIO (getProcAddress "glDeleteShader")
-
-{-# NOINLINE glDeleteShaderFunPtr #-}
-
-glDeleteTextures :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
-glDeleteTextures = ffisizeiPtruintIOV glDeleteTexturesFunPtr
-
-glDeleteTexturesFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
-glDeleteTexturesFunPtr = unsafePerformIO (getProcAddress "glDeleteTextures")
-
-{-# NOINLINE glDeleteTexturesFunPtr #-}
-
-glDepthFunc :: MonadIO m => GLenum -> m ()
-glDepthFunc = ffienumIOV glDepthFuncFunPtr
-
-glDepthFuncFunPtr :: FunPtr (GLenum -> IO ())
-glDepthFuncFunPtr = unsafePerformIO (getProcAddress "glDepthFunc")
-
-{-# NOINLINE glDepthFuncFunPtr #-}
-
-glDepthMask :: MonadIO m => GLboolean -> m ()
-glDepthMask = ffibooleanIOV glDepthMaskFunPtr
-
-glDepthMaskFunPtr :: FunPtr (GLboolean -> IO ())
-glDepthMaskFunPtr = unsafePerformIO (getProcAddress "glDepthMask")
-
-{-# NOINLINE glDepthMaskFunPtr #-}
-
-glDepthRange :: MonadIO m => GLdouble -> GLdouble -> m ()
-glDepthRange = ffidoubledoubleIOV glDepthRangeFunPtr
-
-glDepthRangeFunPtr :: FunPtr (GLdouble -> GLdouble -> IO ())
-glDepthRangeFunPtr = unsafePerformIO (getProcAddress "glDepthRange")
-
-{-# NOINLINE glDepthRangeFunPtr #-}
-
-glDetachShader :: MonadIO m => GLuint -> GLuint -> m ()
-glDetachShader = ffiuintuintIOV glDetachShaderFunPtr
-
-glDetachShaderFunPtr :: FunPtr (GLuint -> GLuint -> IO ())
-glDetachShaderFunPtr = unsafePerformIO (getProcAddress "glDetachShader")
-
-{-# NOINLINE glDetachShaderFunPtr #-}
-
-glDisable :: MonadIO m => GLenum -> m ()
-glDisable = ffienumIOV glDisableFunPtr
-
-glDisableFunPtr :: FunPtr (GLenum -> IO ())
-glDisableFunPtr = unsafePerformIO (getProcAddress "glDisable")
-
-{-# NOINLINE glDisableFunPtr #-}
-
-glDisableVertexAttribArray :: MonadIO m => GLuint -> m ()
-glDisableVertexAttribArray = ffiuintIOV glDisableVertexAttribArrayFunPtr
-
-glDisableVertexAttribArrayFunPtr :: FunPtr (GLuint -> IO ())
-glDisableVertexAttribArrayFunPtr = unsafePerformIO (getProcAddress "glDisableVertexAttribArray")
-
-{-# NOINLINE glDisableVertexAttribArrayFunPtr #-}
-
-glDisablei :: MonadIO m => GLenum -> GLuint -> m ()
-glDisablei = ffienumuintIOV glDisableiFunPtr
-
-glDisableiFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
-glDisableiFunPtr = unsafePerformIO (getProcAddress "glDisablei")
-
-{-# NOINLINE glDisableiFunPtr #-}
-
-glDrawArrays :: MonadIO m => GLenum -> GLint -> GLsizei -> m ()
-glDrawArrays = ffienumintsizeiIOV glDrawArraysFunPtr
-
-glDrawArraysFunPtr :: FunPtr (GLenum -> GLint -> GLsizei -> IO ())
-glDrawArraysFunPtr = unsafePerformIO (getProcAddress "glDrawArrays")
-
-{-# NOINLINE glDrawArraysFunPtr #-}
-
-glDrawArraysInstanced :: MonadIO m => GLenum -> GLint -> GLsizei -> GLsizei -> m ()
-glDrawArraysInstanced = ffienumintsizeisizeiIOV glDrawArraysInstancedFunPtr
-
-glDrawArraysInstancedFunPtr :: FunPtr (GLenum -> GLint -> GLsizei -> GLsizei -> IO ())
-glDrawArraysInstancedFunPtr = unsafePerformIO (getProcAddress "glDrawArraysInstanced")
-
-{-# NOINLINE glDrawArraysInstancedFunPtr #-}
-
-glDrawBuffer :: MonadIO m => GLenum -> m ()
-glDrawBuffer = ffienumIOV glDrawBufferFunPtr
-
-glDrawBufferFunPtr :: FunPtr (GLenum -> IO ())
-glDrawBufferFunPtr = unsafePerformIO (getProcAddress "glDrawBuffer")
-
-{-# NOINLINE glDrawBufferFunPtr #-}
-
-glDrawBuffers :: MonadIO m => GLsizei -> Ptr GLenum -> m ()
-glDrawBuffers = ffisizeiPtrenumIOV glDrawBuffersFunPtr
-
-glDrawBuffersFunPtr :: FunPtr (GLsizei -> Ptr GLenum -> IO ())
-glDrawBuffersFunPtr = unsafePerformIO (getProcAddress "glDrawBuffers")
-
-{-# NOINLINE glDrawBuffersFunPtr #-}
-
-glDrawElements :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr () -> m ()
-glDrawElements = ffienumsizeienumPtrVIOV glDrawElementsFunPtr
-
-glDrawElementsFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> Ptr () -> IO ())
-glDrawElementsFunPtr = unsafePerformIO (getProcAddress "glDrawElements")
-
-{-# NOINLINE glDrawElementsFunPtr #-}
-
-glDrawElementsInstanced :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> m ()
-glDrawElementsInstanced = ffienumsizeienumPtrVsizeiIOV glDrawElementsInstancedFunPtr
-
-glDrawElementsInstancedFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> IO ())
-glDrawElementsInstancedFunPtr = unsafePerformIO (getProcAddress "glDrawElementsInstanced")
-
-{-# NOINLINE glDrawElementsInstancedFunPtr #-}
-
-glDrawRangeElements :: MonadIO m => GLenum -> GLuint -> GLuint -> GLsizei -> GLenum -> Ptr () -> m ()
-glDrawRangeElements = ffienumuintuintsizeienumPtrVIOV glDrawRangeElementsFunPtr
-
-glDrawRangeElementsFunPtr :: FunPtr (GLenum -> GLuint -> GLuint -> GLsizei -> GLenum -> Ptr () -> IO ())
-glDrawRangeElementsFunPtr = unsafePerformIO (getProcAddress "glDrawRangeElements")
-
-{-# NOINLINE glDrawRangeElementsFunPtr #-}
-
-glEnable :: MonadIO m => GLenum -> m ()
-glEnable = ffienumIOV glEnableFunPtr
-
-glEnableFunPtr :: FunPtr (GLenum -> IO ())
-glEnableFunPtr = unsafePerformIO (getProcAddress "glEnable")
-
-{-# NOINLINE glEnableFunPtr #-}
-
-glEnableVertexAttribArray :: MonadIO m => GLuint -> m ()
-glEnableVertexAttribArray = ffiuintIOV glEnableVertexAttribArrayFunPtr
-
-glEnableVertexAttribArrayFunPtr :: FunPtr (GLuint -> IO ())
-glEnableVertexAttribArrayFunPtr = unsafePerformIO (getProcAddress "glEnableVertexAttribArray")
-
-{-# NOINLINE glEnableVertexAttribArrayFunPtr #-}
-
-glEnablei :: MonadIO m => GLenum -> GLuint -> m ()
-glEnablei = ffienumuintIOV glEnableiFunPtr
-
-glEnableiFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
-glEnableiFunPtr = unsafePerformIO (getProcAddress "glEnablei")
-
-{-# NOINLINE glEnableiFunPtr #-}
-
-glEndConditionalRender :: MonadIO m => m ()
-glEndConditionalRender = ffiIOV glEndConditionalRenderFunPtr
-
-glEndConditionalRenderFunPtr :: FunPtr (IO ())
-glEndConditionalRenderFunPtr = unsafePerformIO (getProcAddress "glEndConditionalRender")
-
-{-# NOINLINE glEndConditionalRenderFunPtr #-}
-
-glEndQuery :: MonadIO m => GLenum -> m ()
-glEndQuery = ffienumIOV glEndQueryFunPtr
-
-glEndQueryFunPtr :: FunPtr (GLenum -> IO ())
-glEndQueryFunPtr = unsafePerformIO (getProcAddress "glEndQuery")
-
-{-# NOINLINE glEndQueryFunPtr #-}
-
-glEndTransformFeedback :: MonadIO m => m ()
-glEndTransformFeedback = ffiIOV glEndTransformFeedbackFunPtr
-
-glEndTransformFeedbackFunPtr :: FunPtr (IO ())
-glEndTransformFeedbackFunPtr = unsafePerformIO (getProcAddress "glEndTransformFeedback")
-
-{-# NOINLINE glEndTransformFeedbackFunPtr #-}
-
-glFinish :: MonadIO m => m ()
-glFinish = ffiIOV glFinishFunPtr
-
-glFinishFunPtr :: FunPtr (IO ())
-glFinishFunPtr = unsafePerformIO (getProcAddress "glFinish")
-
-{-# NOINLINE glFinishFunPtr #-}
-
-glFlush :: MonadIO m => m ()
-glFlush = ffiIOV glFlushFunPtr
-
-glFlushFunPtr :: FunPtr (IO ())
-glFlushFunPtr = unsafePerformIO (getProcAddress "glFlush")
-
-{-# NOINLINE glFlushFunPtr #-}
-
-glFrontFace :: MonadIO m => GLenum -> m ()
-glFrontFace = ffienumIOV glFrontFaceFunPtr
-
-glFrontFaceFunPtr :: FunPtr (GLenum -> IO ())
-glFrontFaceFunPtr = unsafePerformIO (getProcAddress "glFrontFace")
-
-{-# NOINLINE glFrontFaceFunPtr #-}
-
-glGenBuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
-glGenBuffers = ffisizeiPtruintIOV glGenBuffersFunPtr
-
-glGenBuffersFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
-glGenBuffersFunPtr = unsafePerformIO (getProcAddress "glGenBuffers")
-
-{-# NOINLINE glGenBuffersFunPtr #-}
-
-glGenQueries :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
-glGenQueries = ffisizeiPtruintIOV glGenQueriesFunPtr
-
-glGenQueriesFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
-glGenQueriesFunPtr = unsafePerformIO (getProcAddress "glGenQueries")
-
-{-# NOINLINE glGenQueriesFunPtr #-}
-
-glGenTextures :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
-glGenTextures = ffisizeiPtruintIOV glGenTexturesFunPtr
-
-glGenTexturesFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
-glGenTexturesFunPtr = unsafePerformIO (getProcAddress "glGenTextures")
-
-{-# NOINLINE glGenTexturesFunPtr #-}
-
-glGetActiveAttrib :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLint -> Ptr GLenum -> Ptr GLchar -> m ()
-glGetActiveAttrib = ffiuintuintsizeiPtrsizeiPtrintPtrenumPtrcharIOV glGetActiveAttribFunPtr
-
-glGetActiveAttribFunPtr :: FunPtr (GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLint -> Ptr GLenum -> Ptr GLchar -> IO ())
-glGetActiveAttribFunPtr = unsafePerformIO (getProcAddress "glGetActiveAttrib")
-
-{-# NOINLINE glGetActiveAttribFunPtr #-}
-
-glGetActiveUniform :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLint -> Ptr GLenum -> Ptr GLchar -> m ()
-glGetActiveUniform = ffiuintuintsizeiPtrsizeiPtrintPtrenumPtrcharIOV glGetActiveUniformFunPtr
-
-glGetActiveUniformFunPtr :: FunPtr (GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLint -> Ptr GLenum -> Ptr GLchar -> IO ())
-glGetActiveUniformFunPtr = unsafePerformIO (getProcAddress "glGetActiveUniform")
-
-{-# NOINLINE glGetActiveUniformFunPtr #-}
-
-glGetAttachedShaders :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLuint -> m ()
-glGetAttachedShaders = ffiuintsizeiPtrsizeiPtruintIOV glGetAttachedShadersFunPtr
-
-glGetAttachedShadersFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLuint -> IO ())
-glGetAttachedShadersFunPtr = unsafePerformIO (getProcAddress "glGetAttachedShaders")
-
-{-# NOINLINE glGetAttachedShadersFunPtr #-}
-
-glGetAttribLocation :: MonadIO m => GLuint -> Ptr GLchar -> m GLint
-glGetAttribLocation = ffiuintPtrcharIOint glGetAttribLocationFunPtr
-
-glGetAttribLocationFunPtr :: FunPtr (GLuint -> Ptr GLchar -> IO GLint)
-glGetAttribLocationFunPtr = unsafePerformIO (getProcAddress "glGetAttribLocation")
-
-{-# NOINLINE glGetAttribLocationFunPtr #-}
-
-glGetBooleani_v :: MonadIO m => GLenum -> GLuint -> Ptr GLboolean -> m ()
-glGetBooleani_v = ffienumuintPtrbooleanIOV glGetBooleani_vFunPtr
-
-glGetBooleani_vFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLboolean -> IO ())
-glGetBooleani_vFunPtr = unsafePerformIO (getProcAddress "glGetBooleani_v")
-
-{-# NOINLINE glGetBooleani_vFunPtr #-}
-
-glGetBooleanv :: MonadIO m => GLenum -> Ptr GLboolean -> m ()
-glGetBooleanv = ffienumPtrbooleanIOV glGetBooleanvFunPtr
-
-glGetBooleanvFunPtr :: FunPtr (GLenum -> Ptr GLboolean -> IO ())
-glGetBooleanvFunPtr = unsafePerformIO (getProcAddress "glGetBooleanv")
-
-{-# NOINLINE glGetBooleanvFunPtr #-}
-
-glGetBufferParameteri64v :: MonadIO m => GLenum -> GLenum -> Ptr GLint64 -> m ()
-glGetBufferParameteri64v = ffienumenumPtrint64IOV glGetBufferParameteri64vFunPtr
-
-glGetBufferParameteri64vFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint64 -> IO ())
-glGetBufferParameteri64vFunPtr = unsafePerformIO (getProcAddress "glGetBufferParameteri64v")
-
-{-# NOINLINE glGetBufferParameteri64vFunPtr #-}
-
-glGetBufferParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
-glGetBufferParameteriv = ffienumenumPtrintIOV glGetBufferParameterivFunPtr
-
-glGetBufferParameterivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
-glGetBufferParameterivFunPtr = unsafePerformIO (getProcAddress "glGetBufferParameteriv")
-
-{-# NOINLINE glGetBufferParameterivFunPtr #-}
-
-glGetBufferPointerv :: MonadIO m => GLenum -> GLenum -> Ptr () -> m ()
-glGetBufferPointerv = ffienumenumPtrVIOV glGetBufferPointervFunPtr
-
-glGetBufferPointervFunPtr :: FunPtr (GLenum -> GLenum -> Ptr () -> IO ())
-glGetBufferPointervFunPtr = unsafePerformIO (getProcAddress "glGetBufferPointerv")
-
-{-# NOINLINE glGetBufferPointervFunPtr #-}
-
-glGetBufferSubData :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> Ptr () -> m ()
-glGetBufferSubData = ffienumintptrsizeiptrPtrVIOV glGetBufferSubDataFunPtr
-
-glGetBufferSubDataFunPtr :: FunPtr (GLenum -> GLintptr -> GLsizeiptr -> Ptr () -> IO ())
-glGetBufferSubDataFunPtr = unsafePerformIO (getProcAddress "glGetBufferSubData")
-
-{-# NOINLINE glGetBufferSubDataFunPtr #-}
-
-glGetCompressedTexImage :: MonadIO m => GLenum -> GLint -> Ptr () -> m ()
-glGetCompressedTexImage = ffienumintPtrVIOV glGetCompressedTexImageFunPtr
-
-glGetCompressedTexImageFunPtr :: FunPtr (GLenum -> GLint -> Ptr () -> IO ())
-glGetCompressedTexImageFunPtr = unsafePerformIO (getProcAddress "glGetCompressedTexImage")
-
-{-# NOINLINE glGetCompressedTexImageFunPtr #-}
-
-glGetDoublev :: MonadIO m => GLenum -> Ptr GLdouble -> m ()
-glGetDoublev = ffienumPtrdoubleIOV glGetDoublevFunPtr
-
-glGetDoublevFunPtr :: FunPtr (GLenum -> Ptr GLdouble -> IO ())
-glGetDoublevFunPtr = unsafePerformIO (getProcAddress "glGetDoublev")
-
-{-# NOINLINE glGetDoublevFunPtr #-}
-
-glGetError :: MonadIO m => m GLenum
-glGetError = ffiIOenum glGetErrorFunPtr
-
-glGetErrorFunPtr :: FunPtr (IO GLenum)
-glGetErrorFunPtr = unsafePerformIO (getProcAddress "glGetError")
-
-{-# NOINLINE glGetErrorFunPtr #-}
-
-glGetFloatv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
-glGetFloatv = ffienumPtrfloatIOV glGetFloatvFunPtr
-
-glGetFloatvFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
-glGetFloatvFunPtr = unsafePerformIO (getProcAddress "glGetFloatv")
-
-{-# NOINLINE glGetFloatvFunPtr #-}
-
-glGetFragDataLocation :: MonadIO m => GLuint -> Ptr GLchar -> m GLint
-glGetFragDataLocation = ffiuintPtrcharIOint glGetFragDataLocationFunPtr
-
-glGetFragDataLocationFunPtr :: FunPtr (GLuint -> Ptr GLchar -> IO GLint)
-glGetFragDataLocationFunPtr = unsafePerformIO (getProcAddress "glGetFragDataLocation")
-
-{-# NOINLINE glGetFragDataLocationFunPtr #-}
-
-glGetInteger64i_v :: MonadIO m => GLenum -> GLuint -> Ptr GLint64 -> m ()
-glGetInteger64i_v = ffienumuintPtrint64IOV glGetInteger64i_vFunPtr
-
-glGetInteger64i_vFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLint64 -> IO ())
-glGetInteger64i_vFunPtr = unsafePerformIO (getProcAddress "glGetInteger64i_v")
-
-{-# NOINLINE glGetInteger64i_vFunPtr #-}
-
-glGetIntegeri_v :: MonadIO m => GLenum -> GLuint -> Ptr GLint -> m ()
-glGetIntegeri_v = ffienumuintPtrintIOV glGetIntegeri_vFunPtr
-
-glGetIntegeri_vFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLint -> IO ())
-glGetIntegeri_vFunPtr = unsafePerformIO (getProcAddress "glGetIntegeri_v")
-
-{-# NOINLINE glGetIntegeri_vFunPtr #-}
-
-glGetIntegerv :: MonadIO m => GLenum -> Ptr GLint -> m ()
-glGetIntegerv = ffienumPtrintIOV glGetIntegervFunPtr
-
-glGetIntegervFunPtr :: FunPtr (GLenum -> Ptr GLint -> IO ())
-glGetIntegervFunPtr = unsafePerformIO (getProcAddress "glGetIntegerv")
-
-{-# NOINLINE glGetIntegervFunPtr #-}
-
-glGetProgramInfoLog :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
-glGetProgramInfoLog = ffiuintsizeiPtrsizeiPtrcharIOV glGetProgramInfoLogFunPtr
-
-glGetProgramInfoLogFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
-glGetProgramInfoLogFunPtr = unsafePerformIO (getProcAddress "glGetProgramInfoLog")
-
-{-# NOINLINE glGetProgramInfoLogFunPtr #-}
-
-glGetProgramiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
-glGetProgramiv = ffiuintenumPtrintIOV glGetProgramivFunPtr
-
-glGetProgramivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
-glGetProgramivFunPtr = unsafePerformIO (getProcAddress "glGetProgramiv")
-
-{-# NOINLINE glGetProgramivFunPtr #-}
-
-glGetQueryObjectiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
-glGetQueryObjectiv = ffiuintenumPtrintIOV glGetQueryObjectivFunPtr
-
-glGetQueryObjectivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
-glGetQueryObjectivFunPtr = unsafePerformIO (getProcAddress "glGetQueryObjectiv")
-
-{-# NOINLINE glGetQueryObjectivFunPtr #-}
-
-glGetQueryObjectuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()
-glGetQueryObjectuiv = ffiuintenumPtruintIOV glGetQueryObjectuivFunPtr
-
-glGetQueryObjectuivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLuint -> IO ())
-glGetQueryObjectuivFunPtr = unsafePerformIO (getProcAddress "glGetQueryObjectuiv")
-
-{-# NOINLINE glGetQueryObjectuivFunPtr #-}
-
-glGetQueryiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
-glGetQueryiv = ffienumenumPtrintIOV glGetQueryivFunPtr
-
-glGetQueryivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
-glGetQueryivFunPtr = unsafePerformIO (getProcAddress "glGetQueryiv")
-
-{-# NOINLINE glGetQueryivFunPtr #-}
-
-glGetShaderInfoLog :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
-glGetShaderInfoLog = ffiuintsizeiPtrsizeiPtrcharIOV glGetShaderInfoLogFunPtr
-
-glGetShaderInfoLogFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
-glGetShaderInfoLogFunPtr = unsafePerformIO (getProcAddress "glGetShaderInfoLog")
-
-{-# NOINLINE glGetShaderInfoLogFunPtr #-}
-
-glGetShaderSource :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
-glGetShaderSource = ffiuintsizeiPtrsizeiPtrcharIOV glGetShaderSourceFunPtr
-
-glGetShaderSourceFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
-glGetShaderSourceFunPtr = unsafePerformIO (getProcAddress "glGetShaderSource")
-
-{-# NOINLINE glGetShaderSourceFunPtr #-}
-
-glGetShaderiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
-glGetShaderiv = ffiuintenumPtrintIOV glGetShaderivFunPtr
-
-glGetShaderivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
-glGetShaderivFunPtr = unsafePerformIO (getProcAddress "glGetShaderiv")
-
-{-# NOINLINE glGetShaderivFunPtr #-}
-
-glGetString :: MonadIO m => GLenum -> m (Ptr GLubyte)
-glGetString = ffienumIOPtrubyte glGetStringFunPtr
-
-glGetStringFunPtr :: FunPtr (GLenum -> IO (Ptr GLubyte))
-glGetStringFunPtr = unsafePerformIO (getProcAddress "glGetString")
-
-{-# NOINLINE glGetStringFunPtr #-}
-
-glGetStringi :: MonadIO m => GLenum -> GLuint -> m (Ptr GLubyte)
-glGetStringi = ffienumuintIOPtrubyte glGetStringiFunPtr
-
-glGetStringiFunPtr :: FunPtr (GLenum -> GLuint -> IO (Ptr GLubyte))
-glGetStringiFunPtr = unsafePerformIO (getProcAddress "glGetStringi")
-
-{-# NOINLINE glGetStringiFunPtr #-}
-
-glGetTexImage :: MonadIO m => GLenum -> GLint -> GLenum -> GLenum -> Ptr () -> m ()
-glGetTexImage = ffienumintenumenumPtrVIOV glGetTexImageFunPtr
-
-glGetTexImageFunPtr :: FunPtr (GLenum -> GLint -> GLenum -> GLenum -> Ptr () -> IO ())
-glGetTexImageFunPtr = unsafePerformIO (getProcAddress "glGetTexImage")
-
-{-# NOINLINE glGetTexImageFunPtr #-}
-
-glGetTexLevelParameterfv :: MonadIO m => GLenum -> GLint -> GLenum -> Ptr GLfloat -> m ()
-glGetTexLevelParameterfv = ffienumintenumPtrfloatIOV glGetTexLevelParameterfvFunPtr
-
-glGetTexLevelParameterfvFunPtr :: FunPtr (GLenum -> GLint -> GLenum -> Ptr GLfloat -> IO ())
-glGetTexLevelParameterfvFunPtr = unsafePerformIO (getProcAddress "glGetTexLevelParameterfv")
-
-{-# NOINLINE glGetTexLevelParameterfvFunPtr #-}
-
-glGetTexLevelParameteriv :: MonadIO m => GLenum -> GLint -> GLenum -> Ptr GLint -> m ()
-glGetTexLevelParameteriv = ffienumintenumPtrintIOV glGetTexLevelParameterivFunPtr
-
-glGetTexLevelParameterivFunPtr :: FunPtr (GLenum -> GLint -> GLenum -> Ptr GLint -> IO ())
-glGetTexLevelParameterivFunPtr = unsafePerformIO (getProcAddress "glGetTexLevelParameteriv")
-
-{-# NOINLINE glGetTexLevelParameterivFunPtr #-}
-
-glGetTexParameterIiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
-glGetTexParameterIiv = ffienumenumPtrintIOV glGetTexParameterIivFunPtr
-
-glGetTexParameterIivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
-glGetTexParameterIivFunPtr = unsafePerformIO (getProcAddress "glGetTexParameterIiv")
-
-{-# NOINLINE glGetTexParameterIivFunPtr #-}
-
-glGetTexParameterIuiv :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()
-glGetTexParameterIuiv = ffienumenumPtruintIOV glGetTexParameterIuivFunPtr
-
-glGetTexParameterIuivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLuint -> IO ())
-glGetTexParameterIuivFunPtr = unsafePerformIO (getProcAddress "glGetTexParameterIuiv")
-
-{-# NOINLINE glGetTexParameterIuivFunPtr #-}
-
-glGetTexParameterfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
-glGetTexParameterfv = ffienumenumPtrfloatIOV glGetTexParameterfvFunPtr
-
-glGetTexParameterfvFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
-glGetTexParameterfvFunPtr = unsafePerformIO (getProcAddress "glGetTexParameterfv")
-
-{-# NOINLINE glGetTexParameterfvFunPtr #-}
-
-glGetTexParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
-glGetTexParameteriv = ffienumenumPtrintIOV glGetTexParameterivFunPtr
-
-glGetTexParameterivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
-glGetTexParameterivFunPtr = unsafePerformIO (getProcAddress "glGetTexParameteriv")
-
-{-# NOINLINE glGetTexParameterivFunPtr #-}
-
-glGetTransformFeedbackVarying :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLsizei -> Ptr GLenum -> Ptr GLchar -> m ()
-glGetTransformFeedbackVarying = ffiuintuintsizeiPtrsizeiPtrsizeiPtrenumPtrcharIOV glGetTransformFeedbackVaryingFunPtr
-
-glGetTransformFeedbackVaryingFunPtr :: FunPtr (GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLsizei -> Ptr GLenum -> Ptr GLchar -> IO ())
-glGetTransformFeedbackVaryingFunPtr = unsafePerformIO (getProcAddress "glGetTransformFeedbackVarying")
-
-{-# NOINLINE glGetTransformFeedbackVaryingFunPtr #-}
-
-glGetUniformLocation :: MonadIO m => GLuint -> Ptr GLchar -> m GLint
-glGetUniformLocation = ffiuintPtrcharIOint glGetUniformLocationFunPtr
-
-glGetUniformLocationFunPtr :: FunPtr (GLuint -> Ptr GLchar -> IO GLint)
-glGetUniformLocationFunPtr = unsafePerformIO (getProcAddress "glGetUniformLocation")
-
-{-# NOINLINE glGetUniformLocationFunPtr #-}
-
-glGetUniformfv :: MonadIO m => GLuint -> GLint -> Ptr GLfloat -> m ()
-glGetUniformfv = ffiuintintPtrfloatIOV glGetUniformfvFunPtr
-
-glGetUniformfvFunPtr :: FunPtr (GLuint -> GLint -> Ptr GLfloat -> IO ())
-glGetUniformfvFunPtr = unsafePerformIO (getProcAddress "glGetUniformfv")
-
-{-# NOINLINE glGetUniformfvFunPtr #-}
-
-glGetUniformiv :: MonadIO m => GLuint -> GLint -> Ptr GLint -> m ()
-glGetUniformiv = ffiuintintPtrintIOV glGetUniformivFunPtr
-
-glGetUniformivFunPtr :: FunPtr (GLuint -> GLint -> Ptr GLint -> IO ())
-glGetUniformivFunPtr = unsafePerformIO (getProcAddress "glGetUniformiv")
-
-{-# NOINLINE glGetUniformivFunPtr #-}
-
-glGetUniformuiv :: MonadIO m => GLuint -> GLint -> Ptr GLuint -> m ()
-glGetUniformuiv = ffiuintintPtruintIOV glGetUniformuivFunPtr
-
-glGetUniformuivFunPtr :: FunPtr (GLuint -> GLint -> Ptr GLuint -> IO ())
-glGetUniformuivFunPtr = unsafePerformIO (getProcAddress "glGetUniformuiv")
-
-{-# NOINLINE glGetUniformuivFunPtr #-}
-
-glGetVertexAttribIiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
-glGetVertexAttribIiv = ffiuintenumPtrintIOV glGetVertexAttribIivFunPtr
-
-glGetVertexAttribIivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
-glGetVertexAttribIivFunPtr = unsafePerformIO (getProcAddress "glGetVertexAttribIiv")
-
-{-# NOINLINE glGetVertexAttribIivFunPtr #-}
-
-glGetVertexAttribIuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()
-glGetVertexAttribIuiv = ffiuintenumPtruintIOV glGetVertexAttribIuivFunPtr
-
-glGetVertexAttribIuivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLuint -> IO ())
-glGetVertexAttribIuivFunPtr = unsafePerformIO (getProcAddress "glGetVertexAttribIuiv")
-
-{-# NOINLINE glGetVertexAttribIuivFunPtr #-}
-
-glGetVertexAttribPointerv :: MonadIO m => GLuint -> GLenum -> Ptr () -> m ()
-glGetVertexAttribPointerv = ffiuintenumPtrVIOV glGetVertexAttribPointervFunPtr
-
-glGetVertexAttribPointervFunPtr :: FunPtr (GLuint -> GLenum -> Ptr () -> IO ())
-glGetVertexAttribPointervFunPtr = unsafePerformIO (getProcAddress "glGetVertexAttribPointerv")
-
-{-# NOINLINE glGetVertexAttribPointervFunPtr #-}
-
-glGetVertexAttribdv :: MonadIO m => GLuint -> GLenum -> Ptr GLdouble -> m ()
-glGetVertexAttribdv = ffiuintenumPtrdoubleIOV glGetVertexAttribdvFunPtr
-
-glGetVertexAttribdvFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLdouble -> IO ())
-glGetVertexAttribdvFunPtr = unsafePerformIO (getProcAddress "glGetVertexAttribdv")
-
-{-# NOINLINE glGetVertexAttribdvFunPtr #-}
-
-glGetVertexAttribfv :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()
-glGetVertexAttribfv = ffiuintenumPtrfloatIOV glGetVertexAttribfvFunPtr
-
-glGetVertexAttribfvFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLfloat -> IO ())
-glGetVertexAttribfvFunPtr = unsafePerformIO (getProcAddress "glGetVertexAttribfv")
-
-{-# NOINLINE glGetVertexAttribfvFunPtr #-}
-
-glGetVertexAttribiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
-glGetVertexAttribiv = ffiuintenumPtrintIOV glGetVertexAttribivFunPtr
-
-glGetVertexAttribivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
-glGetVertexAttribivFunPtr = unsafePerformIO (getProcAddress "glGetVertexAttribiv")
-
-{-# NOINLINE glGetVertexAttribivFunPtr #-}
-
-glHint :: MonadIO m => GLenum -> GLenum -> m ()
-glHint = ffienumenumIOV glHintFunPtr
-
-glHintFunPtr :: FunPtr (GLenum -> GLenum -> IO ())
-glHintFunPtr = unsafePerformIO (getProcAddress "glHint")
-
-{-# NOINLINE glHintFunPtr #-}
-
-glIsBuffer :: MonadIO m => GLuint -> m GLboolean
-glIsBuffer = ffiuintIOboolean glIsBufferFunPtr
-
-glIsBufferFunPtr :: FunPtr (GLuint -> IO GLboolean)
-glIsBufferFunPtr = unsafePerformIO (getProcAddress "glIsBuffer")
-
-{-# NOINLINE glIsBufferFunPtr #-}
-
-glIsEnabled :: MonadIO m => GLenum -> m GLboolean
-glIsEnabled = ffienumIOboolean glIsEnabledFunPtr
-
-glIsEnabledFunPtr :: FunPtr (GLenum -> IO GLboolean)
-glIsEnabledFunPtr = unsafePerformIO (getProcAddress "glIsEnabled")
-
-{-# NOINLINE glIsEnabledFunPtr #-}
-
-glIsEnabledi :: MonadIO m => GLenum -> GLuint -> m GLboolean
-glIsEnabledi = ffienumuintIOboolean glIsEnablediFunPtr
-
-glIsEnablediFunPtr :: FunPtr (GLenum -> GLuint -> IO GLboolean)
-glIsEnablediFunPtr = unsafePerformIO (getProcAddress "glIsEnabledi")
-
-{-# NOINLINE glIsEnablediFunPtr #-}
-
-glIsProgram :: MonadIO m => GLuint -> m GLboolean
-glIsProgram = ffiuintIOboolean glIsProgramFunPtr
-
-glIsProgramFunPtr :: FunPtr (GLuint -> IO GLboolean)
-glIsProgramFunPtr = unsafePerformIO (getProcAddress "glIsProgram")
-
-{-# NOINLINE glIsProgramFunPtr #-}
-
-glIsQuery :: MonadIO m => GLuint -> m GLboolean
-glIsQuery = ffiuintIOboolean glIsQueryFunPtr
-
-glIsQueryFunPtr :: FunPtr (GLuint -> IO GLboolean)
-glIsQueryFunPtr = unsafePerformIO (getProcAddress "glIsQuery")
-
-{-# NOINLINE glIsQueryFunPtr #-}
-
-glIsShader :: MonadIO m => GLuint -> m GLboolean
-glIsShader = ffiuintIOboolean glIsShaderFunPtr
-
-glIsShaderFunPtr :: FunPtr (GLuint -> IO GLboolean)
-glIsShaderFunPtr = unsafePerformIO (getProcAddress "glIsShader")
-
-{-# NOINLINE glIsShaderFunPtr #-}
-
-glIsTexture :: MonadIO m => GLuint -> m GLboolean
-glIsTexture = ffiuintIOboolean glIsTextureFunPtr
-
-glIsTextureFunPtr :: FunPtr (GLuint -> IO GLboolean)
-glIsTextureFunPtr = unsafePerformIO (getProcAddress "glIsTexture")
-
-{-# NOINLINE glIsTextureFunPtr #-}
-
-glLineWidth :: MonadIO m => GLfloat -> m ()
-glLineWidth = ffifloatIOV glLineWidthFunPtr
-
-glLineWidthFunPtr :: FunPtr (GLfloat -> IO ())
-glLineWidthFunPtr = unsafePerformIO (getProcAddress "glLineWidth")
-
-{-# NOINLINE glLineWidthFunPtr #-}
-
-glLinkProgram :: MonadIO m => GLuint -> m ()
-glLinkProgram = ffiuintIOV glLinkProgramFunPtr
-
-glLinkProgramFunPtr :: FunPtr (GLuint -> IO ())
-glLinkProgramFunPtr = unsafePerformIO (getProcAddress "glLinkProgram")
-
-{-# NOINLINE glLinkProgramFunPtr #-}
-
-glLogicOp :: MonadIO m => GLenum -> m ()
-glLogicOp = ffienumIOV glLogicOpFunPtr
-
-glLogicOpFunPtr :: FunPtr (GLenum -> IO ())
-glLogicOpFunPtr = unsafePerformIO (getProcAddress "glLogicOp")
-
-{-# NOINLINE glLogicOpFunPtr #-}
-
-glMapBuffer :: MonadIO m => GLenum -> GLenum -> m (Ptr ())
-glMapBuffer = ffienumenumIOPtrV glMapBufferFunPtr
-
-glMapBufferFunPtr :: FunPtr (GLenum -> GLenum -> IO (Ptr ()))
-glMapBufferFunPtr = unsafePerformIO (getProcAddress "glMapBuffer")
-
-{-# NOINLINE glMapBufferFunPtr #-}
-
-glMultiDrawArrays :: MonadIO m => GLenum -> Ptr GLint -> Ptr GLsizei -> GLsizei -> m ()
-glMultiDrawArrays = ffienumPtrintPtrsizeisizeiIOV glMultiDrawArraysFunPtr
-
-glMultiDrawArraysFunPtr :: FunPtr (GLenum -> Ptr GLint -> Ptr GLsizei -> GLsizei -> IO ())
-glMultiDrawArraysFunPtr = unsafePerformIO (getProcAddress "glMultiDrawArrays")
-
-{-# NOINLINE glMultiDrawArraysFunPtr #-}
-
-glMultiDrawElements :: MonadIO m => GLenum -> Ptr GLsizei -> GLenum -> Ptr () -> GLsizei -> m ()
-glMultiDrawElements = ffienumPtrsizeienumPtrVsizeiIOV glMultiDrawElementsFunPtr
-
-glMultiDrawElementsFunPtr :: FunPtr (GLenum -> Ptr GLsizei -> GLenum -> Ptr () -> GLsizei -> IO ())
-glMultiDrawElementsFunPtr = unsafePerformIO (getProcAddress "glMultiDrawElements")
-
-{-# NOINLINE glMultiDrawElementsFunPtr #-}
-
-glPixelStoref :: MonadIO m => GLenum -> GLfloat -> m ()
-glPixelStoref = ffienumfloatIOV glPixelStorefFunPtr
-
-glPixelStorefFunPtr :: FunPtr (GLenum -> GLfloat -> IO ())
-glPixelStorefFunPtr = unsafePerformIO (getProcAddress "glPixelStoref")
-
-{-# NOINLINE glPixelStorefFunPtr #-}
-
-glPixelStorei :: MonadIO m => GLenum -> GLint -> m ()
-glPixelStorei = ffienumintIOV glPixelStoreiFunPtr
-
-glPixelStoreiFunPtr :: FunPtr (GLenum -> GLint -> IO ())
-glPixelStoreiFunPtr = unsafePerformIO (getProcAddress "glPixelStorei")
-
-{-# NOINLINE glPixelStoreiFunPtr #-}
-
-glPointParameterf :: MonadIO m => GLenum -> GLfloat -> m ()
-glPointParameterf = ffienumfloatIOV glPointParameterfFunPtr
-
-glPointParameterfFunPtr :: FunPtr (GLenum -> GLfloat -> IO ())
-glPointParameterfFunPtr = unsafePerformIO (getProcAddress "glPointParameterf")
-
-{-# NOINLINE glPointParameterfFunPtr #-}
-
-glPointParameterfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
-glPointParameterfv = ffienumPtrfloatIOV glPointParameterfvFunPtr
-
-glPointParameterfvFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
-glPointParameterfvFunPtr = unsafePerformIO (getProcAddress "glPointParameterfv")
-
-{-# NOINLINE glPointParameterfvFunPtr #-}
-
-glPointParameteri :: MonadIO m => GLenum -> GLint -> m ()
-glPointParameteri = ffienumintIOV glPointParameteriFunPtr
-
-glPointParameteriFunPtr :: FunPtr (GLenum -> GLint -> IO ())
-glPointParameteriFunPtr = unsafePerformIO (getProcAddress "glPointParameteri")
-
-{-# NOINLINE glPointParameteriFunPtr #-}
-
-glPointParameteriv :: MonadIO m => GLenum -> Ptr GLint -> m ()
-glPointParameteriv = ffienumPtrintIOV glPointParameterivFunPtr
-
-glPointParameterivFunPtr :: FunPtr (GLenum -> Ptr GLint -> IO ())
-glPointParameterivFunPtr = unsafePerformIO (getProcAddress "glPointParameteriv")
-
-{-# NOINLINE glPointParameterivFunPtr #-}
-
-glPointSize :: MonadIO m => GLfloat -> m ()
-glPointSize = ffifloatIOV glPointSizeFunPtr
-
-glPointSizeFunPtr :: FunPtr (GLfloat -> IO ())
-glPointSizeFunPtr = unsafePerformIO (getProcAddress "glPointSize")
-
-{-# NOINLINE glPointSizeFunPtr #-}
-
-glPolygonMode :: MonadIO m => GLenum -> GLenum -> m ()
-glPolygonMode = ffienumenumIOV glPolygonModeFunPtr
-
-glPolygonModeFunPtr :: FunPtr (GLenum -> GLenum -> IO ())
-glPolygonModeFunPtr = unsafePerformIO (getProcAddress "glPolygonMode")
-
-{-# NOINLINE glPolygonModeFunPtr #-}
-
-glPolygonOffset :: MonadIO m => GLfloat -> GLfloat -> m ()
-glPolygonOffset = ffifloatfloatIOV glPolygonOffsetFunPtr
-
-glPolygonOffsetFunPtr :: FunPtr (GLfloat -> GLfloat -> IO ())
-glPolygonOffsetFunPtr = unsafePerformIO (getProcAddress "glPolygonOffset")
-
-{-# NOINLINE glPolygonOffsetFunPtr #-}
-
-glPrimitiveRestartIndex :: MonadIO m => GLuint -> m ()
-glPrimitiveRestartIndex = ffiuintIOV glPrimitiveRestartIndexFunPtr
-
-glPrimitiveRestartIndexFunPtr :: FunPtr (GLuint -> IO ())
-glPrimitiveRestartIndexFunPtr = unsafePerformIO (getProcAddress "glPrimitiveRestartIndex")
-
-{-# NOINLINE glPrimitiveRestartIndexFunPtr #-}
-
-glReadBuffer :: MonadIO m => GLenum -> m ()
-glReadBuffer = ffienumIOV glReadBufferFunPtr
-
-glReadBufferFunPtr :: FunPtr (GLenum -> IO ())
-glReadBufferFunPtr = unsafePerformIO (getProcAddress "glReadBuffer")
-
-{-# NOINLINE glReadBufferFunPtr #-}
-
-glReadPixels :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
-glReadPixels = ffiintintsizeisizeienumenumPtrVIOV glReadPixelsFunPtr
-
-glReadPixelsFunPtr :: FunPtr (GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ())
-glReadPixelsFunPtr = unsafePerformIO (getProcAddress "glReadPixels")
-
-{-# NOINLINE glReadPixelsFunPtr #-}
-
-glSampleCoverage :: MonadIO m => GLfloat -> GLboolean -> m ()
-glSampleCoverage = ffifloatbooleanIOV glSampleCoverageFunPtr
-
-glSampleCoverageFunPtr :: FunPtr (GLfloat -> GLboolean -> IO ())
-glSampleCoverageFunPtr = unsafePerformIO (getProcAddress "glSampleCoverage")
-
-{-# NOINLINE glSampleCoverageFunPtr #-}
-
-glScissor :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> m ()
-glScissor = ffiintintsizeisizeiIOV glScissorFunPtr
-
-glScissorFunPtr :: FunPtr (GLint -> GLint -> GLsizei -> GLsizei -> IO ())
-glScissorFunPtr = unsafePerformIO (getProcAddress "glScissor")
-
-{-# NOINLINE glScissorFunPtr #-}
-
-glShaderSource :: MonadIO m => GLuint -> GLsizei -> Ptr GLchar -> Ptr GLint -> m ()
-glShaderSource = ffiuintsizeiPtrcharPtrintIOV glShaderSourceFunPtr
-
-glShaderSourceFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLchar -> Ptr GLint -> IO ())
-glShaderSourceFunPtr = unsafePerformIO (getProcAddress "glShaderSource")
-
-{-# NOINLINE glShaderSourceFunPtr #-}
-
-glStencilFunc :: MonadIO m => GLenum -> GLint -> GLuint -> m ()
-glStencilFunc = ffienumintuintIOV glStencilFuncFunPtr
-
-glStencilFuncFunPtr :: FunPtr (GLenum -> GLint -> GLuint -> IO ())
-glStencilFuncFunPtr = unsafePerformIO (getProcAddress "glStencilFunc")
-
-{-# NOINLINE glStencilFuncFunPtr #-}
-
-glStencilFuncSeparate :: MonadIO m => GLenum -> GLenum -> GLint -> GLuint -> m ()
-glStencilFuncSeparate = ffienumenumintuintIOV glStencilFuncSeparateFunPtr
-
-glStencilFuncSeparateFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> GLuint -> IO ())
-glStencilFuncSeparateFunPtr = unsafePerformIO (getProcAddress "glStencilFuncSeparate")
-
-{-# NOINLINE glStencilFuncSeparateFunPtr #-}
-
-glStencilMask :: MonadIO m => GLuint -> m ()
-glStencilMask = ffiuintIOV glStencilMaskFunPtr
-
-glStencilMaskFunPtr :: FunPtr (GLuint -> IO ())
-glStencilMaskFunPtr = unsafePerformIO (getProcAddress "glStencilMask")
-
-{-# NOINLINE glStencilMaskFunPtr #-}
-
-glStencilMaskSeparate :: MonadIO m => GLenum -> GLuint -> m ()
-glStencilMaskSeparate = ffienumuintIOV glStencilMaskSeparateFunPtr
-
-glStencilMaskSeparateFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
-glStencilMaskSeparateFunPtr = unsafePerformIO (getProcAddress "glStencilMaskSeparate")
-
-{-# NOINLINE glStencilMaskSeparateFunPtr #-}
-
-glStencilOp :: MonadIO m => GLenum -> GLenum -> GLenum -> m ()
-glStencilOp = ffienumenumenumIOV glStencilOpFunPtr
-
-glStencilOpFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> IO ())
-glStencilOpFunPtr = unsafePerformIO (getProcAddress "glStencilOp")
-
-{-# NOINLINE glStencilOpFunPtr #-}
-
-glStencilOpSeparate :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> m ()
-glStencilOpSeparate = ffienumenumenumenumIOV glStencilOpSeparateFunPtr
-
-glStencilOpSeparateFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLenum -> IO ())
-glStencilOpSeparateFunPtr = unsafePerformIO (getProcAddress "glStencilOpSeparate")
-
-{-# NOINLINE glStencilOpSeparateFunPtr #-}
-
-glTexBuffer :: MonadIO m => GLenum -> GLenum -> GLuint -> m ()
-glTexBuffer = ffienumenumuintIOV glTexBufferFunPtr
-
-glTexBufferFunPtr :: FunPtr (GLenum -> GLenum -> GLuint -> IO ())
-glTexBufferFunPtr = unsafePerformIO (getProcAddress "glTexBuffer")
-
-{-# NOINLINE glTexBufferFunPtr #-}
-
-glTexImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> m ()
-glTexImage1D = ffienumintintsizeiintenumenumPtrVIOV glTexImage1DFunPtr
-
-glTexImage1DFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> IO ())
-glTexImage1DFunPtr = unsafePerformIO (getProcAddress "glTexImage1D")
-
-{-# NOINLINE glTexImage1DFunPtr #-}
-
-glTexImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> m ()
-glTexImage2D = ffienumintintsizeisizeiintenumenumPtrVIOV glTexImage2DFunPtr
-
-glTexImage2DFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> IO ())
-glTexImage2DFunPtr = unsafePerformIO (getProcAddress "glTexImage2D")
-
-{-# NOINLINE glTexImage2DFunPtr #-}
-
-glTexImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> m ()
-glTexImage3D = ffienumintintsizeisizeisizeiintenumenumPtrVIOV glTexImage3DFunPtr
-
-glTexImage3DFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> IO ())
-glTexImage3DFunPtr = unsafePerformIO (getProcAddress "glTexImage3D")
-
-{-# NOINLINE glTexImage3DFunPtr #-}
-
-glTexParameterIiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
-glTexParameterIiv = ffienumenumPtrintIOV glTexParameterIivFunPtr
-
-glTexParameterIivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
-glTexParameterIivFunPtr = unsafePerformIO (getProcAddress "glTexParameterIiv")
-
-{-# NOINLINE glTexParameterIivFunPtr #-}
-
-glTexParameterIuiv :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()
-glTexParameterIuiv = ffienumenumPtruintIOV glTexParameterIuivFunPtr
-
-glTexParameterIuivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLuint -> IO ())
-glTexParameterIuivFunPtr = unsafePerformIO (getProcAddress "glTexParameterIuiv")
-
-{-# NOINLINE glTexParameterIuivFunPtr #-}
-
-glTexParameterf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()
-glTexParameterf = ffienumenumfloatIOV glTexParameterfFunPtr
-
-glTexParameterfFunPtr :: FunPtr (GLenum -> GLenum -> GLfloat -> IO ())
-glTexParameterfFunPtr = unsafePerformIO (getProcAddress "glTexParameterf")
-
-{-# NOINLINE glTexParameterfFunPtr #-}
-
-glTexParameterfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
-glTexParameterfv = ffienumenumPtrfloatIOV glTexParameterfvFunPtr
-
-glTexParameterfvFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
-glTexParameterfvFunPtr = unsafePerformIO (getProcAddress "glTexParameterfv")
-
-{-# NOINLINE glTexParameterfvFunPtr #-}
-
-glTexParameteri :: MonadIO m => GLenum -> GLenum -> GLint -> m ()
-glTexParameteri = ffienumenumintIOV glTexParameteriFunPtr
-
-glTexParameteriFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> IO ())
-glTexParameteriFunPtr = unsafePerformIO (getProcAddress "glTexParameteri")
-
-{-# NOINLINE glTexParameteriFunPtr #-}
-
-glTexParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
-glTexParameteriv = ffienumenumPtrintIOV glTexParameterivFunPtr
-
-glTexParameterivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
-glTexParameterivFunPtr = unsafePerformIO (getProcAddress "glTexParameteriv")
-
-{-# NOINLINE glTexParameterivFunPtr #-}
-
-glTexSubImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
-glTexSubImage1D = ffienumintintsizeienumenumPtrVIOV glTexSubImage1DFunPtr
-
-glTexSubImage1DFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ())
-glTexSubImage1DFunPtr = unsafePerformIO (getProcAddress "glTexSubImage1D")
-
-{-# NOINLINE glTexSubImage1DFunPtr #-}
-
-glTexSubImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
-glTexSubImage2D = ffienumintintintsizeisizeienumenumPtrVIOV glTexSubImage2DFunPtr
-
-glTexSubImage2DFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ())
-glTexSubImage2DFunPtr = unsafePerformIO (getProcAddress "glTexSubImage2D")
-
-{-# NOINLINE glTexSubImage2DFunPtr #-}
-
-glTexSubImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
-glTexSubImage3D = ffienumintintintintsizeisizeisizeienumenumPtrVIOV glTexSubImage3DFunPtr
-
-glTexSubImage3DFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ())
-glTexSubImage3DFunPtr = unsafePerformIO (getProcAddress "glTexSubImage3D")
-
-{-# NOINLINE glTexSubImage3DFunPtr #-}
-
-glTransformFeedbackVaryings :: MonadIO m => GLuint -> GLsizei -> Ptr GLchar -> GLenum -> m ()
-glTransformFeedbackVaryings = ffiuintsizeiPtrcharenumIOV glTransformFeedbackVaryingsFunPtr
-
-glTransformFeedbackVaryingsFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLchar -> GLenum -> IO ())
-glTransformFeedbackVaryingsFunPtr = unsafePerformIO (getProcAddress "glTransformFeedbackVaryings")
-
-{-# NOINLINE glTransformFeedbackVaryingsFunPtr #-}
-
-glUniform1f :: MonadIO m => GLint -> GLfloat -> m ()
-glUniform1f = ffiintfloatIOV glUniform1fFunPtr
-
-glUniform1fFunPtr :: FunPtr (GLint -> GLfloat -> IO ())
-glUniform1fFunPtr = unsafePerformIO (getProcAddress "glUniform1f")
-
-{-# NOINLINE glUniform1fFunPtr #-}
-
-glUniform1fv :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()
-glUniform1fv = ffiintsizeiPtrfloatIOV glUniform1fvFunPtr
-
-glUniform1fvFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLfloat -> IO ())
-glUniform1fvFunPtr = unsafePerformIO (getProcAddress "glUniform1fv")
-
-{-# NOINLINE glUniform1fvFunPtr #-}
-
-glUniform1i :: MonadIO m => GLint -> GLint -> m ()
-glUniform1i = ffiintintIOV glUniform1iFunPtr
-
-glUniform1iFunPtr :: FunPtr (GLint -> GLint -> IO ())
-glUniform1iFunPtr = unsafePerformIO (getProcAddress "glUniform1i")
-
-{-# NOINLINE glUniform1iFunPtr #-}
-
-glUniform1iv :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()
-glUniform1iv = ffiintsizeiPtrintIOV glUniform1ivFunPtr
-
-glUniform1ivFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLint -> IO ())
-glUniform1ivFunPtr = unsafePerformIO (getProcAddress "glUniform1iv")
-
-{-# NOINLINE glUniform1ivFunPtr #-}
-
-glUniform1ui :: MonadIO m => GLint -> GLuint -> m ()
-glUniform1ui = ffiintuintIOV glUniform1uiFunPtr
-
-glUniform1uiFunPtr :: FunPtr (GLint -> GLuint -> IO ())
-glUniform1uiFunPtr = unsafePerformIO (getProcAddress "glUniform1ui")
-
-{-# NOINLINE glUniform1uiFunPtr #-}
-
-glUniform1uiv :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()
-glUniform1uiv = ffiintsizeiPtruintIOV glUniform1uivFunPtr
-
-glUniform1uivFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLuint -> IO ())
-glUniform1uivFunPtr = unsafePerformIO (getProcAddress "glUniform1uiv")
-
-{-# NOINLINE glUniform1uivFunPtr #-}
-
-glUniform2f :: MonadIO m => GLint -> GLfloat -> GLfloat -> m ()
-glUniform2f = ffiintfloatfloatIOV glUniform2fFunPtr
-
-glUniform2fFunPtr :: FunPtr (GLint -> GLfloat -> GLfloat -> IO ())
-glUniform2fFunPtr = unsafePerformIO (getProcAddress "glUniform2f")
-
-{-# NOINLINE glUniform2fFunPtr #-}
-
-glUniform2fv :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()
-glUniform2fv = ffiintsizeiPtrfloatIOV glUniform2fvFunPtr
-
-glUniform2fvFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLfloat -> IO ())
-glUniform2fvFunPtr = unsafePerformIO (getProcAddress "glUniform2fv")
-
-{-# NOINLINE glUniform2fvFunPtr #-}
-
-glUniform2i :: MonadIO m => GLint -> GLint -> GLint -> m ()
-glUniform2i = ffiintintintIOV glUniform2iFunPtr
-
-glUniform2iFunPtr :: FunPtr (GLint -> GLint -> GLint -> IO ())
-glUniform2iFunPtr = unsafePerformIO (getProcAddress "glUniform2i")
-
-{-# NOINLINE glUniform2iFunPtr #-}
-
-glUniform2iv :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()
-glUniform2iv = ffiintsizeiPtrintIOV glUniform2ivFunPtr
-
-glUniform2ivFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLint -> IO ())
-glUniform2ivFunPtr = unsafePerformIO (getProcAddress "glUniform2iv")
-
-{-# NOINLINE glUniform2ivFunPtr #-}
-
-glUniform2ui :: MonadIO m => GLint -> GLuint -> GLuint -> m ()
-glUniform2ui = ffiintuintuintIOV glUniform2uiFunPtr
-
-glUniform2uiFunPtr :: FunPtr (GLint -> GLuint -> GLuint -> IO ())
-glUniform2uiFunPtr = unsafePerformIO (getProcAddress "glUniform2ui")
-
-{-# NOINLINE glUniform2uiFunPtr #-}
-
-glUniform2uiv :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()
-glUniform2uiv = ffiintsizeiPtruintIOV glUniform2uivFunPtr
-
-glUniform2uivFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLuint -> IO ())
-glUniform2uivFunPtr = unsafePerformIO (getProcAddress "glUniform2uiv")
-
-{-# NOINLINE glUniform2uivFunPtr #-}
-
-glUniform3f :: MonadIO m => GLint -> GLfloat -> GLfloat -> GLfloat -> m ()
-glUniform3f = ffiintfloatfloatfloatIOV glUniform3fFunPtr
-
-glUniform3fFunPtr :: FunPtr (GLint -> GLfloat -> GLfloat -> GLfloat -> IO ())
-glUniform3fFunPtr = unsafePerformIO (getProcAddress "glUniform3f")
-
-{-# NOINLINE glUniform3fFunPtr #-}
-
-glUniform3fv :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()
-glUniform3fv = ffiintsizeiPtrfloatIOV glUniform3fvFunPtr
-
-glUniform3fvFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLfloat -> IO ())
-glUniform3fvFunPtr = unsafePerformIO (getProcAddress "glUniform3fv")
-
-{-# NOINLINE glUniform3fvFunPtr #-}
-
-glUniform3i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()
-glUniform3i = ffiintintintintIOV glUniform3iFunPtr
-
-glUniform3iFunPtr :: FunPtr (GLint -> GLint -> GLint -> GLint -> IO ())
-glUniform3iFunPtr = unsafePerformIO (getProcAddress "glUniform3i")
-
-{-# NOINLINE glUniform3iFunPtr #-}
-
-glUniform3iv :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()
-glUniform3iv = ffiintsizeiPtrintIOV glUniform3ivFunPtr
-
-glUniform3ivFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLint -> IO ())
-glUniform3ivFunPtr = unsafePerformIO (getProcAddress "glUniform3iv")
-
-{-# NOINLINE glUniform3ivFunPtr #-}
-
-glUniform3ui :: MonadIO m => GLint -> GLuint -> GLuint -> GLuint -> m ()
-glUniform3ui = ffiintuintuintuintIOV glUniform3uiFunPtr
-
-glUniform3uiFunPtr :: FunPtr (GLint -> GLuint -> GLuint -> GLuint -> IO ())
-glUniform3uiFunPtr = unsafePerformIO (getProcAddress "glUniform3ui")
-
-{-# NOINLINE glUniform3uiFunPtr #-}
-
-glUniform3uiv :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()
-glUniform3uiv = ffiintsizeiPtruintIOV glUniform3uivFunPtr
-
-glUniform3uivFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLuint -> IO ())
-glUniform3uivFunPtr = unsafePerformIO (getProcAddress "glUniform3uiv")
-
-{-# NOINLINE glUniform3uivFunPtr #-}
-
-glUniform4f :: MonadIO m => GLint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
-glUniform4f = ffiintfloatfloatfloatfloatIOV glUniform4fFunPtr
-
-glUniform4fFunPtr :: FunPtr (GLint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
-glUniform4fFunPtr = unsafePerformIO (getProcAddress "glUniform4f")
-
-{-# NOINLINE glUniform4fFunPtr #-}
-
-glUniform4fv :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()
-glUniform4fv = ffiintsizeiPtrfloatIOV glUniform4fvFunPtr
-
-glUniform4fvFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLfloat -> IO ())
-glUniform4fvFunPtr = unsafePerformIO (getProcAddress "glUniform4fv")
-
-{-# NOINLINE glUniform4fvFunPtr #-}
-
-glUniform4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> GLint -> m ()
-glUniform4i = ffiintintintintintIOV glUniform4iFunPtr
-
-glUniform4iFunPtr :: FunPtr (GLint -> GLint -> GLint -> GLint -> GLint -> IO ())
-glUniform4iFunPtr = unsafePerformIO (getProcAddress "glUniform4i")
-
-{-# NOINLINE glUniform4iFunPtr #-}
-
-glUniform4iv :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()
-glUniform4iv = ffiintsizeiPtrintIOV glUniform4ivFunPtr
-
-glUniform4ivFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLint -> IO ())
-glUniform4ivFunPtr = unsafePerformIO (getProcAddress "glUniform4iv")
-
-{-# NOINLINE glUniform4ivFunPtr #-}
-
-glUniform4ui :: MonadIO m => GLint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
-glUniform4ui = ffiintuintuintuintuintIOV glUniform4uiFunPtr
-
-glUniform4uiFunPtr :: FunPtr (GLint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ())
-glUniform4uiFunPtr = unsafePerformIO (getProcAddress "glUniform4ui")
-
-{-# NOINLINE glUniform4uiFunPtr #-}
-
-glUniform4uiv :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()
-glUniform4uiv = ffiintsizeiPtruintIOV glUniform4uivFunPtr
-
-glUniform4uivFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLuint -> IO ())
-glUniform4uivFunPtr = unsafePerformIO (getProcAddress "glUniform4uiv")
-
-{-# NOINLINE glUniform4uivFunPtr #-}
-
-glUniformMatrix2fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
-glUniformMatrix2fv = ffiintsizeibooleanPtrfloatIOV glUniformMatrix2fvFunPtr
-
-glUniformMatrix2fvFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
-glUniformMatrix2fvFunPtr = unsafePerformIO (getProcAddress "glUniformMatrix2fv")
-
-{-# NOINLINE glUniformMatrix2fvFunPtr #-}
-
-glUniformMatrix2x3fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
-glUniformMatrix2x3fv = ffiintsizeibooleanPtrfloatIOV glUniformMatrix2x3fvFunPtr
-
-glUniformMatrix2x3fvFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
-glUniformMatrix2x3fvFunPtr = unsafePerformIO (getProcAddress "glUniformMatrix2x3fv")
-
-{-# NOINLINE glUniformMatrix2x3fvFunPtr #-}
-
-glUniformMatrix2x4fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
-glUniformMatrix2x4fv = ffiintsizeibooleanPtrfloatIOV glUniformMatrix2x4fvFunPtr
-
-glUniformMatrix2x4fvFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
-glUniformMatrix2x4fvFunPtr = unsafePerformIO (getProcAddress "glUniformMatrix2x4fv")
-
-{-# NOINLINE glUniformMatrix2x4fvFunPtr #-}
-
-glUniformMatrix3fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
-glUniformMatrix3fv = ffiintsizeibooleanPtrfloatIOV glUniformMatrix3fvFunPtr
-
-glUniformMatrix3fvFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
-glUniformMatrix3fvFunPtr = unsafePerformIO (getProcAddress "glUniformMatrix3fv")
-
-{-# NOINLINE glUniformMatrix3fvFunPtr #-}
-
-glUniformMatrix3x2fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
-glUniformMatrix3x2fv = ffiintsizeibooleanPtrfloatIOV glUniformMatrix3x2fvFunPtr
-
-glUniformMatrix3x2fvFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
-glUniformMatrix3x2fvFunPtr = unsafePerformIO (getProcAddress "glUniformMatrix3x2fv")
-
-{-# NOINLINE glUniformMatrix3x2fvFunPtr #-}
-
-glUniformMatrix3x4fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
-glUniformMatrix3x4fv = ffiintsizeibooleanPtrfloatIOV glUniformMatrix3x4fvFunPtr
-
-glUniformMatrix3x4fvFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
-glUniformMatrix3x4fvFunPtr = unsafePerformIO (getProcAddress "glUniformMatrix3x4fv")
-
-{-# NOINLINE glUniformMatrix3x4fvFunPtr #-}
-
-glUniformMatrix4fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
-glUniformMatrix4fv = ffiintsizeibooleanPtrfloatIOV glUniformMatrix4fvFunPtr
-
-glUniformMatrix4fvFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
-glUniformMatrix4fvFunPtr = unsafePerformIO (getProcAddress "glUniformMatrix4fv")
-
-{-# NOINLINE glUniformMatrix4fvFunPtr #-}
-
-glUniformMatrix4x2fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
-glUniformMatrix4x2fv = ffiintsizeibooleanPtrfloatIOV glUniformMatrix4x2fvFunPtr
-
-glUniformMatrix4x2fvFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
-glUniformMatrix4x2fvFunPtr = unsafePerformIO (getProcAddress "glUniformMatrix4x2fv")
-
-{-# NOINLINE glUniformMatrix4x2fvFunPtr #-}
-
-glUniformMatrix4x3fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
-glUniformMatrix4x3fv = ffiintsizeibooleanPtrfloatIOV glUniformMatrix4x3fvFunPtr
-
-glUniformMatrix4x3fvFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
-glUniformMatrix4x3fvFunPtr = unsafePerformIO (getProcAddress "glUniformMatrix4x3fv")
-
-{-# NOINLINE glUniformMatrix4x3fvFunPtr #-}
-
-glUnmapBuffer :: MonadIO m => GLenum -> m GLboolean
-glUnmapBuffer = ffienumIOboolean glUnmapBufferFunPtr
-
-glUnmapBufferFunPtr :: FunPtr (GLenum -> IO GLboolean)
-glUnmapBufferFunPtr = unsafePerformIO (getProcAddress "glUnmapBuffer")
-
-{-# NOINLINE glUnmapBufferFunPtr #-}
-
-glUseProgram :: MonadIO m => GLuint -> m ()
-glUseProgram = ffiuintIOV glUseProgramFunPtr
-
-glUseProgramFunPtr :: FunPtr (GLuint -> IO ())
-glUseProgramFunPtr = unsafePerformIO (getProcAddress "glUseProgram")
-
-{-# NOINLINE glUseProgramFunPtr #-}
-
-glValidateProgram :: MonadIO m => GLuint -> m ()
-glValidateProgram = ffiuintIOV glValidateProgramFunPtr
-
-glValidateProgramFunPtr :: FunPtr (GLuint -> IO ())
-glValidateProgramFunPtr = unsafePerformIO (getProcAddress "glValidateProgram")
-
-{-# NOINLINE glValidateProgramFunPtr #-}
-
-glVertexAttrib1d :: MonadIO m => GLuint -> GLdouble -> m ()
-glVertexAttrib1d = ffiuintdoubleIOV glVertexAttrib1dFunPtr
-
-glVertexAttrib1dFunPtr :: FunPtr (GLuint -> GLdouble -> IO ())
-glVertexAttrib1dFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib1d")
-
-{-# NOINLINE glVertexAttrib1dFunPtr #-}
-
-glVertexAttrib1dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()
-glVertexAttrib1dv = ffiuintPtrdoubleIOV glVertexAttrib1dvFunPtr
-
-glVertexAttrib1dvFunPtr :: FunPtr (GLuint -> Ptr GLdouble -> IO ())
-glVertexAttrib1dvFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib1dv")
-
-{-# NOINLINE glVertexAttrib1dvFunPtr #-}
-
-glVertexAttrib1f :: MonadIO m => GLuint -> GLfloat -> m ()
-glVertexAttrib1f = ffiuintfloatIOV glVertexAttrib1fFunPtr
-
-glVertexAttrib1fFunPtr :: FunPtr (GLuint -> GLfloat -> IO ())
-glVertexAttrib1fFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib1f")
-
-{-# NOINLINE glVertexAttrib1fFunPtr #-}
-
-glVertexAttrib1fv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()
-glVertexAttrib1fv = ffiuintPtrfloatIOV glVertexAttrib1fvFunPtr
-
-glVertexAttrib1fvFunPtr :: FunPtr (GLuint -> Ptr GLfloat -> IO ())
-glVertexAttrib1fvFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib1fv")
-
-{-# NOINLINE glVertexAttrib1fvFunPtr #-}
-
-glVertexAttrib1s :: MonadIO m => GLuint -> GLshort -> m ()
-glVertexAttrib1s = ffiuintshortIOV glVertexAttrib1sFunPtr
-
-glVertexAttrib1sFunPtr :: FunPtr (GLuint -> GLshort -> IO ())
-glVertexAttrib1sFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib1s")
-
-{-# NOINLINE glVertexAttrib1sFunPtr #-}
-
-glVertexAttrib1sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()
-glVertexAttrib1sv = ffiuintPtrshortIOV glVertexAttrib1svFunPtr
-
-glVertexAttrib1svFunPtr :: FunPtr (GLuint -> Ptr GLshort -> IO ())
-glVertexAttrib1svFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib1sv")
-
-{-# NOINLINE glVertexAttrib1svFunPtr #-}
-
-glVertexAttrib2d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> m ()
-glVertexAttrib2d = ffiuintdoubledoubleIOV glVertexAttrib2dFunPtr
-
-glVertexAttrib2dFunPtr :: FunPtr (GLuint -> GLdouble -> GLdouble -> IO ())
-glVertexAttrib2dFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib2d")
-
-{-# NOINLINE glVertexAttrib2dFunPtr #-}
-
-glVertexAttrib2dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()
-glVertexAttrib2dv = ffiuintPtrdoubleIOV glVertexAttrib2dvFunPtr
-
-glVertexAttrib2dvFunPtr :: FunPtr (GLuint -> Ptr GLdouble -> IO ())
-glVertexAttrib2dvFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib2dv")
-
-{-# NOINLINE glVertexAttrib2dvFunPtr #-}
-
-glVertexAttrib2f :: MonadIO m => GLuint -> GLfloat -> GLfloat -> m ()
-glVertexAttrib2f = ffiuintfloatfloatIOV glVertexAttrib2fFunPtr
-
-glVertexAttrib2fFunPtr :: FunPtr (GLuint -> GLfloat -> GLfloat -> IO ())
-glVertexAttrib2fFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib2f")
-
-{-# NOINLINE glVertexAttrib2fFunPtr #-}
-
-glVertexAttrib2fv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()
-glVertexAttrib2fv = ffiuintPtrfloatIOV glVertexAttrib2fvFunPtr
-
-glVertexAttrib2fvFunPtr :: FunPtr (GLuint -> Ptr GLfloat -> IO ())
-glVertexAttrib2fvFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib2fv")
-
-{-# NOINLINE glVertexAttrib2fvFunPtr #-}
-
-glVertexAttrib2s :: MonadIO m => GLuint -> GLshort -> GLshort -> m ()
-glVertexAttrib2s = ffiuintshortshortIOV glVertexAttrib2sFunPtr
-
-glVertexAttrib2sFunPtr :: FunPtr (GLuint -> GLshort -> GLshort -> IO ())
-glVertexAttrib2sFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib2s")
-
-{-# NOINLINE glVertexAttrib2sFunPtr #-}
-
-glVertexAttrib2sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()
-glVertexAttrib2sv = ffiuintPtrshortIOV glVertexAttrib2svFunPtr
-
-glVertexAttrib2svFunPtr :: FunPtr (GLuint -> Ptr GLshort -> IO ())
-glVertexAttrib2svFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib2sv")
-
-{-# NOINLINE glVertexAttrib2svFunPtr #-}
-
-glVertexAttrib3d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> m ()
-glVertexAttrib3d = ffiuintdoubledoubledoubleIOV glVertexAttrib3dFunPtr
-
-glVertexAttrib3dFunPtr :: FunPtr (GLuint -> GLdouble -> GLdouble -> GLdouble -> IO ())
-glVertexAttrib3dFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib3d")
-
-{-# NOINLINE glVertexAttrib3dFunPtr #-}
-
-glVertexAttrib3dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()
-glVertexAttrib3dv = ffiuintPtrdoubleIOV glVertexAttrib3dvFunPtr
-
-glVertexAttrib3dvFunPtr :: FunPtr (GLuint -> Ptr GLdouble -> IO ())
-glVertexAttrib3dvFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib3dv")
-
-{-# NOINLINE glVertexAttrib3dvFunPtr #-}
-
-glVertexAttrib3f :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> m ()
-glVertexAttrib3f = ffiuintfloatfloatfloatIOV glVertexAttrib3fFunPtr
-
-glVertexAttrib3fFunPtr :: FunPtr (GLuint -> GLfloat -> GLfloat -> GLfloat -> IO ())
-glVertexAttrib3fFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib3f")
-
-{-# NOINLINE glVertexAttrib3fFunPtr #-}
-
-glVertexAttrib3fv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()
-glVertexAttrib3fv = ffiuintPtrfloatIOV glVertexAttrib3fvFunPtr
-
-glVertexAttrib3fvFunPtr :: FunPtr (GLuint -> Ptr GLfloat -> IO ())
-glVertexAttrib3fvFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib3fv")
-
-{-# NOINLINE glVertexAttrib3fvFunPtr #-}
-
-glVertexAttrib3s :: MonadIO m => GLuint -> GLshort -> GLshort -> GLshort -> m ()
-glVertexAttrib3s = ffiuintshortshortshortIOV glVertexAttrib3sFunPtr
-
-glVertexAttrib3sFunPtr :: FunPtr (GLuint -> GLshort -> GLshort -> GLshort -> IO ())
-glVertexAttrib3sFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib3s")
-
-{-# NOINLINE glVertexAttrib3sFunPtr #-}
-
-glVertexAttrib3sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()
-glVertexAttrib3sv = ffiuintPtrshortIOV glVertexAttrib3svFunPtr
-
-glVertexAttrib3svFunPtr :: FunPtr (GLuint -> Ptr GLshort -> IO ())
-glVertexAttrib3svFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib3sv")
-
-{-# NOINLINE glVertexAttrib3svFunPtr #-}
-
-glVertexAttrib4Nbv :: MonadIO m => GLuint -> Ptr GLbyte -> m ()
-glVertexAttrib4Nbv = ffiuintPtrbyteIOV glVertexAttrib4NbvFunPtr
-
-glVertexAttrib4NbvFunPtr :: FunPtr (GLuint -> Ptr GLbyte -> IO ())
-glVertexAttrib4NbvFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4Nbv")
-
-{-# NOINLINE glVertexAttrib4NbvFunPtr #-}
-
-glVertexAttrib4Niv :: MonadIO m => GLuint -> Ptr GLint -> m ()
-glVertexAttrib4Niv = ffiuintPtrintIOV glVertexAttrib4NivFunPtr
-
-glVertexAttrib4NivFunPtr :: FunPtr (GLuint -> Ptr GLint -> IO ())
-glVertexAttrib4NivFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4Niv")
-
-{-# NOINLINE glVertexAttrib4NivFunPtr #-}
-
-glVertexAttrib4Nsv :: MonadIO m => GLuint -> Ptr GLshort -> m ()
-glVertexAttrib4Nsv = ffiuintPtrshortIOV glVertexAttrib4NsvFunPtr
-
-glVertexAttrib4NsvFunPtr :: FunPtr (GLuint -> Ptr GLshort -> IO ())
-glVertexAttrib4NsvFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4Nsv")
-
-{-# NOINLINE glVertexAttrib4NsvFunPtr #-}
-
-glVertexAttrib4Nub :: MonadIO m => GLuint -> GLubyte -> GLubyte -> GLubyte -> GLubyte -> m ()
-glVertexAttrib4Nub = ffiuintubyteubyteubyteubyteIOV glVertexAttrib4NubFunPtr
-
-glVertexAttrib4NubFunPtr :: FunPtr (GLuint -> GLubyte -> GLubyte -> GLubyte -> GLubyte -> IO ())
-glVertexAttrib4NubFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4Nub")
-
-{-# NOINLINE glVertexAttrib4NubFunPtr #-}
-
-glVertexAttrib4Nubv :: MonadIO m => GLuint -> Ptr GLubyte -> m ()
-glVertexAttrib4Nubv = ffiuintPtrubyteIOV glVertexAttrib4NubvFunPtr
-
-glVertexAttrib4NubvFunPtr :: FunPtr (GLuint -> Ptr GLubyte -> IO ())
-glVertexAttrib4NubvFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4Nubv")
-
-{-# NOINLINE glVertexAttrib4NubvFunPtr #-}
-
-glVertexAttrib4Nuiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()
-glVertexAttrib4Nuiv = ffiuintPtruintIOV glVertexAttrib4NuivFunPtr
-
-glVertexAttrib4NuivFunPtr :: FunPtr (GLuint -> Ptr GLuint -> IO ())
-glVertexAttrib4NuivFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4Nuiv")
-
-{-# NOINLINE glVertexAttrib4NuivFunPtr #-}
-
-glVertexAttrib4Nusv :: MonadIO m => GLuint -> Ptr GLushort -> m ()
-glVertexAttrib4Nusv = ffiuintPtrushortIOV glVertexAttrib4NusvFunPtr
-
-glVertexAttrib4NusvFunPtr :: FunPtr (GLuint -> Ptr GLushort -> IO ())
-glVertexAttrib4NusvFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4Nusv")
-
-{-# NOINLINE glVertexAttrib4NusvFunPtr #-}
-
-glVertexAttrib4bv :: MonadIO m => GLuint -> Ptr GLbyte -> m ()
-glVertexAttrib4bv = ffiuintPtrbyteIOV glVertexAttrib4bvFunPtr
-
-glVertexAttrib4bvFunPtr :: FunPtr (GLuint -> Ptr GLbyte -> IO ())
-glVertexAttrib4bvFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4bv")
-
-{-# NOINLINE glVertexAttrib4bvFunPtr #-}
-
-glVertexAttrib4d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
-glVertexAttrib4d = ffiuintdoubledoubledoubledoubleIOV glVertexAttrib4dFunPtr
-
-glVertexAttrib4dFunPtr :: FunPtr (GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
-glVertexAttrib4dFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4d")
-
-{-# NOINLINE glVertexAttrib4dFunPtr #-}
-
-glVertexAttrib4dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()
-glVertexAttrib4dv = ffiuintPtrdoubleIOV glVertexAttrib4dvFunPtr
-
-glVertexAttrib4dvFunPtr :: FunPtr (GLuint -> Ptr GLdouble -> IO ())
-glVertexAttrib4dvFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4dv")
-
-{-# NOINLINE glVertexAttrib4dvFunPtr #-}
-
-glVertexAttrib4f :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
-glVertexAttrib4f = ffiuintfloatfloatfloatfloatIOV glVertexAttrib4fFunPtr
-
-glVertexAttrib4fFunPtr :: FunPtr (GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
-glVertexAttrib4fFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4f")
-
-{-# NOINLINE glVertexAttrib4fFunPtr #-}
-
-glVertexAttrib4fv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()
-glVertexAttrib4fv = ffiuintPtrfloatIOV glVertexAttrib4fvFunPtr
-
-glVertexAttrib4fvFunPtr :: FunPtr (GLuint -> Ptr GLfloat -> IO ())
-glVertexAttrib4fvFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4fv")
-
-{-# NOINLINE glVertexAttrib4fvFunPtr #-}
-
-glVertexAttrib4iv :: MonadIO m => GLuint -> Ptr GLint -> m ()
-glVertexAttrib4iv = ffiuintPtrintIOV glVertexAttrib4ivFunPtr
-
-glVertexAttrib4ivFunPtr :: FunPtr (GLuint -> Ptr GLint -> IO ())
-glVertexAttrib4ivFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4iv")
-
-{-# NOINLINE glVertexAttrib4ivFunPtr #-}
-
-glVertexAttrib4s :: MonadIO m => GLuint -> GLshort -> GLshort -> GLshort -> GLshort -> m ()
-glVertexAttrib4s = ffiuintshortshortshortshortIOV glVertexAttrib4sFunPtr
-
-glVertexAttrib4sFunPtr :: FunPtr (GLuint -> GLshort -> GLshort -> GLshort -> GLshort -> IO ())
-glVertexAttrib4sFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4s")
-
-{-# NOINLINE glVertexAttrib4sFunPtr #-}
-
-glVertexAttrib4sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()
-glVertexAttrib4sv = ffiuintPtrshortIOV glVertexAttrib4svFunPtr
-
-glVertexAttrib4svFunPtr :: FunPtr (GLuint -> Ptr GLshort -> IO ())
-glVertexAttrib4svFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4sv")
-
-{-# NOINLINE glVertexAttrib4svFunPtr #-}
-
-glVertexAttrib4ubv :: MonadIO m => GLuint -> Ptr GLubyte -> m ()
-glVertexAttrib4ubv = ffiuintPtrubyteIOV glVertexAttrib4ubvFunPtr
-
-glVertexAttrib4ubvFunPtr :: FunPtr (GLuint -> Ptr GLubyte -> IO ())
-glVertexAttrib4ubvFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4ubv")
-
-{-# NOINLINE glVertexAttrib4ubvFunPtr #-}
-
-glVertexAttrib4uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()
-glVertexAttrib4uiv = ffiuintPtruintIOV glVertexAttrib4uivFunPtr
-
-glVertexAttrib4uivFunPtr :: FunPtr (GLuint -> Ptr GLuint -> IO ())
-glVertexAttrib4uivFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4uiv")
-
-{-# NOINLINE glVertexAttrib4uivFunPtr #-}
-
-glVertexAttrib4usv :: MonadIO m => GLuint -> Ptr GLushort -> m ()
-glVertexAttrib4usv = ffiuintPtrushortIOV glVertexAttrib4usvFunPtr
-
-glVertexAttrib4usvFunPtr :: FunPtr (GLuint -> Ptr GLushort -> IO ())
-glVertexAttrib4usvFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4usv")
-
-{-# NOINLINE glVertexAttrib4usvFunPtr #-}
-
-glVertexAttribI1i :: MonadIO m => GLuint -> GLint -> m ()
-glVertexAttribI1i = ffiuintintIOV glVertexAttribI1iFunPtr
-
-glVertexAttribI1iFunPtr :: FunPtr (GLuint -> GLint -> IO ())
-glVertexAttribI1iFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI1i")
-
-{-# NOINLINE glVertexAttribI1iFunPtr #-}
-
-glVertexAttribI1iv :: MonadIO m => GLuint -> Ptr GLint -> m ()
-glVertexAttribI1iv = ffiuintPtrintIOV glVertexAttribI1ivFunPtr
-
-glVertexAttribI1ivFunPtr :: FunPtr (GLuint -> Ptr GLint -> IO ())
-glVertexAttribI1ivFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI1iv")
-
-{-# NOINLINE glVertexAttribI1ivFunPtr #-}
-
-glVertexAttribI1ui :: MonadIO m => GLuint -> GLuint -> m ()
-glVertexAttribI1ui = ffiuintuintIOV glVertexAttribI1uiFunPtr
-
-glVertexAttribI1uiFunPtr :: FunPtr (GLuint -> GLuint -> IO ())
-glVertexAttribI1uiFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI1ui")
-
-{-# NOINLINE glVertexAttribI1uiFunPtr #-}
-
-glVertexAttribI1uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()
-glVertexAttribI1uiv = ffiuintPtruintIOV glVertexAttribI1uivFunPtr
-
-glVertexAttribI1uivFunPtr :: FunPtr (GLuint -> Ptr GLuint -> IO ())
-glVertexAttribI1uivFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI1uiv")
-
-{-# NOINLINE glVertexAttribI1uivFunPtr #-}
-
-glVertexAttribI2i :: MonadIO m => GLuint -> GLint -> GLint -> m ()
-glVertexAttribI2i = ffiuintintintIOV glVertexAttribI2iFunPtr
-
-glVertexAttribI2iFunPtr :: FunPtr (GLuint -> GLint -> GLint -> IO ())
-glVertexAttribI2iFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI2i")
-
-{-# NOINLINE glVertexAttribI2iFunPtr #-}
-
-glVertexAttribI2iv :: MonadIO m => GLuint -> Ptr GLint -> m ()
-glVertexAttribI2iv = ffiuintPtrintIOV glVertexAttribI2ivFunPtr
-
-glVertexAttribI2ivFunPtr :: FunPtr (GLuint -> Ptr GLint -> IO ())
-glVertexAttribI2ivFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI2iv")
-
-{-# NOINLINE glVertexAttribI2ivFunPtr #-}
-
-glVertexAttribI2ui :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()
-glVertexAttribI2ui = ffiuintuintuintIOV glVertexAttribI2uiFunPtr
-
-glVertexAttribI2uiFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> IO ())
-glVertexAttribI2uiFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI2ui")
-
-{-# NOINLINE glVertexAttribI2uiFunPtr #-}
-
-glVertexAttribI2uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()
-glVertexAttribI2uiv = ffiuintPtruintIOV glVertexAttribI2uivFunPtr
-
-glVertexAttribI2uivFunPtr :: FunPtr (GLuint -> Ptr GLuint -> IO ())
-glVertexAttribI2uivFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI2uiv")
-
-{-# NOINLINE glVertexAttribI2uivFunPtr #-}
-
-glVertexAttribI3i :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> m ()
-glVertexAttribI3i = ffiuintintintintIOV glVertexAttribI3iFunPtr
-
-glVertexAttribI3iFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> IO ())
-glVertexAttribI3iFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI3i")
-
-{-# NOINLINE glVertexAttribI3iFunPtr #-}
-
-glVertexAttribI3iv :: MonadIO m => GLuint -> Ptr GLint -> m ()
-glVertexAttribI3iv = ffiuintPtrintIOV glVertexAttribI3ivFunPtr
-
-glVertexAttribI3ivFunPtr :: FunPtr (GLuint -> Ptr GLint -> IO ())
-glVertexAttribI3ivFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI3iv")
-
-{-# NOINLINE glVertexAttribI3ivFunPtr #-}
-
-glVertexAttribI3ui :: MonadIO m => GLuint -> GLuint -> GLuint -> GLuint -> m ()
-glVertexAttribI3ui = ffiuintuintuintuintIOV glVertexAttribI3uiFunPtr
-
-glVertexAttribI3uiFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> GLuint -> IO ())
-glVertexAttribI3uiFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI3ui")
-
-{-# NOINLINE glVertexAttribI3uiFunPtr #-}
-
-glVertexAttribI3uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()
-glVertexAttribI3uiv = ffiuintPtruintIOV glVertexAttribI3uivFunPtr
-
-glVertexAttribI3uivFunPtr :: FunPtr (GLuint -> Ptr GLuint -> IO ())
-glVertexAttribI3uivFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI3uiv")
-
-{-# NOINLINE glVertexAttribI3uivFunPtr #-}
-
-glVertexAttribI4bv :: MonadIO m => GLuint -> Ptr GLbyte -> m ()
-glVertexAttribI4bv = ffiuintPtrbyteIOV glVertexAttribI4bvFunPtr
-
-glVertexAttribI4bvFunPtr :: FunPtr (GLuint -> Ptr GLbyte -> IO ())
-glVertexAttribI4bvFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI4bv")
-
-{-# NOINLINE glVertexAttribI4bvFunPtr #-}
-
-glVertexAttribI4i :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> m ()
-glVertexAttribI4i = ffiuintintintintintIOV glVertexAttribI4iFunPtr
-
-glVertexAttribI4iFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> IO ())
-glVertexAttribI4iFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI4i")
-
-{-# NOINLINE glVertexAttribI4iFunPtr #-}
-
-glVertexAttribI4iv :: MonadIO m => GLuint -> Ptr GLint -> m ()
-glVertexAttribI4iv = ffiuintPtrintIOV glVertexAttribI4ivFunPtr
-
-glVertexAttribI4ivFunPtr :: FunPtr (GLuint -> Ptr GLint -> IO ())
-glVertexAttribI4ivFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI4iv")
-
-{-# NOINLINE glVertexAttribI4ivFunPtr #-}
-
-glVertexAttribI4sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()
-glVertexAttribI4sv = ffiuintPtrshortIOV glVertexAttribI4svFunPtr
-
-glVertexAttribI4svFunPtr :: FunPtr (GLuint -> Ptr GLshort -> IO ())
-glVertexAttribI4svFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI4sv")
-
-{-# NOINLINE glVertexAttribI4svFunPtr #-}
-
-glVertexAttribI4ubv :: MonadIO m => GLuint -> Ptr GLubyte -> m ()
-glVertexAttribI4ubv = ffiuintPtrubyteIOV glVertexAttribI4ubvFunPtr
-
-glVertexAttribI4ubvFunPtr :: FunPtr (GLuint -> Ptr GLubyte -> IO ())
-glVertexAttribI4ubvFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI4ubv")
-
-{-# NOINLINE glVertexAttribI4ubvFunPtr #-}
-
-glVertexAttribI4ui :: MonadIO m => GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
-glVertexAttribI4ui = ffiuintuintuintuintuintIOV glVertexAttribI4uiFunPtr
-
-glVertexAttribI4uiFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ())
-glVertexAttribI4uiFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI4ui")
-
-{-# NOINLINE glVertexAttribI4uiFunPtr #-}
-
-glVertexAttribI4uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()
-glVertexAttribI4uiv = ffiuintPtruintIOV glVertexAttribI4uivFunPtr
-
-glVertexAttribI4uivFunPtr :: FunPtr (GLuint -> Ptr GLuint -> IO ())
-glVertexAttribI4uivFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI4uiv")
-
-{-# NOINLINE glVertexAttribI4uivFunPtr #-}
-
-glVertexAttribI4usv :: MonadIO m => GLuint -> Ptr GLushort -> m ()
-glVertexAttribI4usv = ffiuintPtrushortIOV glVertexAttribI4usvFunPtr
-
-glVertexAttribI4usvFunPtr :: FunPtr (GLuint -> Ptr GLushort -> IO ())
-glVertexAttribI4usvFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI4usv")
-
-{-# NOINLINE glVertexAttribI4usvFunPtr #-}
-
-glVertexAttribIPointer :: MonadIO m => GLuint -> GLint -> GLenum -> GLsizei -> Ptr () -> m ()
-glVertexAttribIPointer = ffiuintintenumsizeiPtrVIOV glVertexAttribIPointerFunPtr
-
-glVertexAttribIPointerFunPtr :: FunPtr (GLuint -> GLint -> GLenum -> GLsizei -> Ptr () -> IO ())
-glVertexAttribIPointerFunPtr = unsafePerformIO (getProcAddress "glVertexAttribIPointer")
-
-{-# NOINLINE glVertexAttribIPointerFunPtr #-}
-
-glVertexAttribPointer :: MonadIO m => GLuint -> GLint -> GLenum -> GLboolean -> GLsizei -> Ptr () -> m ()
-glVertexAttribPointer = ffiuintintenumbooleansizeiPtrVIOV glVertexAttribPointerFunPtr
-
-glVertexAttribPointerFunPtr :: FunPtr (GLuint -> GLint -> GLenum -> GLboolean -> GLsizei -> Ptr () -> IO ())
-glVertexAttribPointerFunPtr = unsafePerformIO (getProcAddress "glVertexAttribPointer")
-
-{-# NOINLINE glVertexAttribPointerFunPtr #-}
-
-glViewport :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> m ()
-glViewport = ffiintintsizeisizeiIOV glViewportFunPtr
-
-glViewportFunPtr :: FunPtr (GLint -> GLint -> GLsizei -> GLsizei -> IO ())
-glViewportFunPtr = unsafePerformIO (getProcAddress "glViewport")
-
-{-# NOINLINE glViewportFunPtr #-}
-
-pattern GL_ACTIVE_ATTRIBUTES = 0x8B89
-
-pattern GL_ACTIVE_ATTRIBUTE_MAX_LENGTH = 0x8B8A
-
-pattern GL_ACTIVE_TEXTURE = 0x84E0
-
-pattern GL_ACTIVE_UNIFORMS = 0x8B86
-
-pattern GL_ACTIVE_UNIFORM_MAX_LENGTH = 0x8B87
-
-pattern GL_ALIASED_LINE_WIDTH_RANGE = 0x846E
-
-pattern GL_ALWAYS = 0x0207
-
-pattern GL_AND = 0x1501
-
-pattern GL_AND_INVERTED = 0x1504
-
-pattern GL_AND_REVERSE = 0x1502
-
-pattern GL_ARRAY_BUFFER = 0x8892
-
-pattern GL_ARRAY_BUFFER_BINDING = 0x8894
-
-pattern GL_ATTACHED_SHADERS = 0x8B85
-
-pattern GL_BACK_LEFT = 0x0402
-
-pattern GL_BACK_RIGHT = 0x0403
-
-pattern GL_BGR = 0x80E0
-
-pattern GL_BGRA_INTEGER = 0x8D9B
-
-pattern GL_BGR_INTEGER = 0x8D9A
-
-pattern GL_BLEND_DST = 0x0BE0
-
-pattern GL_BLEND_SRC = 0x0BE1
-
-pattern GL_BLUE_INTEGER = 0x8D96
-
-pattern GL_BOOL = 0x8B56
-
-pattern GL_BOOL_VEC2 = 0x8B57
-
-pattern GL_BOOL_VEC3 = 0x8B58
-
-pattern GL_BOOL_VEC4 = 0x8B59
-
-pattern GL_BUFFER_ACCESS = 0x88BB
-
-pattern GL_BUFFER_ACCESS_FLAGS = 0x911F
-
-pattern GL_BUFFER_MAPPED = 0x88BC
-
-pattern GL_BUFFER_MAP_LENGTH = 0x9120
-
-pattern GL_BUFFER_MAP_OFFSET = 0x9121
-
-pattern GL_BUFFER_MAP_POINTER = 0x88BD
-
-pattern GL_BUFFER_SIZE = 0x8764
-
-pattern GL_BUFFER_USAGE = 0x8765
-
-pattern GL_CLAMP_READ_COLOR = 0x891C
-
-pattern GL_CLAMP_TO_BORDER = 0x812D
-
-pattern GL_CLAMP_TO_EDGE = 0x812F
-
-pattern GL_CLEAR = 0x1500
-
-pattern GL_CLIP_DISTANCE0 = 0x3000
-
-pattern GL_CLIP_DISTANCE1 = 0x3001
-
-pattern GL_CLIP_DISTANCE2 = 0x3002
-
-pattern GL_CLIP_DISTANCE3 = 0x3003
-
-pattern GL_CLIP_DISTANCE4 = 0x3004
-
-pattern GL_CLIP_DISTANCE5 = 0x3005
-
-pattern GL_CLIP_DISTANCE6 = 0x3006
-
-pattern GL_CLIP_DISTANCE7 = 0x3007
-
-pattern GL_COLOR = 0x1800
-
-pattern GL_COLOR_BUFFER_BIT = 0x00004000
-
-pattern GL_COLOR_CLEAR_VALUE = 0x0C22
-
-pattern GL_COLOR_LOGIC_OP = 0x0BF2
-
-pattern GL_COMPARE_REF_TO_TEXTURE = 0x884E
-
-pattern GL_COMPILE_STATUS = 0x8B81
-
-pattern GL_COMPRESSED_RED = 0x8225
-
-pattern GL_COMPRESSED_RG = 0x8226
-
-pattern GL_COMPRESSED_RGB = 0x84ED
-
-pattern GL_COMPRESSED_RGBA = 0x84EE
-
-pattern GL_COMPRESSED_SRGB = 0x8C48
-
-pattern GL_COMPRESSED_SRGB_ALPHA = 0x8C49
-
-pattern GL_COMPRESSED_TEXTURE_FORMATS = 0x86A3
-
-pattern GL_CONTEXT_FLAGS = 0x821E
-
-pattern GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT = 0x00000001
-
-pattern GL_COPY = 0x1503
-
-pattern GL_COPY_INVERTED = 0x150C
-
-pattern GL_CULL_FACE = 0x0B44
-
-pattern GL_CULL_FACE_MODE = 0x0B45
-
-pattern GL_CURRENT_PROGRAM = 0x8B8D
-
-pattern GL_CURRENT_QUERY = 0x8865
-
-pattern GL_CURRENT_VERTEX_ATTRIB = 0x8626
-
-pattern GL_DECR = 0x1E03
-
-pattern GL_DECR_WRAP = 0x8508
-
-pattern GL_DELETE_STATUS = 0x8B80
-
-pattern GL_DEPTH = 0x1801
-
-pattern GL_DEPTH_BUFFER_BIT = 0x00000100
-
-pattern GL_DEPTH_CLEAR_VALUE = 0x0B73
-
-pattern GL_DEPTH_COMPONENT24 = 0x81A6
-
-pattern GL_DEPTH_COMPONENT32 = 0x81A7
-
-pattern GL_DEPTH_FUNC = 0x0B74
-
-pattern GL_DEPTH_TEST = 0x0B71
-
-pattern GL_DEPTH_WRITEMASK = 0x0B72
-
-pattern GL_DITHER = 0x0BD0
-
-pattern GL_DONT_CARE = 0x1100
-
-pattern GL_DOUBLEBUFFER = 0x0C32
-
-pattern GL_DRAW_BUFFER = 0x0C01
-
-pattern GL_DRAW_BUFFER0 = 0x8825
-
-pattern GL_DRAW_BUFFER1 = 0x8826
-
-pattern GL_DRAW_BUFFER10 = 0x882F
-
-pattern GL_DRAW_BUFFER11 = 0x8830
-
-pattern GL_DRAW_BUFFER12 = 0x8831
-
-pattern GL_DRAW_BUFFER13 = 0x8832
-
-pattern GL_DRAW_BUFFER14 = 0x8833
-
-pattern GL_DRAW_BUFFER15 = 0x8834
-
-pattern GL_DRAW_BUFFER2 = 0x8827
-
-pattern GL_DRAW_BUFFER3 = 0x8828
-
-pattern GL_DRAW_BUFFER4 = 0x8829
-
-pattern GL_DRAW_BUFFER5 = 0x882A
-
-pattern GL_DRAW_BUFFER6 = 0x882B
-
-pattern GL_DRAW_BUFFER7 = 0x882C
-
-pattern GL_DRAW_BUFFER8 = 0x882D
-
-pattern GL_DRAW_BUFFER9 = 0x882E
-
-pattern GL_DYNAMIC_COPY = 0x88EA
-
-pattern GL_DYNAMIC_DRAW = 0x88E8
-
-pattern GL_DYNAMIC_READ = 0x88E9
-
-pattern GL_ELEMENT_ARRAY_BUFFER = 0x8893
-
-pattern GL_ELEMENT_ARRAY_BUFFER_BINDING = 0x8895
-
-pattern GL_EQUIV = 0x1509
-
-pattern GL_EXTENSIONS = 0x1F03
-
-pattern GL_FALSE = 0
-
-pattern GL_FASTEST = 0x1101
-
-pattern GL_FILL = 0x1B02
-
-pattern GL_FIXED_ONLY = 0x891D
-
-pattern GL_FLOAT_MAT2 = 0x8B5A
-
-pattern GL_FLOAT_MAT2x3 = 0x8B65
-
-pattern GL_FLOAT_MAT2x4 = 0x8B66
-
-pattern GL_FLOAT_MAT3 = 0x8B5B
-
-pattern GL_FLOAT_MAT3x2 = 0x8B67
-
-pattern GL_FLOAT_MAT3x4 = 0x8B68
-
-pattern GL_FLOAT_MAT4 = 0x8B5C
-
-pattern GL_FLOAT_MAT4x2 = 0x8B69
-
-pattern GL_FLOAT_MAT4x3 = 0x8B6A
-
-pattern GL_FLOAT_VEC2 = 0x8B50
-
-pattern GL_FLOAT_VEC3 = 0x8B51
-
-pattern GL_FLOAT_VEC4 = 0x8B52
-
-pattern GL_FRAGMENT_SHADER = 0x8B30
-
-pattern GL_FRAGMENT_SHADER_DERIVATIVE_HINT = 0x8B8B
-
-pattern GL_FRONT = 0x0404
-
-pattern GL_FRONT_AND_BACK = 0x0408
-
-pattern GL_FRONT_FACE = 0x0B46
-
-pattern GL_FRONT_LEFT = 0x0400
-
-pattern GL_FRONT_RIGHT = 0x0401
-
-pattern GL_GEQUAL = 0x0206
-
-pattern GL_GREATER = 0x0204
-
-pattern GL_GREEN_INTEGER = 0x8D95
-
-pattern GL_INCR = 0x1E02
-
-pattern GL_INCR_WRAP = 0x8507
-
-pattern GL_INFO_LOG_LENGTH = 0x8B84
-
-pattern GL_INT = 0x1404
-
-pattern GL_INTERLEAVED_ATTRIBS = 0x8C8C
-
-pattern GL_INT_SAMPLER_1D = 0x8DC9
-
-pattern GL_INT_SAMPLER_1D_ARRAY = 0x8DCE
-
-pattern GL_INT_SAMPLER_2D = 0x8DCA
-
-pattern GL_INT_SAMPLER_2D_ARRAY = 0x8DCF
-
-pattern GL_INT_SAMPLER_2D_RECT = 0x8DCD
-
-pattern GL_INT_SAMPLER_3D = 0x8DCB
-
-pattern GL_INT_SAMPLER_BUFFER = 0x8DD0
-
-pattern GL_INT_SAMPLER_CUBE = 0x8DCC
-
-pattern GL_INT_VEC2 = 0x8B53
-
-pattern GL_INT_VEC3 = 0x8B54
-
-pattern GL_INT_VEC4 = 0x8B55
-
-pattern GL_INVALID_ENUM = 0x0500
-
-pattern GL_INVALID_OPERATION = 0x0502
-
-pattern GL_INVALID_VALUE = 0x0501
-
-pattern GL_KEEP = 0x1E00
-
-pattern GL_LEFT = 0x0406
-
-pattern GL_LEQUAL = 0x0203
-
-pattern GL_LESS = 0x0201
-
-pattern GL_LINE = 0x1B01
-
-pattern GL_LINEAR = 0x2601
-
-pattern GL_LINEAR_MIPMAP_LINEAR = 0x2703
-
-pattern GL_LINEAR_MIPMAP_NEAREST = 0x2701
-
-pattern GL_LINES = 0x0001
-
-pattern GL_LINE_LOOP = 0x0002
-
-pattern GL_LINE_SMOOTH = 0x0B20
-
-pattern GL_LINE_SMOOTH_HINT = 0x0C52
-
-pattern GL_LINE_STRIP = 0x0003
-
-pattern GL_LINE_WIDTH = 0x0B21
-
-pattern GL_LINE_WIDTH_GRANULARITY = 0x0B23
-
-pattern GL_LINE_WIDTH_RANGE = 0x0B22
-
-pattern GL_LINK_STATUS = 0x8B82
-
-pattern GL_LOGIC_OP_MODE = 0x0BF0
-
-pattern GL_MAJOR_VERSION = 0x821B
-
-pattern GL_MAX_3D_TEXTURE_SIZE = 0x8073
-
-pattern GL_MAX_ARRAY_TEXTURE_LAYERS = 0x88FF
-
-pattern GL_MAX_CLIP_DISTANCES = 0x0D32
-
-pattern GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS = 0x8B4D
-
-pattern GL_MAX_CUBE_MAP_TEXTURE_SIZE = 0x851C
-
-pattern GL_MAX_DRAW_BUFFERS = 0x8824
-
-pattern GL_MAX_ELEMENTS_INDICES = 0x80E9
-
-pattern GL_MAX_ELEMENTS_VERTICES = 0x80E8
-
-pattern GL_MAX_FRAGMENT_INPUT_COMPONENTS = 0x9125
-
-pattern GL_MAX_FRAGMENT_UNIFORM_COMPONENTS = 0x8B49
-
-pattern GL_MAX_PROGRAM_TEXEL_OFFSET = 0x8905
-
-pattern GL_MAX_RECTANGLE_TEXTURE_SIZE = 0x84F8
-
-pattern GL_MAX_TEXTURE_BUFFER_SIZE = 0x8C2B
-
-pattern GL_MAX_TEXTURE_IMAGE_UNITS = 0x8872
-
-pattern GL_MAX_TEXTURE_LOD_BIAS = 0x84FD
-
-pattern GL_MAX_TEXTURE_SIZE = 0x0D33
-
-pattern GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS = 0x8C8A
-
-pattern GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS = 0x8C8B
-
-pattern GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS = 0x8C80
-
-pattern GL_MAX_VARYING_FLOATS = 0x8B4B
-
-pattern GL_MAX_VERTEX_ATTRIBS = 0x8869
-
-pattern GL_MAX_VERTEX_OUTPUT_COMPONENTS = 0x9122
-
-pattern GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS = 0x8B4C
-
-pattern GL_MAX_VERTEX_UNIFORM_COMPONENTS = 0x8B4A
-
-pattern GL_MAX_VIEWPORT_DIMS = 0x0D3A
-
-pattern GL_MINOR_VERSION = 0x821C
-
-pattern GL_MIN_PROGRAM_TEXEL_OFFSET = 0x8904
-
-pattern GL_MIRRORED_REPEAT = 0x8370
-
-pattern GL_MULTISAMPLE = 0x809D
-
-pattern GL_NAND = 0x150E
-
-pattern GL_NEAREST = 0x2600
-
-pattern GL_NEAREST_MIPMAP_LINEAR = 0x2702
-
-pattern GL_NEAREST_MIPMAP_NEAREST = 0x2700
-
-pattern GL_NEVER = 0x0200
-
-pattern GL_NICEST = 0x1102
-
-pattern GL_NOOP = 0x1505
-
-pattern GL_NOR = 0x1508
-
-pattern GL_NOTEQUAL = 0x0205
-
-pattern GL_NUM_COMPRESSED_TEXTURE_FORMATS = 0x86A2
-
-pattern GL_NUM_EXTENSIONS = 0x821D
-
-pattern GL_OR = 0x1507
-
-pattern GL_OR_INVERTED = 0x150D
-
-pattern GL_OR_REVERSE = 0x150B
-
-pattern GL_OUT_OF_MEMORY = 0x0505
-
-pattern GL_PACK_ALIGNMENT = 0x0D05
-
-pattern GL_PACK_IMAGE_HEIGHT = 0x806C
-
-pattern GL_PACK_LSB_FIRST = 0x0D01
-
-pattern GL_PACK_ROW_LENGTH = 0x0D02
-
-pattern GL_PACK_SKIP_IMAGES = 0x806B
-
-pattern GL_PACK_SKIP_PIXELS = 0x0D04
-
-pattern GL_PACK_SKIP_ROWS = 0x0D03
-
-pattern GL_PACK_SWAP_BYTES = 0x0D00
-
-pattern GL_PIXEL_PACK_BUFFER = 0x88EB
-
-pattern GL_PIXEL_PACK_BUFFER_BINDING = 0x88ED
-
-pattern GL_PIXEL_UNPACK_BUFFER = 0x88EC
-
-pattern GL_PIXEL_UNPACK_BUFFER_BINDING = 0x88EF
-
-pattern GL_POINT = 0x1B00
-
-pattern GL_POINTS = 0x0000
-
-pattern GL_POINT_FADE_THRESHOLD_SIZE = 0x8128
-
-pattern GL_POINT_SIZE = 0x0B11
-
-pattern GL_POINT_SIZE_GRANULARITY = 0x0B13
-
-pattern GL_POINT_SIZE_RANGE = 0x0B12
-
-pattern GL_POINT_SPRITE_COORD_ORIGIN = 0x8CA0
-
-pattern GL_POLYGON_MODE = 0x0B40
-
-pattern GL_POLYGON_OFFSET_FACTOR = 0x8038
-
-pattern GL_POLYGON_OFFSET_FILL = 0x8037
-
-pattern GL_POLYGON_OFFSET_LINE = 0x2A02
-
-pattern GL_POLYGON_OFFSET_POINT = 0x2A01
-
-pattern GL_POLYGON_OFFSET_UNITS = 0x2A00
-
-pattern GL_POLYGON_SMOOTH = 0x0B41
-
-pattern GL_POLYGON_SMOOTH_HINT = 0x0C53
-
-pattern GL_PRIMITIVES_GENERATED = 0x8C87
-
-pattern GL_PRIMITIVE_RESTART = 0x8F9D
-
-pattern GL_PRIMITIVE_RESTART_INDEX = 0x8F9E
-
-pattern GL_PROXY_TEXTURE_1D = 0x8063
-
-pattern GL_PROXY_TEXTURE_1D_ARRAY = 0x8C19
-
-pattern GL_PROXY_TEXTURE_2D = 0x8064
-
-pattern GL_PROXY_TEXTURE_2D_ARRAY = 0x8C1B
-
-pattern GL_PROXY_TEXTURE_3D = 0x8070
-
-pattern GL_PROXY_TEXTURE_CUBE_MAP = 0x851B
-
-pattern GL_PROXY_TEXTURE_RECTANGLE = 0x84F7
-
-pattern GL_QUERY_BY_REGION_NO_WAIT = 0x8E16
-
-pattern GL_QUERY_BY_REGION_WAIT = 0x8E15
-
-pattern GL_QUERY_COUNTER_BITS = 0x8864
-
-pattern GL_QUERY_NO_WAIT = 0x8E14
-
-pattern GL_QUERY_RESULT = 0x8866
-
-pattern GL_QUERY_RESULT_AVAILABLE = 0x8867
-
-pattern GL_QUERY_WAIT = 0x8E13
-
-pattern GL_R11F_G11F_B10F = 0x8C3A
-
-pattern GL_R3_G3_B2 = 0x2A10
-
-pattern GL_RASTERIZER_DISCARD = 0x8C89
-
-pattern GL_READ_BUFFER = 0x0C02
-
-pattern GL_READ_ONLY = 0x88B8
-
-pattern GL_RED_INTEGER = 0x8D94
-
-pattern GL_RENDERER = 0x1F01
-
-pattern GL_REPEAT = 0x2901
-
-pattern GL_REPLACE = 0x1E01
-
-pattern GL_RGB = 0x1907
-
-pattern GL_RGB10 = 0x8052
-
-pattern GL_RGB10_A2 = 0x8059
-
-pattern GL_RGB12 = 0x8053
-
-pattern GL_RGB16 = 0x8054
-
-pattern GL_RGB16F = 0x881B
-
-pattern GL_RGB16I = 0x8D89
-
-pattern GL_RGB16UI = 0x8D77
-
-pattern GL_RGB4 = 0x804F
-
-pattern GL_RGB5 = 0x8050
-
-pattern GL_RGB5_A1 = 0x8057
-
-pattern GL_RGB8 = 0x8051
-
-pattern GL_RGB8I = 0x8D8F
-
-pattern GL_RGB8UI = 0x8D7D
-
-pattern GL_RGB9_E5 = 0x8C3D
-
-pattern GL_RGBA = 0x1908
-
-pattern GL_RGBA12 = 0x805A
-
-pattern GL_RGBA16 = 0x805B
-
-pattern GL_RGBA16F = 0x881A
-
-pattern GL_RGBA16I = 0x8D88
-
-pattern GL_RGBA16UI = 0x8D76
-
-pattern GL_RGBA2 = 0x8055
-
-pattern GL_RGBA32F = 0x8814
-
-pattern GL_RGBA32I = 0x8D82
-
-pattern GL_RGBA32UI = 0x8D70
-
-pattern GL_RGBA4 = 0x8056
-
-pattern GL_RGBA8 = 0x8058
-
-pattern GL_RGBA8I = 0x8D8E
-
-pattern GL_RGBA_INTEGER = 0x8D99
-
-pattern GL_RGB_INTEGER = 0x8D98
-
-pattern GL_RIGHT = 0x0407
-
-pattern GL_SAMPLER_1D = 0x8B5D
-
-pattern GL_SAMPLER_1D_ARRAY = 0x8DC0
-
-pattern GL_SAMPLER_1D_ARRAY_SHADOW = 0x8DC3
-
-pattern GL_SAMPLER_1D_SHADOW = 0x8B61
-
-pattern GL_SAMPLER_2D = 0x8B5E
-
-pattern GL_SAMPLER_2D_ARRAY = 0x8DC1
-
-pattern GL_SAMPLER_2D_ARRAY_SHADOW = 0x8DC4
-
-pattern GL_SAMPLER_2D_RECT = 0x8B63
-
-pattern GL_SAMPLER_2D_RECT_SHADOW = 0x8B64
-
-pattern GL_SAMPLER_2D_SHADOW = 0x8B62
-
-pattern GL_SAMPLER_3D = 0x8B5F
-
-pattern GL_SAMPLER_BUFFER = 0x8DC2
-
-pattern GL_SAMPLER_CUBE = 0x8B60
-
-pattern GL_SAMPLER_CUBE_SHADOW = 0x8DC5
-
-pattern GL_SAMPLES_PASSED = 0x8914
-
-pattern GL_SAMPLE_ALPHA_TO_COVERAGE = 0x809E
-
-pattern GL_SAMPLE_ALPHA_TO_ONE = 0x809F
-
-pattern GL_SAMPLE_BUFFERS = 0x80A8
-
-pattern GL_SAMPLE_COVERAGE = 0x80A0
-
-pattern GL_SAMPLE_COVERAGE_INVERT = 0x80AB
-
-pattern GL_SAMPLE_COVERAGE_VALUE = 0x80AA
-
-pattern GL_SEPARATE_ATTRIBS = 0x8C8D
-
-pattern GL_SET = 0x150F
-
-pattern GL_SHADER_SOURCE_LENGTH = 0x8B88
-
-pattern GL_SHADER_TYPE = 0x8B4F
-
-pattern GL_SHADING_LANGUAGE_VERSION = 0x8B8C
-
-pattern GL_SHORT = 0x1402
-
-pattern GL_SMOOTH_LINE_WIDTH_GRANULARITY = 0x0B23
-
-pattern GL_SMOOTH_LINE_WIDTH_RANGE = 0x0B22
-
-pattern GL_SMOOTH_POINT_SIZE_GRANULARITY = 0x0B13
-
-pattern GL_SMOOTH_POINT_SIZE_RANGE = 0x0B12
-
-pattern GL_SRGB = 0x8C40
-
-pattern GL_SRGB8 = 0x8C41
-
-pattern GL_SRGB8_ALPHA8 = 0x8C43
-
-pattern GL_SRGB_ALPHA = 0x8C42
-
-pattern GL_STATIC_COPY = 0x88E6
-
-pattern GL_STATIC_DRAW = 0x88E4
-
-pattern GL_STATIC_READ = 0x88E5
-
-pattern GL_STENCIL = 0x1802
-
-pattern GL_STENCIL_BACK_FAIL = 0x8801
-
-pattern GL_STENCIL_BACK_FUNC = 0x8800
-
-pattern GL_STENCIL_BACK_PASS_DEPTH_FAIL = 0x8802
-
-pattern GL_STENCIL_BACK_PASS_DEPTH_PASS = 0x8803
-
-pattern GL_STENCIL_BACK_REF = 0x8CA3
-
-pattern GL_STENCIL_BACK_VALUE_MASK = 0x8CA4
-
-pattern GL_STENCIL_BACK_WRITEMASK = 0x8CA5
-
-pattern GL_STENCIL_BUFFER_BIT = 0x00000400
-
-pattern GL_STENCIL_CLEAR_VALUE = 0x0B91
-
-pattern GL_STENCIL_FAIL = 0x0B94
-
-pattern GL_STENCIL_FUNC = 0x0B92
-
-pattern GL_STENCIL_PASS_DEPTH_FAIL = 0x0B95
-
-pattern GL_STENCIL_PASS_DEPTH_PASS = 0x0B96
-
-pattern GL_STENCIL_REF = 0x0B97
-
-pattern GL_STENCIL_TEST = 0x0B90
-
-pattern GL_STENCIL_VALUE_MASK = 0x0B93
-
-pattern GL_STENCIL_WRITEMASK = 0x0B98
-
-pattern GL_STEREO = 0x0C33
-
-pattern GL_STREAM_COPY = 0x88E2
-
-pattern GL_STREAM_DRAW = 0x88E0
-
-pattern GL_STREAM_READ = 0x88E1
-
-pattern GL_SUBPIXEL_BITS = 0x0D50
-
-pattern GL_TEXTURE = 0x1702
-
-pattern GL_TEXTURE0 = 0x84C0
-
-pattern GL_TEXTURE1 = 0x84C1
-
-pattern GL_TEXTURE10 = 0x84CA
-
-pattern GL_TEXTURE11 = 0x84CB
-
-pattern GL_TEXTURE12 = 0x84CC
-
-pattern GL_TEXTURE13 = 0x84CD
-
-pattern GL_TEXTURE14 = 0x84CE
-
-pattern GL_TEXTURE15 = 0x84CF
-
-pattern GL_TEXTURE16 = 0x84D0
-
-pattern GL_TEXTURE17 = 0x84D1
-
-pattern GL_TEXTURE18 = 0x84D2
-
-pattern GL_TEXTURE19 = 0x84D3
-
-pattern GL_TEXTURE2 = 0x84C2
-
-pattern GL_TEXTURE20 = 0x84D4
-
-pattern GL_TEXTURE21 = 0x84D5
-
-pattern GL_TEXTURE22 = 0x84D6
-
-pattern GL_TEXTURE23 = 0x84D7
-
-pattern GL_TEXTURE24 = 0x84D8
-
-pattern GL_TEXTURE25 = 0x84D9
-
-pattern GL_TEXTURE26 = 0x84DA
-
-pattern GL_TEXTURE27 = 0x84DB
-
-pattern GL_TEXTURE28 = 0x84DC
-
-pattern GL_TEXTURE29 = 0x84DD
-
-pattern GL_TEXTURE3 = 0x84C3
-
-pattern GL_TEXTURE30 = 0x84DE
-
-pattern GL_TEXTURE31 = 0x84DF
-
-pattern GL_TEXTURE4 = 0x84C4
-
-pattern GL_TEXTURE5 = 0x84C5
-
-pattern GL_TEXTURE6 = 0x84C6
-
-pattern GL_TEXTURE7 = 0x84C7
-
-pattern GL_TEXTURE8 = 0x84C8
-
-pattern GL_TEXTURE9 = 0x84C9
-
-pattern GL_TEXTURE_ALPHA_SIZE = 0x805F
-
-pattern GL_TEXTURE_ALPHA_TYPE = 0x8C13
-
-pattern GL_TEXTURE_BASE_LEVEL = 0x813C
-
-pattern GL_TEXTURE_BLUE_SIZE = 0x805E
-
-pattern GL_TEXTURE_BLUE_TYPE = 0x8C12
-
-pattern GL_TEXTURE_BORDER_COLOR = 0x1004
-
-pattern GL_TEXTURE_BUFFER_DATA_STORE_BINDING = 0x8C2D
-
-pattern GL_TEXTURE_COMPARE_FUNC = 0x884D
-
-pattern GL_TEXTURE_COMPARE_MODE = 0x884C
-
-pattern GL_TEXTURE_COMPRESSED_IMAGE_SIZE = 0x86A0
-
-pattern GL_TEXTURE_COMPRESSION_HINT = 0x84EF
-
-pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_X = 0x8516
-
-pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_Y = 0x8518
-
-pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_Z = 0x851A
-
-pattern GL_TEXTURE_CUBE_MAP_POSITIVE_X = 0x8515
-
-pattern GL_TEXTURE_CUBE_MAP_POSITIVE_Y = 0x8517
-
-pattern GL_TEXTURE_CUBE_MAP_POSITIVE_Z = 0x8519
-
-pattern GL_TEXTURE_DEPTH = 0x8071
-
-pattern GL_TEXTURE_DEPTH_SIZE = 0x884A
-
-pattern GL_TEXTURE_DEPTH_TYPE = 0x8C16
-
-pattern GL_TEXTURE_GREEN_SIZE = 0x805D
-
-pattern GL_TEXTURE_GREEN_TYPE = 0x8C11
-
-pattern GL_TEXTURE_HEIGHT = 0x1001
-
-pattern GL_TEXTURE_INTERNAL_FORMAT = 0x1003
-
-pattern GL_TEXTURE_LOD_BIAS = 0x8501
-
-pattern GL_TEXTURE_MAG_FILTER = 0x2800
-
-pattern GL_TEXTURE_MAX_LEVEL = 0x813D
-
-pattern GL_TEXTURE_MAX_LOD = 0x813B
-
-pattern GL_TEXTURE_MIN_FILTER = 0x2801
-
-pattern GL_TEXTURE_MIN_LOD = 0x813A
-
-pattern GL_TEXTURE_RED_SIZE = 0x805C
-
-pattern GL_TEXTURE_RED_TYPE = 0x8C10
-
-pattern GL_TEXTURE_SHARED_SIZE = 0x8C3F
-
-pattern GL_TEXTURE_WIDTH = 0x1000
-
-pattern GL_TEXTURE_WRAP_R = 0x8072
-
-pattern GL_TEXTURE_WRAP_S = 0x2802
-
-pattern GL_TEXTURE_WRAP_T = 0x2803
-
-pattern GL_TRANSFORM_FEEDBACK_BUFFER_BINDING = 0x8C8F
-
-pattern GL_TRANSFORM_FEEDBACK_BUFFER_MODE = 0x8C7F
-
-pattern GL_TRANSFORM_FEEDBACK_BUFFER_SIZE = 0x8C85
-
-pattern GL_TRANSFORM_FEEDBACK_BUFFER_START = 0x8C84
-
-pattern GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN = 0x8C88
-
-pattern GL_TRANSFORM_FEEDBACK_VARYINGS = 0x8C83
-
-pattern GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH = 0x8C76
-
-pattern GL_TRIANGLE_FAN = 0x0006
-
-pattern GL_TRIANGLE_STRIP = 0x0005
-
-pattern GL_TRUE = 1
-
-pattern GL_UNPACK_ALIGNMENT = 0x0CF5
-
-pattern GL_UNPACK_IMAGE_HEIGHT = 0x806E
-
-pattern GL_UNPACK_LSB_FIRST = 0x0CF1
-
-pattern GL_UNPACK_ROW_LENGTH = 0x0CF2
-
-pattern GL_UNPACK_SKIP_IMAGES = 0x806D
-
-pattern GL_UNPACK_SKIP_PIXELS = 0x0CF4
-
-pattern GL_UNPACK_SKIP_ROWS = 0x0CF3
-
-pattern GL_UNPACK_SWAP_BYTES = 0x0CF0
-
-pattern GL_UNSIGNED_BYTE = 0x1401
-
-pattern GL_UNSIGNED_BYTE_2_3_3_REV = 0x8362
-
-pattern GL_UNSIGNED_BYTE_3_3_2 = 0x8032
-
-pattern GL_UNSIGNED_INT_10_10_10_2 = 0x8036
-
-pattern GL_UNSIGNED_INT_5_9_9_9_REV = 0x8C3E
-
-pattern GL_UNSIGNED_INT_8_8_8_8 = 0x8035
-
-pattern GL_UNSIGNED_INT_8_8_8_8_REV = 0x8367
-
-pattern GL_UNSIGNED_INT_SAMPLER_1D = 0x8DD1
-
-pattern GL_UNSIGNED_INT_SAMPLER_1D_ARRAY = 0x8DD6
-
-pattern GL_UNSIGNED_INT_SAMPLER_2D = 0x8DD2
-
-pattern GL_UNSIGNED_INT_SAMPLER_2D_ARRAY = 0x8DD7
-
-pattern GL_UNSIGNED_INT_SAMPLER_2D_RECT = 0x8DD5
-
-pattern GL_UNSIGNED_INT_SAMPLER_3D = 0x8DD3
-
-pattern GL_UNSIGNED_INT_SAMPLER_BUFFER = 0x8DD8
-
-pattern GL_UNSIGNED_INT_SAMPLER_CUBE = 0x8DD4
-
-pattern GL_UNSIGNED_INT_VEC2 = 0x8DC6
-
-pattern GL_UNSIGNED_INT_VEC3 = 0x8DC7
-
-pattern GL_UNSIGNED_INT_VEC4 = 0x8DC8
-
-pattern GL_UNSIGNED_SHORT_1_5_5_5_REV = 0x8366
-
-pattern GL_UNSIGNED_SHORT_4_4_4_4 = 0x8033
-
-pattern GL_UNSIGNED_SHORT_4_4_4_4_REV = 0x8365
-
-pattern GL_UNSIGNED_SHORT_5_5_5_1 = 0x8034
-
-pattern GL_UNSIGNED_SHORT_5_6_5 = 0x8363
-
-pattern GL_UNSIGNED_SHORT_5_6_5_REV = 0x8364
-
-pattern GL_VALIDATE_STATUS = 0x8B83
-
-pattern GL_VENDOR = 0x1F00
-
-pattern GL_VERSION = 0x1F02
-
-pattern GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING = 0x889F
-
-pattern GL_VERTEX_ATTRIB_ARRAY_ENABLED = 0x8622
-
-pattern GL_VERTEX_ATTRIB_ARRAY_INTEGER = 0x88FD
-
-pattern GL_VERTEX_ATTRIB_ARRAY_NORMALIZED = 0x886A
-
-pattern GL_VERTEX_ATTRIB_ARRAY_POINTER = 0x8645
-
-pattern GL_VERTEX_ATTRIB_ARRAY_SIZE = 0x8623
-
-pattern GL_VERTEX_ATTRIB_ARRAY_STRIDE = 0x8624
-
-pattern GL_VERTEX_ATTRIB_ARRAY_TYPE = 0x8625
-
-pattern GL_VERTEX_PROGRAM_POINT_SIZE = 0x8642
-
-pattern GL_VERTEX_SHADER = 0x8B31
-
-pattern GL_XOR = 0x1506
+-- | Usage: @'glGetUniformi64vNV' program location params@
+--
+-- The length of @params@ should be @COMPSIZE(program,location)@.
+
+
+glGetUniformi64vNV :: MonadIO m => GLuint -> GLint -> Ptr GLint64EXT -> m ()
+glGetUniformi64vNV = ffiuintintPtrint64EXTIOV glGetUniformi64vNVFunPtr
+
+glGetUniformi64vNVFunPtr :: FunPtr (GLuint -> GLint -> Ptr GLint64EXT -> IO ())
+glGetUniformi64vNVFunPtr = unsafePerformIO (getProcAddress "glGetUniformi64vNV")
+
+{-# NOINLINE glGetUniformi64vNVFunPtr #-}
+
+-- | Usage: @'glGetUniformui64vNV' program location params@
+--
+-- The length of @params@ should be @COMPSIZE(program,location)@.
+
+
+glGetUniformui64vNV :: MonadIO m => GLuint -> GLint -> Ptr GLuint64EXT -> m ()
+glGetUniformui64vNV = ffiuintintPtruint64EXTIOV glGetUniformui64vNVFunPtr
+
+glGetUniformui64vNVFunPtr :: FunPtr (GLuint -> GLint -> Ptr GLuint64EXT -> IO ())
+glGetUniformui64vNVFunPtr = unsafePerformIO (getProcAddress "glGetUniformui64vNV")
+
+{-# NOINLINE glGetUniformui64vNVFunPtr #-}
+
+-- | Usage: @'glProgramUniform1i64NV' program location x@
+
+
+glProgramUniform1i64NV :: MonadIO m => GLuint -> GLint -> GLint64EXT -> m ()
+glProgramUniform1i64NV = ffiuintintint64EXTIOV glProgramUniform1i64NVFunPtr
+
+glProgramUniform1i64NVFunPtr :: FunPtr (GLuint -> GLint -> GLint64EXT -> IO ())
+glProgramUniform1i64NVFunPtr = unsafePerformIO (getProcAddress "glProgramUniform1i64NV")
+
+{-# NOINLINE glProgramUniform1i64NVFunPtr #-}
+
+-- | Usage: @'glProgramUniform1i64vNV' program location count value@
+--
+-- The length of @value@ should be @count@.
+
+
+glProgramUniform1i64vNV :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint64EXT -> m ()
+glProgramUniform1i64vNV = ffiuintintsizeiPtrint64EXTIOV glProgramUniform1i64vNVFunPtr
+
+glProgramUniform1i64vNVFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint64EXT -> IO ())
+glProgramUniform1i64vNVFunPtr = unsafePerformIO (getProcAddress "glProgramUniform1i64vNV")
+
+{-# NOINLINE glProgramUniform1i64vNVFunPtr #-}
+
+-- | Usage: @'glProgramUniform1ui64NV' program location x@
+
+
+glProgramUniform1ui64NV :: MonadIO m => GLuint -> GLint -> GLuint64EXT -> m ()
+glProgramUniform1ui64NV = ffiuintintuint64EXTIOV glProgramUniform1ui64NVFunPtr
+
+glProgramUniform1ui64NVFunPtr :: FunPtr (GLuint -> GLint -> GLuint64EXT -> IO ())
+glProgramUniform1ui64NVFunPtr = unsafePerformIO (getProcAddress "glProgramUniform1ui64NV")
+
+{-# NOINLINE glProgramUniform1ui64NVFunPtr #-}
+
+-- | Usage: @'glProgramUniform1ui64vNV' program location count value@
+--
+-- The length of @value@ should be @count@.
+
+
+glProgramUniform1ui64vNV :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint64EXT -> m ()
+glProgramUniform1ui64vNV = ffiuintintsizeiPtruint64EXTIOV glProgramUniform1ui64vNVFunPtr
+
+glProgramUniform1ui64vNVFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint64EXT -> IO ())
+glProgramUniform1ui64vNVFunPtr = unsafePerformIO (getProcAddress "glProgramUniform1ui64vNV")
+
+{-# NOINLINE glProgramUniform1ui64vNVFunPtr #-}
+
+-- | Usage: @'glProgramUniform2i64NV' program location x y@
+
+
+glProgramUniform2i64NV :: MonadIO m => GLuint -> GLint -> GLint64EXT -> GLint64EXT -> m ()
+glProgramUniform2i64NV = ffiuintintint64EXTint64EXTIOV glProgramUniform2i64NVFunPtr
+
+glProgramUniform2i64NVFunPtr :: FunPtr (GLuint -> GLint -> GLint64EXT -> GLint64EXT -> IO ())
+glProgramUniform2i64NVFunPtr = unsafePerformIO (getProcAddress "glProgramUniform2i64NV")
+
+{-# NOINLINE glProgramUniform2i64NVFunPtr #-}
+
+-- | Usage: @'glProgramUniform2i64vNV' program location count value@
+--
+-- The length of @value@ should be @count*2@.
+
+
+glProgramUniform2i64vNV :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint64EXT -> m ()
+glProgramUniform2i64vNV = ffiuintintsizeiPtrint64EXTIOV glProgramUniform2i64vNVFunPtr
+
+glProgramUniform2i64vNVFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint64EXT -> IO ())
+glProgramUniform2i64vNVFunPtr = unsafePerformIO (getProcAddress "glProgramUniform2i64vNV")
+
+{-# NOINLINE glProgramUniform2i64vNVFunPtr #-}
+
+-- | Usage: @'glProgramUniform2ui64NV' program location x y@
+
+
+glProgramUniform2ui64NV :: MonadIO m => GLuint -> GLint -> GLuint64EXT -> GLuint64EXT -> m ()
+glProgramUniform2ui64NV = ffiuintintuint64EXTuint64EXTIOV glProgramUniform2ui64NVFunPtr
+
+glProgramUniform2ui64NVFunPtr :: FunPtr (GLuint -> GLint -> GLuint64EXT -> GLuint64EXT -> IO ())
+glProgramUniform2ui64NVFunPtr = unsafePerformIO (getProcAddress "glProgramUniform2ui64NV")
+
+{-# NOINLINE glProgramUniform2ui64NVFunPtr #-}
+
+-- | Usage: @'glProgramUniform2ui64vNV' program location count value@
+--
+-- The length of @value@ should be @count*2@.
+
+
+glProgramUniform2ui64vNV :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint64EXT -> m ()
+glProgramUniform2ui64vNV = ffiuintintsizeiPtruint64EXTIOV glProgramUniform2ui64vNVFunPtr
+
+glProgramUniform2ui64vNVFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint64EXT -> IO ())
+glProgramUniform2ui64vNVFunPtr = unsafePerformIO (getProcAddress "glProgramUniform2ui64vNV")
+
+{-# NOINLINE glProgramUniform2ui64vNVFunPtr #-}
+
+-- | Usage: @'glProgramUniform3i64NV' program location x y z@
+
+
+glProgramUniform3i64NV :: MonadIO m => GLuint -> GLint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> m ()
+glProgramUniform3i64NV = ffiuintintint64EXTint64EXTint64EXTIOV glProgramUniform3i64NVFunPtr
+
+glProgramUniform3i64NVFunPtr :: FunPtr (GLuint -> GLint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> IO ())
+glProgramUniform3i64NVFunPtr = unsafePerformIO (getProcAddress "glProgramUniform3i64NV")
+
+{-# NOINLINE glProgramUniform3i64NVFunPtr #-}
+
+-- | Usage: @'glProgramUniform3i64vNV' program location count value@
+--
+-- The length of @value@ should be @count*3@.
+
+
+glProgramUniform3i64vNV :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint64EXT -> m ()
+glProgramUniform3i64vNV = ffiuintintsizeiPtrint64EXTIOV glProgramUniform3i64vNVFunPtr
+
+glProgramUniform3i64vNVFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint64EXT -> IO ())
+glProgramUniform3i64vNVFunPtr = unsafePerformIO (getProcAddress "glProgramUniform3i64vNV")
+
+{-# NOINLINE glProgramUniform3i64vNVFunPtr #-}
+
+-- | Usage: @'glProgramUniform3ui64NV' program location x y z@
+
+
+glProgramUniform3ui64NV :: MonadIO m => GLuint -> GLint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> m ()
+glProgramUniform3ui64NV = ffiuintintuint64EXTuint64EXTuint64EXTIOV glProgramUniform3ui64NVFunPtr
+
+glProgramUniform3ui64NVFunPtr :: FunPtr (GLuint -> GLint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> IO ())
+glProgramUniform3ui64NVFunPtr = unsafePerformIO (getProcAddress "glProgramUniform3ui64NV")
+
+{-# NOINLINE glProgramUniform3ui64NVFunPtr #-}
+
+-- | Usage: @'glProgramUniform3ui64vNV' program location count value@
+--
+-- The length of @value@ should be @count*3@.
+
+
+glProgramUniform3ui64vNV :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint64EXT -> m ()
+glProgramUniform3ui64vNV = ffiuintintsizeiPtruint64EXTIOV glProgramUniform3ui64vNVFunPtr
+
+glProgramUniform3ui64vNVFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint64EXT -> IO ())
+glProgramUniform3ui64vNVFunPtr = unsafePerformIO (getProcAddress "glProgramUniform3ui64vNV")
+
+{-# NOINLINE glProgramUniform3ui64vNVFunPtr #-}
+
+-- | Usage: @'glProgramUniform4i64NV' program location x y z w@
+
+
+glProgramUniform4i64NV :: MonadIO m => GLuint -> GLint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> GLint64EXT -> m ()
+glProgramUniform4i64NV = ffiuintintint64EXTint64EXTint64EXTint64EXTIOV glProgramUniform4i64NVFunPtr
+
+glProgramUniform4i64NVFunPtr :: FunPtr (GLuint -> GLint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> GLint64EXT -> IO ())
+glProgramUniform4i64NVFunPtr = unsafePerformIO (getProcAddress "glProgramUniform4i64NV")
+
+{-# NOINLINE glProgramUniform4i64NVFunPtr #-}
+
+-- | Usage: @'glProgramUniform4i64vNV' program location count value@
+--
+-- The length of @value@ should be @count*4@.
+
+
+glProgramUniform4i64vNV :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint64EXT -> m ()
+glProgramUniform4i64vNV = ffiuintintsizeiPtrint64EXTIOV glProgramUniform4i64vNVFunPtr
+
+glProgramUniform4i64vNVFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint64EXT -> IO ())
+glProgramUniform4i64vNVFunPtr = unsafePerformIO (getProcAddress "glProgramUniform4i64vNV")
+
+{-# NOINLINE glProgramUniform4i64vNVFunPtr #-}
+
+-- | Usage: @'glProgramUniform4ui64NV' program location x y z w@
+
+
+glProgramUniform4ui64NV :: MonadIO m => GLuint -> GLint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> m ()
+glProgramUniform4ui64NV = ffiuintintuint64EXTuint64EXTuint64EXTuint64EXTIOV glProgramUniform4ui64NVFunPtr
+
+glProgramUniform4ui64NVFunPtr :: FunPtr (GLuint -> GLint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> IO ())
+glProgramUniform4ui64NVFunPtr = unsafePerformIO (getProcAddress "glProgramUniform4ui64NV")
+
+{-# NOINLINE glProgramUniform4ui64NVFunPtr #-}
+
+-- | Usage: @'glProgramUniform4ui64vNV' program location count value@
+--
+-- The length of @value@ should be @count*4@.
+
+
+glProgramUniform4ui64vNV :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint64EXT -> m ()
+glProgramUniform4ui64vNV = ffiuintintsizeiPtruint64EXTIOV glProgramUniform4ui64vNVFunPtr
+
+glProgramUniform4ui64vNVFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint64EXT -> IO ())
+glProgramUniform4ui64vNVFunPtr = unsafePerformIO (getProcAddress "glProgramUniform4ui64vNV")
+
+{-# NOINLINE glProgramUniform4ui64vNVFunPtr #-}
+
+-- | Usage: @'glUniform1i64NV' location x@
+
+
+glUniform1i64NV :: MonadIO m => GLint -> GLint64EXT -> m ()
+glUniform1i64NV = ffiintint64EXTIOV glUniform1i64NVFunPtr
+
+glUniform1i64NVFunPtr :: FunPtr (GLint -> GLint64EXT -> IO ())
+glUniform1i64NVFunPtr = unsafePerformIO (getProcAddress "glUniform1i64NV")
+
+{-# NOINLINE glUniform1i64NVFunPtr #-}
+
+-- | Usage: @'glUniform1i64vNV' location count value@
+--
+-- The length of @value@ should be @count*1@.
+
+
+glUniform1i64vNV :: MonadIO m => GLint -> GLsizei -> Ptr GLint64EXT -> m ()
+glUniform1i64vNV = ffiintsizeiPtrint64EXTIOV glUniform1i64vNVFunPtr
+
+glUniform1i64vNVFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLint64EXT -> IO ())
+glUniform1i64vNVFunPtr = unsafePerformIO (getProcAddress "glUniform1i64vNV")
+
+{-# NOINLINE glUniform1i64vNVFunPtr #-}
+
+-- | Usage: @'glUniform1ui64NV' location x@
+
+
+glUniform1ui64NV :: MonadIO m => GLint -> GLuint64EXT -> m ()
+glUniform1ui64NV = ffiintuint64EXTIOV glUniform1ui64NVFunPtr
+
+glUniform1ui64NVFunPtr :: FunPtr (GLint -> GLuint64EXT -> IO ())
+glUniform1ui64NVFunPtr = unsafePerformIO (getProcAddress "glUniform1ui64NV")
+
+{-# NOINLINE glUniform1ui64NVFunPtr #-}
+
+-- | Usage: @'glUniform1ui64vNV' location count value@
+--
+-- The length of @value@ should be @count*1@.
+
+
+glUniform1ui64vNV :: MonadIO m => GLint -> GLsizei -> Ptr GLuint64EXT -> m ()
+glUniform1ui64vNV = ffiintsizeiPtruint64EXTIOV glUniform1ui64vNVFunPtr
+
+glUniform1ui64vNVFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLuint64EXT -> IO ())
+glUniform1ui64vNVFunPtr = unsafePerformIO (getProcAddress "glUniform1ui64vNV")
+
+{-# NOINLINE glUniform1ui64vNVFunPtr #-}
+
+-- | Usage: @'glUniform2i64NV' location x y@
+
+
+glUniform2i64NV :: MonadIO m => GLint -> GLint64EXT -> GLint64EXT -> m ()
+glUniform2i64NV = ffiintint64EXTint64EXTIOV glUniform2i64NVFunPtr
+
+glUniform2i64NVFunPtr :: FunPtr (GLint -> GLint64EXT -> GLint64EXT -> IO ())
+glUniform2i64NVFunPtr = unsafePerformIO (getProcAddress "glUniform2i64NV")
+
+{-# NOINLINE glUniform2i64NVFunPtr #-}
+
+-- | Usage: @'glUniform2i64vNV' location count value@
+--
+-- The length of @value@ should be @count*2@.
+
+
+glUniform2i64vNV :: MonadIO m => GLint -> GLsizei -> Ptr GLint64EXT -> m ()
+glUniform2i64vNV = ffiintsizeiPtrint64EXTIOV glUniform2i64vNVFunPtr
+
+glUniform2i64vNVFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLint64EXT -> IO ())
+glUniform2i64vNVFunPtr = unsafePerformIO (getProcAddress "glUniform2i64vNV")
+
+{-# NOINLINE glUniform2i64vNVFunPtr #-}
+
+-- | Usage: @'glUniform2ui64NV' location x y@
+
+
+glUniform2ui64NV :: MonadIO m => GLint -> GLuint64EXT -> GLuint64EXT -> m ()
+glUniform2ui64NV = ffiintuint64EXTuint64EXTIOV glUniform2ui64NVFunPtr
+
+glUniform2ui64NVFunPtr :: FunPtr (GLint -> GLuint64EXT -> GLuint64EXT -> IO ())
+glUniform2ui64NVFunPtr = unsafePerformIO (getProcAddress "glUniform2ui64NV")
+
+{-# NOINLINE glUniform2ui64NVFunPtr #-}
+
+-- | Usage: @'glUniform2ui64vNV' location count value@
+--
+-- The length of @value@ should be @count*2@.
+
+
+glUniform2ui64vNV :: MonadIO m => GLint -> GLsizei -> Ptr GLuint64EXT -> m ()
+glUniform2ui64vNV = ffiintsizeiPtruint64EXTIOV glUniform2ui64vNVFunPtr
+
+glUniform2ui64vNVFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLuint64EXT -> IO ())
+glUniform2ui64vNVFunPtr = unsafePerformIO (getProcAddress "glUniform2ui64vNV")
+
+{-# NOINLINE glUniform2ui64vNVFunPtr #-}
+
+-- | Usage: @'glUniform3i64NV' location x y z@
+
+
+glUniform3i64NV :: MonadIO m => GLint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> m ()
+glUniform3i64NV = ffiintint64EXTint64EXTint64EXTIOV glUniform3i64NVFunPtr
+
+glUniform3i64NVFunPtr :: FunPtr (GLint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> IO ())
+glUniform3i64NVFunPtr = unsafePerformIO (getProcAddress "glUniform3i64NV")
+
+{-# NOINLINE glUniform3i64NVFunPtr #-}
+
+-- | Usage: @'glUniform3i64vNV' location count value@
+--
+-- The length of @value@ should be @count*3@.
+
+
+glUniform3i64vNV :: MonadIO m => GLint -> GLsizei -> Ptr GLint64EXT -> m ()
+glUniform3i64vNV = ffiintsizeiPtrint64EXTIOV glUniform3i64vNVFunPtr
+
+glUniform3i64vNVFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLint64EXT -> IO ())
+glUniform3i64vNVFunPtr = unsafePerformIO (getProcAddress "glUniform3i64vNV")
+
+{-# NOINLINE glUniform3i64vNVFunPtr #-}
+
+-- | Usage: @'glUniform3ui64NV' location x y z@
+
+
+glUniform3ui64NV :: MonadIO m => GLint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> m ()
+glUniform3ui64NV = ffiintuint64EXTuint64EXTuint64EXTIOV glUniform3ui64NVFunPtr
+
+glUniform3ui64NVFunPtr :: FunPtr (GLint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> IO ())
+glUniform3ui64NVFunPtr = unsafePerformIO (getProcAddress "glUniform3ui64NV")
+
+{-# NOINLINE glUniform3ui64NVFunPtr #-}
+
+-- | Usage: @'glUniform3ui64vNV' location count value@
+--
+-- The length of @value@ should be @count*3@.
+
+
+glUniform3ui64vNV :: MonadIO m => GLint -> GLsizei -> Ptr GLuint64EXT -> m ()
+glUniform3ui64vNV = ffiintsizeiPtruint64EXTIOV glUniform3ui64vNVFunPtr
+
+glUniform3ui64vNVFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLuint64EXT -> IO ())
+glUniform3ui64vNVFunPtr = unsafePerformIO (getProcAddress "glUniform3ui64vNV")
+
+{-# NOINLINE glUniform3ui64vNVFunPtr #-}
+
+-- | Usage: @'glUniform4i64NV' location x y z w@
+
+
+glUniform4i64NV :: MonadIO m => GLint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> GLint64EXT -> m ()
+glUniform4i64NV = ffiintint64EXTint64EXTint64EXTint64EXTIOV glUniform4i64NVFunPtr
+
+glUniform4i64NVFunPtr :: FunPtr (GLint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> GLint64EXT -> IO ())
+glUniform4i64NVFunPtr = unsafePerformIO (getProcAddress "glUniform4i64NV")
+
+{-# NOINLINE glUniform4i64NVFunPtr #-}
+
+-- | Usage: @'glUniform4i64vNV' location count value@
+--
+-- The length of @value@ should be @count*4@.
+
+
+glUniform4i64vNV :: MonadIO m => GLint -> GLsizei -> Ptr GLint64EXT -> m ()
+glUniform4i64vNV = ffiintsizeiPtrint64EXTIOV glUniform4i64vNVFunPtr
+
+glUniform4i64vNVFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLint64EXT -> IO ())
+glUniform4i64vNVFunPtr = unsafePerformIO (getProcAddress "glUniform4i64vNV")
+
+{-# NOINLINE glUniform4i64vNVFunPtr #-}
+
+-- | Usage: @'glUniform4ui64NV' location x y z w@
+
+
+glUniform4ui64NV :: MonadIO m => GLint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> m ()
+glUniform4ui64NV = ffiintuint64EXTuint64EXTuint64EXTuint64EXTIOV glUniform4ui64NVFunPtr
+
+glUniform4ui64NVFunPtr :: FunPtr (GLint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> IO ())
+glUniform4ui64NVFunPtr = unsafePerformIO (getProcAddress "glUniform4ui64NV")
+
+{-# NOINLINE glUniform4ui64NVFunPtr #-}
+
+-- | Usage: @'glUniform4ui64vNV' location count value@
+--
+-- The length of @value@ should be @count*4@.
+
+
+glUniform4ui64vNV :: MonadIO m => GLint -> GLsizei -> Ptr GLuint64EXT -> m ()
+glUniform4ui64vNV = ffiintsizeiPtruint64EXTIOV glUniform4ui64vNVFunPtr
+
+glUniform4ui64vNVFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLuint64EXT -> IO ())
+glUniform4ui64vNVFunPtr = unsafePerformIO (getProcAddress "glUniform4ui64vNV")
+
+{-# NOINLINE glUniform4ui64vNVFunPtr #-}
+
+pattern GL_FLOAT16_NV = 0x8FF8
+
+pattern GL_FLOAT16_VEC2_NV = 0x8FF9
+
+pattern GL_FLOAT16_VEC3_NV = 0x8FFA
+
+pattern GL_FLOAT16_VEC4_NV = 0x8FFB
+
+pattern GL_INT16_NV = 0x8FE4
+
+pattern GL_INT16_VEC2_NV = 0x8FE5
+
+pattern GL_INT16_VEC3_NV = 0x8FE6
+
+pattern GL_INT16_VEC4_NV = 0x8FE7
+
+pattern GL_INT64_NV = 0x140E
+
+pattern GL_INT64_VEC2_NV = 0x8FE9
+
+pattern GL_INT64_VEC3_NV = 0x8FEA
+
+pattern GL_INT64_VEC4_NV = 0x8FEB
+
+pattern GL_INT8_NV = 0x8FE0
+
+pattern GL_INT8_VEC2_NV = 0x8FE1
+
+pattern GL_INT8_VEC3_NV = 0x8FE2
+
+pattern GL_INT8_VEC4_NV = 0x8FE3
+
+pattern GL_UNSIGNED_INT16_NV = 0x8FF0
+
+pattern GL_UNSIGNED_INT16_VEC2_NV = 0x8FF1
+
+pattern GL_UNSIGNED_INT16_VEC3_NV = 0x8FF2
+
+pattern GL_UNSIGNED_INT16_VEC4_NV = 0x8FF3
+
+pattern GL_UNSIGNED_INT64_NV = 0x140F
+
+pattern GL_UNSIGNED_INT64_VEC2_NV = 0x8FF5
+
+pattern GL_UNSIGNED_INT64_VEC3_NV = 0x8FF6
+
+pattern GL_UNSIGNED_INT64_VEC4_NV = 0x8FF7
+
+pattern GL_UNSIGNED_INT8_NV = 0x8FEC
+
+pattern GL_UNSIGNED_INT8_VEC2_NV = 0x8FED
+
+pattern GL_UNSIGNED_INT8_VEC3_NV = 0x8FEE
+
+pattern GL_UNSIGNED_INT8_VEC4_NV = 0x8FEF
+
+pattern GL_ALPHA = 0x1906
+
+pattern GL_BLUE = 0x1905
+
+pattern GL_GREEN = 0x1904
+
+pattern GL_RED = 0x1903
+
+pattern GL_RG16UI = 0x823A
+
+pattern GL_RG8UI = 0x8238
+
+pattern GL_RGBA8UI = 0x8D7C
+
+pattern GL_TEXTURE_CUBE_MAP_SEAMLESS = 0x884F
+
+pattern GL_DEPTH24_STENCIL8_OES = 0x88F0
+
+pattern GL_DEPTH_COMPONENT = 0x1902
+
+pattern GL_DEPTH_COMPONENT16 = 0x81A5
+
+pattern GL_DEPTH_COMPONENT32_OES = 0x81A7
+
+pattern GL_DEPTH_STENCIL_OES = 0x84F9
+
+pattern GL_UNSIGNED_INT = 0x1405
+
+pattern GL_UNSIGNED_INT_24_8_OES = 0x84FA
+
+pattern GL_UNSIGNED_SHORT = 0x1403
+
+pattern GL_UNSIGNED_SHORT_8_8_APPLE = 0x85BA
+
+pattern GL_UNSIGNED_SHORT_8_8_REV_APPLE = 0x85BB
+
+pattern GL_BGRA8_EXT = 0x93A1
+
+pattern GL_BGRA_EXT = 0x80E1
+
+pattern GL_STORAGE_CACHED_APPLE = 0x85BE
+
+pattern GL_STORAGE_SHARED_APPLE = 0x85BF
+
+-- | Usage: @'glDrawArraysInstancedBaseInstance' mode first count instancecount baseinstance@
+--
+-- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_LINES', 'Graphics.GL.Raw.Profile.Core32.GL_LINES_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Raw.Profile.Core32.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PATCHES', 'Graphics.GL.Raw.Extension.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_POINTS', 'Graphics.GL.Raw.Internal.Shared.GL_POLYGON', 'Graphics.GL.Raw.Internal.Shared.GL_QUADS', 'Graphics.GL.Raw.Extension.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Raw.Profile.Core32.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Raw.Profile.Core32.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDrawArraysInstancedBaseInstance.xhtml>
+
+
+glDrawArraysInstancedBaseInstance :: MonadIO m => GLenum -> GLint -> GLsizei -> GLsizei -> GLuint -> m ()
+glDrawArraysInstancedBaseInstance = ffienumintsizeisizeiuintIOV glDrawArraysInstancedBaseInstanceFunPtr
+
+glDrawArraysInstancedBaseInstanceFunPtr :: FunPtr (GLenum -> GLint -> GLsizei -> GLsizei -> GLuint -> IO ())
+glDrawArraysInstancedBaseInstanceFunPtr = unsafePerformIO (getProcAddress "glDrawArraysInstancedBaseInstance")
+
+{-# NOINLINE glDrawArraysInstancedBaseInstanceFunPtr #-}
+
+-- | Usage: @'glDrawElementsInstancedBaseInstance' mode count type indices instancecount baseinstance@
+--
+-- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_LINES', 'Graphics.GL.Raw.Profile.Core32.GL_LINES_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Raw.Profile.Core32.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PATCHES', 'Graphics.GL.Raw.Extension.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_POINTS', 'Graphics.GL.Raw.Internal.Shared.GL_POLYGON', 'Graphics.GL.Raw.Internal.Shared.GL_QUADS', 'Graphics.GL.Raw.Extension.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Raw.Profile.Core32.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Raw.Profile.Core32.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
+--
+-- The length of @indices@ should be @count@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDrawElementsInstancedBaseInstance.xhtml>
+
+
+glDrawElementsInstancedBaseInstance :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> GLuint -> m ()
+glDrawElementsInstancedBaseInstance = ffienumsizeienumPtrVsizeiuintIOV glDrawElementsInstancedBaseInstanceFunPtr
+
+glDrawElementsInstancedBaseInstanceFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> GLuint -> IO ())
+glDrawElementsInstancedBaseInstanceFunPtr = unsafePerformIO (getProcAddress "glDrawElementsInstancedBaseInstance")
+
+{-# NOINLINE glDrawElementsInstancedBaseInstanceFunPtr #-}
+
+-- | Usage: @'glDrawElementsInstancedBaseVertexBaseInstance' mode count type indices instancecount basevertex baseinstance@
+--
+-- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_LINES', 'Graphics.GL.Raw.Profile.Core32.GL_LINES_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Raw.Profile.Core32.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PATCHES', 'Graphics.GL.Raw.Extension.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_POINTS', 'Graphics.GL.Raw.Internal.Shared.GL_POLYGON', 'Graphics.GL.Raw.Internal.Shared.GL_QUADS', 'Graphics.GL.Raw.Extension.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Raw.Profile.Core32.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Raw.Profile.Core32.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
+--
+-- The length of @indices@ should be @count@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDrawElementsInstancedBaseVertexBaseInstance.xhtml>
+
+
+glDrawElementsInstancedBaseVertexBaseInstance :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> GLint -> GLuint -> m ()
+glDrawElementsInstancedBaseVertexBaseInstance = ffienumsizeienumPtrVsizeiintuintIOV glDrawElementsInstancedBaseVertexBaseInstanceFunPtr
+
+glDrawElementsInstancedBaseVertexBaseInstanceFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> GLint -> GLuint -> IO ())
+glDrawElementsInstancedBaseVertexBaseInstanceFunPtr = unsafePerformIO (getProcAddress "glDrawElementsInstancedBaseVertexBaseInstance")
+
+{-# NOINLINE glDrawElementsInstancedBaseVertexBaseInstanceFunPtr #-}
+
+-- | Usage: @'glBindFragDataLocationIndexed' program colorNumber index name@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBindFragDataLocationIndexed.xhtml>
+
+
+glBindFragDataLocationIndexed :: MonadIO m => GLuint -> GLuint -> GLuint -> Ptr GLchar -> m ()
+glBindFragDataLocationIndexed = ffiuintuintuintPtrcharIOV glBindFragDataLocationIndexedFunPtr
+
+glBindFragDataLocationIndexedFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> Ptr GLchar -> IO ())
+glBindFragDataLocationIndexedFunPtr = unsafePerformIO (getProcAddress "glBindFragDataLocationIndexed")
+
+{-# NOINLINE glBindFragDataLocationIndexedFunPtr #-}
+
+-- | Usage: @'glGetFragDataIndex' program name@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetFragDataIndex.xhtml>
+
+
+glGetFragDataIndex :: MonadIO m => GLuint -> Ptr GLchar -> m GLint
+glGetFragDataIndex = ffiuintPtrcharIOint glGetFragDataIndexFunPtr
+
+glGetFragDataIndexFunPtr :: FunPtr (GLuint -> Ptr GLchar -> IO GLint)
+glGetFragDataIndexFunPtr = unsafePerformIO (getProcAddress "glGetFragDataIndex")
+
+{-# NOINLINE glGetFragDataIndexFunPtr #-}
+
+pattern GL_MAX_DUAL_SOURCE_DRAW_BUFFERS = 0x88FC
+
+pattern GL_ONE_MINUS_SRC1_ALPHA = 0x88FB
+
+pattern GL_ONE_MINUS_SRC1_COLOR = 0x88FA
+
+pattern GL_SRC1_ALPHA = 0x8589
+
+pattern GL_SRC1_COLOR = 0x88F9
+
+-- | Usage: @'glBufferStorage' target size data flags@
+--
+-- The length of @data@ should be @size@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBufferStorage.xhtml>
+
+
+glBufferStorage :: MonadIO m => GLenum -> GLsizeiptr -> Ptr () -> GLbitfield -> m ()
+glBufferStorage = ffienumsizeiptrPtrVbitfieldIOV glBufferStorageFunPtr
+
+glBufferStorageFunPtr :: FunPtr (GLenum -> GLsizeiptr -> Ptr () -> GLbitfield -> IO ())
+glBufferStorageFunPtr = unsafePerformIO (getProcAddress "glBufferStorage")
+
+{-# NOINLINE glBufferStorageFunPtr #-}
+
+pattern GL_BUFFER_IMMUTABLE_STORAGE = 0x821F
+
+pattern GL_BUFFER_STORAGE_FLAGS = 0x8220
+
+pattern GL_CLIENT_MAPPED_BUFFER_BARRIER_BIT = 0x00004000
+
+pattern GL_CLIENT_STORAGE_BIT = 0x0200
+
+pattern GL_DYNAMIC_STORAGE_BIT = 0x0100
+
+pattern GL_MAP_COHERENT_BIT = 0x0080
+
+pattern GL_MAP_PERSISTENT_BIT = 0x0040
+
+pattern GL_MAP_READ_BIT = 0x0001
+
+pattern GL_MAP_WRITE_BIT = 0x0002
+
+-- | Usage: @'glClearBufferData' target internalformat format type data@
+--
+-- The length of @data@ should be @COMPSIZE(format,type)@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glClearBufferData.xhtml>
+
+
+glClearBufferData :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> Ptr () -> m ()
+glClearBufferData = ffienumenumenumenumPtrVIOV glClearBufferDataFunPtr
+
+glClearBufferDataFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLenum -> Ptr () -> IO ())
+glClearBufferDataFunPtr = unsafePerformIO (getProcAddress "glClearBufferData")
+
+{-# NOINLINE glClearBufferDataFunPtr #-}
+
+-- | Usage: @'glClearBufferSubData' target internalformat offset size format type data@
+--
+-- The parameter @offset@ is a @BufferOffset@.
+--
+-- The parameter @size@ is a @BufferSize@.
+--
+-- The length of @data@ should be @COMPSIZE(format,type)@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glClearBufferSubData.xhtml>
+
+
+glClearBufferSubData :: MonadIO m => GLenum -> GLenum -> GLintptr -> GLsizeiptr -> GLenum -> GLenum -> Ptr () -> m ()
+glClearBufferSubData = ffienumenumintptrsizeiptrenumenumPtrVIOV glClearBufferSubDataFunPtr
+
+glClearBufferSubDataFunPtr :: FunPtr (GLenum -> GLenum -> GLintptr -> GLsizeiptr -> GLenum -> GLenum -> Ptr () -> IO ())
+glClearBufferSubDataFunPtr = unsafePerformIO (getProcAddress "glClearBufferSubData")
+
+{-# NOINLINE glClearBufferSubDataFunPtr #-}
+
+-- | Usage: @'glClearTexImage' texture level format type data@
+--
+-- The length of @data@ should be @COMPSIZE(format,type)@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glClearTexImage.xhtml>
+
+
+glClearTexImage :: MonadIO m => GLuint -> GLint -> GLenum -> GLenum -> Ptr () -> m ()
+glClearTexImage = ffiuintintenumenumPtrVIOV glClearTexImageFunPtr
+
+glClearTexImageFunPtr :: FunPtr (GLuint -> GLint -> GLenum -> GLenum -> Ptr () -> IO ())
+glClearTexImageFunPtr = unsafePerformIO (getProcAddress "glClearTexImage")
+
+{-# NOINLINE glClearTexImageFunPtr #-}
+
+-- | Usage: @'glClearTexSubImage' texture level xoffset yoffset zoffset width height depth format type data@
+--
+-- The length of @data@ should be @COMPSIZE(format,type)@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glClearTexSubImage.xhtml>
+
+
+glClearTexSubImage :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
+glClearTexSubImage = ffiuintintintintintsizeisizeisizeienumenumPtrVIOV glClearTexSubImageFunPtr
+
+glClearTexSubImageFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ())
+glClearTexSubImageFunPtr = unsafePerformIO (getProcAddress "glClearTexSubImage")
+
+{-# NOINLINE glClearTexSubImageFunPtr #-}
+
+pattern GL_CLEAR_TEXTURE = 0x9365
+
+-- | Usage: @'glClipControl' origin depth@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glClipControl.xhtml>
+
+
+glClipControl :: MonadIO m => GLenum -> GLenum -> m ()
+glClipControl = ffienumenumIOV glClipControlFunPtr
+
+glClipControlFunPtr :: FunPtr (GLenum -> GLenum -> IO ())
+glClipControlFunPtr = unsafePerformIO (getProcAddress "glClipControl")
+
+{-# NOINLINE glClipControlFunPtr #-}
+
+pattern GL_CLIP_DEPTH_MODE = 0x935D
+
+pattern GL_CLIP_ORIGIN = 0x935C
+
+pattern GL_LOWER_LEFT = 0x8CA1
+
+pattern GL_NEGATIVE_ONE_TO_ONE = 0x935E
+
+pattern GL_UPPER_LEFT = 0x8CA2
+
+pattern GL_ZERO_TO_ONE = 0x935F
+
+pattern GL_PACK_COMPRESSED_BLOCK_DEPTH = 0x912D
+
+pattern GL_PACK_COMPRESSED_BLOCK_HEIGHT = 0x912C
+
+pattern GL_PACK_COMPRESSED_BLOCK_SIZE = 0x912E
+
+pattern GL_PACK_COMPRESSED_BLOCK_WIDTH = 0x912B
+
+pattern GL_UNPACK_COMPRESSED_BLOCK_DEPTH = 0x9129
+
+pattern GL_UNPACK_COMPRESSED_BLOCK_HEIGHT = 0x9128
+
+pattern GL_UNPACK_COMPRESSED_BLOCK_SIZE = 0x912A
+
+pattern GL_UNPACK_COMPRESSED_BLOCK_WIDTH = 0x9127
+
+-- | Usage: @'glDispatchCompute' num_groups_x num_groups_y num_groups_z@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDispatchCompute.xhtml>
+
+
+glDispatchCompute :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()
+glDispatchCompute = ffiuintuintuintIOV glDispatchComputeFunPtr
+
+glDispatchComputeFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> IO ())
+glDispatchComputeFunPtr = unsafePerformIO (getProcAddress "glDispatchCompute")
+
+{-# NOINLINE glDispatchComputeFunPtr #-}
+
+-- | Usage: @'glDispatchComputeIndirect' indirect@
+--
+-- The parameter @indirect@ is a @BufferOffset@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDispatchComputeIndirect.xhtml>
+
+
+glDispatchComputeIndirect :: MonadIO m => GLintptr -> m ()
+glDispatchComputeIndirect = ffiintptrIOV glDispatchComputeIndirectFunPtr
+
+glDispatchComputeIndirectFunPtr :: FunPtr (GLintptr -> IO ())
+glDispatchComputeIndirectFunPtr = unsafePerformIO (getProcAddress "glDispatchComputeIndirect")
+
+{-# NOINLINE glDispatchComputeIndirectFunPtr #-}
+
+pattern GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_COMPUTE_SHADER = 0x90ED
+
+pattern GL_COMPUTE_SHADER = 0x91B9
+
+pattern GL_COMPUTE_SHADER_BIT = 0x00000020
+
+pattern GL_COMPUTE_WORK_GROUP_SIZE = 0x8267
+
+pattern GL_DISPATCH_INDIRECT_BUFFER = 0x90EE
+
+pattern GL_DISPATCH_INDIRECT_BUFFER_BINDING = 0x90EF
+
+pattern GL_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS = 0x8266
+
+pattern GL_MAX_COMPUTE_ATOMIC_COUNTERS = 0x8265
+
+pattern GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS = 0x8264
+
+pattern GL_MAX_COMPUTE_IMAGE_UNIFORMS = 0x91BD
+
+pattern GL_MAX_COMPUTE_SHARED_MEMORY_SIZE = 0x8262
+
+pattern GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS = 0x91BC
+
+pattern GL_MAX_COMPUTE_UNIFORM_BLOCKS = 0x91BB
+
+pattern GL_MAX_COMPUTE_UNIFORM_COMPONENTS = 0x8263
+
+pattern GL_MAX_COMPUTE_WORK_GROUP_COUNT = 0x91BE
+
+pattern GL_MAX_COMPUTE_WORK_GROUP_INVOCATIONS = 0x90EB
+
+pattern GL_MAX_COMPUTE_WORK_GROUP_SIZE = 0x91BF
+
+pattern GL_UNIFORM_BLOCK_REFERENCED_BY_COMPUTE_SHADER = 0x90EC
+
+pattern GL_QUERY_BY_REGION_NO_WAIT_INVERTED = 0x8E1A
+
+pattern GL_QUERY_BY_REGION_WAIT_INVERTED = 0x8E19
+
+pattern GL_QUERY_NO_WAIT_INVERTED = 0x8E18
+
+pattern GL_QUERY_WAIT_INVERTED = 0x8E17
+
+-- | Usage: @'glCopyBufferSubData' readTarget writeTarget readOffset writeOffset size@
+--
+-- The parameter @readOffset@ is a @BufferOffset@.
+--
+-- The parameter @writeOffset@ is a @BufferOffset@.
+--
+-- The parameter @size@ is a @BufferSize@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glCopyBufferSubData.xhtml>
+
+
+glCopyBufferSubData :: MonadIO m => GLenum -> GLenum -> GLintptr -> GLintptr -> GLsizeiptr -> m ()
+glCopyBufferSubData = ffienumenumintptrintptrsizeiptrIOV glCopyBufferSubDataFunPtr
+
+glCopyBufferSubDataFunPtr :: FunPtr (GLenum -> GLenum -> GLintptr -> GLintptr -> GLsizeiptr -> IO ())
+glCopyBufferSubDataFunPtr = unsafePerformIO (getProcAddress "glCopyBufferSubData")
+
+{-# NOINLINE glCopyBufferSubDataFunPtr #-}
+
+pattern GL_COPY_READ_BUFFER = 0x8F36
+
+pattern GL_COPY_WRITE_BUFFER = 0x8F37
+
+-- | Usage: @'glCopyImageSubData' srcName srcTarget srcLevel srcX srcY srcZ dstName dstTarget dstLevel dstX dstY dstZ srcWidth srcHeight srcDepth@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glCopyImageSubData.xhtml>
+
+
+glCopyImageSubData :: MonadIO m => GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> m ()
+glCopyImageSubData = ffiuintenumintintintintuintenumintintintintsizeisizeisizeiIOV glCopyImageSubDataFunPtr
+
+glCopyImageSubDataFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> IO ())
+glCopyImageSubDataFunPtr = unsafePerformIO (getProcAddress "glCopyImageSubData")
+
+{-# NOINLINE glCopyImageSubDataFunPtr #-}
+
+pattern GL_MAX_COMBINED_CLIP_AND_CULL_DISTANCES = 0x82FA
+
+pattern GL_MAX_CULL_DISTANCES = 0x82F9
+
+pattern GL_DEPTH32F_STENCIL8 = 0x8CAD
+
+pattern GL_DEPTH_COMPONENT32F = 0x8CAC
+
+pattern GL_FLOAT_32_UNSIGNED_INT_24_8_REV = 0x8DAD
+
+pattern GL_DEPTH_CLAMP = 0x864F
+
+-- | Usage: @'glBindTextureUnit' unit texture@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBindTextureUnit.xhtml>
+
+
+glBindTextureUnit :: MonadIO m => GLuint -> GLuint -> m ()
+glBindTextureUnit = ffiuintuintIOV glBindTextureUnitFunPtr
+
+glBindTextureUnitFunPtr :: FunPtr (GLuint -> GLuint -> IO ())
+glBindTextureUnitFunPtr = unsafePerformIO (getProcAddress "glBindTextureUnit")
+
+{-# NOINLINE glBindTextureUnitFunPtr #-}
+
+-- | Usage: @'glBlitNamedFramebuffer' readFramebuffer drawFramebuffer srcX0 srcY0 srcX1 srcY1 dstX0 dstY0 dstX1 dstY1 mask filter@
+
+
+glBlitNamedFramebuffer :: MonadIO m => GLuint -> GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLbitfield -> GLenum -> m ()
+glBlitNamedFramebuffer = ffiuintuintintintintintintintintintbitfieldenumIOV glBlitNamedFramebufferFunPtr
+
+glBlitNamedFramebufferFunPtr :: FunPtr (GLuint -> GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLbitfield -> GLenum -> IO ())
+glBlitNamedFramebufferFunPtr = unsafePerformIO (getProcAddress "glBlitNamedFramebuffer")
+
+{-# NOINLINE glBlitNamedFramebufferFunPtr #-}
+
+-- | Usage: @'glCheckNamedFramebufferStatus' framebuffer target@
+
+
+glCheckNamedFramebufferStatus :: MonadIO m => GLuint -> GLenum -> m GLenum
+glCheckNamedFramebufferStatus = ffiuintenumIOenum glCheckNamedFramebufferStatusFunPtr
+
+glCheckNamedFramebufferStatusFunPtr :: FunPtr (GLuint -> GLenum -> IO GLenum)
+glCheckNamedFramebufferStatusFunPtr = unsafePerformIO (getProcAddress "glCheckNamedFramebufferStatus")
+
+{-# NOINLINE glCheckNamedFramebufferStatusFunPtr #-}
+
+-- | Usage: @'glClearNamedBufferData' buffer internalformat format type data@
+
+
+glClearNamedBufferData :: MonadIO m => GLuint -> GLenum -> GLenum -> GLenum -> Ptr () -> m ()
+glClearNamedBufferData = ffiuintenumenumenumPtrVIOV glClearNamedBufferDataFunPtr
+
+glClearNamedBufferDataFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> GLenum -> Ptr () -> IO ())
+glClearNamedBufferDataFunPtr = unsafePerformIO (getProcAddress "glClearNamedBufferData")
+
+{-# NOINLINE glClearNamedBufferDataFunPtr #-}
+
+-- | Usage: @'glClearNamedBufferSubData' buffer internalformat offset size format type data@
+
+
+glClearNamedBufferSubData :: MonadIO m => GLuint -> GLenum -> GLintptr -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
+glClearNamedBufferSubData = ffiuintenumintptrsizeienumenumPtrVIOV glClearNamedBufferSubDataFunPtr
+
+glClearNamedBufferSubDataFunPtr :: FunPtr (GLuint -> GLenum -> GLintptr -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ())
+glClearNamedBufferSubDataFunPtr = unsafePerformIO (getProcAddress "glClearNamedBufferSubData")
+
+{-# NOINLINE glClearNamedBufferSubDataFunPtr #-}
+
+-- | Usage: @'glClearNamedFramebufferfi' framebuffer buffer depth stencil@
+
+
+glClearNamedFramebufferfi :: MonadIO m => GLuint -> GLenum -> GLfloat -> GLint -> m ()
+glClearNamedFramebufferfi = ffiuintenumfloatintIOV glClearNamedFramebufferfiFunPtr
+
+glClearNamedFramebufferfiFunPtr :: FunPtr (GLuint -> GLenum -> GLfloat -> GLint -> IO ())
+glClearNamedFramebufferfiFunPtr = unsafePerformIO (getProcAddress "glClearNamedFramebufferfi")
+
+{-# NOINLINE glClearNamedFramebufferfiFunPtr #-}
+
+-- | Usage: @'glClearNamedFramebufferfv' framebuffer buffer drawbuffer value@
+
+
+glClearNamedFramebufferfv :: MonadIO m => GLuint -> GLenum -> GLint -> Ptr GLfloat -> m ()
+glClearNamedFramebufferfv = ffiuintenumintPtrfloatIOV glClearNamedFramebufferfvFunPtr
+
+glClearNamedFramebufferfvFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> Ptr GLfloat -> IO ())
+glClearNamedFramebufferfvFunPtr = unsafePerformIO (getProcAddress "glClearNamedFramebufferfv")
+
+{-# NOINLINE glClearNamedFramebufferfvFunPtr #-}
+
+-- | Usage: @'glClearNamedFramebufferiv' framebuffer buffer drawbuffer value@
+
+
+glClearNamedFramebufferiv :: MonadIO m => GLuint -> GLenum -> GLint -> Ptr GLint -> m ()
+glClearNamedFramebufferiv = ffiuintenumintPtrintIOV glClearNamedFramebufferivFunPtr
+
+glClearNamedFramebufferivFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> Ptr GLint -> IO ())
+glClearNamedFramebufferivFunPtr = unsafePerformIO (getProcAddress "glClearNamedFramebufferiv")
+
+{-# NOINLINE glClearNamedFramebufferivFunPtr #-}
+
+-- | Usage: @'glClearNamedFramebufferuiv' framebuffer buffer drawbuffer value@
+
+
+glClearNamedFramebufferuiv :: MonadIO m => GLuint -> GLenum -> GLint -> Ptr GLuint -> m ()
+glClearNamedFramebufferuiv = ffiuintenumintPtruintIOV glClearNamedFramebufferuivFunPtr
+
+glClearNamedFramebufferuivFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> Ptr GLuint -> IO ())
+glClearNamedFramebufferuivFunPtr = unsafePerformIO (getProcAddress "glClearNamedFramebufferuiv")
+
+{-# NOINLINE glClearNamedFramebufferuivFunPtr #-}
+
+-- | Usage: @'glCompressedTextureSubImage1D' texture level xoffset width format imageSize data@
+
+
+glCompressedTextureSubImage1D :: MonadIO m => GLuint -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr () -> m ()
+glCompressedTextureSubImage1D = ffiuintintintsizeienumsizeiPtrVIOV glCompressedTextureSubImage1DFunPtr
+
+glCompressedTextureSubImage1DFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ())
+glCompressedTextureSubImage1DFunPtr = unsafePerformIO (getProcAddress "glCompressedTextureSubImage1D")
+
+{-# NOINLINE glCompressedTextureSubImage1DFunPtr #-}
+
+-- | Usage: @'glCompressedTextureSubImage2D' texture level xoffset yoffset width height format imageSize data@
+
+
+glCompressedTextureSubImage2D :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> m ()
+glCompressedTextureSubImage2D = ffiuintintintintsizeisizeienumsizeiPtrVIOV glCompressedTextureSubImage2DFunPtr
+
+glCompressedTextureSubImage2DFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ())
+glCompressedTextureSubImage2DFunPtr = unsafePerformIO (getProcAddress "glCompressedTextureSubImage2D")
+
+{-# NOINLINE glCompressedTextureSubImage2DFunPtr #-}
+
+-- | Usage: @'glCompressedTextureSubImage3D' texture level xoffset yoffset zoffset width height depth format imageSize data@
+
+
+glCompressedTextureSubImage3D :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> m ()
+glCompressedTextureSubImage3D = ffiuintintintintintsizeisizeisizeienumsizeiPtrVIOV glCompressedTextureSubImage3DFunPtr
+
+glCompressedTextureSubImage3DFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ())
+glCompressedTextureSubImage3DFunPtr = unsafePerformIO (getProcAddress "glCompressedTextureSubImage3D")
+
+{-# NOINLINE glCompressedTextureSubImage3DFunPtr #-}
+
+-- | Usage: @'glCopyNamedBufferSubData' readBuffer writeBuffer readOffset writeOffset size@
+
+
+glCopyNamedBufferSubData :: MonadIO m => GLuint -> GLuint -> GLintptr -> GLintptr -> GLsizei -> m ()
+glCopyNamedBufferSubData = ffiuintuintintptrintptrsizeiIOV glCopyNamedBufferSubDataFunPtr
+
+glCopyNamedBufferSubDataFunPtr :: FunPtr (GLuint -> GLuint -> GLintptr -> GLintptr -> GLsizei -> IO ())
+glCopyNamedBufferSubDataFunPtr = unsafePerformIO (getProcAddress "glCopyNamedBufferSubData")
+
+{-# NOINLINE glCopyNamedBufferSubDataFunPtr #-}
+
+-- | Usage: @'glCopyTextureSubImage1D' texture level xoffset x y width@
+
+
+glCopyTextureSubImage1D :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> m ()
+glCopyTextureSubImage1D = ffiuintintintintintsizeiIOV glCopyTextureSubImage1DFunPtr
+
+glCopyTextureSubImage1DFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> IO ())
+glCopyTextureSubImage1DFunPtr = unsafePerformIO (getProcAddress "glCopyTextureSubImage1D")
+
+{-# NOINLINE glCopyTextureSubImage1DFunPtr #-}
+
+-- | Usage: @'glCopyTextureSubImage2D' texture level xoffset yoffset x y width height@
+
+
+glCopyTextureSubImage2D :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()
+glCopyTextureSubImage2D = ffiuintintintintintintsizeisizeiIOV glCopyTextureSubImage2DFunPtr
+
+glCopyTextureSubImage2DFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ())
+glCopyTextureSubImage2DFunPtr = unsafePerformIO (getProcAddress "glCopyTextureSubImage2D")
+
+{-# NOINLINE glCopyTextureSubImage2DFunPtr #-}
+
+-- | Usage: @'glCopyTextureSubImage3D' texture level xoffset yoffset zoffset x y width height@
+
+
+glCopyTextureSubImage3D :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()
+glCopyTextureSubImage3D = ffiuintintintintintintintsizeisizeiIOV glCopyTextureSubImage3DFunPtr
+
+glCopyTextureSubImage3DFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ())
+glCopyTextureSubImage3DFunPtr = unsafePerformIO (getProcAddress "glCopyTextureSubImage3D")
+
+{-# NOINLINE glCopyTextureSubImage3DFunPtr #-}
+
+-- | Usage: @'glCreateBuffers' n buffers@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glCreateBuffers.xhtml>
+
+
+glCreateBuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glCreateBuffers = ffisizeiPtruintIOV glCreateBuffersFunPtr
+
+glCreateBuffersFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glCreateBuffersFunPtr = unsafePerformIO (getProcAddress "glCreateBuffers")
+
+{-# NOINLINE glCreateBuffersFunPtr #-}
+
+-- | Usage: @'glCreateFramebuffers' n framebuffers@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glCreateFramebuffers.xhtml>
+
+
+glCreateFramebuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glCreateFramebuffers = ffisizeiPtruintIOV glCreateFramebuffersFunPtr
+
+glCreateFramebuffersFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glCreateFramebuffersFunPtr = unsafePerformIO (getProcAddress "glCreateFramebuffers")
+
+{-# NOINLINE glCreateFramebuffersFunPtr #-}
+
+-- | Usage: @'glCreateProgramPipelines' n pipelines@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glCreateProgramPipelines.xhtml>
+
+
+glCreateProgramPipelines :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glCreateProgramPipelines = ffisizeiPtruintIOV glCreateProgramPipelinesFunPtr
+
+glCreateProgramPipelinesFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glCreateProgramPipelinesFunPtr = unsafePerformIO (getProcAddress "glCreateProgramPipelines")
+
+{-# NOINLINE glCreateProgramPipelinesFunPtr #-}
+
+-- | Usage: @'glCreateQueries' target n ids@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glCreateQueries.xhtml>
+
+
+glCreateQueries :: MonadIO m => GLenum -> GLsizei -> Ptr GLuint -> m ()
+glCreateQueries = ffienumsizeiPtruintIOV glCreateQueriesFunPtr
+
+glCreateQueriesFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr GLuint -> IO ())
+glCreateQueriesFunPtr = unsafePerformIO (getProcAddress "glCreateQueries")
+
+{-# NOINLINE glCreateQueriesFunPtr #-}
+
+-- | Usage: @'glCreateRenderbuffers' n renderbuffers@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glCreateRenderbuffers.xhtml>
+
+
+glCreateRenderbuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glCreateRenderbuffers = ffisizeiPtruintIOV glCreateRenderbuffersFunPtr
+
+glCreateRenderbuffersFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glCreateRenderbuffersFunPtr = unsafePerformIO (getProcAddress "glCreateRenderbuffers")
+
+{-# NOINLINE glCreateRenderbuffersFunPtr #-}
+
+-- | Usage: @'glCreateSamplers' n samplers@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glCreateSamplers.xhtml>
+
+
+glCreateSamplers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glCreateSamplers = ffisizeiPtruintIOV glCreateSamplersFunPtr
+
+glCreateSamplersFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glCreateSamplersFunPtr = unsafePerformIO (getProcAddress "glCreateSamplers")
+
+{-# NOINLINE glCreateSamplersFunPtr #-}
+
+-- | Usage: @'glCreateTextures' target n textures@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glCreateTextures.xhtml>
+
+
+glCreateTextures :: MonadIO m => GLenum -> GLsizei -> Ptr GLuint -> m ()
+glCreateTextures = ffienumsizeiPtruintIOV glCreateTexturesFunPtr
+
+glCreateTexturesFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr GLuint -> IO ())
+glCreateTexturesFunPtr = unsafePerformIO (getProcAddress "glCreateTextures")
+
+{-# NOINLINE glCreateTexturesFunPtr #-}
+
+-- | Usage: @'glCreateTransformFeedbacks' n ids@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glCreateTransformFeedbacks.xhtml>
+
+
+glCreateTransformFeedbacks :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glCreateTransformFeedbacks = ffisizeiPtruintIOV glCreateTransformFeedbacksFunPtr
+
+glCreateTransformFeedbacksFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glCreateTransformFeedbacksFunPtr = unsafePerformIO (getProcAddress "glCreateTransformFeedbacks")
+
+{-# NOINLINE glCreateTransformFeedbacksFunPtr #-}
+
+-- | Usage: @'glCreateVertexArrays' n arrays@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glCreateVertexArrays.xhtml>
+
+
+glCreateVertexArrays :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glCreateVertexArrays = ffisizeiPtruintIOV glCreateVertexArraysFunPtr
+
+glCreateVertexArraysFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glCreateVertexArraysFunPtr = unsafePerformIO (getProcAddress "glCreateVertexArrays")
+
+{-# NOINLINE glCreateVertexArraysFunPtr #-}
+
+-- | Usage: @'glDisableVertexArrayAttrib' vaobj index@
+
+
+glDisableVertexArrayAttrib :: MonadIO m => GLuint -> GLuint -> m ()
+glDisableVertexArrayAttrib = ffiuintuintIOV glDisableVertexArrayAttribFunPtr
+
+glDisableVertexArrayAttribFunPtr :: FunPtr (GLuint -> GLuint -> IO ())
+glDisableVertexArrayAttribFunPtr = unsafePerformIO (getProcAddress "glDisableVertexArrayAttrib")
+
+{-# NOINLINE glDisableVertexArrayAttribFunPtr #-}
+
+-- | Usage: @'glEnableVertexArrayAttrib' vaobj index@
+
+
+glEnableVertexArrayAttrib :: MonadIO m => GLuint -> GLuint -> m ()
+glEnableVertexArrayAttrib = ffiuintuintIOV glEnableVertexArrayAttribFunPtr
+
+glEnableVertexArrayAttribFunPtr :: FunPtr (GLuint -> GLuint -> IO ())
+glEnableVertexArrayAttribFunPtr = unsafePerformIO (getProcAddress "glEnableVertexArrayAttrib")
+
+{-# NOINLINE glEnableVertexArrayAttribFunPtr #-}
+
+-- | Usage: @'glFlushMappedNamedBufferRange' buffer offset length@
+
+
+glFlushMappedNamedBufferRange :: MonadIO m => GLuint -> GLintptr -> GLsizei -> m ()
+glFlushMappedNamedBufferRange = ffiuintintptrsizeiIOV glFlushMappedNamedBufferRangeFunPtr
+
+glFlushMappedNamedBufferRangeFunPtr :: FunPtr (GLuint -> GLintptr -> GLsizei -> IO ())
+glFlushMappedNamedBufferRangeFunPtr = unsafePerformIO (getProcAddress "glFlushMappedNamedBufferRange")
+
+{-# NOINLINE glFlushMappedNamedBufferRangeFunPtr #-}
+
+-- | Usage: @'glGenerateTextureMipmap' texture@
+
+
+glGenerateTextureMipmap :: MonadIO m => GLuint -> m ()
+glGenerateTextureMipmap = ffiuintIOV glGenerateTextureMipmapFunPtr
+
+glGenerateTextureMipmapFunPtr :: FunPtr (GLuint -> IO ())
+glGenerateTextureMipmapFunPtr = unsafePerformIO (getProcAddress "glGenerateTextureMipmap")
+
+{-# NOINLINE glGenerateTextureMipmapFunPtr #-}
+
+-- | Usage: @'glGetCompressedTextureImage' texture level bufSize pixels@
+
+
+glGetCompressedTextureImage :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr () -> m ()
+glGetCompressedTextureImage = ffiuintintsizeiPtrVIOV glGetCompressedTextureImageFunPtr
+
+glGetCompressedTextureImageFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr () -> IO ())
+glGetCompressedTextureImageFunPtr = unsafePerformIO (getProcAddress "glGetCompressedTextureImage")
+
+{-# NOINLINE glGetCompressedTextureImageFunPtr #-}
+
+-- | Usage: @'glGetNamedBufferParameteri64v' buffer pname params@
+
+
+glGetNamedBufferParameteri64v :: MonadIO m => GLuint -> GLenum -> Ptr GLint64 -> m ()
+glGetNamedBufferParameteri64v = ffiuintenumPtrint64IOV glGetNamedBufferParameteri64vFunPtr
+
+glGetNamedBufferParameteri64vFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint64 -> IO ())
+glGetNamedBufferParameteri64vFunPtr = unsafePerformIO (getProcAddress "glGetNamedBufferParameteri64v")
+
+{-# NOINLINE glGetNamedBufferParameteri64vFunPtr #-}
+
+-- | Usage: @'glGetNamedBufferParameteriv' buffer pname params@
+
+
+glGetNamedBufferParameteriv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
+glGetNamedBufferParameteriv = ffiuintenumPtrintIOV glGetNamedBufferParameterivFunPtr
+
+glGetNamedBufferParameterivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+glGetNamedBufferParameterivFunPtr = unsafePerformIO (getProcAddress "glGetNamedBufferParameteriv")
+
+{-# NOINLINE glGetNamedBufferParameterivFunPtr #-}
+
+-- | Usage: @'glGetNamedBufferPointerv' buffer pname params@
+
+
+glGetNamedBufferPointerv :: MonadIO m => GLuint -> GLenum -> Ptr (Ptr ()) -> m ()
+glGetNamedBufferPointerv = ffiuintenumPtrPtrVIOV glGetNamedBufferPointervFunPtr
+
+glGetNamedBufferPointervFunPtr :: FunPtr (GLuint -> GLenum -> Ptr (Ptr ()) -> IO ())
+glGetNamedBufferPointervFunPtr = unsafePerformIO (getProcAddress "glGetNamedBufferPointerv")
+
+{-# NOINLINE glGetNamedBufferPointervFunPtr #-}
+
+-- | Usage: @'glGetNamedBufferSubData' buffer offset size data@
+
+
+glGetNamedBufferSubData :: MonadIO m => GLuint -> GLintptr -> GLsizei -> Ptr () -> m ()
+glGetNamedBufferSubData = ffiuintintptrsizeiPtrVIOV glGetNamedBufferSubDataFunPtr
+
+glGetNamedBufferSubDataFunPtr :: FunPtr (GLuint -> GLintptr -> GLsizei -> Ptr () -> IO ())
+glGetNamedBufferSubDataFunPtr = unsafePerformIO (getProcAddress "glGetNamedBufferSubData")
+
+{-# NOINLINE glGetNamedBufferSubDataFunPtr #-}
+
+-- | Usage: @'glGetNamedFramebufferAttachmentParameteriv' framebuffer attachment pname params@
+
+
+glGetNamedFramebufferAttachmentParameteriv :: MonadIO m => GLuint -> GLenum -> GLenum -> Ptr GLint -> m ()
+glGetNamedFramebufferAttachmentParameteriv = ffiuintenumenumPtrintIOV glGetNamedFramebufferAttachmentParameterivFunPtr
+
+glGetNamedFramebufferAttachmentParameterivFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> Ptr GLint -> IO ())
+glGetNamedFramebufferAttachmentParameterivFunPtr = unsafePerformIO (getProcAddress "glGetNamedFramebufferAttachmentParameteriv")
+
+{-# NOINLINE glGetNamedFramebufferAttachmentParameterivFunPtr #-}
+
+-- | Usage: @'glGetNamedFramebufferParameteriv' framebuffer pname param@
+
+
+glGetNamedFramebufferParameteriv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
+glGetNamedFramebufferParameteriv = ffiuintenumPtrintIOV glGetNamedFramebufferParameterivFunPtr
+
+glGetNamedFramebufferParameterivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+glGetNamedFramebufferParameterivFunPtr = unsafePerformIO (getProcAddress "glGetNamedFramebufferParameteriv")
+
+{-# NOINLINE glGetNamedFramebufferParameterivFunPtr #-}
+
+-- | Usage: @'glGetNamedRenderbufferParameteriv' renderbuffer pname params@
+
+
+glGetNamedRenderbufferParameteriv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
+glGetNamedRenderbufferParameteriv = ffiuintenumPtrintIOV glGetNamedRenderbufferParameterivFunPtr
+
+glGetNamedRenderbufferParameterivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+glGetNamedRenderbufferParameterivFunPtr = unsafePerformIO (getProcAddress "glGetNamedRenderbufferParameteriv")
+
+{-# NOINLINE glGetNamedRenderbufferParameterivFunPtr #-}
+
+-- | Usage: @'glGetQueryBufferObjecti64v' id buffer pname offset@
+
+
+glGetQueryBufferObjecti64v :: MonadIO m => GLuint -> GLuint -> GLenum -> GLintptr -> m ()
+glGetQueryBufferObjecti64v = ffiuintuintenumintptrIOV glGetQueryBufferObjecti64vFunPtr
+
+glGetQueryBufferObjecti64vFunPtr :: FunPtr (GLuint -> GLuint -> GLenum -> GLintptr -> IO ())
+glGetQueryBufferObjecti64vFunPtr = unsafePerformIO (getProcAddress "glGetQueryBufferObjecti64v")
+
+{-# NOINLINE glGetQueryBufferObjecti64vFunPtr #-}
+
+-- | Usage: @'glGetQueryBufferObjectiv' id buffer pname offset@
+
+
+glGetQueryBufferObjectiv :: MonadIO m => GLuint -> GLuint -> GLenum -> GLintptr -> m ()
+glGetQueryBufferObjectiv = ffiuintuintenumintptrIOV glGetQueryBufferObjectivFunPtr
+
+glGetQueryBufferObjectivFunPtr :: FunPtr (GLuint -> GLuint -> GLenum -> GLintptr -> IO ())
+glGetQueryBufferObjectivFunPtr = unsafePerformIO (getProcAddress "glGetQueryBufferObjectiv")
+
+{-# NOINLINE glGetQueryBufferObjectivFunPtr #-}
+
+-- | Usage: @'glGetQueryBufferObjectui64v' id buffer pname offset@
+
+
+glGetQueryBufferObjectui64v :: MonadIO m => GLuint -> GLuint -> GLenum -> GLintptr -> m ()
+glGetQueryBufferObjectui64v = ffiuintuintenumintptrIOV glGetQueryBufferObjectui64vFunPtr
+
+glGetQueryBufferObjectui64vFunPtr :: FunPtr (GLuint -> GLuint -> GLenum -> GLintptr -> IO ())
+glGetQueryBufferObjectui64vFunPtr = unsafePerformIO (getProcAddress "glGetQueryBufferObjectui64v")
+
+{-# NOINLINE glGetQueryBufferObjectui64vFunPtr #-}
+
+-- | Usage: @'glGetQueryBufferObjectuiv' id buffer pname offset@
+
+
+glGetQueryBufferObjectuiv :: MonadIO m => GLuint -> GLuint -> GLenum -> GLintptr -> m ()
+glGetQueryBufferObjectuiv = ffiuintuintenumintptrIOV glGetQueryBufferObjectuivFunPtr
+
+glGetQueryBufferObjectuivFunPtr :: FunPtr (GLuint -> GLuint -> GLenum -> GLintptr -> IO ())
+glGetQueryBufferObjectuivFunPtr = unsafePerformIO (getProcAddress "glGetQueryBufferObjectuiv")
+
+{-# NOINLINE glGetQueryBufferObjectuivFunPtr #-}
+
+-- | Usage: @'glGetTextureImage' texture level format type bufSize pixels@
+
+
+glGetTextureImage :: MonadIO m => GLuint -> GLint -> GLenum -> GLenum -> GLsizei -> Ptr () -> m ()
+glGetTextureImage = ffiuintintenumenumsizeiPtrVIOV glGetTextureImageFunPtr
+
+glGetTextureImageFunPtr :: FunPtr (GLuint -> GLint -> GLenum -> GLenum -> GLsizei -> Ptr () -> IO ())
+glGetTextureImageFunPtr = unsafePerformIO (getProcAddress "glGetTextureImage")
+
+{-# NOINLINE glGetTextureImageFunPtr #-}
+
+-- | Usage: @'glGetTextureLevelParameterfv' texture level pname params@
+
+
+glGetTextureLevelParameterfv :: MonadIO m => GLuint -> GLint -> GLenum -> Ptr GLfloat -> m ()
+glGetTextureLevelParameterfv = ffiuintintenumPtrfloatIOV glGetTextureLevelParameterfvFunPtr
+
+glGetTextureLevelParameterfvFunPtr :: FunPtr (GLuint -> GLint -> GLenum -> Ptr GLfloat -> IO ())
+glGetTextureLevelParameterfvFunPtr = unsafePerformIO (getProcAddress "glGetTextureLevelParameterfv")
+
+{-# NOINLINE glGetTextureLevelParameterfvFunPtr #-}
+
+-- | Usage: @'glGetTextureLevelParameteriv' texture level pname params@
+
+
+glGetTextureLevelParameteriv :: MonadIO m => GLuint -> GLint -> GLenum -> Ptr GLint -> m ()
+glGetTextureLevelParameteriv = ffiuintintenumPtrintIOV glGetTextureLevelParameterivFunPtr
+
+glGetTextureLevelParameterivFunPtr :: FunPtr (GLuint -> GLint -> GLenum -> Ptr GLint -> IO ())
+glGetTextureLevelParameterivFunPtr = unsafePerformIO (getProcAddress "glGetTextureLevelParameteriv")
+
+{-# NOINLINE glGetTextureLevelParameterivFunPtr #-}
+
+-- | Usage: @'glGetTextureParameterIiv' texture pname params@
+
+
+glGetTextureParameterIiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
+glGetTextureParameterIiv = ffiuintenumPtrintIOV glGetTextureParameterIivFunPtr
+
+glGetTextureParameterIivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+glGetTextureParameterIivFunPtr = unsafePerformIO (getProcAddress "glGetTextureParameterIiv")
+
+{-# NOINLINE glGetTextureParameterIivFunPtr #-}
+
+-- | Usage: @'glGetTextureParameterIuiv' texture pname params@
+
+
+glGetTextureParameterIuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()
+glGetTextureParameterIuiv = ffiuintenumPtruintIOV glGetTextureParameterIuivFunPtr
+
+glGetTextureParameterIuivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLuint -> IO ())
+glGetTextureParameterIuivFunPtr = unsafePerformIO (getProcAddress "glGetTextureParameterIuiv")
+
+{-# NOINLINE glGetTextureParameterIuivFunPtr #-}
+
+-- | Usage: @'glGetTextureParameterfv' texture pname params@
+
+
+glGetTextureParameterfv :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()
+glGetTextureParameterfv = ffiuintenumPtrfloatIOV glGetTextureParameterfvFunPtr
+
+glGetTextureParameterfvFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLfloat -> IO ())
+glGetTextureParameterfvFunPtr = unsafePerformIO (getProcAddress "glGetTextureParameterfv")
+
+{-# NOINLINE glGetTextureParameterfvFunPtr #-}
+
+-- | Usage: @'glGetTextureParameteriv' texture pname params@
+
+
+glGetTextureParameteriv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
+glGetTextureParameteriv = ffiuintenumPtrintIOV glGetTextureParameterivFunPtr
+
+glGetTextureParameterivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+glGetTextureParameterivFunPtr = unsafePerformIO (getProcAddress "glGetTextureParameteriv")
+
+{-# NOINLINE glGetTextureParameterivFunPtr #-}
+
+-- | Usage: @'glGetTransformFeedbacki64_v' xfb pname index param@
+
+
+glGetTransformFeedbacki64_v :: MonadIO m => GLuint -> GLenum -> GLuint -> Ptr GLint64 -> m ()
+glGetTransformFeedbacki64_v = ffiuintenumuintPtrint64IOV glGetTransformFeedbacki64_vFunPtr
+
+glGetTransformFeedbacki64_vFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> Ptr GLint64 -> IO ())
+glGetTransformFeedbacki64_vFunPtr = unsafePerformIO (getProcAddress "glGetTransformFeedbacki64_v")
+
+{-# NOINLINE glGetTransformFeedbacki64_vFunPtr #-}
+
+-- | Usage: @'glGetTransformFeedbacki_v' xfb pname index param@
+
+
+glGetTransformFeedbacki_v :: MonadIO m => GLuint -> GLenum -> GLuint -> Ptr GLint -> m ()
+glGetTransformFeedbacki_v = ffiuintenumuintPtrintIOV glGetTransformFeedbacki_vFunPtr
+
+glGetTransformFeedbacki_vFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> Ptr GLint -> IO ())
+glGetTransformFeedbacki_vFunPtr = unsafePerformIO (getProcAddress "glGetTransformFeedbacki_v")
+
+{-# NOINLINE glGetTransformFeedbacki_vFunPtr #-}
+
+-- | Usage: @'glGetTransformFeedbackiv' xfb pname param@
+
+
+glGetTransformFeedbackiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
+glGetTransformFeedbackiv = ffiuintenumPtrintIOV glGetTransformFeedbackivFunPtr
+
+glGetTransformFeedbackivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+glGetTransformFeedbackivFunPtr = unsafePerformIO (getProcAddress "glGetTransformFeedbackiv")
+
+{-# NOINLINE glGetTransformFeedbackivFunPtr #-}
+
+-- | Usage: @'glGetVertexArrayIndexed64iv' vaobj index pname param@
+
+
+glGetVertexArrayIndexed64iv :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr GLint64 -> m ()
+glGetVertexArrayIndexed64iv = ffiuintuintenumPtrint64IOV glGetVertexArrayIndexed64ivFunPtr
+
+glGetVertexArrayIndexed64ivFunPtr :: FunPtr (GLuint -> GLuint -> GLenum -> Ptr GLint64 -> IO ())
+glGetVertexArrayIndexed64ivFunPtr = unsafePerformIO (getProcAddress "glGetVertexArrayIndexed64iv")
+
+{-# NOINLINE glGetVertexArrayIndexed64ivFunPtr #-}
+
+-- | Usage: @'glGetVertexArrayIndexediv' vaobj index pname param@
+
+
+glGetVertexArrayIndexediv :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr GLint -> m ()
+glGetVertexArrayIndexediv = ffiuintuintenumPtrintIOV glGetVertexArrayIndexedivFunPtr
+
+glGetVertexArrayIndexedivFunPtr :: FunPtr (GLuint -> GLuint -> GLenum -> Ptr GLint -> IO ())
+glGetVertexArrayIndexedivFunPtr = unsafePerformIO (getProcAddress "glGetVertexArrayIndexediv")
+
+{-# NOINLINE glGetVertexArrayIndexedivFunPtr #-}
+
+-- | Usage: @'glGetVertexArrayiv' vaobj pname param@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetVertexArrayiv.xhtml>
+
+
+glGetVertexArrayiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
+glGetVertexArrayiv = ffiuintenumPtrintIOV glGetVertexArrayivFunPtr
+
+glGetVertexArrayivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+glGetVertexArrayivFunPtr = unsafePerformIO (getProcAddress "glGetVertexArrayiv")
+
+{-# NOINLINE glGetVertexArrayivFunPtr #-}
+
+-- | Usage: @'glInvalidateNamedFramebufferData' framebuffer numAttachments attachments@
+
+
+glInvalidateNamedFramebufferData :: MonadIO m => GLuint -> GLsizei -> Ptr GLenum -> m ()
+glInvalidateNamedFramebufferData = ffiuintsizeiPtrenumIOV glInvalidateNamedFramebufferDataFunPtr
+
+glInvalidateNamedFramebufferDataFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLenum -> IO ())
+glInvalidateNamedFramebufferDataFunPtr = unsafePerformIO (getProcAddress "glInvalidateNamedFramebufferData")
+
+{-# NOINLINE glInvalidateNamedFramebufferDataFunPtr #-}
+
+-- | Usage: @'glInvalidateNamedFramebufferSubData' framebuffer numAttachments attachments x y width height@
+
+
+glInvalidateNamedFramebufferSubData :: MonadIO m => GLuint -> GLsizei -> Ptr GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> m ()
+glInvalidateNamedFramebufferSubData = ffiuintsizeiPtrenumintintsizeisizeiIOV glInvalidateNamedFramebufferSubDataFunPtr
+
+glInvalidateNamedFramebufferSubDataFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> IO ())
+glInvalidateNamedFramebufferSubDataFunPtr = unsafePerformIO (getProcAddress "glInvalidateNamedFramebufferSubData")
+
+{-# NOINLINE glInvalidateNamedFramebufferSubDataFunPtr #-}
+
+-- | Usage: @'glMapNamedBuffer' buffer access@
+
+
+glMapNamedBuffer :: MonadIO m => GLuint -> GLenum -> m (Ptr ())
+glMapNamedBuffer = ffiuintenumIOPtrV glMapNamedBufferFunPtr
+
+glMapNamedBufferFunPtr :: FunPtr (GLuint -> GLenum -> IO (Ptr ()))
+glMapNamedBufferFunPtr = unsafePerformIO (getProcAddress "glMapNamedBuffer")
+
+{-# NOINLINE glMapNamedBufferFunPtr #-}
+
+-- | Usage: @'glMapNamedBufferRange' buffer offset length access@
+
+
+glMapNamedBufferRange :: MonadIO m => GLuint -> GLintptr -> GLsizei -> GLbitfield -> m (Ptr ())
+glMapNamedBufferRange = ffiuintintptrsizeibitfieldIOPtrV glMapNamedBufferRangeFunPtr
+
+glMapNamedBufferRangeFunPtr :: FunPtr (GLuint -> GLintptr -> GLsizei -> GLbitfield -> IO (Ptr ()))
+glMapNamedBufferRangeFunPtr = unsafePerformIO (getProcAddress "glMapNamedBufferRange")
+
+{-# NOINLINE glMapNamedBufferRangeFunPtr #-}
+
+-- | Usage: @'glNamedBufferData' buffer size data usage@
+
+
+glNamedBufferData :: MonadIO m => GLuint -> GLsizei -> Ptr () -> GLenum -> m ()
+glNamedBufferData = ffiuintsizeiPtrVenumIOV glNamedBufferDataFunPtr
+
+glNamedBufferDataFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr () -> GLenum -> IO ())
+glNamedBufferDataFunPtr = unsafePerformIO (getProcAddress "glNamedBufferData")
+
+{-# NOINLINE glNamedBufferDataFunPtr #-}
+
+-- | Usage: @'glNamedBufferStorage' buffer size data flags@
+
+
+glNamedBufferStorage :: MonadIO m => GLuint -> GLsizei -> Ptr () -> GLbitfield -> m ()
+glNamedBufferStorage = ffiuintsizeiPtrVbitfieldIOV glNamedBufferStorageFunPtr
+
+glNamedBufferStorageFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr () -> GLbitfield -> IO ())
+glNamedBufferStorageFunPtr = unsafePerformIO (getProcAddress "glNamedBufferStorage")
+
+{-# NOINLINE glNamedBufferStorageFunPtr #-}
+
+-- | Usage: @'glNamedBufferSubData' buffer offset size data@
+
+
+glNamedBufferSubData :: MonadIO m => GLuint -> GLintptr -> GLsizei -> Ptr () -> m ()
+glNamedBufferSubData = ffiuintintptrsizeiPtrVIOV glNamedBufferSubDataFunPtr
+
+glNamedBufferSubDataFunPtr :: FunPtr (GLuint -> GLintptr -> GLsizei -> Ptr () -> IO ())
+glNamedBufferSubDataFunPtr = unsafePerformIO (getProcAddress "glNamedBufferSubData")
+
+{-# NOINLINE glNamedBufferSubDataFunPtr #-}
+
+-- | Usage: @'glNamedFramebufferDrawBuffer' framebuffer buf@
+
+
+glNamedFramebufferDrawBuffer :: MonadIO m => GLuint -> GLenum -> m ()
+glNamedFramebufferDrawBuffer = ffiuintenumIOV glNamedFramebufferDrawBufferFunPtr
+
+glNamedFramebufferDrawBufferFunPtr :: FunPtr (GLuint -> GLenum -> IO ())
+glNamedFramebufferDrawBufferFunPtr = unsafePerformIO (getProcAddress "glNamedFramebufferDrawBuffer")
+
+{-# NOINLINE glNamedFramebufferDrawBufferFunPtr #-}
+
+-- | Usage: @'glNamedFramebufferDrawBuffers' framebuffer n bufs@
+
+
+glNamedFramebufferDrawBuffers :: MonadIO m => GLuint -> GLsizei -> Ptr GLenum -> m ()
+glNamedFramebufferDrawBuffers = ffiuintsizeiPtrenumIOV glNamedFramebufferDrawBuffersFunPtr
+
+glNamedFramebufferDrawBuffersFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLenum -> IO ())
+glNamedFramebufferDrawBuffersFunPtr = unsafePerformIO (getProcAddress "glNamedFramebufferDrawBuffers")
+
+{-# NOINLINE glNamedFramebufferDrawBuffersFunPtr #-}
+
+-- | Usage: @'glNamedFramebufferParameteri' framebuffer pname param@
+
+
+glNamedFramebufferParameteri :: MonadIO m => GLuint -> GLenum -> GLint -> m ()
+glNamedFramebufferParameteri = ffiuintenumintIOV glNamedFramebufferParameteriFunPtr
+
+glNamedFramebufferParameteriFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> IO ())
+glNamedFramebufferParameteriFunPtr = unsafePerformIO (getProcAddress "glNamedFramebufferParameteri")
+
+{-# NOINLINE glNamedFramebufferParameteriFunPtr #-}
+
+-- | Usage: @'glNamedFramebufferReadBuffer' framebuffer src@
+
+
+glNamedFramebufferReadBuffer :: MonadIO m => GLuint -> GLenum -> m ()
+glNamedFramebufferReadBuffer = ffiuintenumIOV glNamedFramebufferReadBufferFunPtr
+
+glNamedFramebufferReadBufferFunPtr :: FunPtr (GLuint -> GLenum -> IO ())
+glNamedFramebufferReadBufferFunPtr = unsafePerformIO (getProcAddress "glNamedFramebufferReadBuffer")
+
+{-# NOINLINE glNamedFramebufferReadBufferFunPtr #-}
+
+-- | Usage: @'glNamedFramebufferRenderbuffer' framebuffer attachment renderbuffertarget renderbuffer@
+
+
+glNamedFramebufferRenderbuffer :: MonadIO m => GLuint -> GLenum -> GLenum -> GLuint -> m ()
+glNamedFramebufferRenderbuffer = ffiuintenumenumuintIOV glNamedFramebufferRenderbufferFunPtr
+
+glNamedFramebufferRenderbufferFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> GLuint -> IO ())
+glNamedFramebufferRenderbufferFunPtr = unsafePerformIO (getProcAddress "glNamedFramebufferRenderbuffer")
+
+{-# NOINLINE glNamedFramebufferRenderbufferFunPtr #-}
+
+-- | Usage: @'glNamedFramebufferTexture' framebuffer attachment texture level@
+
+
+glNamedFramebufferTexture :: MonadIO m => GLuint -> GLenum -> GLuint -> GLint -> m ()
+glNamedFramebufferTexture = ffiuintenumuintintIOV glNamedFramebufferTextureFunPtr
+
+glNamedFramebufferTextureFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> GLint -> IO ())
+glNamedFramebufferTextureFunPtr = unsafePerformIO (getProcAddress "glNamedFramebufferTexture")
+
+{-# NOINLINE glNamedFramebufferTextureFunPtr #-}
+
+-- | Usage: @'glNamedFramebufferTextureLayer' framebuffer attachment texture level layer@
+
+
+glNamedFramebufferTextureLayer :: MonadIO m => GLuint -> GLenum -> GLuint -> GLint -> GLint -> m ()
+glNamedFramebufferTextureLayer = ffiuintenumuintintintIOV glNamedFramebufferTextureLayerFunPtr
+
+glNamedFramebufferTextureLayerFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> GLint -> GLint -> IO ())
+glNamedFramebufferTextureLayerFunPtr = unsafePerformIO (getProcAddress "glNamedFramebufferTextureLayer")
+
+{-# NOINLINE glNamedFramebufferTextureLayerFunPtr #-}
+
+-- | Usage: @'glNamedRenderbufferStorage' renderbuffer internalformat width height@
+
+
+glNamedRenderbufferStorage :: MonadIO m => GLuint -> GLenum -> GLsizei -> GLsizei -> m ()
+glNamedRenderbufferStorage = ffiuintenumsizeisizeiIOV glNamedRenderbufferStorageFunPtr
+
+glNamedRenderbufferStorageFunPtr :: FunPtr (GLuint -> GLenum -> GLsizei -> GLsizei -> IO ())
+glNamedRenderbufferStorageFunPtr = unsafePerformIO (getProcAddress "glNamedRenderbufferStorage")
+
+{-# NOINLINE glNamedRenderbufferStorageFunPtr #-}
+
+-- | Usage: @'glNamedRenderbufferStorageMultisample' renderbuffer samples internalformat width height@
+
+
+glNamedRenderbufferStorageMultisample :: MonadIO m => GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()
+glNamedRenderbufferStorageMultisample = ffiuintsizeienumsizeisizeiIOV glNamedRenderbufferStorageMultisampleFunPtr
+
+glNamedRenderbufferStorageMultisampleFunPtr :: FunPtr (GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> IO ())
+glNamedRenderbufferStorageMultisampleFunPtr = unsafePerformIO (getProcAddress "glNamedRenderbufferStorageMultisample")
+
+{-# NOINLINE glNamedRenderbufferStorageMultisampleFunPtr #-}
+
+-- | Usage: @'glTextureBuffer' texture internalformat buffer@
+
+
+glTextureBuffer :: MonadIO m => GLuint -> GLenum -> GLuint -> m ()
+glTextureBuffer = ffiuintenumuintIOV glTextureBufferFunPtr
+
+glTextureBufferFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> IO ())
+glTextureBufferFunPtr = unsafePerformIO (getProcAddress "glTextureBuffer")
+
+{-# NOINLINE glTextureBufferFunPtr #-}
+
+-- | Usage: @'glTextureBufferRange' texture internalformat buffer offset size@
+
+
+glTextureBufferRange :: MonadIO m => GLuint -> GLenum -> GLuint -> GLintptr -> GLsizei -> m ()
+glTextureBufferRange = ffiuintenumuintintptrsizeiIOV glTextureBufferRangeFunPtr
+
+glTextureBufferRangeFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> GLintptr -> GLsizei -> IO ())
+glTextureBufferRangeFunPtr = unsafePerformIO (getProcAddress "glTextureBufferRange")
+
+{-# NOINLINE glTextureBufferRangeFunPtr #-}
+
+-- | Usage: @'glTextureParameterIiv' texture pname params@
+
+
+glTextureParameterIiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
+glTextureParameterIiv = ffiuintenumPtrintIOV glTextureParameterIivFunPtr
+
+glTextureParameterIivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+glTextureParameterIivFunPtr = unsafePerformIO (getProcAddress "glTextureParameterIiv")
+
+{-# NOINLINE glTextureParameterIivFunPtr #-}
+
+-- | Usage: @'glTextureParameterIuiv' texture pname params@
+
+
+glTextureParameterIuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()
+glTextureParameterIuiv = ffiuintenumPtruintIOV glTextureParameterIuivFunPtr
+
+glTextureParameterIuivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLuint -> IO ())
+glTextureParameterIuivFunPtr = unsafePerformIO (getProcAddress "glTextureParameterIuiv")
+
+{-# NOINLINE glTextureParameterIuivFunPtr #-}
+
+-- | Usage: @'glTextureParameterf' texture pname param@
+
+
+glTextureParameterf :: MonadIO m => GLuint -> GLenum -> GLfloat -> m ()
+glTextureParameterf = ffiuintenumfloatIOV glTextureParameterfFunPtr
+
+glTextureParameterfFunPtr :: FunPtr (GLuint -> GLenum -> GLfloat -> IO ())
+glTextureParameterfFunPtr = unsafePerformIO (getProcAddress "glTextureParameterf")
+
+{-# NOINLINE glTextureParameterfFunPtr #-}
+
+-- | Usage: @'glTextureParameterfv' texture pname param@
+
+
+glTextureParameterfv :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()
+glTextureParameterfv = ffiuintenumPtrfloatIOV glTextureParameterfvFunPtr
+
+glTextureParameterfvFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLfloat -> IO ())
+glTextureParameterfvFunPtr = unsafePerformIO (getProcAddress "glTextureParameterfv")
+
+{-# NOINLINE glTextureParameterfvFunPtr #-}
+
+-- | Usage: @'glTextureParameteri' texture pname param@
+
+
+glTextureParameteri :: MonadIO m => GLuint -> GLenum -> GLint -> m ()
+glTextureParameteri = ffiuintenumintIOV glTextureParameteriFunPtr
+
+glTextureParameteriFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> IO ())
+glTextureParameteriFunPtr = unsafePerformIO (getProcAddress "glTextureParameteri")
+
+{-# NOINLINE glTextureParameteriFunPtr #-}
+
+-- | Usage: @'glTextureParameteriv' texture pname param@
+
+
+glTextureParameteriv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
+glTextureParameteriv = ffiuintenumPtrintIOV glTextureParameterivFunPtr
+
+glTextureParameterivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+glTextureParameterivFunPtr = unsafePerformIO (getProcAddress "glTextureParameteriv")
+
+{-# NOINLINE glTextureParameterivFunPtr #-}
+
+-- | Usage: @'glTextureStorage1D' texture levels internalformat width@
+
+
+glTextureStorage1D :: MonadIO m => GLuint -> GLsizei -> GLenum -> GLsizei -> m ()
+glTextureStorage1D = ffiuintsizeienumsizeiIOV glTextureStorage1DFunPtr
+
+glTextureStorage1DFunPtr :: FunPtr (GLuint -> GLsizei -> GLenum -> GLsizei -> IO ())
+glTextureStorage1DFunPtr = unsafePerformIO (getProcAddress "glTextureStorage1D")
+
+{-# NOINLINE glTextureStorage1DFunPtr #-}
+
+-- | Usage: @'glTextureStorage2D' texture levels internalformat width height@
+
+
+glTextureStorage2D :: MonadIO m => GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()
+glTextureStorage2D = ffiuintsizeienumsizeisizeiIOV glTextureStorage2DFunPtr
+
+glTextureStorage2DFunPtr :: FunPtr (GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> IO ())
+glTextureStorage2DFunPtr = unsafePerformIO (getProcAddress "glTextureStorage2D")
+
+{-# NOINLINE glTextureStorage2DFunPtr #-}
+
+-- | Usage: @'glTextureStorage2DMultisample' texture samples internalformat width height fixedsamplelocations@
+
+
+glTextureStorage2DMultisample :: MonadIO m => GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> m ()
+glTextureStorage2DMultisample = ffiuintsizeienumsizeisizeibooleanIOV glTextureStorage2DMultisampleFunPtr
+
+glTextureStorage2DMultisampleFunPtr :: FunPtr (GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> IO ())
+glTextureStorage2DMultisampleFunPtr = unsafePerformIO (getProcAddress "glTextureStorage2DMultisample")
+
+{-# NOINLINE glTextureStorage2DMultisampleFunPtr #-}
+
+-- | Usage: @'glTextureStorage3D' texture levels internalformat width height depth@
+
+
+glTextureStorage3D :: MonadIO m => GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> m ()
+glTextureStorage3D = ffiuintsizeienumsizeisizeisizeiIOV glTextureStorage3DFunPtr
+
+glTextureStorage3DFunPtr :: FunPtr (GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> IO ())
+glTextureStorage3DFunPtr = unsafePerformIO (getProcAddress "glTextureStorage3D")
+
+{-# NOINLINE glTextureStorage3DFunPtr #-}
+
+-- | Usage: @'glTextureStorage3DMultisample' texture samples internalformat width height depth fixedsamplelocations@
+
+
+glTextureStorage3DMultisample :: MonadIO m => GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> m ()
+glTextureStorage3DMultisample = ffiuintsizeienumsizeisizeisizeibooleanIOV glTextureStorage3DMultisampleFunPtr
+
+glTextureStorage3DMultisampleFunPtr :: FunPtr (GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> IO ())
+glTextureStorage3DMultisampleFunPtr = unsafePerformIO (getProcAddress "glTextureStorage3DMultisample")
+
+{-# NOINLINE glTextureStorage3DMultisampleFunPtr #-}
+
+-- | Usage: @'glTextureSubImage1D' texture level xoffset width format type pixels@
+
+
+glTextureSubImage1D :: MonadIO m => GLuint -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
+glTextureSubImage1D = ffiuintintintsizeienumenumPtrVIOV glTextureSubImage1DFunPtr
+
+glTextureSubImage1DFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ())
+glTextureSubImage1DFunPtr = unsafePerformIO (getProcAddress "glTextureSubImage1D")
+
+{-# NOINLINE glTextureSubImage1DFunPtr #-}
+
+-- | Usage: @'glTextureSubImage2D' texture level xoffset yoffset width height format type pixels@
+
+
+glTextureSubImage2D :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
+glTextureSubImage2D = ffiuintintintintsizeisizeienumenumPtrVIOV glTextureSubImage2DFunPtr
+
+glTextureSubImage2DFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ())
+glTextureSubImage2DFunPtr = unsafePerformIO (getProcAddress "glTextureSubImage2D")
+
+{-# NOINLINE glTextureSubImage2DFunPtr #-}
+
+-- | Usage: @'glTextureSubImage3D' texture level xoffset yoffset zoffset width height depth format type pixels@
+
+
+glTextureSubImage3D :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
+glTextureSubImage3D = ffiuintintintintintsizeisizeisizeienumenumPtrVIOV glTextureSubImage3DFunPtr
+
+glTextureSubImage3DFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ())
+glTextureSubImage3DFunPtr = unsafePerformIO (getProcAddress "glTextureSubImage3D")
+
+{-# NOINLINE glTextureSubImage3DFunPtr #-}
+
+-- | Usage: @'glTransformFeedbackBufferBase' xfb index buffer@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glTransformFeedbackBufferBase.xhtml>
+
+
+glTransformFeedbackBufferBase :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()
+glTransformFeedbackBufferBase = ffiuintuintuintIOV glTransformFeedbackBufferBaseFunPtr
+
+glTransformFeedbackBufferBaseFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> IO ())
+glTransformFeedbackBufferBaseFunPtr = unsafePerformIO (getProcAddress "glTransformFeedbackBufferBase")
+
+{-# NOINLINE glTransformFeedbackBufferBaseFunPtr #-}
+
+-- | Usage: @'glTransformFeedbackBufferRange' xfb index buffer offset size@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glTransformFeedbackBufferRange.xhtml>
+
+
+glTransformFeedbackBufferRange :: MonadIO m => GLuint -> GLuint -> GLuint -> GLintptr -> GLsizei -> m ()
+glTransformFeedbackBufferRange = ffiuintuintuintintptrsizeiIOV glTransformFeedbackBufferRangeFunPtr
+
+glTransformFeedbackBufferRangeFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> GLintptr -> GLsizei -> IO ())
+glTransformFeedbackBufferRangeFunPtr = unsafePerformIO (getProcAddress "glTransformFeedbackBufferRange")
+
+{-# NOINLINE glTransformFeedbackBufferRangeFunPtr #-}
+
+-- | Usage: @'glUnmapNamedBuffer' buffer@
+
+
+glUnmapNamedBuffer :: MonadIO m => GLuint -> m GLboolean
+glUnmapNamedBuffer = ffiuintIOboolean glUnmapNamedBufferFunPtr
+
+glUnmapNamedBufferFunPtr :: FunPtr (GLuint -> IO GLboolean)
+glUnmapNamedBufferFunPtr = unsafePerformIO (getProcAddress "glUnmapNamedBuffer")
+
+{-# NOINLINE glUnmapNamedBufferFunPtr #-}
+
+-- | Usage: @'glVertexArrayAttribBinding' vaobj attribindex bindingindex@
+
+
+glVertexArrayAttribBinding :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()
+glVertexArrayAttribBinding = ffiuintuintuintIOV glVertexArrayAttribBindingFunPtr
+
+glVertexArrayAttribBindingFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> IO ())
+glVertexArrayAttribBindingFunPtr = unsafePerformIO (getProcAddress "glVertexArrayAttribBinding")
+
+{-# NOINLINE glVertexArrayAttribBindingFunPtr #-}
+
+-- | Usage: @'glVertexArrayAttribFormat' vaobj attribindex size type normalized relativeoffset@
+
+
+glVertexArrayAttribFormat :: MonadIO m => GLuint -> GLuint -> GLint -> GLenum -> GLboolean -> GLuint -> m ()
+glVertexArrayAttribFormat = ffiuintuintintenumbooleanuintIOV glVertexArrayAttribFormatFunPtr
+
+glVertexArrayAttribFormatFunPtr :: FunPtr (GLuint -> GLuint -> GLint -> GLenum -> GLboolean -> GLuint -> IO ())
+glVertexArrayAttribFormatFunPtr = unsafePerformIO (getProcAddress "glVertexArrayAttribFormat")
+
+{-# NOINLINE glVertexArrayAttribFormatFunPtr #-}
+
+-- | Usage: @'glVertexArrayAttribIFormat' vaobj attribindex size type relativeoffset@
+
+
+glVertexArrayAttribIFormat :: MonadIO m => GLuint -> GLuint -> GLint -> GLenum -> GLuint -> m ()
+glVertexArrayAttribIFormat = ffiuintuintintenumuintIOV glVertexArrayAttribIFormatFunPtr
+
+glVertexArrayAttribIFormatFunPtr :: FunPtr (GLuint -> GLuint -> GLint -> GLenum -> GLuint -> IO ())
+glVertexArrayAttribIFormatFunPtr = unsafePerformIO (getProcAddress "glVertexArrayAttribIFormat")
+
+{-# NOINLINE glVertexArrayAttribIFormatFunPtr #-}
+
+-- | Usage: @'glVertexArrayAttribLFormat' vaobj attribindex size type relativeoffset@
+
+
+glVertexArrayAttribLFormat :: MonadIO m => GLuint -> GLuint -> GLint -> GLenum -> GLuint -> m ()
+glVertexArrayAttribLFormat = ffiuintuintintenumuintIOV glVertexArrayAttribLFormatFunPtr
+
+glVertexArrayAttribLFormatFunPtr :: FunPtr (GLuint -> GLuint -> GLint -> GLenum -> GLuint -> IO ())
+glVertexArrayAttribLFormatFunPtr = unsafePerformIO (getProcAddress "glVertexArrayAttribLFormat")
+
+{-# NOINLINE glVertexArrayAttribLFormatFunPtr #-}
+
+-- | Usage: @'glVertexArrayBindingDivisor' vaobj bindingindex divisor@
+
+
+glVertexArrayBindingDivisor :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()
+glVertexArrayBindingDivisor = ffiuintuintuintIOV glVertexArrayBindingDivisorFunPtr
+
+glVertexArrayBindingDivisorFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> IO ())
+glVertexArrayBindingDivisorFunPtr = unsafePerformIO (getProcAddress "glVertexArrayBindingDivisor")
+
+{-# NOINLINE glVertexArrayBindingDivisorFunPtr #-}
+
+-- | Usage: @'glVertexArrayElementBuffer' vaobj buffer@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glVertexArrayElementBuffer.xhtml>
+
+
+glVertexArrayElementBuffer :: MonadIO m => GLuint -> GLuint -> m ()
+glVertexArrayElementBuffer = ffiuintuintIOV glVertexArrayElementBufferFunPtr
+
+glVertexArrayElementBufferFunPtr :: FunPtr (GLuint -> GLuint -> IO ())
+glVertexArrayElementBufferFunPtr = unsafePerformIO (getProcAddress "glVertexArrayElementBuffer")
+
+{-# NOINLINE glVertexArrayElementBufferFunPtr #-}
+
+-- | Usage: @'glVertexArrayVertexBuffer' vaobj bindingindex buffer offset stride@
+
+
+glVertexArrayVertexBuffer :: MonadIO m => GLuint -> GLuint -> GLuint -> GLintptr -> GLsizei -> m ()
+glVertexArrayVertexBuffer = ffiuintuintuintintptrsizeiIOV glVertexArrayVertexBufferFunPtr
+
+glVertexArrayVertexBufferFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> GLintptr -> GLsizei -> IO ())
+glVertexArrayVertexBufferFunPtr = unsafePerformIO (getProcAddress "glVertexArrayVertexBuffer")
+
+{-# NOINLINE glVertexArrayVertexBufferFunPtr #-}
+
+-- | Usage: @'glVertexArrayVertexBuffers' vaobj first count buffers offsets strides@
+
+
+glVertexArrayVertexBuffers :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLuint -> Ptr GLintptr -> Ptr GLsizei -> m ()
+glVertexArrayVertexBuffers = ffiuintuintsizeiPtruintPtrintptrPtrsizeiIOV glVertexArrayVertexBuffersFunPtr
+
+glVertexArrayVertexBuffersFunPtr :: FunPtr (GLuint -> GLuint -> GLsizei -> Ptr GLuint -> Ptr GLintptr -> Ptr GLsizei -> IO ())
+glVertexArrayVertexBuffersFunPtr = unsafePerformIO (getProcAddress "glVertexArrayVertexBuffers")
+
+{-# NOINLINE glVertexArrayVertexBuffersFunPtr #-}
+
+pattern GL_QUERY_TARGET = 0x82EA
+
+pattern GL_TEXTURE_BINDING = 0x82EB
+
+pattern GL_TEXTURE_BINDING_1D = 0x8068
+
+pattern GL_TEXTURE_BINDING_1D_ARRAY = 0x8C1C
+
+pattern GL_TEXTURE_BINDING_2D = 0x8069
+
+pattern GL_TEXTURE_BINDING_2D_ARRAY = 0x8C1D
+
+pattern GL_TEXTURE_BINDING_2D_MULTISAMPLE = 0x9104
+
+pattern GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY = 0x9105
+
+pattern GL_TEXTURE_BINDING_3D = 0x806A
+
+pattern GL_TEXTURE_BINDING_BUFFER = 0x8C2C
+
+pattern GL_TEXTURE_BINDING_CUBE_MAP = 0x8514
+
+pattern GL_TEXTURE_BINDING_CUBE_MAP_ARRAY = 0x900A
+
+pattern GL_TEXTURE_BINDING_RECTANGLE = 0x84F6
+
+pattern GL_TEXTURE_TARGET = 0x1006
+
+-- | Usage: @'glDrawElementsBaseVertex' mode count type indices basevertex@
+--
+-- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_LINES', 'Graphics.GL.Raw.Profile.Core32.GL_LINES_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Raw.Profile.Core32.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PATCHES', 'Graphics.GL.Raw.Extension.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_POINTS', 'Graphics.GL.Raw.Internal.Shared.GL_POLYGON', 'Graphics.GL.Raw.Internal.Shared.GL_QUADS', 'Graphics.GL.Raw.Extension.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Raw.Profile.Core32.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Raw.Profile.Core32.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
+--
+-- The parameter @type@ is a @DrawElementsType@.
+--
+-- The length of @indices@ should be @COMPSIZE(count,type)@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDrawElementsBaseVertex.xhtml>
+
+
+glDrawElementsBaseVertex :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr () -> GLint -> m ()
+glDrawElementsBaseVertex = ffienumsizeienumPtrVintIOV glDrawElementsBaseVertexFunPtr
+
+glDrawElementsBaseVertexFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> Ptr () -> GLint -> IO ())
+glDrawElementsBaseVertexFunPtr = unsafePerformIO (getProcAddress "glDrawElementsBaseVertex")
+
+{-# NOINLINE glDrawElementsBaseVertexFunPtr #-}
+
+-- | Usage: @'glDrawElementsInstancedBaseVertex' mode count type indices instancecount basevertex@
+--
+-- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_LINES', 'Graphics.GL.Raw.Profile.Core32.GL_LINES_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Raw.Profile.Core32.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PATCHES', 'Graphics.GL.Raw.Extension.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_POINTS', 'Graphics.GL.Raw.Internal.Shared.GL_POLYGON', 'Graphics.GL.Raw.Internal.Shared.GL_QUADS', 'Graphics.GL.Raw.Extension.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Raw.Profile.Core32.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Raw.Profile.Core32.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
+--
+-- The parameter @type@ is a @DrawElementsType@.
+--
+-- The length of @indices@ should be @COMPSIZE(count,type)@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDrawElementsInstancedBaseVertex.xhtml>
+
+
+glDrawElementsInstancedBaseVertex :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> GLint -> m ()
+glDrawElementsInstancedBaseVertex = ffienumsizeienumPtrVsizeiintIOV glDrawElementsInstancedBaseVertexFunPtr
+
+glDrawElementsInstancedBaseVertexFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> GLint -> IO ())
+glDrawElementsInstancedBaseVertexFunPtr = unsafePerformIO (getProcAddress "glDrawElementsInstancedBaseVertex")
+
+{-# NOINLINE glDrawElementsInstancedBaseVertexFunPtr #-}
+
+-- | Usage: @'glDrawRangeElementsBaseVertex' mode start end count type indices basevertex@
+--
+-- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_LINES', 'Graphics.GL.Raw.Profile.Core32.GL_LINES_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Raw.Profile.Core32.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PATCHES', 'Graphics.GL.Raw.Extension.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_POINTS', 'Graphics.GL.Raw.Internal.Shared.GL_POLYGON', 'Graphics.GL.Raw.Internal.Shared.GL_QUADS', 'Graphics.GL.Raw.Extension.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Raw.Profile.Core32.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Raw.Profile.Core32.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
+--
+-- The parameter @type@ is a @DrawElementsType@.
+--
+-- The length of @indices@ should be @COMPSIZE(count,type)@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDrawRangeElementsBaseVertex.xhtml>
+
+
+glDrawRangeElementsBaseVertex :: MonadIO m => GLenum -> GLuint -> GLuint -> GLsizei -> GLenum -> Ptr () -> GLint -> m ()
+glDrawRangeElementsBaseVertex = ffienumuintuintsizeienumPtrVintIOV glDrawRangeElementsBaseVertexFunPtr
+
+glDrawRangeElementsBaseVertexFunPtr :: FunPtr (GLenum -> GLuint -> GLuint -> GLsizei -> GLenum -> Ptr () -> GLint -> IO ())
+glDrawRangeElementsBaseVertexFunPtr = unsafePerformIO (getProcAddress "glDrawRangeElementsBaseVertex")
+
+{-# NOINLINE glDrawRangeElementsBaseVertexFunPtr #-}
+
+-- | Usage: @'glMultiDrawElementsBaseVertex' mode count type indices drawcount basevertex@
+--
+-- The parameter @type@ is a @DrawElementsType@.
+--
+-- The length of @count@ should be @COMPSIZE(drawcount)@.
+--
+-- The length of @indices@ should be @COMPSIZE(drawcount)@.
+--
+-- The length of @basevertex@ should be @COMPSIZE(drawcount)@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glMultiDrawElementsBaseVertex.xhtml>
+
+
+glMultiDrawElementsBaseVertex :: MonadIO m => GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr ()) -> GLsizei -> Ptr GLint -> m ()
+glMultiDrawElementsBaseVertex = ffienumPtrsizeienumPtrPtrVsizeiPtrintIOV glMultiDrawElementsBaseVertexFunPtr
+
+glMultiDrawElementsBaseVertexFunPtr :: FunPtr (GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr ()) -> GLsizei -> Ptr GLint -> IO ())
+glMultiDrawElementsBaseVertexFunPtr = unsafePerformIO (getProcAddress "glMultiDrawElementsBaseVertex")
+
+{-# NOINLINE glMultiDrawElementsBaseVertexFunPtr #-}
+
+-- | Usage: @'glDrawArraysIndirect' mode indirect@
+--
+-- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_LINES', 'Graphics.GL.Raw.Profile.Core32.GL_LINES_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Raw.Profile.Core32.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PATCHES', 'Graphics.GL.Raw.Extension.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_POINTS', 'Graphics.GL.Raw.Internal.Shared.GL_POLYGON', 'Graphics.GL.Raw.Internal.Shared.GL_QUADS', 'Graphics.GL.Raw.Extension.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Raw.Profile.Core32.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Raw.Profile.Core32.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDrawArraysIndirect.xhtml>
+
+
+glDrawArraysIndirect :: MonadIO m => GLenum -> Ptr () -> m ()
+glDrawArraysIndirect = ffienumPtrVIOV glDrawArraysIndirectFunPtr
+
+glDrawArraysIndirectFunPtr :: FunPtr (GLenum -> Ptr () -> IO ())
+glDrawArraysIndirectFunPtr = unsafePerformIO (getProcAddress "glDrawArraysIndirect")
+
+{-# NOINLINE glDrawArraysIndirectFunPtr #-}
+
+-- | Usage: @'glDrawElementsIndirect' mode type indirect@
+--
+-- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_LINES', 'Graphics.GL.Raw.Profile.Core32.GL_LINES_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Raw.Profile.Core32.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PATCHES', 'Graphics.GL.Raw.Extension.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_POINTS', 'Graphics.GL.Raw.Internal.Shared.GL_POLYGON', 'Graphics.GL.Raw.Internal.Shared.GL_QUADS', 'Graphics.GL.Raw.Extension.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Raw.Profile.Core32.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Raw.Profile.Core32.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDrawElementsIndirect.xhtml>
+
+
+glDrawElementsIndirect :: MonadIO m => GLenum -> GLenum -> Ptr () -> m ()
+glDrawElementsIndirect = ffienumenumPtrVIOV glDrawElementsIndirectFunPtr
+
+glDrawElementsIndirectFunPtr :: FunPtr (GLenum -> GLenum -> Ptr () -> IO ())
+glDrawElementsIndirectFunPtr = unsafePerformIO (getProcAddress "glDrawElementsIndirect")
+
+{-# NOINLINE glDrawElementsIndirectFunPtr #-}
+
+pattern GL_DRAW_INDIRECT_BUFFER = 0x8F3F
+
+pattern GL_DRAW_INDIRECT_BUFFER_BINDING = 0x8F43
+
+-- | Usage: @'glClearDepthf' d@
+
+
+glClearDepthf :: MonadIO m => GLfloat -> m ()
+glClearDepthf = ffifloatIOV glClearDepthfFunPtr
+
+glClearDepthfFunPtr :: FunPtr (GLfloat -> IO ())
+glClearDepthfFunPtr = unsafePerformIO (getProcAddress "glClearDepthf")
+
+{-# NOINLINE glClearDepthfFunPtr #-}
+
+-- | Usage: @'glDepthRangef' n f@
+
+
+glDepthRangef :: MonadIO m => GLfloat -> GLfloat -> m ()
+glDepthRangef = ffifloatfloatIOV glDepthRangefFunPtr
+
+glDepthRangefFunPtr :: FunPtr (GLfloat -> GLfloat -> IO ())
+glDepthRangefFunPtr = unsafePerformIO (getProcAddress "glDepthRangef")
+
+{-# NOINLINE glDepthRangefFunPtr #-}
+
+-- | Usage: @'glGetShaderPrecisionFormat' shadertype precisiontype range precision@
+--
+-- The length of @range@ should be @2@.
+--
+-- The length of @precision@ should be @2@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetShaderPrecisionFormat.xhtml>
+
+
+glGetShaderPrecisionFormat :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> Ptr GLint -> m ()
+glGetShaderPrecisionFormat = ffienumenumPtrintPtrintIOV glGetShaderPrecisionFormatFunPtr
+
+glGetShaderPrecisionFormatFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> Ptr GLint -> IO ())
+glGetShaderPrecisionFormatFunPtr = unsafePerformIO (getProcAddress "glGetShaderPrecisionFormat")
+
+{-# NOINLINE glGetShaderPrecisionFormatFunPtr #-}
+
+-- | Usage: @'glReleaseShaderCompiler'@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glReleaseShaderCompiler.xhtml>
+
+
+glReleaseShaderCompiler :: MonadIO m => m ()
+glReleaseShaderCompiler = ffiIOV glReleaseShaderCompilerFunPtr
+
+glReleaseShaderCompilerFunPtr :: FunPtr (IO ())
+glReleaseShaderCompilerFunPtr = unsafePerformIO (getProcAddress "glReleaseShaderCompiler")
+
+{-# NOINLINE glReleaseShaderCompilerFunPtr #-}
+
+-- | Usage: @'glShaderBinary' count shaders binaryformat binary length@
+--
+-- The length of @shaders@ should be @count@.
+--
+-- The length of @binary@ should be @length@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glShaderBinary.xhtml>
+
+
+glShaderBinary :: MonadIO m => GLsizei -> Ptr GLuint -> GLenum -> Ptr () -> GLsizei -> m ()
+glShaderBinary = ffisizeiPtruintenumPtrVsizeiIOV glShaderBinaryFunPtr
+
+glShaderBinaryFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> GLenum -> Ptr () -> GLsizei -> IO ())
+glShaderBinaryFunPtr = unsafePerformIO (getProcAddress "glShaderBinary")
+
+{-# NOINLINE glShaderBinaryFunPtr #-}
+
+pattern GL_FIXED = 0x140C
+
+pattern GL_HIGH_FLOAT = 0x8DF2
+
+pattern GL_HIGH_INT = 0x8DF5
+
+pattern GL_IMPLEMENTATION_COLOR_READ_FORMAT = 0x8B9B
+
+pattern GL_IMPLEMENTATION_COLOR_READ_TYPE = 0x8B9A
+
+pattern GL_LOW_FLOAT = 0x8DF0
+
+pattern GL_LOW_INT = 0x8DF3
+
+pattern GL_MAX_FRAGMENT_UNIFORM_VECTORS = 0x8DFD
+
+pattern GL_MAX_VARYING_VECTORS = 0x8DFC
+
+pattern GL_MAX_VERTEX_UNIFORM_VECTORS = 0x8DFB
+
+pattern GL_MEDIUM_FLOAT = 0x8DF1
+
+pattern GL_MEDIUM_INT = 0x8DF4
+
+pattern GL_NUM_SHADER_BINARY_FORMATS = 0x8DF9
+
+pattern GL_RGB565 = 0x8D62
+
+pattern GL_SHADER_BINARY_FORMATS = 0x8DF8
+
+pattern GL_SHADER_COMPILER = 0x8DFA
+
+-- | Usage: @'glMemoryBarrierByRegion' barriers@
+
+
+glMemoryBarrierByRegion :: MonadIO m => GLbitfield -> m ()
+glMemoryBarrierByRegion = ffibitfieldIOV glMemoryBarrierByRegionFunPtr
+
+glMemoryBarrierByRegionFunPtr :: FunPtr (GLbitfield -> IO ())
+glMemoryBarrierByRegionFunPtr = unsafePerformIO (getProcAddress "glMemoryBarrierByRegion")
+
+{-# NOINLINE glMemoryBarrierByRegionFunPtr #-}
+
+pattern GL_BACK = 0x0405
+
+pattern GL_ANY_SAMPLES_PASSED_CONSERVATIVE = 0x8D6A
+
+pattern GL_COMPRESSED_R11_EAC = 0x9270
+
+pattern GL_COMPRESSED_RG11_EAC = 0x9272
+
+pattern GL_COMPRESSED_RGB8_ETC2 = 0x9274
+
+pattern GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 = 0x9276
+
+pattern GL_COMPRESSED_RGBA8_ETC2_EAC = 0x9278
+
+pattern GL_COMPRESSED_SIGNED_R11_EAC = 0x9271
+
+pattern GL_COMPRESSED_SIGNED_RG11_EAC = 0x9273
+
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC = 0x9279
+
+pattern GL_COMPRESSED_SRGB8_ETC2 = 0x9275
+
+pattern GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 = 0x9277
+
+pattern GL_MAX_ELEMENT_INDEX = 0x8D6B
+
+pattern GL_PRIMITIVE_RESTART_FIXED_INDEX = 0x8D69
+
+pattern GL_LOCATION_COMPONENT = 0x934A
+
+pattern GL_TRANSFORM_FEEDBACK_BUFFER = 0x8C8E
+
+pattern GL_TRANSFORM_FEEDBACK_BUFFER_INDEX = 0x934B
+
+pattern GL_TRANSFORM_FEEDBACK_BUFFER_STRIDE = 0x934C
+
+pattern GL_MAX_UNIFORM_LOCATIONS = 0x826E
+
+-- | Usage: @'glBindProgramARB' target program@
+--
+-- The parameter @target@ is a @ProgramTargetARB@.
+
+
+glBindProgramARB :: MonadIO m => GLenum -> GLuint -> m ()
+glBindProgramARB = ffienumuintIOV glBindProgramARBFunPtr
+
+glBindProgramARBFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
+glBindProgramARBFunPtr = unsafePerformIO (getProcAddress "glBindProgramARB")
+
+{-# NOINLINE glBindProgramARBFunPtr #-}
+
+-- | Usage: @'glDeleteProgramsARB' n programs@
+--
+-- The length of @programs@ should be @n@.
+
+
+glDeleteProgramsARB :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glDeleteProgramsARB = ffisizeiPtruintIOV glDeleteProgramsARBFunPtr
+
+glDeleteProgramsARBFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glDeleteProgramsARBFunPtr = unsafePerformIO (getProcAddress "glDeleteProgramsARB")
+
+{-# NOINLINE glDeleteProgramsARBFunPtr #-}
+
+-- | Usage: @'glGenProgramsARB' n programs@
+--
+-- The length of @programs@ should be @n@.
+
+
+glGenProgramsARB :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glGenProgramsARB = ffisizeiPtruintIOV glGenProgramsARBFunPtr
+
+glGenProgramsARBFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glGenProgramsARBFunPtr = unsafePerformIO (getProcAddress "glGenProgramsARB")
+
+{-# NOINLINE glGenProgramsARBFunPtr #-}
+
+-- | Usage: @'glGetProgramEnvParameterdvARB' target index params@
+--
+-- The parameter @target@ is a @ProgramTargetARB@.
+--
+-- The length of @params@ should be @4@.
+
+
+glGetProgramEnvParameterdvARB :: MonadIO m => GLenum -> GLuint -> Ptr GLdouble -> m ()
+glGetProgramEnvParameterdvARB = ffienumuintPtrdoubleIOV glGetProgramEnvParameterdvARBFunPtr
+
+glGetProgramEnvParameterdvARBFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLdouble -> IO ())
+glGetProgramEnvParameterdvARBFunPtr = unsafePerformIO (getProcAddress "glGetProgramEnvParameterdvARB")
+
+{-# NOINLINE glGetProgramEnvParameterdvARBFunPtr #-}
+
+-- | Usage: @'glGetProgramEnvParameterfvARB' target index params@
+--
+-- The parameter @target@ is a @ProgramTargetARB@.
+--
+-- The length of @params@ should be @4@.
+
+
+glGetProgramEnvParameterfvARB :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()
+glGetProgramEnvParameterfvARB = ffienumuintPtrfloatIOV glGetProgramEnvParameterfvARBFunPtr
+
+glGetProgramEnvParameterfvARBFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLfloat -> IO ())
+glGetProgramEnvParameterfvARBFunPtr = unsafePerformIO (getProcAddress "glGetProgramEnvParameterfvARB")
+
+{-# NOINLINE glGetProgramEnvParameterfvARBFunPtr #-}
+
+-- | Usage: @'glGetProgramLocalParameterdvARB' target index params@
+--
+-- The parameter @target@ is a @ProgramTargetARB@.
+--
+-- The length of @params@ should be @4@.
+
+
+glGetProgramLocalParameterdvARB :: MonadIO m => GLenum -> GLuint -> Ptr GLdouble -> m ()
+glGetProgramLocalParameterdvARB = ffienumuintPtrdoubleIOV glGetProgramLocalParameterdvARBFunPtr
+
+glGetProgramLocalParameterdvARBFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLdouble -> IO ())
+glGetProgramLocalParameterdvARBFunPtr = unsafePerformIO (getProcAddress "glGetProgramLocalParameterdvARB")
+
+{-# NOINLINE glGetProgramLocalParameterdvARBFunPtr #-}
+
+-- | Usage: @'glGetProgramLocalParameterfvARB' target index params@
+--
+-- The parameter @target@ is a @ProgramTargetARB@.
+--
+-- The length of @params@ should be @4@.
+
+
+glGetProgramLocalParameterfvARB :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()
+glGetProgramLocalParameterfvARB = ffienumuintPtrfloatIOV glGetProgramLocalParameterfvARBFunPtr
+
+glGetProgramLocalParameterfvARBFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLfloat -> IO ())
+glGetProgramLocalParameterfvARBFunPtr = unsafePerformIO (getProcAddress "glGetProgramLocalParameterfvARB")
+
+{-# NOINLINE glGetProgramLocalParameterfvARBFunPtr #-}
+
+-- | Usage: @'glGetProgramStringARB' target pname string@
+--
+-- The parameter @target@ is a @ProgramTargetARB@.
+--
+-- The parameter @pname@ is a @ProgramStringPropertyARB@.
+--
+-- The length of @string@ should be @COMPSIZE(target,pname)@.
+
+
+glGetProgramStringARB :: MonadIO m => GLenum -> GLenum -> Ptr () -> m ()
+glGetProgramStringARB = ffienumenumPtrVIOV glGetProgramStringARBFunPtr
+
+glGetProgramStringARBFunPtr :: FunPtr (GLenum -> GLenum -> Ptr () -> IO ())
+glGetProgramStringARBFunPtr = unsafePerformIO (getProcAddress "glGetProgramStringARB")
+
+{-# NOINLINE glGetProgramStringARBFunPtr #-}
+
+-- | Usage: @'glGetProgramivARB' target pname params@
+--
+-- The parameter @target@ is a @ProgramTargetARB@.
+--
+-- The parameter @pname@ is a @ProgramPropertyARB@.
+--
+-- The length of @params@ should be @1@.
+
+
+glGetProgramivARB :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
+glGetProgramivARB = ffienumenumPtrintIOV glGetProgramivARBFunPtr
+
+glGetProgramivARBFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+glGetProgramivARBFunPtr = unsafePerformIO (getProcAddress "glGetProgramivARB")
+
+{-# NOINLINE glGetProgramivARBFunPtr #-}
+
+-- | Usage: @'glIsProgramARB' program@
+
+
+glIsProgramARB :: MonadIO m => GLuint -> m GLboolean
+glIsProgramARB = ffiuintIOboolean glIsProgramARBFunPtr
+
+glIsProgramARBFunPtr :: FunPtr (GLuint -> IO GLboolean)
+glIsProgramARBFunPtr = unsafePerformIO (getProcAddress "glIsProgramARB")
+
+{-# NOINLINE glIsProgramARBFunPtr #-}
+
+-- | Usage: @'glProgramEnvParameter4dARB' target index x y z w@
+--
+-- The parameter @target@ is a @ProgramTargetARB@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glProgramEnvParameter4dvARB'.
+
+
+glProgramEnvParameter4dARB :: MonadIO m => GLenum -> GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
+glProgramEnvParameter4dARB = ffienumuintdoubledoubledoubledoubleIOV glProgramEnvParameter4dARBFunPtr
+
+glProgramEnvParameter4dARBFunPtr :: FunPtr (GLenum -> GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
+glProgramEnvParameter4dARBFunPtr = unsafePerformIO (getProcAddress "glProgramEnvParameter4dARB")
+
+{-# NOINLINE glProgramEnvParameter4dARBFunPtr #-}
+
+-- | Usage: @'glProgramEnvParameter4dvARB' target index params@
+--
+-- The parameter @target@ is a @ProgramTargetARB@.
+--
+-- The length of @params@ should be @4@.
+
+
+glProgramEnvParameter4dvARB :: MonadIO m => GLenum -> GLuint -> Ptr GLdouble -> m ()
+glProgramEnvParameter4dvARB = ffienumuintPtrdoubleIOV glProgramEnvParameter4dvARBFunPtr
+
+glProgramEnvParameter4dvARBFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLdouble -> IO ())
+glProgramEnvParameter4dvARBFunPtr = unsafePerformIO (getProcAddress "glProgramEnvParameter4dvARB")
+
+{-# NOINLINE glProgramEnvParameter4dvARBFunPtr #-}
+
+-- | Usage: @'glProgramEnvParameter4fARB' target index x y z w@
+--
+-- The parameter @target@ is a @ProgramTargetARB@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glProgramEnvParameter4fvARB'.
+
+
+glProgramEnvParameter4fARB :: MonadIO m => GLenum -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
+glProgramEnvParameter4fARB = ffienumuintfloatfloatfloatfloatIOV glProgramEnvParameter4fARBFunPtr
+
+glProgramEnvParameter4fARBFunPtr :: FunPtr (GLenum -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+glProgramEnvParameter4fARBFunPtr = unsafePerformIO (getProcAddress "glProgramEnvParameter4fARB")
+
+{-# NOINLINE glProgramEnvParameter4fARBFunPtr #-}
+
+-- | Usage: @'glProgramEnvParameter4fvARB' target index params@
+--
+-- The parameter @target@ is a @ProgramTargetARB@.
+--
+-- The length of @params@ should be @4@.
+
+
+glProgramEnvParameter4fvARB :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()
+glProgramEnvParameter4fvARB = ffienumuintPtrfloatIOV glProgramEnvParameter4fvARBFunPtr
+
+glProgramEnvParameter4fvARBFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLfloat -> IO ())
+glProgramEnvParameter4fvARBFunPtr = unsafePerformIO (getProcAddress "glProgramEnvParameter4fvARB")
+
+{-# NOINLINE glProgramEnvParameter4fvARBFunPtr #-}
+
+-- | Usage: @'glProgramLocalParameter4dARB' target index x y z w@
+--
+-- The parameter @target@ is a @ProgramTargetARB@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glProgramLocalParameter4dvARB'.
+
+
+glProgramLocalParameter4dARB :: MonadIO m => GLenum -> GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
+glProgramLocalParameter4dARB = ffienumuintdoubledoubledoubledoubleIOV glProgramLocalParameter4dARBFunPtr
+
+glProgramLocalParameter4dARBFunPtr :: FunPtr (GLenum -> GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
+glProgramLocalParameter4dARBFunPtr = unsafePerformIO (getProcAddress "glProgramLocalParameter4dARB")
+
+{-# NOINLINE glProgramLocalParameter4dARBFunPtr #-}
+
+-- | Usage: @'glProgramLocalParameter4dvARB' target index params@
+--
+-- The parameter @target@ is a @ProgramTargetARB@.
+--
+-- The length of @params@ should be @4@.
+
+
+glProgramLocalParameter4dvARB :: MonadIO m => GLenum -> GLuint -> Ptr GLdouble -> m ()
+glProgramLocalParameter4dvARB = ffienumuintPtrdoubleIOV glProgramLocalParameter4dvARBFunPtr
+
+glProgramLocalParameter4dvARBFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLdouble -> IO ())
+glProgramLocalParameter4dvARBFunPtr = unsafePerformIO (getProcAddress "glProgramLocalParameter4dvARB")
+
+{-# NOINLINE glProgramLocalParameter4dvARBFunPtr #-}
+
+-- | Usage: @'glProgramLocalParameter4fARB' target index x y z w@
+--
+-- The parameter @target@ is a @ProgramTargetARB@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glProgramLocalParameter4fvARB'.
+
+
+glProgramLocalParameter4fARB :: MonadIO m => GLenum -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
+glProgramLocalParameter4fARB = ffienumuintfloatfloatfloatfloatIOV glProgramLocalParameter4fARBFunPtr
+
+glProgramLocalParameter4fARBFunPtr :: FunPtr (GLenum -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+glProgramLocalParameter4fARBFunPtr = unsafePerformIO (getProcAddress "glProgramLocalParameter4fARB")
+
+{-# NOINLINE glProgramLocalParameter4fARBFunPtr #-}
+
+-- | Usage: @'glProgramLocalParameter4fvARB' target index params@
+--
+-- The parameter @target@ is a @ProgramTargetARB@.
+--
+-- The length of @params@ should be @4@.
+
+
+glProgramLocalParameter4fvARB :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()
+glProgramLocalParameter4fvARB = ffienumuintPtrfloatIOV glProgramLocalParameter4fvARBFunPtr
+
+glProgramLocalParameter4fvARBFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLfloat -> IO ())
+glProgramLocalParameter4fvARBFunPtr = unsafePerformIO (getProcAddress "glProgramLocalParameter4fvARB")
+
+{-# NOINLINE glProgramLocalParameter4fvARBFunPtr #-}
+
+-- | Usage: @'glProgramStringARB' target format len string@
+--
+-- The parameter @target@ is a @ProgramTargetARB@.
+--
+-- The parameter @format@ is a @ProgramFormatARB@.
+--
+-- The length of @string@ should be @len@.
+
+
+glProgramStringARB :: MonadIO m => GLenum -> GLenum -> GLsizei -> Ptr () -> m ()
+glProgramStringARB = ffienumenumsizeiPtrVIOV glProgramStringARBFunPtr
+
+glProgramStringARBFunPtr :: FunPtr (GLenum -> GLenum -> GLsizei -> Ptr () -> IO ())
+glProgramStringARBFunPtr = unsafePerformIO (getProcAddress "glProgramStringARB")
+
+{-# NOINLINE glProgramStringARBFunPtr #-}
+
+pattern GL_CURRENT_MATRIX_ARB = 0x8641
+
+pattern GL_CURRENT_MATRIX_STACK_DEPTH_ARB = 0x8640
+
+pattern GL_MATRIX0_ARB = 0x88C0
+
+pattern GL_MATRIX10_ARB = 0x88CA
+
+pattern GL_MATRIX11_ARB = 0x88CB
+
+pattern GL_MATRIX12_ARB = 0x88CC
+
+pattern GL_MATRIX13_ARB = 0x88CD
+
+pattern GL_MATRIX14_ARB = 0x88CE
+
+pattern GL_MATRIX15_ARB = 0x88CF
+
+pattern GL_MATRIX16_ARB = 0x88D0
+
+pattern GL_MATRIX17_ARB = 0x88D1
+
+pattern GL_MATRIX18_ARB = 0x88D2
+
+pattern GL_MATRIX19_ARB = 0x88D3
+
+pattern GL_MATRIX1_ARB = 0x88C1
+
+pattern GL_MATRIX20_ARB = 0x88D4
+
+pattern GL_MATRIX21_ARB = 0x88D5
+
+pattern GL_MATRIX22_ARB = 0x88D6
+
+pattern GL_MATRIX23_ARB = 0x88D7
+
+pattern GL_MATRIX24_ARB = 0x88D8
+
+pattern GL_MATRIX25_ARB = 0x88D9
+
+pattern GL_MATRIX26_ARB = 0x88DA
+
+pattern GL_MATRIX27_ARB = 0x88DB
+
+pattern GL_MATRIX28_ARB = 0x88DC
+
+pattern GL_MATRIX29_ARB = 0x88DD
+
+pattern GL_MATRIX2_ARB = 0x88C2
+
+pattern GL_MATRIX30_ARB = 0x88DE
+
+pattern GL_MATRIX31_ARB = 0x88DF
+
+pattern GL_MATRIX3_ARB = 0x88C3
+
+pattern GL_MATRIX4_ARB = 0x88C4
+
+pattern GL_MATRIX5_ARB = 0x88C5
+
+pattern GL_MATRIX6_ARB = 0x88C6
+
+pattern GL_MATRIX7_ARB = 0x88C7
+
+pattern GL_MATRIX8_ARB = 0x88C8
+
+pattern GL_MATRIX9_ARB = 0x88C9
+
+pattern GL_MAX_PROGRAM_ATTRIBS_ARB = 0x88AD
+
+pattern GL_MAX_PROGRAM_ENV_PARAMETERS_ARB = 0x88B5
+
+pattern GL_MAX_PROGRAM_INSTRUCTIONS_ARB = 0x88A1
+
+pattern GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB = 0x88B4
+
+pattern GL_MAX_PROGRAM_MATRICES_ARB = 0x862F
+
+pattern GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB = 0x862E
+
+pattern GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB = 0x88AF
+
+pattern GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB = 0x88A3
+
+pattern GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB = 0x88AB
+
+pattern GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB = 0x88A7
+
+pattern GL_MAX_PROGRAM_PARAMETERS_ARB = 0x88A9
+
+pattern GL_MAX_PROGRAM_TEMPORARIES_ARB = 0x88A5
+
+pattern GL_MAX_TEXTURE_COORDS_ARB = 0x8871
+
+pattern GL_MAX_TEXTURE_IMAGE_UNITS_ARB = 0x8872
+
+pattern GL_PROGRAM_ATTRIBS_ARB = 0x88AC
+
+pattern GL_PROGRAM_BINDING_ARB = 0x8677
+
+pattern GL_PROGRAM_ERROR_POSITION_ARB = 0x864B
+
+pattern GL_PROGRAM_ERROR_STRING_ARB = 0x8874
+
+pattern GL_PROGRAM_FORMAT_ARB = 0x8876
+
+pattern GL_PROGRAM_FORMAT_ASCII_ARB = 0x8875
+
+pattern GL_PROGRAM_INSTRUCTIONS_ARB = 0x88A0
+
+pattern GL_PROGRAM_LENGTH_ARB = 0x8627
+
+pattern GL_PROGRAM_NATIVE_ATTRIBS_ARB = 0x88AE
+
+pattern GL_PROGRAM_NATIVE_INSTRUCTIONS_ARB = 0x88A2
+
+pattern GL_PROGRAM_NATIVE_PARAMETERS_ARB = 0x88AA
+
+pattern GL_PROGRAM_NATIVE_TEMPORARIES_ARB = 0x88A6
+
+pattern GL_PROGRAM_PARAMETERS_ARB = 0x88A8
+
+pattern GL_PROGRAM_STRING_ARB = 0x8628
+
+pattern GL_PROGRAM_TEMPORARIES_ARB = 0x88A4
+
+pattern GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB = 0x88B6
+
+pattern GL_TRANSPOSE_CURRENT_MATRIX_ARB = 0x88B7
+
+-- | Usage: @'glFramebufferParameteri' target pname param@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glFramebufferParameteri.xhtml>
+
+
+glFramebufferParameteri :: MonadIO m => GLenum -> GLenum -> GLint -> m ()
+glFramebufferParameteri = ffienumenumintIOV glFramebufferParameteriFunPtr
+
+glFramebufferParameteriFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> IO ())
+glFramebufferParameteriFunPtr = unsafePerformIO (getProcAddress "glFramebufferParameteri")
+
+{-# NOINLINE glFramebufferParameteriFunPtr #-}
+
+-- | Usage: @'glGetFramebufferParameteriv' target pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetFramebufferParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
+glGetFramebufferParameteriv = ffienumenumPtrintIOV glGetFramebufferParameterivFunPtr
+
+glGetFramebufferParameterivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+glGetFramebufferParameterivFunPtr = unsafePerformIO (getProcAddress "glGetFramebufferParameteriv")
+
+{-# NOINLINE glGetFramebufferParameterivFunPtr #-}
+
+pattern GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS = 0x9314
+
+pattern GL_FRAMEBUFFER_DEFAULT_HEIGHT = 0x9311
+
+pattern GL_FRAMEBUFFER_DEFAULT_LAYERS = 0x9312
+
+pattern GL_FRAMEBUFFER_DEFAULT_SAMPLES = 0x9313
+
+pattern GL_FRAMEBUFFER_DEFAULT_WIDTH = 0x9310
+
+pattern GL_MAX_FRAMEBUFFER_HEIGHT = 0x9316
+
+pattern GL_MAX_FRAMEBUFFER_LAYERS = 0x9317
+
+pattern GL_MAX_FRAMEBUFFER_SAMPLES = 0x9318
+
+pattern GL_MAX_FRAMEBUFFER_WIDTH = 0x9315
+
+-- | Usage: @'glBindFramebuffer' target framebuffer@
+--
+-- The parameter @target@ is a @FramebufferTarget@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBindFramebuffer.xhtml>
+
+
+glBindFramebuffer :: MonadIO m => GLenum -> GLuint -> m ()
+glBindFramebuffer = ffienumuintIOV glBindFramebufferFunPtr
+
+glBindFramebufferFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
+glBindFramebufferFunPtr = unsafePerformIO (getProcAddress "glBindFramebuffer")
+
+{-# NOINLINE glBindFramebufferFunPtr #-}
+
+-- | Usage: @'glBindRenderbuffer' target renderbuffer@
+--
+-- The parameter @target@ is a @RenderbufferTarget@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBindRenderbuffer.xhtml>
+
+
+glBindRenderbuffer :: MonadIO m => GLenum -> GLuint -> m ()
+glBindRenderbuffer = ffienumuintIOV glBindRenderbufferFunPtr
+
+glBindRenderbufferFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
+glBindRenderbufferFunPtr = unsafePerformIO (getProcAddress "glBindRenderbuffer")
+
+{-# NOINLINE glBindRenderbufferFunPtr #-}
+
+-- | Usage: @'glBlitFramebuffer' srcX0 srcY0 srcX1 srcY1 dstX0 dstY0 dstX1 dstY1 mask filter@
+--
+-- The parameter @mask@ is a @ClearBufferMask@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_ACCUM_BUFFER_BIT', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_BUFFER_BIT', 'Graphics.GL.Raw.Extension.NV.CoverageSample.GL_COVERAGE_BUFFER_BIT_NV', 'Graphics.GL.Raw.Internal.Shared.GL_DEPTH_BUFFER_BIT', 'Graphics.GL.Raw.Internal.Shared.GL_STENCIL_BUFFER_BIT'.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBlitFramebuffer.xhtml>
+
+
+glBlitFramebuffer :: MonadIO m => GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLbitfield -> GLenum -> m ()
+glBlitFramebuffer = ffiintintintintintintintintbitfieldenumIOV glBlitFramebufferFunPtr
+
+glBlitFramebufferFunPtr :: FunPtr (GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLbitfield -> GLenum -> IO ())
+glBlitFramebufferFunPtr = unsafePerformIO (getProcAddress "glBlitFramebuffer")
+
+{-# NOINLINE glBlitFramebufferFunPtr #-}
+
+-- | Usage: @'glCheckFramebufferStatus' target@
+--
+-- The parameter @target@ is a @FramebufferTarget@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glCheckFramebufferStatus.xhtml>
+
+
+glCheckFramebufferStatus :: MonadIO m => GLenum -> m GLenum
+glCheckFramebufferStatus = ffienumIOenum glCheckFramebufferStatusFunPtr
+
+glCheckFramebufferStatusFunPtr :: FunPtr (GLenum -> IO GLenum)
+glCheckFramebufferStatusFunPtr = unsafePerformIO (getProcAddress "glCheckFramebufferStatus")
+
+{-# NOINLINE glCheckFramebufferStatusFunPtr #-}
+
+-- | Usage: @'glDeleteFramebuffers' n framebuffers@
+--
+-- The length of @framebuffers@ should be @n@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDeleteFramebuffers.xhtml>
+
+
+glDeleteFramebuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glDeleteFramebuffers = ffisizeiPtruintIOV glDeleteFramebuffersFunPtr
+
+glDeleteFramebuffersFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glDeleteFramebuffersFunPtr = unsafePerformIO (getProcAddress "glDeleteFramebuffers")
+
+{-# NOINLINE glDeleteFramebuffersFunPtr #-}
+
+-- | Usage: @'glDeleteRenderbuffers' n renderbuffers@
+--
+-- The length of @renderbuffers@ should be @n@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDeleteRenderbuffers.xhtml>
+
+
+glDeleteRenderbuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glDeleteRenderbuffers = ffisizeiPtruintIOV glDeleteRenderbuffersFunPtr
+
+glDeleteRenderbuffersFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glDeleteRenderbuffersFunPtr = unsafePerformIO (getProcAddress "glDeleteRenderbuffers")
+
+{-# NOINLINE glDeleteRenderbuffersFunPtr #-}
+
+-- | Usage: @'glFramebufferRenderbuffer' target attachment renderbuffertarget renderbuffer@
+--
+-- The parameter @target@ is a @FramebufferTarget@.
+--
+-- The parameter @attachment@ is a @FramebufferAttachment@.
+--
+-- The parameter @renderbuffertarget@ is a @RenderbufferTarget@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glFramebufferRenderbuffer.xhtml>
+
+
+glFramebufferRenderbuffer :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> m ()
+glFramebufferRenderbuffer = ffienumenumenumuintIOV glFramebufferRenderbufferFunPtr
+
+glFramebufferRenderbufferFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLuint -> IO ())
+glFramebufferRenderbufferFunPtr = unsafePerformIO (getProcAddress "glFramebufferRenderbuffer")
+
+{-# NOINLINE glFramebufferRenderbufferFunPtr #-}
+
+-- | Usage: @'glFramebufferTexture1D' target attachment textarget texture level@
+--
+-- The parameter @target@ is a @FramebufferTarget@.
+--
+-- The parameter @attachment@ is a @FramebufferAttachment@.
+
+
+glFramebufferTexture1D :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> m ()
+glFramebufferTexture1D = ffienumenumenumuintintIOV glFramebufferTexture1DFunPtr
+
+glFramebufferTexture1DFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLuint -> GLint -> IO ())
+glFramebufferTexture1DFunPtr = unsafePerformIO (getProcAddress "glFramebufferTexture1D")
+
+{-# NOINLINE glFramebufferTexture1DFunPtr #-}
+
+-- | Usage: @'glFramebufferTexture2D' target attachment textarget texture level@
+--
+-- The parameter @target@ is a @FramebufferTarget@.
+--
+-- The parameter @attachment@ is a @FramebufferAttachment@.
+
+
+glFramebufferTexture2D :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> m ()
+glFramebufferTexture2D = ffienumenumenumuintintIOV glFramebufferTexture2DFunPtr
+
+glFramebufferTexture2DFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLuint -> GLint -> IO ())
+glFramebufferTexture2DFunPtr = unsafePerformIO (getProcAddress "glFramebufferTexture2D")
+
+{-# NOINLINE glFramebufferTexture2DFunPtr #-}
+
+-- | Usage: @'glFramebufferTexture3D' target attachment textarget texture level zoffset@
+--
+-- The parameter @target@ is a @FramebufferTarget@.
+--
+-- The parameter @attachment@ is a @FramebufferAttachment@.
+
+
+glFramebufferTexture3D :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> GLint -> m ()
+glFramebufferTexture3D = ffienumenumenumuintintintIOV glFramebufferTexture3DFunPtr
+
+glFramebufferTexture3DFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLuint -> GLint -> GLint -> IO ())
+glFramebufferTexture3DFunPtr = unsafePerformIO (getProcAddress "glFramebufferTexture3D")
+
+{-# NOINLINE glFramebufferTexture3DFunPtr #-}
+
+-- | Usage: @'glFramebufferTextureLayer' target attachment texture level layer@
+--
+-- The parameter @target@ is a @FramebufferTarget@.
+--
+-- The parameter @attachment@ is a @FramebufferAttachment@.
+--
+-- The parameter @texture@ is a @Texture@.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @layer@ is a @CheckedInt32@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glFramebufferTextureLayer.xhtml>
+
+
+glFramebufferTextureLayer :: MonadIO m => GLenum -> GLenum -> GLuint -> GLint -> GLint -> m ()
+glFramebufferTextureLayer = ffienumenumuintintintIOV glFramebufferTextureLayerFunPtr
+
+glFramebufferTextureLayerFunPtr :: FunPtr (GLenum -> GLenum -> GLuint -> GLint -> GLint -> IO ())
+glFramebufferTextureLayerFunPtr = unsafePerformIO (getProcAddress "glFramebufferTextureLayer")
+
+{-# NOINLINE glFramebufferTextureLayerFunPtr #-}
+
+-- | Usage: @'glGenFramebuffers' n framebuffers@
+--
+-- The length of @framebuffers@ should be @n@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGenFramebuffers.xhtml>
+
+
+glGenFramebuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glGenFramebuffers = ffisizeiPtruintIOV glGenFramebuffersFunPtr
+
+glGenFramebuffersFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glGenFramebuffersFunPtr = unsafePerformIO (getProcAddress "glGenFramebuffers")
+
+{-# NOINLINE glGenFramebuffersFunPtr #-}
+
+-- | Usage: @'glGenRenderbuffers' n renderbuffers@
+--
+-- The length of @renderbuffers@ should be @n@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGenRenderbuffers.xhtml>
+
+
+glGenRenderbuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glGenRenderbuffers = ffisizeiPtruintIOV glGenRenderbuffersFunPtr
+
+glGenRenderbuffersFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glGenRenderbuffersFunPtr = unsafePerformIO (getProcAddress "glGenRenderbuffers")
+
+{-# NOINLINE glGenRenderbuffersFunPtr #-}
+
+-- | Usage: @'glGenerateMipmap' target@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGenerateMipmap.xhtml>
+
+
+glGenerateMipmap :: MonadIO m => GLenum -> m ()
+glGenerateMipmap = ffienumIOV glGenerateMipmapFunPtr
+
+glGenerateMipmapFunPtr :: FunPtr (GLenum -> IO ())
+glGenerateMipmapFunPtr = unsafePerformIO (getProcAddress "glGenerateMipmap")
+
+{-# NOINLINE glGenerateMipmapFunPtr #-}
+
+-- | Usage: @'glGetFramebufferAttachmentParameteriv' target attachment pname params@
+--
+-- The parameter @target@ is a @FramebufferTarget@.
+--
+-- The parameter @attachment@ is a @FramebufferAttachment@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetFramebufferAttachmentParameteriv :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLint -> m ()
+glGetFramebufferAttachmentParameteriv = ffienumenumenumPtrintIOV glGetFramebufferAttachmentParameterivFunPtr
+
+glGetFramebufferAttachmentParameterivFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ())
+glGetFramebufferAttachmentParameterivFunPtr = unsafePerformIO (getProcAddress "glGetFramebufferAttachmentParameteriv")
+
+{-# NOINLINE glGetFramebufferAttachmentParameterivFunPtr #-}
+
+-- | Usage: @'glGetRenderbufferParameteriv' target pname params@
+--
+-- The parameter @target@ is a @RenderbufferTarget@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetRenderbufferParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
+glGetRenderbufferParameteriv = ffienumenumPtrintIOV glGetRenderbufferParameterivFunPtr
+
+glGetRenderbufferParameterivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+glGetRenderbufferParameterivFunPtr = unsafePerformIO (getProcAddress "glGetRenderbufferParameteriv")
+
+{-# NOINLINE glGetRenderbufferParameterivFunPtr #-}
+
+-- | Usage: @'glIsFramebuffer' framebuffer@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glIsFramebuffer.xhtml>
+
+
+glIsFramebuffer :: MonadIO m => GLuint -> m GLboolean
+glIsFramebuffer = ffiuintIOboolean glIsFramebufferFunPtr
+
+glIsFramebufferFunPtr :: FunPtr (GLuint -> IO GLboolean)
+glIsFramebufferFunPtr = unsafePerformIO (getProcAddress "glIsFramebuffer")
+
+{-# NOINLINE glIsFramebufferFunPtr #-}
+
+-- | Usage: @'glIsRenderbuffer' renderbuffer@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glIsRenderbuffer.xhtml>
+
+
+glIsRenderbuffer :: MonadIO m => GLuint -> m GLboolean
+glIsRenderbuffer = ffiuintIOboolean glIsRenderbufferFunPtr
+
+glIsRenderbufferFunPtr :: FunPtr (GLuint -> IO GLboolean)
+glIsRenderbufferFunPtr = unsafePerformIO (getProcAddress "glIsRenderbuffer")
+
+{-# NOINLINE glIsRenderbufferFunPtr #-}
+
+-- | Usage: @'glRenderbufferStorage' target internalformat width height@
+--
+-- The parameter @target@ is a @RenderbufferTarget@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glRenderbufferStorage.xhtml>
+
+
+glRenderbufferStorage :: MonadIO m => GLenum -> GLenum -> GLsizei -> GLsizei -> m ()
+glRenderbufferStorage = ffienumenumsizeisizeiIOV glRenderbufferStorageFunPtr
+
+glRenderbufferStorageFunPtr :: FunPtr (GLenum -> GLenum -> GLsizei -> GLsizei -> IO ())
+glRenderbufferStorageFunPtr = unsafePerformIO (getProcAddress "glRenderbufferStorage")
+
+{-# NOINLINE glRenderbufferStorageFunPtr #-}
+
+-- | Usage: @'glRenderbufferStorageMultisample' target samples internalformat width height@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glRenderbufferStorageMultisample.xhtml>
+
+
+glRenderbufferStorageMultisample :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()
+glRenderbufferStorageMultisample = ffienumsizeienumsizeisizeiIOV glRenderbufferStorageMultisampleFunPtr
+
+glRenderbufferStorageMultisampleFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> IO ())
+glRenderbufferStorageMultisampleFunPtr = unsafePerformIO (getProcAddress "glRenderbufferStorageMultisample")
+
+{-# NOINLINE glRenderbufferStorageMultisampleFunPtr #-}
+
+pattern GL_COLOR_ATTACHMENT0 = 0x8CE0
+
+pattern GL_COLOR_ATTACHMENT1 = 0x8CE1
+
+pattern GL_COLOR_ATTACHMENT10 = 0x8CEA
+
+pattern GL_COLOR_ATTACHMENT11 = 0x8CEB
+
+pattern GL_COLOR_ATTACHMENT12 = 0x8CEC
+
+pattern GL_COLOR_ATTACHMENT13 = 0x8CED
+
+pattern GL_COLOR_ATTACHMENT14 = 0x8CEE
+
+pattern GL_COLOR_ATTACHMENT15 = 0x8CEF
+
+pattern GL_COLOR_ATTACHMENT2 = 0x8CE2
+
+pattern GL_COLOR_ATTACHMENT3 = 0x8CE3
+
+pattern GL_COLOR_ATTACHMENT4 = 0x8CE4
+
+pattern GL_COLOR_ATTACHMENT5 = 0x8CE5
+
+pattern GL_COLOR_ATTACHMENT6 = 0x8CE6
+
+pattern GL_COLOR_ATTACHMENT7 = 0x8CE7
+
+pattern GL_COLOR_ATTACHMENT8 = 0x8CE8
+
+pattern GL_COLOR_ATTACHMENT9 = 0x8CE9
+
+pattern GL_DEPTH24_STENCIL8 = 0x88F0
+
+pattern GL_DEPTH_ATTACHMENT = 0x8D00
+
+pattern GL_DEPTH_STENCIL = 0x84F9
+
+pattern GL_DEPTH_STENCIL_ATTACHMENT = 0x821A
+
+pattern GL_DRAW_FRAMEBUFFER = 0x8CA9
+
+pattern GL_DRAW_FRAMEBUFFER_BINDING = 0x8CA6
+
+pattern GL_FRAMEBUFFER = 0x8D40
+
+pattern GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE = 0x8215
+
+pattern GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE = 0x8214
+
+pattern GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING = 0x8210
+
+pattern GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE = 0x8211
+
+pattern GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE = 0x8216
+
+pattern GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE = 0x8213
+
+pattern GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME = 0x8CD1
+
+pattern GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE = 0x8CD0
+
+pattern GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE = 0x8212
+
+pattern GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE = 0x8217
+
+pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE = 0x8CD3
+
+pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER = 0x8CD4
+
+pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL = 0x8CD2
+
+pattern GL_FRAMEBUFFER_BINDING = 0x8CA6
+
+pattern GL_FRAMEBUFFER_COMPLETE = 0x8CD5
+
+pattern GL_FRAMEBUFFER_DEFAULT = 0x8218
+
+pattern GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT = 0x8CD6
+
+pattern GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER = 0x8CDB
+
+pattern GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT = 0x8CD7
+
+pattern GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE = 0x8D56
+
+pattern GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER = 0x8CDC
+
+pattern GL_FRAMEBUFFER_UNDEFINED = 0x8219
+
+pattern GL_FRAMEBUFFER_UNSUPPORTED = 0x8CDD
+
+pattern GL_INDEX = 0x8222
+
+pattern GL_INVALID_FRAMEBUFFER_OPERATION = 0x0506
+
+pattern GL_MAX_COLOR_ATTACHMENTS = 0x8CDF
+
+pattern GL_MAX_RENDERBUFFER_SIZE = 0x84E8
+
+pattern GL_MAX_SAMPLES = 0x8D57
+
+pattern GL_READ_FRAMEBUFFER = 0x8CA8
+
+pattern GL_READ_FRAMEBUFFER_BINDING = 0x8CAA
+
+pattern GL_RENDERBUFFER = 0x8D41
+
+pattern GL_RENDERBUFFER_ALPHA_SIZE = 0x8D53
+
+pattern GL_RENDERBUFFER_BINDING = 0x8CA7
+
+pattern GL_RENDERBUFFER_BLUE_SIZE = 0x8D52
+
+pattern GL_RENDERBUFFER_DEPTH_SIZE = 0x8D54
+
+pattern GL_RENDERBUFFER_GREEN_SIZE = 0x8D51
+
+pattern GL_RENDERBUFFER_HEIGHT = 0x8D43
+
+pattern GL_RENDERBUFFER_INTERNAL_FORMAT = 0x8D44
+
+pattern GL_RENDERBUFFER_RED_SIZE = 0x8D50
+
+pattern GL_RENDERBUFFER_SAMPLES = 0x8CAB
+
+pattern GL_RENDERBUFFER_STENCIL_SIZE = 0x8D55
+
+pattern GL_RENDERBUFFER_WIDTH = 0x8D42
+
+pattern GL_STENCIL_ATTACHMENT = 0x8D20
+
+pattern GL_STENCIL_INDEX1 = 0x8D46
+
+pattern GL_STENCIL_INDEX16 = 0x8D49
+
+pattern GL_STENCIL_INDEX4 = 0x8D47
+
+pattern GL_STENCIL_INDEX8 = 0x8D48
+
+pattern GL_TEXTURE_STENCIL_SIZE = 0x88F1
+
+pattern GL_UNSIGNED_INT_24_8 = 0x84FA
+
+pattern GL_UNSIGNED_NORMALIZED = 0x8C17
+
+pattern GL_FRAMEBUFFER_SRGB = 0x8DB9
+
+pattern GL_MAX_VARYING_COMPONENTS = 0x8B4B
+
+-- | Usage: @'glGetProgramBinary' program bufSize length binaryFormat binary@
+--
+-- The length of @length@ should be @1@.
+--
+-- The length of @binaryFormat@ should be @1@.
+--
+-- The length of @binary@ should be @bufSize@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetProgramBinary.xhtml>
+
+
+glGetProgramBinary :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLenum -> Ptr () -> m ()
+glGetProgramBinary = ffiuintsizeiPtrsizeiPtrenumPtrVIOV glGetProgramBinaryFunPtr
+
+glGetProgramBinaryFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLenum -> Ptr () -> IO ())
+glGetProgramBinaryFunPtr = unsafePerformIO (getProcAddress "glGetProgramBinary")
+
+{-# NOINLINE glGetProgramBinaryFunPtr #-}
+
+-- | Usage: @'glProgramBinary' program binaryFormat binary length@
+--
+-- The length of @binary@ should be @length@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glProgramBinary.xhtml>
+
+
+glProgramBinary :: MonadIO m => GLuint -> GLenum -> Ptr () -> GLsizei -> m ()
+glProgramBinary = ffiuintenumPtrVsizeiIOV glProgramBinaryFunPtr
+
+glProgramBinaryFunPtr :: FunPtr (GLuint -> GLenum -> Ptr () -> GLsizei -> IO ())
+glProgramBinaryFunPtr = unsafePerformIO (getProcAddress "glProgramBinary")
+
+{-# NOINLINE glProgramBinaryFunPtr #-}
+
+-- | Usage: @'glProgramParameteri' program pname value@
+--
+-- The parameter @pname@ is a @ProgramParameterPName@.
+
+
+glProgramParameteri :: MonadIO m => GLuint -> GLenum -> GLint -> m ()
+glProgramParameteri = ffiuintenumintIOV glProgramParameteriFunPtr
+
+glProgramParameteriFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> IO ())
+glProgramParameteriFunPtr = unsafePerformIO (getProcAddress "glProgramParameteri")
+
+{-# NOINLINE glProgramParameteriFunPtr #-}
+
+pattern GL_NUM_PROGRAM_BINARY_FORMATS = 0x87FE
+
+pattern GL_PROGRAM_BINARY_FORMATS = 0x87FF
+
+pattern GL_PROGRAM_BINARY_LENGTH = 0x8741
+
+pattern GL_PROGRAM_BINARY_RETRIEVABLE_HINT = 0x8257
+
+-- | Usage: @'glGetCompressedTextureSubImage' texture level xoffset yoffset zoffset width height depth bufSize pixels@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetCompressedTextureSubImage.xhtml>
+
+
+glGetCompressedTextureSubImage :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> Ptr () -> m ()
+glGetCompressedTextureSubImage = ffiuintintintintintsizeisizeisizeisizeiPtrVIOV glGetCompressedTextureSubImageFunPtr
+
+glGetCompressedTextureSubImageFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> Ptr () -> IO ())
+glGetCompressedTextureSubImageFunPtr = unsafePerformIO (getProcAddress "glGetCompressedTextureSubImage")
+
+{-# NOINLINE glGetCompressedTextureSubImageFunPtr #-}
+
+-- | Usage: @'glGetTextureSubImage' texture level xoffset yoffset zoffset width height depth format type bufSize pixels@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetTextureSubImage.xhtml>
+
+
+glGetTextureSubImage :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> GLsizei -> Ptr () -> m ()
+glGetTextureSubImage = ffiuintintintintintsizeisizeisizeienumenumsizeiPtrVIOV glGetTextureSubImageFunPtr
+
+glGetTextureSubImageFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> GLsizei -> Ptr () -> IO ())
+glGetTextureSubImageFunPtr = unsafePerformIO (getProcAddress "glGetTextureSubImage")
+
+{-# NOINLINE glGetTextureSubImageFunPtr #-}
+
+pattern GL_FRAGMENT_INTERPOLATION_OFFSET_BITS = 0x8E5D
+
+pattern GL_GEOMETRY_SHADER_INVOCATIONS = 0x887F
+
+pattern GL_MAX_FRAGMENT_INTERPOLATION_OFFSET = 0x8E5C
+
+pattern GL_MAX_GEOMETRY_SHADER_INVOCATIONS = 0x8E5A
+
+pattern GL_MAX_VERTEX_STREAMS = 0x8E71
+
+pattern GL_MIN_FRAGMENT_INTERPOLATION_OFFSET = 0x8E5B
+
+-- | Usage: @'glGetUniformdv' program location params@
+--
+-- The length of @params@ should be @COMPSIZE(program,location)@.
+
+
+glGetUniformdv :: MonadIO m => GLuint -> GLint -> Ptr GLdouble -> m ()
+glGetUniformdv = ffiuintintPtrdoubleIOV glGetUniformdvFunPtr
+
+glGetUniformdvFunPtr :: FunPtr (GLuint -> GLint -> Ptr GLdouble -> IO ())
+glGetUniformdvFunPtr = unsafePerformIO (getProcAddress "glGetUniformdv")
+
+{-# NOINLINE glGetUniformdvFunPtr #-}
+
+-- | Usage: @'glUniform1d' location x@
+
+
+glUniform1d :: MonadIO m => GLint -> GLdouble -> m ()
+glUniform1d = ffiintdoubleIOV glUniform1dFunPtr
+
+glUniform1dFunPtr :: FunPtr (GLint -> GLdouble -> IO ())
+glUniform1dFunPtr = unsafePerformIO (getProcAddress "glUniform1d")
+
+{-# NOINLINE glUniform1dFunPtr #-}
+
+-- | Usage: @'glUniform1dv' location count value@
+--
+-- The length of @value@ should be @count*1@.
+
+
+glUniform1dv :: MonadIO m => GLint -> GLsizei -> Ptr GLdouble -> m ()
+glUniform1dv = ffiintsizeiPtrdoubleIOV glUniform1dvFunPtr
+
+glUniform1dvFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLdouble -> IO ())
+glUniform1dvFunPtr = unsafePerformIO (getProcAddress "glUniform1dv")
+
+{-# NOINLINE glUniform1dvFunPtr #-}
+
+-- | Usage: @'glUniform2d' location x y@
+
+
+glUniform2d :: MonadIO m => GLint -> GLdouble -> GLdouble -> m ()
+glUniform2d = ffiintdoubledoubleIOV glUniform2dFunPtr
+
+glUniform2dFunPtr :: FunPtr (GLint -> GLdouble -> GLdouble -> IO ())
+glUniform2dFunPtr = unsafePerformIO (getProcAddress "glUniform2d")
+
+{-# NOINLINE glUniform2dFunPtr #-}
+
+-- | Usage: @'glUniform2dv' location count value@
+--
+-- The length of @value@ should be @count*2@.
+
+
+glUniform2dv :: MonadIO m => GLint -> GLsizei -> Ptr GLdouble -> m ()
+glUniform2dv = ffiintsizeiPtrdoubleIOV glUniform2dvFunPtr
+
+glUniform2dvFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLdouble -> IO ())
+glUniform2dvFunPtr = unsafePerformIO (getProcAddress "glUniform2dv")
+
+{-# NOINLINE glUniform2dvFunPtr #-}
+
+-- | Usage: @'glUniform3d' location x y z@
+
+
+glUniform3d :: MonadIO m => GLint -> GLdouble -> GLdouble -> GLdouble -> m ()
+glUniform3d = ffiintdoubledoubledoubleIOV glUniform3dFunPtr
+
+glUniform3dFunPtr :: FunPtr (GLint -> GLdouble -> GLdouble -> GLdouble -> IO ())
+glUniform3dFunPtr = unsafePerformIO (getProcAddress "glUniform3d")
+
+{-# NOINLINE glUniform3dFunPtr #-}
+
+-- | Usage: @'glUniform3dv' location count value@
+--
+-- The length of @value@ should be @count*3@.
+
+
+glUniform3dv :: MonadIO m => GLint -> GLsizei -> Ptr GLdouble -> m ()
+glUniform3dv = ffiintsizeiPtrdoubleIOV glUniform3dvFunPtr
+
+glUniform3dvFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLdouble -> IO ())
+glUniform3dvFunPtr = unsafePerformIO (getProcAddress "glUniform3dv")
+
+{-# NOINLINE glUniform3dvFunPtr #-}
+
+-- | Usage: @'glUniform4d' location x y z w@
+
+
+glUniform4d :: MonadIO m => GLint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
+glUniform4d = ffiintdoubledoubledoubledoubleIOV glUniform4dFunPtr
+
+glUniform4dFunPtr :: FunPtr (GLint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
+glUniform4dFunPtr = unsafePerformIO (getProcAddress "glUniform4d")
+
+{-# NOINLINE glUniform4dFunPtr #-}
+
+-- | Usage: @'glUniform4dv' location count value@
+--
+-- The length of @value@ should be @count*4@.
+
+
+glUniform4dv :: MonadIO m => GLint -> GLsizei -> Ptr GLdouble -> m ()
+glUniform4dv = ffiintsizeiPtrdoubleIOV glUniform4dvFunPtr
+
+glUniform4dvFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLdouble -> IO ())
+glUniform4dvFunPtr = unsafePerformIO (getProcAddress "glUniform4dv")
+
+{-# NOINLINE glUniform4dvFunPtr #-}
+
+-- | Usage: @'glUniformMatrix2dv' location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FALSE', 'Graphics.GL.Raw.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count*4@.
+
+
+glUniformMatrix2dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
+glUniformMatrix2dv = ffiintsizeibooleanPtrdoubleIOV glUniformMatrix2dvFunPtr
+
+glUniformMatrix2dvFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
+glUniformMatrix2dvFunPtr = unsafePerformIO (getProcAddress "glUniformMatrix2dv")
+
+{-# NOINLINE glUniformMatrix2dvFunPtr #-}
+
+-- | Usage: @'glUniformMatrix2x3dv' location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FALSE', 'Graphics.GL.Raw.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count*6@.
+
+
+glUniformMatrix2x3dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
+glUniformMatrix2x3dv = ffiintsizeibooleanPtrdoubleIOV glUniformMatrix2x3dvFunPtr
+
+glUniformMatrix2x3dvFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
+glUniformMatrix2x3dvFunPtr = unsafePerformIO (getProcAddress "glUniformMatrix2x3dv")
+
+{-# NOINLINE glUniformMatrix2x3dvFunPtr #-}
+
+-- | Usage: @'glUniformMatrix2x4dv' location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FALSE', 'Graphics.GL.Raw.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count*8@.
+
+
+glUniformMatrix2x4dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
+glUniformMatrix2x4dv = ffiintsizeibooleanPtrdoubleIOV glUniformMatrix2x4dvFunPtr
+
+glUniformMatrix2x4dvFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
+glUniformMatrix2x4dvFunPtr = unsafePerformIO (getProcAddress "glUniformMatrix2x4dv")
+
+{-# NOINLINE glUniformMatrix2x4dvFunPtr #-}
+
+-- | Usage: @'glUniformMatrix3dv' location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FALSE', 'Graphics.GL.Raw.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count*9@.
+
+
+glUniformMatrix3dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
+glUniformMatrix3dv = ffiintsizeibooleanPtrdoubleIOV glUniformMatrix3dvFunPtr
+
+glUniformMatrix3dvFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
+glUniformMatrix3dvFunPtr = unsafePerformIO (getProcAddress "glUniformMatrix3dv")
+
+{-# NOINLINE glUniformMatrix3dvFunPtr #-}
+
+-- | Usage: @'glUniformMatrix3x2dv' location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FALSE', 'Graphics.GL.Raw.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count*6@.
+
+
+glUniformMatrix3x2dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
+glUniformMatrix3x2dv = ffiintsizeibooleanPtrdoubleIOV glUniformMatrix3x2dvFunPtr
+
+glUniformMatrix3x2dvFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
+glUniformMatrix3x2dvFunPtr = unsafePerformIO (getProcAddress "glUniformMatrix3x2dv")
+
+{-# NOINLINE glUniformMatrix3x2dvFunPtr #-}
+
+-- | Usage: @'glUniformMatrix3x4dv' location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FALSE', 'Graphics.GL.Raw.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count*12@.
+
+
+glUniformMatrix3x4dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
+glUniformMatrix3x4dv = ffiintsizeibooleanPtrdoubleIOV glUniformMatrix3x4dvFunPtr
+
+glUniformMatrix3x4dvFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
+glUniformMatrix3x4dvFunPtr = unsafePerformIO (getProcAddress "glUniformMatrix3x4dv")
+
+{-# NOINLINE glUniformMatrix3x4dvFunPtr #-}
+
+-- | Usage: @'glUniformMatrix4dv' location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FALSE', 'Graphics.GL.Raw.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count*16@.
+
+
+glUniformMatrix4dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
+glUniformMatrix4dv = ffiintsizeibooleanPtrdoubleIOV glUniformMatrix4dvFunPtr
+
+glUniformMatrix4dvFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
+glUniformMatrix4dvFunPtr = unsafePerformIO (getProcAddress "glUniformMatrix4dv")
+
+{-# NOINLINE glUniformMatrix4dvFunPtr #-}
+
+-- | Usage: @'glUniformMatrix4x2dv' location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FALSE', 'Graphics.GL.Raw.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count*8@.
+
+
+glUniformMatrix4x2dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
+glUniformMatrix4x2dv = ffiintsizeibooleanPtrdoubleIOV glUniformMatrix4x2dvFunPtr
+
+glUniformMatrix4x2dvFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
+glUniformMatrix4x2dvFunPtr = unsafePerformIO (getProcAddress "glUniformMatrix4x2dv")
+
+{-# NOINLINE glUniformMatrix4x2dvFunPtr #-}
+
+-- | Usage: @'glUniformMatrix4x3dv' location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FALSE', 'Graphics.GL.Raw.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count*12@.
+
+
+glUniformMatrix4x3dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
+glUniformMatrix4x3dv = ffiintsizeibooleanPtrdoubleIOV glUniformMatrix4x3dvFunPtr
+
+glUniformMatrix4x3dvFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
+glUniformMatrix4x3dvFunPtr = unsafePerformIO (getProcAddress "glUniformMatrix4x3dv")
+
+{-# NOINLINE glUniformMatrix4x3dvFunPtr #-}
+
+pattern GL_DOUBLE = 0x140A
+
+pattern GL_DOUBLE_MAT2 = 0x8F46
+
+pattern GL_DOUBLE_MAT2x3 = 0x8F49
+
+pattern GL_DOUBLE_MAT2x4 = 0x8F4A
+
+pattern GL_DOUBLE_MAT3 = 0x8F47
+
+pattern GL_DOUBLE_MAT3x2 = 0x8F4B
+
+pattern GL_DOUBLE_MAT3x4 = 0x8F4C
+
+pattern GL_DOUBLE_MAT4 = 0x8F48
+
+pattern GL_DOUBLE_MAT4x2 = 0x8F4D
+
+pattern GL_DOUBLE_MAT4x3 = 0x8F4E
+
+pattern GL_DOUBLE_VEC2 = 0x8FFC
+
+pattern GL_DOUBLE_VEC3 = 0x8FFD
+
+pattern GL_DOUBLE_VEC4 = 0x8FFE
+
+pattern GL_HALF_FLOAT = 0x140B
+
+-- | Usage: @'glBlendColor' red green blue alpha@
+--
+-- The parameter @red@ is a @ColorF@.
+--
+-- The parameter @green@ is a @ColorF@.
+--
+-- The parameter @blue@ is a @ColorF@.
+--
+-- The parameter @alpha@ is a @ColorF@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBlendColor.xhtml>
+
+
+glBlendColor :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
+glBlendColor = ffifloatfloatfloatfloatIOV glBlendColorFunPtr
+
+glBlendColorFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+glBlendColorFunPtr = unsafePerformIO (getProcAddress "glBlendColor")
+
+{-# NOINLINE glBlendColorFunPtr #-}
+
+-- | Usage: @'glBlendEquation' mode@
+--
+-- The parameter @mode@ is a @BlendEquationMode@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBlendEquation.xhtml>
+
+
+glBlendEquation :: MonadIO m => GLenum -> m ()
+glBlendEquation = ffienumIOV glBlendEquationFunPtr
+
+glBlendEquationFunPtr :: FunPtr (GLenum -> IO ())
+glBlendEquationFunPtr = unsafePerformIO (getProcAddress "glBlendEquation")
+
+{-# NOINLINE glBlendEquationFunPtr #-}
+
+pattern GL_BLEND_COLOR = 0x8005
+
+pattern GL_BLEND_EQUATION = 0x8009
+
+pattern GL_CONSTANT_ALPHA = 0x8003
+
+pattern GL_CONSTANT_COLOR = 0x8001
+
+pattern GL_FUNC_ADD = 0x8006
+
+pattern GL_FUNC_REVERSE_SUBTRACT = 0x800B
+
+pattern GL_FUNC_SUBTRACT = 0x800A
+
+pattern GL_MAX = 0x8008
+
+pattern GL_MIN = 0x8007
+
+pattern GL_ONE_MINUS_CONSTANT_ALPHA = 0x8004
+
+pattern GL_ONE_MINUS_CONSTANT_COLOR = 0x8002
+
+-- | Usage: @'glGetInternalformativ' target internalformat pname bufSize params@
+--
+-- The length of @params@ should be @bufSize@.
+
+
+glGetInternalformativ :: MonadIO m => GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLint -> m ()
+glGetInternalformativ = ffienumenumenumsizeiPtrintIOV glGetInternalformativFunPtr
+
+glGetInternalformativFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLint -> IO ())
+glGetInternalformativFunPtr = unsafePerformIO (getProcAddress "glGetInternalformativ")
+
+{-# NOINLINE glGetInternalformativFunPtr #-}
+
+pattern GL_NUM_SAMPLE_COUNTS = 0x9380
+
+-- | Usage: @'glGetInternalformati64v' target internalformat pname bufSize params@
+--
+-- The length of @params@ should be @bufSize@.
+
+
+glGetInternalformati64v :: MonadIO m => GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLint64 -> m ()
+glGetInternalformati64v = ffienumenumenumsizeiPtrint64IOV glGetInternalformati64vFunPtr
+
+glGetInternalformati64vFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLint64 -> IO ())
+glGetInternalformati64vFunPtr = unsafePerformIO (getProcAddress "glGetInternalformati64v")
+
+{-# NOINLINE glGetInternalformati64vFunPtr #-}
+
+pattern GL_AUTO_GENERATE_MIPMAP = 0x8295
+
+pattern GL_CAVEAT_SUPPORT = 0x82B8
+
+pattern GL_CLEAR_BUFFER = 0x82B4
+
+pattern GL_COLOR_COMPONENTS = 0x8283
+
+pattern GL_COLOR_ENCODING = 0x8296
+
+pattern GL_COLOR_RENDERABLE = 0x8286
+
+pattern GL_COMPUTE_TEXTURE = 0x82A0
+
+pattern GL_DEPTH_COMPONENTS = 0x8284
+
+pattern GL_DEPTH_RENDERABLE = 0x8287
+
+pattern GL_FILTER = 0x829A
+
+pattern GL_FRAGMENT_TEXTURE = 0x829F
+
+pattern GL_FRAMEBUFFER_BLEND = 0x828B
+
+pattern GL_FRAMEBUFFER_RENDERABLE = 0x8289
+
+pattern GL_FRAMEBUFFER_RENDERABLE_LAYERED = 0x828A
+
+pattern GL_FULL_SUPPORT = 0x82B7
+
+pattern GL_GEOMETRY_TEXTURE = 0x829E
+
+pattern GL_GET_TEXTURE_IMAGE_FORMAT = 0x8291
+
+pattern GL_GET_TEXTURE_IMAGE_TYPE = 0x8292
+
+pattern GL_IMAGE_CLASS_10_10_10_2 = 0x82C3
+
+pattern GL_IMAGE_CLASS_11_11_10 = 0x82C2
+
+pattern GL_IMAGE_CLASS_1_X_16 = 0x82BE
+
+pattern GL_IMAGE_CLASS_1_X_32 = 0x82BB
+
+pattern GL_IMAGE_CLASS_1_X_8 = 0x82C1
+
+pattern GL_IMAGE_CLASS_2_X_16 = 0x82BD
+
+pattern GL_IMAGE_CLASS_2_X_32 = 0x82BA
+
+pattern GL_IMAGE_CLASS_2_X_8 = 0x82C0
+
+pattern GL_IMAGE_CLASS_4_X_16 = 0x82BC
+
+pattern GL_IMAGE_CLASS_4_X_32 = 0x82B9
+
+pattern GL_IMAGE_CLASS_4_X_8 = 0x82BF
+
+pattern GL_IMAGE_COMPATIBILITY_CLASS = 0x82A8
+
+pattern GL_IMAGE_FORMAT_COMPATIBILITY_TYPE = 0x90C7
+
+pattern GL_IMAGE_PIXEL_FORMAT = 0x82A9
+
+pattern GL_IMAGE_PIXEL_TYPE = 0x82AA
+
+pattern GL_IMAGE_TEXEL_SIZE = 0x82A7
+
+pattern GL_INTERNALFORMAT_ALPHA_SIZE = 0x8274
+
+pattern GL_INTERNALFORMAT_ALPHA_TYPE = 0x827B
+
+pattern GL_INTERNALFORMAT_BLUE_SIZE = 0x8273
+
+pattern GL_INTERNALFORMAT_BLUE_TYPE = 0x827A
+
+pattern GL_INTERNALFORMAT_DEPTH_SIZE = 0x8275
+
+pattern GL_INTERNALFORMAT_DEPTH_TYPE = 0x827C
+
+pattern GL_INTERNALFORMAT_GREEN_SIZE = 0x8272
+
+pattern GL_INTERNALFORMAT_GREEN_TYPE = 0x8279
+
+pattern GL_INTERNALFORMAT_PREFERRED = 0x8270
+
+pattern GL_INTERNALFORMAT_RED_SIZE = 0x8271
+
+pattern GL_INTERNALFORMAT_RED_TYPE = 0x8278
+
+pattern GL_INTERNALFORMAT_SHARED_SIZE = 0x8277
+
+pattern GL_INTERNALFORMAT_STENCIL_SIZE = 0x8276
+
+pattern GL_INTERNALFORMAT_STENCIL_TYPE = 0x827D
+
+pattern GL_INTERNALFORMAT_SUPPORTED = 0x826F
+
+pattern GL_MANUAL_GENERATE_MIPMAP = 0x8294
+
+pattern GL_MAX_COMBINED_DIMENSIONS = 0x8282
+
+pattern GL_MAX_DEPTH = 0x8280
+
+pattern GL_MAX_HEIGHT = 0x827F
+
+pattern GL_MAX_LAYERS = 0x8281
+
+pattern GL_MAX_WIDTH = 0x827E
+
+pattern GL_MIPMAP = 0x8293
+
+pattern GL_READ_PIXELS = 0x828C
+
+pattern GL_READ_PIXELS_FORMAT = 0x828D
+
+pattern GL_READ_PIXELS_TYPE = 0x828E
+
+pattern GL_SAMPLES = 0x80A9
+
+pattern GL_SHADER_IMAGE_ATOMIC = 0x82A6
+
+pattern GL_SHADER_IMAGE_LOAD = 0x82A4
+
+pattern GL_SHADER_IMAGE_STORE = 0x82A5
+
+pattern GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_TEST = 0x82AC
+
+pattern GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_WRITE = 0x82AE
+
+pattern GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_TEST = 0x82AD
+
+pattern GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_WRITE = 0x82AF
+
+pattern GL_SRGB_READ = 0x8297
+
+pattern GL_SRGB_WRITE = 0x8298
+
+pattern GL_STENCIL_COMPONENTS = 0x8285
+
+pattern GL_STENCIL_RENDERABLE = 0x8288
+
+pattern GL_TESS_CONTROL_TEXTURE = 0x829C
+
+pattern GL_TESS_EVALUATION_TEXTURE = 0x829D
+
+pattern GL_TEXTURE_1D = 0x0DE0
+
+pattern GL_TEXTURE_1D_ARRAY = 0x8C18
+
+pattern GL_TEXTURE_2D = 0x0DE1
+
+pattern GL_TEXTURE_2D_ARRAY = 0x8C1A
+
+pattern GL_TEXTURE_2D_MULTISAMPLE = 0x9100
+
+pattern GL_TEXTURE_2D_MULTISAMPLE_ARRAY = 0x9102
+
+pattern GL_TEXTURE_3D = 0x806F
+
+pattern GL_TEXTURE_BUFFER = 0x8C2A
+
+pattern GL_TEXTURE_COMPRESSED = 0x86A1
+
+pattern GL_TEXTURE_COMPRESSED_BLOCK_HEIGHT = 0x82B2
+
+pattern GL_TEXTURE_COMPRESSED_BLOCK_SIZE = 0x82B3
+
+pattern GL_TEXTURE_COMPRESSED_BLOCK_WIDTH = 0x82B1
+
+pattern GL_TEXTURE_CUBE_MAP = 0x8513
+
+pattern GL_TEXTURE_CUBE_MAP_ARRAY = 0x9009
+
+pattern GL_TEXTURE_GATHER = 0x82A2
+
+pattern GL_TEXTURE_GATHER_SHADOW = 0x82A3
+
+pattern GL_TEXTURE_IMAGE_FORMAT = 0x828F
+
+pattern GL_TEXTURE_IMAGE_TYPE = 0x8290
+
+pattern GL_TEXTURE_RECTANGLE = 0x84F5
+
+pattern GL_TEXTURE_SHADOW = 0x82A1
+
+pattern GL_TEXTURE_VIEW = 0x82B5
+
+pattern GL_VERTEX_TEXTURE = 0x829B
+
+pattern GL_VIEW_CLASS_128_BITS = 0x82C4
+
+pattern GL_VIEW_CLASS_16_BITS = 0x82CA
+
+pattern GL_VIEW_CLASS_24_BITS = 0x82C9
+
+pattern GL_VIEW_CLASS_32_BITS = 0x82C8
+
+pattern GL_VIEW_CLASS_48_BITS = 0x82C7
+
+pattern GL_VIEW_CLASS_64_BITS = 0x82C6
+
+pattern GL_VIEW_CLASS_8_BITS = 0x82CB
+
+pattern GL_VIEW_CLASS_96_BITS = 0x82C5
+
+pattern GL_VIEW_CLASS_BPTC_FLOAT = 0x82D3
+
+pattern GL_VIEW_CLASS_BPTC_UNORM = 0x82D2
+
+pattern GL_VIEW_CLASS_RGTC1_RED = 0x82D0
+
+pattern GL_VIEW_CLASS_RGTC2_RG = 0x82D1
+
+pattern GL_VIEW_CLASS_S3TC_DXT1_RGB = 0x82CC
+
+pattern GL_VIEW_CLASS_S3TC_DXT1_RGBA = 0x82CD
+
+pattern GL_VIEW_CLASS_S3TC_DXT3_RGBA = 0x82CE
+
+pattern GL_VIEW_CLASS_S3TC_DXT5_RGBA = 0x82CF
+
+pattern GL_VIEW_COMPATIBILITY_CLASS = 0x82B6
+
+-- | Usage: @'glInvalidateBufferData' buffer@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glInvalidateBufferData.xhtml>
+
+
+glInvalidateBufferData :: MonadIO m => GLuint -> m ()
+glInvalidateBufferData = ffiuintIOV glInvalidateBufferDataFunPtr
+
+glInvalidateBufferDataFunPtr :: FunPtr (GLuint -> IO ())
+glInvalidateBufferDataFunPtr = unsafePerformIO (getProcAddress "glInvalidateBufferData")
+
+{-# NOINLINE glInvalidateBufferDataFunPtr #-}
+
+-- | Usage: @'glInvalidateBufferSubData' buffer offset length@
+--
+-- The parameter @offset@ is a @BufferOffset@.
+--
+-- The parameter @length@ is a @BufferSize@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glInvalidateBufferSubData.xhtml>
+
+
+glInvalidateBufferSubData :: MonadIO m => GLuint -> GLintptr -> GLsizeiptr -> m ()
+glInvalidateBufferSubData = ffiuintintptrsizeiptrIOV glInvalidateBufferSubDataFunPtr
+
+glInvalidateBufferSubDataFunPtr :: FunPtr (GLuint -> GLintptr -> GLsizeiptr -> IO ())
+glInvalidateBufferSubDataFunPtr = unsafePerformIO (getProcAddress "glInvalidateBufferSubData")
+
+{-# NOINLINE glInvalidateBufferSubDataFunPtr #-}
+
+-- | Usage: @'glInvalidateFramebuffer' target numAttachments attachments@
+--
+-- The length of @attachments@ should be @numAttachments@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glInvalidateFramebuffer.xhtml>
+
+
+glInvalidateFramebuffer :: MonadIO m => GLenum -> GLsizei -> Ptr GLenum -> m ()
+glInvalidateFramebuffer = ffienumsizeiPtrenumIOV glInvalidateFramebufferFunPtr
+
+glInvalidateFramebufferFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr GLenum -> IO ())
+glInvalidateFramebufferFunPtr = unsafePerformIO (getProcAddress "glInvalidateFramebuffer")
+
+{-# NOINLINE glInvalidateFramebufferFunPtr #-}
+
+-- | Usage: @'glInvalidateSubFramebuffer' target numAttachments attachments x y width height@
+--
+-- The length of @attachments@ should be @numAttachments@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glInvalidateSubFramebuffer.xhtml>
+
+
+glInvalidateSubFramebuffer :: MonadIO m => GLenum -> GLsizei -> Ptr GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> m ()
+glInvalidateSubFramebuffer = ffienumsizeiPtrenumintintsizeisizeiIOV glInvalidateSubFramebufferFunPtr
+
+glInvalidateSubFramebufferFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> IO ())
+glInvalidateSubFramebufferFunPtr = unsafePerformIO (getProcAddress "glInvalidateSubFramebuffer")
+
+{-# NOINLINE glInvalidateSubFramebufferFunPtr #-}
+
+-- | Usage: @'glInvalidateTexImage' texture level@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glInvalidateTexImage.xhtml>
+
+
+glInvalidateTexImage :: MonadIO m => GLuint -> GLint -> m ()
+glInvalidateTexImage = ffiuintintIOV glInvalidateTexImageFunPtr
+
+glInvalidateTexImageFunPtr :: FunPtr (GLuint -> GLint -> IO ())
+glInvalidateTexImageFunPtr = unsafePerformIO (getProcAddress "glInvalidateTexImage")
+
+{-# NOINLINE glInvalidateTexImageFunPtr #-}
+
+-- | Usage: @'glInvalidateTexSubImage' texture level xoffset yoffset zoffset width height depth@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glInvalidateTexSubImage.xhtml>
+
+
+glInvalidateTexSubImage :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> m ()
+glInvalidateTexSubImage = ffiuintintintintintsizeisizeisizeiIOV glInvalidateTexSubImageFunPtr
+
+glInvalidateTexSubImageFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> IO ())
+glInvalidateTexSubImageFunPtr = unsafePerformIO (getProcAddress "glInvalidateTexSubImage")
+
+{-# NOINLINE glInvalidateTexSubImageFunPtr #-}
+
+pattern GL_MIN_MAP_BUFFER_ALIGNMENT = 0x90BC
+
+-- | Usage: @'glFlushMappedBufferRange' target offset length@
+--
+-- The parameter @target@ is a @BufferTargetARB@.
+--
+-- The parameter @offset@ is a @BufferOffset@.
+--
+-- The parameter @length@ is a @BufferSize@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glFlushMappedBufferRange.xhtml>
+
+
+glFlushMappedBufferRange :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> m ()
+glFlushMappedBufferRange = ffienumintptrsizeiptrIOV glFlushMappedBufferRangeFunPtr
+
+glFlushMappedBufferRangeFunPtr :: FunPtr (GLenum -> GLintptr -> GLsizeiptr -> IO ())
+glFlushMappedBufferRangeFunPtr = unsafePerformIO (getProcAddress "glFlushMappedBufferRange")
+
+{-# NOINLINE glFlushMappedBufferRangeFunPtr #-}
+
+-- | Usage: @'glMapBufferRange' target offset length access@
+--
+-- The parameter @target@ is a @BufferTargetARB@.
+--
+-- The parameter @offset@ is a @BufferOffset@.
+--
+-- The parameter @length@ is a @BufferSize@.
+--
+-- The parameter @access@ is a @BufferAccessMask@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glMapBufferRange.xhtml>
+
+
+glMapBufferRange :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> GLbitfield -> m (Ptr ())
+glMapBufferRange = ffienumintptrsizeiptrbitfieldIOPtrV glMapBufferRangeFunPtr
+
+glMapBufferRangeFunPtr :: FunPtr (GLenum -> GLintptr -> GLsizeiptr -> GLbitfield -> IO (Ptr ()))
+glMapBufferRangeFunPtr = unsafePerformIO (getProcAddress "glMapBufferRange")
+
+{-# NOINLINE glMapBufferRangeFunPtr #-}
+
+pattern GL_MAP_FLUSH_EXPLICIT_BIT = 0x0010
+
+pattern GL_MAP_INVALIDATE_BUFFER_BIT = 0x0008
+
+pattern GL_MAP_INVALIDATE_RANGE_BIT = 0x0004
+
+pattern GL_MAP_UNSYNCHRONIZED_BIT = 0x0020
+
+-- | Usage: @'glBindBuffersBase' target first count buffers@
+--
+-- The length of @buffers@ should be @count@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBindBuffersBase.xhtml>
+
+
+glBindBuffersBase :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLuint -> m ()
+glBindBuffersBase = ffienumuintsizeiPtruintIOV glBindBuffersBaseFunPtr
+
+glBindBuffersBaseFunPtr :: FunPtr (GLenum -> GLuint -> GLsizei -> Ptr GLuint -> IO ())
+glBindBuffersBaseFunPtr = unsafePerformIO (getProcAddress "glBindBuffersBase")
+
+{-# NOINLINE glBindBuffersBaseFunPtr #-}
+
+-- | Usage: @'glBindBuffersRange' target first count buffers offsets sizes@
+--
+-- The length of @buffers@ should be @count@.
+--
+-- The length of @offsets@ should be @count@.
+--
+-- The length of @sizes@ should be @count@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBindBuffersRange.xhtml>
+
+
+glBindBuffersRange :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLuint -> Ptr GLintptr -> Ptr GLsizeiptr -> m ()
+glBindBuffersRange = ffienumuintsizeiPtruintPtrintptrPtrsizeiptrIOV glBindBuffersRangeFunPtr
+
+glBindBuffersRangeFunPtr :: FunPtr (GLenum -> GLuint -> GLsizei -> Ptr GLuint -> Ptr GLintptr -> Ptr GLsizeiptr -> IO ())
+glBindBuffersRangeFunPtr = unsafePerformIO (getProcAddress "glBindBuffersRange")
+
+{-# NOINLINE glBindBuffersRangeFunPtr #-}
+
+-- | Usage: @'glBindImageTextures' first count textures@
+--
+-- The length of @textures@ should be @count@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBindImageTextures.xhtml>
+
+
+glBindImageTextures :: MonadIO m => GLuint -> GLsizei -> Ptr GLuint -> m ()
+glBindImageTextures = ffiuintsizeiPtruintIOV glBindImageTexturesFunPtr
+
+glBindImageTexturesFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLuint -> IO ())
+glBindImageTexturesFunPtr = unsafePerformIO (getProcAddress "glBindImageTextures")
+
+{-# NOINLINE glBindImageTexturesFunPtr #-}
+
+-- | Usage: @'glBindSamplers' first count samplers@
+--
+-- The length of @samplers@ should be @count@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBindSamplers.xhtml>
+
+
+glBindSamplers :: MonadIO m => GLuint -> GLsizei -> Ptr GLuint -> m ()
+glBindSamplers = ffiuintsizeiPtruintIOV glBindSamplersFunPtr
+
+glBindSamplersFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLuint -> IO ())
+glBindSamplersFunPtr = unsafePerformIO (getProcAddress "glBindSamplers")
+
+{-# NOINLINE glBindSamplersFunPtr #-}
+
+-- | Usage: @'glBindTextures' first count textures@
+--
+-- The length of @textures@ should be @count@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBindTextures.xhtml>
+
+
+glBindTextures :: MonadIO m => GLuint -> GLsizei -> Ptr GLuint -> m ()
+glBindTextures = ffiuintsizeiPtruintIOV glBindTexturesFunPtr
+
+glBindTexturesFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLuint -> IO ())
+glBindTexturesFunPtr = unsafePerformIO (getProcAddress "glBindTextures")
+
+{-# NOINLINE glBindTexturesFunPtr #-}
+
+-- | Usage: @'glBindVertexBuffers' first count buffers offsets strides@
+--
+-- The length of @buffers@ should be @count@.
+--
+-- The length of @offsets@ should be @count@.
+--
+-- The length of @strides@ should be @count@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBindVertexBuffers.xhtml>
+
+
+glBindVertexBuffers :: MonadIO m => GLuint -> GLsizei -> Ptr GLuint -> Ptr GLintptr -> Ptr GLsizei -> m ()
+glBindVertexBuffers = ffiuintsizeiPtruintPtrintptrPtrsizeiIOV glBindVertexBuffersFunPtr
+
+glBindVertexBuffersFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLuint -> Ptr GLintptr -> Ptr GLsizei -> IO ())
+glBindVertexBuffersFunPtr = unsafePerformIO (getProcAddress "glBindVertexBuffers")
+
+{-# NOINLINE glBindVertexBuffersFunPtr #-}
+
+-- | Usage: @'glMultiDrawArraysIndirect' mode indirect drawcount stride@
+--
+-- The length of @indirect@ should be @COMPSIZE(drawcount,stride)@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glMultiDrawArraysIndirect.xhtml>
+
+
+glMultiDrawArraysIndirect :: MonadIO m => GLenum -> Ptr () -> GLsizei -> GLsizei -> m ()
+glMultiDrawArraysIndirect = ffienumPtrVsizeisizeiIOV glMultiDrawArraysIndirectFunPtr
+
+glMultiDrawArraysIndirectFunPtr :: FunPtr (GLenum -> Ptr () -> GLsizei -> GLsizei -> IO ())
+glMultiDrawArraysIndirectFunPtr = unsafePerformIO (getProcAddress "glMultiDrawArraysIndirect")
+
+{-# NOINLINE glMultiDrawArraysIndirectFunPtr #-}
+
+-- | Usage: @'glMultiDrawElementsIndirect' mode type indirect drawcount stride@
+--
+-- The length of @indirect@ should be @COMPSIZE(drawcount,stride)@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glMultiDrawElementsIndirect.xhtml>
+
+
+glMultiDrawElementsIndirect :: MonadIO m => GLenum -> GLenum -> Ptr () -> GLsizei -> GLsizei -> m ()
+glMultiDrawElementsIndirect = ffienumenumPtrVsizeisizeiIOV glMultiDrawElementsIndirectFunPtr
+
+glMultiDrawElementsIndirectFunPtr :: FunPtr (GLenum -> GLenum -> Ptr () -> GLsizei -> GLsizei -> IO ())
+glMultiDrawElementsIndirectFunPtr = unsafePerformIO (getProcAddress "glMultiDrawElementsIndirect")
+
+{-# NOINLINE glMultiDrawElementsIndirectFunPtr #-}
+
+pattern GL_SAMPLES_ARB = 0x80A9
+
+pattern GL_TEXTURE0_ARB = 0x84C0
+
+pattern GL_TEXTURE1_ARB = 0x84C1
+
+pattern GL_ANY_SAMPLES_PASSED = 0x8C2F
+
+-- | Usage: @'glGetProgramInterfaceiv' program programInterface pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetProgramInterfaceiv :: MonadIO m => GLuint -> GLenum -> GLenum -> Ptr GLint -> m ()
+glGetProgramInterfaceiv = ffiuintenumenumPtrintIOV glGetProgramInterfaceivFunPtr
+
+glGetProgramInterfaceivFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> Ptr GLint -> IO ())
+glGetProgramInterfaceivFunPtr = unsafePerformIO (getProcAddress "glGetProgramInterfaceiv")
+
+{-# NOINLINE glGetProgramInterfaceivFunPtr #-}
+
+-- | Usage: @'glGetProgramResourceIndex' program programInterface name@
+--
+-- The length of @name@ should be @COMPSIZE(name)@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetProgramResourceIndex.xhtml>
+
+
+glGetProgramResourceIndex :: MonadIO m => GLuint -> GLenum -> Ptr GLchar -> m GLuint
+glGetProgramResourceIndex = ffiuintenumPtrcharIOuint glGetProgramResourceIndexFunPtr
+
+glGetProgramResourceIndexFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLchar -> IO GLuint)
+glGetProgramResourceIndexFunPtr = unsafePerformIO (getProcAddress "glGetProgramResourceIndex")
+
+{-# NOINLINE glGetProgramResourceIndexFunPtr #-}
+
+-- | Usage: @'glGetProgramResourceLocation' program programInterface name@
+--
+-- The length of @name@ should be @COMPSIZE(name)@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetProgramResourceLocation.xhtml>
+
+
+glGetProgramResourceLocation :: MonadIO m => GLuint -> GLenum -> Ptr GLchar -> m GLint
+glGetProgramResourceLocation = ffiuintenumPtrcharIOint glGetProgramResourceLocationFunPtr
+
+glGetProgramResourceLocationFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLchar -> IO GLint)
+glGetProgramResourceLocationFunPtr = unsafePerformIO (getProcAddress "glGetProgramResourceLocation")
+
+{-# NOINLINE glGetProgramResourceLocationFunPtr #-}
+
+-- | Usage: @'glGetProgramResourceLocationIndex' program programInterface name@
+--
+-- The length of @name@ should be @COMPSIZE(name)@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetProgramResourceLocationIndex.xhtml>
+
+
+glGetProgramResourceLocationIndex :: MonadIO m => GLuint -> GLenum -> Ptr GLchar -> m GLint
+glGetProgramResourceLocationIndex = ffiuintenumPtrcharIOint glGetProgramResourceLocationIndexFunPtr
+
+glGetProgramResourceLocationIndexFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLchar -> IO GLint)
+glGetProgramResourceLocationIndexFunPtr = unsafePerformIO (getProcAddress "glGetProgramResourceLocationIndex")
+
+{-# NOINLINE glGetProgramResourceLocationIndexFunPtr #-}
+
+-- | Usage: @'glGetProgramResourceName' program programInterface index bufSize length name@
+--
+-- The length of @length@ should be @1@.
+--
+-- The length of @name@ should be @bufSize@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetProgramResourceName.xhtml>
+
+
+glGetProgramResourceName :: MonadIO m => GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
+glGetProgramResourceName = ffiuintenumuintsizeiPtrsizeiPtrcharIOV glGetProgramResourceNameFunPtr
+
+glGetProgramResourceNameFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
+glGetProgramResourceNameFunPtr = unsafePerformIO (getProcAddress "glGetProgramResourceName")
+
+{-# NOINLINE glGetProgramResourceNameFunPtr #-}
+
+-- | Usage: @'glGetProgramResourceiv' program programInterface index propCount props bufSize length params@
+--
+-- The length of @props@ should be @propCount@.
+--
+-- The length of @length@ should be @1@.
+--
+-- The length of @params@ should be @bufSize@.
+
+
+glGetProgramResourceiv :: MonadIO m => GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLint -> m ()
+glGetProgramResourceiv = ffiuintenumuintsizeiPtrenumsizeiPtrsizeiPtrintIOV glGetProgramResourceivFunPtr
+
+glGetProgramResourceivFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLint -> IO ())
+glGetProgramResourceivFunPtr = unsafePerformIO (getProcAddress "glGetProgramResourceiv")
+
+{-# NOINLINE glGetProgramResourceivFunPtr #-}
+
+pattern GL_ACTIVE_RESOURCES = 0x92F5
+
+pattern GL_ACTIVE_VARIABLES = 0x9305
+
+pattern GL_ARRAY_SIZE = 0x92FB
+
+pattern GL_ARRAY_STRIDE = 0x92FE
+
+pattern GL_ATOMIC_COUNTER_BUFFER = 0x92C0
+
+pattern GL_ATOMIC_COUNTER_BUFFER_INDEX = 0x9301
+
+pattern GL_BLOCK_INDEX = 0x92FD
+
+pattern GL_BUFFER_BINDING = 0x9302
+
+pattern GL_BUFFER_DATA_SIZE = 0x9303
+
+pattern GL_BUFFER_VARIABLE = 0x92E5
+
+pattern GL_COMPATIBLE_SUBROUTINES = 0x8E4B
+
+pattern GL_COMPUTE_SUBROUTINE = 0x92ED
+
+pattern GL_COMPUTE_SUBROUTINE_UNIFORM = 0x92F3
+
+pattern GL_FRAGMENT_SUBROUTINE = 0x92EC
+
+pattern GL_FRAGMENT_SUBROUTINE_UNIFORM = 0x92F2
+
+pattern GL_GEOMETRY_SUBROUTINE = 0x92EB
+
+pattern GL_GEOMETRY_SUBROUTINE_UNIFORM = 0x92F1
+
+pattern GL_IS_PER_PATCH = 0x92E7
+
+pattern GL_IS_ROW_MAJOR = 0x9300
+
+pattern GL_LOCATION = 0x930E
+
+pattern GL_LOCATION_INDEX = 0x930F
+
+pattern GL_MATRIX_STRIDE = 0x92FF
+
+pattern GL_MAX_NAME_LENGTH = 0x92F6
+
+pattern GL_MAX_NUM_ACTIVE_VARIABLES = 0x92F7
+
+pattern GL_MAX_NUM_COMPATIBLE_SUBROUTINES = 0x92F8
+
+pattern GL_NAME_LENGTH = 0x92F9
+
+pattern GL_NUM_ACTIVE_VARIABLES = 0x9304
+
+pattern GL_NUM_COMPATIBLE_SUBROUTINES = 0x8E4A
+
+pattern GL_OFFSET = 0x92FC
+
+pattern GL_PROGRAM_INPUT = 0x92E3
+
+pattern GL_PROGRAM_OUTPUT = 0x92E4
+
+pattern GL_REFERENCED_BY_COMPUTE_SHADER = 0x930B
+
+pattern GL_REFERENCED_BY_FRAGMENT_SHADER = 0x930A
+
+pattern GL_REFERENCED_BY_GEOMETRY_SHADER = 0x9309
+
+pattern GL_REFERENCED_BY_TESS_CONTROL_SHADER = 0x9307
+
+pattern GL_REFERENCED_BY_TESS_EVALUATION_SHADER = 0x9308
+
+pattern GL_REFERENCED_BY_VERTEX_SHADER = 0x9306
+
+pattern GL_SHADER_STORAGE_BLOCK = 0x92E6
+
+pattern GL_TESS_CONTROL_SUBROUTINE = 0x92E9
+
+pattern GL_TESS_CONTROL_SUBROUTINE_UNIFORM = 0x92EF
+
+pattern GL_TESS_EVALUATION_SUBROUTINE = 0x92EA
+
+pattern GL_TESS_EVALUATION_SUBROUTINE_UNIFORM = 0x92F0
+
+pattern GL_TOP_LEVEL_ARRAY_SIZE = 0x930C
+
+pattern GL_TOP_LEVEL_ARRAY_STRIDE = 0x930D
+
+pattern GL_TRANSFORM_FEEDBACK_VARYING = 0x92F4
+
+pattern GL_TYPE = 0x92FA
+
+pattern GL_UNIFORM = 0x92E1
+
+pattern GL_UNIFORM_BLOCK = 0x92E2
+
+pattern GL_VERTEX_SUBROUTINE = 0x92E8
+
+pattern GL_VERTEX_SUBROUTINE_UNIFORM = 0x92EE
+
+-- | Usage: @'glProvokingVertex' mode@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glProvokingVertex.xhtml>
+
+
+glProvokingVertex :: MonadIO m => GLenum -> m ()
+glProvokingVertex = ffienumIOV glProvokingVertexFunPtr
+
+glProvokingVertexFunPtr :: FunPtr (GLenum -> IO ())
+glProvokingVertexFunPtr = unsafePerformIO (getProcAddress "glProvokingVertex")
+
+{-# NOINLINE glProvokingVertexFunPtr #-}
+
+pattern GL_FIRST_VERTEX_CONVENTION = 0x8E4D
+
+pattern GL_LAST_VERTEX_CONVENTION = 0x8E4E
+
+pattern GL_PROVOKING_VERTEX = 0x8E4F
+
+pattern GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION = 0x8E4C
+
+pattern GL_QUERY_BUFFER = 0x9192
+
+pattern GL_QUERY_BUFFER_BARRIER_BIT = 0x00008000
+
+pattern GL_QUERY_BUFFER_BINDING = 0x9193
+
+pattern GL_QUERY_RESULT_NO_WAIT = 0x9194
+
+pattern GL_NO_ERROR = 0
+
+-- | Usage: @'glBindSampler' unit sampler@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBindSampler.xhtml>
+
+
+glBindSampler :: MonadIO m => GLuint -> GLuint -> m ()
+glBindSampler = ffiuintuintIOV glBindSamplerFunPtr
+
+glBindSamplerFunPtr :: FunPtr (GLuint -> GLuint -> IO ())
+glBindSamplerFunPtr = unsafePerformIO (getProcAddress "glBindSampler")
+
+{-# NOINLINE glBindSamplerFunPtr #-}
+
+-- | Usage: @'glDeleteSamplers' count samplers@
+--
+-- The length of @samplers@ should be @count@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDeleteSamplers.xhtml>
+
+
+glDeleteSamplers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glDeleteSamplers = ffisizeiPtruintIOV glDeleteSamplersFunPtr
+
+glDeleteSamplersFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glDeleteSamplersFunPtr = unsafePerformIO (getProcAddress "glDeleteSamplers")
+
+{-# NOINLINE glDeleteSamplersFunPtr #-}
+
+-- | Usage: @'glGenSamplers' count samplers@
+--
+-- The length of @samplers@ should be @count@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGenSamplers.xhtml>
+
+
+glGenSamplers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glGenSamplers = ffisizeiPtruintIOV glGenSamplersFunPtr
+
+glGenSamplersFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glGenSamplersFunPtr = unsafePerformIO (getProcAddress "glGenSamplers")
+
+{-# NOINLINE glGenSamplersFunPtr #-}
+
+-- | Usage: @'glGetSamplerParameterIiv' sampler pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetSamplerParameterIiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
+glGetSamplerParameterIiv = ffiuintenumPtrintIOV glGetSamplerParameterIivFunPtr
+
+glGetSamplerParameterIivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+glGetSamplerParameterIivFunPtr = unsafePerformIO (getProcAddress "glGetSamplerParameterIiv")
+
+{-# NOINLINE glGetSamplerParameterIivFunPtr #-}
+
+-- | Usage: @'glGetSamplerParameterIuiv' sampler pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetSamplerParameterIuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()
+glGetSamplerParameterIuiv = ffiuintenumPtruintIOV glGetSamplerParameterIuivFunPtr
+
+glGetSamplerParameterIuivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLuint -> IO ())
+glGetSamplerParameterIuivFunPtr = unsafePerformIO (getProcAddress "glGetSamplerParameterIuiv")
+
+{-# NOINLINE glGetSamplerParameterIuivFunPtr #-}
+
+-- | Usage: @'glGetSamplerParameterfv' sampler pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetSamplerParameterfv :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()
+glGetSamplerParameterfv = ffiuintenumPtrfloatIOV glGetSamplerParameterfvFunPtr
+
+glGetSamplerParameterfvFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLfloat -> IO ())
+glGetSamplerParameterfvFunPtr = unsafePerformIO (getProcAddress "glGetSamplerParameterfv")
+
+{-# NOINLINE glGetSamplerParameterfvFunPtr #-}
+
+-- | Usage: @'glGetSamplerParameteriv' sampler pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetSamplerParameteriv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
+glGetSamplerParameteriv = ffiuintenumPtrintIOV glGetSamplerParameterivFunPtr
+
+glGetSamplerParameterivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+glGetSamplerParameterivFunPtr = unsafePerformIO (getProcAddress "glGetSamplerParameteriv")
+
+{-# NOINLINE glGetSamplerParameterivFunPtr #-}
+
+-- | Usage: @'glIsSampler' sampler@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glIsSampler.xhtml>
+
+
+glIsSampler :: MonadIO m => GLuint -> m GLboolean
+glIsSampler = ffiuintIOboolean glIsSamplerFunPtr
+
+glIsSamplerFunPtr :: FunPtr (GLuint -> IO GLboolean)
+glIsSamplerFunPtr = unsafePerformIO (getProcAddress "glIsSampler")
+
+{-# NOINLINE glIsSamplerFunPtr #-}
+
+-- | Usage: @'glSamplerParameterIiv' sampler pname param@
+--
+-- The length of @param@ should be @COMPSIZE(pname)@.
+
+
+glSamplerParameterIiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
+glSamplerParameterIiv = ffiuintenumPtrintIOV glSamplerParameterIivFunPtr
+
+glSamplerParameterIivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+glSamplerParameterIivFunPtr = unsafePerformIO (getProcAddress "glSamplerParameterIiv")
+
+{-# NOINLINE glSamplerParameterIivFunPtr #-}
+
+-- | Usage: @'glSamplerParameterIuiv' sampler pname param@
+--
+-- The length of @param@ should be @COMPSIZE(pname)@.
+
+
+glSamplerParameterIuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()
+glSamplerParameterIuiv = ffiuintenumPtruintIOV glSamplerParameterIuivFunPtr
+
+glSamplerParameterIuivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLuint -> IO ())
+glSamplerParameterIuivFunPtr = unsafePerformIO (getProcAddress "glSamplerParameterIuiv")
+
+{-# NOINLINE glSamplerParameterIuivFunPtr #-}
+
+-- | Usage: @'glSamplerParameterf' sampler pname param@
+
+
+glSamplerParameterf :: MonadIO m => GLuint -> GLenum -> GLfloat -> m ()
+glSamplerParameterf = ffiuintenumfloatIOV glSamplerParameterfFunPtr
+
+glSamplerParameterfFunPtr :: FunPtr (GLuint -> GLenum -> GLfloat -> IO ())
+glSamplerParameterfFunPtr = unsafePerformIO (getProcAddress "glSamplerParameterf")
+
+{-# NOINLINE glSamplerParameterfFunPtr #-}
+
+-- | Usage: @'glSamplerParameterfv' sampler pname param@
+--
+-- The length of @param@ should be @COMPSIZE(pname)@.
+
+
+glSamplerParameterfv :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()
+glSamplerParameterfv = ffiuintenumPtrfloatIOV glSamplerParameterfvFunPtr
+
+glSamplerParameterfvFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLfloat -> IO ())
+glSamplerParameterfvFunPtr = unsafePerformIO (getProcAddress "glSamplerParameterfv")
+
+{-# NOINLINE glSamplerParameterfvFunPtr #-}
+
+-- | Usage: @'glSamplerParameteri' sampler pname param@
+
+
+glSamplerParameteri :: MonadIO m => GLuint -> GLenum -> GLint -> m ()
+glSamplerParameteri = ffiuintenumintIOV glSamplerParameteriFunPtr
+
+glSamplerParameteriFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> IO ())
+glSamplerParameteriFunPtr = unsafePerformIO (getProcAddress "glSamplerParameteri")
+
+{-# NOINLINE glSamplerParameteriFunPtr #-}
+
+-- | Usage: @'glSamplerParameteriv' sampler pname param@
+--
+-- The length of @param@ should be @COMPSIZE(pname)@.
+
+
+glSamplerParameteriv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
+glSamplerParameteriv = ffiuintenumPtrintIOV glSamplerParameterivFunPtr
+
+glSamplerParameterivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+glSamplerParameterivFunPtr = unsafePerformIO (getProcAddress "glSamplerParameteriv")
+
+{-# NOINLINE glSamplerParameterivFunPtr #-}
+
+pattern GL_SAMPLER_BINDING = 0x8919
+
+-- | Usage: @'glActiveShaderProgram' pipeline program@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glActiveShaderProgram.xhtml>
+
+
+glActiveShaderProgram :: MonadIO m => GLuint -> GLuint -> m ()
+glActiveShaderProgram = ffiuintuintIOV glActiveShaderProgramFunPtr
+
+glActiveShaderProgramFunPtr :: FunPtr (GLuint -> GLuint -> IO ())
+glActiveShaderProgramFunPtr = unsafePerformIO (getProcAddress "glActiveShaderProgram")
+
+{-# NOINLINE glActiveShaderProgramFunPtr #-}
+
+-- | Usage: @'glBindProgramPipeline' pipeline@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBindProgramPipeline.xhtml>
+
+
+glBindProgramPipeline :: MonadIO m => GLuint -> m ()
+glBindProgramPipeline = ffiuintIOV glBindProgramPipelineFunPtr
+
+glBindProgramPipelineFunPtr :: FunPtr (GLuint -> IO ())
+glBindProgramPipelineFunPtr = unsafePerformIO (getProcAddress "glBindProgramPipeline")
+
+{-# NOINLINE glBindProgramPipelineFunPtr #-}
+
+-- | Usage: @'glCreateShaderProgramv' type count strings@
+--
+-- The length of @strings@ should be @count@.
+
+
+glCreateShaderProgramv :: MonadIO m => GLenum -> GLsizei -> Ptr (Ptr GLchar) -> m GLuint
+glCreateShaderProgramv = ffienumsizeiPtrPtrcharIOuint glCreateShaderProgramvFunPtr
+
+glCreateShaderProgramvFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr (Ptr GLchar) -> IO GLuint)
+glCreateShaderProgramvFunPtr = unsafePerformIO (getProcAddress "glCreateShaderProgramv")
+
+{-# NOINLINE glCreateShaderProgramvFunPtr #-}
+
+-- | Usage: @'glDeleteProgramPipelines' n pipelines@
+--
+-- The length of @pipelines@ should be @n@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDeleteProgramPipelines.xhtml>
+
+
+glDeleteProgramPipelines :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glDeleteProgramPipelines = ffisizeiPtruintIOV glDeleteProgramPipelinesFunPtr
+
+glDeleteProgramPipelinesFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glDeleteProgramPipelinesFunPtr = unsafePerformIO (getProcAddress "glDeleteProgramPipelines")
+
+{-# NOINLINE glDeleteProgramPipelinesFunPtr #-}
+
+-- | Usage: @'glGenProgramPipelines' n pipelines@
+--
+-- The length of @pipelines@ should be @n@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGenProgramPipelines.xhtml>
+
+
+glGenProgramPipelines :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glGenProgramPipelines = ffisizeiPtruintIOV glGenProgramPipelinesFunPtr
+
+glGenProgramPipelinesFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glGenProgramPipelinesFunPtr = unsafePerformIO (getProcAddress "glGenProgramPipelines")
+
+{-# NOINLINE glGenProgramPipelinesFunPtr #-}
+
+-- | Usage: @'glGetProgramPipelineInfoLog' pipeline bufSize length infoLog@
+--
+-- The length of @length@ should be @1@.
+--
+-- The length of @infoLog@ should be @bufSize@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetProgramPipelineInfoLog.xhtml>
+
+
+glGetProgramPipelineInfoLog :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
+glGetProgramPipelineInfoLog = ffiuintsizeiPtrsizeiPtrcharIOV glGetProgramPipelineInfoLogFunPtr
+
+glGetProgramPipelineInfoLogFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
+glGetProgramPipelineInfoLogFunPtr = unsafePerformIO (getProcAddress "glGetProgramPipelineInfoLog")
+
+{-# NOINLINE glGetProgramPipelineInfoLogFunPtr #-}
+
+-- | Usage: @'glGetProgramPipelineiv' pipeline pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetProgramPipelineiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
+glGetProgramPipelineiv = ffiuintenumPtrintIOV glGetProgramPipelineivFunPtr
+
+glGetProgramPipelineivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+glGetProgramPipelineivFunPtr = unsafePerformIO (getProcAddress "glGetProgramPipelineiv")
+
+{-# NOINLINE glGetProgramPipelineivFunPtr #-}
+
+-- | Usage: @'glIsProgramPipeline' pipeline@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glIsProgramPipeline.xhtml>
+
+
+glIsProgramPipeline :: MonadIO m => GLuint -> m GLboolean
+glIsProgramPipeline = ffiuintIOboolean glIsProgramPipelineFunPtr
+
+glIsProgramPipelineFunPtr :: FunPtr (GLuint -> IO GLboolean)
+glIsProgramPipelineFunPtr = unsafePerformIO (getProcAddress "glIsProgramPipeline")
+
+{-# NOINLINE glIsProgramPipelineFunPtr #-}
+
+-- | Usage: @'glProgramUniform1d' program location v0@
+
+
+glProgramUniform1d :: MonadIO m => GLuint -> GLint -> GLdouble -> m ()
+glProgramUniform1d = ffiuintintdoubleIOV glProgramUniform1dFunPtr
+
+glProgramUniform1dFunPtr :: FunPtr (GLuint -> GLint -> GLdouble -> IO ())
+glProgramUniform1dFunPtr = unsafePerformIO (getProcAddress "glProgramUniform1d")
+
+{-# NOINLINE glProgramUniform1dFunPtr #-}
+
+-- | Usage: @'glProgramUniform1dv' program location count value@
+--
+-- The length of @value@ should be @1@.
+
+
+glProgramUniform1dv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLdouble -> m ()
+glProgramUniform1dv = ffiuintintsizeiPtrdoubleIOV glProgramUniform1dvFunPtr
+
+glProgramUniform1dvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLdouble -> IO ())
+glProgramUniform1dvFunPtr = unsafePerformIO (getProcAddress "glProgramUniform1dv")
+
+{-# NOINLINE glProgramUniform1dvFunPtr #-}
+
+-- | Usage: @'glProgramUniform1f' program location v0@
+
+
+glProgramUniform1f :: MonadIO m => GLuint -> GLint -> GLfloat -> m ()
+glProgramUniform1f = ffiuintintfloatIOV glProgramUniform1fFunPtr
+
+glProgramUniform1fFunPtr :: FunPtr (GLuint -> GLint -> GLfloat -> IO ())
+glProgramUniform1fFunPtr = unsafePerformIO (getProcAddress "glProgramUniform1f")
+
+{-# NOINLINE glProgramUniform1fFunPtr #-}
+
+-- | Usage: @'glProgramUniform1fv' program location count value@
+--
+-- The length of @value@ should be @1@.
+
+
+glProgramUniform1fv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()
+glProgramUniform1fv = ffiuintintsizeiPtrfloatIOV glProgramUniform1fvFunPtr
+
+glProgramUniform1fvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLfloat -> IO ())
+glProgramUniform1fvFunPtr = unsafePerformIO (getProcAddress "glProgramUniform1fv")
+
+{-# NOINLINE glProgramUniform1fvFunPtr #-}
+
+-- | Usage: @'glProgramUniform1i' program location v0@
+
+
+glProgramUniform1i :: MonadIO m => GLuint -> GLint -> GLint -> m ()
+glProgramUniform1i = ffiuintintintIOV glProgramUniform1iFunPtr
+
+glProgramUniform1iFunPtr :: FunPtr (GLuint -> GLint -> GLint -> IO ())
+glProgramUniform1iFunPtr = unsafePerformIO (getProcAddress "glProgramUniform1i")
+
+{-# NOINLINE glProgramUniform1iFunPtr #-}
+
+-- | Usage: @'glProgramUniform1iv' program location count value@
+--
+-- The length of @value@ should be @1@.
+
+
+glProgramUniform1iv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()
+glProgramUniform1iv = ffiuintintsizeiPtrintIOV glProgramUniform1ivFunPtr
+
+glProgramUniform1ivFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint -> IO ())
+glProgramUniform1ivFunPtr = unsafePerformIO (getProcAddress "glProgramUniform1iv")
+
+{-# NOINLINE glProgramUniform1ivFunPtr #-}
+
+-- | Usage: @'glProgramUniform1ui' program location v0@
+
+
+glProgramUniform1ui :: MonadIO m => GLuint -> GLint -> GLuint -> m ()
+glProgramUniform1ui = ffiuintintuintIOV glProgramUniform1uiFunPtr
+
+glProgramUniform1uiFunPtr :: FunPtr (GLuint -> GLint -> GLuint -> IO ())
+glProgramUniform1uiFunPtr = unsafePerformIO (getProcAddress "glProgramUniform1ui")
+
+{-# NOINLINE glProgramUniform1uiFunPtr #-}
+
+-- | Usage: @'glProgramUniform1uiv' program location count value@
+--
+-- The length of @value@ should be @1@.
+
+
+glProgramUniform1uiv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()
+glProgramUniform1uiv = ffiuintintsizeiPtruintIOV glProgramUniform1uivFunPtr
+
+glProgramUniform1uivFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint -> IO ())
+glProgramUniform1uivFunPtr = unsafePerformIO (getProcAddress "glProgramUniform1uiv")
+
+{-# NOINLINE glProgramUniform1uivFunPtr #-}
+
+-- | Usage: @'glProgramUniform2d' program location v0 v1@
+
+
+glProgramUniform2d :: MonadIO m => GLuint -> GLint -> GLdouble -> GLdouble -> m ()
+glProgramUniform2d = ffiuintintdoubledoubleIOV glProgramUniform2dFunPtr
+
+glProgramUniform2dFunPtr :: FunPtr (GLuint -> GLint -> GLdouble -> GLdouble -> IO ())
+glProgramUniform2dFunPtr = unsafePerformIO (getProcAddress "glProgramUniform2d")
+
+{-# NOINLINE glProgramUniform2dFunPtr #-}
+
+-- | Usage: @'glProgramUniform2dv' program location count value@
+--
+-- The length of @value@ should be @2@.
+
+
+glProgramUniform2dv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLdouble -> m ()
+glProgramUniform2dv = ffiuintintsizeiPtrdoubleIOV glProgramUniform2dvFunPtr
+
+glProgramUniform2dvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLdouble -> IO ())
+glProgramUniform2dvFunPtr = unsafePerformIO (getProcAddress "glProgramUniform2dv")
+
+{-# NOINLINE glProgramUniform2dvFunPtr #-}
+
+-- | Usage: @'glProgramUniform2f' program location v0 v1@
+
+
+glProgramUniform2f :: MonadIO m => GLuint -> GLint -> GLfloat -> GLfloat -> m ()
+glProgramUniform2f = ffiuintintfloatfloatIOV glProgramUniform2fFunPtr
+
+glProgramUniform2fFunPtr :: FunPtr (GLuint -> GLint -> GLfloat -> GLfloat -> IO ())
+glProgramUniform2fFunPtr = unsafePerformIO (getProcAddress "glProgramUniform2f")
+
+{-# NOINLINE glProgramUniform2fFunPtr #-}
+
+-- | Usage: @'glProgramUniform2fv' program location count value@
+--
+-- The length of @value@ should be @2@.
+
+
+glProgramUniform2fv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()
+glProgramUniform2fv = ffiuintintsizeiPtrfloatIOV glProgramUniform2fvFunPtr
+
+glProgramUniform2fvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLfloat -> IO ())
+glProgramUniform2fvFunPtr = unsafePerformIO (getProcAddress "glProgramUniform2fv")
+
+{-# NOINLINE glProgramUniform2fvFunPtr #-}
+
+-- | Usage: @'glProgramUniform2i' program location v0 v1@
+
+
+glProgramUniform2i :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> m ()
+glProgramUniform2i = ffiuintintintintIOV glProgramUniform2iFunPtr
+
+glProgramUniform2iFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> IO ())
+glProgramUniform2iFunPtr = unsafePerformIO (getProcAddress "glProgramUniform2i")
+
+{-# NOINLINE glProgramUniform2iFunPtr #-}
+
+-- | Usage: @'glProgramUniform2iv' program location count value@
+--
+-- The length of @value@ should be @2@.
+
+
+glProgramUniform2iv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()
+glProgramUniform2iv = ffiuintintsizeiPtrintIOV glProgramUniform2ivFunPtr
+
+glProgramUniform2ivFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint -> IO ())
+glProgramUniform2ivFunPtr = unsafePerformIO (getProcAddress "glProgramUniform2iv")
+
+{-# NOINLINE glProgramUniform2ivFunPtr #-}
+
+-- | Usage: @'glProgramUniform2ui' program location v0 v1@
+
+
+glProgramUniform2ui :: MonadIO m => GLuint -> GLint -> GLuint -> GLuint -> m ()
+glProgramUniform2ui = ffiuintintuintuintIOV glProgramUniform2uiFunPtr
+
+glProgramUniform2uiFunPtr :: FunPtr (GLuint -> GLint -> GLuint -> GLuint -> IO ())
+glProgramUniform2uiFunPtr = unsafePerformIO (getProcAddress "glProgramUniform2ui")
+
+{-# NOINLINE glProgramUniform2uiFunPtr #-}
+
+-- | Usage: @'glProgramUniform2uiv' program location count value@
+--
+-- The length of @value@ should be @2@.
+
+
+glProgramUniform2uiv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()
+glProgramUniform2uiv = ffiuintintsizeiPtruintIOV glProgramUniform2uivFunPtr
+
+glProgramUniform2uivFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint -> IO ())
+glProgramUniform2uivFunPtr = unsafePerformIO (getProcAddress "glProgramUniform2uiv")
+
+{-# NOINLINE glProgramUniform2uivFunPtr #-}
+
+-- | Usage: @'glProgramUniform3d' program location v0 v1 v2@
+
+
+glProgramUniform3d :: MonadIO m => GLuint -> GLint -> GLdouble -> GLdouble -> GLdouble -> m ()
+glProgramUniform3d = ffiuintintdoubledoubledoubleIOV glProgramUniform3dFunPtr
+
+glProgramUniform3dFunPtr :: FunPtr (GLuint -> GLint -> GLdouble -> GLdouble -> GLdouble -> IO ())
+glProgramUniform3dFunPtr = unsafePerformIO (getProcAddress "glProgramUniform3d")
+
+{-# NOINLINE glProgramUniform3dFunPtr #-}
+
+-- | Usage: @'glProgramUniform3dv' program location count value@
+--
+-- The length of @value@ should be @3@.
+
+
+glProgramUniform3dv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLdouble -> m ()
+glProgramUniform3dv = ffiuintintsizeiPtrdoubleIOV glProgramUniform3dvFunPtr
+
+glProgramUniform3dvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLdouble -> IO ())
+glProgramUniform3dvFunPtr = unsafePerformIO (getProcAddress "glProgramUniform3dv")
+
+{-# NOINLINE glProgramUniform3dvFunPtr #-}
+
+-- | Usage: @'glProgramUniform3f' program location v0 v1 v2@
+
+
+glProgramUniform3f :: MonadIO m => GLuint -> GLint -> GLfloat -> GLfloat -> GLfloat -> m ()
+glProgramUniform3f = ffiuintintfloatfloatfloatIOV glProgramUniform3fFunPtr
+
+glProgramUniform3fFunPtr :: FunPtr (GLuint -> GLint -> GLfloat -> GLfloat -> GLfloat -> IO ())
+glProgramUniform3fFunPtr = unsafePerformIO (getProcAddress "glProgramUniform3f")
+
+{-# NOINLINE glProgramUniform3fFunPtr #-}
+
+-- | Usage: @'glProgramUniform3fv' program location count value@
+--
+-- The length of @value@ should be @3@.
+
+
+glProgramUniform3fv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()
+glProgramUniform3fv = ffiuintintsizeiPtrfloatIOV glProgramUniform3fvFunPtr
+
+glProgramUniform3fvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLfloat -> IO ())
+glProgramUniform3fvFunPtr = unsafePerformIO (getProcAddress "glProgramUniform3fv")
+
+{-# NOINLINE glProgramUniform3fvFunPtr #-}
+
+-- | Usage: @'glProgramUniform3i' program location v0 v1 v2@
+
+
+glProgramUniform3i :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> m ()
+glProgramUniform3i = ffiuintintintintintIOV glProgramUniform3iFunPtr
+
+glProgramUniform3iFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> IO ())
+glProgramUniform3iFunPtr = unsafePerformIO (getProcAddress "glProgramUniform3i")
+
+{-# NOINLINE glProgramUniform3iFunPtr #-}
+
+-- | Usage: @'glProgramUniform3iv' program location count value@
+--
+-- The length of @value@ should be @3@.
+
+
+glProgramUniform3iv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()
+glProgramUniform3iv = ffiuintintsizeiPtrintIOV glProgramUniform3ivFunPtr
+
+glProgramUniform3ivFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint -> IO ())
+glProgramUniform3ivFunPtr = unsafePerformIO (getProcAddress "glProgramUniform3iv")
+
+{-# NOINLINE glProgramUniform3ivFunPtr #-}
+
+-- | Usage: @'glProgramUniform3ui' program location v0 v1 v2@
+
+
+glProgramUniform3ui :: MonadIO m => GLuint -> GLint -> GLuint -> GLuint -> GLuint -> m ()
+glProgramUniform3ui = ffiuintintuintuintuintIOV glProgramUniform3uiFunPtr
+
+glProgramUniform3uiFunPtr :: FunPtr (GLuint -> GLint -> GLuint -> GLuint -> GLuint -> IO ())
+glProgramUniform3uiFunPtr = unsafePerformIO (getProcAddress "glProgramUniform3ui")
+
+{-# NOINLINE glProgramUniform3uiFunPtr #-}
+
+-- | Usage: @'glProgramUniform3uiv' program location count value@
+--
+-- The length of @value@ should be @3@.
+
+
+glProgramUniform3uiv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()
+glProgramUniform3uiv = ffiuintintsizeiPtruintIOV glProgramUniform3uivFunPtr
+
+glProgramUniform3uivFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint -> IO ())
+glProgramUniform3uivFunPtr = unsafePerformIO (getProcAddress "glProgramUniform3uiv")
+
+{-# NOINLINE glProgramUniform3uivFunPtr #-}
+
+-- | Usage: @'glProgramUniform4d' program location v0 v1 v2 v3@
+
+
+glProgramUniform4d :: MonadIO m => GLuint -> GLint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
+glProgramUniform4d = ffiuintintdoubledoubledoubledoubleIOV glProgramUniform4dFunPtr
+
+glProgramUniform4dFunPtr :: FunPtr (GLuint -> GLint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
+glProgramUniform4dFunPtr = unsafePerformIO (getProcAddress "glProgramUniform4d")
+
+{-# NOINLINE glProgramUniform4dFunPtr #-}
+
+-- | Usage: @'glProgramUniform4dv' program location count value@
+--
+-- The length of @value@ should be @4@.
+
+
+glProgramUniform4dv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLdouble -> m ()
+glProgramUniform4dv = ffiuintintsizeiPtrdoubleIOV glProgramUniform4dvFunPtr
+
+glProgramUniform4dvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLdouble -> IO ())
+glProgramUniform4dvFunPtr = unsafePerformIO (getProcAddress "glProgramUniform4dv")
+
+{-# NOINLINE glProgramUniform4dvFunPtr #-}
+
+-- | Usage: @'glProgramUniform4f' program location v0 v1 v2 v3@
+
+
+glProgramUniform4f :: MonadIO m => GLuint -> GLint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
+glProgramUniform4f = ffiuintintfloatfloatfloatfloatIOV glProgramUniform4fFunPtr
+
+glProgramUniform4fFunPtr :: FunPtr (GLuint -> GLint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+glProgramUniform4fFunPtr = unsafePerformIO (getProcAddress "glProgramUniform4f")
+
+{-# NOINLINE glProgramUniform4fFunPtr #-}
+
+-- | Usage: @'glProgramUniform4fv' program location count value@
+--
+-- The length of @value@ should be @4@.
+
+
+glProgramUniform4fv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()
+glProgramUniform4fv = ffiuintintsizeiPtrfloatIOV glProgramUniform4fvFunPtr
+
+glProgramUniform4fvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLfloat -> IO ())
+glProgramUniform4fvFunPtr = unsafePerformIO (getProcAddress "glProgramUniform4fv")
+
+{-# NOINLINE glProgramUniform4fvFunPtr #-}
+
+-- | Usage: @'glProgramUniform4i' program location v0 v1 v2 v3@
+
+
+glProgramUniform4i :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> m ()
+glProgramUniform4i = ffiuintintintintintintIOV glProgramUniform4iFunPtr
+
+glProgramUniform4iFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> IO ())
+glProgramUniform4iFunPtr = unsafePerformIO (getProcAddress "glProgramUniform4i")
+
+{-# NOINLINE glProgramUniform4iFunPtr #-}
+
+-- | Usage: @'glProgramUniform4iv' program location count value@
+--
+-- The length of @value@ should be @4@.
+
+
+glProgramUniform4iv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()
+glProgramUniform4iv = ffiuintintsizeiPtrintIOV glProgramUniform4ivFunPtr
+
+glProgramUniform4ivFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint -> IO ())
+glProgramUniform4ivFunPtr = unsafePerformIO (getProcAddress "glProgramUniform4iv")
+
+{-# NOINLINE glProgramUniform4ivFunPtr #-}
+
+-- | Usage: @'glProgramUniform4ui' program location v0 v1 v2 v3@
+
+
+glProgramUniform4ui :: MonadIO m => GLuint -> GLint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
+glProgramUniform4ui = ffiuintintuintuintuintuintIOV glProgramUniform4uiFunPtr
+
+glProgramUniform4uiFunPtr :: FunPtr (GLuint -> GLint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ())
+glProgramUniform4uiFunPtr = unsafePerformIO (getProcAddress "glProgramUniform4ui")
+
+{-# NOINLINE glProgramUniform4uiFunPtr #-}
+
+-- | Usage: @'glProgramUniform4uiv' program location count value@
+--
+-- The length of @value@ should be @4@.
+
+
+glProgramUniform4uiv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()
+glProgramUniform4uiv = ffiuintintsizeiPtruintIOV glProgramUniform4uivFunPtr
+
+glProgramUniform4uivFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint -> IO ())
+glProgramUniform4uivFunPtr = unsafePerformIO (getProcAddress "glProgramUniform4uiv")
+
+{-# NOINLINE glProgramUniform4uivFunPtr #-}
+
+-- | Usage: @'glProgramUniformMatrix2dv' program location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FALSE', 'Graphics.GL.Raw.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @2@.
+
+
+glProgramUniformMatrix2dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
+glProgramUniformMatrix2dv = ffiuintintsizeibooleanPtrdoubleIOV glProgramUniformMatrix2dvFunPtr
+
+glProgramUniformMatrix2dvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
+glProgramUniformMatrix2dvFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix2dv")
+
+{-# NOINLINE glProgramUniformMatrix2dvFunPtr #-}
+
+-- | Usage: @'glProgramUniformMatrix2fv' program location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FALSE', 'Graphics.GL.Raw.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @2@.
+
+
+glProgramUniformMatrix2fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
+glProgramUniformMatrix2fv = ffiuintintsizeibooleanPtrfloatIOV glProgramUniformMatrix2fvFunPtr
+
+glProgramUniformMatrix2fvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+glProgramUniformMatrix2fvFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix2fv")
+
+{-# NOINLINE glProgramUniformMatrix2fvFunPtr #-}
+
+-- | Usage: @'glProgramUniformMatrix2x3dv' program location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FALSE', 'Graphics.GL.Raw.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count@.
+
+
+glProgramUniformMatrix2x3dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
+glProgramUniformMatrix2x3dv = ffiuintintsizeibooleanPtrdoubleIOV glProgramUniformMatrix2x3dvFunPtr
+
+glProgramUniformMatrix2x3dvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
+glProgramUniformMatrix2x3dvFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix2x3dv")
+
+{-# NOINLINE glProgramUniformMatrix2x3dvFunPtr #-}
+
+-- | Usage: @'glProgramUniformMatrix2x3fv' program location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FALSE', 'Graphics.GL.Raw.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count@.
+
+
+glProgramUniformMatrix2x3fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
+glProgramUniformMatrix2x3fv = ffiuintintsizeibooleanPtrfloatIOV glProgramUniformMatrix2x3fvFunPtr
+
+glProgramUniformMatrix2x3fvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+glProgramUniformMatrix2x3fvFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix2x3fv")
+
+{-# NOINLINE glProgramUniformMatrix2x3fvFunPtr #-}
+
+-- | Usage: @'glProgramUniformMatrix2x4dv' program location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FALSE', 'Graphics.GL.Raw.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count@.
+
+
+glProgramUniformMatrix2x4dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
+glProgramUniformMatrix2x4dv = ffiuintintsizeibooleanPtrdoubleIOV glProgramUniformMatrix2x4dvFunPtr
+
+glProgramUniformMatrix2x4dvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
+glProgramUniformMatrix2x4dvFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix2x4dv")
+
+{-# NOINLINE glProgramUniformMatrix2x4dvFunPtr #-}
+
+-- | Usage: @'glProgramUniformMatrix2x4fv' program location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FALSE', 'Graphics.GL.Raw.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count@.
+
+
+glProgramUniformMatrix2x4fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
+glProgramUniformMatrix2x4fv = ffiuintintsizeibooleanPtrfloatIOV glProgramUniformMatrix2x4fvFunPtr
+
+glProgramUniformMatrix2x4fvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+glProgramUniformMatrix2x4fvFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix2x4fv")
+
+{-# NOINLINE glProgramUniformMatrix2x4fvFunPtr #-}
+
+-- | Usage: @'glProgramUniformMatrix3dv' program location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FALSE', 'Graphics.GL.Raw.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @3@.
+
+
+glProgramUniformMatrix3dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
+glProgramUniformMatrix3dv = ffiuintintsizeibooleanPtrdoubleIOV glProgramUniformMatrix3dvFunPtr
+
+glProgramUniformMatrix3dvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
+glProgramUniformMatrix3dvFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix3dv")
+
+{-# NOINLINE glProgramUniformMatrix3dvFunPtr #-}
+
+-- | Usage: @'glProgramUniformMatrix3fv' program location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FALSE', 'Graphics.GL.Raw.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @3@.
+
+
+glProgramUniformMatrix3fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
+glProgramUniformMatrix3fv = ffiuintintsizeibooleanPtrfloatIOV glProgramUniformMatrix3fvFunPtr
+
+glProgramUniformMatrix3fvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+glProgramUniformMatrix3fvFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix3fv")
+
+{-# NOINLINE glProgramUniformMatrix3fvFunPtr #-}
+
+-- | Usage: @'glProgramUniformMatrix3x2dv' program location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FALSE', 'Graphics.GL.Raw.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count@.
+
+
+glProgramUniformMatrix3x2dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
+glProgramUniformMatrix3x2dv = ffiuintintsizeibooleanPtrdoubleIOV glProgramUniformMatrix3x2dvFunPtr
+
+glProgramUniformMatrix3x2dvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
+glProgramUniformMatrix3x2dvFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix3x2dv")
+
+{-# NOINLINE glProgramUniformMatrix3x2dvFunPtr #-}
+
+-- | Usage: @'glProgramUniformMatrix3x2fv' program location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FALSE', 'Graphics.GL.Raw.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count@.
+
+
+glProgramUniformMatrix3x2fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
+glProgramUniformMatrix3x2fv = ffiuintintsizeibooleanPtrfloatIOV glProgramUniformMatrix3x2fvFunPtr
+
+glProgramUniformMatrix3x2fvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+glProgramUniformMatrix3x2fvFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix3x2fv")
+
+{-# NOINLINE glProgramUniformMatrix3x2fvFunPtr #-}
+
+-- | Usage: @'glProgramUniformMatrix3x4dv' program location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FALSE', 'Graphics.GL.Raw.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count@.
+
+
+glProgramUniformMatrix3x4dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
+glProgramUniformMatrix3x4dv = ffiuintintsizeibooleanPtrdoubleIOV glProgramUniformMatrix3x4dvFunPtr
+
+glProgramUniformMatrix3x4dvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
+glProgramUniformMatrix3x4dvFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix3x4dv")
+
+{-# NOINLINE glProgramUniformMatrix3x4dvFunPtr #-}
+
+-- | Usage: @'glProgramUniformMatrix3x4fv' program location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FALSE', 'Graphics.GL.Raw.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count@.
+
+
+glProgramUniformMatrix3x4fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
+glProgramUniformMatrix3x4fv = ffiuintintsizeibooleanPtrfloatIOV glProgramUniformMatrix3x4fvFunPtr
+
+glProgramUniformMatrix3x4fvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+glProgramUniformMatrix3x4fvFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix3x4fv")
+
+{-# NOINLINE glProgramUniformMatrix3x4fvFunPtr #-}
+
+-- | Usage: @'glProgramUniformMatrix4dv' program location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FALSE', 'Graphics.GL.Raw.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @4@.
+
+
+glProgramUniformMatrix4dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
+glProgramUniformMatrix4dv = ffiuintintsizeibooleanPtrdoubleIOV glProgramUniformMatrix4dvFunPtr
+
+glProgramUniformMatrix4dvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
+glProgramUniformMatrix4dvFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix4dv")
+
+{-# NOINLINE glProgramUniformMatrix4dvFunPtr #-}
+
+-- | Usage: @'glProgramUniformMatrix4fv' program location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FALSE', 'Graphics.GL.Raw.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @4@.
+
+
+glProgramUniformMatrix4fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
+glProgramUniformMatrix4fv = ffiuintintsizeibooleanPtrfloatIOV glProgramUniformMatrix4fvFunPtr
+
+glProgramUniformMatrix4fvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+glProgramUniformMatrix4fvFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix4fv")
+
+{-# NOINLINE glProgramUniformMatrix4fvFunPtr #-}
+
+-- | Usage: @'glProgramUniformMatrix4x2dv' program location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FALSE', 'Graphics.GL.Raw.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count@.
+
+
+glProgramUniformMatrix4x2dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
+glProgramUniformMatrix4x2dv = ffiuintintsizeibooleanPtrdoubleIOV glProgramUniformMatrix4x2dvFunPtr
+
+glProgramUniformMatrix4x2dvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
+glProgramUniformMatrix4x2dvFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix4x2dv")
+
+{-# NOINLINE glProgramUniformMatrix4x2dvFunPtr #-}
+
+-- | Usage: @'glProgramUniformMatrix4x2fv' program location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FALSE', 'Graphics.GL.Raw.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count@.
+
+
+glProgramUniformMatrix4x2fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
+glProgramUniformMatrix4x2fv = ffiuintintsizeibooleanPtrfloatIOV glProgramUniformMatrix4x2fvFunPtr
+
+glProgramUniformMatrix4x2fvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+glProgramUniformMatrix4x2fvFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix4x2fv")
+
+{-# NOINLINE glProgramUniformMatrix4x2fvFunPtr #-}
+
+-- | Usage: @'glProgramUniformMatrix4x3dv' program location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FALSE', 'Graphics.GL.Raw.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count@.
+
+
+glProgramUniformMatrix4x3dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
+glProgramUniformMatrix4x3dv = ffiuintintsizeibooleanPtrdoubleIOV glProgramUniformMatrix4x3dvFunPtr
+
+glProgramUniformMatrix4x3dvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
+glProgramUniformMatrix4x3dvFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix4x3dv")
+
+{-# NOINLINE glProgramUniformMatrix4x3dvFunPtr #-}
+
+-- | Usage: @'glProgramUniformMatrix4x3fv' program location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FALSE', 'Graphics.GL.Raw.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count@.
+
+
+glProgramUniformMatrix4x3fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
+glProgramUniformMatrix4x3fv = ffiuintintsizeibooleanPtrfloatIOV glProgramUniformMatrix4x3fvFunPtr
+
+glProgramUniformMatrix4x3fvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+glProgramUniformMatrix4x3fvFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix4x3fv")
+
+{-# NOINLINE glProgramUniformMatrix4x3fvFunPtr #-}
+
+-- | Usage: @'glUseProgramStages' pipeline stages program@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glUseProgramStages.xhtml>
+
+
+glUseProgramStages :: MonadIO m => GLuint -> GLbitfield -> GLuint -> m ()
+glUseProgramStages = ffiuintbitfielduintIOV glUseProgramStagesFunPtr
+
+glUseProgramStagesFunPtr :: FunPtr (GLuint -> GLbitfield -> GLuint -> IO ())
+glUseProgramStagesFunPtr = unsafePerformIO (getProcAddress "glUseProgramStages")
+
+{-# NOINLINE glUseProgramStagesFunPtr #-}
+
+-- | Usage: @'glValidateProgramPipeline' pipeline@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glValidateProgramPipeline.xhtml>
+
+
+glValidateProgramPipeline :: MonadIO m => GLuint -> m ()
+glValidateProgramPipeline = ffiuintIOV glValidateProgramPipelineFunPtr
+
+glValidateProgramPipelineFunPtr :: FunPtr (GLuint -> IO ())
+glValidateProgramPipelineFunPtr = unsafePerformIO (getProcAddress "glValidateProgramPipeline")
+
+{-# NOINLINE glValidateProgramPipelineFunPtr #-}
+
+pattern GL_ACTIVE_PROGRAM = 0x8259
+
+pattern GL_ALL_SHADER_BITS = 0xFFFFFFFF
+
+pattern GL_FRAGMENT_SHADER_BIT = 0x00000002
+
+pattern GL_GEOMETRY_SHADER_BIT = 0x00000004
+
+pattern GL_PROGRAM_PIPELINE_BINDING = 0x825A
+
+pattern GL_PROGRAM_SEPARABLE = 0x8258
+
+pattern GL_TESS_CONTROL_SHADER_BIT = 0x00000008
+
+pattern GL_TESS_EVALUATION_SHADER_BIT = 0x00000010
+
+pattern GL_VERTEX_SHADER_BIT = 0x00000001
+
+-- | Usage: @'glGetActiveAtomicCounterBufferiv' program bufferIndex pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetActiveAtomicCounterBufferiv.xhtml>
+
+
+glGetActiveAtomicCounterBufferiv :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr GLint -> m ()
+glGetActiveAtomicCounterBufferiv = ffiuintuintenumPtrintIOV glGetActiveAtomicCounterBufferivFunPtr
+
+glGetActiveAtomicCounterBufferivFunPtr :: FunPtr (GLuint -> GLuint -> GLenum -> Ptr GLint -> IO ())
+glGetActiveAtomicCounterBufferivFunPtr = unsafePerformIO (getProcAddress "glGetActiveAtomicCounterBufferiv")
+
+{-# NOINLINE glGetActiveAtomicCounterBufferivFunPtr #-}
+
+pattern GL_ACTIVE_ATOMIC_COUNTER_BUFFERS = 0x92D9
+
+pattern GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS = 0x92C5
+
+pattern GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTER_INDICES = 0x92C6
+
+pattern GL_ATOMIC_COUNTER_BUFFER_BINDING = 0x92C1
+
+pattern GL_ATOMIC_COUNTER_BUFFER_DATA_SIZE = 0x92C4
+
+pattern GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_FRAGMENT_SHADER = 0x92CB
+
+pattern GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_GEOMETRY_SHADER = 0x92CA
+
+pattern GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_CONTROL_SHADER = 0x92C8
+
+pattern GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_EVALUATION_SHADER = 0x92C9
+
+pattern GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER = 0x92C7
+
+pattern GL_ATOMIC_COUNTER_BUFFER_SIZE = 0x92C3
+
+pattern GL_ATOMIC_COUNTER_BUFFER_START = 0x92C2
+
+pattern GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS = 0x92DC
+
+pattern GL_MAX_ATOMIC_COUNTER_BUFFER_SIZE = 0x92D8
+
+pattern GL_MAX_COMBINED_ATOMIC_COUNTERS = 0x92D7
+
+pattern GL_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS = 0x92D1
+
+pattern GL_MAX_FRAGMENT_ATOMIC_COUNTERS = 0x92D6
+
+pattern GL_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS = 0x92D0
+
+pattern GL_MAX_GEOMETRY_ATOMIC_COUNTERS = 0x92D5
+
+pattern GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS = 0x92CF
+
+pattern GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS = 0x92D3
+
+pattern GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS = 0x92CD
+
+pattern GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS = 0x92D4
+
+pattern GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS = 0x92CE
+
+pattern GL_MAX_VERTEX_ATOMIC_COUNTERS = 0x92D2
+
+pattern GL_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS = 0x92CC
+
+pattern GL_UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX = 0x92DA
+
+pattern GL_UNSIGNED_INT_ATOMIC_COUNTER = 0x92DB
+
+-- | Usage: @'glBindImageTexture' unit texture level layered layer access format@
+--
+-- The parameter @layered@ is a @Boolean@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FALSE', 'Graphics.GL.Raw.Internal.Shared.GL_TRUE'.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBindImageTexture.xhtml>
+
+
+glBindImageTexture :: MonadIO m => GLuint -> GLuint -> GLint -> GLboolean -> GLint -> GLenum -> GLenum -> m ()
+glBindImageTexture = ffiuintuintintbooleanintenumenumIOV glBindImageTextureFunPtr
+
+glBindImageTextureFunPtr :: FunPtr (GLuint -> GLuint -> GLint -> GLboolean -> GLint -> GLenum -> GLenum -> IO ())
+glBindImageTextureFunPtr = unsafePerformIO (getProcAddress "glBindImageTexture")
+
+{-# NOINLINE glBindImageTextureFunPtr #-}
+
+-- | Usage: @'glMemoryBarrier' barriers@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glMemoryBarrier.xhtml>
+
+
+glMemoryBarrier :: MonadIO m => GLbitfield -> m ()
+glMemoryBarrier = ffibitfieldIOV glMemoryBarrierFunPtr
+
+glMemoryBarrierFunPtr :: FunPtr (GLbitfield -> IO ())
+glMemoryBarrierFunPtr = unsafePerformIO (getProcAddress "glMemoryBarrier")
+
+{-# NOINLINE glMemoryBarrierFunPtr #-}
+
+pattern GL_ALL_BARRIER_BITS = 0xFFFFFFFF
+
+pattern GL_ATOMIC_COUNTER_BARRIER_BIT = 0x00001000
+
+pattern GL_BUFFER_UPDATE_BARRIER_BIT = 0x00000200
+
+pattern GL_COMMAND_BARRIER_BIT = 0x00000040
+
+pattern GL_ELEMENT_ARRAY_BARRIER_BIT = 0x00000002
+
+pattern GL_FRAMEBUFFER_BARRIER_BIT = 0x00000400
+
+pattern GL_IMAGE_1D = 0x904C
+
+pattern GL_IMAGE_1D_ARRAY = 0x9052
+
+pattern GL_IMAGE_2D = 0x904D
+
+pattern GL_IMAGE_2D_ARRAY = 0x9053
+
+pattern GL_IMAGE_2D_MULTISAMPLE = 0x9055
+
+pattern GL_IMAGE_2D_MULTISAMPLE_ARRAY = 0x9056
+
+pattern GL_IMAGE_2D_RECT = 0x904F
+
+pattern GL_IMAGE_3D = 0x904E
+
+pattern GL_IMAGE_BINDING_ACCESS = 0x8F3E
+
+pattern GL_IMAGE_BINDING_FORMAT = 0x906E
+
+pattern GL_IMAGE_BINDING_LAYER = 0x8F3D
+
+pattern GL_IMAGE_BINDING_LAYERED = 0x8F3C
+
+pattern GL_IMAGE_BINDING_LEVEL = 0x8F3B
+
+pattern GL_IMAGE_BINDING_NAME = 0x8F3A
+
+pattern GL_IMAGE_BUFFER = 0x9051
+
+pattern GL_IMAGE_CUBE = 0x9050
+
+pattern GL_IMAGE_CUBE_MAP_ARRAY = 0x9054
+
+pattern GL_IMAGE_FORMAT_COMPATIBILITY_BY_CLASS = 0x90C9
+
+pattern GL_IMAGE_FORMAT_COMPATIBILITY_BY_SIZE = 0x90C8
+
+pattern GL_INT_IMAGE_1D = 0x9057
+
+pattern GL_INT_IMAGE_1D_ARRAY = 0x905D
+
+pattern GL_INT_IMAGE_2D = 0x9058
+
+pattern GL_INT_IMAGE_2D_ARRAY = 0x905E
+
+pattern GL_INT_IMAGE_2D_MULTISAMPLE = 0x9060
+
+pattern GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY = 0x9061
+
+pattern GL_INT_IMAGE_2D_RECT = 0x905A
+
+pattern GL_INT_IMAGE_3D = 0x9059
+
+pattern GL_INT_IMAGE_BUFFER = 0x905C
+
+pattern GL_INT_IMAGE_CUBE = 0x905B
+
+pattern GL_INT_IMAGE_CUBE_MAP_ARRAY = 0x905F
+
+pattern GL_MAX_COMBINED_IMAGE_UNIFORMS = 0x90CF
+
+pattern GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS = 0x8F39
+
+pattern GL_MAX_FRAGMENT_IMAGE_UNIFORMS = 0x90CE
+
+pattern GL_MAX_GEOMETRY_IMAGE_UNIFORMS = 0x90CD
+
+pattern GL_MAX_IMAGE_SAMPLES = 0x906D
+
+pattern GL_MAX_IMAGE_UNITS = 0x8F38
+
+pattern GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS = 0x90CB
+
+pattern GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS = 0x90CC
+
+pattern GL_MAX_VERTEX_IMAGE_UNIFORMS = 0x90CA
+
+pattern GL_PIXEL_BUFFER_BARRIER_BIT = 0x00000080
+
+pattern GL_SHADER_IMAGE_ACCESS_BARRIER_BIT = 0x00000020
+
+pattern GL_TEXTURE_FETCH_BARRIER_BIT = 0x00000008
+
+pattern GL_TEXTURE_UPDATE_BARRIER_BIT = 0x00000100
+
+pattern GL_TRANSFORM_FEEDBACK_BARRIER_BIT = 0x00000800
+
+pattern GL_UNIFORM_BARRIER_BIT = 0x00000004
+
+pattern GL_UNSIGNED_INT_IMAGE_1D = 0x9062
+
+pattern GL_UNSIGNED_INT_IMAGE_1D_ARRAY = 0x9068
+
+pattern GL_UNSIGNED_INT_IMAGE_2D = 0x9063
+
+pattern GL_UNSIGNED_INT_IMAGE_2D_ARRAY = 0x9069
+
+pattern GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE = 0x906B
+
+pattern GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY = 0x906C
+
+pattern GL_UNSIGNED_INT_IMAGE_2D_RECT = 0x9065
+
+pattern GL_UNSIGNED_INT_IMAGE_3D = 0x9064
+
+pattern GL_UNSIGNED_INT_IMAGE_BUFFER = 0x9067
+
+pattern GL_UNSIGNED_INT_IMAGE_CUBE = 0x9066
+
+pattern GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY = 0x906A
+
+pattern GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT = 0x00000001
+
+pattern GL_FLOAT_MAT2_ARB = 0x8B5A
+
+pattern GL_FLOAT_MAT3_ARB = 0x8B5B
+
+pattern GL_FLOAT_MAT4_ARB = 0x8B5C
+
+pattern GL_FLOAT_VEC2_ARB = 0x8B50
+
+pattern GL_FLOAT_VEC3_ARB = 0x8B51
+
+pattern GL_FLOAT_VEC4_ARB = 0x8B52
+
+-- | Usage: @'glShaderStorageBlockBinding' program storageBlockIndex storageBlockBinding@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glShaderStorageBlockBinding.xhtml>
+
+
+glShaderStorageBlockBinding :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()
+glShaderStorageBlockBinding = ffiuintuintuintIOV glShaderStorageBlockBindingFunPtr
+
+glShaderStorageBlockBindingFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> IO ())
+glShaderStorageBlockBindingFunPtr = unsafePerformIO (getProcAddress "glShaderStorageBlockBinding")
+
+{-# NOINLINE glShaderStorageBlockBindingFunPtr #-}
+
+pattern GL_MAX_COMBINED_SHADER_OUTPUT_RESOURCES = 0x8F39
+
+pattern GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS = 0x90DC
+
+pattern GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS = 0x90DB
+
+pattern GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS = 0x90DA
+
+pattern GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS = 0x90D7
+
+pattern GL_MAX_SHADER_STORAGE_BLOCK_SIZE = 0x90DE
+
+pattern GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS = 0x90DD
+
+pattern GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS = 0x90D8
+
+pattern GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS = 0x90D9
+
+pattern GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS = 0x90D6
+
+pattern GL_SHADER_STORAGE_BARRIER_BIT = 0x00002000
+
+pattern GL_SHADER_STORAGE_BUFFER = 0x90D2
+
+pattern GL_SHADER_STORAGE_BUFFER_BINDING = 0x90D3
+
+pattern GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT = 0x90DF
+
+pattern GL_SHADER_STORAGE_BUFFER_SIZE = 0x90D5
+
+pattern GL_SHADER_STORAGE_BUFFER_START = 0x90D4
+
+-- | Usage: @'glGetActiveSubroutineName' program shadertype index bufsize length name@
+--
+-- The length of @length@ should be @1@.
+--
+-- The length of @name@ should be @bufsize@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetActiveSubroutineName.xhtml>
+
+
+glGetActiveSubroutineName :: MonadIO m => GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
+glGetActiveSubroutineName = ffiuintenumuintsizeiPtrsizeiPtrcharIOV glGetActiveSubroutineNameFunPtr
+
+glGetActiveSubroutineNameFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
+glGetActiveSubroutineNameFunPtr = unsafePerformIO (getProcAddress "glGetActiveSubroutineName")
+
+{-# NOINLINE glGetActiveSubroutineNameFunPtr #-}
+
+-- | Usage: @'glGetActiveSubroutineUniformName' program shadertype index bufsize length name@
+--
+-- The length of @length@ should be @1@.
+--
+-- The length of @name@ should be @bufsize@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetActiveSubroutineUniformName.xhtml>
+
+
+glGetActiveSubroutineUniformName :: MonadIO m => GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
+glGetActiveSubroutineUniformName = ffiuintenumuintsizeiPtrsizeiPtrcharIOV glGetActiveSubroutineUniformNameFunPtr
+
+glGetActiveSubroutineUniformNameFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
+glGetActiveSubroutineUniformNameFunPtr = unsafePerformIO (getProcAddress "glGetActiveSubroutineUniformName")
+
+{-# NOINLINE glGetActiveSubroutineUniformNameFunPtr #-}
+
+-- | Usage: @'glGetActiveSubroutineUniformiv' program shadertype index pname values@
+--
+-- The length of @values@ should be @COMPSIZE(pname)@.
+
+
+glGetActiveSubroutineUniformiv :: MonadIO m => GLuint -> GLenum -> GLuint -> GLenum -> Ptr GLint -> m ()
+glGetActiveSubroutineUniformiv = ffiuintenumuintenumPtrintIOV glGetActiveSubroutineUniformivFunPtr
+
+glGetActiveSubroutineUniformivFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> GLenum -> Ptr GLint -> IO ())
+glGetActiveSubroutineUniformivFunPtr = unsafePerformIO (getProcAddress "glGetActiveSubroutineUniformiv")
+
+{-# NOINLINE glGetActiveSubroutineUniformivFunPtr #-}
+
+-- | Usage: @'glGetProgramStageiv' program shadertype pname values@
+--
+-- The length of @values@ should be @1@.
+
+
+glGetProgramStageiv :: MonadIO m => GLuint -> GLenum -> GLenum -> Ptr GLint -> m ()
+glGetProgramStageiv = ffiuintenumenumPtrintIOV glGetProgramStageivFunPtr
+
+glGetProgramStageivFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> Ptr GLint -> IO ())
+glGetProgramStageivFunPtr = unsafePerformIO (getProcAddress "glGetProgramStageiv")
+
+{-# NOINLINE glGetProgramStageivFunPtr #-}
+
+-- | Usage: @'glGetSubroutineIndex' program shadertype name@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetSubroutineIndex.xhtml>
+
+
+glGetSubroutineIndex :: MonadIO m => GLuint -> GLenum -> Ptr GLchar -> m GLuint
+glGetSubroutineIndex = ffiuintenumPtrcharIOuint glGetSubroutineIndexFunPtr
+
+glGetSubroutineIndexFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLchar -> IO GLuint)
+glGetSubroutineIndexFunPtr = unsafePerformIO (getProcAddress "glGetSubroutineIndex")
+
+{-# NOINLINE glGetSubroutineIndexFunPtr #-}
+
+-- | Usage: @'glGetSubroutineUniformLocation' program shadertype name@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetSubroutineUniformLocation.xhtml>
+
+
+glGetSubroutineUniformLocation :: MonadIO m => GLuint -> GLenum -> Ptr GLchar -> m GLint
+glGetSubroutineUniformLocation = ffiuintenumPtrcharIOint glGetSubroutineUniformLocationFunPtr
+
+glGetSubroutineUniformLocationFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLchar -> IO GLint)
+glGetSubroutineUniformLocationFunPtr = unsafePerformIO (getProcAddress "glGetSubroutineUniformLocation")
+
+{-# NOINLINE glGetSubroutineUniformLocationFunPtr #-}
+
+-- | Usage: @'glGetUniformSubroutineuiv' shadertype location params@
+--
+-- The length of @params@ should be @1@.
+
+
+glGetUniformSubroutineuiv :: MonadIO m => GLenum -> GLint -> Ptr GLuint -> m ()
+glGetUniformSubroutineuiv = ffienumintPtruintIOV glGetUniformSubroutineuivFunPtr
+
+glGetUniformSubroutineuivFunPtr :: FunPtr (GLenum -> GLint -> Ptr GLuint -> IO ())
+glGetUniformSubroutineuivFunPtr = unsafePerformIO (getProcAddress "glGetUniformSubroutineuiv")
+
+{-# NOINLINE glGetUniformSubroutineuivFunPtr #-}
+
+-- | Usage: @'glUniformSubroutinesuiv' shadertype count indices@
+--
+-- The length of @indices@ should be @count@.
+
+
+glUniformSubroutinesuiv :: MonadIO m => GLenum -> GLsizei -> Ptr GLuint -> m ()
+glUniformSubroutinesuiv = ffienumsizeiPtruintIOV glUniformSubroutinesuivFunPtr
+
+glUniformSubroutinesuivFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr GLuint -> IO ())
+glUniformSubroutinesuivFunPtr = unsafePerformIO (getProcAddress "glUniformSubroutinesuiv")
+
+{-# NOINLINE glUniformSubroutinesuivFunPtr #-}
+
+pattern GL_ACTIVE_SUBROUTINES = 0x8DE5
+
+pattern GL_ACTIVE_SUBROUTINE_MAX_LENGTH = 0x8E48
+
+pattern GL_ACTIVE_SUBROUTINE_UNIFORMS = 0x8DE6
+
+pattern GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS = 0x8E47
+
+pattern GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH = 0x8E49
+
+pattern GL_MAX_SUBROUTINES = 0x8DE7
+
+pattern GL_MAX_SUBROUTINE_UNIFORM_LOCATIONS = 0x8DE8
+
+pattern GL_UNIFORM_NAME_LENGTH = 0x8A39
+
+pattern GL_UNIFORM_SIZE = 0x8A38
+
+pattern GL_DEPTH_STENCIL_TEXTURE_MODE = 0x90EA
+
+-- | Usage: @'glClientWaitSync' sync flags timeout@
+--
+-- The parameter @sync@ is a @sync@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glClientWaitSync.xhtml>
+
+
+glClientWaitSync :: MonadIO m => GLsync -> GLbitfield -> GLuint64 -> m GLenum
+glClientWaitSync = ffisyncbitfielduint64IOenum glClientWaitSyncFunPtr
+
+glClientWaitSyncFunPtr :: FunPtr (GLsync -> GLbitfield -> GLuint64 -> IO GLenum)
+glClientWaitSyncFunPtr = unsafePerformIO (getProcAddress "glClientWaitSync")
+
+{-# NOINLINE glClientWaitSyncFunPtr #-}
+
+-- | Usage: @'glDeleteSync' sync@
+--
+-- The parameter @sync@ is a @sync@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDeleteSync.xhtml>
+
+
+glDeleteSync :: MonadIO m => GLsync -> m ()
+glDeleteSync = ffisyncIOV glDeleteSyncFunPtr
+
+glDeleteSyncFunPtr :: FunPtr (GLsync -> IO ())
+glDeleteSyncFunPtr = unsafePerformIO (getProcAddress "glDeleteSync")
+
+{-# NOINLINE glDeleteSyncFunPtr #-}
+
+-- | Usage: @'glFenceSync' condition flags@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glFenceSync.xhtml>
+
+
+glFenceSync :: MonadIO m => GLenum -> GLbitfield -> m GLsync
+glFenceSync = ffienumbitfieldIOsync glFenceSyncFunPtr
+
+glFenceSyncFunPtr :: FunPtr (GLenum -> GLbitfield -> IO GLsync)
+glFenceSyncFunPtr = unsafePerformIO (getProcAddress "glFenceSync")
+
+{-# NOINLINE glFenceSyncFunPtr #-}
+
+-- | Usage: @'glGetInteger64v' pname data@
+--
+-- The length of @data@ should be @COMPSIZE(pname)@.
+
+
+glGetInteger64v :: MonadIO m => GLenum -> Ptr GLint64 -> m ()
+glGetInteger64v = ffienumPtrint64IOV glGetInteger64vFunPtr
+
+glGetInteger64vFunPtr :: FunPtr (GLenum -> Ptr GLint64 -> IO ())
+glGetInteger64vFunPtr = unsafePerformIO (getProcAddress "glGetInteger64v")
+
+{-# NOINLINE glGetInteger64vFunPtr #-}
+
+-- | Usage: @'glGetSynciv' sync pname bufSize length values@
+--
+-- The parameter @sync@ is a @sync@.
+--
+-- The length of @length@ should be @1@.
+--
+-- The length of @values@ should be @bufSize@.
+
+
+glGetSynciv :: MonadIO m => GLsync -> GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLint -> m ()
+glGetSynciv = ffisyncenumsizeiPtrsizeiPtrintIOV glGetSyncivFunPtr
+
+glGetSyncivFunPtr :: FunPtr (GLsync -> GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLint -> IO ())
+glGetSyncivFunPtr = unsafePerformIO (getProcAddress "glGetSynciv")
+
+{-# NOINLINE glGetSyncivFunPtr #-}
+
+-- | Usage: @'glIsSync' sync@
+--
+-- The parameter @sync@ is a @sync@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glIsSync.xhtml>
+
+
+glIsSync :: MonadIO m => GLsync -> m GLboolean
+glIsSync = ffisyncIOboolean glIsSyncFunPtr
+
+glIsSyncFunPtr :: FunPtr (GLsync -> IO GLboolean)
+glIsSyncFunPtr = unsafePerformIO (getProcAddress "glIsSync")
+
+{-# NOINLINE glIsSyncFunPtr #-}
+
+-- | Usage: @'glWaitSync' sync flags timeout@
+--
+-- The parameter @sync@ is a @sync@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glWaitSync.xhtml>
+
+
+glWaitSync :: MonadIO m => GLsync -> GLbitfield -> GLuint64 -> m ()
+glWaitSync = ffisyncbitfielduint64IOV glWaitSyncFunPtr
+
+glWaitSyncFunPtr :: FunPtr (GLsync -> GLbitfield -> GLuint64 -> IO ())
+glWaitSyncFunPtr = unsafePerformIO (getProcAddress "glWaitSync")
+
+{-# NOINLINE glWaitSyncFunPtr #-}
+
+pattern GL_ALREADY_SIGNALED = 0x911A
+
+pattern GL_CONDITION_SATISFIED = 0x911C
+
+pattern GL_MAX_SERVER_WAIT_TIMEOUT = 0x9111
+
+pattern GL_OBJECT_TYPE = 0x9112
+
+pattern GL_SIGNALED = 0x9119
+
+pattern GL_SYNC_CONDITION = 0x9113
+
+pattern GL_SYNC_FENCE = 0x9116
+
+pattern GL_SYNC_FLAGS = 0x9115
+
+pattern GL_SYNC_FLUSH_COMMANDS_BIT = 0x00000001
+
+pattern GL_SYNC_GPU_COMMANDS_COMPLETE = 0x9117
+
+pattern GL_SYNC_STATUS = 0x9114
+
+pattern GL_TIMEOUT_EXPIRED = 0x911B
+
+pattern GL_TIMEOUT_IGNORED = 0xFFFFFFFFFFFFFFFF
+
+pattern GL_UNSIGNALED = 0x9118
+
+pattern GL_WAIT_FAILED = 0x911D
+
+-- | Usage: @'glPatchParameterfv' pname values@
+--
+-- The length of @values@ should be @COMPSIZE(pname)@.
+
+
+glPatchParameterfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
+glPatchParameterfv = ffienumPtrfloatIOV glPatchParameterfvFunPtr
+
+glPatchParameterfvFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
+glPatchParameterfvFunPtr = unsafePerformIO (getProcAddress "glPatchParameterfv")
+
+{-# NOINLINE glPatchParameterfvFunPtr #-}
+
+-- | Usage: @'glPatchParameteri' pname value@
+
+
+glPatchParameteri :: MonadIO m => GLenum -> GLint -> m ()
+glPatchParameteri = ffienumintIOV glPatchParameteriFunPtr
+
+glPatchParameteriFunPtr :: FunPtr (GLenum -> GLint -> IO ())
+glPatchParameteriFunPtr = unsafePerformIO (getProcAddress "glPatchParameteri")
+
+{-# NOINLINE glPatchParameteriFunPtr #-}
+
+pattern GL_CCW = 0x0901
+
+pattern GL_CW = 0x0900
+
+pattern GL_EQUAL = 0x0202
+
+pattern GL_FRACTIONAL_EVEN = 0x8E7C
+
+pattern GL_FRACTIONAL_ODD = 0x8E7B
+
+pattern GL_ISOLINES = 0x8E7A
+
+pattern GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS = 0x8E1E
+
+pattern GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS = 0x8E1F
+
+pattern GL_MAX_PATCH_VERTICES = 0x8E7D
+
+pattern GL_MAX_TESS_CONTROL_INPUT_COMPONENTS = 0x886C
+
+pattern GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS = 0x8E83
+
+pattern GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS = 0x8E81
+
+pattern GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS = 0x8E85
+
+pattern GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS = 0x8E89
+
+pattern GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS = 0x8E7F
+
+pattern GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS = 0x886D
+
+pattern GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS = 0x8E86
+
+pattern GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS = 0x8E82
+
+pattern GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS = 0x8E8A
+
+pattern GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS = 0x8E80
+
+pattern GL_MAX_TESS_GEN_LEVEL = 0x8E7E
+
+pattern GL_MAX_TESS_PATCH_COMPONENTS = 0x8E84
+
+pattern GL_PATCHES = 0x000E
+
+pattern GL_PATCH_DEFAULT_INNER_LEVEL = 0x8E73
+
+pattern GL_PATCH_DEFAULT_OUTER_LEVEL = 0x8E74
+
+pattern GL_PATCH_VERTICES = 0x8E72
+
+pattern GL_QUADS = 0x0007
+
+pattern GL_TESS_CONTROL_OUTPUT_VERTICES = 0x8E75
+
+pattern GL_TESS_CONTROL_SHADER = 0x8E88
+
+pattern GL_TESS_EVALUATION_SHADER = 0x8E87
+
+pattern GL_TESS_GEN_MODE = 0x8E76
+
+pattern GL_TESS_GEN_POINT_MODE = 0x8E79
+
+pattern GL_TESS_GEN_SPACING = 0x8E77
+
+pattern GL_TESS_GEN_VERTEX_ORDER = 0x8E78
+
+pattern GL_TRIANGLES = 0x0004
+
+pattern GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER = 0x84F0
+
+pattern GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER = 0x84F1
+
+-- | Usage: @'glTextureBarrier'@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glTextureBarrier.xhtml>
+
+
+glTextureBarrier :: MonadIO m => m ()
+glTextureBarrier = ffiIOV glTextureBarrierFunPtr
+
+glTextureBarrierFunPtr :: FunPtr (IO ())
+glTextureBarrierFunPtr = unsafePerformIO (getProcAddress "glTextureBarrier")
+
+{-# NOINLINE glTextureBarrierFunPtr #-}
+
+pattern GL_RGB32F = 0x8815
+
+pattern GL_RGB32I = 0x8D83
+
+pattern GL_RGB32UI = 0x8D71
+
+-- | Usage: @'glTexBufferRange' target internalformat buffer offset size@
+--
+-- The parameter @offset@ is a @BufferOffset@.
+--
+-- The parameter @size@ is a @BufferSize@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glTexBufferRange.xhtml>
+
+
+glTexBufferRange :: MonadIO m => GLenum -> GLenum -> GLuint -> GLintptr -> GLsizeiptr -> m ()
+glTexBufferRange = ffienumenumuintintptrsizeiptrIOV glTexBufferRangeFunPtr
+
+glTexBufferRangeFunPtr :: FunPtr (GLenum -> GLenum -> GLuint -> GLintptr -> GLsizeiptr -> IO ())
+glTexBufferRangeFunPtr = unsafePerformIO (getProcAddress "glTexBufferRange")
+
+{-# NOINLINE glTexBufferRangeFunPtr #-}
+
+pattern GL_TEXTURE_BUFFER_OFFSET = 0x919D
+
+pattern GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT = 0x919F
+
+pattern GL_TEXTURE_BUFFER_SIZE = 0x919E
+
+pattern GL_COMPRESSED_RED_RGTC1 = 0x8DBB
+
+pattern GL_COMPRESSED_RG_RGTC2 = 0x8DBD
+
+pattern GL_COMPRESSED_SIGNED_RED_RGTC1 = 0x8DBC
+
+pattern GL_COMPRESSED_SIGNED_RG_RGTC2 = 0x8DBE
+
+pattern GL_MIRROR_CLAMP_TO_EDGE = 0x8743
+
+-- | Usage: @'glGetMultisamplefv' pname index val@
+--
+-- The length of @val@ should be @COMPSIZE(pname)@.
+
+
+glGetMultisamplefv :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()
+glGetMultisamplefv = ffienumuintPtrfloatIOV glGetMultisamplefvFunPtr
+
+glGetMultisamplefvFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLfloat -> IO ())
+glGetMultisamplefvFunPtr = unsafePerformIO (getProcAddress "glGetMultisamplefv")
+
+{-# NOINLINE glGetMultisamplefvFunPtr #-}
+
+-- | Usage: @'glSampleMaski' maskNumber mask@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glSampleMaski.xhtml>
+
+
+glSampleMaski :: MonadIO m => GLuint -> GLbitfield -> m ()
+glSampleMaski = ffiuintbitfieldIOV glSampleMaskiFunPtr
+
+glSampleMaskiFunPtr :: FunPtr (GLuint -> GLbitfield -> IO ())
+glSampleMaskiFunPtr = unsafePerformIO (getProcAddress "glSampleMaski")
+
+{-# NOINLINE glSampleMaskiFunPtr #-}
+
+-- | Usage: @'glTexImage2DMultisample' target samples internalformat width height fixedsamplelocations@
+--
+-- The parameter @fixedsamplelocations@ is a @Boolean@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FALSE', 'Graphics.GL.Raw.Internal.Shared.GL_TRUE'.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glTexImage2DMultisample.xhtml>
+
+
+glTexImage2DMultisample :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> m ()
+glTexImage2DMultisample = ffienumsizeienumsizeisizeibooleanIOV glTexImage2DMultisampleFunPtr
+
+glTexImage2DMultisampleFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> IO ())
+glTexImage2DMultisampleFunPtr = unsafePerformIO (getProcAddress "glTexImage2DMultisample")
+
+{-# NOINLINE glTexImage2DMultisampleFunPtr #-}
+
+-- | Usage: @'glTexImage3DMultisample' target samples internalformat width height depth fixedsamplelocations@
+--
+-- The parameter @fixedsamplelocations@ is a @Boolean@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FALSE', 'Graphics.GL.Raw.Internal.Shared.GL_TRUE'.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glTexImage3DMultisample.xhtml>
+
+
+glTexImage3DMultisample :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> m ()
+glTexImage3DMultisample = ffienumsizeienumsizeisizeisizeibooleanIOV glTexImage3DMultisampleFunPtr
+
+glTexImage3DMultisampleFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> IO ())
+glTexImage3DMultisampleFunPtr = unsafePerformIO (getProcAddress "glTexImage3DMultisample")
+
+{-# NOINLINE glTexImage3DMultisampleFunPtr #-}
+
+pattern GL_INT_SAMPLER_2D_MULTISAMPLE = 0x9109
+
+pattern GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY = 0x910C
+
+pattern GL_MAX_COLOR_TEXTURE_SAMPLES = 0x910E
+
+pattern GL_MAX_DEPTH_TEXTURE_SAMPLES = 0x910F
+
+pattern GL_MAX_INTEGER_SAMPLES = 0x9110
+
+pattern GL_MAX_SAMPLE_MASK_WORDS = 0x8E59
+
+pattern GL_PROXY_TEXTURE_2D_MULTISAMPLE = 0x9101
+
+pattern GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY = 0x9103
+
+pattern GL_SAMPLER_2D_MULTISAMPLE = 0x9108
+
+pattern GL_SAMPLER_2D_MULTISAMPLE_ARRAY = 0x910B
+
+pattern GL_SAMPLE_MASK = 0x8E51
+
+pattern GL_SAMPLE_MASK_VALUE = 0x8E52
+
+pattern GL_SAMPLE_POSITION = 0x8E50
+
+pattern GL_TEXTURE_FIXED_SAMPLE_LOCATIONS = 0x9107
+
+pattern GL_TEXTURE_SAMPLES = 0x9106
+
+pattern GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE = 0x910A
+
+pattern GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY = 0x910D
+
+pattern GL_R16 = 0x822A
+
+pattern GL_R16F = 0x822D
+
+pattern GL_R16I = 0x8233
+
+pattern GL_R16UI = 0x8234
+
+pattern GL_R32F = 0x822E
+
+pattern GL_R32I = 0x8235
+
+pattern GL_R32UI = 0x8236
+
+pattern GL_R8 = 0x8229
+
+pattern GL_R8I = 0x8231
+
+pattern GL_R8UI = 0x8232
+
+pattern GL_RG = 0x8227
+
+pattern GL_RG16 = 0x822C
+
+pattern GL_RG16F = 0x822F
+
+pattern GL_RG16I = 0x8239
+
+pattern GL_RG32F = 0x8230
+
+pattern GL_RG32I = 0x823B
+
+pattern GL_RG32UI = 0x823C
+
+pattern GL_RG8 = 0x822B
+
+pattern GL_RG8I = 0x8237
+
+pattern GL_RG_INTEGER = 0x8228
+
+pattern GL_RGB10_A2UI = 0x906F
+
+pattern GL_STENCIL_INDEX = 0x1901
+
+-- | Usage: @'glTexStorage1D' target levels internalformat width@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glTexStorage1D.xhtml>
+
+
+glTexStorage1D :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> m ()
+glTexStorage1D = ffienumsizeienumsizeiIOV glTexStorage1DFunPtr
+
+glTexStorage1DFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> GLsizei -> IO ())
+glTexStorage1DFunPtr = unsafePerformIO (getProcAddress "glTexStorage1D")
+
+{-# NOINLINE glTexStorage1DFunPtr #-}
+
+-- | Usage: @'glTexStorage2D' target levels internalformat width height@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glTexStorage2D.xhtml>
+
+
+glTexStorage2D :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()
+glTexStorage2D = ffienumsizeienumsizeisizeiIOV glTexStorage2DFunPtr
+
+glTexStorage2DFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> IO ())
+glTexStorage2DFunPtr = unsafePerformIO (getProcAddress "glTexStorage2D")
+
+{-# NOINLINE glTexStorage2DFunPtr #-}
+
+-- | Usage: @'glTexStorage3D' target levels internalformat width height depth@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glTexStorage3D.xhtml>
+
+
+glTexStorage3D :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> m ()
+glTexStorage3D = ffienumsizeienumsizeisizeisizeiIOV glTexStorage3DFunPtr
+
+glTexStorage3DFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> IO ())
+glTexStorage3DFunPtr = unsafePerformIO (getProcAddress "glTexStorage3D")
+
+{-# NOINLINE glTexStorage3DFunPtr #-}
+
+pattern GL_TEXTURE_IMMUTABLE_FORMAT = 0x912F
+
+-- | Usage: @'glTexStorage2DMultisample' target samples internalformat width height fixedsamplelocations@
+--
+-- The parameter @fixedsamplelocations@ is a @Boolean@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FALSE', 'Graphics.GL.Raw.Internal.Shared.GL_TRUE'.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glTexStorage2DMultisample.xhtml>
+
+
+glTexStorage2DMultisample :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> m ()
+glTexStorage2DMultisample = ffienumsizeienumsizeisizeibooleanIOV glTexStorage2DMultisampleFunPtr
+
+glTexStorage2DMultisampleFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> IO ())
+glTexStorage2DMultisampleFunPtr = unsafePerformIO (getProcAddress "glTexStorage2DMultisample")
+
+{-# NOINLINE glTexStorage2DMultisampleFunPtr #-}
+
+-- | Usage: @'glTexStorage3DMultisample' target samples internalformat width height depth fixedsamplelocations@
+--
+-- The parameter @fixedsamplelocations@ is a @Boolean@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FALSE', 'Graphics.GL.Raw.Internal.Shared.GL_TRUE'.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glTexStorage3DMultisample.xhtml>
+
+
+glTexStorage3DMultisample :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> m ()
+glTexStorage3DMultisample = ffienumsizeienumsizeisizeisizeibooleanIOV glTexStorage3DMultisampleFunPtr
+
+glTexStorage3DMultisampleFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> IO ())
+glTexStorage3DMultisampleFunPtr = unsafePerformIO (getProcAddress "glTexStorage3DMultisample")
+
+{-# NOINLINE glTexStorage3DMultisampleFunPtr #-}
+
+pattern GL_TEXTURE_SWIZZLE_A = 0x8E45
+
+pattern GL_TEXTURE_SWIZZLE_B = 0x8E44
+
+pattern GL_TEXTURE_SWIZZLE_G = 0x8E43
+
+pattern GL_TEXTURE_SWIZZLE_R = 0x8E42
+
+pattern GL_TEXTURE_SWIZZLE_RGBA = 0x8E46
+
+-- | Usage: @'glTextureView' texture target origtexture internalformat minlevel numlevels minlayer numlayers@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glTextureView.xhtml>
+
+
+glTextureView :: MonadIO m => GLuint -> GLenum -> GLuint -> GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
+glTextureView = ffiuintenumuintenumuintuintuintuintIOV glTextureViewFunPtr
+
+glTextureViewFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> IO ())
+glTextureViewFunPtr = unsafePerformIO (getProcAddress "glTextureView")
+
+{-# NOINLINE glTextureViewFunPtr #-}
+
+pattern GL_TEXTURE_IMMUTABLE_LEVELS = 0x82DF
+
+pattern GL_TEXTURE_VIEW_MIN_LAYER = 0x82DD
+
+pattern GL_TEXTURE_VIEW_MIN_LEVEL = 0x82DB
+
+pattern GL_TEXTURE_VIEW_NUM_LAYERS = 0x82DE
+
+pattern GL_TEXTURE_VIEW_NUM_LEVELS = 0x82DC
+
+-- | Usage: @'glGetQueryObjecti64v' id pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetQueryObjecti64v :: MonadIO m => GLuint -> GLenum -> Ptr GLint64 -> m ()
+glGetQueryObjecti64v = ffiuintenumPtrint64IOV glGetQueryObjecti64vFunPtr
+
+glGetQueryObjecti64vFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint64 -> IO ())
+glGetQueryObjecti64vFunPtr = unsafePerformIO (getProcAddress "glGetQueryObjecti64v")
+
+{-# NOINLINE glGetQueryObjecti64vFunPtr #-}
+
+-- | Usage: @'glGetQueryObjectui64v' id pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetQueryObjectui64v :: MonadIO m => GLuint -> GLenum -> Ptr GLuint64 -> m ()
+glGetQueryObjectui64v = ffiuintenumPtruint64IOV glGetQueryObjectui64vFunPtr
+
+glGetQueryObjectui64vFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLuint64 -> IO ())
+glGetQueryObjectui64vFunPtr = unsafePerformIO (getProcAddress "glGetQueryObjectui64v")
+
+{-# NOINLINE glGetQueryObjectui64vFunPtr #-}
+
+-- | Usage: @'glQueryCounter' id target@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glQueryCounter.xhtml>
+
+
+glQueryCounter :: MonadIO m => GLuint -> GLenum -> m ()
+glQueryCounter = ffiuintenumIOV glQueryCounterFunPtr
+
+glQueryCounterFunPtr :: FunPtr (GLuint -> GLenum -> IO ())
+glQueryCounterFunPtr = unsafePerformIO (getProcAddress "glQueryCounter")
+
+{-# NOINLINE glQueryCounterFunPtr #-}
+
+pattern GL_TIMESTAMP = 0x8E28
+
+pattern GL_TIME_ELAPSED = 0x88BF
+
+-- | Usage: @'glBindTransformFeedback' target id@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBindTransformFeedback.xhtml>
+
+
+glBindTransformFeedback :: MonadIO m => GLenum -> GLuint -> m ()
+glBindTransformFeedback = ffienumuintIOV glBindTransformFeedbackFunPtr
+
+glBindTransformFeedbackFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
+glBindTransformFeedbackFunPtr = unsafePerformIO (getProcAddress "glBindTransformFeedback")
+
+{-# NOINLINE glBindTransformFeedbackFunPtr #-}
+
+-- | Usage: @'glDeleteTransformFeedbacks' n ids@
+--
+-- The length of @ids@ should be @n@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDeleteTransformFeedbacks.xhtml>
+
+
+glDeleteTransformFeedbacks :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glDeleteTransformFeedbacks = ffisizeiPtruintIOV glDeleteTransformFeedbacksFunPtr
+
+glDeleteTransformFeedbacksFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glDeleteTransformFeedbacksFunPtr = unsafePerformIO (getProcAddress "glDeleteTransformFeedbacks")
+
+{-# NOINLINE glDeleteTransformFeedbacksFunPtr #-}
+
+-- | Usage: @'glDrawTransformFeedback' mode id@
+--
+-- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_LINES', 'Graphics.GL.Raw.Profile.Core32.GL_LINES_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Raw.Profile.Core32.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PATCHES', 'Graphics.GL.Raw.Extension.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_POINTS', 'Graphics.GL.Raw.Internal.Shared.GL_POLYGON', 'Graphics.GL.Raw.Internal.Shared.GL_QUADS', 'Graphics.GL.Raw.Extension.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Raw.Profile.Core32.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Raw.Profile.Core32.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDrawTransformFeedback.xhtml>
+
+
+glDrawTransformFeedback :: MonadIO m => GLenum -> GLuint -> m ()
+glDrawTransformFeedback = ffienumuintIOV glDrawTransformFeedbackFunPtr
+
+glDrawTransformFeedbackFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
+glDrawTransformFeedbackFunPtr = unsafePerformIO (getProcAddress "glDrawTransformFeedback")
+
+{-# NOINLINE glDrawTransformFeedbackFunPtr #-}
+
+-- | Usage: @'glGenTransformFeedbacks' n ids@
+--
+-- The length of @ids@ should be @n@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGenTransformFeedbacks.xhtml>
+
+
+glGenTransformFeedbacks :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glGenTransformFeedbacks = ffisizeiPtruintIOV glGenTransformFeedbacksFunPtr
+
+glGenTransformFeedbacksFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glGenTransformFeedbacksFunPtr = unsafePerformIO (getProcAddress "glGenTransformFeedbacks")
+
+{-# NOINLINE glGenTransformFeedbacksFunPtr #-}
+
+-- | Usage: @'glIsTransformFeedback' id@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glIsTransformFeedback.xhtml>
+
+
+glIsTransformFeedback :: MonadIO m => GLuint -> m GLboolean
+glIsTransformFeedback = ffiuintIOboolean glIsTransformFeedbackFunPtr
+
+glIsTransformFeedbackFunPtr :: FunPtr (GLuint -> IO GLboolean)
+glIsTransformFeedbackFunPtr = unsafePerformIO (getProcAddress "glIsTransformFeedback")
+
+{-# NOINLINE glIsTransformFeedbackFunPtr #-}
+
+-- | Usage: @'glPauseTransformFeedback'@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glPauseTransformFeedback.xhtml>
+
+
+glPauseTransformFeedback :: MonadIO m => m ()
+glPauseTransformFeedback = ffiIOV glPauseTransformFeedbackFunPtr
+
+glPauseTransformFeedbackFunPtr :: FunPtr (IO ())
+glPauseTransformFeedbackFunPtr = unsafePerformIO (getProcAddress "glPauseTransformFeedback")
+
+{-# NOINLINE glPauseTransformFeedbackFunPtr #-}
+
+-- | Usage: @'glResumeTransformFeedback'@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glResumeTransformFeedback.xhtml>
+
+
+glResumeTransformFeedback :: MonadIO m => m ()
+glResumeTransformFeedback = ffiIOV glResumeTransformFeedbackFunPtr
+
+glResumeTransformFeedbackFunPtr :: FunPtr (IO ())
+glResumeTransformFeedbackFunPtr = unsafePerformIO (getProcAddress "glResumeTransformFeedback")
+
+{-# NOINLINE glResumeTransformFeedbackFunPtr #-}
+
+pattern GL_TRANSFORM_FEEDBACK = 0x8E22
+
+pattern GL_TRANSFORM_FEEDBACK_BINDING = 0x8E25
+
+pattern GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE = 0x8E24
+
+pattern GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED = 0x8E23
+
+-- | Usage: @'glBeginQueryIndexed' target index id@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBeginQueryIndexed.xhtml>
+
+
+glBeginQueryIndexed :: MonadIO m => GLenum -> GLuint -> GLuint -> m ()
+glBeginQueryIndexed = ffienumuintuintIOV glBeginQueryIndexedFunPtr
+
+glBeginQueryIndexedFunPtr :: FunPtr (GLenum -> GLuint -> GLuint -> IO ())
+glBeginQueryIndexedFunPtr = unsafePerformIO (getProcAddress "glBeginQueryIndexed")
+
+{-# NOINLINE glBeginQueryIndexedFunPtr #-}
+
+-- | Usage: @'glDrawTransformFeedbackStream' mode id stream@
+--
+-- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_LINES', 'Graphics.GL.Raw.Profile.Core32.GL_LINES_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Raw.Profile.Core32.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PATCHES', 'Graphics.GL.Raw.Extension.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_POINTS', 'Graphics.GL.Raw.Internal.Shared.GL_POLYGON', 'Graphics.GL.Raw.Internal.Shared.GL_QUADS', 'Graphics.GL.Raw.Extension.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Raw.Profile.Core32.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Raw.Profile.Core32.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDrawTransformFeedbackStream.xhtml>
+
+
+glDrawTransformFeedbackStream :: MonadIO m => GLenum -> GLuint -> GLuint -> m ()
+glDrawTransformFeedbackStream = ffienumuintuintIOV glDrawTransformFeedbackStreamFunPtr
+
+glDrawTransformFeedbackStreamFunPtr :: FunPtr (GLenum -> GLuint -> GLuint -> IO ())
+glDrawTransformFeedbackStreamFunPtr = unsafePerformIO (getProcAddress "glDrawTransformFeedbackStream")
+
+{-# NOINLINE glDrawTransformFeedbackStreamFunPtr #-}
+
+-- | Usage: @'glEndQueryIndexed' target index@
+
+
+glEndQueryIndexed :: MonadIO m => GLenum -> GLuint -> m ()
+glEndQueryIndexed = ffienumuintIOV glEndQueryIndexedFunPtr
+
+glEndQueryIndexedFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
+glEndQueryIndexedFunPtr = unsafePerformIO (getProcAddress "glEndQueryIndexed")
+
+{-# NOINLINE glEndQueryIndexedFunPtr #-}
+
+-- | Usage: @'glGetQueryIndexediv' target index pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetQueryIndexediv :: MonadIO m => GLenum -> GLuint -> GLenum -> Ptr GLint -> m ()
+glGetQueryIndexediv = ffienumuintenumPtrintIOV glGetQueryIndexedivFunPtr
+
+glGetQueryIndexedivFunPtr :: FunPtr (GLenum -> GLuint -> GLenum -> Ptr GLint -> IO ())
+glGetQueryIndexedivFunPtr = unsafePerformIO (getProcAddress "glGetQueryIndexediv")
+
+{-# NOINLINE glGetQueryIndexedivFunPtr #-}
+
+pattern GL_MAX_TRANSFORM_FEEDBACK_BUFFERS = 0x8E70
+
+-- | Usage: @'glDrawTransformFeedbackInstanced' mode id instancecount@
+--
+-- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_LINES', 'Graphics.GL.Raw.Profile.Core32.GL_LINES_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Raw.Profile.Core32.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PATCHES', 'Graphics.GL.Raw.Extension.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_POINTS', 'Graphics.GL.Raw.Internal.Shared.GL_POLYGON', 'Graphics.GL.Raw.Internal.Shared.GL_QUADS', 'Graphics.GL.Raw.Extension.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Raw.Profile.Core32.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Raw.Profile.Core32.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDrawTransformFeedbackInstanced.xhtml>
+
+
+glDrawTransformFeedbackInstanced :: MonadIO m => GLenum -> GLuint -> GLsizei -> m ()
+glDrawTransformFeedbackInstanced = ffienumuintsizeiIOV glDrawTransformFeedbackInstancedFunPtr
+
+glDrawTransformFeedbackInstancedFunPtr :: FunPtr (GLenum -> GLuint -> GLsizei -> IO ())
+glDrawTransformFeedbackInstancedFunPtr = unsafePerformIO (getProcAddress "glDrawTransformFeedbackInstanced")
+
+{-# NOINLINE glDrawTransformFeedbackInstancedFunPtr #-}
+
+-- | Usage: @'glDrawTransformFeedbackStreamInstanced' mode id stream instancecount@
+--
+-- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_LINES', 'Graphics.GL.Raw.Profile.Core32.GL_LINES_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Raw.Profile.Core32.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PATCHES', 'Graphics.GL.Raw.Extension.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_POINTS', 'Graphics.GL.Raw.Internal.Shared.GL_POLYGON', 'Graphics.GL.Raw.Internal.Shared.GL_QUADS', 'Graphics.GL.Raw.Extension.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Raw.Profile.Core32.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Raw.Profile.Core32.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDrawTransformFeedbackStreamInstanced.xhtml>
+
+
+glDrawTransformFeedbackStreamInstanced :: MonadIO m => GLenum -> GLuint -> GLuint -> GLsizei -> m ()
+glDrawTransformFeedbackStreamInstanced = ffienumuintuintsizeiIOV glDrawTransformFeedbackStreamInstancedFunPtr
+
+glDrawTransformFeedbackStreamInstancedFunPtr :: FunPtr (GLenum -> GLuint -> GLuint -> GLsizei -> IO ())
+glDrawTransformFeedbackStreamInstancedFunPtr = unsafePerformIO (getProcAddress "glDrawTransformFeedbackStreamInstanced")
+
+{-# NOINLINE glDrawTransformFeedbackStreamInstancedFunPtr #-}
+
+-- | Usage: @'glGetActiveUniformBlockName' program uniformBlockIndex bufSize length uniformBlockName@
+--
+-- The length of @length@ should be @1@.
+--
+-- The length of @uniformBlockName@ should be @bufSize@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetActiveUniformBlockName.xhtml>
+
+
+glGetActiveUniformBlockName :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
+glGetActiveUniformBlockName = ffiuintuintsizeiPtrsizeiPtrcharIOV glGetActiveUniformBlockNameFunPtr
+
+glGetActiveUniformBlockNameFunPtr :: FunPtr (GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
+glGetActiveUniformBlockNameFunPtr = unsafePerformIO (getProcAddress "glGetActiveUniformBlockName")
+
+{-# NOINLINE glGetActiveUniformBlockNameFunPtr #-}
+
+-- | Usage: @'glGetActiveUniformBlockiv' program uniformBlockIndex pname params@
+--
+-- The length of @params@ should be @COMPSIZE(program,uniformBlockIndex,pname)@.
+
+
+glGetActiveUniformBlockiv :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr GLint -> m ()
+glGetActiveUniformBlockiv = ffiuintuintenumPtrintIOV glGetActiveUniformBlockivFunPtr
+
+glGetActiveUniformBlockivFunPtr :: FunPtr (GLuint -> GLuint -> GLenum -> Ptr GLint -> IO ())
+glGetActiveUniformBlockivFunPtr = unsafePerformIO (getProcAddress "glGetActiveUniformBlockiv")
+
+{-# NOINLINE glGetActiveUniformBlockivFunPtr #-}
+
+-- | Usage: @'glGetActiveUniformName' program uniformIndex bufSize length uniformName@
+--
+-- The length of @length@ should be @1@.
+--
+-- The length of @uniformName@ should be @bufSize@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetActiveUniformName.xhtml>
+
+
+glGetActiveUniformName :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
+glGetActiveUniformName = ffiuintuintsizeiPtrsizeiPtrcharIOV glGetActiveUniformNameFunPtr
+
+glGetActiveUniformNameFunPtr :: FunPtr (GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
+glGetActiveUniformNameFunPtr = unsafePerformIO (getProcAddress "glGetActiveUniformName")
+
+{-# NOINLINE glGetActiveUniformNameFunPtr #-}
+
+-- | Usage: @'glGetActiveUniformsiv' program uniformCount uniformIndices pname params@
+--
+-- The length of @uniformIndices@ should be @uniformCount@.
+--
+-- The length of @params@ should be @COMPSIZE(uniformCount,pname)@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetActiveUniformsiv.xhtml>
+
+
+glGetActiveUniformsiv :: MonadIO m => GLuint -> GLsizei -> Ptr GLuint -> GLenum -> Ptr GLint -> m ()
+glGetActiveUniformsiv = ffiuintsizeiPtruintenumPtrintIOV glGetActiveUniformsivFunPtr
+
+glGetActiveUniformsivFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLuint -> GLenum -> Ptr GLint -> IO ())
+glGetActiveUniformsivFunPtr = unsafePerformIO (getProcAddress "glGetActiveUniformsiv")
+
+{-# NOINLINE glGetActiveUniformsivFunPtr #-}
+
+-- | Usage: @'glGetUniformBlockIndex' program uniformBlockName@
+--
+-- The length of @uniformBlockName@ should be @COMPSIZE()@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetUniformBlockIndex.xhtml>
+
+
+glGetUniformBlockIndex :: MonadIO m => GLuint -> Ptr GLchar -> m GLuint
+glGetUniformBlockIndex = ffiuintPtrcharIOuint glGetUniformBlockIndexFunPtr
+
+glGetUniformBlockIndexFunPtr :: FunPtr (GLuint -> Ptr GLchar -> IO GLuint)
+glGetUniformBlockIndexFunPtr = unsafePerformIO (getProcAddress "glGetUniformBlockIndex")
+
+{-# NOINLINE glGetUniformBlockIndexFunPtr #-}
+
+-- | Usage: @'glGetUniformIndices' program uniformCount uniformNames uniformIndices@
+--
+-- The length of @uniformNames@ should be @COMPSIZE(uniformCount)@.
+--
+-- The length of @uniformIndices@ should be @COMPSIZE(uniformCount)@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetUniformIndices.xhtml>
+
+
+glGetUniformIndices :: MonadIO m => GLuint -> GLsizei -> Ptr (Ptr GLchar) -> Ptr GLuint -> m ()
+glGetUniformIndices = ffiuintsizeiPtrPtrcharPtruintIOV glGetUniformIndicesFunPtr
+
+glGetUniformIndicesFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr (Ptr GLchar) -> Ptr GLuint -> IO ())
+glGetUniformIndicesFunPtr = unsafePerformIO (getProcAddress "glGetUniformIndices")
+
+{-# NOINLINE glGetUniformIndicesFunPtr #-}
+
+-- | Usage: @'glUniformBlockBinding' program uniformBlockIndex uniformBlockBinding@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glUniformBlockBinding.xhtml>
+
+
+glUniformBlockBinding :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()
+glUniformBlockBinding = ffiuintuintuintIOV glUniformBlockBindingFunPtr
+
+glUniformBlockBindingFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> IO ())
+glUniformBlockBindingFunPtr = unsafePerformIO (getProcAddress "glUniformBlockBinding")
+
+{-# NOINLINE glUniformBlockBindingFunPtr #-}
+
+pattern GL_ACTIVE_UNIFORM_BLOCKS = 0x8A36
+
+pattern GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH = 0x8A35
+
+pattern GL_INVALID_INDEX = 0xFFFFFFFF
+
+pattern GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS = 0x8A33
+
+pattern GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS = 0x8A32
+
+pattern GL_MAX_COMBINED_UNIFORM_BLOCKS = 0x8A2E
+
+pattern GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS = 0x8A31
+
+pattern GL_MAX_FRAGMENT_UNIFORM_BLOCKS = 0x8A2D
+
+pattern GL_MAX_GEOMETRY_UNIFORM_BLOCKS = 0x8A2C
+
+pattern GL_MAX_UNIFORM_BLOCK_SIZE = 0x8A30
+
+pattern GL_MAX_UNIFORM_BUFFER_BINDINGS = 0x8A2F
+
+pattern GL_MAX_VERTEX_UNIFORM_BLOCKS = 0x8A2B
+
+pattern GL_UNIFORM_ARRAY_STRIDE = 0x8A3C
+
+pattern GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS = 0x8A42
+
+pattern GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES = 0x8A43
+
+pattern GL_UNIFORM_BLOCK_BINDING = 0x8A3F
+
+pattern GL_UNIFORM_BLOCK_DATA_SIZE = 0x8A40
+
+pattern GL_UNIFORM_BLOCK_INDEX = 0x8A3A
+
+pattern GL_UNIFORM_BLOCK_NAME_LENGTH = 0x8A41
+
+pattern GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER = 0x8A46
+
+pattern GL_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER = 0x8A45
+
+pattern GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER = 0x8A44
+
+pattern GL_UNIFORM_BUFFER = 0x8A11
+
+pattern GL_UNIFORM_BUFFER_BINDING = 0x8A28
+
+pattern GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT = 0x8A34
+
+pattern GL_UNIFORM_BUFFER_SIZE = 0x8A2A
+
+pattern GL_UNIFORM_BUFFER_START = 0x8A29
+
+pattern GL_UNIFORM_IS_ROW_MAJOR = 0x8A3E
+
+pattern GL_UNIFORM_MATRIX_STRIDE = 0x8A3D
+
+pattern GL_UNIFORM_OFFSET = 0x8A3B
+
+pattern GL_UNIFORM_TYPE = 0x8A37
+
+pattern GL_BGRA = 0x80E1
+
+-- | Usage: @'glBindVertexArray' array@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBindVertexArray.xhtml>
+
+
+glBindVertexArray :: MonadIO m => GLuint -> m ()
+glBindVertexArray = ffiuintIOV glBindVertexArrayFunPtr
+
+glBindVertexArrayFunPtr :: FunPtr (GLuint -> IO ())
+glBindVertexArrayFunPtr = unsafePerformIO (getProcAddress "glBindVertexArray")
+
+{-# NOINLINE glBindVertexArrayFunPtr #-}
+
+-- | Usage: @'glDeleteVertexArrays' n arrays@
+--
+-- The length of @arrays@ should be @n@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDeleteVertexArrays.xhtml>
+
+
+glDeleteVertexArrays :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glDeleteVertexArrays = ffisizeiPtruintIOV glDeleteVertexArraysFunPtr
+
+glDeleteVertexArraysFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glDeleteVertexArraysFunPtr = unsafePerformIO (getProcAddress "glDeleteVertexArrays")
+
+{-# NOINLINE glDeleteVertexArraysFunPtr #-}
+
+-- | Usage: @'glGenVertexArrays' n arrays@
+--
+-- The length of @arrays@ should be @n@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGenVertexArrays.xhtml>
+
+
+glGenVertexArrays :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glGenVertexArrays = ffisizeiPtruintIOV glGenVertexArraysFunPtr
+
+glGenVertexArraysFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glGenVertexArraysFunPtr = unsafePerformIO (getProcAddress "glGenVertexArrays")
+
+{-# NOINLINE glGenVertexArraysFunPtr #-}
+
+-- | Usage: @'glIsVertexArray' array@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glIsVertexArray.xhtml>
+
+
+glIsVertexArray :: MonadIO m => GLuint -> m GLboolean
+glIsVertexArray = ffiuintIOboolean glIsVertexArrayFunPtr
+
+glIsVertexArrayFunPtr :: FunPtr (GLuint -> IO GLboolean)
+glIsVertexArrayFunPtr = unsafePerformIO (getProcAddress "glIsVertexArray")
+
+{-# NOINLINE glIsVertexArrayFunPtr #-}
+
+pattern GL_VERTEX_ARRAY_BINDING = 0x85B5
+
+-- | Usage: @'glGetVertexAttribLdv' index pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetVertexAttribLdv :: MonadIO m => GLuint -> GLenum -> Ptr GLdouble -> m ()
+glGetVertexAttribLdv = ffiuintenumPtrdoubleIOV glGetVertexAttribLdvFunPtr
+
+glGetVertexAttribLdvFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLdouble -> IO ())
+glGetVertexAttribLdvFunPtr = unsafePerformIO (getProcAddress "glGetVertexAttribLdv")
+
+{-# NOINLINE glGetVertexAttribLdvFunPtr #-}
+
+-- | Usage: @'glVertexAttribL1d' index x@
+
+
+glVertexAttribL1d :: MonadIO m => GLuint -> GLdouble -> m ()
+glVertexAttribL1d = ffiuintdoubleIOV glVertexAttribL1dFunPtr
+
+glVertexAttribL1dFunPtr :: FunPtr (GLuint -> GLdouble -> IO ())
+glVertexAttribL1dFunPtr = unsafePerformIO (getProcAddress "glVertexAttribL1d")
+
+{-# NOINLINE glVertexAttribL1dFunPtr #-}
+
+-- | Usage: @'glVertexAttribL1dv' index v@
+--
+-- The length of @v@ should be @1@.
+
+
+glVertexAttribL1dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()
+glVertexAttribL1dv = ffiuintPtrdoubleIOV glVertexAttribL1dvFunPtr
+
+glVertexAttribL1dvFunPtr :: FunPtr (GLuint -> Ptr GLdouble -> IO ())
+glVertexAttribL1dvFunPtr = unsafePerformIO (getProcAddress "glVertexAttribL1dv")
+
+{-# NOINLINE glVertexAttribL1dvFunPtr #-}
+
+-- | Usage: @'glVertexAttribL2d' index x y@
+
+
+glVertexAttribL2d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> m ()
+glVertexAttribL2d = ffiuintdoubledoubleIOV glVertexAttribL2dFunPtr
+
+glVertexAttribL2dFunPtr :: FunPtr (GLuint -> GLdouble -> GLdouble -> IO ())
+glVertexAttribL2dFunPtr = unsafePerformIO (getProcAddress "glVertexAttribL2d")
+
+{-# NOINLINE glVertexAttribL2dFunPtr #-}
+
+-- | Usage: @'glVertexAttribL2dv' index v@
+--
+-- The length of @v@ should be @2@.
+
+
+glVertexAttribL2dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()
+glVertexAttribL2dv = ffiuintPtrdoubleIOV glVertexAttribL2dvFunPtr
+
+glVertexAttribL2dvFunPtr :: FunPtr (GLuint -> Ptr GLdouble -> IO ())
+glVertexAttribL2dvFunPtr = unsafePerformIO (getProcAddress "glVertexAttribL2dv")
+
+{-# NOINLINE glVertexAttribL2dvFunPtr #-}
+
+-- | Usage: @'glVertexAttribL3d' index x y z@
+
+
+glVertexAttribL3d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> m ()
+glVertexAttribL3d = ffiuintdoubledoubledoubleIOV glVertexAttribL3dFunPtr
+
+glVertexAttribL3dFunPtr :: FunPtr (GLuint -> GLdouble -> GLdouble -> GLdouble -> IO ())
+glVertexAttribL3dFunPtr = unsafePerformIO (getProcAddress "glVertexAttribL3d")
+
+{-# NOINLINE glVertexAttribL3dFunPtr #-}
+
+-- | Usage: @'glVertexAttribL3dv' index v@
+--
+-- The length of @v@ should be @3@.
+
+
+glVertexAttribL3dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()
+glVertexAttribL3dv = ffiuintPtrdoubleIOV glVertexAttribL3dvFunPtr
+
+glVertexAttribL3dvFunPtr :: FunPtr (GLuint -> Ptr GLdouble -> IO ())
+glVertexAttribL3dvFunPtr = unsafePerformIO (getProcAddress "glVertexAttribL3dv")
+
+{-# NOINLINE glVertexAttribL3dvFunPtr #-}
+
+-- | Usage: @'glVertexAttribL4d' index x y z w@
+
+
+glVertexAttribL4d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
+glVertexAttribL4d = ffiuintdoubledoubledoubledoubleIOV glVertexAttribL4dFunPtr
+
+glVertexAttribL4dFunPtr :: FunPtr (GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
+glVertexAttribL4dFunPtr = unsafePerformIO (getProcAddress "glVertexAttribL4d")
+
+{-# NOINLINE glVertexAttribL4dFunPtr #-}
+
+-- | Usage: @'glVertexAttribL4dv' index v@
+--
+-- The length of @v@ should be @4@.
+
+
+glVertexAttribL4dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()
+glVertexAttribL4dv = ffiuintPtrdoubleIOV glVertexAttribL4dvFunPtr
+
+glVertexAttribL4dvFunPtr :: FunPtr (GLuint -> Ptr GLdouble -> IO ())
+glVertexAttribL4dvFunPtr = unsafePerformIO (getProcAddress "glVertexAttribL4dv")
+
+{-# NOINLINE glVertexAttribL4dvFunPtr #-}
+
+-- | Usage: @'glVertexAttribLPointer' index size type stride pointer@
+--
+-- The length of @pointer@ should be @size@.
+
+
+glVertexAttribLPointer :: MonadIO m => GLuint -> GLint -> GLenum -> GLsizei -> Ptr () -> m ()
+glVertexAttribLPointer = ffiuintintenumsizeiPtrVIOV glVertexAttribLPointerFunPtr
+
+glVertexAttribLPointerFunPtr :: FunPtr (GLuint -> GLint -> GLenum -> GLsizei -> Ptr () -> IO ())
+glVertexAttribLPointerFunPtr = unsafePerformIO (getProcAddress "glVertexAttribLPointer")
+
+{-# NOINLINE glVertexAttribLPointerFunPtr #-}
+
+-- | Usage: @'glBindVertexBuffer' bindingindex buffer offset stride@
+--
+-- The parameter @offset@ is a @BufferOffset@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBindVertexBuffer.xhtml>
+
+
+glBindVertexBuffer :: MonadIO m => GLuint -> GLuint -> GLintptr -> GLsizei -> m ()
+glBindVertexBuffer = ffiuintuintintptrsizeiIOV glBindVertexBufferFunPtr
+
+glBindVertexBufferFunPtr :: FunPtr (GLuint -> GLuint -> GLintptr -> GLsizei -> IO ())
+glBindVertexBufferFunPtr = unsafePerformIO (getProcAddress "glBindVertexBuffer")
+
+{-# NOINLINE glBindVertexBufferFunPtr #-}
+
+-- | Usage: @'glVertexAttribBinding' attribindex bindingindex@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glVertexAttribBinding.xhtml>
+
+
+glVertexAttribBinding :: MonadIO m => GLuint -> GLuint -> m ()
+glVertexAttribBinding = ffiuintuintIOV glVertexAttribBindingFunPtr
+
+glVertexAttribBindingFunPtr :: FunPtr (GLuint -> GLuint -> IO ())
+glVertexAttribBindingFunPtr = unsafePerformIO (getProcAddress "glVertexAttribBinding")
+
+{-# NOINLINE glVertexAttribBindingFunPtr #-}
+
+-- | Usage: @'glVertexAttribFormat' attribindex size type normalized relativeoffset@
+--
+-- The parameter @normalized@ is a @Boolean@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FALSE', 'Graphics.GL.Raw.Internal.Shared.GL_TRUE'.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glVertexAttribFormat.xhtml>
+
+
+glVertexAttribFormat :: MonadIO m => GLuint -> GLint -> GLenum -> GLboolean -> GLuint -> m ()
+glVertexAttribFormat = ffiuintintenumbooleanuintIOV glVertexAttribFormatFunPtr
+
+glVertexAttribFormatFunPtr :: FunPtr (GLuint -> GLint -> GLenum -> GLboolean -> GLuint -> IO ())
+glVertexAttribFormatFunPtr = unsafePerformIO (getProcAddress "glVertexAttribFormat")
+
+{-# NOINLINE glVertexAttribFormatFunPtr #-}
+
+-- | Usage: @'glVertexAttribIFormat' attribindex size type relativeoffset@
+
+
+glVertexAttribIFormat :: MonadIO m => GLuint -> GLint -> GLenum -> GLuint -> m ()
+glVertexAttribIFormat = ffiuintintenumuintIOV glVertexAttribIFormatFunPtr
+
+glVertexAttribIFormatFunPtr :: FunPtr (GLuint -> GLint -> GLenum -> GLuint -> IO ())
+glVertexAttribIFormatFunPtr = unsafePerformIO (getProcAddress "glVertexAttribIFormat")
+
+{-# NOINLINE glVertexAttribIFormatFunPtr #-}
+
+-- | Usage: @'glVertexAttribLFormat' attribindex size type relativeoffset@
+
+
+glVertexAttribLFormat :: MonadIO m => GLuint -> GLint -> GLenum -> GLuint -> m ()
+glVertexAttribLFormat = ffiuintintenumuintIOV glVertexAttribLFormatFunPtr
+
+glVertexAttribLFormatFunPtr :: FunPtr (GLuint -> GLint -> GLenum -> GLuint -> IO ())
+glVertexAttribLFormatFunPtr = unsafePerformIO (getProcAddress "glVertexAttribLFormat")
+
+{-# NOINLINE glVertexAttribLFormatFunPtr #-}
+
+-- | Usage: @'glVertexBindingDivisor' bindingindex divisor@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glVertexBindingDivisor.xhtml>
+
+
+glVertexBindingDivisor :: MonadIO m => GLuint -> GLuint -> m ()
+glVertexBindingDivisor = ffiuintuintIOV glVertexBindingDivisorFunPtr
+
+glVertexBindingDivisorFunPtr :: FunPtr (GLuint -> GLuint -> IO ())
+glVertexBindingDivisorFunPtr = unsafePerformIO (getProcAddress "glVertexBindingDivisor")
+
+{-# NOINLINE glVertexBindingDivisorFunPtr #-}
+
+pattern GL_MAX_VERTEX_ATTRIB_BINDINGS = 0x82DA
+
+pattern GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET = 0x82D9
+
+pattern GL_VERTEX_ATTRIB_BINDING = 0x82D4
+
+pattern GL_VERTEX_ATTRIB_RELATIVE_OFFSET = 0x82D5
+
+pattern GL_VERTEX_BINDING_DIVISOR = 0x82D6
+
+pattern GL_VERTEX_BINDING_OFFSET = 0x82D7
+
+pattern GL_VERTEX_BINDING_STRIDE = 0x82D8
+
+-- | Usage: @'glDisableVertexAttribArrayARB' index@
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glDisableVertexAttribArray'.
+
+
+glDisableVertexAttribArrayARB :: MonadIO m => GLuint -> m ()
+glDisableVertexAttribArrayARB = ffiuintIOV glDisableVertexAttribArrayARBFunPtr
+
+glDisableVertexAttribArrayARBFunPtr :: FunPtr (GLuint -> IO ())
+glDisableVertexAttribArrayARBFunPtr = unsafePerformIO (getProcAddress "glDisableVertexAttribArrayARB")
+
+{-# NOINLINE glDisableVertexAttribArrayARBFunPtr #-}
+
+-- | Usage: @'glEnableVertexAttribArrayARB' index@
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glEnableVertexAttribArray'.
+
+
+glEnableVertexAttribArrayARB :: MonadIO m => GLuint -> m ()
+glEnableVertexAttribArrayARB = ffiuintIOV glEnableVertexAttribArrayARBFunPtr
+
+glEnableVertexAttribArrayARBFunPtr :: FunPtr (GLuint -> IO ())
+glEnableVertexAttribArrayARBFunPtr = unsafePerformIO (getProcAddress "glEnableVertexAttribArrayARB")
+
+{-# NOINLINE glEnableVertexAttribArrayARBFunPtr #-}
+
+-- | Usage: @'glGetVertexAttribPointervARB' index pname pointer@
+--
+-- The parameter @pname@ is a @VertexAttribPointerPropertyARB@.
+--
+-- The length of @pointer@ should be @1@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glGetVertexAttribPointerv'.
+
+
+glGetVertexAttribPointervARB :: MonadIO m => GLuint -> GLenum -> Ptr (Ptr ()) -> m ()
+glGetVertexAttribPointervARB = ffiuintenumPtrPtrVIOV glGetVertexAttribPointervARBFunPtr
+
+glGetVertexAttribPointervARBFunPtr :: FunPtr (GLuint -> GLenum -> Ptr (Ptr ()) -> IO ())
+glGetVertexAttribPointervARBFunPtr = unsafePerformIO (getProcAddress "glGetVertexAttribPointervARB")
+
+{-# NOINLINE glGetVertexAttribPointervARBFunPtr #-}
+
+-- | Usage: @'glGetVertexAttribdvARB' index pname params@
+--
+-- The parameter @pname@ is a @VertexAttribPropertyARB@.
+--
+-- The length of @params@ should be @4@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glGetVertexAttribdv'.
+
+
+glGetVertexAttribdvARB :: MonadIO m => GLuint -> GLenum -> Ptr GLdouble -> m ()
+glGetVertexAttribdvARB = ffiuintenumPtrdoubleIOV glGetVertexAttribdvARBFunPtr
+
+glGetVertexAttribdvARBFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLdouble -> IO ())
+glGetVertexAttribdvARBFunPtr = unsafePerformIO (getProcAddress "glGetVertexAttribdvARB")
+
+{-# NOINLINE glGetVertexAttribdvARBFunPtr #-}
+
+-- | Usage: @'glGetVertexAttribfvARB' index pname params@
+--
+-- The parameter @pname@ is a @VertexAttribPropertyARB@.
+--
+-- The length of @params@ should be @4@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glGetVertexAttribfv'.
+
+
+glGetVertexAttribfvARB :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()
+glGetVertexAttribfvARB = ffiuintenumPtrfloatIOV glGetVertexAttribfvARBFunPtr
+
+glGetVertexAttribfvARBFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLfloat -> IO ())
+glGetVertexAttribfvARBFunPtr = unsafePerformIO (getProcAddress "glGetVertexAttribfvARB")
+
+{-# NOINLINE glGetVertexAttribfvARBFunPtr #-}
+
+-- | Usage: @'glGetVertexAttribivARB' index pname params@
+--
+-- The parameter @pname@ is a @VertexAttribPropertyARB@.
+--
+-- The length of @params@ should be @4@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glGetVertexAttribiv'.
+
+
+glGetVertexAttribivARB :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
+glGetVertexAttribivARB = ffiuintenumPtrintIOV glGetVertexAttribivARBFunPtr
+
+glGetVertexAttribivARBFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+glGetVertexAttribivARBFunPtr = unsafePerformIO (getProcAddress "glGetVertexAttribivARB")
+
+{-# NOINLINE glGetVertexAttribivARBFunPtr #-}
+
+-- | Usage: @'glVertexAttrib1dARB' index x@
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glVertexAttrib1d'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glVertexAttrib1dvARB'.
+
+
+glVertexAttrib1dARB :: MonadIO m => GLuint -> GLdouble -> m ()
+glVertexAttrib1dARB = ffiuintdoubleIOV glVertexAttrib1dARBFunPtr
+
+glVertexAttrib1dARBFunPtr :: FunPtr (GLuint -> GLdouble -> IO ())
+glVertexAttrib1dARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib1dARB")
+
+{-# NOINLINE glVertexAttrib1dARBFunPtr #-}
+
+-- | Usage: @'glVertexAttrib1dvARB' index v@
+--
+-- The length of @v@ should be @1@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glVertexAttrib1dv'.
+
+
+glVertexAttrib1dvARB :: MonadIO m => GLuint -> Ptr GLdouble -> m ()
+glVertexAttrib1dvARB = ffiuintPtrdoubleIOV glVertexAttrib1dvARBFunPtr
+
+glVertexAttrib1dvARBFunPtr :: FunPtr (GLuint -> Ptr GLdouble -> IO ())
+glVertexAttrib1dvARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib1dvARB")
+
+{-# NOINLINE glVertexAttrib1dvARBFunPtr #-}
+
+-- | Usage: @'glVertexAttrib1fARB' index x@
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glVertexAttrib1f'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glVertexAttrib1fvARB'.
+
+
+glVertexAttrib1fARB :: MonadIO m => GLuint -> GLfloat -> m ()
+glVertexAttrib1fARB = ffiuintfloatIOV glVertexAttrib1fARBFunPtr
+
+glVertexAttrib1fARBFunPtr :: FunPtr (GLuint -> GLfloat -> IO ())
+glVertexAttrib1fARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib1fARB")
+
+{-# NOINLINE glVertexAttrib1fARBFunPtr #-}
+
+-- | Usage: @'glVertexAttrib1fvARB' index v@
+--
+-- The length of @v@ should be @1@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glVertexAttrib1fv'.
+
+
+glVertexAttrib1fvARB :: MonadIO m => GLuint -> Ptr GLfloat -> m ()
+glVertexAttrib1fvARB = ffiuintPtrfloatIOV glVertexAttrib1fvARBFunPtr
+
+glVertexAttrib1fvARBFunPtr :: FunPtr (GLuint -> Ptr GLfloat -> IO ())
+glVertexAttrib1fvARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib1fvARB")
+
+{-# NOINLINE glVertexAttrib1fvARBFunPtr #-}
+
+-- | Usage: @'glVertexAttrib1sARB' index x@
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glVertexAttrib1s'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glVertexAttrib1svARB'.
+
+
+glVertexAttrib1sARB :: MonadIO m => GLuint -> GLshort -> m ()
+glVertexAttrib1sARB = ffiuintshortIOV glVertexAttrib1sARBFunPtr
+
+glVertexAttrib1sARBFunPtr :: FunPtr (GLuint -> GLshort -> IO ())
+glVertexAttrib1sARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib1sARB")
+
+{-# NOINLINE glVertexAttrib1sARBFunPtr #-}
+
+-- | Usage: @'glVertexAttrib1svARB' index v@
+--
+-- The length of @v@ should be @1@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glVertexAttrib1sv'.
+
+
+glVertexAttrib1svARB :: MonadIO m => GLuint -> Ptr GLshort -> m ()
+glVertexAttrib1svARB = ffiuintPtrshortIOV glVertexAttrib1svARBFunPtr
+
+glVertexAttrib1svARBFunPtr :: FunPtr (GLuint -> Ptr GLshort -> IO ())
+glVertexAttrib1svARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib1svARB")
+
+{-# NOINLINE glVertexAttrib1svARBFunPtr #-}
+
+-- | Usage: @'glVertexAttrib2dARB' index x y@
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glVertexAttrib2d'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glVertexAttrib2dvARB'.
+
+
+glVertexAttrib2dARB :: MonadIO m => GLuint -> GLdouble -> GLdouble -> m ()
+glVertexAttrib2dARB = ffiuintdoubledoubleIOV glVertexAttrib2dARBFunPtr
+
+glVertexAttrib2dARBFunPtr :: FunPtr (GLuint -> GLdouble -> GLdouble -> IO ())
+glVertexAttrib2dARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib2dARB")
+
+{-# NOINLINE glVertexAttrib2dARBFunPtr #-}
+
+-- | Usage: @'glVertexAttrib2dvARB' index v@
+--
+-- The length of @v@ should be @2@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glVertexAttrib2dv'.
+
+
+glVertexAttrib2dvARB :: MonadIO m => GLuint -> Ptr GLdouble -> m ()
+glVertexAttrib2dvARB = ffiuintPtrdoubleIOV glVertexAttrib2dvARBFunPtr
+
+glVertexAttrib2dvARBFunPtr :: FunPtr (GLuint -> Ptr GLdouble -> IO ())
+glVertexAttrib2dvARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib2dvARB")
+
+{-# NOINLINE glVertexAttrib2dvARBFunPtr #-}
+
+-- | Usage: @'glVertexAttrib2fARB' index x y@
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glVertexAttrib2f'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glVertexAttrib2fvARB'.
+
+
+glVertexAttrib2fARB :: MonadIO m => GLuint -> GLfloat -> GLfloat -> m ()
+glVertexAttrib2fARB = ffiuintfloatfloatIOV glVertexAttrib2fARBFunPtr
+
+glVertexAttrib2fARBFunPtr :: FunPtr (GLuint -> GLfloat -> GLfloat -> IO ())
+glVertexAttrib2fARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib2fARB")
+
+{-# NOINLINE glVertexAttrib2fARBFunPtr #-}
+
+-- | Usage: @'glVertexAttrib2fvARB' index v@
+--
+-- The length of @v@ should be @2@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glVertexAttrib2fv'.
+
+
+glVertexAttrib2fvARB :: MonadIO m => GLuint -> Ptr GLfloat -> m ()
+glVertexAttrib2fvARB = ffiuintPtrfloatIOV glVertexAttrib2fvARBFunPtr
+
+glVertexAttrib2fvARBFunPtr :: FunPtr (GLuint -> Ptr GLfloat -> IO ())
+glVertexAttrib2fvARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib2fvARB")
+
+{-# NOINLINE glVertexAttrib2fvARBFunPtr #-}
+
+-- | Usage: @'glVertexAttrib2sARB' index x y@
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glVertexAttrib2s'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glVertexAttrib2svARB'.
+
+
+glVertexAttrib2sARB :: MonadIO m => GLuint -> GLshort -> GLshort -> m ()
+glVertexAttrib2sARB = ffiuintshortshortIOV glVertexAttrib2sARBFunPtr
+
+glVertexAttrib2sARBFunPtr :: FunPtr (GLuint -> GLshort -> GLshort -> IO ())
+glVertexAttrib2sARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib2sARB")
+
+{-# NOINLINE glVertexAttrib2sARBFunPtr #-}
+
+-- | Usage: @'glVertexAttrib2svARB' index v@
+--
+-- The length of @v@ should be @2@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glVertexAttrib2sv'.
+
+
+glVertexAttrib2svARB :: MonadIO m => GLuint -> Ptr GLshort -> m ()
+glVertexAttrib2svARB = ffiuintPtrshortIOV glVertexAttrib2svARBFunPtr
+
+glVertexAttrib2svARBFunPtr :: FunPtr (GLuint -> Ptr GLshort -> IO ())
+glVertexAttrib2svARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib2svARB")
+
+{-# NOINLINE glVertexAttrib2svARBFunPtr #-}
+
+-- | Usage: @'glVertexAttrib3dARB' index x y z@
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glVertexAttrib3d'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glVertexAttrib3dvARB'.
+
+
+glVertexAttrib3dARB :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> m ()
+glVertexAttrib3dARB = ffiuintdoubledoubledoubleIOV glVertexAttrib3dARBFunPtr
+
+glVertexAttrib3dARBFunPtr :: FunPtr (GLuint -> GLdouble -> GLdouble -> GLdouble -> IO ())
+glVertexAttrib3dARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib3dARB")
+
+{-# NOINLINE glVertexAttrib3dARBFunPtr #-}
+
+-- | Usage: @'glVertexAttrib3dvARB' index v@
+--
+-- The length of @v@ should be @3@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glVertexAttrib3dv'.
+
+
+glVertexAttrib3dvARB :: MonadIO m => GLuint -> Ptr GLdouble -> m ()
+glVertexAttrib3dvARB = ffiuintPtrdoubleIOV glVertexAttrib3dvARBFunPtr
+
+glVertexAttrib3dvARBFunPtr :: FunPtr (GLuint -> Ptr GLdouble -> IO ())
+glVertexAttrib3dvARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib3dvARB")
+
+{-# NOINLINE glVertexAttrib3dvARBFunPtr #-}
+
+-- | Usage: @'glVertexAttrib3fARB' index x y z@
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glVertexAttrib3f'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glVertexAttrib3fvARB'.
+
+
+glVertexAttrib3fARB :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> m ()
+glVertexAttrib3fARB = ffiuintfloatfloatfloatIOV glVertexAttrib3fARBFunPtr
+
+glVertexAttrib3fARBFunPtr :: FunPtr (GLuint -> GLfloat -> GLfloat -> GLfloat -> IO ())
+glVertexAttrib3fARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib3fARB")
+
+{-# NOINLINE glVertexAttrib3fARBFunPtr #-}
+
+-- | Usage: @'glVertexAttrib3fvARB' index v@
+--
+-- The length of @v@ should be @3@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glVertexAttrib3fv'.
+
+
+glVertexAttrib3fvARB :: MonadIO m => GLuint -> Ptr GLfloat -> m ()
+glVertexAttrib3fvARB = ffiuintPtrfloatIOV glVertexAttrib3fvARBFunPtr
+
+glVertexAttrib3fvARBFunPtr :: FunPtr (GLuint -> Ptr GLfloat -> IO ())
+glVertexAttrib3fvARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib3fvARB")
+
+{-# NOINLINE glVertexAttrib3fvARBFunPtr #-}
+
+-- | Usage: @'glVertexAttrib3sARB' index x y z@
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glVertexAttrib3s'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glVertexAttrib3svARB'.
+
+
+glVertexAttrib3sARB :: MonadIO m => GLuint -> GLshort -> GLshort -> GLshort -> m ()
+glVertexAttrib3sARB = ffiuintshortshortshortIOV glVertexAttrib3sARBFunPtr
+
+glVertexAttrib3sARBFunPtr :: FunPtr (GLuint -> GLshort -> GLshort -> GLshort -> IO ())
+glVertexAttrib3sARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib3sARB")
+
+{-# NOINLINE glVertexAttrib3sARBFunPtr #-}
+
+-- | Usage: @'glVertexAttrib3svARB' index v@
+--
+-- The length of @v@ should be @3@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glVertexAttrib3sv'.
+
+
+glVertexAttrib3svARB :: MonadIO m => GLuint -> Ptr GLshort -> m ()
+glVertexAttrib3svARB = ffiuintPtrshortIOV glVertexAttrib3svARBFunPtr
+
+glVertexAttrib3svARBFunPtr :: FunPtr (GLuint -> Ptr GLshort -> IO ())
+glVertexAttrib3svARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib3svARB")
+
+{-# NOINLINE glVertexAttrib3svARBFunPtr #-}
+
+-- | Usage: @'glVertexAttrib4NbvARB' index v@
+--
+-- The length of @v@ should be @4@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glVertexAttrib4Nbv'.
+
+
+glVertexAttrib4NbvARB :: MonadIO m => GLuint -> Ptr GLbyte -> m ()
+glVertexAttrib4NbvARB = ffiuintPtrbyteIOV glVertexAttrib4NbvARBFunPtr
+
+glVertexAttrib4NbvARBFunPtr :: FunPtr (GLuint -> Ptr GLbyte -> IO ())
+glVertexAttrib4NbvARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4NbvARB")
+
+{-# NOINLINE glVertexAttrib4NbvARBFunPtr #-}
+
+-- | Usage: @'glVertexAttrib4NivARB' index v@
+--
+-- The length of @v@ should be @4@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glVertexAttrib4Niv'.
+
+
+glVertexAttrib4NivARB :: MonadIO m => GLuint -> Ptr GLint -> m ()
+glVertexAttrib4NivARB = ffiuintPtrintIOV glVertexAttrib4NivARBFunPtr
+
+glVertexAttrib4NivARBFunPtr :: FunPtr (GLuint -> Ptr GLint -> IO ())
+glVertexAttrib4NivARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4NivARB")
+
+{-# NOINLINE glVertexAttrib4NivARBFunPtr #-}
+
+-- | Usage: @'glVertexAttrib4NsvARB' index v@
+--
+-- The length of @v@ should be @4@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glVertexAttrib4Nsv'.
+
+
+glVertexAttrib4NsvARB :: MonadIO m => GLuint -> Ptr GLshort -> m ()
+glVertexAttrib4NsvARB = ffiuintPtrshortIOV glVertexAttrib4NsvARBFunPtr
+
+glVertexAttrib4NsvARBFunPtr :: FunPtr (GLuint -> Ptr GLshort -> IO ())
+glVertexAttrib4NsvARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4NsvARB")
+
+{-# NOINLINE glVertexAttrib4NsvARBFunPtr #-}
+
+-- | Usage: @'glVertexAttrib4NubARB' index x y z w@
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glVertexAttrib4Nub'.
+
+
+glVertexAttrib4NubARB :: MonadIO m => GLuint -> GLubyte -> GLubyte -> GLubyte -> GLubyte -> m ()
+glVertexAttrib4NubARB = ffiuintubyteubyteubyteubyteIOV glVertexAttrib4NubARBFunPtr
+
+glVertexAttrib4NubARBFunPtr :: FunPtr (GLuint -> GLubyte -> GLubyte -> GLubyte -> GLubyte -> IO ())
+glVertexAttrib4NubARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4NubARB")
+
+{-# NOINLINE glVertexAttrib4NubARBFunPtr #-}
+
+-- | Usage: @'glVertexAttrib4NubvARB' index v@
+--
+-- The length of @v@ should be @4@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glVertexAttrib4Nubv'.
+
+
+glVertexAttrib4NubvARB :: MonadIO m => GLuint -> Ptr GLubyte -> m ()
+glVertexAttrib4NubvARB = ffiuintPtrubyteIOV glVertexAttrib4NubvARBFunPtr
+
+glVertexAttrib4NubvARBFunPtr :: FunPtr (GLuint -> Ptr GLubyte -> IO ())
+glVertexAttrib4NubvARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4NubvARB")
+
+{-# NOINLINE glVertexAttrib4NubvARBFunPtr #-}
+
+-- | Usage: @'glVertexAttrib4NuivARB' index v@
+--
+-- The length of @v@ should be @4@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glVertexAttrib4Nuiv'.
+
+
+glVertexAttrib4NuivARB :: MonadIO m => GLuint -> Ptr GLuint -> m ()
+glVertexAttrib4NuivARB = ffiuintPtruintIOV glVertexAttrib4NuivARBFunPtr
+
+glVertexAttrib4NuivARBFunPtr :: FunPtr (GLuint -> Ptr GLuint -> IO ())
+glVertexAttrib4NuivARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4NuivARB")
+
+{-# NOINLINE glVertexAttrib4NuivARBFunPtr #-}
+
+-- | Usage: @'glVertexAttrib4NusvARB' index v@
+--
+-- The length of @v@ should be @4@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glVertexAttrib4Nusv'.
+
+
+glVertexAttrib4NusvARB :: MonadIO m => GLuint -> Ptr GLushort -> m ()
+glVertexAttrib4NusvARB = ffiuintPtrushortIOV glVertexAttrib4NusvARBFunPtr
+
+glVertexAttrib4NusvARBFunPtr :: FunPtr (GLuint -> Ptr GLushort -> IO ())
+glVertexAttrib4NusvARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4NusvARB")
+
+{-# NOINLINE glVertexAttrib4NusvARBFunPtr #-}
+
+-- | Usage: @'glVertexAttrib4bvARB' index v@
+--
+-- The length of @v@ should be @4@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glVertexAttrib4bv'.
+
+
+glVertexAttrib4bvARB :: MonadIO m => GLuint -> Ptr GLbyte -> m ()
+glVertexAttrib4bvARB = ffiuintPtrbyteIOV glVertexAttrib4bvARBFunPtr
+
+glVertexAttrib4bvARBFunPtr :: FunPtr (GLuint -> Ptr GLbyte -> IO ())
+glVertexAttrib4bvARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4bvARB")
+
+{-# NOINLINE glVertexAttrib4bvARBFunPtr #-}
+
+-- | Usage: @'glVertexAttrib4dARB' index x y z w@
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glVertexAttrib4d'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glVertexAttrib4dvARB'.
+
+
+glVertexAttrib4dARB :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
+glVertexAttrib4dARB = ffiuintdoubledoubledoubledoubleIOV glVertexAttrib4dARBFunPtr
+
+glVertexAttrib4dARBFunPtr :: FunPtr (GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
+glVertexAttrib4dARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4dARB")
+
+{-# NOINLINE glVertexAttrib4dARBFunPtr #-}
+
+-- | Usage: @'glVertexAttrib4dvARB' index v@
+--
+-- The length of @v@ should be @4@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glVertexAttrib4dv'.
+
+
+glVertexAttrib4dvARB :: MonadIO m => GLuint -> Ptr GLdouble -> m ()
+glVertexAttrib4dvARB = ffiuintPtrdoubleIOV glVertexAttrib4dvARBFunPtr
+
+glVertexAttrib4dvARBFunPtr :: FunPtr (GLuint -> Ptr GLdouble -> IO ())
+glVertexAttrib4dvARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4dvARB")
+
+{-# NOINLINE glVertexAttrib4dvARBFunPtr #-}
+
+-- | Usage: @'glVertexAttrib4fARB' index x y z w@
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glVertexAttrib4f'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glVertexAttrib4fvARB'.
+
+
+glVertexAttrib4fARB :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
+glVertexAttrib4fARB = ffiuintfloatfloatfloatfloatIOV glVertexAttrib4fARBFunPtr
+
+glVertexAttrib4fARBFunPtr :: FunPtr (GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+glVertexAttrib4fARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4fARB")
+
+{-# NOINLINE glVertexAttrib4fARBFunPtr #-}
+
+-- | Usage: @'glVertexAttrib4fvARB' index v@
+--
+-- The length of @v@ should be @4@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glVertexAttrib4fv'.
+
+
+glVertexAttrib4fvARB :: MonadIO m => GLuint -> Ptr GLfloat -> m ()
+glVertexAttrib4fvARB = ffiuintPtrfloatIOV glVertexAttrib4fvARBFunPtr
+
+glVertexAttrib4fvARBFunPtr :: FunPtr (GLuint -> Ptr GLfloat -> IO ())
+glVertexAttrib4fvARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4fvARB")
+
+{-# NOINLINE glVertexAttrib4fvARBFunPtr #-}
+
+-- | Usage: @'glVertexAttrib4ivARB' index v@
+--
+-- The length of @v@ should be @4@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glVertexAttrib4iv'.
+
+
+glVertexAttrib4ivARB :: MonadIO m => GLuint -> Ptr GLint -> m ()
+glVertexAttrib4ivARB = ffiuintPtrintIOV glVertexAttrib4ivARBFunPtr
+
+glVertexAttrib4ivARBFunPtr :: FunPtr (GLuint -> Ptr GLint -> IO ())
+glVertexAttrib4ivARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4ivARB")
+
+{-# NOINLINE glVertexAttrib4ivARBFunPtr #-}
+
+-- | Usage: @'glVertexAttrib4sARB' index x y z w@
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glVertexAttrib4s'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glVertexAttrib4svARB'.
+
+
+glVertexAttrib4sARB :: MonadIO m => GLuint -> GLshort -> GLshort -> GLshort -> GLshort -> m ()
+glVertexAttrib4sARB = ffiuintshortshortshortshortIOV glVertexAttrib4sARBFunPtr
+
+glVertexAttrib4sARBFunPtr :: FunPtr (GLuint -> GLshort -> GLshort -> GLshort -> GLshort -> IO ())
+glVertexAttrib4sARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4sARB")
+
+{-# NOINLINE glVertexAttrib4sARBFunPtr #-}
+
+-- | Usage: @'glVertexAttrib4svARB' index v@
+--
+-- The length of @v@ should be @4@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glVertexAttrib4sv'.
+
+
+glVertexAttrib4svARB :: MonadIO m => GLuint -> Ptr GLshort -> m ()
+glVertexAttrib4svARB = ffiuintPtrshortIOV glVertexAttrib4svARBFunPtr
+
+glVertexAttrib4svARBFunPtr :: FunPtr (GLuint -> Ptr GLshort -> IO ())
+glVertexAttrib4svARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4svARB")
+
+{-# NOINLINE glVertexAttrib4svARBFunPtr #-}
+
+-- | Usage: @'glVertexAttrib4ubvARB' index v@
+--
+-- The length of @v@ should be @4@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glVertexAttrib4ubv'.
+
+
+glVertexAttrib4ubvARB :: MonadIO m => GLuint -> Ptr GLubyte -> m ()
+glVertexAttrib4ubvARB = ffiuintPtrubyteIOV glVertexAttrib4ubvARBFunPtr
+
+glVertexAttrib4ubvARBFunPtr :: FunPtr (GLuint -> Ptr GLubyte -> IO ())
+glVertexAttrib4ubvARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4ubvARB")
+
+{-# NOINLINE glVertexAttrib4ubvARBFunPtr #-}
+
+-- | Usage: @'glVertexAttrib4uivARB' index v@
+--
+-- The length of @v@ should be @4@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glVertexAttrib4uiv'.
+
+
+glVertexAttrib4uivARB :: MonadIO m => GLuint -> Ptr GLuint -> m ()
+glVertexAttrib4uivARB = ffiuintPtruintIOV glVertexAttrib4uivARBFunPtr
+
+glVertexAttrib4uivARBFunPtr :: FunPtr (GLuint -> Ptr GLuint -> IO ())
+glVertexAttrib4uivARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4uivARB")
+
+{-# NOINLINE glVertexAttrib4uivARBFunPtr #-}
+
+-- | Usage: @'glVertexAttrib4usvARB' index v@
+--
+-- The length of @v@ should be @4@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glVertexAttrib4usv'.
+
+
+glVertexAttrib4usvARB :: MonadIO m => GLuint -> Ptr GLushort -> m ()
+glVertexAttrib4usvARB = ffiuintPtrushortIOV glVertexAttrib4usvARBFunPtr
+
+glVertexAttrib4usvARBFunPtr :: FunPtr (GLuint -> Ptr GLushort -> IO ())
+glVertexAttrib4usvARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4usvARB")
+
+{-# NOINLINE glVertexAttrib4usvARBFunPtr #-}
+
+-- | Usage: @'glVertexAttribPointerARB' index size type normalized stride pointer@
+--
+-- The parameter @type@ is a @VertexAttribPointerType@.
+--
+-- The parameter @normalized@ is a @Boolean@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FALSE', 'Graphics.GL.Raw.Internal.Shared.GL_TRUE'.
+--
+-- The length of @pointer@ should be @COMPSIZE(size,type,stride)@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glVertexAttribPointer'.
+
+
+glVertexAttribPointerARB :: MonadIO m => GLuint -> GLint -> GLenum -> GLboolean -> GLsizei -> Ptr () -> m ()
+glVertexAttribPointerARB = ffiuintintenumbooleansizeiPtrVIOV glVertexAttribPointerARBFunPtr
+
+glVertexAttribPointerARBFunPtr :: FunPtr (GLuint -> GLint -> GLenum -> GLboolean -> GLsizei -> Ptr () -> IO ())
+glVertexAttribPointerARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttribPointerARB")
+
+{-# NOINLINE glVertexAttribPointerARBFunPtr #-}
+
+pattern GL_CURRENT_VERTEX_ATTRIB_ARB = 0x8626
+
+pattern GL_MAX_VERTEX_ATTRIBS_ARB = 0x8869
+
+pattern GL_VERTEX_ATTRIB_ARRAY_ENABLED_ARB = 0x8622
+
+pattern GL_VERTEX_ATTRIB_ARRAY_NORMALIZED_ARB = 0x886A
+
+pattern GL_VERTEX_ATTRIB_ARRAY_POINTER_ARB = 0x8645
+
+pattern GL_VERTEX_ATTRIB_ARRAY_SIZE_ARB = 0x8623
+
+pattern GL_VERTEX_ATTRIB_ARRAY_STRIDE_ARB = 0x8624
+
+pattern GL_VERTEX_ATTRIB_ARRAY_TYPE_ARB = 0x8625
+
+pattern GL_VERTEX_PROGRAM_POINT_SIZE_ARB = 0x8642
+
+pattern GL_VERTEX_PROGRAM_TWO_SIDE_ARB = 0x8643
+
+pattern GL_FLOAT = 0x1406
+
+pattern GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB = 0x8B4C
+
+pattern GL_UNSIGNED_INT_10F_11F_11F_REV = 0x8C3B
+
+-- | Usage: @'glColorP3ui' type color@
+
+
+glColorP3ui :: MonadIO m => GLenum -> GLuint -> m ()
+glColorP3ui = ffienumuintIOV glColorP3uiFunPtr
+
+glColorP3uiFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
+glColorP3uiFunPtr = unsafePerformIO (getProcAddress "glColorP3ui")
+
+{-# NOINLINE glColorP3uiFunPtr #-}
+
+-- | Usage: @'glColorP3uiv' type color@
+--
+-- The length of @color@ should be @1@.
+
+
+glColorP3uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
+glColorP3uiv = ffienumPtruintIOV glColorP3uivFunPtr
+
+glColorP3uivFunPtr :: FunPtr (GLenum -> Ptr GLuint -> IO ())
+glColorP3uivFunPtr = unsafePerformIO (getProcAddress "glColorP3uiv")
+
+{-# NOINLINE glColorP3uivFunPtr #-}
+
+-- | Usage: @'glColorP4ui' type color@
+
+
+glColorP4ui :: MonadIO m => GLenum -> GLuint -> m ()
+glColorP4ui = ffienumuintIOV glColorP4uiFunPtr
+
+glColorP4uiFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
+glColorP4uiFunPtr = unsafePerformIO (getProcAddress "glColorP4ui")
+
+{-# NOINLINE glColorP4uiFunPtr #-}
+
+-- | Usage: @'glColorP4uiv' type color@
+--
+-- The length of @color@ should be @1@.
+
+
+glColorP4uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
+glColorP4uiv = ffienumPtruintIOV glColorP4uivFunPtr
+
+glColorP4uivFunPtr :: FunPtr (GLenum -> Ptr GLuint -> IO ())
+glColorP4uivFunPtr = unsafePerformIO (getProcAddress "glColorP4uiv")
+
+{-# NOINLINE glColorP4uivFunPtr #-}
+
+-- | Usage: @'glMultiTexCoordP1ui' texture type coords@
+
+
+glMultiTexCoordP1ui :: MonadIO m => GLenum -> GLenum -> GLuint -> m ()
+glMultiTexCoordP1ui = ffienumenumuintIOV glMultiTexCoordP1uiFunPtr
+
+glMultiTexCoordP1uiFunPtr :: FunPtr (GLenum -> GLenum -> GLuint -> IO ())
+glMultiTexCoordP1uiFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoordP1ui")
+
+{-# NOINLINE glMultiTexCoordP1uiFunPtr #-}
+
+-- | Usage: @'glMultiTexCoordP1uiv' texture type coords@
+--
+-- The length of @coords@ should be @1@.
+
+
+glMultiTexCoordP1uiv :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()
+glMultiTexCoordP1uiv = ffienumenumPtruintIOV glMultiTexCoordP1uivFunPtr
+
+glMultiTexCoordP1uivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLuint -> IO ())
+glMultiTexCoordP1uivFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoordP1uiv")
+
+{-# NOINLINE glMultiTexCoordP1uivFunPtr #-}
+
+-- | Usage: @'glMultiTexCoordP2ui' texture type coords@
+
+
+glMultiTexCoordP2ui :: MonadIO m => GLenum -> GLenum -> GLuint -> m ()
+glMultiTexCoordP2ui = ffienumenumuintIOV glMultiTexCoordP2uiFunPtr
+
+glMultiTexCoordP2uiFunPtr :: FunPtr (GLenum -> GLenum -> GLuint -> IO ())
+glMultiTexCoordP2uiFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoordP2ui")
+
+{-# NOINLINE glMultiTexCoordP2uiFunPtr #-}
+
+-- | Usage: @'glMultiTexCoordP2uiv' texture type coords@
+--
+-- The length of @coords@ should be @1@.
+
+
+glMultiTexCoordP2uiv :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()
+glMultiTexCoordP2uiv = ffienumenumPtruintIOV glMultiTexCoordP2uivFunPtr
+
+glMultiTexCoordP2uivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLuint -> IO ())
+glMultiTexCoordP2uivFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoordP2uiv")
+
+{-# NOINLINE glMultiTexCoordP2uivFunPtr #-}
+
+-- | Usage: @'glMultiTexCoordP3ui' texture type coords@
+
+
+glMultiTexCoordP3ui :: MonadIO m => GLenum -> GLenum -> GLuint -> m ()
+glMultiTexCoordP3ui = ffienumenumuintIOV glMultiTexCoordP3uiFunPtr
+
+glMultiTexCoordP3uiFunPtr :: FunPtr (GLenum -> GLenum -> GLuint -> IO ())
+glMultiTexCoordP3uiFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoordP3ui")
+
+{-# NOINLINE glMultiTexCoordP3uiFunPtr #-}
+
+-- | Usage: @'glMultiTexCoordP3uiv' texture type coords@
+--
+-- The length of @coords@ should be @1@.
+
+
+glMultiTexCoordP3uiv :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()
+glMultiTexCoordP3uiv = ffienumenumPtruintIOV glMultiTexCoordP3uivFunPtr
+
+glMultiTexCoordP3uivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLuint -> IO ())
+glMultiTexCoordP3uivFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoordP3uiv")
+
+{-# NOINLINE glMultiTexCoordP3uivFunPtr #-}
+
+-- | Usage: @'glMultiTexCoordP4ui' texture type coords@
+
+
+glMultiTexCoordP4ui :: MonadIO m => GLenum -> GLenum -> GLuint -> m ()
+glMultiTexCoordP4ui = ffienumenumuintIOV glMultiTexCoordP4uiFunPtr
+
+glMultiTexCoordP4uiFunPtr :: FunPtr (GLenum -> GLenum -> GLuint -> IO ())
+glMultiTexCoordP4uiFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoordP4ui")
+
+{-# NOINLINE glMultiTexCoordP4uiFunPtr #-}
+
+-- | Usage: @'glMultiTexCoordP4uiv' texture type coords@
+--
+-- The length of @coords@ should be @1@.
+
+
+glMultiTexCoordP4uiv :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()
+glMultiTexCoordP4uiv = ffienumenumPtruintIOV glMultiTexCoordP4uivFunPtr
+
+glMultiTexCoordP4uivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLuint -> IO ())
+glMultiTexCoordP4uivFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoordP4uiv")
+
+{-# NOINLINE glMultiTexCoordP4uivFunPtr #-}
+
+-- | Usage: @'glNormalP3ui' type coords@
+
+
+glNormalP3ui :: MonadIO m => GLenum -> GLuint -> m ()
+glNormalP3ui = ffienumuintIOV glNormalP3uiFunPtr
+
+glNormalP3uiFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
+glNormalP3uiFunPtr = unsafePerformIO (getProcAddress "glNormalP3ui")
+
+{-# NOINLINE glNormalP3uiFunPtr #-}
+
+-- | Usage: @'glNormalP3uiv' type coords@
+--
+-- The length of @coords@ should be @1@.
+
+
+glNormalP3uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
+glNormalP3uiv = ffienumPtruintIOV glNormalP3uivFunPtr
+
+glNormalP3uivFunPtr :: FunPtr (GLenum -> Ptr GLuint -> IO ())
+glNormalP3uivFunPtr = unsafePerformIO (getProcAddress "glNormalP3uiv")
+
+{-# NOINLINE glNormalP3uivFunPtr #-}
+
+-- | Usage: @'glSecondaryColorP3ui' type color@
+
+
+glSecondaryColorP3ui :: MonadIO m => GLenum -> GLuint -> m ()
+glSecondaryColorP3ui = ffienumuintIOV glSecondaryColorP3uiFunPtr
+
+glSecondaryColorP3uiFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
+glSecondaryColorP3uiFunPtr = unsafePerformIO (getProcAddress "glSecondaryColorP3ui")
+
+{-# NOINLINE glSecondaryColorP3uiFunPtr #-}
+
+-- | Usage: @'glSecondaryColorP3uiv' type color@
+--
+-- The length of @color@ should be @1@.
+
+
+glSecondaryColorP3uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
+glSecondaryColorP3uiv = ffienumPtruintIOV glSecondaryColorP3uivFunPtr
+
+glSecondaryColorP3uivFunPtr :: FunPtr (GLenum -> Ptr GLuint -> IO ())
+glSecondaryColorP3uivFunPtr = unsafePerformIO (getProcAddress "glSecondaryColorP3uiv")
+
+{-# NOINLINE glSecondaryColorP3uivFunPtr #-}
+
+-- | Usage: @'glTexCoordP1ui' type coords@
+
+
+glTexCoordP1ui :: MonadIO m => GLenum -> GLuint -> m ()
+glTexCoordP1ui = ffienumuintIOV glTexCoordP1uiFunPtr
+
+glTexCoordP1uiFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
+glTexCoordP1uiFunPtr = unsafePerformIO (getProcAddress "glTexCoordP1ui")
+
+{-# NOINLINE glTexCoordP1uiFunPtr #-}
+
+-- | Usage: @'glTexCoordP1uiv' type coords@
+--
+-- The length of @coords@ should be @1@.
+
+
+glTexCoordP1uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
+glTexCoordP1uiv = ffienumPtruintIOV glTexCoordP1uivFunPtr
+
+glTexCoordP1uivFunPtr :: FunPtr (GLenum -> Ptr GLuint -> IO ())
+glTexCoordP1uivFunPtr = unsafePerformIO (getProcAddress "glTexCoordP1uiv")
+
+{-# NOINLINE glTexCoordP1uivFunPtr #-}
+
+-- | Usage: @'glTexCoordP2ui' type coords@
+
+
+glTexCoordP2ui :: MonadIO m => GLenum -> GLuint -> m ()
+glTexCoordP2ui = ffienumuintIOV glTexCoordP2uiFunPtr
+
+glTexCoordP2uiFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
+glTexCoordP2uiFunPtr = unsafePerformIO (getProcAddress "glTexCoordP2ui")
+
+{-# NOINLINE glTexCoordP2uiFunPtr #-}
+
+-- | Usage: @'glTexCoordP2uiv' type coords@
+--
+-- The length of @coords@ should be @1@.
+
+
+glTexCoordP2uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
+glTexCoordP2uiv = ffienumPtruintIOV glTexCoordP2uivFunPtr
+
+glTexCoordP2uivFunPtr :: FunPtr (GLenum -> Ptr GLuint -> IO ())
+glTexCoordP2uivFunPtr = unsafePerformIO (getProcAddress "glTexCoordP2uiv")
+
+{-# NOINLINE glTexCoordP2uivFunPtr #-}
+
+-- | Usage: @'glTexCoordP3ui' type coords@
+
+
+glTexCoordP3ui :: MonadIO m => GLenum -> GLuint -> m ()
+glTexCoordP3ui = ffienumuintIOV glTexCoordP3uiFunPtr
+
+glTexCoordP3uiFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
+glTexCoordP3uiFunPtr = unsafePerformIO (getProcAddress "glTexCoordP3ui")
+
+{-# NOINLINE glTexCoordP3uiFunPtr #-}
+
+-- | Usage: @'glTexCoordP3uiv' type coords@
+--
+-- The length of @coords@ should be @1@.
+
+
+glTexCoordP3uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
+glTexCoordP3uiv = ffienumPtruintIOV glTexCoordP3uivFunPtr
+
+glTexCoordP3uivFunPtr :: FunPtr (GLenum -> Ptr GLuint -> IO ())
+glTexCoordP3uivFunPtr = unsafePerformIO (getProcAddress "glTexCoordP3uiv")
+
+{-# NOINLINE glTexCoordP3uivFunPtr #-}
+
+-- | Usage: @'glTexCoordP4ui' type coords@
+
+
+glTexCoordP4ui :: MonadIO m => GLenum -> GLuint -> m ()
+glTexCoordP4ui = ffienumuintIOV glTexCoordP4uiFunPtr
+
+glTexCoordP4uiFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
+glTexCoordP4uiFunPtr = unsafePerformIO (getProcAddress "glTexCoordP4ui")
+
+{-# NOINLINE glTexCoordP4uiFunPtr #-}
+
+-- | Usage: @'glTexCoordP4uiv' type coords@
+--
+-- The length of @coords@ should be @1@.
+
+
+glTexCoordP4uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
+glTexCoordP4uiv = ffienumPtruintIOV glTexCoordP4uivFunPtr
+
+glTexCoordP4uivFunPtr :: FunPtr (GLenum -> Ptr GLuint -> IO ())
+glTexCoordP4uivFunPtr = unsafePerformIO (getProcAddress "glTexCoordP4uiv")
+
+{-# NOINLINE glTexCoordP4uivFunPtr #-}
+
+-- | Usage: @'glVertexAttribP1ui' index type normalized value@
+--
+-- The parameter @normalized@ is a @Boolean@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FALSE', 'Graphics.GL.Raw.Internal.Shared.GL_TRUE'.
+
+
+glVertexAttribP1ui :: MonadIO m => GLuint -> GLenum -> GLboolean -> GLuint -> m ()
+glVertexAttribP1ui = ffiuintenumbooleanuintIOV glVertexAttribP1uiFunPtr
+
+glVertexAttribP1uiFunPtr :: FunPtr (GLuint -> GLenum -> GLboolean -> GLuint -> IO ())
+glVertexAttribP1uiFunPtr = unsafePerformIO (getProcAddress "glVertexAttribP1ui")
+
+{-# NOINLINE glVertexAttribP1uiFunPtr #-}
+
+-- | Usage: @'glVertexAttribP1uiv' index type normalized value@
+--
+-- The parameter @normalized@ is a @Boolean@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FALSE', 'Graphics.GL.Raw.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @1@.
+
+
+glVertexAttribP1uiv :: MonadIO m => GLuint -> GLenum -> GLboolean -> Ptr GLuint -> m ()
+glVertexAttribP1uiv = ffiuintenumbooleanPtruintIOV glVertexAttribP1uivFunPtr
+
+glVertexAttribP1uivFunPtr :: FunPtr (GLuint -> GLenum -> GLboolean -> Ptr GLuint -> IO ())
+glVertexAttribP1uivFunPtr = unsafePerformIO (getProcAddress "glVertexAttribP1uiv")
+
+{-# NOINLINE glVertexAttribP1uivFunPtr #-}
+
+-- | Usage: @'glVertexAttribP2ui' index type normalized value@
+--
+-- The parameter @normalized@ is a @Boolean@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FALSE', 'Graphics.GL.Raw.Internal.Shared.GL_TRUE'.
+
+
+glVertexAttribP2ui :: MonadIO m => GLuint -> GLenum -> GLboolean -> GLuint -> m ()
+glVertexAttribP2ui = ffiuintenumbooleanuintIOV glVertexAttribP2uiFunPtr
+
+glVertexAttribP2uiFunPtr :: FunPtr (GLuint -> GLenum -> GLboolean -> GLuint -> IO ())
+glVertexAttribP2uiFunPtr = unsafePerformIO (getProcAddress "glVertexAttribP2ui")
+
+{-# NOINLINE glVertexAttribP2uiFunPtr #-}
+
+-- | Usage: @'glVertexAttribP2uiv' index type normalized value@
+--
+-- The parameter @normalized@ is a @Boolean@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FALSE', 'Graphics.GL.Raw.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @1@.
+
+
+glVertexAttribP2uiv :: MonadIO m => GLuint -> GLenum -> GLboolean -> Ptr GLuint -> m ()
+glVertexAttribP2uiv = ffiuintenumbooleanPtruintIOV glVertexAttribP2uivFunPtr
+
+glVertexAttribP2uivFunPtr :: FunPtr (GLuint -> GLenum -> GLboolean -> Ptr GLuint -> IO ())
+glVertexAttribP2uivFunPtr = unsafePerformIO (getProcAddress "glVertexAttribP2uiv")
+
+{-# NOINLINE glVertexAttribP2uivFunPtr #-}
+
+-- | Usage: @'glVertexAttribP3ui' index type normalized value@
+--
+-- The parameter @normalized@ is a @Boolean@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FALSE', 'Graphics.GL.Raw.Internal.Shared.GL_TRUE'.
+
+
+glVertexAttribP3ui :: MonadIO m => GLuint -> GLenum -> GLboolean -> GLuint -> m ()
+glVertexAttribP3ui = ffiuintenumbooleanuintIOV glVertexAttribP3uiFunPtr
+
+glVertexAttribP3uiFunPtr :: FunPtr (GLuint -> GLenum -> GLboolean -> GLuint -> IO ())
+glVertexAttribP3uiFunPtr = unsafePerformIO (getProcAddress "glVertexAttribP3ui")
+
+{-# NOINLINE glVertexAttribP3uiFunPtr #-}
+
+-- | Usage: @'glVertexAttribP3uiv' index type normalized value@
+--
+-- The parameter @normalized@ is a @Boolean@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FALSE', 'Graphics.GL.Raw.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @1@.
+
+
+glVertexAttribP3uiv :: MonadIO m => GLuint -> GLenum -> GLboolean -> Ptr GLuint -> m ()
+glVertexAttribP3uiv = ffiuintenumbooleanPtruintIOV glVertexAttribP3uivFunPtr
+
+glVertexAttribP3uivFunPtr :: FunPtr (GLuint -> GLenum -> GLboolean -> Ptr GLuint -> IO ())
+glVertexAttribP3uivFunPtr = unsafePerformIO (getProcAddress "glVertexAttribP3uiv")
+
+{-# NOINLINE glVertexAttribP3uivFunPtr #-}
+
+-- | Usage: @'glVertexAttribP4ui' index type normalized value@
+--
+-- The parameter @normalized@ is a @Boolean@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FALSE', 'Graphics.GL.Raw.Internal.Shared.GL_TRUE'.
+
+
+glVertexAttribP4ui :: MonadIO m => GLuint -> GLenum -> GLboolean -> GLuint -> m ()
+glVertexAttribP4ui = ffiuintenumbooleanuintIOV glVertexAttribP4uiFunPtr
+
+glVertexAttribP4uiFunPtr :: FunPtr (GLuint -> GLenum -> GLboolean -> GLuint -> IO ())
+glVertexAttribP4uiFunPtr = unsafePerformIO (getProcAddress "glVertexAttribP4ui")
+
+{-# NOINLINE glVertexAttribP4uiFunPtr #-}
+
+-- | Usage: @'glVertexAttribP4uiv' index type normalized value@
+--
+-- The parameter @normalized@ is a @Boolean@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FALSE', 'Graphics.GL.Raw.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @1@.
+
+
+glVertexAttribP4uiv :: MonadIO m => GLuint -> GLenum -> GLboolean -> Ptr GLuint -> m ()
+glVertexAttribP4uiv = ffiuintenumbooleanPtruintIOV glVertexAttribP4uivFunPtr
+
+glVertexAttribP4uivFunPtr :: FunPtr (GLuint -> GLenum -> GLboolean -> Ptr GLuint -> IO ())
+glVertexAttribP4uivFunPtr = unsafePerformIO (getProcAddress "glVertexAttribP4uiv")
+
+{-# NOINLINE glVertexAttribP4uivFunPtr #-}
+
+-- | Usage: @'glVertexP2ui' type value@
+
+
+glVertexP2ui :: MonadIO m => GLenum -> GLuint -> m ()
+glVertexP2ui = ffienumuintIOV glVertexP2uiFunPtr
+
+glVertexP2uiFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
+glVertexP2uiFunPtr = unsafePerformIO (getProcAddress "glVertexP2ui")
+
+{-# NOINLINE glVertexP2uiFunPtr #-}
+
+-- | Usage: @'glVertexP2uiv' type value@
+--
+-- The length of @value@ should be @1@.
+
+
+glVertexP2uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
+glVertexP2uiv = ffienumPtruintIOV glVertexP2uivFunPtr
+
+glVertexP2uivFunPtr :: FunPtr (GLenum -> Ptr GLuint -> IO ())
+glVertexP2uivFunPtr = unsafePerformIO (getProcAddress "glVertexP2uiv")
+
+{-# NOINLINE glVertexP2uivFunPtr #-}
+
+-- | Usage: @'glVertexP3ui' type value@
+
+
+glVertexP3ui :: MonadIO m => GLenum -> GLuint -> m ()
+glVertexP3ui = ffienumuintIOV glVertexP3uiFunPtr
+
+glVertexP3uiFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
+glVertexP3uiFunPtr = unsafePerformIO (getProcAddress "glVertexP3ui")
+
+{-# NOINLINE glVertexP3uiFunPtr #-}
+
+-- | Usage: @'glVertexP3uiv' type value@
+--
+-- The length of @value@ should be @1@.
+
+
+glVertexP3uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
+glVertexP3uiv = ffienumPtruintIOV glVertexP3uivFunPtr
+
+glVertexP3uivFunPtr :: FunPtr (GLenum -> Ptr GLuint -> IO ())
+glVertexP3uivFunPtr = unsafePerformIO (getProcAddress "glVertexP3uiv")
+
+{-# NOINLINE glVertexP3uivFunPtr #-}
+
+-- | Usage: @'glVertexP4ui' type value@
+
+
+glVertexP4ui :: MonadIO m => GLenum -> GLuint -> m ()
+glVertexP4ui = ffienumuintIOV glVertexP4uiFunPtr
+
+glVertexP4uiFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
+glVertexP4uiFunPtr = unsafePerformIO (getProcAddress "glVertexP4ui")
+
+{-# NOINLINE glVertexP4uiFunPtr #-}
+
+-- | Usage: @'glVertexP4uiv' type value@
+--
+-- The length of @value@ should be @1@.
+
+
+glVertexP4uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
+glVertexP4uiv = ffienumPtruintIOV glVertexP4uivFunPtr
+
+glVertexP4uivFunPtr :: FunPtr (GLenum -> Ptr GLuint -> IO ())
+glVertexP4uivFunPtr = unsafePerformIO (getProcAddress "glVertexP4uiv")
+
+{-# NOINLINE glVertexP4uivFunPtr #-}
+
+pattern GL_INT_2_10_10_10_REV = 0x8D9F
+
+pattern GL_UNSIGNED_INT_2_10_10_10_REV = 0x8368
+
+-- | Usage: @'glDepthRangeArrayv' first count v@
+--
+-- The length of @v@ should be @COMPSIZE(count)@.
+
+
+glDepthRangeArrayv :: MonadIO m => GLuint -> GLsizei -> Ptr GLdouble -> m ()
+glDepthRangeArrayv = ffiuintsizeiPtrdoubleIOV glDepthRangeArrayvFunPtr
+
+glDepthRangeArrayvFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLdouble -> IO ())
+glDepthRangeArrayvFunPtr = unsafePerformIO (getProcAddress "glDepthRangeArrayv")
+
+{-# NOINLINE glDepthRangeArrayvFunPtr #-}
+
+-- | Usage: @'glDepthRangeIndexed' index n f@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDepthRangeIndexed.xhtml>
+
+
+glDepthRangeIndexed :: MonadIO m => GLuint -> GLdouble -> GLdouble -> m ()
+glDepthRangeIndexed = ffiuintdoubledoubleIOV glDepthRangeIndexedFunPtr
+
+glDepthRangeIndexedFunPtr :: FunPtr (GLuint -> GLdouble -> GLdouble -> IO ())
+glDepthRangeIndexedFunPtr = unsafePerformIO (getProcAddress "glDepthRangeIndexed")
+
+{-# NOINLINE glDepthRangeIndexedFunPtr #-}
+
+-- | Usage: @'glGetDoublei_v' target index data@
+--
+-- The length of @data@ should be @COMPSIZE(target)@.
+
+
+glGetDoublei_v :: MonadIO m => GLenum -> GLuint -> Ptr GLdouble -> m ()
+glGetDoublei_v = ffienumuintPtrdoubleIOV glGetDoublei_vFunPtr
+
+glGetDoublei_vFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLdouble -> IO ())
+glGetDoublei_vFunPtr = unsafePerformIO (getProcAddress "glGetDoublei_v")
+
+{-# NOINLINE glGetDoublei_vFunPtr #-}
+
+-- | Usage: @'glGetFloati_v' target index data@
+--
+-- The parameter @target@ is a @TypeEnum@.
+--
+-- The length of @data@ should be @COMPSIZE(target)@.
+
+
+glGetFloati_v :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()
+glGetFloati_v = ffienumuintPtrfloatIOV glGetFloati_vFunPtr
+
+glGetFloati_vFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLfloat -> IO ())
+glGetFloati_vFunPtr = unsafePerformIO (getProcAddress "glGetFloati_v")
+
+{-# NOINLINE glGetFloati_vFunPtr #-}
+
+-- | Usage: @'glScissorArrayv' first count v@
+--
+-- The length of @v@ should be @COMPSIZE(count)@.
+
+
+glScissorArrayv :: MonadIO m => GLuint -> GLsizei -> Ptr GLint -> m ()
+glScissorArrayv = ffiuintsizeiPtrintIOV glScissorArrayvFunPtr
+
+glScissorArrayvFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLint -> IO ())
+glScissorArrayvFunPtr = unsafePerformIO (getProcAddress "glScissorArrayv")
+
+{-# NOINLINE glScissorArrayvFunPtr #-}
+
+-- | Usage: @'glScissorIndexed' index left bottom width height@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glScissorIndexed.xhtml>
+
+
+glScissorIndexed :: MonadIO m => GLuint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()
+glScissorIndexed = ffiuintintintsizeisizeiIOV glScissorIndexedFunPtr
+
+glScissorIndexedFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ())
+glScissorIndexedFunPtr = unsafePerformIO (getProcAddress "glScissorIndexed")
+
+{-# NOINLINE glScissorIndexedFunPtr #-}
+
+-- | Usage: @'glScissorIndexedv' index v@
+--
+-- The length of @v@ should be @4@.
+
+
+glScissorIndexedv :: MonadIO m => GLuint -> Ptr GLint -> m ()
+glScissorIndexedv = ffiuintPtrintIOV glScissorIndexedvFunPtr
+
+glScissorIndexedvFunPtr :: FunPtr (GLuint -> Ptr GLint -> IO ())
+glScissorIndexedvFunPtr = unsafePerformIO (getProcAddress "glScissorIndexedv")
+
+{-# NOINLINE glScissorIndexedvFunPtr #-}
+
+-- | Usage: @'glViewportArrayv' first count v@
+--
+-- The length of @v@ should be @COMPSIZE(count)@.
+
+
+glViewportArrayv :: MonadIO m => GLuint -> GLsizei -> Ptr GLfloat -> m ()
+glViewportArrayv = ffiuintsizeiPtrfloatIOV glViewportArrayvFunPtr
+
+glViewportArrayvFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLfloat -> IO ())
+glViewportArrayvFunPtr = unsafePerformIO (getProcAddress "glViewportArrayv")
+
+{-# NOINLINE glViewportArrayvFunPtr #-}
+
+-- | Usage: @'glViewportIndexedf' index x y w h@
+
+
+glViewportIndexedf :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
+glViewportIndexedf = ffiuintfloatfloatfloatfloatIOV glViewportIndexedfFunPtr
+
+glViewportIndexedfFunPtr :: FunPtr (GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+glViewportIndexedfFunPtr = unsafePerformIO (getProcAddress "glViewportIndexedf")
+
+{-# NOINLINE glViewportIndexedfFunPtr #-}
+
+-- | Usage: @'glViewportIndexedfv' index v@
+--
+-- The length of @v@ should be @4@.
+
+
+glViewportIndexedfv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()
+glViewportIndexedfv = ffiuintPtrfloatIOV glViewportIndexedfvFunPtr
+
+glViewportIndexedfvFunPtr :: FunPtr (GLuint -> Ptr GLfloat -> IO ())
+glViewportIndexedfvFunPtr = unsafePerformIO (getProcAddress "glViewportIndexedfv")
+
+{-# NOINLINE glViewportIndexedfvFunPtr #-}
+
+pattern GL_DEPTH_RANGE = 0x0B70
+
+pattern GL_LAYER_PROVOKING_VERTEX = 0x825E
+
+pattern GL_MAX_VIEWPORTS = 0x825B
+
+pattern GL_SCISSOR_BOX = 0x0C10
+
+pattern GL_SCISSOR_TEST = 0x0C11
+
+pattern GL_UNDEFINED_VERTEX = 0x8260
+
+pattern GL_VIEWPORT = 0x0BA2
+
+pattern GL_VIEWPORT_BOUNDS_RANGE = 0x825D
+
+pattern GL_VIEWPORT_INDEX_PROVOKING_VERTEX = 0x825F
+
+pattern GL_VIEWPORT_SUBPIXEL_BITS = 0x825C
+
+pattern GL_R16F_EXT = 0x822D
+
+pattern GL_RG16F_EXT = 0x822F
+
+pattern GL_RGB16F_EXT = 0x881B
+
+pattern GL_RGBA16F_EXT = 0x881A
+
+pattern GL_SAMPLER = 0x82E6
+
+-- | Usage: @'glDisableIndexedEXT' target index@
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glDisablei'.
+
+
+glDisableIndexedEXT :: MonadIO m => GLenum -> GLuint -> m ()
+glDisableIndexedEXT = ffienumuintIOV glDisableIndexedEXTFunPtr
+
+glDisableIndexedEXTFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
+glDisableIndexedEXTFunPtr = unsafePerformIO (getProcAddress "glDisableIndexedEXT")
+
+{-# NOINLINE glDisableIndexedEXTFunPtr #-}
+
+-- | Usage: @'glEnableIndexedEXT' target index@
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glEnablei'.
+
+
+glEnableIndexedEXT :: MonadIO m => GLenum -> GLuint -> m ()
+glEnableIndexedEXT = ffienumuintIOV glEnableIndexedEXTFunPtr
+
+glEnableIndexedEXTFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
+glEnableIndexedEXTFunPtr = unsafePerformIO (getProcAddress "glEnableIndexedEXT")
+
+{-# NOINLINE glEnableIndexedEXTFunPtr #-}
+
+-- | Usage: @'glGetBooleanIndexedvEXT' target index data@
+--
+-- The parameter @data@ is a @Boolean@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FALSE', 'Graphics.GL.Raw.Internal.Shared.GL_TRUE'.
+--
+-- The length of @data@ should be @COMPSIZE(target)@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glGetBooleani_v'.
+
+
+glGetBooleanIndexedvEXT :: MonadIO m => GLenum -> GLuint -> Ptr GLboolean -> m ()
+glGetBooleanIndexedvEXT = ffienumuintPtrbooleanIOV glGetBooleanIndexedvEXTFunPtr
+
+glGetBooleanIndexedvEXTFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLboolean -> IO ())
+glGetBooleanIndexedvEXTFunPtr = unsafePerformIO (getProcAddress "glGetBooleanIndexedvEXT")
+
+{-# NOINLINE glGetBooleanIndexedvEXTFunPtr #-}
+
+-- | Usage: @'glGetIntegerIndexedvEXT' target index data@
+--
+-- The length of @data@ should be @COMPSIZE(target)@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glGetIntegeri_v'.
+
+
+glGetIntegerIndexedvEXT :: MonadIO m => GLenum -> GLuint -> Ptr GLint -> m ()
+glGetIntegerIndexedvEXT = ffienumuintPtrintIOV glGetIntegerIndexedvEXTFunPtr
+
+glGetIntegerIndexedvEXTFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLint -> IO ())
+glGetIntegerIndexedvEXTFunPtr = unsafePerformIO (getProcAddress "glGetIntegerIndexedvEXT")
+
+{-# NOINLINE glGetIntegerIndexedvEXTFunPtr #-}
+
+-- | Usage: @'glIsEnabledIndexedEXT' target index@
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glIsEnabledi'.
+
+
+glIsEnabledIndexedEXT :: MonadIO m => GLenum -> GLuint -> m GLboolean
+glIsEnabledIndexedEXT = ffienumuintIOboolean glIsEnabledIndexedEXTFunPtr
+
+glIsEnabledIndexedEXTFunPtr :: FunPtr (GLenum -> GLuint -> IO GLboolean)
+glIsEnabledIndexedEXTFunPtr = unsafePerformIO (getProcAddress "glIsEnabledIndexedEXT")
+
+{-# NOINLINE glIsEnabledIndexedEXTFunPtr #-}
+
+-- | Usage: @'glProgramUniform1fEXT' program location v0@
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glProgramUniform1f'.
+
+
+glProgramUniform1fEXT :: MonadIO m => GLuint -> GLint -> GLfloat -> m ()
+glProgramUniform1fEXT = ffiuintintfloatIOV glProgramUniform1fEXTFunPtr
+
+glProgramUniform1fEXTFunPtr :: FunPtr (GLuint -> GLint -> GLfloat -> IO ())
+glProgramUniform1fEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform1fEXT")
+
+{-# NOINLINE glProgramUniform1fEXTFunPtr #-}
+
+-- | Usage: @'glProgramUniform1fvEXT' program location count value@
+--
+-- The length of @value@ should be @count@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glProgramUniform1fv'.
+
+
+glProgramUniform1fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()
+glProgramUniform1fvEXT = ffiuintintsizeiPtrfloatIOV glProgramUniform1fvEXTFunPtr
+
+glProgramUniform1fvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLfloat -> IO ())
+glProgramUniform1fvEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform1fvEXT")
+
+{-# NOINLINE glProgramUniform1fvEXTFunPtr #-}
+
+-- | Usage: @'glProgramUniform1iEXT' program location v0@
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glProgramUniform1i'.
+
+
+glProgramUniform1iEXT :: MonadIO m => GLuint -> GLint -> GLint -> m ()
+glProgramUniform1iEXT = ffiuintintintIOV glProgramUniform1iEXTFunPtr
+
+glProgramUniform1iEXTFunPtr :: FunPtr (GLuint -> GLint -> GLint -> IO ())
+glProgramUniform1iEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform1iEXT")
+
+{-# NOINLINE glProgramUniform1iEXTFunPtr #-}
+
+-- | Usage: @'glProgramUniform1ivEXT' program location count value@
+--
+-- The length of @value@ should be @count@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glProgramUniform1iv'.
+
+
+glProgramUniform1ivEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()
+glProgramUniform1ivEXT = ffiuintintsizeiPtrintIOV glProgramUniform1ivEXTFunPtr
+
+glProgramUniform1ivEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint -> IO ())
+glProgramUniform1ivEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform1ivEXT")
+
+{-# NOINLINE glProgramUniform1ivEXTFunPtr #-}
+
+-- | Usage: @'glProgramUniform1uiEXT' program location v0@
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glProgramUniform1ui'.
+
+
+glProgramUniform1uiEXT :: MonadIO m => GLuint -> GLint -> GLuint -> m ()
+glProgramUniform1uiEXT = ffiuintintuintIOV glProgramUniform1uiEXTFunPtr
+
+glProgramUniform1uiEXTFunPtr :: FunPtr (GLuint -> GLint -> GLuint -> IO ())
+glProgramUniform1uiEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform1uiEXT")
+
+{-# NOINLINE glProgramUniform1uiEXTFunPtr #-}
+
+-- | Usage: @'glProgramUniform1uivEXT' program location count value@
+--
+-- The length of @value@ should be @count@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glProgramUniform1uiv'.
+
+
+glProgramUniform1uivEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()
+glProgramUniform1uivEXT = ffiuintintsizeiPtruintIOV glProgramUniform1uivEXTFunPtr
+
+glProgramUniform1uivEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint -> IO ())
+glProgramUniform1uivEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform1uivEXT")
+
+{-# NOINLINE glProgramUniform1uivEXTFunPtr #-}
+
+-- | Usage: @'glProgramUniform2fEXT' program location v0 v1@
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glProgramUniform2f'.
+
+
+glProgramUniform2fEXT :: MonadIO m => GLuint -> GLint -> GLfloat -> GLfloat -> m ()
+glProgramUniform2fEXT = ffiuintintfloatfloatIOV glProgramUniform2fEXTFunPtr
+
+glProgramUniform2fEXTFunPtr :: FunPtr (GLuint -> GLint -> GLfloat -> GLfloat -> IO ())
+glProgramUniform2fEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform2fEXT")
+
+{-# NOINLINE glProgramUniform2fEXTFunPtr #-}
+
+-- | Usage: @'glProgramUniform2fvEXT' program location count value@
+--
+-- The length of @value@ should be @count*2@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glProgramUniform2fv'.
+
+
+glProgramUniform2fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()
+glProgramUniform2fvEXT = ffiuintintsizeiPtrfloatIOV glProgramUniform2fvEXTFunPtr
+
+glProgramUniform2fvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLfloat -> IO ())
+glProgramUniform2fvEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform2fvEXT")
+
+{-# NOINLINE glProgramUniform2fvEXTFunPtr #-}
+
+-- | Usage: @'glProgramUniform2iEXT' program location v0 v1@
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glProgramUniform2i'.
+
+
+glProgramUniform2iEXT :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> m ()
+glProgramUniform2iEXT = ffiuintintintintIOV glProgramUniform2iEXTFunPtr
+
+glProgramUniform2iEXTFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> IO ())
+glProgramUniform2iEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform2iEXT")
+
+{-# NOINLINE glProgramUniform2iEXTFunPtr #-}
+
+-- | Usage: @'glProgramUniform2ivEXT' program location count value@
+--
+-- The length of @value@ should be @count*2@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glProgramUniform2iv'.
+
+
+glProgramUniform2ivEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()
+glProgramUniform2ivEXT = ffiuintintsizeiPtrintIOV glProgramUniform2ivEXTFunPtr
+
+glProgramUniform2ivEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint -> IO ())
+glProgramUniform2ivEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform2ivEXT")
+
+{-# NOINLINE glProgramUniform2ivEXTFunPtr #-}
+
+-- | Usage: @'glProgramUniform2uiEXT' program location v0 v1@
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glProgramUniform2ui'.
+
+
+glProgramUniform2uiEXT :: MonadIO m => GLuint -> GLint -> GLuint -> GLuint -> m ()
+glProgramUniform2uiEXT = ffiuintintuintuintIOV glProgramUniform2uiEXTFunPtr
+
+glProgramUniform2uiEXTFunPtr :: FunPtr (GLuint -> GLint -> GLuint -> GLuint -> IO ())
+glProgramUniform2uiEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform2uiEXT")
+
+{-# NOINLINE glProgramUniform2uiEXTFunPtr #-}
+
+-- | Usage: @'glProgramUniform2uivEXT' program location count value@
+--
+-- The length of @value@ should be @count*2@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glProgramUniform2uiv'.
+
+
+glProgramUniform2uivEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()
+glProgramUniform2uivEXT = ffiuintintsizeiPtruintIOV glProgramUniform2uivEXTFunPtr
+
+glProgramUniform2uivEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint -> IO ())
+glProgramUniform2uivEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform2uivEXT")
+
+{-# NOINLINE glProgramUniform2uivEXTFunPtr #-}
+
+-- | Usage: @'glProgramUniform3fEXT' program location v0 v1 v2@
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glProgramUniform3f'.
+
+
+glProgramUniform3fEXT :: MonadIO m => GLuint -> GLint -> GLfloat -> GLfloat -> GLfloat -> m ()
+glProgramUniform3fEXT = ffiuintintfloatfloatfloatIOV glProgramUniform3fEXTFunPtr
+
+glProgramUniform3fEXTFunPtr :: FunPtr (GLuint -> GLint -> GLfloat -> GLfloat -> GLfloat -> IO ())
+glProgramUniform3fEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform3fEXT")
+
+{-# NOINLINE glProgramUniform3fEXTFunPtr #-}
+
+-- | Usage: @'glProgramUniform3fvEXT' program location count value@
+--
+-- The length of @value@ should be @count*3@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glProgramUniform3fv'.
+
+
+glProgramUniform3fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()
+glProgramUniform3fvEXT = ffiuintintsizeiPtrfloatIOV glProgramUniform3fvEXTFunPtr
+
+glProgramUniform3fvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLfloat -> IO ())
+glProgramUniform3fvEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform3fvEXT")
+
+{-# NOINLINE glProgramUniform3fvEXTFunPtr #-}
+
+-- | Usage: @'glProgramUniform3iEXT' program location v0 v1 v2@
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glProgramUniform3i'.
+
+
+glProgramUniform3iEXT :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> m ()
+glProgramUniform3iEXT = ffiuintintintintintIOV glProgramUniform3iEXTFunPtr
+
+glProgramUniform3iEXTFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> IO ())
+glProgramUniform3iEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform3iEXT")
+
+{-# NOINLINE glProgramUniform3iEXTFunPtr #-}
+
+-- | Usage: @'glProgramUniform3ivEXT' program location count value@
+--
+-- The length of @value@ should be @count*3@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glProgramUniform3iv'.
+
+
+glProgramUniform3ivEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()
+glProgramUniform3ivEXT = ffiuintintsizeiPtrintIOV glProgramUniform3ivEXTFunPtr
+
+glProgramUniform3ivEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint -> IO ())
+glProgramUniform3ivEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform3ivEXT")
+
+{-# NOINLINE glProgramUniform3ivEXTFunPtr #-}
+
+-- | Usage: @'glProgramUniform3uiEXT' program location v0 v1 v2@
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glProgramUniform3ui'.
+
+
+glProgramUniform3uiEXT :: MonadIO m => GLuint -> GLint -> GLuint -> GLuint -> GLuint -> m ()
+glProgramUniform3uiEXT = ffiuintintuintuintuintIOV glProgramUniform3uiEXTFunPtr
+
+glProgramUniform3uiEXTFunPtr :: FunPtr (GLuint -> GLint -> GLuint -> GLuint -> GLuint -> IO ())
+glProgramUniform3uiEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform3uiEXT")
+
+{-# NOINLINE glProgramUniform3uiEXTFunPtr #-}
+
+-- | Usage: @'glProgramUniform3uivEXT' program location count value@
+--
+-- The length of @value@ should be @count*3@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glProgramUniform3uiv'.
+
+
+glProgramUniform3uivEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()
+glProgramUniform3uivEXT = ffiuintintsizeiPtruintIOV glProgramUniform3uivEXTFunPtr
+
+glProgramUniform3uivEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint -> IO ())
+glProgramUniform3uivEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform3uivEXT")
+
+{-# NOINLINE glProgramUniform3uivEXTFunPtr #-}
+
+-- | Usage: @'glProgramUniform4fEXT' program location v0 v1 v2 v3@
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glProgramUniform4f'.
+
+
+glProgramUniform4fEXT :: MonadIO m => GLuint -> GLint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
+glProgramUniform4fEXT = ffiuintintfloatfloatfloatfloatIOV glProgramUniform4fEXTFunPtr
+
+glProgramUniform4fEXTFunPtr :: FunPtr (GLuint -> GLint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+glProgramUniform4fEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform4fEXT")
+
+{-# NOINLINE glProgramUniform4fEXTFunPtr #-}
+
+-- | Usage: @'glProgramUniform4fvEXT' program location count value@
+--
+-- The length of @value@ should be @count*4@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glProgramUniform4fv'.
+
+
+glProgramUniform4fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()
+glProgramUniform4fvEXT = ffiuintintsizeiPtrfloatIOV glProgramUniform4fvEXTFunPtr
+
+glProgramUniform4fvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLfloat -> IO ())
+glProgramUniform4fvEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform4fvEXT")
+
+{-# NOINLINE glProgramUniform4fvEXTFunPtr #-}
+
+-- | Usage: @'glProgramUniform4iEXT' program location v0 v1 v2 v3@
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glProgramUniform4i'.
+
+
+glProgramUniform4iEXT :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> m ()
+glProgramUniform4iEXT = ffiuintintintintintintIOV glProgramUniform4iEXTFunPtr
+
+glProgramUniform4iEXTFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> IO ())
+glProgramUniform4iEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform4iEXT")
+
+{-# NOINLINE glProgramUniform4iEXTFunPtr #-}
+
+-- | Usage: @'glProgramUniform4ivEXT' program location count value@
+--
+-- The length of @value@ should be @count*4@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glProgramUniform4iv'.
+
+
+glProgramUniform4ivEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()
+glProgramUniform4ivEXT = ffiuintintsizeiPtrintIOV glProgramUniform4ivEXTFunPtr
+
+glProgramUniform4ivEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint -> IO ())
+glProgramUniform4ivEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform4ivEXT")
+
+{-# NOINLINE glProgramUniform4ivEXTFunPtr #-}
+
+-- | Usage: @'glProgramUniform4uiEXT' program location v0 v1 v2 v3@
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glProgramUniform4ui'.
+
+
+glProgramUniform4uiEXT :: MonadIO m => GLuint -> GLint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
+glProgramUniform4uiEXT = ffiuintintuintuintuintuintIOV glProgramUniform4uiEXTFunPtr
+
+glProgramUniform4uiEXTFunPtr :: FunPtr (GLuint -> GLint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ())
+glProgramUniform4uiEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform4uiEXT")
+
+{-# NOINLINE glProgramUniform4uiEXTFunPtr #-}
+
+-- | Usage: @'glProgramUniform4uivEXT' program location count value@
+--
+-- The length of @value@ should be @count*4@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glProgramUniform4uiv'.
+
+
+glProgramUniform4uivEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()
+glProgramUniform4uivEXT = ffiuintintsizeiPtruintIOV glProgramUniform4uivEXTFunPtr
+
+glProgramUniform4uivEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint -> IO ())
+glProgramUniform4uivEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform4uivEXT")
+
+{-# NOINLINE glProgramUniform4uivEXTFunPtr #-}
+
+-- | Usage: @'glProgramUniformMatrix2fvEXT' program location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FALSE', 'Graphics.GL.Raw.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count*4@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glProgramUniformMatrix2fv'.
+
+
+glProgramUniformMatrix2fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
+glProgramUniformMatrix2fvEXT = ffiuintintsizeibooleanPtrfloatIOV glProgramUniformMatrix2fvEXTFunPtr
+
+glProgramUniformMatrix2fvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+glProgramUniformMatrix2fvEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix2fvEXT")
+
+{-# NOINLINE glProgramUniformMatrix2fvEXTFunPtr #-}
+
+-- | Usage: @'glProgramUniformMatrix2x3fvEXT' program location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FALSE', 'Graphics.GL.Raw.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count*6@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glProgramUniformMatrix2x3fv'.
+
+
+glProgramUniformMatrix2x3fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
+glProgramUniformMatrix2x3fvEXT = ffiuintintsizeibooleanPtrfloatIOV glProgramUniformMatrix2x3fvEXTFunPtr
+
+glProgramUniformMatrix2x3fvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+glProgramUniformMatrix2x3fvEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix2x3fvEXT")
+
+{-# NOINLINE glProgramUniformMatrix2x3fvEXTFunPtr #-}
+
+-- | Usage: @'glProgramUniformMatrix2x4fvEXT' program location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FALSE', 'Graphics.GL.Raw.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count*8@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glProgramUniformMatrix2x4fv'.
+
+
+glProgramUniformMatrix2x4fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
+glProgramUniformMatrix2x4fvEXT = ffiuintintsizeibooleanPtrfloatIOV glProgramUniformMatrix2x4fvEXTFunPtr
+
+glProgramUniformMatrix2x4fvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+glProgramUniformMatrix2x4fvEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix2x4fvEXT")
+
+{-# NOINLINE glProgramUniformMatrix2x4fvEXTFunPtr #-}
+
+-- | Usage: @'glProgramUniformMatrix3fvEXT' program location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FALSE', 'Graphics.GL.Raw.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count*9@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glProgramUniformMatrix3fv'.
+
+
+glProgramUniformMatrix3fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
+glProgramUniformMatrix3fvEXT = ffiuintintsizeibooleanPtrfloatIOV glProgramUniformMatrix3fvEXTFunPtr
+
+glProgramUniformMatrix3fvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+glProgramUniformMatrix3fvEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix3fvEXT")
+
+{-# NOINLINE glProgramUniformMatrix3fvEXTFunPtr #-}
+
+-- | Usage: @'glProgramUniformMatrix3x2fvEXT' program location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FALSE', 'Graphics.GL.Raw.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count*6@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glProgramUniformMatrix3x2fv'.
+
+
+glProgramUniformMatrix3x2fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
+glProgramUniformMatrix3x2fvEXT = ffiuintintsizeibooleanPtrfloatIOV glProgramUniformMatrix3x2fvEXTFunPtr
+
+glProgramUniformMatrix3x2fvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+glProgramUniformMatrix3x2fvEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix3x2fvEXT")
+
+{-# NOINLINE glProgramUniformMatrix3x2fvEXTFunPtr #-}
+
+-- | Usage: @'glProgramUniformMatrix3x4fvEXT' program location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FALSE', 'Graphics.GL.Raw.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count*12@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glProgramUniformMatrix3x4fv'.
+
+
+glProgramUniformMatrix3x4fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
+glProgramUniformMatrix3x4fvEXT = ffiuintintsizeibooleanPtrfloatIOV glProgramUniformMatrix3x4fvEXTFunPtr
+
+glProgramUniformMatrix3x4fvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+glProgramUniformMatrix3x4fvEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix3x4fvEXT")
+
+{-# NOINLINE glProgramUniformMatrix3x4fvEXTFunPtr #-}
+
+-- | Usage: @'glProgramUniformMatrix4fvEXT' program location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FALSE', 'Graphics.GL.Raw.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count*16@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glProgramUniformMatrix4fv'.
+
+
+glProgramUniformMatrix4fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
+glProgramUniformMatrix4fvEXT = ffiuintintsizeibooleanPtrfloatIOV glProgramUniformMatrix4fvEXTFunPtr
+
+glProgramUniformMatrix4fvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+glProgramUniformMatrix4fvEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix4fvEXT")
+
+{-# NOINLINE glProgramUniformMatrix4fvEXTFunPtr #-}
+
+-- | Usage: @'glProgramUniformMatrix4x2fvEXT' program location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FALSE', 'Graphics.GL.Raw.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count*8@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glProgramUniformMatrix4x2fv'.
+
+
+glProgramUniformMatrix4x2fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
+glProgramUniformMatrix4x2fvEXT = ffiuintintsizeibooleanPtrfloatIOV glProgramUniformMatrix4x2fvEXTFunPtr
+
+glProgramUniformMatrix4x2fvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+glProgramUniformMatrix4x2fvEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix4x2fvEXT")
+
+{-# NOINLINE glProgramUniformMatrix4x2fvEXTFunPtr #-}
+
+-- | Usage: @'glProgramUniformMatrix4x3fvEXT' program location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FALSE', 'Graphics.GL.Raw.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count*12@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glProgramUniformMatrix4x3fv'.
+
+
+glProgramUniformMatrix4x3fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
+glProgramUniformMatrix4x3fvEXT = ffiuintintsizeibooleanPtrfloatIOV glProgramUniformMatrix4x3fvEXTFunPtr
+
+glProgramUniformMatrix4x3fvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+glProgramUniformMatrix4x3fvEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix4x3fvEXT")
+
+{-# NOINLINE glProgramUniformMatrix4x3fvEXTFunPtr #-}
+
+-- | Usage: @'glTextureStorage1DEXT' texture target levels internalformat width@
+
+
+glTextureStorage1DEXT :: MonadIO m => GLuint -> GLenum -> GLsizei -> GLenum -> GLsizei -> m ()
+glTextureStorage1DEXT = ffiuintenumsizeienumsizeiIOV glTextureStorage1DEXTFunPtr
+
+glTextureStorage1DEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLsizei -> GLenum -> GLsizei -> IO ())
+glTextureStorage1DEXTFunPtr = unsafePerformIO (getProcAddress "glTextureStorage1DEXT")
+
+{-# NOINLINE glTextureStorage1DEXTFunPtr #-}
+
+-- | Usage: @'glTextureStorage2DEXT' texture target levels internalformat width height@
+
+
+glTextureStorage2DEXT :: MonadIO m => GLuint -> GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()
+glTextureStorage2DEXT = ffiuintenumsizeienumsizeisizeiIOV glTextureStorage2DEXTFunPtr
+
+glTextureStorage2DEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> IO ())
+glTextureStorage2DEXTFunPtr = unsafePerformIO (getProcAddress "glTextureStorage2DEXT")
+
+{-# NOINLINE glTextureStorage2DEXTFunPtr #-}
+
+-- | Usage: @'glTextureStorage3DEXT' texture target levels internalformat width height depth@
+
+
+glTextureStorage3DEXT :: MonadIO m => GLuint -> GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> m ()
+glTextureStorage3DEXT = ffiuintenumsizeienumsizeisizeisizeiIOV glTextureStorage3DEXTFunPtr
+
+glTextureStorage3DEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> IO ())
+glTextureStorage3DEXTFunPtr = unsafePerformIO (getProcAddress "glTextureStorage3DEXT")
+
+{-# NOINLINE glTextureStorage3DEXTFunPtr #-}
+
+-- | Usage: @'glBeginQueryEXT' target id@
+
+
+glBeginQueryEXT :: MonadIO m => GLenum -> GLuint -> m ()
+glBeginQueryEXT = ffienumuintIOV glBeginQueryEXTFunPtr
+
+glBeginQueryEXTFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
+glBeginQueryEXTFunPtr = unsafePerformIO (getProcAddress "glBeginQueryEXT")
+
+{-# NOINLINE glBeginQueryEXTFunPtr #-}
+
+-- | Usage: @'glDeleteQueriesEXT' n ids@
+--
+-- The length of @ids@ should be @n@.
+
+
+glDeleteQueriesEXT :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glDeleteQueriesEXT = ffisizeiPtruintIOV glDeleteQueriesEXTFunPtr
+
+glDeleteQueriesEXTFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glDeleteQueriesEXTFunPtr = unsafePerformIO (getProcAddress "glDeleteQueriesEXT")
+
+{-# NOINLINE glDeleteQueriesEXTFunPtr #-}
+
+-- | Usage: @'glEndQueryEXT' target@
+
+
+glEndQueryEXT :: MonadIO m => GLenum -> m ()
+glEndQueryEXT = ffienumIOV glEndQueryEXTFunPtr
+
+glEndQueryEXTFunPtr :: FunPtr (GLenum -> IO ())
+glEndQueryEXTFunPtr = unsafePerformIO (getProcAddress "glEndQueryEXT")
+
+{-# NOINLINE glEndQueryEXTFunPtr #-}
+
+-- | Usage: @'glGenQueriesEXT' n ids@
+--
+-- The length of @ids@ should be @n@.
+
+
+glGenQueriesEXT :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glGenQueriesEXT = ffisizeiPtruintIOV glGenQueriesEXTFunPtr
+
+glGenQueriesEXTFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glGenQueriesEXTFunPtr = unsafePerformIO (getProcAddress "glGenQueriesEXT")
+
+{-# NOINLINE glGenQueriesEXTFunPtr #-}
+
+-- | Usage: @'glGetQueryObjecti64vEXT' id pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glGetQueryObjecti64v'.
+
+
+glGetQueryObjecti64vEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLint64 -> m ()
+glGetQueryObjecti64vEXT = ffiuintenumPtrint64IOV glGetQueryObjecti64vEXTFunPtr
+
+glGetQueryObjecti64vEXTFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint64 -> IO ())
+glGetQueryObjecti64vEXTFunPtr = unsafePerformIO (getProcAddress "glGetQueryObjecti64vEXT")
+
+{-# NOINLINE glGetQueryObjecti64vEXTFunPtr #-}
+
+-- | Usage: @'glGetQueryObjectui64vEXT' id pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glGetQueryObjectui64v'.
+
+
+glGetQueryObjectui64vEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLuint64 -> m ()
+glGetQueryObjectui64vEXT = ffiuintenumPtruint64IOV glGetQueryObjectui64vEXTFunPtr
+
+glGetQueryObjectui64vEXTFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLuint64 -> IO ())
+glGetQueryObjectui64vEXTFunPtr = unsafePerformIO (getProcAddress "glGetQueryObjectui64vEXT")
+
+{-# NOINLINE glGetQueryObjectui64vEXTFunPtr #-}
+
+-- | Usage: @'glGetQueryObjectuivEXT' id pname params@
+
+
+glGetQueryObjectuivEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()
+glGetQueryObjectuivEXT = ffiuintenumPtruintIOV glGetQueryObjectuivEXTFunPtr
+
+glGetQueryObjectuivEXTFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLuint -> IO ())
+glGetQueryObjectuivEXTFunPtr = unsafePerformIO (getProcAddress "glGetQueryObjectuivEXT")
+
+{-# NOINLINE glGetQueryObjectuivEXTFunPtr #-}
+
+-- | Usage: @'glGetQueryivEXT' target pname params@
+
+
+glGetQueryivEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
+glGetQueryivEXT = ffienumenumPtrintIOV glGetQueryivEXTFunPtr
+
+glGetQueryivEXTFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+glGetQueryivEXTFunPtr = unsafePerformIO (getProcAddress "glGetQueryivEXT")
+
+{-# NOINLINE glGetQueryivEXTFunPtr #-}
+
+-- | Usage: @'glIsQueryEXT' id@
+
+
+glIsQueryEXT :: MonadIO m => GLuint -> m GLboolean
+glIsQueryEXT = ffiuintIOboolean glIsQueryEXTFunPtr
+
+glIsQueryEXTFunPtr :: FunPtr (GLuint -> IO GLboolean)
+glIsQueryEXTFunPtr = unsafePerformIO (getProcAddress "glIsQueryEXT")
+
+{-# NOINLINE glIsQueryEXTFunPtr #-}
+
+pattern GL_CURRENT_QUERY_EXT = 0x8865
+
+pattern GL_QUERY_RESULT_AVAILABLE_EXT = 0x8867
+
+pattern GL_QUERY_RESULT_EXT = 0x8866
+
+pattern GL_TIME_ELAPSED_EXT = 0x88BF
+
+pattern GL_COLOR_ATTACHMENT0_EXT = 0x8CE0
+
+pattern GL_COLOR_ATTACHMENT10_EXT = 0x8CEA
+
+pattern GL_COLOR_ATTACHMENT11_EXT = 0x8CEB
+
+pattern GL_COLOR_ATTACHMENT12_EXT = 0x8CEC
+
+pattern GL_COLOR_ATTACHMENT13_EXT = 0x8CED
+
+pattern GL_COLOR_ATTACHMENT14_EXT = 0x8CEE
+
+pattern GL_COLOR_ATTACHMENT15_EXT = 0x8CEF
+
+pattern GL_COLOR_ATTACHMENT1_EXT = 0x8CE1
+
+pattern GL_COLOR_ATTACHMENT2_EXT = 0x8CE2
+
+pattern GL_COLOR_ATTACHMENT3_EXT = 0x8CE3
+
+pattern GL_COLOR_ATTACHMENT4_EXT = 0x8CE4
+
+pattern GL_COLOR_ATTACHMENT5_EXT = 0x8CE5
+
+pattern GL_COLOR_ATTACHMENT6_EXT = 0x8CE6
+
+pattern GL_COLOR_ATTACHMENT7_EXT = 0x8CE7
+
+pattern GL_COLOR_ATTACHMENT8_EXT = 0x8CE8
+
+pattern GL_COLOR_ATTACHMENT9_EXT = 0x8CE9
+
+pattern GL_MAX_COLOR_ATTACHMENTS_EXT = 0x8CDF
+
+pattern GL_BLEND = 0x0BE2
+
+pattern GL_BLEND_DST_ALPHA = 0x80CA
+
+pattern GL_BLEND_DST_RGB = 0x80C8
+
+pattern GL_BLEND_EQUATION_ALPHA = 0x883D
+
+pattern GL_BLEND_EQUATION_RGB = 0x8009
+
+pattern GL_BLEND_SRC_ALPHA = 0x80CB
+
+pattern GL_BLEND_SRC_RGB = 0x80C9
+
+pattern GL_COLOR_WRITEMASK = 0x0C23
+
+pattern GL_DST_ALPHA = 0x0304
+
+pattern GL_DST_COLOR = 0x0306
+
+pattern GL_ONE = 1
+
+pattern GL_ONE_MINUS_DST_ALPHA = 0x0305
+
+pattern GL_ONE_MINUS_DST_COLOR = 0x0307
+
+pattern GL_ONE_MINUS_SRC_ALPHA = 0x0303
+
+pattern GL_ONE_MINUS_SRC_COLOR = 0x0301
+
+pattern GL_SRC_ALPHA = 0x0302
+
+pattern GL_SRC_ALPHA_SATURATE = 0x0308
+
+pattern GL_SRC_COLOR = 0x0300
+
+pattern GL_ZERO = 0
+
+-- | Usage: @'glDrawArraysInstancedEXT' mode start count primcount@
+--
+-- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_LINES', 'Graphics.GL.Raw.Profile.Core32.GL_LINES_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Raw.Profile.Core32.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PATCHES', 'Graphics.GL.Raw.Extension.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_POINTS', 'Graphics.GL.Raw.Internal.Shared.GL_POLYGON', 'Graphics.GL.Raw.Internal.Shared.GL_QUADS', 'Graphics.GL.Raw.Extension.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Raw.Profile.Core32.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Raw.Profile.Core32.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glDrawArraysInstanced'.
+
+
+glDrawArraysInstancedEXT :: MonadIO m => GLenum -> GLint -> GLsizei -> GLsizei -> m ()
+glDrawArraysInstancedEXT = ffienumintsizeisizeiIOV glDrawArraysInstancedEXTFunPtr
+
+glDrawArraysInstancedEXTFunPtr :: FunPtr (GLenum -> GLint -> GLsizei -> GLsizei -> IO ())
+glDrawArraysInstancedEXTFunPtr = unsafePerformIO (getProcAddress "glDrawArraysInstancedEXT")
+
+{-# NOINLINE glDrawArraysInstancedEXTFunPtr #-}
+
+-- | Usage: @'glDrawElementsInstancedEXT' mode count type indices primcount@
+--
+-- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_LINES', 'Graphics.GL.Raw.Profile.Core32.GL_LINES_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Raw.Profile.Core32.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PATCHES', 'Graphics.GL.Raw.Extension.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_POINTS', 'Graphics.GL.Raw.Internal.Shared.GL_POLYGON', 'Graphics.GL.Raw.Internal.Shared.GL_QUADS', 'Graphics.GL.Raw.Extension.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Raw.Profile.Core32.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Raw.Profile.Core32.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
+--
+-- The parameter @type@ is a @DrawElementsType@.
+--
+-- The length of @indices@ should be @COMPSIZE(count,type)@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glDrawElementsInstanced'.
+
+
+glDrawElementsInstancedEXT :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> m ()
+glDrawElementsInstancedEXT = ffienumsizeienumPtrVsizeiIOV glDrawElementsInstancedEXTFunPtr
+
+glDrawElementsInstancedEXTFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> IO ())
+glDrawElementsInstancedEXTFunPtr = unsafePerformIO (getProcAddress "glDrawElementsInstancedEXT")
+
+{-# NOINLINE glDrawElementsInstancedEXTFunPtr #-}
+
+pattern GL_FRAGMENT_DEPTH_EXT = 0x8452
+
+-- | Usage: @'glRenderbufferStorageMultisampleEXT' target samples internalformat width height@
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glRenderbufferStorageMultisample'.
+
+
+glRenderbufferStorageMultisampleEXT :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()
+glRenderbufferStorageMultisampleEXT = ffienumsizeienumsizeisizeiIOV glRenderbufferStorageMultisampleEXTFunPtr
+
+glRenderbufferStorageMultisampleEXTFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> IO ())
+glRenderbufferStorageMultisampleEXTFunPtr = unsafePerformIO (getProcAddress "glRenderbufferStorageMultisampleEXT")
+
+{-# NOINLINE glRenderbufferStorageMultisampleEXTFunPtr #-}
+
+pattern GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT = 0x8D56
+
+pattern GL_MAX_SAMPLES_EXT = 0x8D57
+
+pattern GL_RENDERBUFFER_SAMPLES_EXT = 0x8CAB
+
+pattern GL_FRAMEBUFFER_SRGB_EXT = 0x8DB9
+
+-- | Usage: @'glFramebufferTextureEXT' target attachment texture level@
+--
+-- The parameter @target@ is a @FramebufferTarget@.
+--
+-- The parameter @attachment@ is a @FramebufferAttachment@.
+--
+-- The parameter @texture@ is a @Texture@.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.glFramebufferTextureARB'.
+
+
+glFramebufferTextureEXT :: MonadIO m => GLenum -> GLenum -> GLuint -> GLint -> m ()
+glFramebufferTextureEXT = ffienumenumuintintIOV glFramebufferTextureEXTFunPtr
+
+glFramebufferTextureEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLuint -> GLint -> IO ())
+glFramebufferTextureEXTFunPtr = unsafePerformIO (getProcAddress "glFramebufferTextureEXT")
+
+{-# NOINLINE glFramebufferTextureEXTFunPtr #-}
+
+pattern GL_FIRST_VERTEX_CONVENTION_EXT = 0x8E4D
+
+pattern GL_FRAMEBUFFER_ATTACHMENT_LAYERED_EXT = 0x8DA7
+
+pattern GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_EXT = 0x8DA8
+
+pattern GL_GEOMETRY_SHADER_EXT = 0x8DD9
+
+pattern GL_LAST_VERTEX_CONVENTION_EXT = 0x8E4E
+
+pattern GL_LINES_ADJACENCY_EXT = 0x000A
+
+pattern GL_LINE_STRIP_ADJACENCY_EXT = 0x000B
+
+pattern GL_MAX_GEOMETRY_OUTPUT_VERTICES_EXT = 0x8DE0
+
+pattern GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_EXT = 0x8C29
+
+pattern GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_EXT = 0x8DE1
+
+pattern GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_EXT = 0x8DDF
+
+pattern GL_PRIMITIVES_GENERATED_EXT = 0x8C87
+
+pattern GL_TRIANGLES_ADJACENCY_EXT = 0x000C
+
+pattern GL_TRIANGLE_STRIP_ADJACENCY_EXT = 0x000D
+
+-- | Usage: @'glProgramParameteriEXT' program pname value@
+--
+-- The parameter @pname@ is a @ProgramParameterPName@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glProgramParameteri'.
+
+
+glProgramParameteriEXT :: MonadIO m => GLuint -> GLenum -> GLint -> m ()
+glProgramParameteriEXT = ffiuintenumintIOV glProgramParameteriEXTFunPtr
+
+glProgramParameteriEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> IO ())
+glProgramParameteriEXTFunPtr = unsafePerformIO (getProcAddress "glProgramParameteriEXT")
+
+{-# NOINLINE glProgramParameteriEXTFunPtr #-}
+
+pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT = 0x8CD4
+
+pattern GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_EXT = 0x8DA9
+
+pattern GL_GEOMETRY_INPUT_TYPE_EXT = 0x8DDB
+
+pattern GL_GEOMETRY_OUTPUT_TYPE_EXT = 0x8DDC
+
+pattern GL_GEOMETRY_VERTICES_OUT_EXT = 0x8DDA
+
+pattern GL_PROGRAM_POINT_SIZE_EXT = 0x8642
+
+pattern GL_INT_SAMPLER_BUFFER_EXT = 0x8DD0
+
+pattern GL_SAMPLER_BUFFER_EXT = 0x8DC2
+
+pattern GL_UNSIGNED_INT_SAMPLER_BUFFER_EXT = 0x8DD8
+
+-- | Usage: @'glRasterSamplesEXT' samples fixedsamplelocations@
+
+
+glRasterSamplesEXT :: MonadIO m => GLuint -> GLboolean -> m ()
+glRasterSamplesEXT = ffiuintbooleanIOV glRasterSamplesEXTFunPtr
+
+glRasterSamplesEXTFunPtr :: FunPtr (GLuint -> GLboolean -> IO ())
+glRasterSamplesEXTFunPtr = unsafePerformIO (getProcAddress "glRasterSamplesEXT")
+
+{-# NOINLINE glRasterSamplesEXTFunPtr #-}
+
+pattern GL_EFFECTIVE_RASTER_SAMPLES_EXT = 0x932C
+
+pattern GL_MAX_RASTER_SAMPLES_EXT = 0x9329
+
+pattern GL_MULTISAMPLE_RASTERIZATION_ALLOWED_EXT = 0x932B
+
+pattern GL_RASTER_FIXED_SAMPLE_LOCATIONS_EXT = 0x932A
+
+pattern GL_RASTER_MULTISAMPLE_EXT = 0x9327
+
+pattern GL_RASTER_SAMPLES_EXT = 0x9328
+
+pattern GL_SRGB8_ALPHA8_EXT = 0x8C43
+
+pattern GL_SRGB_ALPHA_EXT = 0x8C42
+
+pattern GL_SRGB_EXT = 0x8C40
+
+pattern GL_IMAGE_BUFFER_EXT = 0x9051
+
+pattern GL_IMAGE_CUBE_MAP_ARRAY_EXT = 0x9054
+
+pattern GL_INT_IMAGE_BUFFER_EXT = 0x905C
+
+pattern GL_INT_IMAGE_CUBE_MAP_ARRAY_EXT = 0x905F
+
+pattern GL_UNSIGNED_INT_IMAGE_BUFFER_EXT = 0x9067
+
+pattern GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY_EXT = 0x906A
+
+pattern GL_PRIMITIVE_RESTART_FOR_PATCHES_SUPPORTED = 0x8221
+
+pattern GL_ALPHA8_EXT = 0x803C
+
+pattern GL_LUMINANCE8_ALPHA8_EXT = 0x8045
+
+pattern GL_LUMINANCE8_EXT = 0x8040
+
+pattern GL_RGB10_A2_EXT = 0x8059
+
+pattern GL_RGB10_EXT = 0x8052
+
+-- | Usage: @'glFramebufferTextureLayerEXT' target attachment texture level layer@
+--
+-- The parameter @target@ is a @FramebufferTarget@.
+--
+-- The parameter @attachment@ is a @FramebufferAttachment@.
+--
+-- The parameter @texture@ is a @Texture@.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @layer@ is a @CheckedInt32@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glFramebufferTextureLayer'.
+
+
+glFramebufferTextureLayerEXT :: MonadIO m => GLenum -> GLenum -> GLuint -> GLint -> GLint -> m ()
+glFramebufferTextureLayerEXT = ffienumenumuintintintIOV glFramebufferTextureLayerEXTFunPtr
+
+glFramebufferTextureLayerEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLuint -> GLint -> GLint -> IO ())
+glFramebufferTextureLayerEXTFunPtr = unsafePerformIO (getProcAddress "glFramebufferTextureLayerEXT")
+
+{-# NOINLINE glFramebufferTextureLayerEXTFunPtr #-}
+
+-- | Usage: @'glGetTexParameterIivEXT' target pname params@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @pname@ is a @GetTextureParameter@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Raw.Extension.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Raw.Extension.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Raw.Extension.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Raw.Extension.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Raw.Extension.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Raw.Extension.SGIS.SharpenTexture.GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4DSIZE_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_ALPHA_SIZE', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BLUE_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BORDER', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Raw.Extension.NV.TextureBorderClamp.GL_TEXTURE_BORDER_COLOR_NV', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Shadow.GL_TEXTURE_COMPARE_OPERATOR_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_COMPONENTS', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_DEPTH_EXT', 'Graphics.GL.Raw.Extension.SGIS.TextureFilter4.GL_TEXTURE_FILTER4_SIZE_SGIS', 'Graphics.GL.Raw.Extension.SGIX.Shadow.GL_TEXTURE_GEQUAL_R_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_GREEN_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_HEIGHT', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_INTENSITY_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_INTERNAL_FORMAT', 'Graphics.GL.Raw.Extension.SGIX.Shadow.GL_TEXTURE_LEQUAL_R_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_LUMINANCE_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Raw.Extension.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_RED_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_RESIDENT', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_WIDTH', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_WRAP_T'.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glGetTexParameterIiv'.
+
+
+glGetTexParameterIivEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
+glGetTexParameterIivEXT = ffienumenumPtrintIOV glGetTexParameterIivEXTFunPtr
+
+glGetTexParameterIivEXTFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+glGetTexParameterIivEXTFunPtr = unsafePerformIO (getProcAddress "glGetTexParameterIivEXT")
+
+{-# NOINLINE glGetTexParameterIivEXTFunPtr #-}
+
+-- | Usage: @'glGetTexParameterIuivEXT' target pname params@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @pname@ is a @GetTextureParameter@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Raw.Extension.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Raw.Extension.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Raw.Extension.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Raw.Extension.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Raw.Extension.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Raw.Extension.SGIS.SharpenTexture.GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4DSIZE_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_ALPHA_SIZE', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BLUE_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BORDER', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Raw.Extension.NV.TextureBorderClamp.GL_TEXTURE_BORDER_COLOR_NV', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Shadow.GL_TEXTURE_COMPARE_OPERATOR_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_COMPONENTS', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_DEPTH_EXT', 'Graphics.GL.Raw.Extension.SGIS.TextureFilter4.GL_TEXTURE_FILTER4_SIZE_SGIS', 'Graphics.GL.Raw.Extension.SGIX.Shadow.GL_TEXTURE_GEQUAL_R_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_GREEN_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_HEIGHT', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_INTENSITY_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_INTERNAL_FORMAT', 'Graphics.GL.Raw.Extension.SGIX.Shadow.GL_TEXTURE_LEQUAL_R_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_LUMINANCE_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Raw.Extension.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_RED_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_RESIDENT', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_WIDTH', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_WRAP_T'.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glGetTexParameterIuiv'.
+
+
+glGetTexParameterIuivEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()
+glGetTexParameterIuivEXT = ffienumenumPtruintIOV glGetTexParameterIuivEXTFunPtr
+
+glGetTexParameterIuivEXTFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLuint -> IO ())
+glGetTexParameterIuivEXTFunPtr = unsafePerformIO (getProcAddress "glGetTexParameterIuivEXT")
+
+{-# NOINLINE glGetTexParameterIuivEXTFunPtr #-}
+
+-- | Usage: @'glTexParameterIivEXT' target pname params@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @pname@ is a @TextureParameterName@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Raw.Extension.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_GENERATE_MIPMAP', 'Graphics.GL.Raw.Extension.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Raw.Extension.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Raw.Extension.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Raw.Extension.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Raw.Extension.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Raw.Extension.EXT.TextureObject.GL_TEXTURE_PRIORITY_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_WRAP_R', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_WRAP_R_OES', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_WRAP_T'.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glTexParameterIiv'.
+
+
+glTexParameterIivEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
+glTexParameterIivEXT = ffienumenumPtrintIOV glTexParameterIivEXTFunPtr
+
+glTexParameterIivEXTFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+glTexParameterIivEXTFunPtr = unsafePerformIO (getProcAddress "glTexParameterIivEXT")
+
+{-# NOINLINE glTexParameterIivEXTFunPtr #-}
+
+-- | Usage: @'glTexParameterIuivEXT' target pname params@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @pname@ is a @TextureParameterName@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Raw.Extension.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_GENERATE_MIPMAP', 'Graphics.GL.Raw.Extension.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Raw.Extension.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Raw.Extension.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Raw.Extension.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Raw.Extension.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Raw.Extension.EXT.TextureObject.GL_TEXTURE_PRIORITY_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_WRAP_R', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_WRAP_R_OES', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_WRAP_T'.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glTexParameterIuiv'.
+
+
+glTexParameterIuivEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()
+glTexParameterIuivEXT = ffienumenumPtruintIOV glTexParameterIuivEXTFunPtr
+
+glTexParameterIuivEXTFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLuint -> IO ())
+glTexParameterIuivEXTFunPtr = unsafePerformIO (getProcAddress "glTexParameterIuivEXT")
+
+{-# NOINLINE glTexParameterIuivEXTFunPtr #-}
+
+-- | Usage: @'glTexBufferEXT' target internalformat buffer@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- This command is an alias for 'Graphics.GL.Raw.Internal.Shared.glTexBuffer'.
+
+
+glTexBufferEXT :: MonadIO m => GLenum -> GLenum -> GLuint -> m ()
+glTexBufferEXT = ffienumenumuintIOV glTexBufferEXTFunPtr
+
+glTexBufferEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLuint -> IO ())
+glTexBufferEXTFunPtr = unsafePerformIO (getProcAddress "glTexBufferEXT")
+
+{-# NOINLINE glTexBufferEXTFunPtr #-}
+
+pattern GL_MAX_TEXTURE_BUFFER_SIZE_EXT = 0x8C2B
+
+pattern GL_TEXTURE_BINDING_BUFFER_EXT = 0x8C2C
+
+pattern GL_TEXTURE_BUFFER_DATA_STORE_BINDING_EXT = 0x8C2D
+
+pattern GL_TEXTURE_BUFFER_EXT = 0x8C2A
+
+pattern GL_COMPRESSED_RGBA_S3TC_DXT1_EXT = 0x83F1
+
+pattern GL_COMPRESSED_RGB_S3TC_DXT1_EXT = 0x83F0
+
+pattern GL_R8_EXT = 0x8229
+
+pattern GL_RG8_EXT = 0x822B
+
+pattern GL_R16_SNORM = 0x8F98
+
+pattern GL_R8_SNORM = 0x8F94
+
+pattern GL_RG16_SNORM = 0x8F99
+
+pattern GL_RG8_SNORM = 0x8F95
+
+pattern GL_RGB16_SNORM = 0x8F9A
+
+pattern GL_RGB8_SNORM = 0x8F96
+
+pattern GL_RGBA16_SNORM = 0x8F9B
+
+pattern GL_RGBA8_SNORM = 0x8F97
+
+pattern GL_SIGNED_NORMALIZED = 0x8F9C
+
+pattern GL_CONTEXT_RELEASE_BEHAVIOR = 0x82FB
+
+pattern GL_CONTEXT_RELEASE_BEHAVIOR_FLUSH = 0x82FC
+
+pattern GL_NONE = 0
+
+-- | Usage: @'glDebugMessageCallback' callback userParam@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDebugMessageCallback.xhtml>
+
+
+glDebugMessageCallback :: MonadIO m => GLDEBUGPROC -> Ptr () -> m ()
+glDebugMessageCallback = ffiDEBUGPROCPtrVIOV glDebugMessageCallbackFunPtr
+
+glDebugMessageCallbackFunPtr :: FunPtr (GLDEBUGPROC -> Ptr () -> IO ())
+glDebugMessageCallbackFunPtr = unsafePerformIO (getProcAddress "glDebugMessageCallback")
+
+{-# NOINLINE glDebugMessageCallbackFunPtr #-}
+
+-- | Usage: @'glDebugMessageControl' source type severity count ids enabled@
+--
+-- The parameter @enabled@ is a @Boolean@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FALSE', 'Graphics.GL.Raw.Internal.Shared.GL_TRUE'.
+--
+-- The length of @ids@ should be @count@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDebugMessageControl.xhtml>
+
+
+glDebugMessageControl :: MonadIO m => GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLuint -> GLboolean -> m ()
+glDebugMessageControl = ffienumenumenumsizeiPtruintbooleanIOV glDebugMessageControlFunPtr
+
+glDebugMessageControlFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLuint -> GLboolean -> IO ())
+glDebugMessageControlFunPtr = unsafePerformIO (getProcAddress "glDebugMessageControl")
+
+{-# NOINLINE glDebugMessageControlFunPtr #-}
+
+-- | Usage: @'glDebugMessageInsert' source type id severity length buf@
+--
+-- The length of @buf@ should be @COMPSIZE(buf,length)@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDebugMessageInsert.xhtml>
+
+
+glDebugMessageInsert :: MonadIO m => GLenum -> GLenum -> GLuint -> GLenum -> GLsizei -> Ptr GLchar -> m ()
+glDebugMessageInsert = ffienumenumuintenumsizeiPtrcharIOV glDebugMessageInsertFunPtr
+
+glDebugMessageInsertFunPtr :: FunPtr (GLenum -> GLenum -> GLuint -> GLenum -> GLsizei -> Ptr GLchar -> IO ())
+glDebugMessageInsertFunPtr = unsafePerformIO (getProcAddress "glDebugMessageInsert")
+
+{-# NOINLINE glDebugMessageInsertFunPtr #-}
+
+-- | Usage: @'glGetDebugMessageLog' count bufSize sources types ids severities lengths messageLog@
+--
+-- The length of @sources@ should be @count@.
+--
+-- The length of @types@ should be @count@.
+--
+-- The length of @ids@ should be @count@.
+--
+-- The length of @severities@ should be @count@.
+--
+-- The length of @lengths@ should be @count@.
+--
+-- The length of @messageLog@ should be @bufSize@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetDebugMessageLog.xhtml>
+
+
+glGetDebugMessageLog :: MonadIO m => GLuint -> GLsizei -> Ptr GLenum -> Ptr GLenum -> Ptr GLuint -> Ptr GLenum -> Ptr GLsizei -> Ptr GLchar -> m GLuint
+glGetDebugMessageLog = ffiuintsizeiPtrenumPtrenumPtruintPtrenumPtrsizeiPtrcharIOuint glGetDebugMessageLogFunPtr
+
+glGetDebugMessageLogFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLenum -> Ptr GLenum -> Ptr GLuint -> Ptr GLenum -> Ptr GLsizei -> Ptr GLchar -> IO GLuint)
+glGetDebugMessageLogFunPtr = unsafePerformIO (getProcAddress "glGetDebugMessageLog")
+
+{-# NOINLINE glGetDebugMessageLogFunPtr #-}
+
+-- | Usage: @'glGetObjectLabel' identifier name bufSize length label@
+--
+-- The length of @length@ should be @1@.
+--
+-- The length of @label@ should be @bufSize@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetObjectLabel.xhtml>
+
+
+glGetObjectLabel :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
+glGetObjectLabel = ffienumuintsizeiPtrsizeiPtrcharIOV glGetObjectLabelFunPtr
+
+glGetObjectLabelFunPtr :: FunPtr (GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
+glGetObjectLabelFunPtr = unsafePerformIO (getProcAddress "glGetObjectLabel")
+
+{-# NOINLINE glGetObjectLabelFunPtr #-}
+
+-- | Usage: @'glGetObjectPtrLabel' ptr bufSize length label@
+--
+-- The length of @length@ should be @1@.
+--
+-- The length of @label@ should be @bufSize@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetObjectPtrLabel.xhtml>
+
+
+glGetObjectPtrLabel :: MonadIO m => Ptr () -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
+glGetObjectPtrLabel = ffiPtrVsizeiPtrsizeiPtrcharIOV glGetObjectPtrLabelFunPtr
+
+glGetObjectPtrLabelFunPtr :: FunPtr (Ptr () -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
+glGetObjectPtrLabelFunPtr = unsafePerformIO (getProcAddress "glGetObjectPtrLabel")
+
+{-# NOINLINE glGetObjectPtrLabelFunPtr #-}
+
+-- | Usage: @'glGetPointerv' pname params@
+--
+-- The parameter @pname@ is a @GetPointervPName@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_ARRAY_POINTER', 'Graphics.GL.Raw.Extension.EXT.VertexArray.GL_COLOR_ARRAY_POINTER_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_EDGE_FLAG_ARRAY_POINTER', 'Graphics.GL.Raw.Extension.EXT.VertexArray.GL_EDGE_FLAG_ARRAY_POINTER_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_FEEDBACK_BUFFER_POINTER', 'Graphics.GL.Raw.Internal.Shared.GL_INDEX_ARRAY_POINTER', 'Graphics.GL.Raw.Extension.EXT.VertexArray.GL_INDEX_ARRAY_POINTER_EXT', 'Graphics.GL.Raw.Extension.SGIX.Instruments.GL_INSTRUMENT_BUFFER_POINTER_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_NORMAL_ARRAY_POINTER', 'Graphics.GL.Raw.Extension.EXT.VertexArray.GL_NORMAL_ARRAY_POINTER_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_SELECTION_BUFFER_POINTER', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_COORD_ARRAY_POINTER', 'Graphics.GL.Raw.Extension.EXT.VertexArray.GL_TEXTURE_COORD_ARRAY_POINTER_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_VERTEX_ARRAY_POINTER', 'Graphics.GL.Raw.Extension.EXT.VertexArray.GL_VERTEX_ARRAY_POINTER_EXT'.
+--
+-- The length of @params@ should be @1@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetPointerv.xhtml>
+
+
+glGetPointerv :: MonadIO m => GLenum -> Ptr (Ptr ()) -> m ()
+glGetPointerv = ffienumPtrPtrVIOV glGetPointervFunPtr
+
+glGetPointervFunPtr :: FunPtr (GLenum -> Ptr (Ptr ()) -> IO ())
+glGetPointervFunPtr = unsafePerformIO (getProcAddress "glGetPointerv")
+
+{-# NOINLINE glGetPointervFunPtr #-}
+
+-- | Usage: @'glObjectLabel' identifier name length label@
+--
+-- The length of @label@ should be @COMPSIZE(label,length)@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glObjectLabel.xhtml>
+
+
+glObjectLabel :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLchar -> m ()
+glObjectLabel = ffienumuintsizeiPtrcharIOV glObjectLabelFunPtr
+
+glObjectLabelFunPtr :: FunPtr (GLenum -> GLuint -> GLsizei -> Ptr GLchar -> IO ())
+glObjectLabelFunPtr = unsafePerformIO (getProcAddress "glObjectLabel")
+
+{-# NOINLINE glObjectLabelFunPtr #-}
+
+-- | Usage: @'glObjectPtrLabel' ptr length label@
+--
+-- The length of @label@ should be @COMPSIZE(label,length)@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glObjectPtrLabel.xhtml>
+
+
+glObjectPtrLabel :: MonadIO m => Ptr () -> GLsizei -> Ptr GLchar -> m ()
+glObjectPtrLabel = ffiPtrVsizeiPtrcharIOV glObjectPtrLabelFunPtr
+
+glObjectPtrLabelFunPtr :: FunPtr (Ptr () -> GLsizei -> Ptr GLchar -> IO ())
+glObjectPtrLabelFunPtr = unsafePerformIO (getProcAddress "glObjectPtrLabel")
+
+{-# NOINLINE glObjectPtrLabelFunPtr #-}
+
+-- | Usage: @'glPopDebugGroup'@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glPopDebugGroup.xhtml>
+
+
+glPopDebugGroup :: MonadIO m => m ()
+glPopDebugGroup = ffiIOV glPopDebugGroupFunPtr
+
+glPopDebugGroupFunPtr :: FunPtr (IO ())
+glPopDebugGroupFunPtr = unsafePerformIO (getProcAddress "glPopDebugGroup")
+
+{-# NOINLINE glPopDebugGroupFunPtr #-}
+
+-- | Usage: @'glPushDebugGroup' source id length message@
+--
+-- The length of @message@ should be @COMPSIZE(message,length)@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glPushDebugGroup.xhtml>
+
+
+glPushDebugGroup :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLchar -> m ()
+glPushDebugGroup = ffienumuintsizeiPtrcharIOV glPushDebugGroupFunPtr
+
+glPushDebugGroupFunPtr :: FunPtr (GLenum -> GLuint -> GLsizei -> Ptr GLchar -> IO ())
+glPushDebugGroupFunPtr = unsafePerformIO (getProcAddress "glPushDebugGroup")
+
+{-# NOINLINE glPushDebugGroupFunPtr #-}
+
+pattern GL_BUFFER = 0x82E0
+
+pattern GL_CONTEXT_FLAG_DEBUG_BIT = 0x00000002
+
+pattern GL_DEBUG_CALLBACK_FUNCTION = 0x8244
+
+pattern GL_DEBUG_CALLBACK_USER_PARAM = 0x8245
+
+pattern GL_DEBUG_GROUP_STACK_DEPTH = 0x826D
+
+pattern GL_DEBUG_LOGGED_MESSAGES = 0x9145
+
+pattern GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH = 0x8243
+
+pattern GL_DEBUG_OUTPUT = 0x92E0
+
+pattern GL_DEBUG_OUTPUT_SYNCHRONOUS = 0x8242
+
+pattern GL_DEBUG_SEVERITY_HIGH = 0x9146
+
+pattern GL_DEBUG_SEVERITY_LOW = 0x9148
+
+pattern GL_DEBUG_SEVERITY_MEDIUM = 0x9147
+
+pattern GL_DEBUG_SEVERITY_NOTIFICATION = 0x826B
+
+pattern GL_DEBUG_SOURCE_API = 0x8246
+
+pattern GL_DEBUG_SOURCE_APPLICATION = 0x824A
+
+pattern GL_DEBUG_SOURCE_OTHER = 0x824B
+
+pattern GL_DEBUG_SOURCE_SHADER_COMPILER = 0x8248
+
+pattern GL_DEBUG_SOURCE_THIRD_PARTY = 0x8249
+
+pattern GL_DEBUG_SOURCE_WINDOW_SYSTEM = 0x8247
+
+pattern GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR = 0x824D
+
+pattern GL_DEBUG_TYPE_ERROR = 0x824C
+
+pattern GL_DEBUG_TYPE_MARKER = 0x8268
+
+pattern GL_DEBUG_TYPE_OTHER = 0x8251
+
+pattern GL_DEBUG_TYPE_PERFORMANCE = 0x8250
+
+pattern GL_DEBUG_TYPE_POP_GROUP = 0x826A
+
+pattern GL_DEBUG_TYPE_PORTABILITY = 0x824F
+
+pattern GL_DEBUG_TYPE_PUSH_GROUP = 0x8269
+
+pattern GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR = 0x824E
+
+pattern GL_DISPLAY_LIST = 0x82E7
+
+pattern GL_MAX_DEBUG_GROUP_STACK_DEPTH = 0x826C
+
+pattern GL_MAX_DEBUG_LOGGED_MESSAGES = 0x9144
+
+pattern GL_MAX_DEBUG_MESSAGE_LENGTH = 0x9143
+
+pattern GL_MAX_LABEL_LENGTH = 0x82E8
+
+pattern GL_PROGRAM = 0x82E2
+
+pattern GL_PROGRAM_PIPELINE = 0x82E4
+
+pattern GL_QUERY = 0x82E3
+
+pattern GL_SHADER = 0x82E1
+
+pattern GL_STACK_OVERFLOW = 0x0503
+
+pattern GL_STACK_UNDERFLOW = 0x0504
+
+pattern GL_VERTEX_ARRAY = 0x8074
+
+-- | Usage: @'glGetGraphicsResetStatus'@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetGraphicsResetStatus.xhtml>
+
+
+glGetGraphicsResetStatus :: MonadIO m => m GLenum
+glGetGraphicsResetStatus = ffiIOenum glGetGraphicsResetStatusFunPtr
+
+glGetGraphicsResetStatusFunPtr :: FunPtr (IO GLenum)
+glGetGraphicsResetStatusFunPtr = unsafePerformIO (getProcAddress "glGetGraphicsResetStatus")
+
+{-# NOINLINE glGetGraphicsResetStatusFunPtr #-}
+
+-- | Usage: @'glGetnUniformfv' program location bufSize params@
+
+
+glGetnUniformfv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()
+glGetnUniformfv = ffiuintintsizeiPtrfloatIOV glGetnUniformfvFunPtr
+
+glGetnUniformfvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLfloat -> IO ())
+glGetnUniformfvFunPtr = unsafePerformIO (getProcAddress "glGetnUniformfv")
+
+{-# NOINLINE glGetnUniformfvFunPtr #-}
+
+-- | Usage: @'glGetnUniformiv' program location bufSize params@
+
+
+glGetnUniformiv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()
+glGetnUniformiv = ffiuintintsizeiPtrintIOV glGetnUniformivFunPtr
+
+glGetnUniformivFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint -> IO ())
+glGetnUniformivFunPtr = unsafePerformIO (getProcAddress "glGetnUniformiv")
+
+{-# NOINLINE glGetnUniformivFunPtr #-}
+
+-- | Usage: @'glGetnUniformuiv' program location bufSize params@
+
+
+glGetnUniformuiv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()
+glGetnUniformuiv = ffiuintintsizeiPtruintIOV glGetnUniformuivFunPtr
+
+glGetnUniformuivFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint -> IO ())
+glGetnUniformuivFunPtr = unsafePerformIO (getProcAddress "glGetnUniformuiv")
+
+{-# NOINLINE glGetnUniformuivFunPtr #-}
+
+-- | Usage: @'glReadnPixels' x y width height format type bufSize data@
+
+
+glReadnPixels :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> GLsizei -> Ptr () -> m ()
+glReadnPixels = ffiintintsizeisizeienumenumsizeiPtrVIOV glReadnPixelsFunPtr
+
+glReadnPixelsFunPtr :: FunPtr (GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> GLsizei -> Ptr () -> IO ())
+glReadnPixelsFunPtr = unsafePerformIO (getProcAddress "glReadnPixels")
+
+{-# NOINLINE glReadnPixelsFunPtr #-}
+
+pattern GL_CONTEXT_LOST = 0x0507
+
+pattern GL_GUILTY_CONTEXT_RESET = 0x8253
+
+pattern GL_INNOCENT_CONTEXT_RESET = 0x8254
+
+pattern GL_LOSE_CONTEXT_ON_RESET = 0x8252
+
+pattern GL_NO_RESET_NOTIFICATION = 0x8261
+
+pattern GL_RESET_NOTIFICATION_STRATEGY = 0x8256
+
+pattern GL_UNKNOWN_CONTEXT_RESET = 0x8255
+
+pattern GL_COMPRESSED_RGBA_ASTC_10x10_KHR = 0x93BB
+
+pattern GL_COMPRESSED_RGBA_ASTC_10x5_KHR = 0x93B8
+
+pattern GL_COMPRESSED_RGBA_ASTC_10x6_KHR = 0x93B9
+
+pattern GL_COMPRESSED_RGBA_ASTC_10x8_KHR = 0x93BA
+
+pattern GL_COMPRESSED_RGBA_ASTC_12x10_KHR = 0x93BC
+
+pattern GL_COMPRESSED_RGBA_ASTC_12x12_KHR = 0x93BD
+
+pattern GL_COMPRESSED_RGBA_ASTC_4x4_KHR = 0x93B0
+
+pattern GL_COMPRESSED_RGBA_ASTC_5x4_KHR = 0x93B1
+
+pattern GL_COMPRESSED_RGBA_ASTC_5x5_KHR = 0x93B2
+
+pattern GL_COMPRESSED_RGBA_ASTC_6x5_KHR = 0x93B3
+
+pattern GL_COMPRESSED_RGBA_ASTC_6x6_KHR = 0x93B4
+
+pattern GL_COMPRESSED_RGBA_ASTC_8x5_KHR = 0x93B5
+
+pattern GL_COMPRESSED_RGBA_ASTC_8x6_KHR = 0x93B6
+
+pattern GL_COMPRESSED_RGBA_ASTC_8x8_KHR = 0x93B7
+
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR = 0x93DB
+
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR = 0x93D8
+
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR = 0x93D9
+
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR = 0x93DA
+
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR = 0x93DC
+
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR = 0x93DD
+
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR = 0x93D0
+
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR = 0x93D1
+
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR = 0x93D2
+
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR = 0x93D3
+
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR = 0x93D4
+
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR = 0x93D5
+
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR = 0x93D6
+
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR = 0x93D7
+
+pattern GL_INVERT = 0x150A
+
+pattern GL_COLOR_ATTACHMENT0_NV = 0x8CE0
+
+pattern GL_COLOR_ATTACHMENT10_NV = 0x8CEA
+
+pattern GL_COLOR_ATTACHMENT11_NV = 0x8CEB
+
+pattern GL_COLOR_ATTACHMENT12_NV = 0x8CEC
+
+pattern GL_COLOR_ATTACHMENT13_NV = 0x8CED
+
+pattern GL_COLOR_ATTACHMENT14_NV = 0x8CEE
+
+pattern GL_COLOR_ATTACHMENT15_NV = 0x8CEF
+
+pattern GL_COLOR_ATTACHMENT1_NV = 0x8CE1
+
+pattern GL_COLOR_ATTACHMENT2_NV = 0x8CE2
+
+pattern GL_COLOR_ATTACHMENT3_NV = 0x8CE3
+
+pattern GL_COLOR_ATTACHMENT4_NV = 0x8CE4
+
+pattern GL_COLOR_ATTACHMENT5_NV = 0x8CE5
+
+pattern GL_COLOR_ATTACHMENT6_NV = 0x8CE6
+
+pattern GL_COLOR_ATTACHMENT7_NV = 0x8CE7
+
+pattern GL_COLOR_ATTACHMENT8_NV = 0x8CE8
+
+pattern GL_COLOR_ATTACHMENT9_NV = 0x8CE9
+
+pattern GL_EYE_PLANE = 0x2502
+
+pattern GL_MAX_PROGRAM_CALL_DEPTH_NV = 0x88F5
+
+pattern GL_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV = 0x88F4
+
+pattern GL_COLOR_SAMPLES_NV = 0x8E20
+
+pattern GL_PRIMARY_COLOR = 0x8577
+
+pattern GL_PRIMARY_COLOR_NV = 0x852C
+
+pattern GL_SECONDARY_COLOR_NV = 0x852D
+
+pattern GL_FOG = 0x0B60
+
+pattern GL_READ_WRITE = 0x88BA
+
+pattern GL_WRITE_ONLY = 0x88B9
+
+pattern GL_BYTE = 0x1400
+
+pattern GL_DEPTH_COMPONENT24_OES = 0x81A6
+
+-- | Usage: @'glGetTexGenxvOES' coord pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetTexGenxvOES :: MonadIO m => GLenum -> GLenum -> Ptr GLfixed -> m ()
+glGetTexGenxvOES = ffienumenumPtrfixedIOV glGetTexGenxvOESFunPtr
+
+glGetTexGenxvOESFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfixed -> IO ())
+glGetTexGenxvOESFunPtr = unsafePerformIO (getProcAddress "glGetTexGenxvOES")
+
+{-# NOINLINE glGetTexGenxvOESFunPtr #-}
+
+-- | Usage: @'glTexGenxOES' coord pname param@
+
+
+glTexGenxOES :: MonadIO m => GLenum -> GLenum -> GLfixed -> m ()
+glTexGenxOES = ffienumenumfixedIOV glTexGenxOESFunPtr
+
+glTexGenxOESFunPtr :: FunPtr (GLenum -> GLenum -> GLfixed -> IO ())
+glTexGenxOESFunPtr = unsafePerformIO (getProcAddress "glTexGenxOES")
+
+{-# NOINLINE glTexGenxOESFunPtr #-}
+
+-- | Usage: @'glTexGenxvOES' coord pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glTexGenxvOES :: MonadIO m => GLenum -> GLenum -> Ptr GLfixed -> m ()
+glTexGenxvOES = ffienumenumPtrfixedIOV glTexGenxvOESFunPtr
+
+glTexGenxvOESFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfixed -> IO ())
+glTexGenxvOESFunPtr = unsafePerformIO (getProcAddress "glTexGenxvOES")
+
+{-# NOINLINE glTexGenxvOESFunPtr #-}
+
+pattern GL_DEPTH_COMPONENT16_OES = 0x81A5
+
+pattern GL_RGB565_OES = 0x8D62
+
+pattern GL_RGB5_A1_OES = 0x8057
+
+pattern GL_RGBA4_OES = 0x8056
+
+pattern GL_RGB8_OES = 0x8051
+
+pattern GL_RGBA8_OES = 0x8058
+
+pattern GL_STENCIL_INDEX8_OES = 0x8D48
+
+pattern GL_HALF_FLOAT_OES = 0x8D61
+
+-- | Usage: @'glAccum' op value@
+--
+-- The parameter @op@ is a @AccumOp@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_ACCUM', 'Graphics.GL.Raw.Internal.Shared.GL_LOAD', 'Graphics.GL.Raw.Internal.Shared.GL_RETURN', 'Graphics.GL.Raw.Internal.Shared.GL_MULT', 'Graphics.GL.Raw.Internal.Shared.GL_ADD'.
+--
+-- The parameter @value@ is a @CoordF@.
+
+
+glAccum :: MonadIO m => GLenum -> GLfloat -> m ()
+glAccum = ffienumfloatIOV glAccumFunPtr
+
+glAccumFunPtr :: FunPtr (GLenum -> GLfloat -> IO ())
+glAccumFunPtr = unsafePerformIO (getProcAddress "glAccum")
+
+{-# NOINLINE glAccumFunPtr #-}
+
+-- | Usage: @'glAlphaFunc' func ref@
+--
+-- The parameter @func@ is a @AlphaFunction@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_ALWAYS', 'Graphics.GL.Raw.Internal.Shared.GL_EQUAL', 'Graphics.GL.Raw.Internal.Shared.GL_GEQUAL', 'Graphics.GL.Raw.Internal.Shared.GL_GREATER', 'Graphics.GL.Raw.Internal.Shared.GL_LEQUAL', 'Graphics.GL.Raw.Internal.Shared.GL_LESS', 'Graphics.GL.Raw.Internal.Shared.GL_NEVER', 'Graphics.GL.Raw.Internal.Shared.GL_NOTEQUAL'.
+
+
+glAlphaFunc :: MonadIO m => GLenum -> GLfloat -> m ()
+glAlphaFunc = ffienumfloatIOV glAlphaFuncFunPtr
+
+glAlphaFuncFunPtr :: FunPtr (GLenum -> GLfloat -> IO ())
+glAlphaFuncFunPtr = unsafePerformIO (getProcAddress "glAlphaFunc")
+
+{-# NOINLINE glAlphaFuncFunPtr #-}
+
+-- | Usage: @'glAreTexturesResident' n textures residences@
+--
+-- The parameter @textures@ is a @Texture@.
+--
+-- The parameter @residences@ is a @Boolean@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FALSE', 'Graphics.GL.Raw.Internal.Shared.GL_TRUE'.
+--
+-- The length of @textures@ should be @n@.
+--
+-- The length of @residences@ should be @n@.
+
+
+glAreTexturesResident :: MonadIO m => GLsizei -> Ptr GLuint -> Ptr GLboolean -> m GLboolean
+glAreTexturesResident = ffisizeiPtruintPtrbooleanIOboolean glAreTexturesResidentFunPtr
+
+glAreTexturesResidentFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> Ptr GLboolean -> IO GLboolean)
+glAreTexturesResidentFunPtr = unsafePerformIO (getProcAddress "glAreTexturesResident")
+
+{-# NOINLINE glAreTexturesResidentFunPtr #-}
+
+-- | Usage: @'glArrayElement' i@
+
+
+glArrayElement :: MonadIO m => GLint -> m ()
+glArrayElement = ffiintIOV glArrayElementFunPtr
+
+glArrayElementFunPtr :: FunPtr (GLint -> IO ())
+glArrayElementFunPtr = unsafePerformIO (getProcAddress "glArrayElement")
+
+{-# NOINLINE glArrayElementFunPtr #-}
+
+-- | Usage: @'glBegin' mode@
+--
+-- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_LINES', 'Graphics.GL.Raw.Profile.Core32.GL_LINES_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Raw.Profile.Core32.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PATCHES', 'Graphics.GL.Raw.Extension.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_POINTS', 'Graphics.GL.Raw.Internal.Shared.GL_POLYGON', 'Graphics.GL.Raw.Internal.Shared.GL_QUADS', 'Graphics.GL.Raw.Extension.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Raw.Profile.Core32.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Raw.Profile.Core32.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
+
+
+glBegin :: MonadIO m => GLenum -> m ()
+glBegin = ffienumIOV glBeginFunPtr
+
+glBeginFunPtr :: FunPtr (GLenum -> IO ())
+glBeginFunPtr = unsafePerformIO (getProcAddress "glBegin")
+
+{-# NOINLINE glBeginFunPtr #-}
+
+-- | Usage: @'glBitmap' width height xorig yorig xmove ymove bitmap@
+--
+-- The parameter @xorig@ is a @CoordF@.
+--
+-- The parameter @yorig@ is a @CoordF@.
+--
+-- The parameter @xmove@ is a @CoordF@.
+--
+-- The parameter @ymove@ is a @CoordF@.
+--
+-- The length of @bitmap@ should be @COMPSIZE(width,height)@.
+
+
+glBitmap :: MonadIO m => GLsizei -> GLsizei -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> Ptr GLubyte -> m ()
+glBitmap = ffisizeisizeifloatfloatfloatfloatPtrubyteIOV glBitmapFunPtr
+
+glBitmapFunPtr :: FunPtr (GLsizei -> GLsizei -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> Ptr GLubyte -> IO ())
+glBitmapFunPtr = unsafePerformIO (getProcAddress "glBitmap")
+
+{-# NOINLINE glBitmapFunPtr #-}
+
+-- | Usage: @'glCallList' list@
+--
+-- The parameter @list@ is a @List@.
+
+
+glCallList :: MonadIO m => GLuint -> m ()
+glCallList = ffiuintIOV glCallListFunPtr
+
+glCallListFunPtr :: FunPtr (GLuint -> IO ())
+glCallListFunPtr = unsafePerformIO (getProcAddress "glCallList")
+
+{-# NOINLINE glCallListFunPtr #-}
+
+-- | Usage: @'glCallLists' n type lists@
+--
+-- The parameter @type@ is a @ListNameType@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_2_BYTES', 'Graphics.GL.Raw.Internal.Shared.GL_3_BYTES', 'Graphics.GL.Raw.Internal.Shared.GL_4_BYTES', 'Graphics.GL.Raw.Internal.Shared.GL_BYTE', 'Graphics.GL.Raw.Internal.Shared.GL_FLOAT', 'Graphics.GL.Raw.Internal.Shared.GL_INT', 'Graphics.GL.Raw.Internal.Shared.GL_SHORT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT'.
+--
+-- The length of @lists@ should be @COMPSIZE(n,type)@.
+
+
+glCallLists :: MonadIO m => GLsizei -> GLenum -> Ptr () -> m ()
+glCallLists = ffisizeienumPtrVIOV glCallListsFunPtr
+
+glCallListsFunPtr :: FunPtr (GLsizei -> GLenum -> Ptr () -> IO ())
+glCallListsFunPtr = unsafePerformIO (getProcAddress "glCallLists")
+
+{-# NOINLINE glCallListsFunPtr #-}
+
+-- | Usage: @'glClearAccum' red green blue alpha@
+
+
+glClearAccum :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
+glClearAccum = ffifloatfloatfloatfloatIOV glClearAccumFunPtr
+
+glClearAccumFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+glClearAccumFunPtr = unsafePerformIO (getProcAddress "glClearAccum")
+
+{-# NOINLINE glClearAccumFunPtr #-}
+
+-- | Usage: @'glClearIndex' c@
+--
+-- The parameter @c@ is a @MaskedColorIndexValueF@.
+
+
+glClearIndex :: MonadIO m => GLfloat -> m ()
+glClearIndex = ffifloatIOV glClearIndexFunPtr
+
+glClearIndexFunPtr :: FunPtr (GLfloat -> IO ())
+glClearIndexFunPtr = unsafePerformIO (getProcAddress "glClearIndex")
+
+{-# NOINLINE glClearIndexFunPtr #-}
+
+-- | Usage: @'glClientActiveTexture' texture@
+--
+-- The parameter @texture@ is a @TextureUnit@.
+
+
+glClientActiveTexture :: MonadIO m => GLenum -> m ()
+glClientActiveTexture = ffienumIOV glClientActiveTextureFunPtr
+
+glClientActiveTextureFunPtr :: FunPtr (GLenum -> IO ())
+glClientActiveTextureFunPtr = unsafePerformIO (getProcAddress "glClientActiveTexture")
+
+{-# NOINLINE glClientActiveTextureFunPtr #-}
+
+-- | Usage: @'glClipPlane' plane equation@
+--
+-- The parameter @plane@ is a @ClipPlaneName@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_CLIP_DISTANCE0', 'Graphics.GL.Raw.Internal.Shared.GL_CLIP_DISTANCE1', 'Graphics.GL.Raw.Internal.Shared.GL_CLIP_DISTANCE2', 'Graphics.GL.Raw.Internal.Shared.GL_CLIP_DISTANCE3', 'Graphics.GL.Raw.Internal.Shared.GL_CLIP_DISTANCE4', 'Graphics.GL.Raw.Internal.Shared.GL_CLIP_DISTANCE5', 'Graphics.GL.Raw.Internal.Shared.GL_CLIP_DISTANCE6', 'Graphics.GL.Raw.Internal.Shared.GL_CLIP_DISTANCE7', 'Graphics.GL.Raw.Internal.Shared.GL_CLIP_PLANE0', 'Graphics.GL.Raw.Internal.Shared.GL_CLIP_PLANE1', 'Graphics.GL.Raw.Internal.Shared.GL_CLIP_PLANE2', 'Graphics.GL.Raw.Internal.Shared.GL_CLIP_PLANE3', 'Graphics.GL.Raw.Internal.Shared.GL_CLIP_PLANE4', 'Graphics.GL.Raw.Internal.Shared.GL_CLIP_PLANE5'.
+--
+-- The length of @equation@ should be @4@.
+
+
+glClipPlane :: MonadIO m => GLenum -> Ptr GLdouble -> m ()
+glClipPlane = ffienumPtrdoubleIOV glClipPlaneFunPtr
+
+glClipPlaneFunPtr :: FunPtr (GLenum -> Ptr GLdouble -> IO ())
+glClipPlaneFunPtr = unsafePerformIO (getProcAddress "glClipPlane")
+
+{-# NOINLINE glClipPlaneFunPtr #-}
+
+-- | Usage: @'glColor3b' red green blue@
+--
+-- The parameter @red@ is a @ColorB@.
+--
+-- The parameter @green@ is a @ColorB@.
+--
+-- The parameter @blue@ is a @ColorB@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glColor3bv'.
+
+
+glColor3b :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> m ()
+glColor3b = ffibytebytebyteIOV glColor3bFunPtr
+
+glColor3bFunPtr :: FunPtr (GLbyte -> GLbyte -> GLbyte -> IO ())
+glColor3bFunPtr = unsafePerformIO (getProcAddress "glColor3b")
+
+{-# NOINLINE glColor3bFunPtr #-}
+
+-- | Usage: @'glColor3bv' v@
+--
+-- The parameter @v@ is a @ColorB@.
+--
+-- The length of @v@ should be @3@.
+
+
+glColor3bv :: MonadIO m => Ptr GLbyte -> m ()
+glColor3bv = ffiPtrbyteIOV glColor3bvFunPtr
+
+glColor3bvFunPtr :: FunPtr (Ptr GLbyte -> IO ())
+glColor3bvFunPtr = unsafePerformIO (getProcAddress "glColor3bv")
+
+{-# NOINLINE glColor3bvFunPtr #-}
+
+-- | Usage: @'glColor3d' red green blue@
+--
+-- The parameter @red@ is a @ColorD@.
+--
+-- The parameter @green@ is a @ColorD@.
+--
+-- The parameter @blue@ is a @ColorD@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glColor3dv'.
+
+
+glColor3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()
+glColor3d = ffidoubledoubledoubleIOV glColor3dFunPtr
+
+glColor3dFunPtr :: FunPtr (GLdouble -> GLdouble -> GLdouble -> IO ())
+glColor3dFunPtr = unsafePerformIO (getProcAddress "glColor3d")
+
+{-# NOINLINE glColor3dFunPtr #-}
+
+-- | Usage: @'glColor3dv' v@
+--
+-- The parameter @v@ is a @ColorD@.
+--
+-- The length of @v@ should be @3@.
+
+
+glColor3dv :: MonadIO m => Ptr GLdouble -> m ()
+glColor3dv = ffiPtrdoubleIOV glColor3dvFunPtr
+
+glColor3dvFunPtr :: FunPtr (Ptr GLdouble -> IO ())
+glColor3dvFunPtr = unsafePerformIO (getProcAddress "glColor3dv")
+
+{-# NOINLINE glColor3dvFunPtr #-}
+
+-- | Usage: @'glColor3f' red green blue@
+--
+-- The parameter @red@ is a @ColorF@.
+--
+-- The parameter @green@ is a @ColorF@.
+--
+-- The parameter @blue@ is a @ColorF@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glColor3fv'.
+
+
+glColor3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()
+glColor3f = ffifloatfloatfloatIOV glColor3fFunPtr
+
+glColor3fFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> IO ())
+glColor3fFunPtr = unsafePerformIO (getProcAddress "glColor3f")
+
+{-# NOINLINE glColor3fFunPtr #-}
+
+-- | Usage: @'glColor3fv' v@
+--
+-- The parameter @v@ is a @ColorF@.
+--
+-- The length of @v@ should be @3@.
+
+
+glColor3fv :: MonadIO m => Ptr GLfloat -> m ()
+glColor3fv = ffiPtrfloatIOV glColor3fvFunPtr
+
+glColor3fvFunPtr :: FunPtr (Ptr GLfloat -> IO ())
+glColor3fvFunPtr = unsafePerformIO (getProcAddress "glColor3fv")
+
+{-# NOINLINE glColor3fvFunPtr #-}
+
+-- | Usage: @'glColor3i' red green blue@
+--
+-- The parameter @red@ is a @ColorI@.
+--
+-- The parameter @green@ is a @ColorI@.
+--
+-- The parameter @blue@ is a @ColorI@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glColor3iv'.
+
+
+glColor3i :: MonadIO m => GLint -> GLint -> GLint -> m ()
+glColor3i = ffiintintintIOV glColor3iFunPtr
+
+glColor3iFunPtr :: FunPtr (GLint -> GLint -> GLint -> IO ())
+glColor3iFunPtr = unsafePerformIO (getProcAddress "glColor3i")
+
+{-# NOINLINE glColor3iFunPtr #-}
+
+-- | Usage: @'glColor3iv' v@
+--
+-- The parameter @v@ is a @ColorI@.
+--
+-- The length of @v@ should be @3@.
+
+
+glColor3iv :: MonadIO m => Ptr GLint -> m ()
+glColor3iv = ffiPtrintIOV glColor3ivFunPtr
+
+glColor3ivFunPtr :: FunPtr (Ptr GLint -> IO ())
+glColor3ivFunPtr = unsafePerformIO (getProcAddress "glColor3iv")
+
+{-# NOINLINE glColor3ivFunPtr #-}
+
+-- | Usage: @'glColor3s' red green blue@
+--
+-- The parameter @red@ is a @ColorS@.
+--
+-- The parameter @green@ is a @ColorS@.
+--
+-- The parameter @blue@ is a @ColorS@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glColor3sv'.
+
+
+glColor3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()
+glColor3s = ffishortshortshortIOV glColor3sFunPtr
+
+glColor3sFunPtr :: FunPtr (GLshort -> GLshort -> GLshort -> IO ())
+glColor3sFunPtr = unsafePerformIO (getProcAddress "glColor3s")
+
+{-# NOINLINE glColor3sFunPtr #-}
+
+-- | Usage: @'glColor3sv' v@
+--
+-- The parameter @v@ is a @ColorS@.
+--
+-- The length of @v@ should be @3@.
+
+
+glColor3sv :: MonadIO m => Ptr GLshort -> m ()
+glColor3sv = ffiPtrshortIOV glColor3svFunPtr
+
+glColor3svFunPtr :: FunPtr (Ptr GLshort -> IO ())
+glColor3svFunPtr = unsafePerformIO (getProcAddress "glColor3sv")
+
+{-# NOINLINE glColor3svFunPtr #-}
+
+-- | Usage: @'glColor3ub' red green blue@
+--
+-- The parameter @red@ is a @ColorUB@.
+--
+-- The parameter @green@ is a @ColorUB@.
+--
+-- The parameter @blue@ is a @ColorUB@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glColor3ubv'.
+
+
+glColor3ub :: MonadIO m => GLubyte -> GLubyte -> GLubyte -> m ()
+glColor3ub = ffiubyteubyteubyteIOV glColor3ubFunPtr
+
+glColor3ubFunPtr :: FunPtr (GLubyte -> GLubyte -> GLubyte -> IO ())
+glColor3ubFunPtr = unsafePerformIO (getProcAddress "glColor3ub")
+
+{-# NOINLINE glColor3ubFunPtr #-}
+
+-- | Usage: @'glColor3ubv' v@
+--
+-- The parameter @v@ is a @ColorUB@.
+--
+-- The length of @v@ should be @3@.
+
+
+glColor3ubv :: MonadIO m => Ptr GLubyte -> m ()
+glColor3ubv = ffiPtrubyteIOV glColor3ubvFunPtr
+
+glColor3ubvFunPtr :: FunPtr (Ptr GLubyte -> IO ())
+glColor3ubvFunPtr = unsafePerformIO (getProcAddress "glColor3ubv")
+
+{-# NOINLINE glColor3ubvFunPtr #-}
+
+-- | Usage: @'glColor3ui' red green blue@
+--
+-- The parameter @red@ is a @ColorUI@.
+--
+-- The parameter @green@ is a @ColorUI@.
+--
+-- The parameter @blue@ is a @ColorUI@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glColor3uiv'.
+
+
+glColor3ui :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()
+glColor3ui = ffiuintuintuintIOV glColor3uiFunPtr
+
+glColor3uiFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> IO ())
+glColor3uiFunPtr = unsafePerformIO (getProcAddress "glColor3ui")
+
+{-# NOINLINE glColor3uiFunPtr #-}
+
+-- | Usage: @'glColor3uiv' v@
+--
+-- The parameter @v@ is a @ColorUI@.
+--
+-- The length of @v@ should be @3@.
+
+
+glColor3uiv :: MonadIO m => Ptr GLuint -> m ()
+glColor3uiv = ffiPtruintIOV glColor3uivFunPtr
+
+glColor3uivFunPtr :: FunPtr (Ptr GLuint -> IO ())
+glColor3uivFunPtr = unsafePerformIO (getProcAddress "glColor3uiv")
+
+{-# NOINLINE glColor3uivFunPtr #-}
+
+-- | Usage: @'glColor3us' red green blue@
+--
+-- The parameter @red@ is a @ColorUS@.
+--
+-- The parameter @green@ is a @ColorUS@.
+--
+-- The parameter @blue@ is a @ColorUS@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glColor3usv'.
+
+
+glColor3us :: MonadIO m => GLushort -> GLushort -> GLushort -> m ()
+glColor3us = ffiushortushortushortIOV glColor3usFunPtr
+
+glColor3usFunPtr :: FunPtr (GLushort -> GLushort -> GLushort -> IO ())
+glColor3usFunPtr = unsafePerformIO (getProcAddress "glColor3us")
+
+{-# NOINLINE glColor3usFunPtr #-}
+
+-- | Usage: @'glColor3usv' v@
+--
+-- The parameter @v@ is a @ColorUS@.
+--
+-- The length of @v@ should be @3@.
+
+
+glColor3usv :: MonadIO m => Ptr GLushort -> m ()
+glColor3usv = ffiPtrushortIOV glColor3usvFunPtr
+
+glColor3usvFunPtr :: FunPtr (Ptr GLushort -> IO ())
+glColor3usvFunPtr = unsafePerformIO (getProcAddress "glColor3usv")
+
+{-# NOINLINE glColor3usvFunPtr #-}
+
+-- | Usage: @'glColor4b' red green blue alpha@
+--
+-- The parameter @red@ is a @ColorB@.
+--
+-- The parameter @green@ is a @ColorB@.
+--
+-- The parameter @blue@ is a @ColorB@.
+--
+-- The parameter @alpha@ is a @ColorB@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glColor4bv'.
+
+
+glColor4b :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> GLbyte -> m ()
+glColor4b = ffibytebytebytebyteIOV glColor4bFunPtr
+
+glColor4bFunPtr :: FunPtr (GLbyte -> GLbyte -> GLbyte -> GLbyte -> IO ())
+glColor4bFunPtr = unsafePerformIO (getProcAddress "glColor4b")
+
+{-# NOINLINE glColor4bFunPtr #-}
+
+-- | Usage: @'glColor4bv' v@
+--
+-- The parameter @v@ is a @ColorB@.
+--
+-- The length of @v@ should be @4@.
+
+
+glColor4bv :: MonadIO m => Ptr GLbyte -> m ()
+glColor4bv = ffiPtrbyteIOV glColor4bvFunPtr
+
+glColor4bvFunPtr :: FunPtr (Ptr GLbyte -> IO ())
+glColor4bvFunPtr = unsafePerformIO (getProcAddress "glColor4bv")
+
+{-# NOINLINE glColor4bvFunPtr #-}
+
+-- | Usage: @'glColor4d' red green blue alpha@
+--
+-- The parameter @red@ is a @ColorD@.
+--
+-- The parameter @green@ is a @ColorD@.
+--
+-- The parameter @blue@ is a @ColorD@.
+--
+-- The parameter @alpha@ is a @ColorD@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glColor4dv'.
+
+
+glColor4d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
+glColor4d = ffidoubledoubledoubledoubleIOV glColor4dFunPtr
+
+glColor4dFunPtr :: FunPtr (GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
+glColor4dFunPtr = unsafePerformIO (getProcAddress "glColor4d")
+
+{-# NOINLINE glColor4dFunPtr #-}
+
+-- | Usage: @'glColor4dv' v@
+--
+-- The parameter @v@ is a @ColorD@.
+--
+-- The length of @v@ should be @4@.
+
+
+glColor4dv :: MonadIO m => Ptr GLdouble -> m ()
+glColor4dv = ffiPtrdoubleIOV glColor4dvFunPtr
+
+glColor4dvFunPtr :: FunPtr (Ptr GLdouble -> IO ())
+glColor4dvFunPtr = unsafePerformIO (getProcAddress "glColor4dv")
+
+{-# NOINLINE glColor4dvFunPtr #-}
+
+-- | Usage: @'glColor4f' red green blue alpha@
+--
+-- The parameter @red@ is a @ColorF@.
+--
+-- The parameter @green@ is a @ColorF@.
+--
+-- The parameter @blue@ is a @ColorF@.
+--
+-- The parameter @alpha@ is a @ColorF@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glColor4fv'.
+
+
+glColor4f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
+glColor4f = ffifloatfloatfloatfloatIOV glColor4fFunPtr
+
+glColor4fFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+glColor4fFunPtr = unsafePerformIO (getProcAddress "glColor4f")
+
+{-# NOINLINE glColor4fFunPtr #-}
+
+-- | Usage: @'glColor4fv' v@
+--
+-- The parameter @v@ is a @ColorF@.
+--
+-- The length of @v@ should be @4@.
+
+
+glColor4fv :: MonadIO m => Ptr GLfloat -> m ()
+glColor4fv = ffiPtrfloatIOV glColor4fvFunPtr
+
+glColor4fvFunPtr :: FunPtr (Ptr GLfloat -> IO ())
+glColor4fvFunPtr = unsafePerformIO (getProcAddress "glColor4fv")
+
+{-# NOINLINE glColor4fvFunPtr #-}
+
+-- | Usage: @'glColor4i' red green blue alpha@
+--
+-- The parameter @red@ is a @ColorI@.
+--
+-- The parameter @green@ is a @ColorI@.
+--
+-- The parameter @blue@ is a @ColorI@.
+--
+-- The parameter @alpha@ is a @ColorI@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glColor4iv'.
+
+
+glColor4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()
+glColor4i = ffiintintintintIOV glColor4iFunPtr
+
+glColor4iFunPtr :: FunPtr (GLint -> GLint -> GLint -> GLint -> IO ())
+glColor4iFunPtr = unsafePerformIO (getProcAddress "glColor4i")
+
+{-# NOINLINE glColor4iFunPtr #-}
+
+-- | Usage: @'glColor4iv' v@
+--
+-- The parameter @v@ is a @ColorI@.
+--
+-- The length of @v@ should be @4@.
+
+
+glColor4iv :: MonadIO m => Ptr GLint -> m ()
+glColor4iv = ffiPtrintIOV glColor4ivFunPtr
+
+glColor4ivFunPtr :: FunPtr (Ptr GLint -> IO ())
+glColor4ivFunPtr = unsafePerformIO (getProcAddress "glColor4iv")
+
+{-# NOINLINE glColor4ivFunPtr #-}
+
+-- | Usage: @'glColor4s' red green blue alpha@
+--
+-- The parameter @red@ is a @ColorS@.
+--
+-- The parameter @green@ is a @ColorS@.
+--
+-- The parameter @blue@ is a @ColorS@.
+--
+-- The parameter @alpha@ is a @ColorS@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glColor4sv'.
+
+
+glColor4s :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()
+glColor4s = ffishortshortshortshortIOV glColor4sFunPtr
+
+glColor4sFunPtr :: FunPtr (GLshort -> GLshort -> GLshort -> GLshort -> IO ())
+glColor4sFunPtr = unsafePerformIO (getProcAddress "glColor4s")
+
+{-# NOINLINE glColor4sFunPtr #-}
+
+-- | Usage: @'glColor4sv' v@
+--
+-- The parameter @v@ is a @ColorS@.
+--
+-- The length of @v@ should be @4@.
+
+
+glColor4sv :: MonadIO m => Ptr GLshort -> m ()
+glColor4sv = ffiPtrshortIOV glColor4svFunPtr
+
+glColor4svFunPtr :: FunPtr (Ptr GLshort -> IO ())
+glColor4svFunPtr = unsafePerformIO (getProcAddress "glColor4sv")
+
+{-# NOINLINE glColor4svFunPtr #-}
+
+-- | Usage: @'glColor4ub' red green blue alpha@
+--
+-- The parameter @red@ is a @ColorUB@.
+--
+-- The parameter @green@ is a @ColorUB@.
+--
+-- The parameter @blue@ is a @ColorUB@.
+--
+-- The parameter @alpha@ is a @ColorUB@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glColor4ubv'.
+
+
+glColor4ub :: MonadIO m => GLubyte -> GLubyte -> GLubyte -> GLubyte -> m ()
+glColor4ub = ffiubyteubyteubyteubyteIOV glColor4ubFunPtr
+
+glColor4ubFunPtr :: FunPtr (GLubyte -> GLubyte -> GLubyte -> GLubyte -> IO ())
+glColor4ubFunPtr = unsafePerformIO (getProcAddress "glColor4ub")
+
+{-# NOINLINE glColor4ubFunPtr #-}
+
+-- | Usage: @'glColor4ubv' v@
+--
+-- The parameter @v@ is a @ColorUB@.
+--
+-- The length of @v@ should be @4@.
+
+
+glColor4ubv :: MonadIO m => Ptr GLubyte -> m ()
+glColor4ubv = ffiPtrubyteIOV glColor4ubvFunPtr
+
+glColor4ubvFunPtr :: FunPtr (Ptr GLubyte -> IO ())
+glColor4ubvFunPtr = unsafePerformIO (getProcAddress "glColor4ubv")
+
+{-# NOINLINE glColor4ubvFunPtr #-}
+
+-- | Usage: @'glColor4ui' red green blue alpha@
+--
+-- The parameter @red@ is a @ColorUI@.
+--
+-- The parameter @green@ is a @ColorUI@.
+--
+-- The parameter @blue@ is a @ColorUI@.
+--
+-- The parameter @alpha@ is a @ColorUI@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glColor4uiv'.
+
+
+glColor4ui :: MonadIO m => GLuint -> GLuint -> GLuint -> GLuint -> m ()
+glColor4ui = ffiuintuintuintuintIOV glColor4uiFunPtr
+
+glColor4uiFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> GLuint -> IO ())
+glColor4uiFunPtr = unsafePerformIO (getProcAddress "glColor4ui")
+
+{-# NOINLINE glColor4uiFunPtr #-}
+
+-- | Usage: @'glColor4uiv' v@
+--
+-- The parameter @v@ is a @ColorUI@.
+--
+-- The length of @v@ should be @4@.
+
+
+glColor4uiv :: MonadIO m => Ptr GLuint -> m ()
+glColor4uiv = ffiPtruintIOV glColor4uivFunPtr
+
+glColor4uivFunPtr :: FunPtr (Ptr GLuint -> IO ())
+glColor4uivFunPtr = unsafePerformIO (getProcAddress "glColor4uiv")
+
+{-# NOINLINE glColor4uivFunPtr #-}
+
+-- | Usage: @'glColor4us' red green blue alpha@
+--
+-- The parameter @red@ is a @ColorUS@.
+--
+-- The parameter @green@ is a @ColorUS@.
+--
+-- The parameter @blue@ is a @ColorUS@.
+--
+-- The parameter @alpha@ is a @ColorUS@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glColor4usv'.
+
+
+glColor4us :: MonadIO m => GLushort -> GLushort -> GLushort -> GLushort -> m ()
+glColor4us = ffiushortushortushortushortIOV glColor4usFunPtr
+
+glColor4usFunPtr :: FunPtr (GLushort -> GLushort -> GLushort -> GLushort -> IO ())
+glColor4usFunPtr = unsafePerformIO (getProcAddress "glColor4us")
+
+{-# NOINLINE glColor4usFunPtr #-}
+
+-- | Usage: @'glColor4usv' v@
+--
+-- The parameter @v@ is a @ColorUS@.
+--
+-- The length of @v@ should be @4@.
+
+
+glColor4usv :: MonadIO m => Ptr GLushort -> m ()
+glColor4usv = ffiPtrushortIOV glColor4usvFunPtr
+
+glColor4usvFunPtr :: FunPtr (Ptr GLushort -> IO ())
+glColor4usvFunPtr = unsafePerformIO (getProcAddress "glColor4usv")
+
+{-# NOINLINE glColor4usvFunPtr #-}
+
+-- | Usage: @'glColorMaterial' face mode@
+--
+-- The parameter @face@ is a @MaterialFace@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_BACK', 'Graphics.GL.Raw.Internal.Shared.GL_FRONT', 'Graphics.GL.Raw.Internal.Shared.GL_FRONT_AND_BACK'.
+--
+-- The parameter @mode@ is a @ColorMaterialParameter@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_AMBIENT', 'Graphics.GL.Raw.Internal.Shared.GL_AMBIENT_AND_DIFFUSE', 'Graphics.GL.Raw.Internal.Shared.GL_DIFFUSE', 'Graphics.GL.Raw.Internal.Shared.GL_EMISSION', 'Graphics.GL.Raw.Internal.Shared.GL_SPECULAR'.
+
+
+glColorMaterial :: MonadIO m => GLenum -> GLenum -> m ()
+glColorMaterial = ffienumenumIOV glColorMaterialFunPtr
+
+glColorMaterialFunPtr :: FunPtr (GLenum -> GLenum -> IO ())
+glColorMaterialFunPtr = unsafePerformIO (getProcAddress "glColorMaterial")
+
+{-# NOINLINE glColorMaterialFunPtr #-}
+
+-- | Usage: @'glColorPointer' size type stride pointer@
+--
+-- The parameter @type@ is a @ColorPointerType@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_BYTE', 'Graphics.GL.Raw.Internal.Shared.GL_DOUBLE', 'Graphics.GL.Raw.Internal.Shared.GL_FLOAT', 'Graphics.GL.Raw.Internal.Shared.GL_INT', 'Graphics.GL.Raw.Internal.Shared.GL_SHORT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT'.
+--
+-- The length of @pointer@ should be @COMPSIZE(size,type,stride)@.
+
+
+glColorPointer :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr () -> m ()
+glColorPointer = ffiintenumsizeiPtrVIOV glColorPointerFunPtr
+
+glColorPointerFunPtr :: FunPtr (GLint -> GLenum -> GLsizei -> Ptr () -> IO ())
+glColorPointerFunPtr = unsafePerformIO (getProcAddress "glColorPointer")
+
+{-# NOINLINE glColorPointerFunPtr #-}
+
+-- | Usage: @'glCopyPixels' x y width height type@
+--
+-- The parameter @x@ is a @WinCoord@.
+--
+-- The parameter @y@ is a @WinCoord@.
+--
+-- The parameter @type@ is a @PixelCopyType@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_COLOR', 'Graphics.GL.Raw.Extension.EXT.DiscardFramebuffer.GL_COLOR_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_DEPTH', 'Graphics.GL.Raw.Extension.EXT.DiscardFramebuffer.GL_DEPTH_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_STENCIL', 'Graphics.GL.Raw.Extension.EXT.DiscardFramebuffer.GL_STENCIL_EXT'.
+
+
+glCopyPixels :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> m ()
+glCopyPixels = ffiintintsizeisizeienumIOV glCopyPixelsFunPtr
+
+glCopyPixelsFunPtr :: FunPtr (GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> IO ())
+glCopyPixelsFunPtr = unsafePerformIO (getProcAddress "glCopyPixels")
+
+{-# NOINLINE glCopyPixelsFunPtr #-}
+
+-- | Usage: @'glDeleteLists' list range@
+--
+-- The parameter @list@ is a @List@.
+
+
+glDeleteLists :: MonadIO m => GLuint -> GLsizei -> m ()
+glDeleteLists = ffiuintsizeiIOV glDeleteListsFunPtr
+
+glDeleteListsFunPtr :: FunPtr (GLuint -> GLsizei -> IO ())
+glDeleteListsFunPtr = unsafePerformIO (getProcAddress "glDeleteLists")
+
+{-# NOINLINE glDeleteListsFunPtr #-}
+
+-- | Usage: @'glDisableClientState' array@
+--
+-- The parameter @array@ is a @EnableCap@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_ALPHA_TEST', 'Graphics.GL.Raw.Extension.SGIX.AsyncPixel.GL_ASYNC_DRAW_PIXELS_SGIX', 'Graphics.GL.Raw.Extension.SGIX.AsyncHistogram.GL_ASYNC_HISTOGRAM_SGIX', 'Graphics.GL.Raw.Extension.SGIX.AsyncPixel.GL_ASYNC_READ_PIXELS_SGIX', 'Graphics.GL.Raw.Extension.SGIX.AsyncPixel.GL_ASYNC_TEX_IMAGE_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_AUTO_NORMAL', 'Graphics.GL.Raw.Internal.Shared.GL_BLEND', 'Graphics.GL.Raw.Extension.SGIX.CalligraphicFragment.GL_CALLIGRAPHIC_FRAGMENT_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_CLIP_PLANE0', 'Graphics.GL.Raw.Internal.Shared.GL_CLIP_PLANE1', 'Graphics.GL.Raw.Internal.Shared.GL_CLIP_PLANE2', 'Graphics.GL.Raw.Internal.Shared.GL_CLIP_PLANE3', 'Graphics.GL.Raw.Internal.Shared.GL_CLIP_PLANE4', 'Graphics.GL.Raw.Internal.Shared.GL_CLIP_PLANE5', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_ARRAY', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_LOGIC_OP', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_MATERIAL', 'Graphics.GL.Raw.Extension.SGI.ColorTable.GL_COLOR_TABLE_SGI', 'Graphics.GL.Raw.Extension.EXT.Convolution.GL_CONVOLUTION_1D_EXT', 'Graphics.GL.Raw.Extension.EXT.Convolution.GL_CONVOLUTION_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_CULL_FACE', 'Graphics.GL.Raw.Internal.Shared.GL_DEPTH_TEST', 'Graphics.GL.Raw.Internal.Shared.GL_DITHER', 'Graphics.GL.Raw.Internal.Shared.GL_EDGE_FLAG_ARRAY', 'Graphics.GL.Raw.Internal.Shared.GL_FOG', 'Graphics.GL.Raw.Extension.SGIX.FogOffset.GL_FOG_OFFSET_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_COLOR_MATERIAL_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT0_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT1_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT2_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT3_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT4_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT5_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT6_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT7_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHTING_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Framezoom.GL_FRAMEZOOM_SGIX', 'Graphics.GL.Raw.Extension.EXT.Histogram.GL_HISTOGRAM_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_INDEX_ARRAY', 'Graphics.GL.Raw.Internal.Shared.GL_INDEX_LOGIC_OP', 'Graphics.GL.Raw.Extension.SGIX.Interlace.GL_INTERLACE_SGIX', 'Graphics.GL.Raw.Extension.SGIX.IrInstrument1.GL_IR_INSTRUMENT1_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT0', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT1', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT2', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT3', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT4', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT5', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT6', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT7', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHTING', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_SMOOTH', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_STIPPLE', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_COLOR_4', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_NORMAL', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_TEXTURE_COORD_1', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_TEXTURE_COORD_2', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_TEXTURE_COORD_3', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_TEXTURE_COORD_4', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_VERTEX_3', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_VERTEX_4', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_COLOR_4', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_NORMAL', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_TEXTURE_COORD_1', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_TEXTURE_COORD_2', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_TEXTURE_COORD_3', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_TEXTURE_COORD_4', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_VERTEX_3', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_VERTEX_4', 'Graphics.GL.Raw.Extension.EXT.Histogram.GL_MINMAX_EXT', 'Graphics.GL.Raw.Extension.SGIS.Multisample.GL_MULTISAMPLE_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_NORMALIZE', 'Graphics.GL.Raw.Internal.Shared.GL_NORMAL_ARRAY', 'Graphics.GL.Raw.Extension.SGIS.PixelTexture.GL_PIXEL_TEXTURE_SGIS', 'Graphics.GL.Raw.Extension.SGIX.PixelTexture.GL_PIXEL_TEX_GEN_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_POINT_SMOOTH', 'Graphics.GL.Raw.Internal.Shared.GL_POLYGON_OFFSET_FILL', 'Graphics.GL.Raw.Internal.Shared.GL_POLYGON_OFFSET_LINE', 'Graphics.GL.Raw.Internal.Shared.GL_POLYGON_OFFSET_POINT', 'Graphics.GL.Raw.Internal.Shared.GL_POLYGON_SMOOTH', 'Graphics.GL.Raw.Internal.Shared.GL_POLYGON_STIPPLE', 'Graphics.GL.Raw.Extension.SGI.ColorTable.GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI', 'Graphics.GL.Raw.Extension.SGI.ColorTable.GL_POST_CONVOLUTION_COLOR_TABLE_SGI', 'Graphics.GL.Raw.Extension.SGIX.ReferencePlane.GL_REFERENCE_PLANE_SGIX', 'Graphics.GL.Raw.Extension.EXT.RescaleNormal.GL_RESCALE_NORMAL_EXT', 'Graphics.GL.Raw.Extension.SGIS.Multisample.GL_SAMPLE_ALPHA_TO_MASK_SGIS', 'Graphics.GL.Raw.Extension.SGIS.Multisample.GL_SAMPLE_ALPHA_TO_ONE_SGIS', 'Graphics.GL.Raw.Extension.SGIS.Multisample.GL_SAMPLE_MASK_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_SCISSOR_TEST', 'Graphics.GL.Raw.Extension.EXT.Convolution.GL_SEPARABLE_2D_EXT', 'Graphics.GL.Raw.Extension.EXT.SharedTexturePalette.GL_SHARED_TEXTURE_PALETTE_EXT', 'Graphics.GL.Raw.Extension.SGIX.Sprite.GL_SPRITE_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_STENCIL_TEST', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Extension.SGI.TextureColorTable.GL_TEXTURE_COLOR_TABLE_SGI', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_COORD_ARRAY', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_GEN_Q', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_GEN_R', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_GEN_S', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_GEN_T', 'Graphics.GL.Raw.Internal.Shared.GL_VERTEX_ARRAY'.
+
+
+glDisableClientState :: MonadIO m => GLenum -> m ()
+glDisableClientState = ffienumIOV glDisableClientStateFunPtr
+
+glDisableClientStateFunPtr :: FunPtr (GLenum -> IO ())
+glDisableClientStateFunPtr = unsafePerformIO (getProcAddress "glDisableClientState")
+
+{-# NOINLINE glDisableClientStateFunPtr #-}
+
+-- | Usage: @'glDrawPixels' width height format type pixels@
+--
+-- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Raw.Extension.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_ALPHA', 'Graphics.GL.Raw.Internal.Shared.GL_BLUE', 'Graphics.GL.Raw.Extension.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Raw.Extension.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Raw.Internal.Shared.GL_GREEN', 'Graphics.GL.Raw.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Raw.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Raw.Internal.Shared.GL_RED', 'Graphics.GL.Raw.Extension.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_RGB', 'Graphics.GL.Raw.Internal.Shared.GL_RGBA', 'Graphics.GL.Raw.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Raw.Extension.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
+--
+-- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_BITMAP', 'Graphics.GL.Raw.Internal.Shared.GL_BYTE', 'Graphics.GL.Raw.Internal.Shared.GL_FLOAT', 'Graphics.GL.Raw.Internal.Shared.GL_INT', 'Graphics.GL.Raw.Internal.Shared.GL_SHORT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
+--
+-- The length of @pixels@ should be @COMPSIZE(format,type,width,height)@.
+
+
+glDrawPixels :: MonadIO m => GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
+glDrawPixels = ffisizeisizeienumenumPtrVIOV glDrawPixelsFunPtr
+
+glDrawPixelsFunPtr :: FunPtr (GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ())
+glDrawPixelsFunPtr = unsafePerformIO (getProcAddress "glDrawPixels")
+
+{-# NOINLINE glDrawPixelsFunPtr #-}
+
+-- | Usage: @'glEdgeFlag' flag@
+--
+-- The parameter @flag@ is a @Boolean@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FALSE', 'Graphics.GL.Raw.Internal.Shared.GL_TRUE'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glEdgeFlagv'.
+
+
+glEdgeFlag :: MonadIO m => GLboolean -> m ()
+glEdgeFlag = ffibooleanIOV glEdgeFlagFunPtr
+
+glEdgeFlagFunPtr :: FunPtr (GLboolean -> IO ())
+glEdgeFlagFunPtr = unsafePerformIO (getProcAddress "glEdgeFlag")
+
+{-# NOINLINE glEdgeFlagFunPtr #-}
+
+-- | Usage: @'glEdgeFlagPointer' stride pointer@
+--
+-- The length of @pointer@ should be @COMPSIZE(stride)@.
+
+
+glEdgeFlagPointer :: MonadIO m => GLsizei -> Ptr () -> m ()
+glEdgeFlagPointer = ffisizeiPtrVIOV glEdgeFlagPointerFunPtr
+
+glEdgeFlagPointerFunPtr :: FunPtr (GLsizei -> Ptr () -> IO ())
+glEdgeFlagPointerFunPtr = unsafePerformIO (getProcAddress "glEdgeFlagPointer")
+
+{-# NOINLINE glEdgeFlagPointerFunPtr #-}
+
+-- | Usage: @'glEdgeFlagv' flag@
+--
+-- The parameter @flag@ is a @Boolean@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FALSE', 'Graphics.GL.Raw.Internal.Shared.GL_TRUE'.
+--
+-- The length of @flag@ should be @1@.
+
+
+glEdgeFlagv :: MonadIO m => Ptr GLboolean -> m ()
+glEdgeFlagv = ffiPtrbooleanIOV glEdgeFlagvFunPtr
+
+glEdgeFlagvFunPtr :: FunPtr (Ptr GLboolean -> IO ())
+glEdgeFlagvFunPtr = unsafePerformIO (getProcAddress "glEdgeFlagv")
+
+{-# NOINLINE glEdgeFlagvFunPtr #-}
+
+-- | Usage: @'glEnableClientState' array@
+--
+-- The parameter @array@ is a @EnableCap@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_ALPHA_TEST', 'Graphics.GL.Raw.Extension.SGIX.AsyncPixel.GL_ASYNC_DRAW_PIXELS_SGIX', 'Graphics.GL.Raw.Extension.SGIX.AsyncHistogram.GL_ASYNC_HISTOGRAM_SGIX', 'Graphics.GL.Raw.Extension.SGIX.AsyncPixel.GL_ASYNC_READ_PIXELS_SGIX', 'Graphics.GL.Raw.Extension.SGIX.AsyncPixel.GL_ASYNC_TEX_IMAGE_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_AUTO_NORMAL', 'Graphics.GL.Raw.Internal.Shared.GL_BLEND', 'Graphics.GL.Raw.Extension.SGIX.CalligraphicFragment.GL_CALLIGRAPHIC_FRAGMENT_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_CLIP_PLANE0', 'Graphics.GL.Raw.Internal.Shared.GL_CLIP_PLANE1', 'Graphics.GL.Raw.Internal.Shared.GL_CLIP_PLANE2', 'Graphics.GL.Raw.Internal.Shared.GL_CLIP_PLANE3', 'Graphics.GL.Raw.Internal.Shared.GL_CLIP_PLANE4', 'Graphics.GL.Raw.Internal.Shared.GL_CLIP_PLANE5', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_ARRAY', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_LOGIC_OP', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_MATERIAL', 'Graphics.GL.Raw.Extension.SGI.ColorTable.GL_COLOR_TABLE_SGI', 'Graphics.GL.Raw.Extension.EXT.Convolution.GL_CONVOLUTION_1D_EXT', 'Graphics.GL.Raw.Extension.EXT.Convolution.GL_CONVOLUTION_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_CULL_FACE', 'Graphics.GL.Raw.Internal.Shared.GL_DEPTH_TEST', 'Graphics.GL.Raw.Internal.Shared.GL_DITHER', 'Graphics.GL.Raw.Internal.Shared.GL_EDGE_FLAG_ARRAY', 'Graphics.GL.Raw.Internal.Shared.GL_FOG', 'Graphics.GL.Raw.Extension.SGIX.FogOffset.GL_FOG_OFFSET_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_COLOR_MATERIAL_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT0_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT1_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT2_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT3_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT4_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT5_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT6_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT7_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHTING_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Framezoom.GL_FRAMEZOOM_SGIX', 'Graphics.GL.Raw.Extension.EXT.Histogram.GL_HISTOGRAM_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_INDEX_ARRAY', 'Graphics.GL.Raw.Internal.Shared.GL_INDEX_LOGIC_OP', 'Graphics.GL.Raw.Extension.SGIX.Interlace.GL_INTERLACE_SGIX', 'Graphics.GL.Raw.Extension.SGIX.IrInstrument1.GL_IR_INSTRUMENT1_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT0', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT1', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT2', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT3', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT4', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT5', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT6', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT7', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHTING', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_SMOOTH', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_STIPPLE', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_COLOR_4', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_NORMAL', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_TEXTURE_COORD_1', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_TEXTURE_COORD_2', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_TEXTURE_COORD_3', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_TEXTURE_COORD_4', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_VERTEX_3', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_VERTEX_4', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_COLOR_4', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_NORMAL', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_TEXTURE_COORD_1', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_TEXTURE_COORD_2', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_TEXTURE_COORD_3', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_TEXTURE_COORD_4', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_VERTEX_3', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_VERTEX_4', 'Graphics.GL.Raw.Extension.EXT.Histogram.GL_MINMAX_EXT', 'Graphics.GL.Raw.Extension.SGIS.Multisample.GL_MULTISAMPLE_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_NORMALIZE', 'Graphics.GL.Raw.Internal.Shared.GL_NORMAL_ARRAY', 'Graphics.GL.Raw.Extension.SGIS.PixelTexture.GL_PIXEL_TEXTURE_SGIS', 'Graphics.GL.Raw.Extension.SGIX.PixelTexture.GL_PIXEL_TEX_GEN_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_POINT_SMOOTH', 'Graphics.GL.Raw.Internal.Shared.GL_POLYGON_OFFSET_FILL', 'Graphics.GL.Raw.Internal.Shared.GL_POLYGON_OFFSET_LINE', 'Graphics.GL.Raw.Internal.Shared.GL_POLYGON_OFFSET_POINT', 'Graphics.GL.Raw.Internal.Shared.GL_POLYGON_SMOOTH', 'Graphics.GL.Raw.Internal.Shared.GL_POLYGON_STIPPLE', 'Graphics.GL.Raw.Extension.SGI.ColorTable.GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI', 'Graphics.GL.Raw.Extension.SGI.ColorTable.GL_POST_CONVOLUTION_COLOR_TABLE_SGI', 'Graphics.GL.Raw.Extension.SGIX.ReferencePlane.GL_REFERENCE_PLANE_SGIX', 'Graphics.GL.Raw.Extension.EXT.RescaleNormal.GL_RESCALE_NORMAL_EXT', 'Graphics.GL.Raw.Extension.SGIS.Multisample.GL_SAMPLE_ALPHA_TO_MASK_SGIS', 'Graphics.GL.Raw.Extension.SGIS.Multisample.GL_SAMPLE_ALPHA_TO_ONE_SGIS', 'Graphics.GL.Raw.Extension.SGIS.Multisample.GL_SAMPLE_MASK_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_SCISSOR_TEST', 'Graphics.GL.Raw.Extension.EXT.Convolution.GL_SEPARABLE_2D_EXT', 'Graphics.GL.Raw.Extension.EXT.SharedTexturePalette.GL_SHARED_TEXTURE_PALETTE_EXT', 'Graphics.GL.Raw.Extension.SGIX.Sprite.GL_SPRITE_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_STENCIL_TEST', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Extension.SGI.TextureColorTable.GL_TEXTURE_COLOR_TABLE_SGI', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_COORD_ARRAY', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_GEN_Q', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_GEN_R', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_GEN_S', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_GEN_T', 'Graphics.GL.Raw.Internal.Shared.GL_VERTEX_ARRAY'.
+
+
+glEnableClientState :: MonadIO m => GLenum -> m ()
+glEnableClientState = ffienumIOV glEnableClientStateFunPtr
+
+glEnableClientStateFunPtr :: FunPtr (GLenum -> IO ())
+glEnableClientStateFunPtr = unsafePerformIO (getProcAddress "glEnableClientState")
+
+{-# NOINLINE glEnableClientStateFunPtr #-}
+
+-- | Usage: @'glEnd'@
+
+
+glEnd :: MonadIO m => m ()
+glEnd = ffiIOV glEndFunPtr
+
+glEndFunPtr :: FunPtr (IO ())
+glEndFunPtr = unsafePerformIO (getProcAddress "glEnd")
+
+{-# NOINLINE glEndFunPtr #-}
+
+-- | Usage: @'glEndList'@
+
+
+glEndList :: MonadIO m => m ()
+glEndList = ffiIOV glEndListFunPtr
+
+glEndListFunPtr :: FunPtr (IO ())
+glEndListFunPtr = unsafePerformIO (getProcAddress "glEndList")
+
+{-# NOINLINE glEndListFunPtr #-}
+
+-- | Usage: @'glEvalCoord1d' u@
+--
+-- The parameter @u@ is a @CoordD@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glEvalCoord1dv'.
+
+
+glEvalCoord1d :: MonadIO m => GLdouble -> m ()
+glEvalCoord1d = ffidoubleIOV glEvalCoord1dFunPtr
+
+glEvalCoord1dFunPtr :: FunPtr (GLdouble -> IO ())
+glEvalCoord1dFunPtr = unsafePerformIO (getProcAddress "glEvalCoord1d")
+
+{-# NOINLINE glEvalCoord1dFunPtr #-}
+
+-- | Usage: @'glEvalCoord1dv' u@
+--
+-- The parameter @u@ is a @CoordD@.
+--
+-- The length of @u@ should be @1@.
+
+
+glEvalCoord1dv :: MonadIO m => Ptr GLdouble -> m ()
+glEvalCoord1dv = ffiPtrdoubleIOV glEvalCoord1dvFunPtr
+
+glEvalCoord1dvFunPtr :: FunPtr (Ptr GLdouble -> IO ())
+glEvalCoord1dvFunPtr = unsafePerformIO (getProcAddress "glEvalCoord1dv")
+
+{-# NOINLINE glEvalCoord1dvFunPtr #-}
+
+-- | Usage: @'glEvalCoord1f' u@
+--
+-- The parameter @u@ is a @CoordF@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glEvalCoord1fv'.
+
+
+glEvalCoord1f :: MonadIO m => GLfloat -> m ()
+glEvalCoord1f = ffifloatIOV glEvalCoord1fFunPtr
+
+glEvalCoord1fFunPtr :: FunPtr (GLfloat -> IO ())
+glEvalCoord1fFunPtr = unsafePerformIO (getProcAddress "glEvalCoord1f")
+
+{-# NOINLINE glEvalCoord1fFunPtr #-}
+
+-- | Usage: @'glEvalCoord1fv' u@
+--
+-- The parameter @u@ is a @CoordF@.
+--
+-- The length of @u@ should be @1@.
+
+
+glEvalCoord1fv :: MonadIO m => Ptr GLfloat -> m ()
+glEvalCoord1fv = ffiPtrfloatIOV glEvalCoord1fvFunPtr
+
+glEvalCoord1fvFunPtr :: FunPtr (Ptr GLfloat -> IO ())
+glEvalCoord1fvFunPtr = unsafePerformIO (getProcAddress "glEvalCoord1fv")
+
+{-# NOINLINE glEvalCoord1fvFunPtr #-}
+
+-- | Usage: @'glEvalCoord2d' u v@
+--
+-- The parameter @u@ is a @CoordD@.
+--
+-- The parameter @v@ is a @CoordD@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glEvalCoord2dv'.
+
+
+glEvalCoord2d :: MonadIO m => GLdouble -> GLdouble -> m ()
+glEvalCoord2d = ffidoubledoubleIOV glEvalCoord2dFunPtr
+
+glEvalCoord2dFunPtr :: FunPtr (GLdouble -> GLdouble -> IO ())
+glEvalCoord2dFunPtr = unsafePerformIO (getProcAddress "glEvalCoord2d")
+
+{-# NOINLINE glEvalCoord2dFunPtr #-}
+
+-- | Usage: @'glEvalCoord2dv' u@
+--
+-- The parameter @u@ is a @CoordD@.
+--
+-- The length of @u@ should be @2@.
+
+
+glEvalCoord2dv :: MonadIO m => Ptr GLdouble -> m ()
+glEvalCoord2dv = ffiPtrdoubleIOV glEvalCoord2dvFunPtr
+
+glEvalCoord2dvFunPtr :: FunPtr (Ptr GLdouble -> IO ())
+glEvalCoord2dvFunPtr = unsafePerformIO (getProcAddress "glEvalCoord2dv")
+
+{-# NOINLINE glEvalCoord2dvFunPtr #-}
+
+-- | Usage: @'glEvalCoord2f' u v@
+--
+-- The parameter @u@ is a @CoordF@.
+--
+-- The parameter @v@ is a @CoordF@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glEvalCoord2fv'.
+
+
+glEvalCoord2f :: MonadIO m => GLfloat -> GLfloat -> m ()
+glEvalCoord2f = ffifloatfloatIOV glEvalCoord2fFunPtr
+
+glEvalCoord2fFunPtr :: FunPtr (GLfloat -> GLfloat -> IO ())
+glEvalCoord2fFunPtr = unsafePerformIO (getProcAddress "glEvalCoord2f")
+
+{-# NOINLINE glEvalCoord2fFunPtr #-}
+
+-- | Usage: @'glEvalCoord2fv' u@
+--
+-- The parameter @u@ is a @CoordF@.
+--
+-- The length of @u@ should be @2@.
+
+
+glEvalCoord2fv :: MonadIO m => Ptr GLfloat -> m ()
+glEvalCoord2fv = ffiPtrfloatIOV glEvalCoord2fvFunPtr
+
+glEvalCoord2fvFunPtr :: FunPtr (Ptr GLfloat -> IO ())
+glEvalCoord2fvFunPtr = unsafePerformIO (getProcAddress "glEvalCoord2fv")
+
+{-# NOINLINE glEvalCoord2fvFunPtr #-}
+
+-- | Usage: @'glEvalMesh1' mode i1 i2@
+--
+-- The parameter @mode@ is a @MeshMode1@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_LINE', 'Graphics.GL.Raw.Internal.Shared.GL_POINT'.
+--
+-- The parameter @i1@ is a @CheckedInt32@.
+--
+-- The parameter @i2@ is a @CheckedInt32@.
+
+
+glEvalMesh1 :: MonadIO m => GLenum -> GLint -> GLint -> m ()
+glEvalMesh1 = ffienumintintIOV glEvalMesh1FunPtr
+
+glEvalMesh1FunPtr :: FunPtr (GLenum -> GLint -> GLint -> IO ())
+glEvalMesh1FunPtr = unsafePerformIO (getProcAddress "glEvalMesh1")
+
+{-# NOINLINE glEvalMesh1FunPtr #-}
+
+-- | Usage: @'glEvalMesh2' mode i1 i2 j1 j2@
+--
+-- The parameter @mode@ is a @MeshMode2@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FILL', 'Graphics.GL.Raw.Internal.Shared.GL_LINE', 'Graphics.GL.Raw.Internal.Shared.GL_POINT'.
+--
+-- The parameter @i1@ is a @CheckedInt32@.
+--
+-- The parameter @i2@ is a @CheckedInt32@.
+--
+-- The parameter @j1@ is a @CheckedInt32@.
+--
+-- The parameter @j2@ is a @CheckedInt32@.
+
+
+glEvalMesh2 :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> m ()
+glEvalMesh2 = ffienumintintintintIOV glEvalMesh2FunPtr
+
+glEvalMesh2FunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> IO ())
+glEvalMesh2FunPtr = unsafePerformIO (getProcAddress "glEvalMesh2")
+
+{-# NOINLINE glEvalMesh2FunPtr #-}
+
+-- | Usage: @'glEvalPoint1' i@
+
+
+glEvalPoint1 :: MonadIO m => GLint -> m ()
+glEvalPoint1 = ffiintIOV glEvalPoint1FunPtr
+
+glEvalPoint1FunPtr :: FunPtr (GLint -> IO ())
+glEvalPoint1FunPtr = unsafePerformIO (getProcAddress "glEvalPoint1")
+
+{-# NOINLINE glEvalPoint1FunPtr #-}
+
+-- | Usage: @'glEvalPoint2' i j@
+--
+-- The parameter @i@ is a @CheckedInt32@.
+--
+-- The parameter @j@ is a @CheckedInt32@.
+
+
+glEvalPoint2 :: MonadIO m => GLint -> GLint -> m ()
+glEvalPoint2 = ffiintintIOV glEvalPoint2FunPtr
+
+glEvalPoint2FunPtr :: FunPtr (GLint -> GLint -> IO ())
+glEvalPoint2FunPtr = unsafePerformIO (getProcAddress "glEvalPoint2")
+
+{-# NOINLINE glEvalPoint2FunPtr #-}
+
+-- | Usage: @'glFeedbackBuffer' size type buffer@
+--
+-- The parameter @type@ is a @FeedbackType@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_2D', 'Graphics.GL.Raw.Internal.Shared.GL_3D', 'Graphics.GL.Raw.Internal.Shared.GL_3D_COLOR', 'Graphics.GL.Raw.Internal.Shared.GL_3D_COLOR_TEXTURE', 'Graphics.GL.Raw.Internal.Shared.GL_4D_COLOR_TEXTURE'.
+--
+-- The parameter @buffer@ is a @FeedbackElement@.
+--
+-- The length of @buffer@ should be @size@.
+
+
+glFeedbackBuffer :: MonadIO m => GLsizei -> GLenum -> Ptr GLfloat -> m ()
+glFeedbackBuffer = ffisizeienumPtrfloatIOV glFeedbackBufferFunPtr
+
+glFeedbackBufferFunPtr :: FunPtr (GLsizei -> GLenum -> Ptr GLfloat -> IO ())
+glFeedbackBufferFunPtr = unsafePerformIO (getProcAddress "glFeedbackBuffer")
+
+{-# NOINLINE glFeedbackBufferFunPtr #-}
+
+-- | Usage: @'glFogCoordPointer' type stride pointer@
+--
+-- The parameter @type@ is a @FogPointerTypeEXT@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FLOAT', 'Graphics.GL.Raw.Internal.Shared.GL_DOUBLE'.
+--
+-- The length of @pointer@ should be @COMPSIZE(type,stride)@.
+
+
+glFogCoordPointer :: MonadIO m => GLenum -> GLsizei -> Ptr () -> m ()
+glFogCoordPointer = ffienumsizeiPtrVIOV glFogCoordPointerFunPtr
+
+glFogCoordPointerFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr () -> IO ())
+glFogCoordPointerFunPtr = unsafePerformIO (getProcAddress "glFogCoordPointer")
+
+{-# NOINLINE glFogCoordPointerFunPtr #-}
+
+-- | Usage: @'glFogCoordd' coord@
+--
+-- The parameter @coord@ is a @CoordD@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glFogCoorddv'.
+
+
+glFogCoordd :: MonadIO m => GLdouble -> m ()
+glFogCoordd = ffidoubleIOV glFogCoorddFunPtr
+
+glFogCoorddFunPtr :: FunPtr (GLdouble -> IO ())
+glFogCoorddFunPtr = unsafePerformIO (getProcAddress "glFogCoordd")
+
+{-# NOINLINE glFogCoorddFunPtr #-}
+
+-- | Usage: @'glFogCoorddv' coord@
+--
+-- The parameter @coord@ is a @CoordD@.
+--
+-- The length of @coord@ should be @1@.
+
+
+glFogCoorddv :: MonadIO m => Ptr GLdouble -> m ()
+glFogCoorddv = ffiPtrdoubleIOV glFogCoorddvFunPtr
+
+glFogCoorddvFunPtr :: FunPtr (Ptr GLdouble -> IO ())
+glFogCoorddvFunPtr = unsafePerformIO (getProcAddress "glFogCoorddv")
+
+{-# NOINLINE glFogCoorddvFunPtr #-}
+
+-- | Usage: @'glFogCoordf' coord@
+--
+-- The parameter @coord@ is a @CoordF@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glFogCoordfv'.
+
+
+glFogCoordf :: MonadIO m => GLfloat -> m ()
+glFogCoordf = ffifloatIOV glFogCoordfFunPtr
+
+glFogCoordfFunPtr :: FunPtr (GLfloat -> IO ())
+glFogCoordfFunPtr = unsafePerformIO (getProcAddress "glFogCoordf")
+
+{-# NOINLINE glFogCoordfFunPtr #-}
+
+-- | Usage: @'glFogCoordfv' coord@
+--
+-- The parameter @coord@ is a @CoordF@.
+--
+-- The length of @coord@ should be @1@.
+
+
+glFogCoordfv :: MonadIO m => Ptr GLfloat -> m ()
+glFogCoordfv = ffiPtrfloatIOV glFogCoordfvFunPtr
+
+glFogCoordfvFunPtr :: FunPtr (Ptr GLfloat -> IO ())
+glFogCoordfvFunPtr = unsafePerformIO (getProcAddress "glFogCoordfv")
+
+{-# NOINLINE glFogCoordfvFunPtr #-}
+
+-- | Usage: @'glFogf' pname param@
+--
+-- The parameter @pname@ is a @FogParameter@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FOG_COLOR', 'Graphics.GL.Raw.Internal.Shared.GL_FOG_DENSITY', 'Graphics.GL.Raw.Internal.Shared.GL_FOG_END', 'Graphics.GL.Raw.Internal.Shared.GL_FOG_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_FOG_MODE', 'Graphics.GL.Raw.Extension.SGIX.FogOffset.GL_FOG_OFFSET_VALUE_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_FOG_START'.
+--
+-- The parameter @param@ is a @CheckedFloat32@.
+
+
+glFogf :: MonadIO m => GLenum -> GLfloat -> m ()
+glFogf = ffienumfloatIOV glFogfFunPtr
+
+glFogfFunPtr :: FunPtr (GLenum -> GLfloat -> IO ())
+glFogfFunPtr = unsafePerformIO (getProcAddress "glFogf")
+
+{-# NOINLINE glFogfFunPtr #-}
+
+-- | Usage: @'glFogfv' pname params@
+--
+-- The parameter @pname@ is a @FogParameter@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FOG_COLOR', 'Graphics.GL.Raw.Internal.Shared.GL_FOG_DENSITY', 'Graphics.GL.Raw.Internal.Shared.GL_FOG_END', 'Graphics.GL.Raw.Internal.Shared.GL_FOG_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_FOG_MODE', 'Graphics.GL.Raw.Extension.SGIX.FogOffset.GL_FOG_OFFSET_VALUE_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_FOG_START'.
+--
+-- The parameter @params@ is a @CheckedFloat32@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glFogfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
+glFogfv = ffienumPtrfloatIOV glFogfvFunPtr
+
+glFogfvFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
+glFogfvFunPtr = unsafePerformIO (getProcAddress "glFogfv")
+
+{-# NOINLINE glFogfvFunPtr #-}
+
+-- | Usage: @'glFogi' pname param@
+--
+-- The parameter @pname@ is a @FogParameter@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FOG_COLOR', 'Graphics.GL.Raw.Internal.Shared.GL_FOG_DENSITY', 'Graphics.GL.Raw.Internal.Shared.GL_FOG_END', 'Graphics.GL.Raw.Internal.Shared.GL_FOG_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_FOG_MODE', 'Graphics.GL.Raw.Extension.SGIX.FogOffset.GL_FOG_OFFSET_VALUE_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_FOG_START'.
+--
+-- The parameter @param@ is a @CheckedInt32@.
+
+
+glFogi :: MonadIO m => GLenum -> GLint -> m ()
+glFogi = ffienumintIOV glFogiFunPtr
+
+glFogiFunPtr :: FunPtr (GLenum -> GLint -> IO ())
+glFogiFunPtr = unsafePerformIO (getProcAddress "glFogi")
+
+{-# NOINLINE glFogiFunPtr #-}
+
+-- | Usage: @'glFogiv' pname params@
+--
+-- The parameter @pname@ is a @FogParameter@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FOG_COLOR', 'Graphics.GL.Raw.Internal.Shared.GL_FOG_DENSITY', 'Graphics.GL.Raw.Internal.Shared.GL_FOG_END', 'Graphics.GL.Raw.Internal.Shared.GL_FOG_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_FOG_MODE', 'Graphics.GL.Raw.Extension.SGIX.FogOffset.GL_FOG_OFFSET_VALUE_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_FOG_START'.
+--
+-- The parameter @params@ is a @CheckedInt32@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glFogiv :: MonadIO m => GLenum -> Ptr GLint -> m ()
+glFogiv = ffienumPtrintIOV glFogivFunPtr
+
+glFogivFunPtr :: FunPtr (GLenum -> Ptr GLint -> IO ())
+glFogivFunPtr = unsafePerformIO (getProcAddress "glFogiv")
+
+{-# NOINLINE glFogivFunPtr #-}
+
+-- | Usage: @'glFrustum' left right bottom top zNear zFar@
+
+
+glFrustum :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
+glFrustum = ffidoubledoubledoubledoubledoubledoubleIOV glFrustumFunPtr
+
+glFrustumFunPtr :: FunPtr (GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
+glFrustumFunPtr = unsafePerformIO (getProcAddress "glFrustum")
+
+{-# NOINLINE glFrustumFunPtr #-}
+
+-- | Usage: @'glGenLists' range@
+
+
+glGenLists :: MonadIO m => GLsizei -> m GLuint
+glGenLists = ffisizeiIOuint glGenListsFunPtr
+
+glGenListsFunPtr :: FunPtr (GLsizei -> IO GLuint)
+glGenListsFunPtr = unsafePerformIO (getProcAddress "glGenLists")
+
+{-# NOINLINE glGenListsFunPtr #-}
+
+-- | Usage: @'glGetClipPlane' plane equation@
+--
+-- The parameter @plane@ is a @ClipPlaneName@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_CLIP_DISTANCE0', 'Graphics.GL.Raw.Internal.Shared.GL_CLIP_DISTANCE1', 'Graphics.GL.Raw.Internal.Shared.GL_CLIP_DISTANCE2', 'Graphics.GL.Raw.Internal.Shared.GL_CLIP_DISTANCE3', 'Graphics.GL.Raw.Internal.Shared.GL_CLIP_DISTANCE4', 'Graphics.GL.Raw.Internal.Shared.GL_CLIP_DISTANCE5', 'Graphics.GL.Raw.Internal.Shared.GL_CLIP_DISTANCE6', 'Graphics.GL.Raw.Internal.Shared.GL_CLIP_DISTANCE7', 'Graphics.GL.Raw.Internal.Shared.GL_CLIP_PLANE0', 'Graphics.GL.Raw.Internal.Shared.GL_CLIP_PLANE1', 'Graphics.GL.Raw.Internal.Shared.GL_CLIP_PLANE2', 'Graphics.GL.Raw.Internal.Shared.GL_CLIP_PLANE3', 'Graphics.GL.Raw.Internal.Shared.GL_CLIP_PLANE4', 'Graphics.GL.Raw.Internal.Shared.GL_CLIP_PLANE5'.
+--
+-- The length of @equation@ should be @4@.
+
+
+glGetClipPlane :: MonadIO m => GLenum -> Ptr GLdouble -> m ()
+glGetClipPlane = ffienumPtrdoubleIOV glGetClipPlaneFunPtr
+
+glGetClipPlaneFunPtr :: FunPtr (GLenum -> Ptr GLdouble -> IO ())
+glGetClipPlaneFunPtr = unsafePerformIO (getProcAddress "glGetClipPlane")
+
+{-# NOINLINE glGetClipPlaneFunPtr #-}
+
+-- | Usage: @'glGetLightfv' light pname params@
+--
+-- The parameter @light@ is a @LightName@, one of: 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT0_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT1_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT2_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT3_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT4_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT5_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT6_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT7_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT0', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT1', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT2', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT3', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT4', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT5', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT6', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT7'.
+--
+-- The parameter @pname@ is a @LightParameter@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_AMBIENT', 'Graphics.GL.Raw.Internal.Shared.GL_CONSTANT_ATTENUATION', 'Graphics.GL.Raw.Internal.Shared.GL_DIFFUSE', 'Graphics.GL.Raw.Internal.Shared.GL_LINEAR_ATTENUATION', 'Graphics.GL.Raw.Internal.Shared.GL_POSITION', 'Graphics.GL.Raw.Internal.Shared.GL_QUADRATIC_ATTENUATION', 'Graphics.GL.Raw.Internal.Shared.GL_SPECULAR', 'Graphics.GL.Raw.Internal.Shared.GL_SPOT_CUTOFF', 'Graphics.GL.Raw.Internal.Shared.GL_SPOT_DIRECTION', 'Graphics.GL.Raw.Internal.Shared.GL_SPOT_EXPONENT'.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetLightfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
+glGetLightfv = ffienumenumPtrfloatIOV glGetLightfvFunPtr
+
+glGetLightfvFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
+glGetLightfvFunPtr = unsafePerformIO (getProcAddress "glGetLightfv")
+
+{-# NOINLINE glGetLightfvFunPtr #-}
+
+-- | Usage: @'glGetLightiv' light pname params@
+--
+-- The parameter @light@ is a @LightName@, one of: 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT0_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT1_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT2_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT3_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT4_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT5_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT6_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT7_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT0', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT1', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT2', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT3', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT4', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT5', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT6', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT7'.
+--
+-- The parameter @pname@ is a @LightParameter@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_AMBIENT', 'Graphics.GL.Raw.Internal.Shared.GL_CONSTANT_ATTENUATION', 'Graphics.GL.Raw.Internal.Shared.GL_DIFFUSE', 'Graphics.GL.Raw.Internal.Shared.GL_LINEAR_ATTENUATION', 'Graphics.GL.Raw.Internal.Shared.GL_POSITION', 'Graphics.GL.Raw.Internal.Shared.GL_QUADRATIC_ATTENUATION', 'Graphics.GL.Raw.Internal.Shared.GL_SPECULAR', 'Graphics.GL.Raw.Internal.Shared.GL_SPOT_CUTOFF', 'Graphics.GL.Raw.Internal.Shared.GL_SPOT_DIRECTION', 'Graphics.GL.Raw.Internal.Shared.GL_SPOT_EXPONENT'.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetLightiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
+glGetLightiv = ffienumenumPtrintIOV glGetLightivFunPtr
+
+glGetLightivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+glGetLightivFunPtr = unsafePerformIO (getProcAddress "glGetLightiv")
+
+{-# NOINLINE glGetLightivFunPtr #-}
+
+-- | Usage: @'glGetMapdv' target query v@
+--
+-- The parameter @target@ is a @MapTarget@, one of: 'Graphics.GL.Raw.Extension.SGIX.PolynomialFfd.GL_GEOMETRY_DEFORMATION_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_COLOR_4', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_NORMAL', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_TEXTURE_COORD_1', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_TEXTURE_COORD_2', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_TEXTURE_COORD_3', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_TEXTURE_COORD_4', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_VERTEX_3', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_VERTEX_4', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_COLOR_4', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_NORMAL', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_TEXTURE_COORD_1', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_TEXTURE_COORD_2', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_TEXTURE_COORD_3', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_TEXTURE_COORD_4', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_VERTEX_3', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_VERTEX_4', 'Graphics.GL.Raw.Extension.SGIX.PolynomialFfd.GL_TEXTURE_DEFORMATION_SGIX'.
+--
+-- The parameter @query@ is a @GetMapQuery@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_COEFF', 'Graphics.GL.Raw.Internal.Shared.GL_DOMAIN', 'Graphics.GL.Raw.Internal.Shared.GL_ORDER'.
+--
+-- The length of @v@ should be @COMPSIZE(target,query)@.
+
+
+glGetMapdv :: MonadIO m => GLenum -> GLenum -> Ptr GLdouble -> m ()
+glGetMapdv = ffienumenumPtrdoubleIOV glGetMapdvFunPtr
+
+glGetMapdvFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLdouble -> IO ())
+glGetMapdvFunPtr = unsafePerformIO (getProcAddress "glGetMapdv")
+
+{-# NOINLINE glGetMapdvFunPtr #-}
+
+-- | Usage: @'glGetMapfv' target query v@
+--
+-- The parameter @target@ is a @MapTarget@, one of: 'Graphics.GL.Raw.Extension.SGIX.PolynomialFfd.GL_GEOMETRY_DEFORMATION_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_COLOR_4', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_NORMAL', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_TEXTURE_COORD_1', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_TEXTURE_COORD_2', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_TEXTURE_COORD_3', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_TEXTURE_COORD_4', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_VERTEX_3', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_VERTEX_4', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_COLOR_4', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_NORMAL', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_TEXTURE_COORD_1', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_TEXTURE_COORD_2', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_TEXTURE_COORD_3', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_TEXTURE_COORD_4', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_VERTEX_3', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_VERTEX_4', 'Graphics.GL.Raw.Extension.SGIX.PolynomialFfd.GL_TEXTURE_DEFORMATION_SGIX'.
+--
+-- The parameter @query@ is a @GetMapQuery@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_COEFF', 'Graphics.GL.Raw.Internal.Shared.GL_DOMAIN', 'Graphics.GL.Raw.Internal.Shared.GL_ORDER'.
+--
+-- The length of @v@ should be @COMPSIZE(target,query)@.
+
+
+glGetMapfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
+glGetMapfv = ffienumenumPtrfloatIOV glGetMapfvFunPtr
+
+glGetMapfvFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
+glGetMapfvFunPtr = unsafePerformIO (getProcAddress "glGetMapfv")
+
+{-# NOINLINE glGetMapfvFunPtr #-}
+
+-- | Usage: @'glGetMapiv' target query v@
+--
+-- The parameter @target@ is a @MapTarget@, one of: 'Graphics.GL.Raw.Extension.SGIX.PolynomialFfd.GL_GEOMETRY_DEFORMATION_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_COLOR_4', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_NORMAL', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_TEXTURE_COORD_1', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_TEXTURE_COORD_2', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_TEXTURE_COORD_3', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_TEXTURE_COORD_4', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_VERTEX_3', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_VERTEX_4', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_COLOR_4', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_NORMAL', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_TEXTURE_COORD_1', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_TEXTURE_COORD_2', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_TEXTURE_COORD_3', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_TEXTURE_COORD_4', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_VERTEX_3', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_VERTEX_4', 'Graphics.GL.Raw.Extension.SGIX.PolynomialFfd.GL_TEXTURE_DEFORMATION_SGIX'.
+--
+-- The parameter @query@ is a @GetMapQuery@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_COEFF', 'Graphics.GL.Raw.Internal.Shared.GL_DOMAIN', 'Graphics.GL.Raw.Internal.Shared.GL_ORDER'.
+--
+-- The length of @v@ should be @COMPSIZE(target,query)@.
+
+
+glGetMapiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
+glGetMapiv = ffienumenumPtrintIOV glGetMapivFunPtr
+
+glGetMapivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+glGetMapivFunPtr = unsafePerformIO (getProcAddress "glGetMapiv")
+
+{-# NOINLINE glGetMapivFunPtr #-}
+
+-- | Usage: @'glGetMaterialfv' face pname params@
+--
+-- The parameter @face@ is a @MaterialFace@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_BACK', 'Graphics.GL.Raw.Internal.Shared.GL_FRONT', 'Graphics.GL.Raw.Internal.Shared.GL_FRONT_AND_BACK'.
+--
+-- The parameter @pname@ is a @MaterialParameter@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_AMBIENT', 'Graphics.GL.Raw.Internal.Shared.GL_AMBIENT_AND_DIFFUSE', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_INDEXES', 'Graphics.GL.Raw.Internal.Shared.GL_DIFFUSE', 'Graphics.GL.Raw.Internal.Shared.GL_EMISSION', 'Graphics.GL.Raw.Internal.Shared.GL_SHININESS', 'Graphics.GL.Raw.Internal.Shared.GL_SPECULAR'.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetMaterialfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
+glGetMaterialfv = ffienumenumPtrfloatIOV glGetMaterialfvFunPtr
+
+glGetMaterialfvFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
+glGetMaterialfvFunPtr = unsafePerformIO (getProcAddress "glGetMaterialfv")
+
+{-# NOINLINE glGetMaterialfvFunPtr #-}
+
+-- | Usage: @'glGetMaterialiv' face pname params@
+--
+-- The parameter @face@ is a @MaterialFace@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_BACK', 'Graphics.GL.Raw.Internal.Shared.GL_FRONT', 'Graphics.GL.Raw.Internal.Shared.GL_FRONT_AND_BACK'.
+--
+-- The parameter @pname@ is a @MaterialParameter@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_AMBIENT', 'Graphics.GL.Raw.Internal.Shared.GL_AMBIENT_AND_DIFFUSE', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_INDEXES', 'Graphics.GL.Raw.Internal.Shared.GL_DIFFUSE', 'Graphics.GL.Raw.Internal.Shared.GL_EMISSION', 'Graphics.GL.Raw.Internal.Shared.GL_SHININESS', 'Graphics.GL.Raw.Internal.Shared.GL_SPECULAR'.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetMaterialiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
+glGetMaterialiv = ffienumenumPtrintIOV glGetMaterialivFunPtr
+
+glGetMaterialivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+glGetMaterialivFunPtr = unsafePerformIO (getProcAddress "glGetMaterialiv")
+
+{-# NOINLINE glGetMaterialivFunPtr #-}
+
+-- | Usage: @'glGetPixelMapfv' map values@
+--
+-- The parameter @map@ is a @PixelMap@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_PIXEL_MAP_A_TO_A', 'Graphics.GL.Raw.Internal.Shared.GL_PIXEL_MAP_B_TO_B', 'Graphics.GL.Raw.Internal.Shared.GL_PIXEL_MAP_G_TO_G', 'Graphics.GL.Raw.Internal.Shared.GL_PIXEL_MAP_I_TO_A', 'Graphics.GL.Raw.Internal.Shared.GL_PIXEL_MAP_I_TO_B', 'Graphics.GL.Raw.Internal.Shared.GL_PIXEL_MAP_I_TO_G', 'Graphics.GL.Raw.Internal.Shared.GL_PIXEL_MAP_I_TO_I', 'Graphics.GL.Raw.Internal.Shared.GL_PIXEL_MAP_I_TO_R', 'Graphics.GL.Raw.Internal.Shared.GL_PIXEL_MAP_R_TO_R', 'Graphics.GL.Raw.Internal.Shared.GL_PIXEL_MAP_S_TO_S'.
+--
+-- The length of @values@ should be @COMPSIZE(map)@.
+
+
+glGetPixelMapfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
+glGetPixelMapfv = ffienumPtrfloatIOV glGetPixelMapfvFunPtr
+
+glGetPixelMapfvFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
+glGetPixelMapfvFunPtr = unsafePerformIO (getProcAddress "glGetPixelMapfv")
+
+{-# NOINLINE glGetPixelMapfvFunPtr #-}
+
+-- | Usage: @'glGetPixelMapuiv' map values@
+--
+-- The parameter @map@ is a @PixelMap@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_PIXEL_MAP_A_TO_A', 'Graphics.GL.Raw.Internal.Shared.GL_PIXEL_MAP_B_TO_B', 'Graphics.GL.Raw.Internal.Shared.GL_PIXEL_MAP_G_TO_G', 'Graphics.GL.Raw.Internal.Shared.GL_PIXEL_MAP_I_TO_A', 'Graphics.GL.Raw.Internal.Shared.GL_PIXEL_MAP_I_TO_B', 'Graphics.GL.Raw.Internal.Shared.GL_PIXEL_MAP_I_TO_G', 'Graphics.GL.Raw.Internal.Shared.GL_PIXEL_MAP_I_TO_I', 'Graphics.GL.Raw.Internal.Shared.GL_PIXEL_MAP_I_TO_R', 'Graphics.GL.Raw.Internal.Shared.GL_PIXEL_MAP_R_TO_R', 'Graphics.GL.Raw.Internal.Shared.GL_PIXEL_MAP_S_TO_S'.
+--
+-- The length of @values@ should be @COMPSIZE(map)@.
+
+
+glGetPixelMapuiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
+glGetPixelMapuiv = ffienumPtruintIOV glGetPixelMapuivFunPtr
+
+glGetPixelMapuivFunPtr :: FunPtr (GLenum -> Ptr GLuint -> IO ())
+glGetPixelMapuivFunPtr = unsafePerformIO (getProcAddress "glGetPixelMapuiv")
+
+{-# NOINLINE glGetPixelMapuivFunPtr #-}
+
+-- | Usage: @'glGetPixelMapusv' map values@
+--
+-- The parameter @map@ is a @PixelMap@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_PIXEL_MAP_A_TO_A', 'Graphics.GL.Raw.Internal.Shared.GL_PIXEL_MAP_B_TO_B', 'Graphics.GL.Raw.Internal.Shared.GL_PIXEL_MAP_G_TO_G', 'Graphics.GL.Raw.Internal.Shared.GL_PIXEL_MAP_I_TO_A', 'Graphics.GL.Raw.Internal.Shared.GL_PIXEL_MAP_I_TO_B', 'Graphics.GL.Raw.Internal.Shared.GL_PIXEL_MAP_I_TO_G', 'Graphics.GL.Raw.Internal.Shared.GL_PIXEL_MAP_I_TO_I', 'Graphics.GL.Raw.Internal.Shared.GL_PIXEL_MAP_I_TO_R', 'Graphics.GL.Raw.Internal.Shared.GL_PIXEL_MAP_R_TO_R', 'Graphics.GL.Raw.Internal.Shared.GL_PIXEL_MAP_S_TO_S'.
+--
+-- The length of @values@ should be @COMPSIZE(map)@.
+
+
+glGetPixelMapusv :: MonadIO m => GLenum -> Ptr GLushort -> m ()
+glGetPixelMapusv = ffienumPtrushortIOV glGetPixelMapusvFunPtr
+
+glGetPixelMapusvFunPtr :: FunPtr (GLenum -> Ptr GLushort -> IO ())
+glGetPixelMapusvFunPtr = unsafePerformIO (getProcAddress "glGetPixelMapusv")
+
+{-# NOINLINE glGetPixelMapusvFunPtr #-}
+
+-- | Usage: @'glGetPolygonStipple' mask@
+--
+-- The length of @mask@ should be @COMPSIZE()@.
+
+
+glGetPolygonStipple :: MonadIO m => Ptr GLubyte -> m ()
+glGetPolygonStipple = ffiPtrubyteIOV glGetPolygonStippleFunPtr
+
+glGetPolygonStippleFunPtr :: FunPtr (Ptr GLubyte -> IO ())
+glGetPolygonStippleFunPtr = unsafePerformIO (getProcAddress "glGetPolygonStipple")
+
+{-# NOINLINE glGetPolygonStippleFunPtr #-}
+
+-- | Usage: @'glGetTexEnvfv' target pname params@
+--
+-- The parameter @target@ is a @TextureEnvTarget@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_ENV'.
+--
+-- The parameter @pname@ is a @TextureEnvParameter@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_ENV_COLOR', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_ENV_MODE'.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetTexEnvfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
+glGetTexEnvfv = ffienumenumPtrfloatIOV glGetTexEnvfvFunPtr
+
+glGetTexEnvfvFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
+glGetTexEnvfvFunPtr = unsafePerformIO (getProcAddress "glGetTexEnvfv")
+
+{-# NOINLINE glGetTexEnvfvFunPtr #-}
+
+-- | Usage: @'glGetTexEnviv' target pname params@
+--
+-- The parameter @target@ is a @TextureEnvTarget@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_ENV'.
+--
+-- The parameter @pname@ is a @TextureEnvParameter@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_ENV_COLOR', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_ENV_MODE'.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetTexEnviv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
+glGetTexEnviv = ffienumenumPtrintIOV glGetTexEnvivFunPtr
+
+glGetTexEnvivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+glGetTexEnvivFunPtr = unsafePerformIO (getProcAddress "glGetTexEnviv")
+
+{-# NOINLINE glGetTexEnvivFunPtr #-}
+
+-- | Usage: @'glGetTexGendv' coord pname params@
+--
+-- The parameter @coord@ is a @TextureCoordName@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_S', 'Graphics.GL.Raw.Internal.Shared.GL_T', 'Graphics.GL.Raw.Internal.Shared.GL_R', 'Graphics.GL.Raw.Internal.Shared.GL_Q'.
+--
+-- The parameter @pname@ is a @TextureGenParameter@, one of: 'Graphics.GL.Raw.Extension.SGIS.PointLineTexgen.GL_EYE_LINE_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_EYE_PLANE', 'Graphics.GL.Raw.Extension.SGIS.PointLineTexgen.GL_EYE_POINT_SGIS', 'Graphics.GL.Raw.Extension.SGIS.PointLineTexgen.GL_OBJECT_LINE_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_OBJECT_PLANE', 'Graphics.GL.Raw.Extension.SGIS.PointLineTexgen.GL_OBJECT_POINT_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_GEN_MODE'.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetTexGendv :: MonadIO m => GLenum -> GLenum -> Ptr GLdouble -> m ()
+glGetTexGendv = ffienumenumPtrdoubleIOV glGetTexGendvFunPtr
+
+glGetTexGendvFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLdouble -> IO ())
+glGetTexGendvFunPtr = unsafePerformIO (getProcAddress "glGetTexGendv")
+
+{-# NOINLINE glGetTexGendvFunPtr #-}
+
+-- | Usage: @'glGetTexGenfv' coord pname params@
+--
+-- The parameter @coord@ is a @TextureCoordName@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_S', 'Graphics.GL.Raw.Internal.Shared.GL_T', 'Graphics.GL.Raw.Internal.Shared.GL_R', 'Graphics.GL.Raw.Internal.Shared.GL_Q'.
+--
+-- The parameter @pname@ is a @TextureGenParameter@, one of: 'Graphics.GL.Raw.Extension.SGIS.PointLineTexgen.GL_EYE_LINE_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_EYE_PLANE', 'Graphics.GL.Raw.Extension.SGIS.PointLineTexgen.GL_EYE_POINT_SGIS', 'Graphics.GL.Raw.Extension.SGIS.PointLineTexgen.GL_OBJECT_LINE_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_OBJECT_PLANE', 'Graphics.GL.Raw.Extension.SGIS.PointLineTexgen.GL_OBJECT_POINT_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_GEN_MODE'.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetTexGenfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
+glGetTexGenfv = ffienumenumPtrfloatIOV glGetTexGenfvFunPtr
+
+glGetTexGenfvFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
+glGetTexGenfvFunPtr = unsafePerformIO (getProcAddress "glGetTexGenfv")
+
+{-# NOINLINE glGetTexGenfvFunPtr #-}
+
+-- | Usage: @'glGetTexGeniv' coord pname params@
+--
+-- The parameter @coord@ is a @TextureCoordName@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_S', 'Graphics.GL.Raw.Internal.Shared.GL_T', 'Graphics.GL.Raw.Internal.Shared.GL_R', 'Graphics.GL.Raw.Internal.Shared.GL_Q'.
+--
+-- The parameter @pname@ is a @TextureGenParameter@, one of: 'Graphics.GL.Raw.Extension.SGIS.PointLineTexgen.GL_EYE_LINE_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_EYE_PLANE', 'Graphics.GL.Raw.Extension.SGIS.PointLineTexgen.GL_EYE_POINT_SGIS', 'Graphics.GL.Raw.Extension.SGIS.PointLineTexgen.GL_OBJECT_LINE_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_OBJECT_PLANE', 'Graphics.GL.Raw.Extension.SGIS.PointLineTexgen.GL_OBJECT_POINT_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_GEN_MODE'.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetTexGeniv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
+glGetTexGeniv = ffienumenumPtrintIOV glGetTexGenivFunPtr
+
+glGetTexGenivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+glGetTexGenivFunPtr = unsafePerformIO (getProcAddress "glGetTexGeniv")
+
+{-# NOINLINE glGetTexGenivFunPtr #-}
+
+-- | Usage: @'glIndexMask' mask@
+--
+-- The parameter @mask@ is a @MaskedColorIndexValueI@.
+
+
+glIndexMask :: MonadIO m => GLuint -> m ()
+glIndexMask = ffiuintIOV glIndexMaskFunPtr
+
+glIndexMaskFunPtr :: FunPtr (GLuint -> IO ())
+glIndexMaskFunPtr = unsafePerformIO (getProcAddress "glIndexMask")
+
+{-# NOINLINE glIndexMaskFunPtr #-}
+
+-- | Usage: @'glIndexPointer' type stride pointer@
+--
+-- The parameter @type@ is a @IndexPointerType@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_DOUBLE', 'Graphics.GL.Raw.Internal.Shared.GL_FLOAT', 'Graphics.GL.Raw.Internal.Shared.GL_INT', 'Graphics.GL.Raw.Internal.Shared.GL_SHORT'.
+--
+-- The length of @pointer@ should be @COMPSIZE(type,stride)@.
+
+
+glIndexPointer :: MonadIO m => GLenum -> GLsizei -> Ptr () -> m ()
+glIndexPointer = ffienumsizeiPtrVIOV glIndexPointerFunPtr
+
+glIndexPointerFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr () -> IO ())
+glIndexPointerFunPtr = unsafePerformIO (getProcAddress "glIndexPointer")
+
+{-# NOINLINE glIndexPointerFunPtr #-}
+
+-- | Usage: @'glIndexd' c@
+--
+-- The parameter @c@ is a @ColorIndexValueD@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glIndexdv'.
+
+
+glIndexd :: MonadIO m => GLdouble -> m ()
+glIndexd = ffidoubleIOV glIndexdFunPtr
+
+glIndexdFunPtr :: FunPtr (GLdouble -> IO ())
+glIndexdFunPtr = unsafePerformIO (getProcAddress "glIndexd")
+
+{-# NOINLINE glIndexdFunPtr #-}
+
+-- | Usage: @'glIndexdv' c@
+--
+-- The parameter @c@ is a @ColorIndexValueD@.
+--
+-- The length of @c@ should be @1@.
+
+
+glIndexdv :: MonadIO m => Ptr GLdouble -> m ()
+glIndexdv = ffiPtrdoubleIOV glIndexdvFunPtr
+
+glIndexdvFunPtr :: FunPtr (Ptr GLdouble -> IO ())
+glIndexdvFunPtr = unsafePerformIO (getProcAddress "glIndexdv")
+
+{-# NOINLINE glIndexdvFunPtr #-}
+
+-- | Usage: @'glIndexf' c@
+--
+-- The parameter @c@ is a @ColorIndexValueF@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glIndexfv'.
+
+
+glIndexf :: MonadIO m => GLfloat -> m ()
+glIndexf = ffifloatIOV glIndexfFunPtr
+
+glIndexfFunPtr :: FunPtr (GLfloat -> IO ())
+glIndexfFunPtr = unsafePerformIO (getProcAddress "glIndexf")
+
+{-# NOINLINE glIndexfFunPtr #-}
+
+-- | Usage: @'glIndexfv' c@
+--
+-- The parameter @c@ is a @ColorIndexValueF@.
+--
+-- The length of @c@ should be @1@.
+
+
+glIndexfv :: MonadIO m => Ptr GLfloat -> m ()
+glIndexfv = ffiPtrfloatIOV glIndexfvFunPtr
+
+glIndexfvFunPtr :: FunPtr (Ptr GLfloat -> IO ())
+glIndexfvFunPtr = unsafePerformIO (getProcAddress "glIndexfv")
+
+{-# NOINLINE glIndexfvFunPtr #-}
+
+-- | Usage: @'glIndexi' c@
+--
+-- The parameter @c@ is a @ColorIndexValueI@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glIndexiv'.
+
+
+glIndexi :: MonadIO m => GLint -> m ()
+glIndexi = ffiintIOV glIndexiFunPtr
+
+glIndexiFunPtr :: FunPtr (GLint -> IO ())
+glIndexiFunPtr = unsafePerformIO (getProcAddress "glIndexi")
+
+{-# NOINLINE glIndexiFunPtr #-}
+
+-- | Usage: @'glIndexiv' c@
+--
+-- The parameter @c@ is a @ColorIndexValueI@.
+--
+-- The length of @c@ should be @1@.
+
+
+glIndexiv :: MonadIO m => Ptr GLint -> m ()
+glIndexiv = ffiPtrintIOV glIndexivFunPtr
+
+glIndexivFunPtr :: FunPtr (Ptr GLint -> IO ())
+glIndexivFunPtr = unsafePerformIO (getProcAddress "glIndexiv")
+
+{-# NOINLINE glIndexivFunPtr #-}
+
+-- | Usage: @'glIndexs' c@
+--
+-- The parameter @c@ is a @ColorIndexValueS@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glIndexsv'.
+
+
+glIndexs :: MonadIO m => GLshort -> m ()
+glIndexs = ffishortIOV glIndexsFunPtr
+
+glIndexsFunPtr :: FunPtr (GLshort -> IO ())
+glIndexsFunPtr = unsafePerformIO (getProcAddress "glIndexs")
+
+{-# NOINLINE glIndexsFunPtr #-}
+
+-- | Usage: @'glIndexsv' c@
+--
+-- The parameter @c@ is a @ColorIndexValueS@.
+--
+-- The length of @c@ should be @1@.
+
+
+glIndexsv :: MonadIO m => Ptr GLshort -> m ()
+glIndexsv = ffiPtrshortIOV glIndexsvFunPtr
+
+glIndexsvFunPtr :: FunPtr (Ptr GLshort -> IO ())
+glIndexsvFunPtr = unsafePerformIO (getProcAddress "glIndexsv")
+
+{-# NOINLINE glIndexsvFunPtr #-}
+
+-- | Usage: @'glIndexub' c@
+--
+-- The parameter @c@ is a @ColorIndexValueUB@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glIndexubv'.
+
+
+glIndexub :: MonadIO m => GLubyte -> m ()
+glIndexub = ffiubyteIOV glIndexubFunPtr
+
+glIndexubFunPtr :: FunPtr (GLubyte -> IO ())
+glIndexubFunPtr = unsafePerformIO (getProcAddress "glIndexub")
+
+{-# NOINLINE glIndexubFunPtr #-}
+
+-- | Usage: @'glIndexubv' c@
+--
+-- The parameter @c@ is a @ColorIndexValueUB@.
+--
+-- The length of @c@ should be @1@.
+
+
+glIndexubv :: MonadIO m => Ptr GLubyte -> m ()
+glIndexubv = ffiPtrubyteIOV glIndexubvFunPtr
+
+glIndexubvFunPtr :: FunPtr (Ptr GLubyte -> IO ())
+glIndexubvFunPtr = unsafePerformIO (getProcAddress "glIndexubv")
+
+{-# NOINLINE glIndexubvFunPtr #-}
+
+-- | Usage: @'glInitNames'@
+
+
+glInitNames :: MonadIO m => m ()
+glInitNames = ffiIOV glInitNamesFunPtr
+
+glInitNamesFunPtr :: FunPtr (IO ())
+glInitNamesFunPtr = unsafePerformIO (getProcAddress "glInitNames")
+
+{-# NOINLINE glInitNamesFunPtr #-}
+
+-- | Usage: @'glInterleavedArrays' format stride pointer@
+--
+-- The parameter @format@ is a @InterleavedArrayFormat@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_C3F_V3F', 'Graphics.GL.Raw.Internal.Shared.GL_C4F_N3F_V3F', 'Graphics.GL.Raw.Internal.Shared.GL_C4UB_V2F', 'Graphics.GL.Raw.Internal.Shared.GL_C4UB_V3F', 'Graphics.GL.Raw.Internal.Shared.GL_N3F_V3F', 'Graphics.GL.Raw.Internal.Shared.GL_T2F_C3F_V3F', 'Graphics.GL.Raw.Internal.Shared.GL_T2F_C4F_N3F_V3F', 'Graphics.GL.Raw.Internal.Shared.GL_T2F_C4UB_V3F', 'Graphics.GL.Raw.Internal.Shared.GL_T2F_N3F_V3F', 'Graphics.GL.Raw.Internal.Shared.GL_T2F_V3F', 'Graphics.GL.Raw.Internal.Shared.GL_T4F_C4F_N3F_V4F', 'Graphics.GL.Raw.Internal.Shared.GL_T4F_V4F', 'Graphics.GL.Raw.Internal.Shared.GL_V2F', 'Graphics.GL.Raw.Internal.Shared.GL_V3F'.
+--
+-- The length of @pointer@ should be @COMPSIZE(format,stride)@.
+
+
+glInterleavedArrays :: MonadIO m => GLenum -> GLsizei -> Ptr () -> m ()
+glInterleavedArrays = ffienumsizeiPtrVIOV glInterleavedArraysFunPtr
+
+glInterleavedArraysFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr () -> IO ())
+glInterleavedArraysFunPtr = unsafePerformIO (getProcAddress "glInterleavedArrays")
+
+{-# NOINLINE glInterleavedArraysFunPtr #-}
+
+-- | Usage: @'glIsList' list@
+--
+-- The parameter @list@ is a @List@.
+
+
+glIsList :: MonadIO m => GLuint -> m GLboolean
+glIsList = ffiuintIOboolean glIsListFunPtr
+
+glIsListFunPtr :: FunPtr (GLuint -> IO GLboolean)
+glIsListFunPtr = unsafePerformIO (getProcAddress "glIsList")
+
+{-# NOINLINE glIsListFunPtr #-}
+
+-- | Usage: @'glLightModelf' pname param@
+--
+-- The parameter @pname@ is a @LightModelParameter@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT_MODEL_AMBIENT', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT_MODEL_COLOR_CONTROL', 'Graphics.GL.Raw.Extension.EXT.SeparateSpecularColor.GL_LIGHT_MODEL_COLOR_CONTROL_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT_MODEL_LOCAL_VIEWER', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT_MODEL_TWO_SIDE'.
+
+
+glLightModelf :: MonadIO m => GLenum -> GLfloat -> m ()
+glLightModelf = ffienumfloatIOV glLightModelfFunPtr
+
+glLightModelfFunPtr :: FunPtr (GLenum -> GLfloat -> IO ())
+glLightModelfFunPtr = unsafePerformIO (getProcAddress "glLightModelf")
+
+{-# NOINLINE glLightModelfFunPtr #-}
+
+-- | Usage: @'glLightModelfv' pname params@
+--
+-- The parameter @pname@ is a @LightModelParameter@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT_MODEL_AMBIENT', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT_MODEL_COLOR_CONTROL', 'Graphics.GL.Raw.Extension.EXT.SeparateSpecularColor.GL_LIGHT_MODEL_COLOR_CONTROL_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT_MODEL_LOCAL_VIEWER', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT_MODEL_TWO_SIDE'.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glLightModelfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
+glLightModelfv = ffienumPtrfloatIOV glLightModelfvFunPtr
+
+glLightModelfvFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
+glLightModelfvFunPtr = unsafePerformIO (getProcAddress "glLightModelfv")
+
+{-# NOINLINE glLightModelfvFunPtr #-}
+
+-- | Usage: @'glLightModeli' pname param@
+--
+-- The parameter @pname@ is a @LightModelParameter@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT_MODEL_AMBIENT', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT_MODEL_COLOR_CONTROL', 'Graphics.GL.Raw.Extension.EXT.SeparateSpecularColor.GL_LIGHT_MODEL_COLOR_CONTROL_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT_MODEL_LOCAL_VIEWER', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT_MODEL_TWO_SIDE'.
+
+
+glLightModeli :: MonadIO m => GLenum -> GLint -> m ()
+glLightModeli = ffienumintIOV glLightModeliFunPtr
+
+glLightModeliFunPtr :: FunPtr (GLenum -> GLint -> IO ())
+glLightModeliFunPtr = unsafePerformIO (getProcAddress "glLightModeli")
+
+{-# NOINLINE glLightModeliFunPtr #-}
+
+-- | Usage: @'glLightModeliv' pname params@
+--
+-- The parameter @pname@ is a @LightModelParameter@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT_MODEL_AMBIENT', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT_MODEL_COLOR_CONTROL', 'Graphics.GL.Raw.Extension.EXT.SeparateSpecularColor.GL_LIGHT_MODEL_COLOR_CONTROL_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT_MODEL_LOCAL_VIEWER', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT_MODEL_TWO_SIDE'.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glLightModeliv :: MonadIO m => GLenum -> Ptr GLint -> m ()
+glLightModeliv = ffienumPtrintIOV glLightModelivFunPtr
+
+glLightModelivFunPtr :: FunPtr (GLenum -> Ptr GLint -> IO ())
+glLightModelivFunPtr = unsafePerformIO (getProcAddress "glLightModeliv")
+
+{-# NOINLINE glLightModelivFunPtr #-}
+
+-- | Usage: @'glLightf' light pname param@
+--
+-- The parameter @light@ is a @LightName@, one of: 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT0_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT1_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT2_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT3_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT4_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT5_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT6_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT7_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT0', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT1', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT2', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT3', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT4', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT5', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT6', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT7'.
+--
+-- The parameter @pname@ is a @LightParameter@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_AMBIENT', 'Graphics.GL.Raw.Internal.Shared.GL_CONSTANT_ATTENUATION', 'Graphics.GL.Raw.Internal.Shared.GL_DIFFUSE', 'Graphics.GL.Raw.Internal.Shared.GL_LINEAR_ATTENUATION', 'Graphics.GL.Raw.Internal.Shared.GL_POSITION', 'Graphics.GL.Raw.Internal.Shared.GL_QUADRATIC_ATTENUATION', 'Graphics.GL.Raw.Internal.Shared.GL_SPECULAR', 'Graphics.GL.Raw.Internal.Shared.GL_SPOT_CUTOFF', 'Graphics.GL.Raw.Internal.Shared.GL_SPOT_DIRECTION', 'Graphics.GL.Raw.Internal.Shared.GL_SPOT_EXPONENT'.
+--
+-- The parameter @param@ is a @CheckedFloat32@.
+
+
+glLightf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()
+glLightf = ffienumenumfloatIOV glLightfFunPtr
+
+glLightfFunPtr :: FunPtr (GLenum -> GLenum -> GLfloat -> IO ())
+glLightfFunPtr = unsafePerformIO (getProcAddress "glLightf")
+
+{-# NOINLINE glLightfFunPtr #-}
+
+-- | Usage: @'glLightfv' light pname params@
+--
+-- The parameter @light@ is a @LightName@, one of: 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT0_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT1_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT2_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT3_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT4_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT5_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT6_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT7_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT0', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT1', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT2', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT3', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT4', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT5', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT6', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT7'.
+--
+-- The parameter @pname@ is a @LightParameter@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_AMBIENT', 'Graphics.GL.Raw.Internal.Shared.GL_CONSTANT_ATTENUATION', 'Graphics.GL.Raw.Internal.Shared.GL_DIFFUSE', 'Graphics.GL.Raw.Internal.Shared.GL_LINEAR_ATTENUATION', 'Graphics.GL.Raw.Internal.Shared.GL_POSITION', 'Graphics.GL.Raw.Internal.Shared.GL_QUADRATIC_ATTENUATION', 'Graphics.GL.Raw.Internal.Shared.GL_SPECULAR', 'Graphics.GL.Raw.Internal.Shared.GL_SPOT_CUTOFF', 'Graphics.GL.Raw.Internal.Shared.GL_SPOT_DIRECTION', 'Graphics.GL.Raw.Internal.Shared.GL_SPOT_EXPONENT'.
+--
+-- The parameter @params@ is a @CheckedFloat32@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glLightfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
+glLightfv = ffienumenumPtrfloatIOV glLightfvFunPtr
+
+glLightfvFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
+glLightfvFunPtr = unsafePerformIO (getProcAddress "glLightfv")
+
+{-# NOINLINE glLightfvFunPtr #-}
+
+-- | Usage: @'glLighti' light pname param@
+--
+-- The parameter @light@ is a @LightName@, one of: 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT0_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT1_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT2_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT3_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT4_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT5_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT6_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT7_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT0', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT1', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT2', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT3', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT4', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT5', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT6', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT7'.
+--
+-- The parameter @pname@ is a @LightParameter@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_AMBIENT', 'Graphics.GL.Raw.Internal.Shared.GL_CONSTANT_ATTENUATION', 'Graphics.GL.Raw.Internal.Shared.GL_DIFFUSE', 'Graphics.GL.Raw.Internal.Shared.GL_LINEAR_ATTENUATION', 'Graphics.GL.Raw.Internal.Shared.GL_POSITION', 'Graphics.GL.Raw.Internal.Shared.GL_QUADRATIC_ATTENUATION', 'Graphics.GL.Raw.Internal.Shared.GL_SPECULAR', 'Graphics.GL.Raw.Internal.Shared.GL_SPOT_CUTOFF', 'Graphics.GL.Raw.Internal.Shared.GL_SPOT_DIRECTION', 'Graphics.GL.Raw.Internal.Shared.GL_SPOT_EXPONENT'.
+--
+-- The parameter @param@ is a @CheckedInt32@.
+
+
+glLighti :: MonadIO m => GLenum -> GLenum -> GLint -> m ()
+glLighti = ffienumenumintIOV glLightiFunPtr
+
+glLightiFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> IO ())
+glLightiFunPtr = unsafePerformIO (getProcAddress "glLighti")
+
+{-# NOINLINE glLightiFunPtr #-}
+
+-- | Usage: @'glLightiv' light pname params@
+--
+-- The parameter @light@ is a @LightName@, one of: 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT0_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT1_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT2_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT3_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT4_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT5_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT6_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT7_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT0', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT1', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT2', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT3', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT4', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT5', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT6', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT7'.
+--
+-- The parameter @pname@ is a @LightParameter@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_AMBIENT', 'Graphics.GL.Raw.Internal.Shared.GL_CONSTANT_ATTENUATION', 'Graphics.GL.Raw.Internal.Shared.GL_DIFFUSE', 'Graphics.GL.Raw.Internal.Shared.GL_LINEAR_ATTENUATION', 'Graphics.GL.Raw.Internal.Shared.GL_POSITION', 'Graphics.GL.Raw.Internal.Shared.GL_QUADRATIC_ATTENUATION', 'Graphics.GL.Raw.Internal.Shared.GL_SPECULAR', 'Graphics.GL.Raw.Internal.Shared.GL_SPOT_CUTOFF', 'Graphics.GL.Raw.Internal.Shared.GL_SPOT_DIRECTION', 'Graphics.GL.Raw.Internal.Shared.GL_SPOT_EXPONENT'.
+--
+-- The parameter @params@ is a @CheckedInt32@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glLightiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
+glLightiv = ffienumenumPtrintIOV glLightivFunPtr
+
+glLightivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+glLightivFunPtr = unsafePerformIO (getProcAddress "glLightiv")
+
+{-# NOINLINE glLightivFunPtr #-}
+
+-- | Usage: @'glLineStipple' factor pattern@
+--
+-- The parameter @factor@ is a @CheckedInt32@.
+--
+-- The parameter @pattern@ is a @LineStipple@.
+
+
+glLineStipple :: MonadIO m => GLint -> GLushort -> m ()
+glLineStipple = ffiintushortIOV glLineStippleFunPtr
+
+glLineStippleFunPtr :: FunPtr (GLint -> GLushort -> IO ())
+glLineStippleFunPtr = unsafePerformIO (getProcAddress "glLineStipple")
+
+{-# NOINLINE glLineStippleFunPtr #-}
+
+-- | Usage: @'glListBase' base@
+--
+-- The parameter @base@ is a @List@.
+
+
+glListBase :: MonadIO m => GLuint -> m ()
+glListBase = ffiuintIOV glListBaseFunPtr
+
+glListBaseFunPtr :: FunPtr (GLuint -> IO ())
+glListBaseFunPtr = unsafePerformIO (getProcAddress "glListBase")
+
+{-# NOINLINE glListBaseFunPtr #-}
+
+-- | Usage: @'glLoadIdentity'@
+
+
+glLoadIdentity :: MonadIO m => m ()
+glLoadIdentity = ffiIOV glLoadIdentityFunPtr
+
+glLoadIdentityFunPtr :: FunPtr (IO ())
+glLoadIdentityFunPtr = unsafePerformIO (getProcAddress "glLoadIdentity")
+
+{-# NOINLINE glLoadIdentityFunPtr #-}
+
+-- | Usage: @'glLoadMatrixd' m@
+--
+-- The length of @m@ should be @16@.
+
+
+glLoadMatrixd :: MonadIO m => Ptr GLdouble -> m ()
+glLoadMatrixd = ffiPtrdoubleIOV glLoadMatrixdFunPtr
+
+glLoadMatrixdFunPtr :: FunPtr (Ptr GLdouble -> IO ())
+glLoadMatrixdFunPtr = unsafePerformIO (getProcAddress "glLoadMatrixd")
+
+{-# NOINLINE glLoadMatrixdFunPtr #-}
+
+-- | Usage: @'glLoadMatrixf' m@
+--
+-- The length of @m@ should be @16@.
+
+
+glLoadMatrixf :: MonadIO m => Ptr GLfloat -> m ()
+glLoadMatrixf = ffiPtrfloatIOV glLoadMatrixfFunPtr
+
+glLoadMatrixfFunPtr :: FunPtr (Ptr GLfloat -> IO ())
+glLoadMatrixfFunPtr = unsafePerformIO (getProcAddress "glLoadMatrixf")
+
+{-# NOINLINE glLoadMatrixfFunPtr #-}
+
+-- | Usage: @'glLoadName' name@
+--
+-- The parameter @name@ is a @SelectName@.
+
+
+glLoadName :: MonadIO m => GLuint -> m ()
+glLoadName = ffiuintIOV glLoadNameFunPtr
+
+glLoadNameFunPtr :: FunPtr (GLuint -> IO ())
+glLoadNameFunPtr = unsafePerformIO (getProcAddress "glLoadName")
+
+{-# NOINLINE glLoadNameFunPtr #-}
+
+-- | Usage: @'glLoadTransposeMatrixd' m@
+--
+-- The length of @m@ should be @16@.
+
+
+glLoadTransposeMatrixd :: MonadIO m => Ptr GLdouble -> m ()
+glLoadTransposeMatrixd = ffiPtrdoubleIOV glLoadTransposeMatrixdFunPtr
+
+glLoadTransposeMatrixdFunPtr :: FunPtr (Ptr GLdouble -> IO ())
+glLoadTransposeMatrixdFunPtr = unsafePerformIO (getProcAddress "glLoadTransposeMatrixd")
+
+{-# NOINLINE glLoadTransposeMatrixdFunPtr #-}
+
+-- | Usage: @'glLoadTransposeMatrixf' m@
+--
+-- The length of @m@ should be @16@.
+
+
+glLoadTransposeMatrixf :: MonadIO m => Ptr GLfloat -> m ()
+glLoadTransposeMatrixf = ffiPtrfloatIOV glLoadTransposeMatrixfFunPtr
+
+glLoadTransposeMatrixfFunPtr :: FunPtr (Ptr GLfloat -> IO ())
+glLoadTransposeMatrixfFunPtr = unsafePerformIO (getProcAddress "glLoadTransposeMatrixf")
+
+{-# NOINLINE glLoadTransposeMatrixfFunPtr #-}
+
+-- | Usage: @'glMap1d' target u1 u2 stride order points@
+--
+-- The parameter @target@ is a @MapTarget@, one of: 'Graphics.GL.Raw.Extension.SGIX.PolynomialFfd.GL_GEOMETRY_DEFORMATION_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_COLOR_4', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_NORMAL', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_TEXTURE_COORD_1', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_TEXTURE_COORD_2', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_TEXTURE_COORD_3', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_TEXTURE_COORD_4', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_VERTEX_3', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_VERTEX_4', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_COLOR_4', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_NORMAL', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_TEXTURE_COORD_1', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_TEXTURE_COORD_2', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_TEXTURE_COORD_3', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_TEXTURE_COORD_4', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_VERTEX_3', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_VERTEX_4', 'Graphics.GL.Raw.Extension.SGIX.PolynomialFfd.GL_TEXTURE_DEFORMATION_SGIX'.
+--
+-- The parameter @u1@ is a @CoordD@.
+--
+-- The parameter @u2@ is a @CoordD@.
+--
+-- The parameter @order@ is a @CheckedInt32@.
+--
+-- The parameter @points@ is a @CoordD@.
+--
+-- The length of @points@ should be @COMPSIZE(target,stride,order)@.
+
+
+glMap1d :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> m ()
+glMap1d = ffienumdoubledoubleintintPtrdoubleIOV glMap1dFunPtr
+
+glMap1dFunPtr :: FunPtr (GLenum -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> IO ())
+glMap1dFunPtr = unsafePerformIO (getProcAddress "glMap1d")
+
+{-# NOINLINE glMap1dFunPtr #-}
+
+-- | Usage: @'glMap1f' target u1 u2 stride order points@
+--
+-- The parameter @target@ is a @MapTarget@, one of: 'Graphics.GL.Raw.Extension.SGIX.PolynomialFfd.GL_GEOMETRY_DEFORMATION_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_COLOR_4', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_NORMAL', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_TEXTURE_COORD_1', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_TEXTURE_COORD_2', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_TEXTURE_COORD_3', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_TEXTURE_COORD_4', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_VERTEX_3', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_VERTEX_4', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_COLOR_4', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_NORMAL', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_TEXTURE_COORD_1', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_TEXTURE_COORD_2', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_TEXTURE_COORD_3', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_TEXTURE_COORD_4', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_VERTEX_3', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_VERTEX_4', 'Graphics.GL.Raw.Extension.SGIX.PolynomialFfd.GL_TEXTURE_DEFORMATION_SGIX'.
+--
+-- The parameter @u1@ is a @CoordF@.
+--
+-- The parameter @u2@ is a @CoordF@.
+--
+-- The parameter @order@ is a @CheckedInt32@.
+--
+-- The parameter @points@ is a @CoordF@.
+--
+-- The length of @points@ should be @COMPSIZE(target,stride,order)@.
+
+
+glMap1f :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> m ()
+glMap1f = ffienumfloatfloatintintPtrfloatIOV glMap1fFunPtr
+
+glMap1fFunPtr :: FunPtr (GLenum -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> IO ())
+glMap1fFunPtr = unsafePerformIO (getProcAddress "glMap1f")
+
+{-# NOINLINE glMap1fFunPtr #-}
+
+-- | Usage: @'glMap2d' target u1 u2 ustride uorder v1 v2 vstride vorder points@
+--
+-- The parameter @target@ is a @MapTarget@, one of: 'Graphics.GL.Raw.Extension.SGIX.PolynomialFfd.GL_GEOMETRY_DEFORMATION_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_COLOR_4', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_NORMAL', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_TEXTURE_COORD_1', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_TEXTURE_COORD_2', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_TEXTURE_COORD_3', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_TEXTURE_COORD_4', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_VERTEX_3', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_VERTEX_4', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_COLOR_4', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_NORMAL', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_TEXTURE_COORD_1', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_TEXTURE_COORD_2', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_TEXTURE_COORD_3', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_TEXTURE_COORD_4', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_VERTEX_3', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_VERTEX_4', 'Graphics.GL.Raw.Extension.SGIX.PolynomialFfd.GL_TEXTURE_DEFORMATION_SGIX'.
+--
+-- The parameter @u1@ is a @CoordD@.
+--
+-- The parameter @u2@ is a @CoordD@.
+--
+-- The parameter @uorder@ is a @CheckedInt32@.
+--
+-- The parameter @v1@ is a @CoordD@.
+--
+-- The parameter @v2@ is a @CoordD@.
+--
+-- The parameter @vorder@ is a @CheckedInt32@.
+--
+-- The parameter @points@ is a @CoordD@.
+--
+-- The length of @points@ should be @COMPSIZE(target,ustride,uorder,vstride,vorder)@.
+
+
+glMap2d :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLint -> GLint -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> m ()
+glMap2d = ffienumdoubledoubleintintdoubledoubleintintPtrdoubleIOV glMap2dFunPtr
+
+glMap2dFunPtr :: FunPtr (GLenum -> GLdouble -> GLdouble -> GLint -> GLint -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> IO ())
+glMap2dFunPtr = unsafePerformIO (getProcAddress "glMap2d")
+
+{-# NOINLINE glMap2dFunPtr #-}
+
+-- | Usage: @'glMap2f' target u1 u2 ustride uorder v1 v2 vstride vorder points@
+--
+-- The parameter @target@ is a @MapTarget@, one of: 'Graphics.GL.Raw.Extension.SGIX.PolynomialFfd.GL_GEOMETRY_DEFORMATION_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_COLOR_4', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_NORMAL', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_TEXTURE_COORD_1', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_TEXTURE_COORD_2', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_TEXTURE_COORD_3', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_TEXTURE_COORD_4', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_VERTEX_3', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_VERTEX_4', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_COLOR_4', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_NORMAL', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_TEXTURE_COORD_1', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_TEXTURE_COORD_2', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_TEXTURE_COORD_3', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_TEXTURE_COORD_4', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_VERTEX_3', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_VERTEX_4', 'Graphics.GL.Raw.Extension.SGIX.PolynomialFfd.GL_TEXTURE_DEFORMATION_SGIX'.
+--
+-- The parameter @u1@ is a @CoordF@.
+--
+-- The parameter @u2@ is a @CoordF@.
+--
+-- The parameter @uorder@ is a @CheckedInt32@.
+--
+-- The parameter @v1@ is a @CoordF@.
+--
+-- The parameter @v2@ is a @CoordF@.
+--
+-- The parameter @vorder@ is a @CheckedInt32@.
+--
+-- The parameter @points@ is a @CoordF@.
+--
+-- The length of @points@ should be @COMPSIZE(target,ustride,uorder,vstride,vorder)@.
+
+
+glMap2f :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLint -> GLint -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> m ()
+glMap2f = ffienumfloatfloatintintfloatfloatintintPtrfloatIOV glMap2fFunPtr
+
+glMap2fFunPtr :: FunPtr (GLenum -> GLfloat -> GLfloat -> GLint -> GLint -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> IO ())
+glMap2fFunPtr = unsafePerformIO (getProcAddress "glMap2f")
+
+{-# NOINLINE glMap2fFunPtr #-}
+
+-- | Usage: @'glMapGrid1d' un u1 u2@
+--
+-- The parameter @u1@ is a @CoordD@.
+--
+-- The parameter @u2@ is a @CoordD@.
+
+
+glMapGrid1d :: MonadIO m => GLint -> GLdouble -> GLdouble -> m ()
+glMapGrid1d = ffiintdoubledoubleIOV glMapGrid1dFunPtr
+
+glMapGrid1dFunPtr :: FunPtr (GLint -> GLdouble -> GLdouble -> IO ())
+glMapGrid1dFunPtr = unsafePerformIO (getProcAddress "glMapGrid1d")
+
+{-# NOINLINE glMapGrid1dFunPtr #-}
+
+-- | Usage: @'glMapGrid1f' un u1 u2@
+--
+-- The parameter @u1@ is a @CoordF@.
+--
+-- The parameter @u2@ is a @CoordF@.
+
+
+glMapGrid1f :: MonadIO m => GLint -> GLfloat -> GLfloat -> m ()
+glMapGrid1f = ffiintfloatfloatIOV glMapGrid1fFunPtr
+
+glMapGrid1fFunPtr :: FunPtr (GLint -> GLfloat -> GLfloat -> IO ())
+glMapGrid1fFunPtr = unsafePerformIO (getProcAddress "glMapGrid1f")
+
+{-# NOINLINE glMapGrid1fFunPtr #-}
+
+-- | Usage: @'glMapGrid2d' un u1 u2 vn v1 v2@
+--
+-- The parameter @u1@ is a @CoordD@.
+--
+-- The parameter @u2@ is a @CoordD@.
+--
+-- The parameter @v1@ is a @CoordD@.
+--
+-- The parameter @v2@ is a @CoordD@.
+
+
+glMapGrid2d :: MonadIO m => GLint -> GLdouble -> GLdouble -> GLint -> GLdouble -> GLdouble -> m ()
+glMapGrid2d = ffiintdoubledoubleintdoubledoubleIOV glMapGrid2dFunPtr
+
+glMapGrid2dFunPtr :: FunPtr (GLint -> GLdouble -> GLdouble -> GLint -> GLdouble -> GLdouble -> IO ())
+glMapGrid2dFunPtr = unsafePerformIO (getProcAddress "glMapGrid2d")
+
+{-# NOINLINE glMapGrid2dFunPtr #-}
+
+-- | Usage: @'glMapGrid2f' un u1 u2 vn v1 v2@
+--
+-- The parameter @u1@ is a @CoordF@.
+--
+-- The parameter @u2@ is a @CoordF@.
+--
+-- The parameter @v1@ is a @CoordF@.
+--
+-- The parameter @v2@ is a @CoordF@.
+
+
+glMapGrid2f :: MonadIO m => GLint -> GLfloat -> GLfloat -> GLint -> GLfloat -> GLfloat -> m ()
+glMapGrid2f = ffiintfloatfloatintfloatfloatIOV glMapGrid2fFunPtr
+
+glMapGrid2fFunPtr :: FunPtr (GLint -> GLfloat -> GLfloat -> GLint -> GLfloat -> GLfloat -> IO ())
+glMapGrid2fFunPtr = unsafePerformIO (getProcAddress "glMapGrid2f")
+
+{-# NOINLINE glMapGrid2fFunPtr #-}
+
+-- | Usage: @'glMaterialf' face pname param@
+--
+-- The parameter @face@ is a @MaterialFace@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_BACK', 'Graphics.GL.Raw.Internal.Shared.GL_FRONT', 'Graphics.GL.Raw.Internal.Shared.GL_FRONT_AND_BACK'.
+--
+-- The parameter @pname@ is a @MaterialParameter@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_AMBIENT', 'Graphics.GL.Raw.Internal.Shared.GL_AMBIENT_AND_DIFFUSE', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_INDEXES', 'Graphics.GL.Raw.Internal.Shared.GL_DIFFUSE', 'Graphics.GL.Raw.Internal.Shared.GL_EMISSION', 'Graphics.GL.Raw.Internal.Shared.GL_SHININESS', 'Graphics.GL.Raw.Internal.Shared.GL_SPECULAR'.
+--
+-- The parameter @param@ is a @CheckedFloat32@.
+
+
+glMaterialf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()
+glMaterialf = ffienumenumfloatIOV glMaterialfFunPtr
+
+glMaterialfFunPtr :: FunPtr (GLenum -> GLenum -> GLfloat -> IO ())
+glMaterialfFunPtr = unsafePerformIO (getProcAddress "glMaterialf")
+
+{-# NOINLINE glMaterialfFunPtr #-}
+
+-- | Usage: @'glMaterialfv' face pname params@
+--
+-- The parameter @face@ is a @MaterialFace@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_BACK', 'Graphics.GL.Raw.Internal.Shared.GL_FRONT', 'Graphics.GL.Raw.Internal.Shared.GL_FRONT_AND_BACK'.
+--
+-- The parameter @pname@ is a @MaterialParameter@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_AMBIENT', 'Graphics.GL.Raw.Internal.Shared.GL_AMBIENT_AND_DIFFUSE', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_INDEXES', 'Graphics.GL.Raw.Internal.Shared.GL_DIFFUSE', 'Graphics.GL.Raw.Internal.Shared.GL_EMISSION', 'Graphics.GL.Raw.Internal.Shared.GL_SHININESS', 'Graphics.GL.Raw.Internal.Shared.GL_SPECULAR'.
+--
+-- The parameter @params@ is a @CheckedFloat32@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glMaterialfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
+glMaterialfv = ffienumenumPtrfloatIOV glMaterialfvFunPtr
+
+glMaterialfvFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
+glMaterialfvFunPtr = unsafePerformIO (getProcAddress "glMaterialfv")
+
+{-# NOINLINE glMaterialfvFunPtr #-}
+
+-- | Usage: @'glMateriali' face pname param@
+--
+-- The parameter @face@ is a @MaterialFace@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_BACK', 'Graphics.GL.Raw.Internal.Shared.GL_FRONT', 'Graphics.GL.Raw.Internal.Shared.GL_FRONT_AND_BACK'.
+--
+-- The parameter @pname@ is a @MaterialParameter@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_AMBIENT', 'Graphics.GL.Raw.Internal.Shared.GL_AMBIENT_AND_DIFFUSE', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_INDEXES', 'Graphics.GL.Raw.Internal.Shared.GL_DIFFUSE', 'Graphics.GL.Raw.Internal.Shared.GL_EMISSION', 'Graphics.GL.Raw.Internal.Shared.GL_SHININESS', 'Graphics.GL.Raw.Internal.Shared.GL_SPECULAR'.
+--
+-- The parameter @param@ is a @CheckedInt32@.
+
+
+glMateriali :: MonadIO m => GLenum -> GLenum -> GLint -> m ()
+glMateriali = ffienumenumintIOV glMaterialiFunPtr
+
+glMaterialiFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> IO ())
+glMaterialiFunPtr = unsafePerformIO (getProcAddress "glMateriali")
+
+{-# NOINLINE glMaterialiFunPtr #-}
+
+-- | Usage: @'glMaterialiv' face pname params@
+--
+-- The parameter @face@ is a @MaterialFace@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_BACK', 'Graphics.GL.Raw.Internal.Shared.GL_FRONT', 'Graphics.GL.Raw.Internal.Shared.GL_FRONT_AND_BACK'.
+--
+-- The parameter @pname@ is a @MaterialParameter@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_AMBIENT', 'Graphics.GL.Raw.Internal.Shared.GL_AMBIENT_AND_DIFFUSE', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_INDEXES', 'Graphics.GL.Raw.Internal.Shared.GL_DIFFUSE', 'Graphics.GL.Raw.Internal.Shared.GL_EMISSION', 'Graphics.GL.Raw.Internal.Shared.GL_SHININESS', 'Graphics.GL.Raw.Internal.Shared.GL_SPECULAR'.
+--
+-- The parameter @params@ is a @CheckedInt32@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glMaterialiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
+glMaterialiv = ffienumenumPtrintIOV glMaterialivFunPtr
+
+glMaterialivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+glMaterialivFunPtr = unsafePerformIO (getProcAddress "glMaterialiv")
+
+{-# NOINLINE glMaterialivFunPtr #-}
+
+-- | Usage: @'glMatrixMode' mode@
+--
+-- The parameter @mode@ is a @MatrixMode@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_MODELVIEW', 'Graphics.GL.Raw.Extension.EXT.VertexWeighting.GL_MODELVIEW0_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROJECTION', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE'.
+
+
+glMatrixMode :: MonadIO m => GLenum -> m ()
+glMatrixMode = ffienumIOV glMatrixModeFunPtr
+
+glMatrixModeFunPtr :: FunPtr (GLenum -> IO ())
+glMatrixModeFunPtr = unsafePerformIO (getProcAddress "glMatrixMode")
+
+{-# NOINLINE glMatrixModeFunPtr #-}
+
+-- | Usage: @'glMultMatrixd' m@
+--
+-- The length of @m@ should be @16@.
+
+
+glMultMatrixd :: MonadIO m => Ptr GLdouble -> m ()
+glMultMatrixd = ffiPtrdoubleIOV glMultMatrixdFunPtr
+
+glMultMatrixdFunPtr :: FunPtr (Ptr GLdouble -> IO ())
+glMultMatrixdFunPtr = unsafePerformIO (getProcAddress "glMultMatrixd")
+
+{-# NOINLINE glMultMatrixdFunPtr #-}
+
+-- | Usage: @'glMultMatrixf' m@
+--
+-- The length of @m@ should be @16@.
+
+
+glMultMatrixf :: MonadIO m => Ptr GLfloat -> m ()
+glMultMatrixf = ffiPtrfloatIOV glMultMatrixfFunPtr
+
+glMultMatrixfFunPtr :: FunPtr (Ptr GLfloat -> IO ())
+glMultMatrixfFunPtr = unsafePerformIO (getProcAddress "glMultMatrixf")
+
+{-# NOINLINE glMultMatrixfFunPtr #-}
+
+-- | Usage: @'glMultTransposeMatrixd' m@
+--
+-- The length of @m@ should be @16@.
+
+
+glMultTransposeMatrixd :: MonadIO m => Ptr GLdouble -> m ()
+glMultTransposeMatrixd = ffiPtrdoubleIOV glMultTransposeMatrixdFunPtr
+
+glMultTransposeMatrixdFunPtr :: FunPtr (Ptr GLdouble -> IO ())
+glMultTransposeMatrixdFunPtr = unsafePerformIO (getProcAddress "glMultTransposeMatrixd")
+
+{-# NOINLINE glMultTransposeMatrixdFunPtr #-}
+
+-- | Usage: @'glMultTransposeMatrixf' m@
+--
+-- The length of @m@ should be @16@.
+
+
+glMultTransposeMatrixf :: MonadIO m => Ptr GLfloat -> m ()
+glMultTransposeMatrixf = ffiPtrfloatIOV glMultTransposeMatrixfFunPtr
+
+glMultTransposeMatrixfFunPtr :: FunPtr (Ptr GLfloat -> IO ())
+glMultTransposeMatrixfFunPtr = unsafePerformIO (getProcAddress "glMultTransposeMatrixf")
+
+{-# NOINLINE glMultTransposeMatrixfFunPtr #-}
+
+-- | Usage: @'glMultiTexCoord1d' target s@
+--
+-- The parameter @target@ is a @TextureUnit@.
+--
+-- The parameter @s@ is a @CoordD@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glMultiTexCoord1dv'.
+
+
+glMultiTexCoord1d :: MonadIO m => GLenum -> GLdouble -> m ()
+glMultiTexCoord1d = ffienumdoubleIOV glMultiTexCoord1dFunPtr
+
+glMultiTexCoord1dFunPtr :: FunPtr (GLenum -> GLdouble -> IO ())
+glMultiTexCoord1dFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord1d")
+
+{-# NOINLINE glMultiTexCoord1dFunPtr #-}
+
+-- | Usage: @'glMultiTexCoord1dv' target v@
+--
+-- The parameter @target@ is a @TextureUnit@.
+--
+-- The parameter @v@ is a @CoordD@.
+--
+-- The length of @v@ should be @1@.
+
+
+glMultiTexCoord1dv :: MonadIO m => GLenum -> Ptr GLdouble -> m ()
+glMultiTexCoord1dv = ffienumPtrdoubleIOV glMultiTexCoord1dvFunPtr
+
+glMultiTexCoord1dvFunPtr :: FunPtr (GLenum -> Ptr GLdouble -> IO ())
+glMultiTexCoord1dvFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord1dv")
+
+{-# NOINLINE glMultiTexCoord1dvFunPtr #-}
+
+-- | Usage: @'glMultiTexCoord1f' target s@
+--
+-- The parameter @target@ is a @TextureUnit@.
+--
+-- The parameter @s@ is a @CoordF@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glMultiTexCoord1fv'.
+
+
+glMultiTexCoord1f :: MonadIO m => GLenum -> GLfloat -> m ()
+glMultiTexCoord1f = ffienumfloatIOV glMultiTexCoord1fFunPtr
+
+glMultiTexCoord1fFunPtr :: FunPtr (GLenum -> GLfloat -> IO ())
+glMultiTexCoord1fFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord1f")
+
+{-# NOINLINE glMultiTexCoord1fFunPtr #-}
+
+-- | Usage: @'glMultiTexCoord1fv' target v@
+--
+-- The parameter @target@ is a @TextureUnit@.
+--
+-- The parameter @v@ is a @CoordF@.
+--
+-- The length of @v@ should be @1@.
+
+
+glMultiTexCoord1fv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
+glMultiTexCoord1fv = ffienumPtrfloatIOV glMultiTexCoord1fvFunPtr
+
+glMultiTexCoord1fvFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
+glMultiTexCoord1fvFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord1fv")
+
+{-# NOINLINE glMultiTexCoord1fvFunPtr #-}
+
+-- | Usage: @'glMultiTexCoord1i' target s@
+--
+-- The parameter @target@ is a @TextureUnit@.
+--
+-- The parameter @s@ is a @CoordI@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glMultiTexCoord1iv'.
+
+
+glMultiTexCoord1i :: MonadIO m => GLenum -> GLint -> m ()
+glMultiTexCoord1i = ffienumintIOV glMultiTexCoord1iFunPtr
+
+glMultiTexCoord1iFunPtr :: FunPtr (GLenum -> GLint -> IO ())
+glMultiTexCoord1iFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord1i")
+
+{-# NOINLINE glMultiTexCoord1iFunPtr #-}
+
+-- | Usage: @'glMultiTexCoord1iv' target v@
+--
+-- The parameter @target@ is a @TextureUnit@.
+--
+-- The parameter @v@ is a @CoordI@.
+--
+-- The length of @v@ should be @1@.
+
+
+glMultiTexCoord1iv :: MonadIO m => GLenum -> Ptr GLint -> m ()
+glMultiTexCoord1iv = ffienumPtrintIOV glMultiTexCoord1ivFunPtr
+
+glMultiTexCoord1ivFunPtr :: FunPtr (GLenum -> Ptr GLint -> IO ())
+glMultiTexCoord1ivFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord1iv")
+
+{-# NOINLINE glMultiTexCoord1ivFunPtr #-}
+
+-- | Usage: @'glMultiTexCoord1s' target s@
+--
+-- The parameter @target@ is a @TextureUnit@.
+--
+-- The parameter @s@ is a @CoordS@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glMultiTexCoord1sv'.
+
+
+glMultiTexCoord1s :: MonadIO m => GLenum -> GLshort -> m ()
+glMultiTexCoord1s = ffienumshortIOV glMultiTexCoord1sFunPtr
+
+glMultiTexCoord1sFunPtr :: FunPtr (GLenum -> GLshort -> IO ())
+glMultiTexCoord1sFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord1s")
+
+{-# NOINLINE glMultiTexCoord1sFunPtr #-}
+
+-- | Usage: @'glMultiTexCoord1sv' target v@
+--
+-- The parameter @target@ is a @TextureUnit@.
+--
+-- The parameter @v@ is a @CoordS@.
+--
+-- The length of @v@ should be @1@.
+
+
+glMultiTexCoord1sv :: MonadIO m => GLenum -> Ptr GLshort -> m ()
+glMultiTexCoord1sv = ffienumPtrshortIOV glMultiTexCoord1svFunPtr
+
+glMultiTexCoord1svFunPtr :: FunPtr (GLenum -> Ptr GLshort -> IO ())
+glMultiTexCoord1svFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord1sv")
+
+{-# NOINLINE glMultiTexCoord1svFunPtr #-}
+
+-- | Usage: @'glMultiTexCoord2d' target s t@
+--
+-- The parameter @target@ is a @TextureUnit@.
+--
+-- The parameter @s@ is a @CoordD@.
+--
+-- The parameter @t@ is a @CoordD@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glMultiTexCoord2dv'.
+
+
+glMultiTexCoord2d :: MonadIO m => GLenum -> GLdouble -> GLdouble -> m ()
+glMultiTexCoord2d = ffienumdoubledoubleIOV glMultiTexCoord2dFunPtr
+
+glMultiTexCoord2dFunPtr :: FunPtr (GLenum -> GLdouble -> GLdouble -> IO ())
+glMultiTexCoord2dFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord2d")
+
+{-# NOINLINE glMultiTexCoord2dFunPtr #-}
+
+-- | Usage: @'glMultiTexCoord2dv' target v@
+--
+-- The parameter @target@ is a @TextureUnit@.
+--
+-- The parameter @v@ is a @CoordD@.
+--
+-- The length of @v@ should be @2@.
+
+
+glMultiTexCoord2dv :: MonadIO m => GLenum -> Ptr GLdouble -> m ()
+glMultiTexCoord2dv = ffienumPtrdoubleIOV glMultiTexCoord2dvFunPtr
+
+glMultiTexCoord2dvFunPtr :: FunPtr (GLenum -> Ptr GLdouble -> IO ())
+glMultiTexCoord2dvFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord2dv")
+
+{-# NOINLINE glMultiTexCoord2dvFunPtr #-}
+
+-- | Usage: @'glMultiTexCoord2f' target s t@
+--
+-- The parameter @target@ is a @TextureUnit@.
+--
+-- The parameter @s@ is a @CoordF@.
+--
+-- The parameter @t@ is a @CoordF@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glMultiTexCoord2fv'.
+
+
+glMultiTexCoord2f :: MonadIO m => GLenum -> GLfloat -> GLfloat -> m ()
+glMultiTexCoord2f = ffienumfloatfloatIOV glMultiTexCoord2fFunPtr
+
+glMultiTexCoord2fFunPtr :: FunPtr (GLenum -> GLfloat -> GLfloat -> IO ())
+glMultiTexCoord2fFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord2f")
+
+{-# NOINLINE glMultiTexCoord2fFunPtr #-}
+
+-- | Usage: @'glMultiTexCoord2fv' target v@
+--
+-- The parameter @target@ is a @TextureUnit@.
+--
+-- The parameter @v@ is a @CoordF@.
+--
+-- The length of @v@ should be @2@.
+
+
+glMultiTexCoord2fv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
+glMultiTexCoord2fv = ffienumPtrfloatIOV glMultiTexCoord2fvFunPtr
+
+glMultiTexCoord2fvFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
+glMultiTexCoord2fvFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord2fv")
+
+{-# NOINLINE glMultiTexCoord2fvFunPtr #-}
+
+-- | Usage: @'glMultiTexCoord2i' target s t@
+--
+-- The parameter @target@ is a @TextureUnit@.
+--
+-- The parameter @s@ is a @CoordI@.
+--
+-- The parameter @t@ is a @CoordI@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glMultiTexCoord2iv'.
+
+
+glMultiTexCoord2i :: MonadIO m => GLenum -> GLint -> GLint -> m ()
+glMultiTexCoord2i = ffienumintintIOV glMultiTexCoord2iFunPtr
+
+glMultiTexCoord2iFunPtr :: FunPtr (GLenum -> GLint -> GLint -> IO ())
+glMultiTexCoord2iFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord2i")
+
+{-# NOINLINE glMultiTexCoord2iFunPtr #-}
+
+-- | Usage: @'glMultiTexCoord2iv' target v@
+--
+-- The parameter @target@ is a @TextureUnit@.
+--
+-- The parameter @v@ is a @CoordI@.
+--
+-- The length of @v@ should be @2@.
+
+
+glMultiTexCoord2iv :: MonadIO m => GLenum -> Ptr GLint -> m ()
+glMultiTexCoord2iv = ffienumPtrintIOV glMultiTexCoord2ivFunPtr
+
+glMultiTexCoord2ivFunPtr :: FunPtr (GLenum -> Ptr GLint -> IO ())
+glMultiTexCoord2ivFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord2iv")
+
+{-# NOINLINE glMultiTexCoord2ivFunPtr #-}
+
+-- | Usage: @'glMultiTexCoord2s' target s t@
+--
+-- The parameter @target@ is a @TextureUnit@.
+--
+-- The parameter @s@ is a @CoordS@.
+--
+-- The parameter @t@ is a @CoordS@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glMultiTexCoord2sv'.
+
+
+glMultiTexCoord2s :: MonadIO m => GLenum -> GLshort -> GLshort -> m ()
+glMultiTexCoord2s = ffienumshortshortIOV glMultiTexCoord2sFunPtr
+
+glMultiTexCoord2sFunPtr :: FunPtr (GLenum -> GLshort -> GLshort -> IO ())
+glMultiTexCoord2sFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord2s")
+
+{-# NOINLINE glMultiTexCoord2sFunPtr #-}
+
+-- | Usage: @'glMultiTexCoord2sv' target v@
+--
+-- The parameter @target@ is a @TextureUnit@.
+--
+-- The parameter @v@ is a @CoordS@.
+--
+-- The length of @v@ should be @2@.
+
+
+glMultiTexCoord2sv :: MonadIO m => GLenum -> Ptr GLshort -> m ()
+glMultiTexCoord2sv = ffienumPtrshortIOV glMultiTexCoord2svFunPtr
+
+glMultiTexCoord2svFunPtr :: FunPtr (GLenum -> Ptr GLshort -> IO ())
+glMultiTexCoord2svFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord2sv")
+
+{-# NOINLINE glMultiTexCoord2svFunPtr #-}
+
+-- | Usage: @'glMultiTexCoord3d' target s t r@
+--
+-- The parameter @target@ is a @TextureUnit@.
+--
+-- The parameter @s@ is a @CoordD@.
+--
+-- The parameter @t@ is a @CoordD@.
+--
+-- The parameter @r@ is a @CoordD@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glMultiTexCoord3dv'.
+
+
+glMultiTexCoord3d :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLdouble -> m ()
+glMultiTexCoord3d = ffienumdoubledoubledoubleIOV glMultiTexCoord3dFunPtr
+
+glMultiTexCoord3dFunPtr :: FunPtr (GLenum -> GLdouble -> GLdouble -> GLdouble -> IO ())
+glMultiTexCoord3dFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord3d")
+
+{-# NOINLINE glMultiTexCoord3dFunPtr #-}
+
+-- | Usage: @'glMultiTexCoord3dv' target v@
+--
+-- The parameter @target@ is a @TextureUnit@.
+--
+-- The parameter @v@ is a @CoordD@.
+--
+-- The length of @v@ should be @3@.
+
+
+glMultiTexCoord3dv :: MonadIO m => GLenum -> Ptr GLdouble -> m ()
+glMultiTexCoord3dv = ffienumPtrdoubleIOV glMultiTexCoord3dvFunPtr
+
+glMultiTexCoord3dvFunPtr :: FunPtr (GLenum -> Ptr GLdouble -> IO ())
+glMultiTexCoord3dvFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord3dv")
+
+{-# NOINLINE glMultiTexCoord3dvFunPtr #-}
+
+-- | Usage: @'glMultiTexCoord3f' target s t r@
+--
+-- The parameter @target@ is a @TextureUnit@.
+--
+-- The parameter @s@ is a @CoordF@.
+--
+-- The parameter @t@ is a @CoordF@.
+--
+-- The parameter @r@ is a @CoordF@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glMultiTexCoord3fv'.
+
+
+glMultiTexCoord3f :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLfloat -> m ()
+glMultiTexCoord3f = ffienumfloatfloatfloatIOV glMultiTexCoord3fFunPtr
+
+glMultiTexCoord3fFunPtr :: FunPtr (GLenum -> GLfloat -> GLfloat -> GLfloat -> IO ())
+glMultiTexCoord3fFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord3f")
+
+{-# NOINLINE glMultiTexCoord3fFunPtr #-}
+
+-- | Usage: @'glMultiTexCoord3fv' target v@
+--
+-- The parameter @target@ is a @TextureUnit@.
+--
+-- The parameter @v@ is a @CoordF@.
+--
+-- The length of @v@ should be @3@.
+
+
+glMultiTexCoord3fv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
+glMultiTexCoord3fv = ffienumPtrfloatIOV glMultiTexCoord3fvFunPtr
+
+glMultiTexCoord3fvFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
+glMultiTexCoord3fvFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord3fv")
+
+{-# NOINLINE glMultiTexCoord3fvFunPtr #-}
+
+-- | Usage: @'glMultiTexCoord3i' target s t r@
+--
+-- The parameter @target@ is a @TextureUnit@.
+--
+-- The parameter @s@ is a @CoordI@.
+--
+-- The parameter @t@ is a @CoordI@.
+--
+-- The parameter @r@ is a @CoordI@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glMultiTexCoord3iv'.
+
+
+glMultiTexCoord3i :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> m ()
+glMultiTexCoord3i = ffienumintintintIOV glMultiTexCoord3iFunPtr
+
+glMultiTexCoord3iFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLint -> IO ())
+glMultiTexCoord3iFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord3i")
+
+{-# NOINLINE glMultiTexCoord3iFunPtr #-}
+
+-- | Usage: @'glMultiTexCoord3iv' target v@
+--
+-- The parameter @target@ is a @TextureUnit@.
+--
+-- The parameter @v@ is a @CoordI@.
+--
+-- The length of @v@ should be @3@.
+
+
+glMultiTexCoord3iv :: MonadIO m => GLenum -> Ptr GLint -> m ()
+glMultiTexCoord3iv = ffienumPtrintIOV glMultiTexCoord3ivFunPtr
+
+glMultiTexCoord3ivFunPtr :: FunPtr (GLenum -> Ptr GLint -> IO ())
+glMultiTexCoord3ivFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord3iv")
+
+{-# NOINLINE glMultiTexCoord3ivFunPtr #-}
+
+-- | Usage: @'glMultiTexCoord3s' target s t r@
+--
+-- The parameter @target@ is a @TextureUnit@.
+--
+-- The parameter @s@ is a @CoordS@.
+--
+-- The parameter @t@ is a @CoordS@.
+--
+-- The parameter @r@ is a @CoordS@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glMultiTexCoord3sv'.
+
+
+glMultiTexCoord3s :: MonadIO m => GLenum -> GLshort -> GLshort -> GLshort -> m ()
+glMultiTexCoord3s = ffienumshortshortshortIOV glMultiTexCoord3sFunPtr
+
+glMultiTexCoord3sFunPtr :: FunPtr (GLenum -> GLshort -> GLshort -> GLshort -> IO ())
+glMultiTexCoord3sFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord3s")
+
+{-# NOINLINE glMultiTexCoord3sFunPtr #-}
+
+-- | Usage: @'glMultiTexCoord3sv' target v@
+--
+-- The parameter @target@ is a @TextureUnit@.
+--
+-- The parameter @v@ is a @CoordS@.
+--
+-- The length of @v@ should be @3@.
+
+
+glMultiTexCoord3sv :: MonadIO m => GLenum -> Ptr GLshort -> m ()
+glMultiTexCoord3sv = ffienumPtrshortIOV glMultiTexCoord3svFunPtr
+
+glMultiTexCoord3svFunPtr :: FunPtr (GLenum -> Ptr GLshort -> IO ())
+glMultiTexCoord3svFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord3sv")
+
+{-# NOINLINE glMultiTexCoord3svFunPtr #-}
+
+-- | Usage: @'glMultiTexCoord4d' target s t r q@
+--
+-- The parameter @target@ is a @TextureUnit@.
+--
+-- The parameter @s@ is a @CoordD@.
+--
+-- The parameter @t@ is a @CoordD@.
+--
+-- The parameter @r@ is a @CoordD@.
+--
+-- The parameter @q@ is a @CoordD@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glMultiTexCoord4dv'.
+
+
+glMultiTexCoord4d :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
+glMultiTexCoord4d = ffienumdoubledoubledoubledoubleIOV glMultiTexCoord4dFunPtr
+
+glMultiTexCoord4dFunPtr :: FunPtr (GLenum -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
+glMultiTexCoord4dFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord4d")
+
+{-# NOINLINE glMultiTexCoord4dFunPtr #-}
+
+-- | Usage: @'glMultiTexCoord4dv' target v@
+--
+-- The parameter @target@ is a @TextureUnit@.
+--
+-- The parameter @v@ is a @CoordD@.
+--
+-- The length of @v@ should be @4@.
+
+
+glMultiTexCoord4dv :: MonadIO m => GLenum -> Ptr GLdouble -> m ()
+glMultiTexCoord4dv = ffienumPtrdoubleIOV glMultiTexCoord4dvFunPtr
+
+glMultiTexCoord4dvFunPtr :: FunPtr (GLenum -> Ptr GLdouble -> IO ())
+glMultiTexCoord4dvFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord4dv")
+
+{-# NOINLINE glMultiTexCoord4dvFunPtr #-}
+
+-- | Usage: @'glMultiTexCoord4f' target s t r q@
+--
+-- The parameter @target@ is a @TextureUnit@.
+--
+-- The parameter @s@ is a @CoordF@.
+--
+-- The parameter @t@ is a @CoordF@.
+--
+-- The parameter @r@ is a @CoordF@.
+--
+-- The parameter @q@ is a @CoordF@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glMultiTexCoord4fv'.
+
+
+glMultiTexCoord4f :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
+glMultiTexCoord4f = ffienumfloatfloatfloatfloatIOV glMultiTexCoord4fFunPtr
+
+glMultiTexCoord4fFunPtr :: FunPtr (GLenum -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+glMultiTexCoord4fFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord4f")
+
+{-# NOINLINE glMultiTexCoord4fFunPtr #-}
+
+-- | Usage: @'glMultiTexCoord4fv' target v@
+--
+-- The parameter @target@ is a @TextureUnit@.
+--
+-- The parameter @v@ is a @CoordF@.
+--
+-- The length of @v@ should be @4@.
+
+
+glMultiTexCoord4fv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
+glMultiTexCoord4fv = ffienumPtrfloatIOV glMultiTexCoord4fvFunPtr
+
+glMultiTexCoord4fvFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
+glMultiTexCoord4fvFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord4fv")
+
+{-# NOINLINE glMultiTexCoord4fvFunPtr #-}
+
+-- | Usage: @'glMultiTexCoord4i' target s t r q@
+--
+-- The parameter @target@ is a @TextureUnit@.
+--
+-- The parameter @s@ is a @CoordI@.
+--
+-- The parameter @t@ is a @CoordI@.
+--
+-- The parameter @r@ is a @CoordI@.
+--
+-- The parameter @q@ is a @CoordI@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glMultiTexCoord4iv'.
+
+
+glMultiTexCoord4i :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> m ()
+glMultiTexCoord4i = ffienumintintintintIOV glMultiTexCoord4iFunPtr
+
+glMultiTexCoord4iFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> IO ())
+glMultiTexCoord4iFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord4i")
+
+{-# NOINLINE glMultiTexCoord4iFunPtr #-}
+
+-- | Usage: @'glMultiTexCoord4iv' target v@
+--
+-- The parameter @target@ is a @TextureUnit@.
+--
+-- The parameter @v@ is a @CoordI@.
+--
+-- The length of @v@ should be @4@.
+
+
+glMultiTexCoord4iv :: MonadIO m => GLenum -> Ptr GLint -> m ()
+glMultiTexCoord4iv = ffienumPtrintIOV glMultiTexCoord4ivFunPtr
+
+glMultiTexCoord4ivFunPtr :: FunPtr (GLenum -> Ptr GLint -> IO ())
+glMultiTexCoord4ivFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord4iv")
+
+{-# NOINLINE glMultiTexCoord4ivFunPtr #-}
+
+-- | Usage: @'glMultiTexCoord4s' target s t r q@
+--
+-- The parameter @target@ is a @TextureUnit@.
+--
+-- The parameter @s@ is a @CoordS@.
+--
+-- The parameter @t@ is a @CoordS@.
+--
+-- The parameter @r@ is a @CoordS@.
+--
+-- The parameter @q@ is a @CoordS@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glMultiTexCoord4sv'.
+
+
+glMultiTexCoord4s :: MonadIO m => GLenum -> GLshort -> GLshort -> GLshort -> GLshort -> m ()
+glMultiTexCoord4s = ffienumshortshortshortshortIOV glMultiTexCoord4sFunPtr
+
+glMultiTexCoord4sFunPtr :: FunPtr (GLenum -> GLshort -> GLshort -> GLshort -> GLshort -> IO ())
+glMultiTexCoord4sFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord4s")
+
+{-# NOINLINE glMultiTexCoord4sFunPtr #-}
+
+-- | Usage: @'glMultiTexCoord4sv' target v@
+--
+-- The parameter @target@ is a @TextureUnit@.
+--
+-- The parameter @v@ is a @CoordS@.
+--
+-- The length of @v@ should be @4@.
+
+
+glMultiTexCoord4sv :: MonadIO m => GLenum -> Ptr GLshort -> m ()
+glMultiTexCoord4sv = ffienumPtrshortIOV glMultiTexCoord4svFunPtr
+
+glMultiTexCoord4svFunPtr :: FunPtr (GLenum -> Ptr GLshort -> IO ())
+glMultiTexCoord4svFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord4sv")
+
+{-# NOINLINE glMultiTexCoord4svFunPtr #-}
+
+-- | Usage: @'glNewList' list mode@
+--
+-- The parameter @list@ is a @List@.
+--
+-- The parameter @mode@ is a @ListMode@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_COMPILE', 'Graphics.GL.Raw.Internal.Shared.GL_COMPILE_AND_EXECUTE'.
+
+
+glNewList :: MonadIO m => GLuint -> GLenum -> m ()
+glNewList = ffiuintenumIOV glNewListFunPtr
+
+glNewListFunPtr :: FunPtr (GLuint -> GLenum -> IO ())
+glNewListFunPtr = unsafePerformIO (getProcAddress "glNewList")
+
+{-# NOINLINE glNewListFunPtr #-}
+
+-- | Usage: @'glNormal3b' nx ny nz@
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glNormal3bv'.
+
+
+glNormal3b :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> m ()
+glNormal3b = ffibytebytebyteIOV glNormal3bFunPtr
+
+glNormal3bFunPtr :: FunPtr (GLbyte -> GLbyte -> GLbyte -> IO ())
+glNormal3bFunPtr = unsafePerformIO (getProcAddress "glNormal3b")
+
+{-# NOINLINE glNormal3bFunPtr #-}
+
+-- | Usage: @'glNormal3bv' v@
+--
+-- The length of @v@ should be @3@.
+
+
+glNormal3bv :: MonadIO m => Ptr GLbyte -> m ()
+glNormal3bv = ffiPtrbyteIOV glNormal3bvFunPtr
+
+glNormal3bvFunPtr :: FunPtr (Ptr GLbyte -> IO ())
+glNormal3bvFunPtr = unsafePerformIO (getProcAddress "glNormal3bv")
+
+{-# NOINLINE glNormal3bvFunPtr #-}
+
+-- | Usage: @'glNormal3d' nx ny nz@
+--
+-- The parameter @nx@ is a @CoordD@.
+--
+-- The parameter @ny@ is a @CoordD@.
+--
+-- The parameter @nz@ is a @CoordD@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glNormal3dv'.
+
+
+glNormal3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()
+glNormal3d = ffidoubledoubledoubleIOV glNormal3dFunPtr
+
+glNormal3dFunPtr :: FunPtr (GLdouble -> GLdouble -> GLdouble -> IO ())
+glNormal3dFunPtr = unsafePerformIO (getProcAddress "glNormal3d")
+
+{-# NOINLINE glNormal3dFunPtr #-}
+
+-- | Usage: @'glNormal3dv' v@
+--
+-- The parameter @v@ is a @CoordD@.
+--
+-- The length of @v@ should be @3@.
+
+
+glNormal3dv :: MonadIO m => Ptr GLdouble -> m ()
+glNormal3dv = ffiPtrdoubleIOV glNormal3dvFunPtr
+
+glNormal3dvFunPtr :: FunPtr (Ptr GLdouble -> IO ())
+glNormal3dvFunPtr = unsafePerformIO (getProcAddress "glNormal3dv")
+
+{-# NOINLINE glNormal3dvFunPtr #-}
+
+-- | Usage: @'glNormal3f' nx ny nz@
+--
+-- The parameter @nx@ is a @CoordF@.
+--
+-- The parameter @ny@ is a @CoordF@.
+--
+-- The parameter @nz@ is a @CoordF@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glNormal3fv'.
+
+
+glNormal3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()
+glNormal3f = ffifloatfloatfloatIOV glNormal3fFunPtr
+
+glNormal3fFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> IO ())
+glNormal3fFunPtr = unsafePerformIO (getProcAddress "glNormal3f")
+
+{-# NOINLINE glNormal3fFunPtr #-}
+
+-- | Usage: @'glNormal3fv' v@
+--
+-- The parameter @v@ is a @CoordF@.
+--
+-- The length of @v@ should be @3@.
+
+
+glNormal3fv :: MonadIO m => Ptr GLfloat -> m ()
+glNormal3fv = ffiPtrfloatIOV glNormal3fvFunPtr
+
+glNormal3fvFunPtr :: FunPtr (Ptr GLfloat -> IO ())
+glNormal3fvFunPtr = unsafePerformIO (getProcAddress "glNormal3fv")
+
+{-# NOINLINE glNormal3fvFunPtr #-}
+
+-- | Usage: @'glNormal3i' nx ny nz@
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glNormal3iv'.
+
+
+glNormal3i :: MonadIO m => GLint -> GLint -> GLint -> m ()
+glNormal3i = ffiintintintIOV glNormal3iFunPtr
+
+glNormal3iFunPtr :: FunPtr (GLint -> GLint -> GLint -> IO ())
+glNormal3iFunPtr = unsafePerformIO (getProcAddress "glNormal3i")
+
+{-# NOINLINE glNormal3iFunPtr #-}
+
+-- | Usage: @'glNormal3iv' v@
+--
+-- The length of @v@ should be @3@.
+
+
+glNormal3iv :: MonadIO m => Ptr GLint -> m ()
+glNormal3iv = ffiPtrintIOV glNormal3ivFunPtr
+
+glNormal3ivFunPtr :: FunPtr (Ptr GLint -> IO ())
+glNormal3ivFunPtr = unsafePerformIO (getProcAddress "glNormal3iv")
+
+{-# NOINLINE glNormal3ivFunPtr #-}
+
+-- | Usage: @'glNormal3s' nx ny nz@
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glNormal3sv'.
+
+
+glNormal3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()
+glNormal3s = ffishortshortshortIOV glNormal3sFunPtr
+
+glNormal3sFunPtr :: FunPtr (GLshort -> GLshort -> GLshort -> IO ())
+glNormal3sFunPtr = unsafePerformIO (getProcAddress "glNormal3s")
+
+{-# NOINLINE glNormal3sFunPtr #-}
+
+-- | Usage: @'glNormal3sv' v@
+--
+-- The length of @v@ should be @3@.
+
+
+glNormal3sv :: MonadIO m => Ptr GLshort -> m ()
+glNormal3sv = ffiPtrshortIOV glNormal3svFunPtr
+
+glNormal3svFunPtr :: FunPtr (Ptr GLshort -> IO ())
+glNormal3svFunPtr = unsafePerformIO (getProcAddress "glNormal3sv")
+
+{-# NOINLINE glNormal3svFunPtr #-}
+
+-- | Usage: @'glNormalPointer' type stride pointer@
+--
+-- The parameter @type@ is a @NormalPointerType@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_BYTE', 'Graphics.GL.Raw.Internal.Shared.GL_DOUBLE', 'Graphics.GL.Raw.Internal.Shared.GL_FLOAT', 'Graphics.GL.Raw.Internal.Shared.GL_INT', 'Graphics.GL.Raw.Internal.Shared.GL_SHORT'.
+--
+-- The length of @pointer@ should be @COMPSIZE(type,stride)@.
+
+
+glNormalPointer :: MonadIO m => GLenum -> GLsizei -> Ptr () -> m ()
+glNormalPointer = ffienumsizeiPtrVIOV glNormalPointerFunPtr
+
+glNormalPointerFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr () -> IO ())
+glNormalPointerFunPtr = unsafePerformIO (getProcAddress "glNormalPointer")
+
+{-# NOINLINE glNormalPointerFunPtr #-}
+
+-- | Usage: @'glOrtho' left right bottom top zNear zFar@
+
+
+glOrtho :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
+glOrtho = ffidoubledoubledoubledoubledoubledoubleIOV glOrthoFunPtr
+
+glOrthoFunPtr :: FunPtr (GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
+glOrthoFunPtr = unsafePerformIO (getProcAddress "glOrtho")
+
+{-# NOINLINE glOrthoFunPtr #-}
+
+-- | Usage: @'glPassThrough' token@
+--
+-- The parameter @token@ is a @FeedbackElement@.
+
+
+glPassThrough :: MonadIO m => GLfloat -> m ()
+glPassThrough = ffifloatIOV glPassThroughFunPtr
+
+glPassThroughFunPtr :: FunPtr (GLfloat -> IO ())
+glPassThroughFunPtr = unsafePerformIO (getProcAddress "glPassThrough")
+
+{-# NOINLINE glPassThroughFunPtr #-}
+
+-- | Usage: @'glPixelMapfv' map mapsize values@
+--
+-- The parameter @map@ is a @PixelMap@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_PIXEL_MAP_A_TO_A', 'Graphics.GL.Raw.Internal.Shared.GL_PIXEL_MAP_B_TO_B', 'Graphics.GL.Raw.Internal.Shared.GL_PIXEL_MAP_G_TO_G', 'Graphics.GL.Raw.Internal.Shared.GL_PIXEL_MAP_I_TO_A', 'Graphics.GL.Raw.Internal.Shared.GL_PIXEL_MAP_I_TO_B', 'Graphics.GL.Raw.Internal.Shared.GL_PIXEL_MAP_I_TO_G', 'Graphics.GL.Raw.Internal.Shared.GL_PIXEL_MAP_I_TO_I', 'Graphics.GL.Raw.Internal.Shared.GL_PIXEL_MAP_I_TO_R', 'Graphics.GL.Raw.Internal.Shared.GL_PIXEL_MAP_R_TO_R', 'Graphics.GL.Raw.Internal.Shared.GL_PIXEL_MAP_S_TO_S'.
+--
+-- The parameter @mapsize@ is a @CheckedInt32@.
+--
+-- The length of @values@ should be @mapsize@.
+
+
+glPixelMapfv :: MonadIO m => GLenum -> GLsizei -> Ptr GLfloat -> m ()
+glPixelMapfv = ffienumsizeiPtrfloatIOV glPixelMapfvFunPtr
+
+glPixelMapfvFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr GLfloat -> IO ())
+glPixelMapfvFunPtr = unsafePerformIO (getProcAddress "glPixelMapfv")
+
+{-# NOINLINE glPixelMapfvFunPtr #-}
+
+-- | Usage: @'glPixelMapuiv' map mapsize values@
+--
+-- The parameter @map@ is a @PixelMap@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_PIXEL_MAP_A_TO_A', 'Graphics.GL.Raw.Internal.Shared.GL_PIXEL_MAP_B_TO_B', 'Graphics.GL.Raw.Internal.Shared.GL_PIXEL_MAP_G_TO_G', 'Graphics.GL.Raw.Internal.Shared.GL_PIXEL_MAP_I_TO_A', 'Graphics.GL.Raw.Internal.Shared.GL_PIXEL_MAP_I_TO_B', 'Graphics.GL.Raw.Internal.Shared.GL_PIXEL_MAP_I_TO_G', 'Graphics.GL.Raw.Internal.Shared.GL_PIXEL_MAP_I_TO_I', 'Graphics.GL.Raw.Internal.Shared.GL_PIXEL_MAP_I_TO_R', 'Graphics.GL.Raw.Internal.Shared.GL_PIXEL_MAP_R_TO_R', 'Graphics.GL.Raw.Internal.Shared.GL_PIXEL_MAP_S_TO_S'.
+--
+-- The parameter @mapsize@ is a @CheckedInt32@.
+--
+-- The length of @values@ should be @mapsize@.
+
+
+glPixelMapuiv :: MonadIO m => GLenum -> GLsizei -> Ptr GLuint -> m ()
+glPixelMapuiv = ffienumsizeiPtruintIOV glPixelMapuivFunPtr
+
+glPixelMapuivFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr GLuint -> IO ())
+glPixelMapuivFunPtr = unsafePerformIO (getProcAddress "glPixelMapuiv")
+
+{-# NOINLINE glPixelMapuivFunPtr #-}
+
+-- | Usage: @'glPixelMapusv' map mapsize values@
+--
+-- The parameter @map@ is a @PixelMap@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_PIXEL_MAP_A_TO_A', 'Graphics.GL.Raw.Internal.Shared.GL_PIXEL_MAP_B_TO_B', 'Graphics.GL.Raw.Internal.Shared.GL_PIXEL_MAP_G_TO_G', 'Graphics.GL.Raw.Internal.Shared.GL_PIXEL_MAP_I_TO_A', 'Graphics.GL.Raw.Internal.Shared.GL_PIXEL_MAP_I_TO_B', 'Graphics.GL.Raw.Internal.Shared.GL_PIXEL_MAP_I_TO_G', 'Graphics.GL.Raw.Internal.Shared.GL_PIXEL_MAP_I_TO_I', 'Graphics.GL.Raw.Internal.Shared.GL_PIXEL_MAP_I_TO_R', 'Graphics.GL.Raw.Internal.Shared.GL_PIXEL_MAP_R_TO_R', 'Graphics.GL.Raw.Internal.Shared.GL_PIXEL_MAP_S_TO_S'.
+--
+-- The parameter @mapsize@ is a @CheckedInt32@.
+--
+-- The length of @values@ should be @mapsize@.
+
+
+glPixelMapusv :: MonadIO m => GLenum -> GLsizei -> Ptr GLushort -> m ()
+glPixelMapusv = ffienumsizeiPtrushortIOV glPixelMapusvFunPtr
+
+glPixelMapusvFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr GLushort -> IO ())
+glPixelMapusvFunPtr = unsafePerformIO (getProcAddress "glPixelMapusv")
+
+{-# NOINLINE glPixelMapusvFunPtr #-}
+
+-- | Usage: @'glPixelTransferf' pname param@
+--
+-- The parameter @pname@ is a @PixelTransferParameter@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_ALPHA_BIAS', 'Graphics.GL.Raw.Internal.Shared.GL_ALPHA_SCALE', 'Graphics.GL.Raw.Internal.Shared.GL_BLUE_BIAS', 'Graphics.GL.Raw.Internal.Shared.GL_BLUE_SCALE', 'Graphics.GL.Raw.Internal.Shared.GL_DEPTH_BIAS', 'Graphics.GL.Raw.Internal.Shared.GL_DEPTH_SCALE', 'Graphics.GL.Raw.Internal.Shared.GL_GREEN_BIAS', 'Graphics.GL.Raw.Internal.Shared.GL_GREEN_SCALE', 'Graphics.GL.Raw.Internal.Shared.GL_INDEX_OFFSET', 'Graphics.GL.Raw.Internal.Shared.GL_INDEX_SHIFT', 'Graphics.GL.Raw.Internal.Shared.GL_MAP_COLOR', 'Graphics.GL.Raw.Internal.Shared.GL_MAP_STENCIL', 'Graphics.GL.Raw.Extension.ARB.Imaging.GL_POST_COLOR_MATRIX_ALPHA_BIAS', 'Graphics.GL.Raw.Extension.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI', 'Graphics.GL.Raw.Extension.ARB.Imaging.GL_POST_COLOR_MATRIX_ALPHA_SCALE', 'Graphics.GL.Raw.Extension.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI', 'Graphics.GL.Raw.Extension.ARB.Imaging.GL_POST_COLOR_MATRIX_BLUE_BIAS', 'Graphics.GL.Raw.Extension.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI', 'Graphics.GL.Raw.Extension.ARB.Imaging.GL_POST_COLOR_MATRIX_BLUE_SCALE', 'Graphics.GL.Raw.Extension.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI', 'Graphics.GL.Raw.Extension.ARB.Imaging.GL_POST_COLOR_MATRIX_GREEN_BIAS', 'Graphics.GL.Raw.Extension.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI', 'Graphics.GL.Raw.Extension.ARB.Imaging.GL_POST_COLOR_MATRIX_GREEN_SCALE', 'Graphics.GL.Raw.Extension.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI', 'Graphics.GL.Raw.Extension.ARB.Imaging.GL_POST_COLOR_MATRIX_RED_BIAS', 'Graphics.GL.Raw.Extension.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_RED_BIAS_SGI', 'Graphics.GL.Raw.Extension.ARB.Imaging.GL_POST_COLOR_MATRIX_RED_SCALE', 'Graphics.GL.Raw.Extension.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_RED_SCALE_SGI', 'Graphics.GL.Raw.Extension.ARB.Imaging.GL_POST_CONVOLUTION_ALPHA_BIAS', 'Graphics.GL.Raw.Extension.EXT.Convolution.GL_POST_CONVOLUTION_ALPHA_BIAS_EXT', 'Graphics.GL.Raw.Extension.ARB.Imaging.GL_POST_CONVOLUTION_ALPHA_SCALE', 'Graphics.GL.Raw.Extension.EXT.Convolution.GL_POST_CONVOLUTION_ALPHA_SCALE_EXT', 'Graphics.GL.Raw.Extension.ARB.Imaging.GL_POST_CONVOLUTION_BLUE_BIAS', 'Graphics.GL.Raw.Extension.EXT.Convolution.GL_POST_CONVOLUTION_BLUE_BIAS_EXT', 'Graphics.GL.Raw.Extension.ARB.Imaging.GL_POST_CONVOLUTION_BLUE_SCALE', 'Graphics.GL.Raw.Extension.EXT.Convolution.GL_POST_CONVOLUTION_BLUE_SCALE_EXT', 'Graphics.GL.Raw.Extension.ARB.Imaging.GL_POST_CONVOLUTION_GREEN_BIAS', 'Graphics.GL.Raw.Extension.EXT.Convolution.GL_POST_CONVOLUTION_GREEN_BIAS_EXT', 'Graphics.GL.Raw.Extension.ARB.Imaging.GL_POST_CONVOLUTION_GREEN_SCALE', 'Graphics.GL.Raw.Extension.EXT.Convolution.GL_POST_CONVOLUTION_GREEN_SCALE_EXT', 'Graphics.GL.Raw.Extension.ARB.Imaging.GL_POST_CONVOLUTION_RED_BIAS', 'Graphics.GL.Raw.Extension.EXT.Convolution.GL_POST_CONVOLUTION_RED_BIAS_EXT', 'Graphics.GL.Raw.Extension.ARB.Imaging.GL_POST_CONVOLUTION_RED_SCALE', 'Graphics.GL.Raw.Extension.EXT.Convolution.GL_POST_CONVOLUTION_RED_SCALE_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_RED_BIAS', 'Graphics.GL.Raw.Internal.Shared.GL_RED_SCALE'.
+--
+-- The parameter @param@ is a @CheckedFloat32@.
+
+
+glPixelTransferf :: MonadIO m => GLenum -> GLfloat -> m ()
+glPixelTransferf = ffienumfloatIOV glPixelTransferfFunPtr
+
+glPixelTransferfFunPtr :: FunPtr (GLenum -> GLfloat -> IO ())
+glPixelTransferfFunPtr = unsafePerformIO (getProcAddress "glPixelTransferf")
+
+{-# NOINLINE glPixelTransferfFunPtr #-}
+
+-- | Usage: @'glPixelTransferi' pname param@
+--
+-- The parameter @pname@ is a @PixelTransferParameter@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_ALPHA_BIAS', 'Graphics.GL.Raw.Internal.Shared.GL_ALPHA_SCALE', 'Graphics.GL.Raw.Internal.Shared.GL_BLUE_BIAS', 'Graphics.GL.Raw.Internal.Shared.GL_BLUE_SCALE', 'Graphics.GL.Raw.Internal.Shared.GL_DEPTH_BIAS', 'Graphics.GL.Raw.Internal.Shared.GL_DEPTH_SCALE', 'Graphics.GL.Raw.Internal.Shared.GL_GREEN_BIAS', 'Graphics.GL.Raw.Internal.Shared.GL_GREEN_SCALE', 'Graphics.GL.Raw.Internal.Shared.GL_INDEX_OFFSET', 'Graphics.GL.Raw.Internal.Shared.GL_INDEX_SHIFT', 'Graphics.GL.Raw.Internal.Shared.GL_MAP_COLOR', 'Graphics.GL.Raw.Internal.Shared.GL_MAP_STENCIL', 'Graphics.GL.Raw.Extension.ARB.Imaging.GL_POST_COLOR_MATRIX_ALPHA_BIAS', 'Graphics.GL.Raw.Extension.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI', 'Graphics.GL.Raw.Extension.ARB.Imaging.GL_POST_COLOR_MATRIX_ALPHA_SCALE', 'Graphics.GL.Raw.Extension.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI', 'Graphics.GL.Raw.Extension.ARB.Imaging.GL_POST_COLOR_MATRIX_BLUE_BIAS', 'Graphics.GL.Raw.Extension.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI', 'Graphics.GL.Raw.Extension.ARB.Imaging.GL_POST_COLOR_MATRIX_BLUE_SCALE', 'Graphics.GL.Raw.Extension.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI', 'Graphics.GL.Raw.Extension.ARB.Imaging.GL_POST_COLOR_MATRIX_GREEN_BIAS', 'Graphics.GL.Raw.Extension.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI', 'Graphics.GL.Raw.Extension.ARB.Imaging.GL_POST_COLOR_MATRIX_GREEN_SCALE', 'Graphics.GL.Raw.Extension.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI', 'Graphics.GL.Raw.Extension.ARB.Imaging.GL_POST_COLOR_MATRIX_RED_BIAS', 'Graphics.GL.Raw.Extension.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_RED_BIAS_SGI', 'Graphics.GL.Raw.Extension.ARB.Imaging.GL_POST_COLOR_MATRIX_RED_SCALE', 'Graphics.GL.Raw.Extension.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_RED_SCALE_SGI', 'Graphics.GL.Raw.Extension.ARB.Imaging.GL_POST_CONVOLUTION_ALPHA_BIAS', 'Graphics.GL.Raw.Extension.EXT.Convolution.GL_POST_CONVOLUTION_ALPHA_BIAS_EXT', 'Graphics.GL.Raw.Extension.ARB.Imaging.GL_POST_CONVOLUTION_ALPHA_SCALE', 'Graphics.GL.Raw.Extension.EXT.Convolution.GL_POST_CONVOLUTION_ALPHA_SCALE_EXT', 'Graphics.GL.Raw.Extension.ARB.Imaging.GL_POST_CONVOLUTION_BLUE_BIAS', 'Graphics.GL.Raw.Extension.EXT.Convolution.GL_POST_CONVOLUTION_BLUE_BIAS_EXT', 'Graphics.GL.Raw.Extension.ARB.Imaging.GL_POST_CONVOLUTION_BLUE_SCALE', 'Graphics.GL.Raw.Extension.EXT.Convolution.GL_POST_CONVOLUTION_BLUE_SCALE_EXT', 'Graphics.GL.Raw.Extension.ARB.Imaging.GL_POST_CONVOLUTION_GREEN_BIAS', 'Graphics.GL.Raw.Extension.EXT.Convolution.GL_POST_CONVOLUTION_GREEN_BIAS_EXT', 'Graphics.GL.Raw.Extension.ARB.Imaging.GL_POST_CONVOLUTION_GREEN_SCALE', 'Graphics.GL.Raw.Extension.EXT.Convolution.GL_POST_CONVOLUTION_GREEN_SCALE_EXT', 'Graphics.GL.Raw.Extension.ARB.Imaging.GL_POST_CONVOLUTION_RED_BIAS', 'Graphics.GL.Raw.Extension.EXT.Convolution.GL_POST_CONVOLUTION_RED_BIAS_EXT', 'Graphics.GL.Raw.Extension.ARB.Imaging.GL_POST_CONVOLUTION_RED_SCALE', 'Graphics.GL.Raw.Extension.EXT.Convolution.GL_POST_CONVOLUTION_RED_SCALE_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_RED_BIAS', 'Graphics.GL.Raw.Internal.Shared.GL_RED_SCALE'.
+--
+-- The parameter @param@ is a @CheckedInt32@.
+
+
+glPixelTransferi :: MonadIO m => GLenum -> GLint -> m ()
+glPixelTransferi = ffienumintIOV glPixelTransferiFunPtr
+
+glPixelTransferiFunPtr :: FunPtr (GLenum -> GLint -> IO ())
+glPixelTransferiFunPtr = unsafePerformIO (getProcAddress "glPixelTransferi")
+
+{-# NOINLINE glPixelTransferiFunPtr #-}
+
+-- | Usage: @'glPixelZoom' xfactor yfactor@
+
+
+glPixelZoom :: MonadIO m => GLfloat -> GLfloat -> m ()
+glPixelZoom = ffifloatfloatIOV glPixelZoomFunPtr
+
+glPixelZoomFunPtr :: FunPtr (GLfloat -> GLfloat -> IO ())
+glPixelZoomFunPtr = unsafePerformIO (getProcAddress "glPixelZoom")
+
+{-# NOINLINE glPixelZoomFunPtr #-}
+
+-- | Usage: @'glPolygonStipple' mask@
+--
+-- The length of @mask@ should be @COMPSIZE()@.
+
+
+glPolygonStipple :: MonadIO m => Ptr GLubyte -> m ()
+glPolygonStipple = ffiPtrubyteIOV glPolygonStippleFunPtr
+
+glPolygonStippleFunPtr :: FunPtr (Ptr GLubyte -> IO ())
+glPolygonStippleFunPtr = unsafePerformIO (getProcAddress "glPolygonStipple")
+
+{-# NOINLINE glPolygonStippleFunPtr #-}
+
+-- | Usage: @'glPopAttrib'@
+
+
+glPopAttrib :: MonadIO m => m ()
+glPopAttrib = ffiIOV glPopAttribFunPtr
+
+glPopAttribFunPtr :: FunPtr (IO ())
+glPopAttribFunPtr = unsafePerformIO (getProcAddress "glPopAttrib")
+
+{-# NOINLINE glPopAttribFunPtr #-}
+
+-- | Usage: @'glPopClientAttrib'@
+
+
+glPopClientAttrib :: MonadIO m => m ()
+glPopClientAttrib = ffiIOV glPopClientAttribFunPtr
+
+glPopClientAttribFunPtr :: FunPtr (IO ())
+glPopClientAttribFunPtr = unsafePerformIO (getProcAddress "glPopClientAttrib")
+
+{-# NOINLINE glPopClientAttribFunPtr #-}
+
+-- | Usage: @'glPopMatrix'@
+
+
+glPopMatrix :: MonadIO m => m ()
+glPopMatrix = ffiIOV glPopMatrixFunPtr
+
+glPopMatrixFunPtr :: FunPtr (IO ())
+glPopMatrixFunPtr = unsafePerformIO (getProcAddress "glPopMatrix")
+
+{-# NOINLINE glPopMatrixFunPtr #-}
+
+-- | Usage: @'glPopName'@
+
+
+glPopName :: MonadIO m => m ()
+glPopName = ffiIOV glPopNameFunPtr
+
+glPopNameFunPtr :: FunPtr (IO ())
+glPopNameFunPtr = unsafePerformIO (getProcAddress "glPopName")
+
+{-# NOINLINE glPopNameFunPtr #-}
+
+-- | Usage: @'glPrioritizeTextures' n textures priorities@
+--
+-- The parameter @textures@ is a @Texture@.
+--
+-- The length of @textures@ should be @n@.
+--
+-- The length of @priorities@ should be @n@.
+
+
+glPrioritizeTextures :: MonadIO m => GLsizei -> Ptr GLuint -> Ptr GLfloat -> m ()
+glPrioritizeTextures = ffisizeiPtruintPtrfloatIOV glPrioritizeTexturesFunPtr
+
+glPrioritizeTexturesFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> Ptr GLfloat -> IO ())
+glPrioritizeTexturesFunPtr = unsafePerformIO (getProcAddress "glPrioritizeTextures")
+
+{-# NOINLINE glPrioritizeTexturesFunPtr #-}
+
+-- | Usage: @'glPushAttrib' mask@
+--
+-- The parameter @mask@ is a @AttribMask@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_ACCUM_BUFFER_BIT', 'Graphics.GL.Raw.Internal.Shared.GL_ALL_ATTRIB_BITS', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_BUFFER_BIT', 'Graphics.GL.Raw.Internal.Shared.GL_CURRENT_BIT', 'Graphics.GL.Raw.Internal.Shared.GL_DEPTH_BUFFER_BIT', 'Graphics.GL.Raw.Internal.Shared.GL_ENABLE_BIT', 'Graphics.GL.Raw.Internal.Shared.GL_EVAL_BIT', 'Graphics.GL.Raw.Internal.Shared.GL_FOG_BIT', 'Graphics.GL.Raw.Internal.Shared.GL_HINT_BIT', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHTING_BIT', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_BIT', 'Graphics.GL.Raw.Internal.Shared.GL_LIST_BIT', 'Graphics.GL.Raw.Internal.Shared.GL_MULTISAMPLE_BIT', 'Graphics.GL.Raw.Extension.ThreeDFX.Multisample.GL_MULTISAMPLE_BIT_3DFX', 'Graphics.GL.Raw.Extension.ARB.Multisample.GL_MULTISAMPLE_BIT_ARB', 'Graphics.GL.Raw.Extension.EXT.Multisample.GL_MULTISAMPLE_BIT_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PIXEL_MODE_BIT', 'Graphics.GL.Raw.Internal.Shared.GL_POINT_BIT', 'Graphics.GL.Raw.Internal.Shared.GL_POLYGON_BIT', 'Graphics.GL.Raw.Internal.Shared.GL_POLYGON_STIPPLE_BIT', 'Graphics.GL.Raw.Internal.Shared.GL_SCISSOR_BIT', 'Graphics.GL.Raw.Internal.Shared.GL_STENCIL_BUFFER_BIT', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BIT', 'Graphics.GL.Raw.Internal.Shared.GL_TRANSFORM_BIT', 'Graphics.GL.Raw.Internal.Shared.GL_VIEWPORT_BIT'.
+
+
+glPushAttrib :: MonadIO m => GLbitfield -> m ()
+glPushAttrib = ffibitfieldIOV glPushAttribFunPtr
+
+glPushAttribFunPtr :: FunPtr (GLbitfield -> IO ())
+glPushAttribFunPtr = unsafePerformIO (getProcAddress "glPushAttrib")
+
+{-# NOINLINE glPushAttribFunPtr #-}
+
+-- | Usage: @'glPushClientAttrib' mask@
+--
+-- The parameter @mask@ is a @ClientAttribMask@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_CLIENT_ALL_ATTRIB_BITS', 'Graphics.GL.Raw.Internal.Shared.GL_CLIENT_PIXEL_STORE_BIT', 'Graphics.GL.Raw.Internal.Shared.GL_CLIENT_VERTEX_ARRAY_BIT'.
+
+
+glPushClientAttrib :: MonadIO m => GLbitfield -> m ()
+glPushClientAttrib = ffibitfieldIOV glPushClientAttribFunPtr
+
+glPushClientAttribFunPtr :: FunPtr (GLbitfield -> IO ())
+glPushClientAttribFunPtr = unsafePerformIO (getProcAddress "glPushClientAttrib")
+
+{-# NOINLINE glPushClientAttribFunPtr #-}
+
+-- | Usage: @'glPushMatrix'@
+
+
+glPushMatrix :: MonadIO m => m ()
+glPushMatrix = ffiIOV glPushMatrixFunPtr
+
+glPushMatrixFunPtr :: FunPtr (IO ())
+glPushMatrixFunPtr = unsafePerformIO (getProcAddress "glPushMatrix")
+
+{-# NOINLINE glPushMatrixFunPtr #-}
+
+-- | Usage: @'glPushName' name@
+--
+-- The parameter @name@ is a @SelectName@.
+
+
+glPushName :: MonadIO m => GLuint -> m ()
+glPushName = ffiuintIOV glPushNameFunPtr
+
+glPushNameFunPtr :: FunPtr (GLuint -> IO ())
+glPushNameFunPtr = unsafePerformIO (getProcAddress "glPushName")
+
+{-# NOINLINE glPushNameFunPtr #-}
+
+-- | Usage: @'glRasterPos2d' x y@
+--
+-- The parameter @x@ is a @CoordD@.
+--
+-- The parameter @y@ is a @CoordD@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glRasterPos2dv'.
+
+
+glRasterPos2d :: MonadIO m => GLdouble -> GLdouble -> m ()
+glRasterPos2d = ffidoubledoubleIOV glRasterPos2dFunPtr
+
+glRasterPos2dFunPtr :: FunPtr (GLdouble -> GLdouble -> IO ())
+glRasterPos2dFunPtr = unsafePerformIO (getProcAddress "glRasterPos2d")
+
+{-# NOINLINE glRasterPos2dFunPtr #-}
+
+-- | Usage: @'glRasterPos2dv' v@
+--
+-- The parameter @v@ is a @CoordD@.
+--
+-- The length of @v@ should be @2@.
+
+
+glRasterPos2dv :: MonadIO m => Ptr GLdouble -> m ()
+glRasterPos2dv = ffiPtrdoubleIOV glRasterPos2dvFunPtr
+
+glRasterPos2dvFunPtr :: FunPtr (Ptr GLdouble -> IO ())
+glRasterPos2dvFunPtr = unsafePerformIO (getProcAddress "glRasterPos2dv")
+
+{-# NOINLINE glRasterPos2dvFunPtr #-}
+
+-- | Usage: @'glRasterPos2f' x y@
+--
+-- The parameter @x@ is a @CoordF@.
+--
+-- The parameter @y@ is a @CoordF@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glRasterPos2fv'.
+
+
+glRasterPos2f :: MonadIO m => GLfloat -> GLfloat -> m ()
+glRasterPos2f = ffifloatfloatIOV glRasterPos2fFunPtr
+
+glRasterPos2fFunPtr :: FunPtr (GLfloat -> GLfloat -> IO ())
+glRasterPos2fFunPtr = unsafePerformIO (getProcAddress "glRasterPos2f")
+
+{-# NOINLINE glRasterPos2fFunPtr #-}
+
+-- | Usage: @'glRasterPos2fv' v@
+--
+-- The parameter @v@ is a @CoordF@.
+--
+-- The length of @v@ should be @2@.
+
+
+glRasterPos2fv :: MonadIO m => Ptr GLfloat -> m ()
+glRasterPos2fv = ffiPtrfloatIOV glRasterPos2fvFunPtr
+
+glRasterPos2fvFunPtr :: FunPtr (Ptr GLfloat -> IO ())
+glRasterPos2fvFunPtr = unsafePerformIO (getProcAddress "glRasterPos2fv")
+
+{-# NOINLINE glRasterPos2fvFunPtr #-}
+
+-- | Usage: @'glRasterPos2i' x y@
+--
+-- The parameter @x@ is a @CoordI@.
+--
+-- The parameter @y@ is a @CoordI@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glRasterPos2iv'.
+
+
+glRasterPos2i :: MonadIO m => GLint -> GLint -> m ()
+glRasterPos2i = ffiintintIOV glRasterPos2iFunPtr
+
+glRasterPos2iFunPtr :: FunPtr (GLint -> GLint -> IO ())
+glRasterPos2iFunPtr = unsafePerformIO (getProcAddress "glRasterPos2i")
+
+{-# NOINLINE glRasterPos2iFunPtr #-}
+
+-- | Usage: @'glRasterPos2iv' v@
+--
+-- The parameter @v@ is a @CoordI@.
+--
+-- The length of @v@ should be @2@.
+
+
+glRasterPos2iv :: MonadIO m => Ptr GLint -> m ()
+glRasterPos2iv = ffiPtrintIOV glRasterPos2ivFunPtr
+
+glRasterPos2ivFunPtr :: FunPtr (Ptr GLint -> IO ())
+glRasterPos2ivFunPtr = unsafePerformIO (getProcAddress "glRasterPos2iv")
+
+{-# NOINLINE glRasterPos2ivFunPtr #-}
+
+-- | Usage: @'glRasterPos2s' x y@
+--
+-- The parameter @x@ is a @CoordS@.
+--
+-- The parameter @y@ is a @CoordS@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glRasterPos2sv'.
+
+
+glRasterPos2s :: MonadIO m => GLshort -> GLshort -> m ()
+glRasterPos2s = ffishortshortIOV glRasterPos2sFunPtr
+
+glRasterPos2sFunPtr :: FunPtr (GLshort -> GLshort -> IO ())
+glRasterPos2sFunPtr = unsafePerformIO (getProcAddress "glRasterPos2s")
+
+{-# NOINLINE glRasterPos2sFunPtr #-}
+
+-- | Usage: @'glRasterPos2sv' v@
+--
+-- The parameter @v@ is a @CoordS@.
+--
+-- The length of @v@ should be @2@.
+
+
+glRasterPos2sv :: MonadIO m => Ptr GLshort -> m ()
+glRasterPos2sv = ffiPtrshortIOV glRasterPos2svFunPtr
+
+glRasterPos2svFunPtr :: FunPtr (Ptr GLshort -> IO ())
+glRasterPos2svFunPtr = unsafePerformIO (getProcAddress "glRasterPos2sv")
+
+{-# NOINLINE glRasterPos2svFunPtr #-}
+
+-- | Usage: @'glRasterPos3d' x y z@
+--
+-- The parameter @x@ is a @CoordD@.
+--
+-- The parameter @y@ is a @CoordD@.
+--
+-- The parameter @z@ is a @CoordD@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glRasterPos3dv'.
+
+
+glRasterPos3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()
+glRasterPos3d = ffidoubledoubledoubleIOV glRasterPos3dFunPtr
+
+glRasterPos3dFunPtr :: FunPtr (GLdouble -> GLdouble -> GLdouble -> IO ())
+glRasterPos3dFunPtr = unsafePerformIO (getProcAddress "glRasterPos3d")
+
+{-# NOINLINE glRasterPos3dFunPtr #-}
+
+-- | Usage: @'glRasterPos3dv' v@
+--
+-- The parameter @v@ is a @CoordD@.
+--
+-- The length of @v@ should be @3@.
+
+
+glRasterPos3dv :: MonadIO m => Ptr GLdouble -> m ()
+glRasterPos3dv = ffiPtrdoubleIOV glRasterPos3dvFunPtr
+
+glRasterPos3dvFunPtr :: FunPtr (Ptr GLdouble -> IO ())
+glRasterPos3dvFunPtr = unsafePerformIO (getProcAddress "glRasterPos3dv")
+
+{-# NOINLINE glRasterPos3dvFunPtr #-}
+
+-- | Usage: @'glRasterPos3f' x y z@
+--
+-- The parameter @x@ is a @CoordF@.
+--
+-- The parameter @y@ is a @CoordF@.
+--
+-- The parameter @z@ is a @CoordF@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glRasterPos3fv'.
+
+
+glRasterPos3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()
+glRasterPos3f = ffifloatfloatfloatIOV glRasterPos3fFunPtr
+
+glRasterPos3fFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> IO ())
+glRasterPos3fFunPtr = unsafePerformIO (getProcAddress "glRasterPos3f")
+
+{-# NOINLINE glRasterPos3fFunPtr #-}
+
+-- | Usage: @'glRasterPos3fv' v@
+--
+-- The parameter @v@ is a @CoordF@.
+--
+-- The length of @v@ should be @3@.
+
+
+glRasterPos3fv :: MonadIO m => Ptr GLfloat -> m ()
+glRasterPos3fv = ffiPtrfloatIOV glRasterPos3fvFunPtr
+
+glRasterPos3fvFunPtr :: FunPtr (Ptr GLfloat -> IO ())
+glRasterPos3fvFunPtr = unsafePerformIO (getProcAddress "glRasterPos3fv")
+
+{-# NOINLINE glRasterPos3fvFunPtr #-}
+
+-- | Usage: @'glRasterPos3i' x y z@
+--
+-- The parameter @x@ is a @CoordI@.
+--
+-- The parameter @y@ is a @CoordI@.
+--
+-- The parameter @z@ is a @CoordI@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glRasterPos3iv'.
+
+
+glRasterPos3i :: MonadIO m => GLint -> GLint -> GLint -> m ()
+glRasterPos3i = ffiintintintIOV glRasterPos3iFunPtr
+
+glRasterPos3iFunPtr :: FunPtr (GLint -> GLint -> GLint -> IO ())
+glRasterPos3iFunPtr = unsafePerformIO (getProcAddress "glRasterPos3i")
+
+{-# NOINLINE glRasterPos3iFunPtr #-}
+
+-- | Usage: @'glRasterPos3iv' v@
+--
+-- The parameter @v@ is a @CoordI@.
+--
+-- The length of @v@ should be @3@.
+
+
+glRasterPos3iv :: MonadIO m => Ptr GLint -> m ()
+glRasterPos3iv = ffiPtrintIOV glRasterPos3ivFunPtr
+
+glRasterPos3ivFunPtr :: FunPtr (Ptr GLint -> IO ())
+glRasterPos3ivFunPtr = unsafePerformIO (getProcAddress "glRasterPos3iv")
+
+{-# NOINLINE glRasterPos3ivFunPtr #-}
+
+-- | Usage: @'glRasterPos3s' x y z@
+--
+-- The parameter @x@ is a @CoordS@.
+--
+-- The parameter @y@ is a @CoordS@.
+--
+-- The parameter @z@ is a @CoordS@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glRasterPos3sv'.
+
+
+glRasterPos3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()
+glRasterPos3s = ffishortshortshortIOV glRasterPos3sFunPtr
+
+glRasterPos3sFunPtr :: FunPtr (GLshort -> GLshort -> GLshort -> IO ())
+glRasterPos3sFunPtr = unsafePerformIO (getProcAddress "glRasterPos3s")
+
+{-# NOINLINE glRasterPos3sFunPtr #-}
+
+-- | Usage: @'glRasterPos3sv' v@
+--
+-- The parameter @v@ is a @CoordS@.
+--
+-- The length of @v@ should be @3@.
+
+
+glRasterPos3sv :: MonadIO m => Ptr GLshort -> m ()
+glRasterPos3sv = ffiPtrshortIOV glRasterPos3svFunPtr
+
+glRasterPos3svFunPtr :: FunPtr (Ptr GLshort -> IO ())
+glRasterPos3svFunPtr = unsafePerformIO (getProcAddress "glRasterPos3sv")
+
+{-# NOINLINE glRasterPos3svFunPtr #-}
+
+-- | Usage: @'glRasterPos4d' x y z w@
+--
+-- The parameter @x@ is a @CoordD@.
+--
+-- The parameter @y@ is a @CoordD@.
+--
+-- The parameter @z@ is a @CoordD@.
+--
+-- The parameter @w@ is a @CoordD@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glRasterPos4dv'.
+
+
+glRasterPos4d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
+glRasterPos4d = ffidoubledoubledoubledoubleIOV glRasterPos4dFunPtr
+
+glRasterPos4dFunPtr :: FunPtr (GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
+glRasterPos4dFunPtr = unsafePerformIO (getProcAddress "glRasterPos4d")
+
+{-# NOINLINE glRasterPos4dFunPtr #-}
+
+-- | Usage: @'glRasterPos4dv' v@
+--
+-- The parameter @v@ is a @CoordD@.
+--
+-- The length of @v@ should be @4@.
+
+
+glRasterPos4dv :: MonadIO m => Ptr GLdouble -> m ()
+glRasterPos4dv = ffiPtrdoubleIOV glRasterPos4dvFunPtr
+
+glRasterPos4dvFunPtr :: FunPtr (Ptr GLdouble -> IO ())
+glRasterPos4dvFunPtr = unsafePerformIO (getProcAddress "glRasterPos4dv")
+
+{-# NOINLINE glRasterPos4dvFunPtr #-}
+
+-- | Usage: @'glRasterPos4f' x y z w@
+--
+-- The parameter @x@ is a @CoordF@.
+--
+-- The parameter @y@ is a @CoordF@.
+--
+-- The parameter @z@ is a @CoordF@.
+--
+-- The parameter @w@ is a @CoordF@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glRasterPos4fv'.
+
+
+glRasterPos4f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
+glRasterPos4f = ffifloatfloatfloatfloatIOV glRasterPos4fFunPtr
+
+glRasterPos4fFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+glRasterPos4fFunPtr = unsafePerformIO (getProcAddress "glRasterPos4f")
+
+{-# NOINLINE glRasterPos4fFunPtr #-}
+
+-- | Usage: @'glRasterPos4fv' v@
+--
+-- The parameter @v@ is a @CoordF@.
+--
+-- The length of @v@ should be @4@.
+
+
+glRasterPos4fv :: MonadIO m => Ptr GLfloat -> m ()
+glRasterPos4fv = ffiPtrfloatIOV glRasterPos4fvFunPtr
+
+glRasterPos4fvFunPtr :: FunPtr (Ptr GLfloat -> IO ())
+glRasterPos4fvFunPtr = unsafePerformIO (getProcAddress "glRasterPos4fv")
+
+{-# NOINLINE glRasterPos4fvFunPtr #-}
+
+-- | Usage: @'glRasterPos4i' x y z w@
+--
+-- The parameter @x@ is a @CoordI@.
+--
+-- The parameter @y@ is a @CoordI@.
+--
+-- The parameter @z@ is a @CoordI@.
+--
+-- The parameter @w@ is a @CoordI@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glRasterPos4iv'.
+
+
+glRasterPos4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()
+glRasterPos4i = ffiintintintintIOV glRasterPos4iFunPtr
+
+glRasterPos4iFunPtr :: FunPtr (GLint -> GLint -> GLint -> GLint -> IO ())
+glRasterPos4iFunPtr = unsafePerformIO (getProcAddress "glRasterPos4i")
+
+{-# NOINLINE glRasterPos4iFunPtr #-}
+
+-- | Usage: @'glRasterPos4iv' v@
+--
+-- The parameter @v@ is a @CoordI@.
+--
+-- The length of @v@ should be @4@.
+
+
+glRasterPos4iv :: MonadIO m => Ptr GLint -> m ()
+glRasterPos4iv = ffiPtrintIOV glRasterPos4ivFunPtr
+
+glRasterPos4ivFunPtr :: FunPtr (Ptr GLint -> IO ())
+glRasterPos4ivFunPtr = unsafePerformIO (getProcAddress "glRasterPos4iv")
+
+{-# NOINLINE glRasterPos4ivFunPtr #-}
+
+-- | Usage: @'glRasterPos4s' x y z w@
+--
+-- The parameter @x@ is a @CoordS@.
+--
+-- The parameter @y@ is a @CoordS@.
+--
+-- The parameter @z@ is a @CoordS@.
+--
+-- The parameter @w@ is a @CoordS@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glRasterPos4sv'.
+
+
+glRasterPos4s :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()
+glRasterPos4s = ffishortshortshortshortIOV glRasterPos4sFunPtr
+
+glRasterPos4sFunPtr :: FunPtr (GLshort -> GLshort -> GLshort -> GLshort -> IO ())
+glRasterPos4sFunPtr = unsafePerformIO (getProcAddress "glRasterPos4s")
+
+{-# NOINLINE glRasterPos4sFunPtr #-}
+
+-- | Usage: @'glRasterPos4sv' v@
+--
+-- The parameter @v@ is a @CoordS@.
+--
+-- The length of @v@ should be @4@.
+
+
+glRasterPos4sv :: MonadIO m => Ptr GLshort -> m ()
+glRasterPos4sv = ffiPtrshortIOV glRasterPos4svFunPtr
+
+glRasterPos4svFunPtr :: FunPtr (Ptr GLshort -> IO ())
+glRasterPos4svFunPtr = unsafePerformIO (getProcAddress "glRasterPos4sv")
+
+{-# NOINLINE glRasterPos4svFunPtr #-}
+
+-- | Usage: @'glRectd' x1 y1 x2 y2@
+--
+-- The parameter @x1@ is a @CoordD@.
+--
+-- The parameter @y1@ is a @CoordD@.
+--
+-- The parameter @x2@ is a @CoordD@.
+--
+-- The parameter @y2@ is a @CoordD@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glRectdv'.
+
+
+glRectd :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
+glRectd = ffidoubledoubledoubledoubleIOV glRectdFunPtr
+
+glRectdFunPtr :: FunPtr (GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
+glRectdFunPtr = unsafePerformIO (getProcAddress "glRectd")
+
+{-# NOINLINE glRectdFunPtr #-}
+
+-- | Usage: @'glRectdv' v1 v2@
+--
+-- The parameter @v1@ is a @CoordD@.
+--
+-- The parameter @v2@ is a @CoordD@.
+--
+-- The length of @v1@ should be @2@.
+--
+-- The length of @v2@ should be @2@.
+
+
+glRectdv :: MonadIO m => Ptr GLdouble -> Ptr GLdouble -> m ()
+glRectdv = ffiPtrdoublePtrdoubleIOV glRectdvFunPtr
+
+glRectdvFunPtr :: FunPtr (Ptr GLdouble -> Ptr GLdouble -> IO ())
+glRectdvFunPtr = unsafePerformIO (getProcAddress "glRectdv")
+
+{-# NOINLINE glRectdvFunPtr #-}
+
+-- | Usage: @'glRectf' x1 y1 x2 y2@
+--
+-- The parameter @x1@ is a @CoordF@.
+--
+-- The parameter @y1@ is a @CoordF@.
+--
+-- The parameter @x2@ is a @CoordF@.
+--
+-- The parameter @y2@ is a @CoordF@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glRectfv'.
+
+
+glRectf :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
+glRectf = ffifloatfloatfloatfloatIOV glRectfFunPtr
+
+glRectfFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+glRectfFunPtr = unsafePerformIO (getProcAddress "glRectf")
+
+{-# NOINLINE glRectfFunPtr #-}
+
+-- | Usage: @'glRectfv' v1 v2@
+--
+-- The parameter @v1@ is a @CoordF@.
+--
+-- The parameter @v2@ is a @CoordF@.
+--
+-- The length of @v1@ should be @2@.
+--
+-- The length of @v2@ should be @2@.
+
+
+glRectfv :: MonadIO m => Ptr GLfloat -> Ptr GLfloat -> m ()
+glRectfv = ffiPtrfloatPtrfloatIOV glRectfvFunPtr
+
+glRectfvFunPtr :: FunPtr (Ptr GLfloat -> Ptr GLfloat -> IO ())
+glRectfvFunPtr = unsafePerformIO (getProcAddress "glRectfv")
+
+{-# NOINLINE glRectfvFunPtr #-}
+
+-- | Usage: @'glRecti' x1 y1 x2 y2@
+--
+-- The parameter @x1@ is a @CoordI@.
+--
+-- The parameter @y1@ is a @CoordI@.
+--
+-- The parameter @x2@ is a @CoordI@.
+--
+-- The parameter @y2@ is a @CoordI@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glRectiv'.
+
+
+glRecti :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()
+glRecti = ffiintintintintIOV glRectiFunPtr
+
+glRectiFunPtr :: FunPtr (GLint -> GLint -> GLint -> GLint -> IO ())
+glRectiFunPtr = unsafePerformIO (getProcAddress "glRecti")
+
+{-# NOINLINE glRectiFunPtr #-}
+
+-- | Usage: @'glRectiv' v1 v2@
+--
+-- The parameter @v1@ is a @CoordI@.
+--
+-- The parameter @v2@ is a @CoordI@.
+--
+-- The length of @v1@ should be @2@.
+--
+-- The length of @v2@ should be @2@.
+
+
+glRectiv :: MonadIO m => Ptr GLint -> Ptr GLint -> m ()
+glRectiv = ffiPtrintPtrintIOV glRectivFunPtr
+
+glRectivFunPtr :: FunPtr (Ptr GLint -> Ptr GLint -> IO ())
+glRectivFunPtr = unsafePerformIO (getProcAddress "glRectiv")
+
+{-# NOINLINE glRectivFunPtr #-}
+
+-- | Usage: @'glRects' x1 y1 x2 y2@
+--
+-- The parameter @x1@ is a @CoordS@.
+--
+-- The parameter @y1@ is a @CoordS@.
+--
+-- The parameter @x2@ is a @CoordS@.
+--
+-- The parameter @y2@ is a @CoordS@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glRectsv'.
+
+
+glRects :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()
+glRects = ffishortshortshortshortIOV glRectsFunPtr
+
+glRectsFunPtr :: FunPtr (GLshort -> GLshort -> GLshort -> GLshort -> IO ())
+glRectsFunPtr = unsafePerformIO (getProcAddress "glRects")
+
+{-# NOINLINE glRectsFunPtr #-}
+
+-- | Usage: @'glRectsv' v1 v2@
+--
+-- The parameter @v1@ is a @CoordS@.
+--
+-- The parameter @v2@ is a @CoordS@.
+--
+-- The length of @v1@ should be @2@.
+--
+-- The length of @v2@ should be @2@.
+
+
+glRectsv :: MonadIO m => Ptr GLshort -> Ptr GLshort -> m ()
+glRectsv = ffiPtrshortPtrshortIOV glRectsvFunPtr
+
+glRectsvFunPtr :: FunPtr (Ptr GLshort -> Ptr GLshort -> IO ())
+glRectsvFunPtr = unsafePerformIO (getProcAddress "glRectsv")
+
+{-# NOINLINE glRectsvFunPtr #-}
+
+-- | Usage: @'glRenderMode' mode@
+--
+-- The parameter @mode@ is a @RenderingMode@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FEEDBACK', 'Graphics.GL.Raw.Internal.Shared.GL_RENDER', 'Graphics.GL.Raw.Internal.Shared.GL_SELECT'.
+
+
+glRenderMode :: MonadIO m => GLenum -> m GLint
+glRenderMode = ffienumIOint glRenderModeFunPtr
+
+glRenderModeFunPtr :: FunPtr (GLenum -> IO GLint)
+glRenderModeFunPtr = unsafePerformIO (getProcAddress "glRenderMode")
+
+{-# NOINLINE glRenderModeFunPtr #-}
+
+-- | Usage: @'glRotated' angle x y z@
+
+
+glRotated :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
+glRotated = ffidoubledoubledoubledoubleIOV glRotatedFunPtr
+
+glRotatedFunPtr :: FunPtr (GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
+glRotatedFunPtr = unsafePerformIO (getProcAddress "glRotated")
+
+{-# NOINLINE glRotatedFunPtr #-}
+
+-- | Usage: @'glRotatef' angle x y z@
+
+
+glRotatef :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
+glRotatef = ffifloatfloatfloatfloatIOV glRotatefFunPtr
+
+glRotatefFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+glRotatefFunPtr = unsafePerformIO (getProcAddress "glRotatef")
+
+{-# NOINLINE glRotatefFunPtr #-}
+
+-- | Usage: @'glScaled' x y z@
+
+
+glScaled :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()
+glScaled = ffidoubledoubledoubleIOV glScaledFunPtr
+
+glScaledFunPtr :: FunPtr (GLdouble -> GLdouble -> GLdouble -> IO ())
+glScaledFunPtr = unsafePerformIO (getProcAddress "glScaled")
+
+{-# NOINLINE glScaledFunPtr #-}
+
+-- | Usage: @'glScalef' x y z@
+
+
+glScalef :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()
+glScalef = ffifloatfloatfloatIOV glScalefFunPtr
+
+glScalefFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> IO ())
+glScalefFunPtr = unsafePerformIO (getProcAddress "glScalef")
+
+{-# NOINLINE glScalefFunPtr #-}
+
+-- | Usage: @'glSecondaryColor3b' red green blue@
+--
+-- The parameter @red@ is a @ColorB@.
+--
+-- The parameter @green@ is a @ColorB@.
+--
+-- The parameter @blue@ is a @ColorB@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glSecondaryColor3bv'.
+
+
+glSecondaryColor3b :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> m ()
+glSecondaryColor3b = ffibytebytebyteIOV glSecondaryColor3bFunPtr
+
+glSecondaryColor3bFunPtr :: FunPtr (GLbyte -> GLbyte -> GLbyte -> IO ())
+glSecondaryColor3bFunPtr = unsafePerformIO (getProcAddress "glSecondaryColor3b")
+
+{-# NOINLINE glSecondaryColor3bFunPtr #-}
+
+-- | Usage: @'glSecondaryColor3bv' v@
+--
+-- The parameter @v@ is a @ColorB@.
+--
+-- The length of @v@ should be @3@.
+
+
+glSecondaryColor3bv :: MonadIO m => Ptr GLbyte -> m ()
+glSecondaryColor3bv = ffiPtrbyteIOV glSecondaryColor3bvFunPtr
+
+glSecondaryColor3bvFunPtr :: FunPtr (Ptr GLbyte -> IO ())
+glSecondaryColor3bvFunPtr = unsafePerformIO (getProcAddress "glSecondaryColor3bv")
+
+{-# NOINLINE glSecondaryColor3bvFunPtr #-}
+
+-- | Usage: @'glSecondaryColor3d' red green blue@
+--
+-- The parameter @red@ is a @ColorD@.
+--
+-- The parameter @green@ is a @ColorD@.
+--
+-- The parameter @blue@ is a @ColorD@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glSecondaryColor3dv'.
+
+
+glSecondaryColor3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()
+glSecondaryColor3d = ffidoubledoubledoubleIOV glSecondaryColor3dFunPtr
+
+glSecondaryColor3dFunPtr :: FunPtr (GLdouble -> GLdouble -> GLdouble -> IO ())
+glSecondaryColor3dFunPtr = unsafePerformIO (getProcAddress "glSecondaryColor3d")
+
+{-# NOINLINE glSecondaryColor3dFunPtr #-}
+
+-- | Usage: @'glSecondaryColor3dv' v@
+--
+-- The parameter @v@ is a @ColorD@.
+--
+-- The length of @v@ should be @3@.
+
+
+glSecondaryColor3dv :: MonadIO m => Ptr GLdouble -> m ()
+glSecondaryColor3dv = ffiPtrdoubleIOV glSecondaryColor3dvFunPtr
+
+glSecondaryColor3dvFunPtr :: FunPtr (Ptr GLdouble -> IO ())
+glSecondaryColor3dvFunPtr = unsafePerformIO (getProcAddress "glSecondaryColor3dv")
+
+{-# NOINLINE glSecondaryColor3dvFunPtr #-}
+
+-- | Usage: @'glSecondaryColor3f' red green blue@
+--
+-- The parameter @red@ is a @ColorF@.
+--
+-- The parameter @green@ is a @ColorF@.
+--
+-- The parameter @blue@ is a @ColorF@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glSecondaryColor3fv'.
+
+
+glSecondaryColor3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()
+glSecondaryColor3f = ffifloatfloatfloatIOV glSecondaryColor3fFunPtr
+
+glSecondaryColor3fFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> IO ())
+glSecondaryColor3fFunPtr = unsafePerformIO (getProcAddress "glSecondaryColor3f")
+
+{-# NOINLINE glSecondaryColor3fFunPtr #-}
+
+-- | Usage: @'glSecondaryColor3fv' v@
+--
+-- The parameter @v@ is a @ColorF@.
+--
+-- The length of @v@ should be @3@.
+
+
+glSecondaryColor3fv :: MonadIO m => Ptr GLfloat -> m ()
+glSecondaryColor3fv = ffiPtrfloatIOV glSecondaryColor3fvFunPtr
+
+glSecondaryColor3fvFunPtr :: FunPtr (Ptr GLfloat -> IO ())
+glSecondaryColor3fvFunPtr = unsafePerformIO (getProcAddress "glSecondaryColor3fv")
+
+{-# NOINLINE glSecondaryColor3fvFunPtr #-}
+
+-- | Usage: @'glSecondaryColor3i' red green blue@
+--
+-- The parameter @red@ is a @ColorI@.
+--
+-- The parameter @green@ is a @ColorI@.
+--
+-- The parameter @blue@ is a @ColorI@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glSecondaryColor3iv'.
+
+
+glSecondaryColor3i :: MonadIO m => GLint -> GLint -> GLint -> m ()
+glSecondaryColor3i = ffiintintintIOV glSecondaryColor3iFunPtr
+
+glSecondaryColor3iFunPtr :: FunPtr (GLint -> GLint -> GLint -> IO ())
+glSecondaryColor3iFunPtr = unsafePerformIO (getProcAddress "glSecondaryColor3i")
+
+{-# NOINLINE glSecondaryColor3iFunPtr #-}
+
+-- | Usage: @'glSecondaryColor3iv' v@
+--
+-- The parameter @v@ is a @ColorI@.
+--
+-- The length of @v@ should be @3@.
+
+
+glSecondaryColor3iv :: MonadIO m => Ptr GLint -> m ()
+glSecondaryColor3iv = ffiPtrintIOV glSecondaryColor3ivFunPtr
+
+glSecondaryColor3ivFunPtr :: FunPtr (Ptr GLint -> IO ())
+glSecondaryColor3ivFunPtr = unsafePerformIO (getProcAddress "glSecondaryColor3iv")
+
+{-# NOINLINE glSecondaryColor3ivFunPtr #-}
+
+-- | Usage: @'glSecondaryColor3s' red green blue@
+--
+-- The parameter @red@ is a @ColorS@.
+--
+-- The parameter @green@ is a @ColorS@.
+--
+-- The parameter @blue@ is a @ColorS@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glSecondaryColor3sv'.
+
+
+glSecondaryColor3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()
+glSecondaryColor3s = ffishortshortshortIOV glSecondaryColor3sFunPtr
+
+glSecondaryColor3sFunPtr :: FunPtr (GLshort -> GLshort -> GLshort -> IO ())
+glSecondaryColor3sFunPtr = unsafePerformIO (getProcAddress "glSecondaryColor3s")
+
+{-# NOINLINE glSecondaryColor3sFunPtr #-}
+
+-- | Usage: @'glSecondaryColor3sv' v@
+--
+-- The parameter @v@ is a @ColorS@.
+--
+-- The length of @v@ should be @3@.
+
+
+glSecondaryColor3sv :: MonadIO m => Ptr GLshort -> m ()
+glSecondaryColor3sv = ffiPtrshortIOV glSecondaryColor3svFunPtr
+
+glSecondaryColor3svFunPtr :: FunPtr (Ptr GLshort -> IO ())
+glSecondaryColor3svFunPtr = unsafePerformIO (getProcAddress "glSecondaryColor3sv")
+
+{-# NOINLINE glSecondaryColor3svFunPtr #-}
+
+-- | Usage: @'glSecondaryColor3ub' red green blue@
+--
+-- The parameter @red@ is a @ColorUB@.
+--
+-- The parameter @green@ is a @ColorUB@.
+--
+-- The parameter @blue@ is a @ColorUB@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glSecondaryColor3ubv'.
+
+
+glSecondaryColor3ub :: MonadIO m => GLubyte -> GLubyte -> GLubyte -> m ()
+glSecondaryColor3ub = ffiubyteubyteubyteIOV glSecondaryColor3ubFunPtr
+
+glSecondaryColor3ubFunPtr :: FunPtr (GLubyte -> GLubyte -> GLubyte -> IO ())
+glSecondaryColor3ubFunPtr = unsafePerformIO (getProcAddress "glSecondaryColor3ub")
+
+{-# NOINLINE glSecondaryColor3ubFunPtr #-}
+
+-- | Usage: @'glSecondaryColor3ubv' v@
+--
+-- The parameter @v@ is a @ColorUB@.
+--
+-- The length of @v@ should be @3@.
+
+
+glSecondaryColor3ubv :: MonadIO m => Ptr GLubyte -> m ()
+glSecondaryColor3ubv = ffiPtrubyteIOV glSecondaryColor3ubvFunPtr
+
+glSecondaryColor3ubvFunPtr :: FunPtr (Ptr GLubyte -> IO ())
+glSecondaryColor3ubvFunPtr = unsafePerformIO (getProcAddress "glSecondaryColor3ubv")
+
+{-# NOINLINE glSecondaryColor3ubvFunPtr #-}
+
+-- | Usage: @'glSecondaryColor3ui' red green blue@
+--
+-- The parameter @red@ is a @ColorUI@.
+--
+-- The parameter @green@ is a @ColorUI@.
+--
+-- The parameter @blue@ is a @ColorUI@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glSecondaryColor3uiv'.
+
+
+glSecondaryColor3ui :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()
+glSecondaryColor3ui = ffiuintuintuintIOV glSecondaryColor3uiFunPtr
+
+glSecondaryColor3uiFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> IO ())
+glSecondaryColor3uiFunPtr = unsafePerformIO (getProcAddress "glSecondaryColor3ui")
+
+{-# NOINLINE glSecondaryColor3uiFunPtr #-}
+
+-- | Usage: @'glSecondaryColor3uiv' v@
+--
+-- The parameter @v@ is a @ColorUI@.
+--
+-- The length of @v@ should be @3@.
+
+
+glSecondaryColor3uiv :: MonadIO m => Ptr GLuint -> m ()
+glSecondaryColor3uiv = ffiPtruintIOV glSecondaryColor3uivFunPtr
+
+glSecondaryColor3uivFunPtr :: FunPtr (Ptr GLuint -> IO ())
+glSecondaryColor3uivFunPtr = unsafePerformIO (getProcAddress "glSecondaryColor3uiv")
+
+{-# NOINLINE glSecondaryColor3uivFunPtr #-}
+
+-- | Usage: @'glSecondaryColor3us' red green blue@
+--
+-- The parameter @red@ is a @ColorUS@.
+--
+-- The parameter @green@ is a @ColorUS@.
+--
+-- The parameter @blue@ is a @ColorUS@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glSecondaryColor3usv'.
+
+
+glSecondaryColor3us :: MonadIO m => GLushort -> GLushort -> GLushort -> m ()
+glSecondaryColor3us = ffiushortushortushortIOV glSecondaryColor3usFunPtr
+
+glSecondaryColor3usFunPtr :: FunPtr (GLushort -> GLushort -> GLushort -> IO ())
+glSecondaryColor3usFunPtr = unsafePerformIO (getProcAddress "glSecondaryColor3us")
+
+{-# NOINLINE glSecondaryColor3usFunPtr #-}
+
+-- | Usage: @'glSecondaryColor3usv' v@
+--
+-- The parameter @v@ is a @ColorUS@.
+--
+-- The length of @v@ should be @3@.
+
+
+glSecondaryColor3usv :: MonadIO m => Ptr GLushort -> m ()
+glSecondaryColor3usv = ffiPtrushortIOV glSecondaryColor3usvFunPtr
+
+glSecondaryColor3usvFunPtr :: FunPtr (Ptr GLushort -> IO ())
+glSecondaryColor3usvFunPtr = unsafePerformIO (getProcAddress "glSecondaryColor3usv")
+
+{-# NOINLINE glSecondaryColor3usvFunPtr #-}
+
+-- | Usage: @'glSecondaryColorPointer' size type stride pointer@
+--
+-- The parameter @type@ is a @ColorPointerType@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_BYTE', 'Graphics.GL.Raw.Internal.Shared.GL_DOUBLE', 'Graphics.GL.Raw.Internal.Shared.GL_FLOAT', 'Graphics.GL.Raw.Internal.Shared.GL_INT', 'Graphics.GL.Raw.Internal.Shared.GL_SHORT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT'.
+--
+-- The length of @pointer@ should be @COMPSIZE(size,type,stride)@.
+
+
+glSecondaryColorPointer :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr () -> m ()
+glSecondaryColorPointer = ffiintenumsizeiPtrVIOV glSecondaryColorPointerFunPtr
+
+glSecondaryColorPointerFunPtr :: FunPtr (GLint -> GLenum -> GLsizei -> Ptr () -> IO ())
+glSecondaryColorPointerFunPtr = unsafePerformIO (getProcAddress "glSecondaryColorPointer")
+
+{-# NOINLINE glSecondaryColorPointerFunPtr #-}
+
+-- | Usage: @'glSelectBuffer' size buffer@
+--
+-- The parameter @buffer@ is a @SelectName@.
+--
+-- The length of @buffer@ should be @size@.
+
+
+glSelectBuffer :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glSelectBuffer = ffisizeiPtruintIOV glSelectBufferFunPtr
+
+glSelectBufferFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glSelectBufferFunPtr = unsafePerformIO (getProcAddress "glSelectBuffer")
+
+{-# NOINLINE glSelectBufferFunPtr #-}
+
+-- | Usage: @'glShadeModel' mode@
+--
+-- The parameter @mode@ is a @ShadingModel@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FLAT', 'Graphics.GL.Raw.Internal.Shared.GL_SMOOTH'.
+
+
+glShadeModel :: MonadIO m => GLenum -> m ()
+glShadeModel = ffienumIOV glShadeModelFunPtr
+
+glShadeModelFunPtr :: FunPtr (GLenum -> IO ())
+glShadeModelFunPtr = unsafePerformIO (getProcAddress "glShadeModel")
+
+{-# NOINLINE glShadeModelFunPtr #-}
+
+-- | Usage: @'glTexCoord1d' s@
+--
+-- The parameter @s@ is a @CoordD@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glTexCoord1dv'.
+
+
+glTexCoord1d :: MonadIO m => GLdouble -> m ()
+glTexCoord1d = ffidoubleIOV glTexCoord1dFunPtr
+
+glTexCoord1dFunPtr :: FunPtr (GLdouble -> IO ())
+glTexCoord1dFunPtr = unsafePerformIO (getProcAddress "glTexCoord1d")
+
+{-# NOINLINE glTexCoord1dFunPtr #-}
+
+-- | Usage: @'glTexCoord1dv' v@
+--
+-- The parameter @v@ is a @CoordD@.
+--
+-- The length of @v@ should be @1@.
+
+
+glTexCoord1dv :: MonadIO m => Ptr GLdouble -> m ()
+glTexCoord1dv = ffiPtrdoubleIOV glTexCoord1dvFunPtr
+
+glTexCoord1dvFunPtr :: FunPtr (Ptr GLdouble -> IO ())
+glTexCoord1dvFunPtr = unsafePerformIO (getProcAddress "glTexCoord1dv")
+
+{-# NOINLINE glTexCoord1dvFunPtr #-}
+
+-- | Usage: @'glTexCoord1f' s@
+--
+-- The parameter @s@ is a @CoordF@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glTexCoord1fv'.
+
+
+glTexCoord1f :: MonadIO m => GLfloat -> m ()
+glTexCoord1f = ffifloatIOV glTexCoord1fFunPtr
+
+glTexCoord1fFunPtr :: FunPtr (GLfloat -> IO ())
+glTexCoord1fFunPtr = unsafePerformIO (getProcAddress "glTexCoord1f")
+
+{-# NOINLINE glTexCoord1fFunPtr #-}
+
+-- | Usage: @'glTexCoord1fv' v@
+--
+-- The parameter @v@ is a @CoordF@.
+--
+-- The length of @v@ should be @1@.
+
+
+glTexCoord1fv :: MonadIO m => Ptr GLfloat -> m ()
+glTexCoord1fv = ffiPtrfloatIOV glTexCoord1fvFunPtr
+
+glTexCoord1fvFunPtr :: FunPtr (Ptr GLfloat -> IO ())
+glTexCoord1fvFunPtr = unsafePerformIO (getProcAddress "glTexCoord1fv")
+
+{-# NOINLINE glTexCoord1fvFunPtr #-}
+
+-- | Usage: @'glTexCoord1i' s@
+--
+-- The parameter @s@ is a @CoordI@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glTexCoord1iv'.
+
+
+glTexCoord1i :: MonadIO m => GLint -> m ()
+glTexCoord1i = ffiintIOV glTexCoord1iFunPtr
+
+glTexCoord1iFunPtr :: FunPtr (GLint -> IO ())
+glTexCoord1iFunPtr = unsafePerformIO (getProcAddress "glTexCoord1i")
+
+{-# NOINLINE glTexCoord1iFunPtr #-}
+
+-- | Usage: @'glTexCoord1iv' v@
+--
+-- The parameter @v@ is a @CoordI@.
+--
+-- The length of @v@ should be @1@.
+
+
+glTexCoord1iv :: MonadIO m => Ptr GLint -> m ()
+glTexCoord1iv = ffiPtrintIOV glTexCoord1ivFunPtr
+
+glTexCoord1ivFunPtr :: FunPtr (Ptr GLint -> IO ())
+glTexCoord1ivFunPtr = unsafePerformIO (getProcAddress "glTexCoord1iv")
+
+{-# NOINLINE glTexCoord1ivFunPtr #-}
+
+-- | Usage: @'glTexCoord1s' s@
+--
+-- The parameter @s@ is a @CoordS@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glTexCoord1sv'.
+
+
+glTexCoord1s :: MonadIO m => GLshort -> m ()
+glTexCoord1s = ffishortIOV glTexCoord1sFunPtr
+
+glTexCoord1sFunPtr :: FunPtr (GLshort -> IO ())
+glTexCoord1sFunPtr = unsafePerformIO (getProcAddress "glTexCoord1s")
+
+{-# NOINLINE glTexCoord1sFunPtr #-}
+
+-- | Usage: @'glTexCoord1sv' v@
+--
+-- The parameter @v@ is a @CoordS@.
+--
+-- The length of @v@ should be @1@.
+
+
+glTexCoord1sv :: MonadIO m => Ptr GLshort -> m ()
+glTexCoord1sv = ffiPtrshortIOV glTexCoord1svFunPtr
+
+glTexCoord1svFunPtr :: FunPtr (Ptr GLshort -> IO ())
+glTexCoord1svFunPtr = unsafePerformIO (getProcAddress "glTexCoord1sv")
+
+{-# NOINLINE glTexCoord1svFunPtr #-}
+
+-- | Usage: @'glTexCoord2d' s t@
+--
+-- The parameter @s@ is a @CoordD@.
+--
+-- The parameter @t@ is a @CoordD@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glTexCoord2dv'.
+
+
+glTexCoord2d :: MonadIO m => GLdouble -> GLdouble -> m ()
+glTexCoord2d = ffidoubledoubleIOV glTexCoord2dFunPtr
+
+glTexCoord2dFunPtr :: FunPtr (GLdouble -> GLdouble -> IO ())
+glTexCoord2dFunPtr = unsafePerformIO (getProcAddress "glTexCoord2d")
+
+{-# NOINLINE glTexCoord2dFunPtr #-}
+
+-- | Usage: @'glTexCoord2dv' v@
+--
+-- The parameter @v@ is a @CoordD@.
+--
+-- The length of @v@ should be @2@.
+
+
+glTexCoord2dv :: MonadIO m => Ptr GLdouble -> m ()
+glTexCoord2dv = ffiPtrdoubleIOV glTexCoord2dvFunPtr
+
+glTexCoord2dvFunPtr :: FunPtr (Ptr GLdouble -> IO ())
+glTexCoord2dvFunPtr = unsafePerformIO (getProcAddress "glTexCoord2dv")
+
+{-# NOINLINE glTexCoord2dvFunPtr #-}
+
+-- | Usage: @'glTexCoord2f' s t@
+--
+-- The parameter @s@ is a @CoordF@.
+--
+-- The parameter @t@ is a @CoordF@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glTexCoord2fv'.
+
+
+glTexCoord2f :: MonadIO m => GLfloat -> GLfloat -> m ()
+glTexCoord2f = ffifloatfloatIOV glTexCoord2fFunPtr
+
+glTexCoord2fFunPtr :: FunPtr (GLfloat -> GLfloat -> IO ())
+glTexCoord2fFunPtr = unsafePerformIO (getProcAddress "glTexCoord2f")
+
+{-# NOINLINE glTexCoord2fFunPtr #-}
+
+-- | Usage: @'glTexCoord2fv' v@
+--
+-- The parameter @v@ is a @CoordF@.
+--
+-- The length of @v@ should be @2@.
+
+
+glTexCoord2fv :: MonadIO m => Ptr GLfloat -> m ()
+glTexCoord2fv = ffiPtrfloatIOV glTexCoord2fvFunPtr
+
+glTexCoord2fvFunPtr :: FunPtr (Ptr GLfloat -> IO ())
+glTexCoord2fvFunPtr = unsafePerformIO (getProcAddress "glTexCoord2fv")
+
+{-# NOINLINE glTexCoord2fvFunPtr #-}
+
+-- | Usage: @'glTexCoord2i' s t@
+--
+-- The parameter @s@ is a @CoordI@.
+--
+-- The parameter @t@ is a @CoordI@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glTexCoord2iv'.
+
+
+glTexCoord2i :: MonadIO m => GLint -> GLint -> m ()
+glTexCoord2i = ffiintintIOV glTexCoord2iFunPtr
+
+glTexCoord2iFunPtr :: FunPtr (GLint -> GLint -> IO ())
+glTexCoord2iFunPtr = unsafePerformIO (getProcAddress "glTexCoord2i")
+
+{-# NOINLINE glTexCoord2iFunPtr #-}
+
+-- | Usage: @'glTexCoord2iv' v@
+--
+-- The parameter @v@ is a @CoordI@.
+--
+-- The length of @v@ should be @2@.
+
+
+glTexCoord2iv :: MonadIO m => Ptr GLint -> m ()
+glTexCoord2iv = ffiPtrintIOV glTexCoord2ivFunPtr
+
+glTexCoord2ivFunPtr :: FunPtr (Ptr GLint -> IO ())
+glTexCoord2ivFunPtr = unsafePerformIO (getProcAddress "glTexCoord2iv")
+
+{-# NOINLINE glTexCoord2ivFunPtr #-}
+
+-- | Usage: @'glTexCoord2s' s t@
+--
+-- The parameter @s@ is a @CoordS@.
+--
+-- The parameter @t@ is a @CoordS@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glTexCoord2sv'.
+
+
+glTexCoord2s :: MonadIO m => GLshort -> GLshort -> m ()
+glTexCoord2s = ffishortshortIOV glTexCoord2sFunPtr
+
+glTexCoord2sFunPtr :: FunPtr (GLshort -> GLshort -> IO ())
+glTexCoord2sFunPtr = unsafePerformIO (getProcAddress "glTexCoord2s")
+
+{-# NOINLINE glTexCoord2sFunPtr #-}
+
+-- | Usage: @'glTexCoord2sv' v@
+--
+-- The parameter @v@ is a @CoordS@.
+--
+-- The length of @v@ should be @2@.
+
+
+glTexCoord2sv :: MonadIO m => Ptr GLshort -> m ()
+glTexCoord2sv = ffiPtrshortIOV glTexCoord2svFunPtr
+
+glTexCoord2svFunPtr :: FunPtr (Ptr GLshort -> IO ())
+glTexCoord2svFunPtr = unsafePerformIO (getProcAddress "glTexCoord2sv")
+
+{-# NOINLINE glTexCoord2svFunPtr #-}
+
+-- | Usage: @'glTexCoord3d' s t r@
+--
+-- The parameter @s@ is a @CoordD@.
+--
+-- The parameter @t@ is a @CoordD@.
+--
+-- The parameter @r@ is a @CoordD@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glTexCoord3dv'.
+
+
+glTexCoord3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()
+glTexCoord3d = ffidoubledoubledoubleIOV glTexCoord3dFunPtr
+
+glTexCoord3dFunPtr :: FunPtr (GLdouble -> GLdouble -> GLdouble -> IO ())
+glTexCoord3dFunPtr = unsafePerformIO (getProcAddress "glTexCoord3d")
+
+{-# NOINLINE glTexCoord3dFunPtr #-}
+
+-- | Usage: @'glTexCoord3dv' v@
+--
+-- The parameter @v@ is a @CoordD@.
+--
+-- The length of @v@ should be @3@.
+
+
+glTexCoord3dv :: MonadIO m => Ptr GLdouble -> m ()
+glTexCoord3dv = ffiPtrdoubleIOV glTexCoord3dvFunPtr
+
+glTexCoord3dvFunPtr :: FunPtr (Ptr GLdouble -> IO ())
+glTexCoord3dvFunPtr = unsafePerformIO (getProcAddress "glTexCoord3dv")
+
+{-# NOINLINE glTexCoord3dvFunPtr #-}
+
+-- | Usage: @'glTexCoord3f' s t r@
+--
+-- The parameter @s@ is a @CoordF@.
+--
+-- The parameter @t@ is a @CoordF@.
+--
+-- The parameter @r@ is a @CoordF@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glTexCoord3fv'.
+
+
+glTexCoord3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()
+glTexCoord3f = ffifloatfloatfloatIOV glTexCoord3fFunPtr
+
+glTexCoord3fFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> IO ())
+glTexCoord3fFunPtr = unsafePerformIO (getProcAddress "glTexCoord3f")
+
+{-# NOINLINE glTexCoord3fFunPtr #-}
+
+-- | Usage: @'glTexCoord3fv' v@
+--
+-- The parameter @v@ is a @CoordF@.
+--
+-- The length of @v@ should be @3@.
+
+
+glTexCoord3fv :: MonadIO m => Ptr GLfloat -> m ()
+glTexCoord3fv = ffiPtrfloatIOV glTexCoord3fvFunPtr
+
+glTexCoord3fvFunPtr :: FunPtr (Ptr GLfloat -> IO ())
+glTexCoord3fvFunPtr = unsafePerformIO (getProcAddress "glTexCoord3fv")
+
+{-# NOINLINE glTexCoord3fvFunPtr #-}
+
+-- | Usage: @'glTexCoord3i' s t r@
+--
+-- The parameter @s@ is a @CoordI@.
+--
+-- The parameter @t@ is a @CoordI@.
+--
+-- The parameter @r@ is a @CoordI@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glTexCoord3iv'.
+
+
+glTexCoord3i :: MonadIO m => GLint -> GLint -> GLint -> m ()
+glTexCoord3i = ffiintintintIOV glTexCoord3iFunPtr
+
+glTexCoord3iFunPtr :: FunPtr (GLint -> GLint -> GLint -> IO ())
+glTexCoord3iFunPtr = unsafePerformIO (getProcAddress "glTexCoord3i")
+
+{-# NOINLINE glTexCoord3iFunPtr #-}
+
+-- | Usage: @'glTexCoord3iv' v@
+--
+-- The parameter @v@ is a @CoordI@.
+--
+-- The length of @v@ should be @3@.
+
+
+glTexCoord3iv :: MonadIO m => Ptr GLint -> m ()
+glTexCoord3iv = ffiPtrintIOV glTexCoord3ivFunPtr
+
+glTexCoord3ivFunPtr :: FunPtr (Ptr GLint -> IO ())
+glTexCoord3ivFunPtr = unsafePerformIO (getProcAddress "glTexCoord3iv")
+
+{-# NOINLINE glTexCoord3ivFunPtr #-}
+
+-- | Usage: @'glTexCoord3s' s t r@
+--
+-- The parameter @s@ is a @CoordS@.
+--
+-- The parameter @t@ is a @CoordS@.
+--
+-- The parameter @r@ is a @CoordS@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glTexCoord3sv'.
+
+
+glTexCoord3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()
+glTexCoord3s = ffishortshortshortIOV glTexCoord3sFunPtr
+
+glTexCoord3sFunPtr :: FunPtr (GLshort -> GLshort -> GLshort -> IO ())
+glTexCoord3sFunPtr = unsafePerformIO (getProcAddress "glTexCoord3s")
+
+{-# NOINLINE glTexCoord3sFunPtr #-}
+
+-- | Usage: @'glTexCoord3sv' v@
+--
+-- The parameter @v@ is a @CoordS@.
+--
+-- The length of @v@ should be @3@.
+
+
+glTexCoord3sv :: MonadIO m => Ptr GLshort -> m ()
+glTexCoord3sv = ffiPtrshortIOV glTexCoord3svFunPtr
+
+glTexCoord3svFunPtr :: FunPtr (Ptr GLshort -> IO ())
+glTexCoord3svFunPtr = unsafePerformIO (getProcAddress "glTexCoord3sv")
+
+{-# NOINLINE glTexCoord3svFunPtr #-}
+
+-- | Usage: @'glTexCoord4d' s t r q@
+--
+-- The parameter @s@ is a @CoordD@.
+--
+-- The parameter @t@ is a @CoordD@.
+--
+-- The parameter @r@ is a @CoordD@.
+--
+-- The parameter @q@ is a @CoordD@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glTexCoord4dv'.
+
+
+glTexCoord4d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
+glTexCoord4d = ffidoubledoubledoubledoubleIOV glTexCoord4dFunPtr
+
+glTexCoord4dFunPtr :: FunPtr (GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
+glTexCoord4dFunPtr = unsafePerformIO (getProcAddress "glTexCoord4d")
+
+{-# NOINLINE glTexCoord4dFunPtr #-}
+
+-- | Usage: @'glTexCoord4dv' v@
+--
+-- The parameter @v@ is a @CoordD@.
+--
+-- The length of @v@ should be @4@.
+
+
+glTexCoord4dv :: MonadIO m => Ptr GLdouble -> m ()
+glTexCoord4dv = ffiPtrdoubleIOV glTexCoord4dvFunPtr
+
+glTexCoord4dvFunPtr :: FunPtr (Ptr GLdouble -> IO ())
+glTexCoord4dvFunPtr = unsafePerformIO (getProcAddress "glTexCoord4dv")
+
+{-# NOINLINE glTexCoord4dvFunPtr #-}
+
+-- | Usage: @'glTexCoord4f' s t r q@
+--
+-- The parameter @s@ is a @CoordF@.
+--
+-- The parameter @t@ is a @CoordF@.
+--
+-- The parameter @r@ is a @CoordF@.
+--
+-- The parameter @q@ is a @CoordF@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glTexCoord4fv'.
+
+
+glTexCoord4f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
+glTexCoord4f = ffifloatfloatfloatfloatIOV glTexCoord4fFunPtr
+
+glTexCoord4fFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+glTexCoord4fFunPtr = unsafePerformIO (getProcAddress "glTexCoord4f")
+
+{-# NOINLINE glTexCoord4fFunPtr #-}
+
+-- | Usage: @'glTexCoord4fv' v@
+--
+-- The parameter @v@ is a @CoordF@.
+--
+-- The length of @v@ should be @4@.
+
+
+glTexCoord4fv :: MonadIO m => Ptr GLfloat -> m ()
+glTexCoord4fv = ffiPtrfloatIOV glTexCoord4fvFunPtr
+
+glTexCoord4fvFunPtr :: FunPtr (Ptr GLfloat -> IO ())
+glTexCoord4fvFunPtr = unsafePerformIO (getProcAddress "glTexCoord4fv")
+
+{-# NOINLINE glTexCoord4fvFunPtr #-}
+
+-- | Usage: @'glTexCoord4i' s t r q@
+--
+-- The parameter @s@ is a @CoordI@.
+--
+-- The parameter @t@ is a @CoordI@.
+--
+-- The parameter @r@ is a @CoordI@.
+--
+-- The parameter @q@ is a @CoordI@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glTexCoord4iv'.
+
+
+glTexCoord4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()
+glTexCoord4i = ffiintintintintIOV glTexCoord4iFunPtr
+
+glTexCoord4iFunPtr :: FunPtr (GLint -> GLint -> GLint -> GLint -> IO ())
+glTexCoord4iFunPtr = unsafePerformIO (getProcAddress "glTexCoord4i")
+
+{-# NOINLINE glTexCoord4iFunPtr #-}
+
+-- | Usage: @'glTexCoord4iv' v@
+--
+-- The parameter @v@ is a @CoordI@.
+--
+-- The length of @v@ should be @4@.
+
+
+glTexCoord4iv :: MonadIO m => Ptr GLint -> m ()
+glTexCoord4iv = ffiPtrintIOV glTexCoord4ivFunPtr
+
+glTexCoord4ivFunPtr :: FunPtr (Ptr GLint -> IO ())
+glTexCoord4ivFunPtr = unsafePerformIO (getProcAddress "glTexCoord4iv")
+
+{-# NOINLINE glTexCoord4ivFunPtr #-}
+
+-- | Usage: @'glTexCoord4s' s t r q@
+--
+-- The parameter @s@ is a @CoordS@.
+--
+-- The parameter @t@ is a @CoordS@.
+--
+-- The parameter @r@ is a @CoordS@.
+--
+-- The parameter @q@ is a @CoordS@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glTexCoord4sv'.
+
+
+glTexCoord4s :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()
+glTexCoord4s = ffishortshortshortshortIOV glTexCoord4sFunPtr
+
+glTexCoord4sFunPtr :: FunPtr (GLshort -> GLshort -> GLshort -> GLshort -> IO ())
+glTexCoord4sFunPtr = unsafePerformIO (getProcAddress "glTexCoord4s")
+
+{-# NOINLINE glTexCoord4sFunPtr #-}
+
+-- | Usage: @'glTexCoord4sv' v@
+--
+-- The parameter @v@ is a @CoordS@.
+--
+-- The length of @v@ should be @4@.
+
+
+glTexCoord4sv :: MonadIO m => Ptr GLshort -> m ()
+glTexCoord4sv = ffiPtrshortIOV glTexCoord4svFunPtr
+
+glTexCoord4svFunPtr :: FunPtr (Ptr GLshort -> IO ())
+glTexCoord4svFunPtr = unsafePerformIO (getProcAddress "glTexCoord4sv")
+
+{-# NOINLINE glTexCoord4svFunPtr #-}
+
+-- | Usage: @'glTexCoordPointer' size type stride pointer@
+--
+-- The parameter @type@ is a @TexCoordPointerType@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_DOUBLE', 'Graphics.GL.Raw.Internal.Shared.GL_FLOAT', 'Graphics.GL.Raw.Internal.Shared.GL_INT', 'Graphics.GL.Raw.Internal.Shared.GL_SHORT'.
+--
+-- The length of @pointer@ should be @COMPSIZE(size,type,stride)@.
+
+
+glTexCoordPointer :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr () -> m ()
+glTexCoordPointer = ffiintenumsizeiPtrVIOV glTexCoordPointerFunPtr
+
+glTexCoordPointerFunPtr :: FunPtr (GLint -> GLenum -> GLsizei -> Ptr () -> IO ())
+glTexCoordPointerFunPtr = unsafePerformIO (getProcAddress "glTexCoordPointer")
+
+{-# NOINLINE glTexCoordPointerFunPtr #-}
+
+-- | Usage: @'glTexEnvf' target pname param@
+--
+-- The parameter @target@ is a @TextureEnvTarget@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_ENV'.
+--
+-- The parameter @pname@ is a @TextureEnvParameter@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_ENV_COLOR', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_ENV_MODE'.
+--
+-- The parameter @param@ is a @CheckedFloat32@.
+
+
+glTexEnvf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()
+glTexEnvf = ffienumenumfloatIOV glTexEnvfFunPtr
+
+glTexEnvfFunPtr :: FunPtr (GLenum -> GLenum -> GLfloat -> IO ())
+glTexEnvfFunPtr = unsafePerformIO (getProcAddress "glTexEnvf")
+
+{-# NOINLINE glTexEnvfFunPtr #-}
+
+-- | Usage: @'glTexEnvfv' target pname params@
+--
+-- The parameter @target@ is a @TextureEnvTarget@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_ENV'.
+--
+-- The parameter @pname@ is a @TextureEnvParameter@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_ENV_COLOR', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_ENV_MODE'.
+--
+-- The parameter @params@ is a @CheckedFloat32@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glTexEnvfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
+glTexEnvfv = ffienumenumPtrfloatIOV glTexEnvfvFunPtr
+
+glTexEnvfvFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
+glTexEnvfvFunPtr = unsafePerformIO (getProcAddress "glTexEnvfv")
+
+{-# NOINLINE glTexEnvfvFunPtr #-}
+
+-- | Usage: @'glTexEnvi' target pname param@
+--
+-- The parameter @target@ is a @TextureEnvTarget@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_ENV'.
+--
+-- The parameter @pname@ is a @TextureEnvParameter@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_ENV_COLOR', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_ENV_MODE'.
+--
+-- The parameter @param@ is a @CheckedInt32@.
+
+
+glTexEnvi :: MonadIO m => GLenum -> GLenum -> GLint -> m ()
+glTexEnvi = ffienumenumintIOV glTexEnviFunPtr
+
+glTexEnviFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> IO ())
+glTexEnviFunPtr = unsafePerformIO (getProcAddress "glTexEnvi")
+
+{-# NOINLINE glTexEnviFunPtr #-}
+
+-- | Usage: @'glTexEnviv' target pname params@
+--
+-- The parameter @target@ is a @TextureEnvTarget@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_ENV'.
+--
+-- The parameter @pname@ is a @TextureEnvParameter@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_ENV_COLOR', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_ENV_MODE'.
+--
+-- The parameter @params@ is a @CheckedInt32@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glTexEnviv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
+glTexEnviv = ffienumenumPtrintIOV glTexEnvivFunPtr
+
+glTexEnvivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+glTexEnvivFunPtr = unsafePerformIO (getProcAddress "glTexEnviv")
+
+{-# NOINLINE glTexEnvivFunPtr #-}
+
+-- | Usage: @'glTexGend' coord pname param@
+--
+-- The parameter @coord@ is a @TextureCoordName@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_S', 'Graphics.GL.Raw.Internal.Shared.GL_T', 'Graphics.GL.Raw.Internal.Shared.GL_R', 'Graphics.GL.Raw.Internal.Shared.GL_Q'.
+--
+-- The parameter @pname@ is a @TextureGenParameter@, one of: 'Graphics.GL.Raw.Extension.SGIS.PointLineTexgen.GL_EYE_LINE_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_EYE_PLANE', 'Graphics.GL.Raw.Extension.SGIS.PointLineTexgen.GL_EYE_POINT_SGIS', 'Graphics.GL.Raw.Extension.SGIS.PointLineTexgen.GL_OBJECT_LINE_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_OBJECT_PLANE', 'Graphics.GL.Raw.Extension.SGIS.PointLineTexgen.GL_OBJECT_POINT_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_GEN_MODE'.
+
+
+glTexGend :: MonadIO m => GLenum -> GLenum -> GLdouble -> m ()
+glTexGend = ffienumenumdoubleIOV glTexGendFunPtr
+
+glTexGendFunPtr :: FunPtr (GLenum -> GLenum -> GLdouble -> IO ())
+glTexGendFunPtr = unsafePerformIO (getProcAddress "glTexGend")
+
+{-# NOINLINE glTexGendFunPtr #-}
+
+-- | Usage: @'glTexGendv' coord pname params@
+--
+-- The parameter @coord@ is a @TextureCoordName@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_S', 'Graphics.GL.Raw.Internal.Shared.GL_T', 'Graphics.GL.Raw.Internal.Shared.GL_R', 'Graphics.GL.Raw.Internal.Shared.GL_Q'.
+--
+-- The parameter @pname@ is a @TextureGenParameter@, one of: 'Graphics.GL.Raw.Extension.SGIS.PointLineTexgen.GL_EYE_LINE_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_EYE_PLANE', 'Graphics.GL.Raw.Extension.SGIS.PointLineTexgen.GL_EYE_POINT_SGIS', 'Graphics.GL.Raw.Extension.SGIS.PointLineTexgen.GL_OBJECT_LINE_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_OBJECT_PLANE', 'Graphics.GL.Raw.Extension.SGIS.PointLineTexgen.GL_OBJECT_POINT_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_GEN_MODE'.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glTexGendv :: MonadIO m => GLenum -> GLenum -> Ptr GLdouble -> m ()
+glTexGendv = ffienumenumPtrdoubleIOV glTexGendvFunPtr
+
+glTexGendvFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLdouble -> IO ())
+glTexGendvFunPtr = unsafePerformIO (getProcAddress "glTexGendv")
+
+{-# NOINLINE glTexGendvFunPtr #-}
+
+-- | Usage: @'glTexGenf' coord pname param@
+--
+-- The parameter @coord@ is a @TextureCoordName@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_S', 'Graphics.GL.Raw.Internal.Shared.GL_T', 'Graphics.GL.Raw.Internal.Shared.GL_R', 'Graphics.GL.Raw.Internal.Shared.GL_Q'.
+--
+-- The parameter @pname@ is a @TextureGenParameter@, one of: 'Graphics.GL.Raw.Extension.SGIS.PointLineTexgen.GL_EYE_LINE_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_EYE_PLANE', 'Graphics.GL.Raw.Extension.SGIS.PointLineTexgen.GL_EYE_POINT_SGIS', 'Graphics.GL.Raw.Extension.SGIS.PointLineTexgen.GL_OBJECT_LINE_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_OBJECT_PLANE', 'Graphics.GL.Raw.Extension.SGIS.PointLineTexgen.GL_OBJECT_POINT_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_GEN_MODE'.
+--
+-- The parameter @param@ is a @CheckedFloat32@.
+
+
+glTexGenf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()
+glTexGenf = ffienumenumfloatIOV glTexGenfFunPtr
+
+glTexGenfFunPtr :: FunPtr (GLenum -> GLenum -> GLfloat -> IO ())
+glTexGenfFunPtr = unsafePerformIO (getProcAddress "glTexGenf")
+
+{-# NOINLINE glTexGenfFunPtr #-}
+
+-- | Usage: @'glTexGenfv' coord pname params@
+--
+-- The parameter @coord@ is a @TextureCoordName@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_S', 'Graphics.GL.Raw.Internal.Shared.GL_T', 'Graphics.GL.Raw.Internal.Shared.GL_R', 'Graphics.GL.Raw.Internal.Shared.GL_Q'.
+--
+-- The parameter @pname@ is a @TextureGenParameter@, one of: 'Graphics.GL.Raw.Extension.SGIS.PointLineTexgen.GL_EYE_LINE_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_EYE_PLANE', 'Graphics.GL.Raw.Extension.SGIS.PointLineTexgen.GL_EYE_POINT_SGIS', 'Graphics.GL.Raw.Extension.SGIS.PointLineTexgen.GL_OBJECT_LINE_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_OBJECT_PLANE', 'Graphics.GL.Raw.Extension.SGIS.PointLineTexgen.GL_OBJECT_POINT_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_GEN_MODE'.
+--
+-- The parameter @params@ is a @CheckedFloat32@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glTexGenfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
+glTexGenfv = ffienumenumPtrfloatIOV glTexGenfvFunPtr
+
+glTexGenfvFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
+glTexGenfvFunPtr = unsafePerformIO (getProcAddress "glTexGenfv")
+
+{-# NOINLINE glTexGenfvFunPtr #-}
+
+-- | Usage: @'glTexGeni' coord pname param@
+--
+-- The parameter @coord@ is a @TextureCoordName@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_S', 'Graphics.GL.Raw.Internal.Shared.GL_T', 'Graphics.GL.Raw.Internal.Shared.GL_R', 'Graphics.GL.Raw.Internal.Shared.GL_Q'.
+--
+-- The parameter @pname@ is a @TextureGenParameter@, one of: 'Graphics.GL.Raw.Extension.SGIS.PointLineTexgen.GL_EYE_LINE_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_EYE_PLANE', 'Graphics.GL.Raw.Extension.SGIS.PointLineTexgen.GL_EYE_POINT_SGIS', 'Graphics.GL.Raw.Extension.SGIS.PointLineTexgen.GL_OBJECT_LINE_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_OBJECT_PLANE', 'Graphics.GL.Raw.Extension.SGIS.PointLineTexgen.GL_OBJECT_POINT_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_GEN_MODE'.
+--
+-- The parameter @param@ is a @CheckedInt32@.
+
+
+glTexGeni :: MonadIO m => GLenum -> GLenum -> GLint -> m ()
+glTexGeni = ffienumenumintIOV glTexGeniFunPtr
+
+glTexGeniFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> IO ())
+glTexGeniFunPtr = unsafePerformIO (getProcAddress "glTexGeni")
+
+{-# NOINLINE glTexGeniFunPtr #-}
+
+-- | Usage: @'glTexGeniv' coord pname params@
+--
+-- The parameter @coord@ is a @TextureCoordName@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_S', 'Graphics.GL.Raw.Internal.Shared.GL_T', 'Graphics.GL.Raw.Internal.Shared.GL_R', 'Graphics.GL.Raw.Internal.Shared.GL_Q'.
+--
+-- The parameter @pname@ is a @TextureGenParameter@, one of: 'Graphics.GL.Raw.Extension.SGIS.PointLineTexgen.GL_EYE_LINE_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_EYE_PLANE', 'Graphics.GL.Raw.Extension.SGIS.PointLineTexgen.GL_EYE_POINT_SGIS', 'Graphics.GL.Raw.Extension.SGIS.PointLineTexgen.GL_OBJECT_LINE_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_OBJECT_PLANE', 'Graphics.GL.Raw.Extension.SGIS.PointLineTexgen.GL_OBJECT_POINT_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_GEN_MODE'.
+--
+-- The parameter @params@ is a @CheckedInt32@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glTexGeniv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
+glTexGeniv = ffienumenumPtrintIOV glTexGenivFunPtr
+
+glTexGenivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+glTexGenivFunPtr = unsafePerformIO (getProcAddress "glTexGeniv")
+
+{-# NOINLINE glTexGenivFunPtr #-}
+
+-- | Usage: @'glTranslated' x y z@
+
+
+glTranslated :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()
+glTranslated = ffidoubledoubledoubleIOV glTranslatedFunPtr
+
+glTranslatedFunPtr :: FunPtr (GLdouble -> GLdouble -> GLdouble -> IO ())
+glTranslatedFunPtr = unsafePerformIO (getProcAddress "glTranslated")
+
+{-# NOINLINE glTranslatedFunPtr #-}
+
+-- | Usage: @'glTranslatef' x y z@
+
+
+glTranslatef :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()
+glTranslatef = ffifloatfloatfloatIOV glTranslatefFunPtr
+
+glTranslatefFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> IO ())
+glTranslatefFunPtr = unsafePerformIO (getProcAddress "glTranslatef")
+
+{-# NOINLINE glTranslatefFunPtr #-}
+
+-- | Usage: @'glVertex2d' x y@
+--
+-- The parameter @x@ is a @CoordD@.
+--
+-- The parameter @y@ is a @CoordD@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glVertex2dv'.
+
+
+glVertex2d :: MonadIO m => GLdouble -> GLdouble -> m ()
+glVertex2d = ffidoubledoubleIOV glVertex2dFunPtr
+
+glVertex2dFunPtr :: FunPtr (GLdouble -> GLdouble -> IO ())
+glVertex2dFunPtr = unsafePerformIO (getProcAddress "glVertex2d")
+
+{-# NOINLINE glVertex2dFunPtr #-}
+
+-- | Usage: @'glVertex2dv' v@
+--
+-- The parameter @v@ is a @CoordD@.
+--
+-- The length of @v@ should be @2@.
+
+
+glVertex2dv :: MonadIO m => Ptr GLdouble -> m ()
+glVertex2dv = ffiPtrdoubleIOV glVertex2dvFunPtr
+
+glVertex2dvFunPtr :: FunPtr (Ptr GLdouble -> IO ())
+glVertex2dvFunPtr = unsafePerformIO (getProcAddress "glVertex2dv")
+
+{-# NOINLINE glVertex2dvFunPtr #-}
+
+-- | Usage: @'glVertex2f' x y@
+--
+-- The parameter @x@ is a @CoordF@.
+--
+-- The parameter @y@ is a @CoordF@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glVertex2fv'.
+
+
+glVertex2f :: MonadIO m => GLfloat -> GLfloat -> m ()
+glVertex2f = ffifloatfloatIOV glVertex2fFunPtr
+
+glVertex2fFunPtr :: FunPtr (GLfloat -> GLfloat -> IO ())
+glVertex2fFunPtr = unsafePerformIO (getProcAddress "glVertex2f")
+
+{-# NOINLINE glVertex2fFunPtr #-}
+
+-- | Usage: @'glVertex2fv' v@
+--
+-- The parameter @v@ is a @CoordF@.
+--
+-- The length of @v@ should be @2@.
+
+
+glVertex2fv :: MonadIO m => Ptr GLfloat -> m ()
+glVertex2fv = ffiPtrfloatIOV glVertex2fvFunPtr
+
+glVertex2fvFunPtr :: FunPtr (Ptr GLfloat -> IO ())
+glVertex2fvFunPtr = unsafePerformIO (getProcAddress "glVertex2fv")
+
+{-# NOINLINE glVertex2fvFunPtr #-}
+
+-- | Usage: @'glVertex2i' x y@
+--
+-- The parameter @x@ is a @CoordI@.
+--
+-- The parameter @y@ is a @CoordI@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glVertex2iv'.
+
+
+glVertex2i :: MonadIO m => GLint -> GLint -> m ()
+glVertex2i = ffiintintIOV glVertex2iFunPtr
+
+glVertex2iFunPtr :: FunPtr (GLint -> GLint -> IO ())
+glVertex2iFunPtr = unsafePerformIO (getProcAddress "glVertex2i")
+
+{-# NOINLINE glVertex2iFunPtr #-}
+
+-- | Usage: @'glVertex2iv' v@
+--
+-- The parameter @v@ is a @CoordI@.
+--
+-- The length of @v@ should be @2@.
+
+
+glVertex2iv :: MonadIO m => Ptr GLint -> m ()
+glVertex2iv = ffiPtrintIOV glVertex2ivFunPtr
+
+glVertex2ivFunPtr :: FunPtr (Ptr GLint -> IO ())
+glVertex2ivFunPtr = unsafePerformIO (getProcAddress "glVertex2iv")
+
+{-# NOINLINE glVertex2ivFunPtr #-}
+
+-- | Usage: @'glVertex2s' x y@
+--
+-- The parameter @x@ is a @CoordS@.
+--
+-- The parameter @y@ is a @CoordS@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glVertex2sv'.
+
+
+glVertex2s :: MonadIO m => GLshort -> GLshort -> m ()
+glVertex2s = ffishortshortIOV glVertex2sFunPtr
+
+glVertex2sFunPtr :: FunPtr (GLshort -> GLshort -> IO ())
+glVertex2sFunPtr = unsafePerformIO (getProcAddress "glVertex2s")
+
+{-# NOINLINE glVertex2sFunPtr #-}
+
+-- | Usage: @'glVertex2sv' v@
+--
+-- The parameter @v@ is a @CoordS@.
+--
+-- The length of @v@ should be @2@.
+
+
+glVertex2sv :: MonadIO m => Ptr GLshort -> m ()
+glVertex2sv = ffiPtrshortIOV glVertex2svFunPtr
+
+glVertex2svFunPtr :: FunPtr (Ptr GLshort -> IO ())
+glVertex2svFunPtr = unsafePerformIO (getProcAddress "glVertex2sv")
+
+{-# NOINLINE glVertex2svFunPtr #-}
+
+-- | Usage: @'glVertex3d' x y z@
+--
+-- The parameter @x@ is a @CoordD@.
+--
+-- The parameter @y@ is a @CoordD@.
+--
+-- The parameter @z@ is a @CoordD@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glVertex3dv'.
+
+
+glVertex3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()
+glVertex3d = ffidoubledoubledoubleIOV glVertex3dFunPtr
+
+glVertex3dFunPtr :: FunPtr (GLdouble -> GLdouble -> GLdouble -> IO ())
+glVertex3dFunPtr = unsafePerformIO (getProcAddress "glVertex3d")
+
+{-# NOINLINE glVertex3dFunPtr #-}
+
+-- | Usage: @'glVertex3dv' v@
+--
+-- The parameter @v@ is a @CoordD@.
+--
+-- The length of @v@ should be @3@.
+
+
+glVertex3dv :: MonadIO m => Ptr GLdouble -> m ()
+glVertex3dv = ffiPtrdoubleIOV glVertex3dvFunPtr
+
+glVertex3dvFunPtr :: FunPtr (Ptr GLdouble -> IO ())
+glVertex3dvFunPtr = unsafePerformIO (getProcAddress "glVertex3dv")
+
+{-# NOINLINE glVertex3dvFunPtr #-}
+
+-- | Usage: @'glVertex3f' x y z@
+--
+-- The parameter @x@ is a @CoordF@.
+--
+-- The parameter @y@ is a @CoordF@.
+--
+-- The parameter @z@ is a @CoordF@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glVertex3fv'.
+
+
+glVertex3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()
+glVertex3f = ffifloatfloatfloatIOV glVertex3fFunPtr
+
+glVertex3fFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> IO ())
+glVertex3fFunPtr = unsafePerformIO (getProcAddress "glVertex3f")
+
+{-# NOINLINE glVertex3fFunPtr #-}
+
+-- | Usage: @'glVertex3fv' v@
+--
+-- The parameter @v@ is a @CoordF@.
+--
+-- The length of @v@ should be @3@.
+
+
+glVertex3fv :: MonadIO m => Ptr GLfloat -> m ()
+glVertex3fv = ffiPtrfloatIOV glVertex3fvFunPtr
+
+glVertex3fvFunPtr :: FunPtr (Ptr GLfloat -> IO ())
+glVertex3fvFunPtr = unsafePerformIO (getProcAddress "glVertex3fv")
+
+{-# NOINLINE glVertex3fvFunPtr #-}
+
+-- | Usage: @'glVertex3i' x y z@
+--
+-- The parameter @x@ is a @CoordI@.
+--
+-- The parameter @y@ is a @CoordI@.
+--
+-- The parameter @z@ is a @CoordI@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glVertex3iv'.
+
+
+glVertex3i :: MonadIO m => GLint -> GLint -> GLint -> m ()
+glVertex3i = ffiintintintIOV glVertex3iFunPtr
+
+glVertex3iFunPtr :: FunPtr (GLint -> GLint -> GLint -> IO ())
+glVertex3iFunPtr = unsafePerformIO (getProcAddress "glVertex3i")
+
+{-# NOINLINE glVertex3iFunPtr #-}
+
+-- | Usage: @'glVertex3iv' v@
+--
+-- The parameter @v@ is a @CoordI@.
+--
+-- The length of @v@ should be @3@.
+
+
+glVertex3iv :: MonadIO m => Ptr GLint -> m ()
+glVertex3iv = ffiPtrintIOV glVertex3ivFunPtr
+
+glVertex3ivFunPtr :: FunPtr (Ptr GLint -> IO ())
+glVertex3ivFunPtr = unsafePerformIO (getProcAddress "glVertex3iv")
+
+{-# NOINLINE glVertex3ivFunPtr #-}
+
+-- | Usage: @'glVertex3s' x y z@
+--
+-- The parameter @x@ is a @CoordS@.
+--
+-- The parameter @y@ is a @CoordS@.
+--
+-- The parameter @z@ is a @CoordS@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glVertex3sv'.
+
+
+glVertex3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()
+glVertex3s = ffishortshortshortIOV glVertex3sFunPtr
+
+glVertex3sFunPtr :: FunPtr (GLshort -> GLshort -> GLshort -> IO ())
+glVertex3sFunPtr = unsafePerformIO (getProcAddress "glVertex3s")
+
+{-# NOINLINE glVertex3sFunPtr #-}
+
+-- | Usage: @'glVertex3sv' v@
+--
+-- The parameter @v@ is a @CoordS@.
+--
+-- The length of @v@ should be @3@.
+
+
+glVertex3sv :: MonadIO m => Ptr GLshort -> m ()
+glVertex3sv = ffiPtrshortIOV glVertex3svFunPtr
+
+glVertex3svFunPtr :: FunPtr (Ptr GLshort -> IO ())
+glVertex3svFunPtr = unsafePerformIO (getProcAddress "glVertex3sv")
+
+{-# NOINLINE glVertex3svFunPtr #-}
+
+-- | Usage: @'glVertex4d' x y z w@
+--
+-- The parameter @x@ is a @CoordD@.
+--
+-- The parameter @y@ is a @CoordD@.
+--
+-- The parameter @z@ is a @CoordD@.
+--
+-- The parameter @w@ is a @CoordD@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glVertex4dv'.
+
+
+glVertex4d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
+glVertex4d = ffidoubledoubledoubledoubleIOV glVertex4dFunPtr
+
+glVertex4dFunPtr :: FunPtr (GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
+glVertex4dFunPtr = unsafePerformIO (getProcAddress "glVertex4d")
+
+{-# NOINLINE glVertex4dFunPtr #-}
+
+-- | Usage: @'glVertex4dv' v@
+--
+-- The parameter @v@ is a @CoordD@.
+--
+-- The length of @v@ should be @4@.
+
+
+glVertex4dv :: MonadIO m => Ptr GLdouble -> m ()
+glVertex4dv = ffiPtrdoubleIOV glVertex4dvFunPtr
+
+glVertex4dvFunPtr :: FunPtr (Ptr GLdouble -> IO ())
+glVertex4dvFunPtr = unsafePerformIO (getProcAddress "glVertex4dv")
+
+{-# NOINLINE glVertex4dvFunPtr #-}
+
+-- | Usage: @'glVertex4f' x y z w@
+--
+-- The parameter @x@ is a @CoordF@.
+--
+-- The parameter @y@ is a @CoordF@.
+--
+-- The parameter @z@ is a @CoordF@.
+--
+-- The parameter @w@ is a @CoordF@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glVertex4fv'.
+
+
+glVertex4f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
+glVertex4f = ffifloatfloatfloatfloatIOV glVertex4fFunPtr
+
+glVertex4fFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+glVertex4fFunPtr = unsafePerformIO (getProcAddress "glVertex4f")
+
+{-# NOINLINE glVertex4fFunPtr #-}
+
+-- | Usage: @'glVertex4fv' v@
+--
+-- The parameter @v@ is a @CoordF@.
+--
+-- The length of @v@ should be @4@.
+
+
+glVertex4fv :: MonadIO m => Ptr GLfloat -> m ()
+glVertex4fv = ffiPtrfloatIOV glVertex4fvFunPtr
+
+glVertex4fvFunPtr :: FunPtr (Ptr GLfloat -> IO ())
+glVertex4fvFunPtr = unsafePerformIO (getProcAddress "glVertex4fv")
+
+{-# NOINLINE glVertex4fvFunPtr #-}
+
+-- | Usage: @'glVertex4i' x y z w@
+--
+-- The parameter @x@ is a @CoordI@.
+--
+-- The parameter @y@ is a @CoordI@.
+--
+-- The parameter @z@ is a @CoordI@.
+--
+-- The parameter @w@ is a @CoordI@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glVertex4iv'.
+
+
+glVertex4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()
+glVertex4i = ffiintintintintIOV glVertex4iFunPtr
+
+glVertex4iFunPtr :: FunPtr (GLint -> GLint -> GLint -> GLint -> IO ())
+glVertex4iFunPtr = unsafePerformIO (getProcAddress "glVertex4i")
+
+{-# NOINLINE glVertex4iFunPtr #-}
+
+-- | Usage: @'glVertex4iv' v@
+--
+-- The parameter @v@ is a @CoordI@.
+--
+-- The length of @v@ should be @4@.
+
+
+glVertex4iv :: MonadIO m => Ptr GLint -> m ()
+glVertex4iv = ffiPtrintIOV glVertex4ivFunPtr
+
+glVertex4ivFunPtr :: FunPtr (Ptr GLint -> IO ())
+glVertex4ivFunPtr = unsafePerformIO (getProcAddress "glVertex4iv")
+
+{-# NOINLINE glVertex4ivFunPtr #-}
+
+-- | Usage: @'glVertex4s' x y z w@
+--
+-- The parameter @x@ is a @CoordS@.
+--
+-- The parameter @y@ is a @CoordS@.
+--
+-- The parameter @z@ is a @CoordS@.
+--
+-- The parameter @w@ is a @CoordS@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glVertex4sv'.
+
+
+glVertex4s :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()
+glVertex4s = ffishortshortshortshortIOV glVertex4sFunPtr
+
+glVertex4sFunPtr :: FunPtr (GLshort -> GLshort -> GLshort -> GLshort -> IO ())
+glVertex4sFunPtr = unsafePerformIO (getProcAddress "glVertex4s")
+
+{-# NOINLINE glVertex4sFunPtr #-}
+
+-- | Usage: @'glVertex4sv' v@
+--
+-- The parameter @v@ is a @CoordS@.
+--
+-- The length of @v@ should be @4@.
+
+
+glVertex4sv :: MonadIO m => Ptr GLshort -> m ()
+glVertex4sv = ffiPtrshortIOV glVertex4svFunPtr
+
+glVertex4svFunPtr :: FunPtr (Ptr GLshort -> IO ())
+glVertex4svFunPtr = unsafePerformIO (getProcAddress "glVertex4sv")
+
+{-# NOINLINE glVertex4svFunPtr #-}
+
+-- | Usage: @'glVertexPointer' size type stride pointer@
+--
+-- The parameter @type@ is a @VertexPointerType@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_DOUBLE', 'Graphics.GL.Raw.Internal.Shared.GL_FLOAT', 'Graphics.GL.Raw.Internal.Shared.GL_INT', 'Graphics.GL.Raw.Internal.Shared.GL_SHORT'.
+--
+-- The length of @pointer@ should be @COMPSIZE(size,type,stride)@.
+
+
+glVertexPointer :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr () -> m ()
+glVertexPointer = ffiintenumsizeiPtrVIOV glVertexPointerFunPtr
+
+glVertexPointerFunPtr :: FunPtr (GLint -> GLenum -> GLsizei -> Ptr () -> IO ())
+glVertexPointerFunPtr = unsafePerformIO (getProcAddress "glVertexPointer")
+
+{-# NOINLINE glVertexPointerFunPtr #-}
+
+-- | Usage: @'glWindowPos2d' x y@
+--
+-- The parameter @x@ is a @CoordD@.
+--
+-- The parameter @y@ is a @CoordD@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glWindowPos2dv'.
+
+
+glWindowPos2d :: MonadIO m => GLdouble -> GLdouble -> m ()
+glWindowPos2d = ffidoubledoubleIOV glWindowPos2dFunPtr
+
+glWindowPos2dFunPtr :: FunPtr (GLdouble -> GLdouble -> IO ())
+glWindowPos2dFunPtr = unsafePerformIO (getProcAddress "glWindowPos2d")
+
+{-# NOINLINE glWindowPos2dFunPtr #-}
+
+-- | Usage: @'glWindowPos2dv' v@
+--
+-- The parameter @v@ is a @CoordD@.
+--
+-- The length of @v@ should be @2@.
+
+
+glWindowPos2dv :: MonadIO m => Ptr GLdouble -> m ()
+glWindowPos2dv = ffiPtrdoubleIOV glWindowPos2dvFunPtr
+
+glWindowPos2dvFunPtr :: FunPtr (Ptr GLdouble -> IO ())
+glWindowPos2dvFunPtr = unsafePerformIO (getProcAddress "glWindowPos2dv")
+
+{-# NOINLINE glWindowPos2dvFunPtr #-}
+
+-- | Usage: @'glWindowPos2f' x y@
+--
+-- The parameter @x@ is a @CoordF@.
+--
+-- The parameter @y@ is a @CoordF@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glWindowPos2fv'.
+
+
+glWindowPos2f :: MonadIO m => GLfloat -> GLfloat -> m ()
+glWindowPos2f = ffifloatfloatIOV glWindowPos2fFunPtr
+
+glWindowPos2fFunPtr :: FunPtr (GLfloat -> GLfloat -> IO ())
+glWindowPos2fFunPtr = unsafePerformIO (getProcAddress "glWindowPos2f")
+
+{-# NOINLINE glWindowPos2fFunPtr #-}
+
+-- | Usage: @'glWindowPos2fv' v@
+--
+-- The parameter @v@ is a @CoordF@.
+--
+-- The length of @v@ should be @2@.
+
+
+glWindowPos2fv :: MonadIO m => Ptr GLfloat -> m ()
+glWindowPos2fv = ffiPtrfloatIOV glWindowPos2fvFunPtr
+
+glWindowPos2fvFunPtr :: FunPtr (Ptr GLfloat -> IO ())
+glWindowPos2fvFunPtr = unsafePerformIO (getProcAddress "glWindowPos2fv")
+
+{-# NOINLINE glWindowPos2fvFunPtr #-}
+
+-- | Usage: @'glWindowPos2i' x y@
+--
+-- The parameter @x@ is a @CoordI@.
+--
+-- The parameter @y@ is a @CoordI@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glWindowPos2iv'.
+
+
+glWindowPos2i :: MonadIO m => GLint -> GLint -> m ()
+glWindowPos2i = ffiintintIOV glWindowPos2iFunPtr
+
+glWindowPos2iFunPtr :: FunPtr (GLint -> GLint -> IO ())
+glWindowPos2iFunPtr = unsafePerformIO (getProcAddress "glWindowPos2i")
+
+{-# NOINLINE glWindowPos2iFunPtr #-}
+
+-- | Usage: @'glWindowPos2iv' v@
+--
+-- The parameter @v@ is a @CoordI@.
+--
+-- The length of @v@ should be @2@.
+
+
+glWindowPos2iv :: MonadIO m => Ptr GLint -> m ()
+glWindowPos2iv = ffiPtrintIOV glWindowPos2ivFunPtr
+
+glWindowPos2ivFunPtr :: FunPtr (Ptr GLint -> IO ())
+glWindowPos2ivFunPtr = unsafePerformIO (getProcAddress "glWindowPos2iv")
+
+{-# NOINLINE glWindowPos2ivFunPtr #-}
+
+-- | Usage: @'glWindowPos2s' x y@
+--
+-- The parameter @x@ is a @CoordS@.
+--
+-- The parameter @y@ is a @CoordS@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glWindowPos2sv'.
+
+
+glWindowPos2s :: MonadIO m => GLshort -> GLshort -> m ()
+glWindowPos2s = ffishortshortIOV glWindowPos2sFunPtr
+
+glWindowPos2sFunPtr :: FunPtr (GLshort -> GLshort -> IO ())
+glWindowPos2sFunPtr = unsafePerformIO (getProcAddress "glWindowPos2s")
+
+{-# NOINLINE glWindowPos2sFunPtr #-}
+
+-- | Usage: @'glWindowPos2sv' v@
+--
+-- The parameter @v@ is a @CoordS@.
+--
+-- The length of @v@ should be @2@.
+
+
+glWindowPos2sv :: MonadIO m => Ptr GLshort -> m ()
+glWindowPos2sv = ffiPtrshortIOV glWindowPos2svFunPtr
+
+glWindowPos2svFunPtr :: FunPtr (Ptr GLshort -> IO ())
+glWindowPos2svFunPtr = unsafePerformIO (getProcAddress "glWindowPos2sv")
+
+{-# NOINLINE glWindowPos2svFunPtr #-}
+
+-- | Usage: @'glWindowPos3d' x y z@
+--
+-- The parameter @x@ is a @CoordD@.
+--
+-- The parameter @y@ is a @CoordD@.
+--
+-- The parameter @z@ is a @CoordD@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glWindowPos3dv'.
+
+
+glWindowPos3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()
+glWindowPos3d = ffidoubledoubledoubleIOV glWindowPos3dFunPtr
+
+glWindowPos3dFunPtr :: FunPtr (GLdouble -> GLdouble -> GLdouble -> IO ())
+glWindowPos3dFunPtr = unsafePerformIO (getProcAddress "glWindowPos3d")
+
+{-# NOINLINE glWindowPos3dFunPtr #-}
+
+-- | Usage: @'glWindowPos3dv' v@
+--
+-- The parameter @v@ is a @CoordD@.
+--
+-- The length of @v@ should be @3@.
+
+
+glWindowPos3dv :: MonadIO m => Ptr GLdouble -> m ()
+glWindowPos3dv = ffiPtrdoubleIOV glWindowPos3dvFunPtr
+
+glWindowPos3dvFunPtr :: FunPtr (Ptr GLdouble -> IO ())
+glWindowPos3dvFunPtr = unsafePerformIO (getProcAddress "glWindowPos3dv")
+
+{-# NOINLINE glWindowPos3dvFunPtr #-}
+
+-- | Usage: @'glWindowPos3f' x y z@
+--
+-- The parameter @x@ is a @CoordF@.
+--
+-- The parameter @y@ is a @CoordF@.
+--
+-- The parameter @z@ is a @CoordF@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glWindowPos3fv'.
+
+
+glWindowPos3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()
+glWindowPos3f = ffifloatfloatfloatIOV glWindowPos3fFunPtr
+
+glWindowPos3fFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> IO ())
+glWindowPos3fFunPtr = unsafePerformIO (getProcAddress "glWindowPos3f")
+
+{-# NOINLINE glWindowPos3fFunPtr #-}
+
+-- | Usage: @'glWindowPos3fv' v@
+--
+-- The parameter @v@ is a @CoordF@.
+--
+-- The length of @v@ should be @3@.
+
+
+glWindowPos3fv :: MonadIO m => Ptr GLfloat -> m ()
+glWindowPos3fv = ffiPtrfloatIOV glWindowPos3fvFunPtr
+
+glWindowPos3fvFunPtr :: FunPtr (Ptr GLfloat -> IO ())
+glWindowPos3fvFunPtr = unsafePerformIO (getProcAddress "glWindowPos3fv")
+
+{-# NOINLINE glWindowPos3fvFunPtr #-}
+
+-- | Usage: @'glWindowPos3i' x y z@
+--
+-- The parameter @x@ is a @CoordI@.
+--
+-- The parameter @y@ is a @CoordI@.
+--
+-- The parameter @z@ is a @CoordI@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glWindowPos3iv'.
+
+
+glWindowPos3i :: MonadIO m => GLint -> GLint -> GLint -> m ()
+glWindowPos3i = ffiintintintIOV glWindowPos3iFunPtr
+
+glWindowPos3iFunPtr :: FunPtr (GLint -> GLint -> GLint -> IO ())
+glWindowPos3iFunPtr = unsafePerformIO (getProcAddress "glWindowPos3i")
+
+{-# NOINLINE glWindowPos3iFunPtr #-}
+
+-- | Usage: @'glWindowPos3iv' v@
+--
+-- The parameter @v@ is a @CoordI@.
+--
+-- The length of @v@ should be @3@.
+
+
+glWindowPos3iv :: MonadIO m => Ptr GLint -> m ()
+glWindowPos3iv = ffiPtrintIOV glWindowPos3ivFunPtr
+
+glWindowPos3ivFunPtr :: FunPtr (Ptr GLint -> IO ())
+glWindowPos3ivFunPtr = unsafePerformIO (getProcAddress "glWindowPos3iv")
+
+{-# NOINLINE glWindowPos3ivFunPtr #-}
+
+-- | Usage: @'glWindowPos3s' x y z@
+--
+-- The parameter @x@ is a @CoordS@.
+--
+-- The parameter @y@ is a @CoordS@.
+--
+-- The parameter @z@ is a @CoordS@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glWindowPos3sv'.
+
+
+glWindowPos3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()
+glWindowPos3s = ffishortshortshortIOV glWindowPos3sFunPtr
+
+glWindowPos3sFunPtr :: FunPtr (GLshort -> GLshort -> GLshort -> IO ())
+glWindowPos3sFunPtr = unsafePerformIO (getProcAddress "glWindowPos3s")
+
+{-# NOINLINE glWindowPos3sFunPtr #-}
+
+-- | Usage: @'glWindowPos3sv' v@
+--
+-- The parameter @v@ is a @CoordS@.
+--
+-- The length of @v@ should be @3@.
+
+
+glWindowPos3sv :: MonadIO m => Ptr GLshort -> m ()
+glWindowPos3sv = ffiPtrshortIOV glWindowPos3svFunPtr
+
+glWindowPos3svFunPtr :: FunPtr (Ptr GLshort -> IO ())
+glWindowPos3svFunPtr = unsafePerformIO (getProcAddress "glWindowPos3sv")
+
+{-# NOINLINE glWindowPos3svFunPtr #-}
+
+pattern GL_2D = 0x0600
+
+pattern GL_2_BYTES = 0x1407
+
+pattern GL_3D = 0x0601
+
+pattern GL_3D_COLOR = 0x0602
+
+pattern GL_3D_COLOR_TEXTURE = 0x0603
+
+pattern GL_3_BYTES = 0x1408
+
+pattern GL_4D_COLOR_TEXTURE = 0x0604
+
+pattern GL_4_BYTES = 0x1409
+
+pattern GL_ACCUM = 0x0100
+
+pattern GL_ACCUM_ALPHA_BITS = 0x0D5B
+
+pattern GL_ACCUM_BLUE_BITS = 0x0D5A
+
+pattern GL_ACCUM_BUFFER_BIT = 0x00000200
+
+pattern GL_ACCUM_CLEAR_VALUE = 0x0B80
+
+pattern GL_ACCUM_GREEN_BITS = 0x0D59
+
+pattern GL_ACCUM_RED_BITS = 0x0D58
+
+pattern GL_ADD = 0x0104
+
+pattern GL_ADD_SIGNED = 0x8574
+
+pattern GL_ALIASED_POINT_SIZE_RANGE = 0x846D
+
+pattern GL_ALL_ATTRIB_BITS = 0xFFFFFFFF
+
+pattern GL_ALPHA12 = 0x803D
+
+pattern GL_ALPHA16 = 0x803E
+
+pattern GL_ALPHA4 = 0x803B
+
+pattern GL_ALPHA8 = 0x803C
+
+pattern GL_ALPHA_BIAS = 0x0D1D
+
+pattern GL_ALPHA_BITS = 0x0D55
+
+pattern GL_ALPHA_INTEGER = 0x8D97
+
+pattern GL_ALPHA_SCALE = 0x0D1C
+
+pattern GL_ALPHA_TEST = 0x0BC0
+
+pattern GL_ALPHA_TEST_FUNC = 0x0BC1
+
+pattern GL_ALPHA_TEST_REF = 0x0BC2
+
+pattern GL_AMBIENT = 0x1200
+
+pattern GL_AMBIENT_AND_DIFFUSE = 0x1602
+
+pattern GL_ATTRIB_STACK_DEPTH = 0x0BB0
+
+pattern GL_AUTO_NORMAL = 0x0D80
+
+pattern GL_AUX0 = 0x0409
+
+pattern GL_AUX1 = 0x040A
+
+pattern GL_AUX2 = 0x040B
+
+pattern GL_AUX3 = 0x040C
+
+pattern GL_AUX_BUFFERS = 0x0C00
+
+pattern GL_BITMAP = 0x1A00
+
+pattern GL_BITMAP_TOKEN = 0x0704
+
+pattern GL_BLUE_BIAS = 0x0D1B
+
+pattern GL_BLUE_BITS = 0x0D54
+
+pattern GL_BLUE_SCALE = 0x0D1A
+
+pattern GL_C3F_V3F = 0x2A24
+
+pattern GL_C4F_N3F_V3F = 0x2A26
+
+pattern GL_C4UB_V2F = 0x2A22
+
+pattern GL_C4UB_V3F = 0x2A23
+
+pattern GL_CLAMP = 0x2900
+
+pattern GL_CLAMP_FRAGMENT_COLOR = 0x891B
+
+pattern GL_CLAMP_VERTEX_COLOR = 0x891A
+
+pattern GL_CLIENT_ACTIVE_TEXTURE = 0x84E1
+
+pattern GL_CLIENT_ALL_ATTRIB_BITS = 0xFFFFFFFF
+
+pattern GL_CLIENT_ATTRIB_STACK_DEPTH = 0x0BB1
+
+pattern GL_CLIENT_PIXEL_STORE_BIT = 0x00000001
+
+pattern GL_CLIENT_VERTEX_ARRAY_BIT = 0x00000002
+
+pattern GL_CLIP_PLANE0 = 0x3000
+
+pattern GL_CLIP_PLANE1 = 0x3001
+
+pattern GL_CLIP_PLANE2 = 0x3002
+
+pattern GL_CLIP_PLANE3 = 0x3003
+
+pattern GL_CLIP_PLANE4 = 0x3004
+
+pattern GL_CLIP_PLANE5 = 0x3005
+
+pattern GL_COEFF = 0x0A00
+
+pattern GL_COLOR_ARRAY = 0x8076
+
+pattern GL_COLOR_ARRAY_BUFFER_BINDING = 0x8898
+
+pattern GL_COLOR_ARRAY_POINTER = 0x8090
+
+pattern GL_COLOR_ARRAY_SIZE = 0x8081
+
+pattern GL_COLOR_ARRAY_STRIDE = 0x8083
+
+pattern GL_COLOR_ARRAY_TYPE = 0x8082
+
+pattern GL_COLOR_INDEX = 0x1900
+
+pattern GL_COLOR_INDEXES = 0x1603
+
+pattern GL_COLOR_MATERIAL = 0x0B57
+
+pattern GL_COLOR_MATERIAL_FACE = 0x0B55
+
+pattern GL_COLOR_MATERIAL_PARAMETER = 0x0B56
+
+pattern GL_COLOR_SUM = 0x8458
+
+pattern GL_COMBINE = 0x8570
+
+pattern GL_COMBINE_ALPHA = 0x8572
+
+pattern GL_COMBINE_RGB = 0x8571
+
+pattern GL_COMPARE_R_TO_TEXTURE = 0x884E
+
+pattern GL_COMPILE = 0x1300
+
+pattern GL_COMPILE_AND_EXECUTE = 0x1301
+
+pattern GL_COMPRESSED_ALPHA = 0x84E9
+
+pattern GL_COMPRESSED_INTENSITY = 0x84EC
+
+pattern GL_COMPRESSED_LUMINANCE = 0x84EA
+
+pattern GL_COMPRESSED_LUMINANCE_ALPHA = 0x84EB
+
+pattern GL_COMPRESSED_SLUMINANCE = 0x8C4A
+
+pattern GL_COMPRESSED_SLUMINANCE_ALPHA = 0x8C4B
+
+pattern GL_CONSTANT = 0x8576
+
+pattern GL_CONSTANT_ATTENUATION = 0x1207
+
+pattern GL_COORD_REPLACE = 0x8862
+
+pattern GL_COPY_PIXEL_TOKEN = 0x0706
+
+pattern GL_CURRENT_BIT = 0x00000001
+
+pattern GL_CURRENT_COLOR = 0x0B00
+
+pattern GL_CURRENT_FOG_COORD = 0x8453
+
+pattern GL_CURRENT_FOG_COORDINATE = 0x8453
+
+pattern GL_CURRENT_INDEX = 0x0B01
+
+pattern GL_CURRENT_NORMAL = 0x0B02
+
+pattern GL_CURRENT_RASTER_COLOR = 0x0B04
+
+pattern GL_CURRENT_RASTER_DISTANCE = 0x0B09
+
+pattern GL_CURRENT_RASTER_INDEX = 0x0B05
+
+pattern GL_CURRENT_RASTER_POSITION = 0x0B07
+
+pattern GL_CURRENT_RASTER_POSITION_VALID = 0x0B08
+
+pattern GL_CURRENT_RASTER_SECONDARY_COLOR = 0x845F
+
+pattern GL_CURRENT_RASTER_TEXTURE_COORDS = 0x0B06
+
+pattern GL_CURRENT_SECONDARY_COLOR = 0x8459
+
+pattern GL_CURRENT_TEXTURE_COORDS = 0x0B03
+
+pattern GL_DECAL = 0x2101
+
+pattern GL_DEPTH_BIAS = 0x0D1F
+
+pattern GL_DEPTH_BITS = 0x0D56
+
+pattern GL_DEPTH_SCALE = 0x0D1E
+
+pattern GL_DEPTH_TEXTURE_MODE = 0x884B
+
+pattern GL_DIFFUSE = 0x1201
+
+pattern GL_DOMAIN = 0x0A02
+
+pattern GL_DOT3_RGB = 0x86AE
+
+pattern GL_DOT3_RGBA = 0x86AF
+
+pattern GL_DRAW_PIXEL_TOKEN = 0x0705
+
+pattern GL_EDGE_FLAG = 0x0B43
+
+pattern GL_EDGE_FLAG_ARRAY = 0x8079
+
+pattern GL_EDGE_FLAG_ARRAY_BUFFER_BINDING = 0x889B
+
+pattern GL_EDGE_FLAG_ARRAY_POINTER = 0x8093
+
+pattern GL_EDGE_FLAG_ARRAY_STRIDE = 0x808C
+
+pattern GL_EMISSION = 0x1600
+
+pattern GL_ENABLE_BIT = 0x00002000
+
+pattern GL_EVAL_BIT = 0x00010000
+
+pattern GL_EXP = 0x0800
+
+pattern GL_EXP2 = 0x0801
+
+pattern GL_EYE_LINEAR = 0x2400
+
+pattern GL_FEEDBACK = 0x1C01
+
+pattern GL_FEEDBACK_BUFFER_POINTER = 0x0DF0
+
+pattern GL_FEEDBACK_BUFFER_SIZE = 0x0DF1
+
+pattern GL_FEEDBACK_BUFFER_TYPE = 0x0DF2
+
+pattern GL_FLAT = 0x1D00
+
+pattern GL_FOG_BIT = 0x00000080
+
+pattern GL_FOG_COLOR = 0x0B66
+
+pattern GL_FOG_COORD = 0x8451
+
+pattern GL_FOG_COORDINATE = 0x8451
+
+pattern GL_FOG_COORDINATE_ARRAY = 0x8457
+
+pattern GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING = 0x889D
+
+pattern GL_FOG_COORDINATE_ARRAY_POINTER = 0x8456
+
+pattern GL_FOG_COORDINATE_ARRAY_STRIDE = 0x8455
+
+pattern GL_FOG_COORDINATE_ARRAY_TYPE = 0x8454
+
+pattern GL_FOG_COORDINATE_SOURCE = 0x8450
+
+pattern GL_FOG_COORD_ARRAY = 0x8457
+
+pattern GL_FOG_COORD_ARRAY_BUFFER_BINDING = 0x889D
+
+pattern GL_FOG_COORD_ARRAY_POINTER = 0x8456
+
+pattern GL_FOG_COORD_ARRAY_STRIDE = 0x8455
+
+pattern GL_FOG_COORD_ARRAY_TYPE = 0x8454
+
+pattern GL_FOG_COORD_SRC = 0x8450
+
+pattern GL_FOG_DENSITY = 0x0B62
+
+pattern GL_FOG_END = 0x0B64
+
+pattern GL_FOG_HINT = 0x0C54
+
+pattern GL_FOG_INDEX = 0x0B61
+
+pattern GL_FOG_MODE = 0x0B65
+
+pattern GL_FOG_START = 0x0B63
+
+pattern GL_FRAGMENT_DEPTH = 0x8452
+
+pattern GL_GENERATE_MIPMAP = 0x8191
+
+pattern GL_GENERATE_MIPMAP_HINT = 0x8192
+
+pattern GL_GREEN_BIAS = 0x0D19
+
+pattern GL_GREEN_BITS = 0x0D53
+
+pattern GL_GREEN_SCALE = 0x0D18
+
+pattern GL_HINT_BIT = 0x00008000
+
+pattern GL_INDEX_ARRAY = 0x8077
+
+pattern GL_INDEX_ARRAY_BUFFER_BINDING = 0x8899
+
+pattern GL_INDEX_ARRAY_POINTER = 0x8091
+
+pattern GL_INDEX_ARRAY_STRIDE = 0x8086
+
+pattern GL_INDEX_ARRAY_TYPE = 0x8085
+
+pattern GL_INDEX_BITS = 0x0D51
+
+pattern GL_INDEX_CLEAR_VALUE = 0x0C20
+
+pattern GL_INDEX_LOGIC_OP = 0x0BF1
+
+pattern GL_INDEX_MODE = 0x0C30
+
+pattern GL_INDEX_OFFSET = 0x0D13
+
+pattern GL_INDEX_SHIFT = 0x0D12
+
+pattern GL_INDEX_WRITEMASK = 0x0C21
+
+pattern GL_INTENSITY = 0x8049
+
+pattern GL_INTENSITY12 = 0x804C
+
+pattern GL_INTENSITY16 = 0x804D
+
+pattern GL_INTENSITY4 = 0x804A
+
+pattern GL_INTENSITY8 = 0x804B
+
+pattern GL_INTERPOLATE = 0x8575
+
+pattern GL_LIGHT0 = 0x4000
+
+pattern GL_LIGHT1 = 0x4001
+
+pattern GL_LIGHT2 = 0x4002
+
+pattern GL_LIGHT3 = 0x4003
+
+pattern GL_LIGHT4 = 0x4004
+
+pattern GL_LIGHT5 = 0x4005
+
+pattern GL_LIGHT6 = 0x4006
+
+pattern GL_LIGHT7 = 0x4007
+
+pattern GL_LIGHTING = 0x0B50
+
+pattern GL_LIGHTING_BIT = 0x00000040
+
+pattern GL_LIGHT_MODEL_AMBIENT = 0x0B53
+
+pattern GL_LIGHT_MODEL_COLOR_CONTROL = 0x81F8
+
+pattern GL_LIGHT_MODEL_LOCAL_VIEWER = 0x0B51
+
+pattern GL_LIGHT_MODEL_TWO_SIDE = 0x0B52
+
+pattern GL_LINEAR_ATTENUATION = 0x1208
+
+pattern GL_LINE_BIT = 0x00000004
+
+pattern GL_LINE_RESET_TOKEN = 0x0707
+
+pattern GL_LINE_STIPPLE = 0x0B24
+
+pattern GL_LINE_STIPPLE_PATTERN = 0x0B25
+
+pattern GL_LINE_STIPPLE_REPEAT = 0x0B26
+
+pattern GL_LINE_TOKEN = 0x0702
+
+pattern GL_LIST_BASE = 0x0B32
+
+pattern GL_LIST_BIT = 0x00020000
+
+pattern GL_LIST_INDEX = 0x0B33
+
+pattern GL_LIST_MODE = 0x0B30
+
+pattern GL_LOAD = 0x0101
+
+pattern GL_LOGIC_OP = 0x0BF1
+
+pattern GL_LUMINANCE = 0x1909
+
+pattern GL_LUMINANCE12 = 0x8041
+
+pattern GL_LUMINANCE12_ALPHA12 = 0x8047
+
+pattern GL_LUMINANCE12_ALPHA4 = 0x8046
+
+pattern GL_LUMINANCE16 = 0x8042
+
+pattern GL_LUMINANCE16_ALPHA16 = 0x8048
+
+pattern GL_LUMINANCE4 = 0x803F
+
+pattern GL_LUMINANCE4_ALPHA4 = 0x8043
+
+pattern GL_LUMINANCE6_ALPHA2 = 0x8044
+
+pattern GL_LUMINANCE8 = 0x8040
+
+pattern GL_LUMINANCE8_ALPHA8 = 0x8045
+
+pattern GL_LUMINANCE_ALPHA = 0x190A
+
+pattern GL_MAP1_COLOR_4 = 0x0D90
+
+pattern GL_MAP1_GRID_DOMAIN = 0x0DD0
+
+pattern GL_MAP1_GRID_SEGMENTS = 0x0DD1
+
+pattern GL_MAP1_INDEX = 0x0D91
+
+pattern GL_MAP1_NORMAL = 0x0D92
+
+pattern GL_MAP1_TEXTURE_COORD_1 = 0x0D93
+
+pattern GL_MAP1_TEXTURE_COORD_2 = 0x0D94
+
+pattern GL_MAP1_TEXTURE_COORD_3 = 0x0D95
+
+pattern GL_MAP1_TEXTURE_COORD_4 = 0x0D96
+
+pattern GL_MAP1_VERTEX_3 = 0x0D97
+
+pattern GL_MAP1_VERTEX_4 = 0x0D98
+
+pattern GL_MAP2_COLOR_4 = 0x0DB0
+
+pattern GL_MAP2_GRID_DOMAIN = 0x0DD2
+
+pattern GL_MAP2_GRID_SEGMENTS = 0x0DD3
+
+pattern GL_MAP2_INDEX = 0x0DB1
+
+pattern GL_MAP2_NORMAL = 0x0DB2
+
+pattern GL_MAP2_TEXTURE_COORD_1 = 0x0DB3
+
+pattern GL_MAP2_TEXTURE_COORD_2 = 0x0DB4
+
+pattern GL_MAP2_TEXTURE_COORD_3 = 0x0DB5
+
+pattern GL_MAP2_TEXTURE_COORD_4 = 0x0DB6
+
+pattern GL_MAP2_VERTEX_3 = 0x0DB7
+
+pattern GL_MAP2_VERTEX_4 = 0x0DB8
+
+pattern GL_MAP_COLOR = 0x0D10
+
+pattern GL_MAP_STENCIL = 0x0D11
+
+pattern GL_MATRIX_MODE = 0x0BA0
+
+pattern GL_MAX_ATTRIB_STACK_DEPTH = 0x0D35
+
+pattern GL_MAX_CLIENT_ATTRIB_STACK_DEPTH = 0x0D3B
+
+pattern GL_MAX_CLIP_PLANES = 0x0D32
+
+pattern GL_MAX_EVAL_ORDER = 0x0D30
+
+pattern GL_MAX_LIGHTS = 0x0D31
+
+pattern GL_MAX_LIST_NESTING = 0x0B31
+
+pattern GL_MAX_MODELVIEW_STACK_DEPTH = 0x0D36
+
+pattern GL_MAX_NAME_STACK_DEPTH = 0x0D37
+
+pattern GL_MAX_PIXEL_MAP_TABLE = 0x0D34
+
+pattern GL_MAX_PROJECTION_STACK_DEPTH = 0x0D38
+
+pattern GL_MAX_TEXTURE_COORDS = 0x8871
+
+pattern GL_MAX_TEXTURE_STACK_DEPTH = 0x0D39
+
+pattern GL_MAX_TEXTURE_UNITS = 0x84E2
+
+pattern GL_MODELVIEW = 0x1700
+
+pattern GL_MODELVIEW_MATRIX = 0x0BA6
+
+pattern GL_MODELVIEW_STACK_DEPTH = 0x0BA3
+
+pattern GL_MODULATE = 0x2100
+
+pattern GL_MULT = 0x0103
+
+pattern GL_MULTISAMPLE_BIT = 0x20000000
+
+pattern GL_N3F_V3F = 0x2A25
+
+pattern GL_NAME_STACK_DEPTH = 0x0D70
+
+pattern GL_NORMALIZE = 0x0BA1
+
+pattern GL_NORMAL_ARRAY = 0x8075
+
+pattern GL_NORMAL_ARRAY_BUFFER_BINDING = 0x8897
+
+pattern GL_NORMAL_ARRAY_POINTER = 0x808F
+
+pattern GL_NORMAL_ARRAY_STRIDE = 0x807F
+
+pattern GL_NORMAL_ARRAY_TYPE = 0x807E
+
+pattern GL_NORMAL_MAP = 0x8511
+
+pattern GL_OBJECT_LINEAR = 0x2401
+
+pattern GL_OBJECT_PLANE = 0x2501
+
+pattern GL_OPERAND0_ALPHA = 0x8598
+
+pattern GL_OPERAND0_RGB = 0x8590
+
+pattern GL_OPERAND1_ALPHA = 0x8599
+
+pattern GL_OPERAND1_RGB = 0x8591
+
+pattern GL_OPERAND2_ALPHA = 0x859A
+
+pattern GL_OPERAND2_RGB = 0x8592
+
+pattern GL_ORDER = 0x0A01
+
+pattern GL_PASS_THROUGH_TOKEN = 0x0700
+
+pattern GL_PERSPECTIVE_CORRECTION_HINT = 0x0C50
+
+pattern GL_PIXEL_MAP_A_TO_A = 0x0C79
+
+pattern GL_PIXEL_MAP_A_TO_A_SIZE = 0x0CB9
+
+pattern GL_PIXEL_MAP_B_TO_B = 0x0C78
+
+pattern GL_PIXEL_MAP_B_TO_B_SIZE = 0x0CB8
+
+pattern GL_PIXEL_MAP_G_TO_G = 0x0C77
+
+pattern GL_PIXEL_MAP_G_TO_G_SIZE = 0x0CB7
+
+pattern GL_PIXEL_MAP_I_TO_A = 0x0C75
+
+pattern GL_PIXEL_MAP_I_TO_A_SIZE = 0x0CB5
+
+pattern GL_PIXEL_MAP_I_TO_B = 0x0C74
+
+pattern GL_PIXEL_MAP_I_TO_B_SIZE = 0x0CB4
+
+pattern GL_PIXEL_MAP_I_TO_G = 0x0C73
+
+pattern GL_PIXEL_MAP_I_TO_G_SIZE = 0x0CB3
+
+pattern GL_PIXEL_MAP_I_TO_I = 0x0C70
+
+pattern GL_PIXEL_MAP_I_TO_I_SIZE = 0x0CB0
+
+pattern GL_PIXEL_MAP_I_TO_R = 0x0C72
+
+pattern GL_PIXEL_MAP_I_TO_R_SIZE = 0x0CB2
+
+pattern GL_PIXEL_MAP_R_TO_R = 0x0C76
+
+pattern GL_PIXEL_MAP_R_TO_R_SIZE = 0x0CB6
+
+pattern GL_PIXEL_MAP_S_TO_S = 0x0C71
+
+pattern GL_PIXEL_MAP_S_TO_S_SIZE = 0x0CB1
+
+pattern GL_PIXEL_MODE_BIT = 0x00000020
+
+pattern GL_POINT_BIT = 0x00000002
+
+pattern GL_POINT_DISTANCE_ATTENUATION = 0x8129
+
+pattern GL_POINT_SIZE_MAX = 0x8127
+
+pattern GL_POINT_SIZE_MIN = 0x8126
+
+pattern GL_POINT_SMOOTH = 0x0B10
+
+pattern GL_POINT_SMOOTH_HINT = 0x0C51
+
+pattern GL_POINT_SPRITE = 0x8861
+
+pattern GL_POINT_TOKEN = 0x0701
+
+pattern GL_POLYGON = 0x0009
+
+pattern GL_POLYGON_BIT = 0x00000008
+
+pattern GL_POLYGON_STIPPLE = 0x0B42
+
+pattern GL_POLYGON_STIPPLE_BIT = 0x00000010
+
+pattern GL_POLYGON_TOKEN = 0x0703
+
+pattern GL_POSITION = 0x1203
+
+pattern GL_PREVIOUS = 0x8578
+
+pattern GL_PROJECTION = 0x1701
+
+pattern GL_PROJECTION_MATRIX = 0x0BA7
+
+pattern GL_PROJECTION_STACK_DEPTH = 0x0BA4
+
+pattern GL_Q = 0x2003
+
+pattern GL_QUADRATIC_ATTENUATION = 0x1209
+
+pattern GL_QUAD_STRIP = 0x0008
+
+pattern GL_R = 0x2002
+
+pattern GL_RED_BIAS = 0x0D15
+
+pattern GL_RED_BITS = 0x0D52
+
+pattern GL_RED_SCALE = 0x0D14
+
+pattern GL_REFLECTION_MAP = 0x8512
+
+pattern GL_RENDER = 0x1C00
+
+pattern GL_RENDER_MODE = 0x0C40
+
+pattern GL_RESCALE_NORMAL = 0x803A
+
+pattern GL_RETURN = 0x0102
+
+pattern GL_RGBA_MODE = 0x0C31
+
+pattern GL_RGB_SCALE = 0x8573
+
+pattern GL_S = 0x2000
+
+pattern GL_SCISSOR_BIT = 0x00080000
+
+pattern GL_SECONDARY_COLOR_ARRAY = 0x845E
+
+pattern GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING = 0x889C
+
+pattern GL_SECONDARY_COLOR_ARRAY_POINTER = 0x845D
+
+pattern GL_SECONDARY_COLOR_ARRAY_SIZE = 0x845A
+
+pattern GL_SECONDARY_COLOR_ARRAY_STRIDE = 0x845C
+
+pattern GL_SECONDARY_COLOR_ARRAY_TYPE = 0x845B
+
+pattern GL_SELECT = 0x1C02
+
+pattern GL_SELECTION_BUFFER_POINTER = 0x0DF3
+
+pattern GL_SELECTION_BUFFER_SIZE = 0x0DF4
+
+pattern GL_SEPARATE_SPECULAR_COLOR = 0x81FA
+
+pattern GL_SHADE_MODEL = 0x0B54
+
+pattern GL_SHININESS = 0x1601
+
+pattern GL_SINGLE_COLOR = 0x81F9
+
+pattern GL_SLUMINANCE = 0x8C46
+
+pattern GL_SLUMINANCE8 = 0x8C47
+
+pattern GL_SLUMINANCE8_ALPHA8 = 0x8C45
+
+pattern GL_SLUMINANCE_ALPHA = 0x8C44
+
+pattern GL_SMOOTH = 0x1D01
+
+pattern GL_SOURCE0_ALPHA = 0x8588
+
+pattern GL_SOURCE0_RGB = 0x8580
+
+pattern GL_SOURCE1_ALPHA = 0x8589
+
+pattern GL_SOURCE1_RGB = 0x8581
+
+pattern GL_SOURCE2_ALPHA = 0x858A
+
+pattern GL_SOURCE2_RGB = 0x8582
+
+pattern GL_SPECULAR = 0x1202
+
+pattern GL_SPHERE_MAP = 0x2402
+
+pattern GL_SPOT_CUTOFF = 0x1206
+
+pattern GL_SPOT_DIRECTION = 0x1204
+
+pattern GL_SPOT_EXPONENT = 0x1205
+
+pattern GL_SRC0_ALPHA = 0x8588
+
+pattern GL_SRC0_RGB = 0x8580
+
+pattern GL_SRC1_RGB = 0x8581
+
+pattern GL_SRC2_ALPHA = 0x858A
+
+pattern GL_SRC2_RGB = 0x8582
+
+pattern GL_STENCIL_BITS = 0x0D57
+
+pattern GL_SUBTRACT = 0x84E7
+
+pattern GL_T = 0x2001
+
+pattern GL_T2F_C3F_V3F = 0x2A2A
+
+pattern GL_T2F_C4F_N3F_V3F = 0x2A2C
+
+pattern GL_T2F_C4UB_V3F = 0x2A29
+
+pattern GL_T2F_N3F_V3F = 0x2A2B
+
+pattern GL_T2F_V3F = 0x2A27
+
+pattern GL_T4F_C4F_N3F_V4F = 0x2A2D
+
+pattern GL_T4F_V4F = 0x2A28
+
+pattern GL_TEXTURE_BIT = 0x00040000
+
+pattern GL_TEXTURE_BORDER = 0x1005
+
+pattern GL_TEXTURE_COMPONENTS = 0x1003
+
+pattern GL_TEXTURE_COORD_ARRAY = 0x8078
+
+pattern GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING = 0x889A
+
+pattern GL_TEXTURE_COORD_ARRAY_POINTER = 0x8092
+
+pattern GL_TEXTURE_COORD_ARRAY_SIZE = 0x8088
+
+pattern GL_TEXTURE_COORD_ARRAY_STRIDE = 0x808A
+
+pattern GL_TEXTURE_COORD_ARRAY_TYPE = 0x8089
+
+pattern GL_TEXTURE_ENV = 0x2300
+
+pattern GL_TEXTURE_ENV_COLOR = 0x2201
+
+pattern GL_TEXTURE_ENV_MODE = 0x2200
+
+pattern GL_TEXTURE_FILTER_CONTROL = 0x8500
+
+pattern GL_TEXTURE_GEN_MODE = 0x2500
+
+pattern GL_TEXTURE_GEN_Q = 0x0C63
+
+pattern GL_TEXTURE_GEN_R = 0x0C62
+
+pattern GL_TEXTURE_GEN_S = 0x0C60
+
+pattern GL_TEXTURE_GEN_T = 0x0C61
+
+pattern GL_TEXTURE_INTENSITY_SIZE = 0x8061
+
+pattern GL_TEXTURE_INTENSITY_TYPE = 0x8C15
+
+pattern GL_TEXTURE_LUMINANCE_SIZE = 0x8060
+
+pattern GL_TEXTURE_LUMINANCE_TYPE = 0x8C14
+
+pattern GL_TEXTURE_MATRIX = 0x0BA8
+
+pattern GL_TEXTURE_PRIORITY = 0x8066
+
+pattern GL_TEXTURE_RESIDENT = 0x8067
+
+pattern GL_TEXTURE_STACK_DEPTH = 0x0BA5
+
+pattern GL_TRANSFORM_BIT = 0x00001000
+
+pattern GL_TRANSPOSE_COLOR_MATRIX = 0x84E6
+
+pattern GL_TRANSPOSE_MODELVIEW_MATRIX = 0x84E3
+
+pattern GL_TRANSPOSE_PROJECTION_MATRIX = 0x84E4
+
+pattern GL_TRANSPOSE_TEXTURE_MATRIX = 0x84E5
+
+pattern GL_V2F = 0x2A20
+
+pattern GL_V3F = 0x2A21
+
+pattern GL_VERTEX_ARRAY_BUFFER_BINDING = 0x8896
+
+pattern GL_VERTEX_ARRAY_POINTER = 0x808E
+
+pattern GL_VERTEX_ARRAY_SIZE = 0x807A
+
+pattern GL_VERTEX_ARRAY_STRIDE = 0x807C
+
+pattern GL_VERTEX_ARRAY_TYPE = 0x807B
+
+pattern GL_VERTEX_PROGRAM_TWO_SIDE = 0x8643
+
+pattern GL_VIEWPORT_BIT = 0x00000800
+
+pattern GL_WEIGHT_ARRAY_BUFFER_BINDING = 0x889E
+
+pattern GL_ZOOM_X = 0x0D16
+
+pattern GL_ZOOM_Y = 0x0D17
+
+-- | Usage: @'glActiveTexture' texture@
+--
+-- The parameter @texture@ is a @TextureUnit@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glActiveTexture.xhtml>
+
+
+glActiveTexture :: MonadIO m => GLenum -> m ()
+glActiveTexture = ffienumIOV glActiveTextureFunPtr
+
+glActiveTextureFunPtr :: FunPtr (GLenum -> IO ())
+glActiveTextureFunPtr = unsafePerformIO (getProcAddress "glActiveTexture")
+
+{-# NOINLINE glActiveTextureFunPtr #-}
+
+-- | Usage: @'glAttachShader' program shader@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glAttachShader.xhtml>
+
+
+glAttachShader :: MonadIO m => GLuint -> GLuint -> m ()
+glAttachShader = ffiuintuintIOV glAttachShaderFunPtr
+
+glAttachShaderFunPtr :: FunPtr (GLuint -> GLuint -> IO ())
+glAttachShaderFunPtr = unsafePerformIO (getProcAddress "glAttachShader")
+
+{-# NOINLINE glAttachShaderFunPtr #-}
+
+-- | Usage: @'glBeginConditionalRender' id mode@
+--
+-- The parameter @mode@ is a @TypeEnum@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBeginConditionalRender.xhtml>
+
+
+glBeginConditionalRender :: MonadIO m => GLuint -> GLenum -> m ()
+glBeginConditionalRender = ffiuintenumIOV glBeginConditionalRenderFunPtr
+
+glBeginConditionalRenderFunPtr :: FunPtr (GLuint -> GLenum -> IO ())
+glBeginConditionalRenderFunPtr = unsafePerformIO (getProcAddress "glBeginConditionalRender")
+
+{-# NOINLINE glBeginConditionalRenderFunPtr #-}
+
+-- | Usage: @'glBeginQuery' target id@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBeginQuery.xhtml>
+
+
+glBeginQuery :: MonadIO m => GLenum -> GLuint -> m ()
+glBeginQuery = ffienumuintIOV glBeginQueryFunPtr
+
+glBeginQueryFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
+glBeginQueryFunPtr = unsafePerformIO (getProcAddress "glBeginQuery")
+
+{-# NOINLINE glBeginQueryFunPtr #-}
+
+-- | Usage: @'glBeginTransformFeedback' primitiveMode@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBeginTransformFeedback.xhtml>
+
+
+glBeginTransformFeedback :: MonadIO m => GLenum -> m ()
+glBeginTransformFeedback = ffienumIOV glBeginTransformFeedbackFunPtr
+
+glBeginTransformFeedbackFunPtr :: FunPtr (GLenum -> IO ())
+glBeginTransformFeedbackFunPtr = unsafePerformIO (getProcAddress "glBeginTransformFeedback")
+
+{-# NOINLINE glBeginTransformFeedbackFunPtr #-}
+
+-- | Usage: @'glBindAttribLocation' program index name@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBindAttribLocation.xhtml>
+
+
+glBindAttribLocation :: MonadIO m => GLuint -> GLuint -> Ptr GLchar -> m ()
+glBindAttribLocation = ffiuintuintPtrcharIOV glBindAttribLocationFunPtr
+
+glBindAttribLocationFunPtr :: FunPtr (GLuint -> GLuint -> Ptr GLchar -> IO ())
+glBindAttribLocationFunPtr = unsafePerformIO (getProcAddress "glBindAttribLocation")
+
+{-# NOINLINE glBindAttribLocationFunPtr #-}
+
+-- | Usage: @'glBindBuffer' target buffer@
+--
+-- The parameter @target@ is a @BufferTargetARB@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBindBuffer.xhtml>
+
+
+glBindBuffer :: MonadIO m => GLenum -> GLuint -> m ()
+glBindBuffer = ffienumuintIOV glBindBufferFunPtr
+
+glBindBufferFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
+glBindBufferFunPtr = unsafePerformIO (getProcAddress "glBindBuffer")
+
+{-# NOINLINE glBindBufferFunPtr #-}
+
+-- | Usage: @'glBindBufferBase' target index buffer@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBindBufferBase.xhtml>
+
+
+glBindBufferBase :: MonadIO m => GLenum -> GLuint -> GLuint -> m ()
+glBindBufferBase = ffienumuintuintIOV glBindBufferBaseFunPtr
+
+glBindBufferBaseFunPtr :: FunPtr (GLenum -> GLuint -> GLuint -> IO ())
+glBindBufferBaseFunPtr = unsafePerformIO (getProcAddress "glBindBufferBase")
+
+{-# NOINLINE glBindBufferBaseFunPtr #-}
+
+-- | Usage: @'glBindBufferRange' target index buffer offset size@
+--
+-- The parameter @offset@ is a @BufferOffset@.
+--
+-- The parameter @size@ is a @BufferSize@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBindBufferRange.xhtml>
+
+
+glBindBufferRange :: MonadIO m => GLenum -> GLuint -> GLuint -> GLintptr -> GLsizeiptr -> m ()
+glBindBufferRange = ffienumuintuintintptrsizeiptrIOV glBindBufferRangeFunPtr
+
+glBindBufferRangeFunPtr :: FunPtr (GLenum -> GLuint -> GLuint -> GLintptr -> GLsizeiptr -> IO ())
+glBindBufferRangeFunPtr = unsafePerformIO (getProcAddress "glBindBufferRange")
+
+{-# NOINLINE glBindBufferRangeFunPtr #-}
+
+-- | Usage: @'glBindFragDataLocation' program color name@
+--
+-- The length of @name@ should be @COMPSIZE(name)@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBindFragDataLocation.xhtml>
+
+
+glBindFragDataLocation :: MonadIO m => GLuint -> GLuint -> Ptr GLchar -> m ()
+glBindFragDataLocation = ffiuintuintPtrcharIOV glBindFragDataLocationFunPtr
+
+glBindFragDataLocationFunPtr :: FunPtr (GLuint -> GLuint -> Ptr GLchar -> IO ())
+glBindFragDataLocationFunPtr = unsafePerformIO (getProcAddress "glBindFragDataLocation")
+
+{-# NOINLINE glBindFragDataLocationFunPtr #-}
+
+-- | Usage: @'glBindTexture' target texture@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @texture@ is a @Texture@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBindTexture.xhtml>
+
+
+glBindTexture :: MonadIO m => GLenum -> GLuint -> m ()
+glBindTexture = ffienumuintIOV glBindTextureFunPtr
+
+glBindTextureFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
+glBindTextureFunPtr = unsafePerformIO (getProcAddress "glBindTexture")
+
+{-# NOINLINE glBindTextureFunPtr #-}
+
+-- | Usage: @'glBlendEquationSeparate' modeRGB modeAlpha@
+--
+-- The parameter @modeRGB@ is a @BlendEquationModeEXT@, one of: 'Graphics.GL.Raw.Extension.SGIX.BlendAlphaMinmax.GL_ALPHA_MAX_SGIX', 'Graphics.GL.Raw.Extension.SGIX.BlendAlphaMinmax.GL_ALPHA_MIN_SGIX', 'Graphics.GL.Raw.Extension.EXT.BlendMinmax.GL_FUNC_ADD_EXT', 'Graphics.GL.Raw.Extension.EXT.BlendSubtract.GL_FUNC_REVERSE_SUBTRACT_EXT', 'Graphics.GL.Raw.Extension.EXT.BlendSubtract.GL_FUNC_SUBTRACT_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_LOGIC_OP', 'Graphics.GL.Raw.Extension.EXT.BlendMinmax.GL_MAX_EXT', 'Graphics.GL.Raw.Extension.EXT.BlendMinmax.GL_MIN_EXT'.
+--
+-- The parameter @modeAlpha@ is a @BlendEquationModeEXT@, one of: 'Graphics.GL.Raw.Extension.SGIX.BlendAlphaMinmax.GL_ALPHA_MAX_SGIX', 'Graphics.GL.Raw.Extension.SGIX.BlendAlphaMinmax.GL_ALPHA_MIN_SGIX', 'Graphics.GL.Raw.Extension.EXT.BlendMinmax.GL_FUNC_ADD_EXT', 'Graphics.GL.Raw.Extension.EXT.BlendSubtract.GL_FUNC_REVERSE_SUBTRACT_EXT', 'Graphics.GL.Raw.Extension.EXT.BlendSubtract.GL_FUNC_SUBTRACT_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_LOGIC_OP', 'Graphics.GL.Raw.Extension.EXT.BlendMinmax.GL_MAX_EXT', 'Graphics.GL.Raw.Extension.EXT.BlendMinmax.GL_MIN_EXT'.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBlendEquationSeparate.xhtml>
+
+
+glBlendEquationSeparate :: MonadIO m => GLenum -> GLenum -> m ()
+glBlendEquationSeparate = ffienumenumIOV glBlendEquationSeparateFunPtr
+
+glBlendEquationSeparateFunPtr :: FunPtr (GLenum -> GLenum -> IO ())
+glBlendEquationSeparateFunPtr = unsafePerformIO (getProcAddress "glBlendEquationSeparate")
+
+{-# NOINLINE glBlendEquationSeparateFunPtr #-}
+
+-- | Usage: @'glBlendFunc' sfactor dfactor@
+--
+-- The parameter @sfactor@ is a @BlendingFactorSrc@, one of: 'Graphics.GL.Raw.Extension.EXT.BlendColor.GL_CONSTANT_ALPHA_EXT', 'Graphics.GL.Raw.Extension.EXT.BlendColor.GL_CONSTANT_COLOR_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_DST_ALPHA', 'Graphics.GL.Raw.Internal.Shared.GL_DST_COLOR', 'Graphics.GL.Raw.Internal.Shared.GL_ONE', 'Graphics.GL.Raw.Extension.EXT.BlendColor.GL_ONE_MINUS_CONSTANT_ALPHA_EXT', 'Graphics.GL.Raw.Extension.EXT.BlendColor.GL_ONE_MINUS_CONSTANT_COLOR_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_ONE_MINUS_DST_ALPHA', 'Graphics.GL.Raw.Internal.Shared.GL_ONE_MINUS_DST_COLOR', 'Graphics.GL.Raw.Internal.Shared.GL_ONE_MINUS_SRC_ALPHA', 'Graphics.GL.Raw.Internal.Shared.GL_SRC_ALPHA', 'Graphics.GL.Raw.Internal.Shared.GL_SRC_ALPHA_SATURATE', 'Graphics.GL.Raw.Internal.Shared.GL_ZERO'.
+--
+-- The parameter @dfactor@ is a @BlendingFactorDest@, one of: 'Graphics.GL.Raw.Extension.EXT.BlendColor.GL_CONSTANT_ALPHA_EXT', 'Graphics.GL.Raw.Extension.EXT.BlendColor.GL_CONSTANT_COLOR_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_DST_ALPHA', 'Graphics.GL.Raw.Internal.Shared.GL_ONE', 'Graphics.GL.Raw.Extension.EXT.BlendColor.GL_ONE_MINUS_CONSTANT_ALPHA_EXT', 'Graphics.GL.Raw.Extension.EXT.BlendColor.GL_ONE_MINUS_CONSTANT_COLOR_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_ONE_MINUS_DST_ALPHA', 'Graphics.GL.Raw.Internal.Shared.GL_ONE_MINUS_SRC_ALPHA', 'Graphics.GL.Raw.Internal.Shared.GL_ONE_MINUS_SRC_COLOR', 'Graphics.GL.Raw.Internal.Shared.GL_SRC_ALPHA', 'Graphics.GL.Raw.Internal.Shared.GL_SRC_COLOR', 'Graphics.GL.Raw.Internal.Shared.GL_ZERO'.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBlendFunc.xhtml>
+
+
+glBlendFunc :: MonadIO m => GLenum -> GLenum -> m ()
+glBlendFunc = ffienumenumIOV glBlendFuncFunPtr
+
+glBlendFuncFunPtr :: FunPtr (GLenum -> GLenum -> IO ())
+glBlendFuncFunPtr = unsafePerformIO (getProcAddress "glBlendFunc")
+
+{-# NOINLINE glBlendFuncFunPtr #-}
+
+-- | Usage: @'glBlendFuncSeparate' sfactorRGB dfactorRGB sfactorAlpha dfactorAlpha@
+--
+-- The parameter @sfactorRGB@ is a @BlendFuncSeparateParameterEXT@.
+--
+-- The parameter @dfactorRGB@ is a @BlendFuncSeparateParameterEXT@.
+--
+-- The parameter @sfactorAlpha@ is a @BlendFuncSeparateParameterEXT@.
+--
+-- The parameter @dfactorAlpha@ is a @BlendFuncSeparateParameterEXT@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBlendFuncSeparate.xhtml>
+
+
+glBlendFuncSeparate :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> m ()
+glBlendFuncSeparate = ffienumenumenumenumIOV glBlendFuncSeparateFunPtr
+
+glBlendFuncSeparateFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLenum -> IO ())
+glBlendFuncSeparateFunPtr = unsafePerformIO (getProcAddress "glBlendFuncSeparate")
+
+{-# NOINLINE glBlendFuncSeparateFunPtr #-}
+
+-- | Usage: @'glBufferData' target size data usage@
+--
+-- The parameter @target@ is a @BufferTargetARB@.
+--
+-- The parameter @size@ is a @BufferSize@.
+--
+-- The parameter @usage@ is a @BufferUsageARB@.
+--
+-- The length of @data@ should be @size@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBufferData.xhtml>
+
+
+glBufferData :: MonadIO m => GLenum -> GLsizeiptr -> Ptr () -> GLenum -> m ()
+glBufferData = ffienumsizeiptrPtrVenumIOV glBufferDataFunPtr
+
+glBufferDataFunPtr :: FunPtr (GLenum -> GLsizeiptr -> Ptr () -> GLenum -> IO ())
+glBufferDataFunPtr = unsafePerformIO (getProcAddress "glBufferData")
+
+{-# NOINLINE glBufferDataFunPtr #-}
+
+-- | Usage: @'glBufferSubData' target offset size data@
+--
+-- The parameter @target@ is a @BufferTargetARB@.
+--
+-- The parameter @offset@ is a @BufferOffset@.
+--
+-- The parameter @size@ is a @BufferSize@.
+--
+-- The length of @data@ should be @size@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBufferSubData.xhtml>
+
+
+glBufferSubData :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> Ptr () -> m ()
+glBufferSubData = ffienumintptrsizeiptrPtrVIOV glBufferSubDataFunPtr
+
+glBufferSubDataFunPtr :: FunPtr (GLenum -> GLintptr -> GLsizeiptr -> Ptr () -> IO ())
+glBufferSubDataFunPtr = unsafePerformIO (getProcAddress "glBufferSubData")
+
+{-# NOINLINE glBufferSubDataFunPtr #-}
+
+-- | Usage: @'glClampColor' target clamp@
+--
+-- The parameter @target@ is a @ClampColorTargetARB@.
+--
+-- The parameter @clamp@ is a @ClampColorModeARB@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glClampColor.xhtml>
+
+
+glClampColor :: MonadIO m => GLenum -> GLenum -> m ()
+glClampColor = ffienumenumIOV glClampColorFunPtr
+
+glClampColorFunPtr :: FunPtr (GLenum -> GLenum -> IO ())
+glClampColorFunPtr = unsafePerformIO (getProcAddress "glClampColor")
+
+{-# NOINLINE glClampColorFunPtr #-}
+
+-- | Usage: @'glClear' mask@
+--
+-- The parameter @mask@ is a @ClearBufferMask@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_ACCUM_BUFFER_BIT', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_BUFFER_BIT', 'Graphics.GL.Raw.Extension.NV.CoverageSample.GL_COVERAGE_BUFFER_BIT_NV', 'Graphics.GL.Raw.Internal.Shared.GL_DEPTH_BUFFER_BIT', 'Graphics.GL.Raw.Internal.Shared.GL_STENCIL_BUFFER_BIT'.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glClear.xhtml>
+
+
+glClear :: MonadIO m => GLbitfield -> m ()
+glClear = ffibitfieldIOV glClearFunPtr
+
+glClearFunPtr :: FunPtr (GLbitfield -> IO ())
+glClearFunPtr = unsafePerformIO (getProcAddress "glClear")
+
+{-# NOINLINE glClearFunPtr #-}
+
+-- | Usage: @'glClearBufferfi' buffer drawbuffer depth stencil@
+--
+-- The parameter @drawbuffer@ is a @DrawBufferName@.
+
+
+glClearBufferfi :: MonadIO m => GLenum -> GLint -> GLfloat -> GLint -> m ()
+glClearBufferfi = ffienumintfloatintIOV glClearBufferfiFunPtr
+
+glClearBufferfiFunPtr :: FunPtr (GLenum -> GLint -> GLfloat -> GLint -> IO ())
+glClearBufferfiFunPtr = unsafePerformIO (getProcAddress "glClearBufferfi")
+
+{-# NOINLINE glClearBufferfiFunPtr #-}
+
+-- | Usage: @'glClearBufferfv' buffer drawbuffer value@
+--
+-- The parameter @drawbuffer@ is a @DrawBufferName@.
+--
+-- The length of @value@ should be @COMPSIZE(buffer)@.
+
+
+glClearBufferfv :: MonadIO m => GLenum -> GLint -> Ptr GLfloat -> m ()
+glClearBufferfv = ffienumintPtrfloatIOV glClearBufferfvFunPtr
+
+glClearBufferfvFunPtr :: FunPtr (GLenum -> GLint -> Ptr GLfloat -> IO ())
+glClearBufferfvFunPtr = unsafePerformIO (getProcAddress "glClearBufferfv")
+
+{-# NOINLINE glClearBufferfvFunPtr #-}
+
+-- | Usage: @'glClearBufferiv' buffer drawbuffer value@
+--
+-- The parameter @drawbuffer@ is a @DrawBufferName@.
+--
+-- The length of @value@ should be @COMPSIZE(buffer)@.
+
+
+glClearBufferiv :: MonadIO m => GLenum -> GLint -> Ptr GLint -> m ()
+glClearBufferiv = ffienumintPtrintIOV glClearBufferivFunPtr
+
+glClearBufferivFunPtr :: FunPtr (GLenum -> GLint -> Ptr GLint -> IO ())
+glClearBufferivFunPtr = unsafePerformIO (getProcAddress "glClearBufferiv")
+
+{-# NOINLINE glClearBufferivFunPtr #-}
+
+-- | Usage: @'glClearBufferuiv' buffer drawbuffer value@
+--
+-- The parameter @drawbuffer@ is a @DrawBufferName@.
+--
+-- The length of @value@ should be @COMPSIZE(buffer)@.
+
+
+glClearBufferuiv :: MonadIO m => GLenum -> GLint -> Ptr GLuint -> m ()
+glClearBufferuiv = ffienumintPtruintIOV glClearBufferuivFunPtr
+
+glClearBufferuivFunPtr :: FunPtr (GLenum -> GLint -> Ptr GLuint -> IO ())
+glClearBufferuivFunPtr = unsafePerformIO (getProcAddress "glClearBufferuiv")
+
+{-# NOINLINE glClearBufferuivFunPtr #-}
+
+-- | Usage: @'glClearColor' red green blue alpha@
+--
+-- The parameter @red@ is a @ColorF@.
+--
+-- The parameter @green@ is a @ColorF@.
+--
+-- The parameter @blue@ is a @ColorF@.
+--
+-- The parameter @alpha@ is a @ColorF@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glClearColor.xhtml>
+
+
+glClearColor :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
+glClearColor = ffifloatfloatfloatfloatIOV glClearColorFunPtr
+
+glClearColorFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+glClearColorFunPtr = unsafePerformIO (getProcAddress "glClearColor")
+
+{-# NOINLINE glClearColorFunPtr #-}
+
+-- | Usage: @'glClearDepth' depth@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glClearDepth.xhtml>
+
+
+glClearDepth :: MonadIO m => GLdouble -> m ()
+glClearDepth = ffidoubleIOV glClearDepthFunPtr
+
+glClearDepthFunPtr :: FunPtr (GLdouble -> IO ())
+glClearDepthFunPtr = unsafePerformIO (getProcAddress "glClearDepth")
+
+{-# NOINLINE glClearDepthFunPtr #-}
+
+-- | Usage: @'glClearStencil' s@
+--
+-- The parameter @s@ is a @StencilValue@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glClearStencil.xhtml>
+
+
+glClearStencil :: MonadIO m => GLint -> m ()
+glClearStencil = ffiintIOV glClearStencilFunPtr
+
+glClearStencilFunPtr :: FunPtr (GLint -> IO ())
+glClearStencilFunPtr = unsafePerformIO (getProcAddress "glClearStencil")
+
+{-# NOINLINE glClearStencilFunPtr #-}
+
+-- | Usage: @'glColorMask' red green blue alpha@
+--
+-- The parameter @red@ is a @Boolean@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FALSE', 'Graphics.GL.Raw.Internal.Shared.GL_TRUE'.
+--
+-- The parameter @green@ is a @Boolean@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FALSE', 'Graphics.GL.Raw.Internal.Shared.GL_TRUE'.
+--
+-- The parameter @blue@ is a @Boolean@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FALSE', 'Graphics.GL.Raw.Internal.Shared.GL_TRUE'.
+--
+-- The parameter @alpha@ is a @Boolean@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FALSE', 'Graphics.GL.Raw.Internal.Shared.GL_TRUE'.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glColorMask.xhtml>
+
+
+glColorMask :: MonadIO m => GLboolean -> GLboolean -> GLboolean -> GLboolean -> m ()
+glColorMask = ffibooleanbooleanbooleanbooleanIOV glColorMaskFunPtr
+
+glColorMaskFunPtr :: FunPtr (GLboolean -> GLboolean -> GLboolean -> GLboolean -> IO ())
+glColorMaskFunPtr = unsafePerformIO (getProcAddress "glColorMask")
+
+{-# NOINLINE glColorMaskFunPtr #-}
+
+-- | Usage: @'glColorMaski' index r g b a@
+--
+-- The parameter @r@ is a @Boolean@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FALSE', 'Graphics.GL.Raw.Internal.Shared.GL_TRUE'.
+--
+-- The parameter @g@ is a @Boolean@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FALSE', 'Graphics.GL.Raw.Internal.Shared.GL_TRUE'.
+--
+-- The parameter @b@ is a @Boolean@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FALSE', 'Graphics.GL.Raw.Internal.Shared.GL_TRUE'.
+--
+-- The parameter @a@ is a @Boolean@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FALSE', 'Graphics.GL.Raw.Internal.Shared.GL_TRUE'.
+
+
+glColorMaski :: MonadIO m => GLuint -> GLboolean -> GLboolean -> GLboolean -> GLboolean -> m ()
+glColorMaski = ffiuintbooleanbooleanbooleanbooleanIOV glColorMaskiFunPtr
+
+glColorMaskiFunPtr :: FunPtr (GLuint -> GLboolean -> GLboolean -> GLboolean -> GLboolean -> IO ())
+glColorMaskiFunPtr = unsafePerformIO (getProcAddress "glColorMaski")
+
+{-# NOINLINE glColorMaskiFunPtr #-}
+
+-- | Usage: @'glCompileShader' shader@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glCompileShader.xhtml>
+
+
+glCompileShader :: MonadIO m => GLuint -> m ()
+glCompileShader = ffiuintIOV glCompileShaderFunPtr
+
+glCompileShaderFunPtr :: FunPtr (GLuint -> IO ())
+glCompileShaderFunPtr = unsafePerformIO (getProcAddress "glCompileShader")
+
+{-# NOINLINE glCompileShaderFunPtr #-}
+
+-- | Usage: @'glCompressedTexImage1D' target level internalformat width border imageSize data@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @internalformat@ is a @PixelInternalFormat@.
+--
+-- The parameter @border@ is a @CheckedInt32@.
+--
+-- The parameter @data@ is a @CompressedTextureARB@.
+--
+-- The length of @data@ should be @imageSize@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glCompressedTexImage1D.xhtml>
+
+
+glCompressedTexImage1D :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLint -> GLsizei -> Ptr () -> m ()
+glCompressedTexImage1D = ffienumintenumsizeiintsizeiPtrVIOV glCompressedTexImage1DFunPtr
+
+glCompressedTexImage1DFunPtr :: FunPtr (GLenum -> GLint -> GLenum -> GLsizei -> GLint -> GLsizei -> Ptr () -> IO ())
+glCompressedTexImage1DFunPtr = unsafePerformIO (getProcAddress "glCompressedTexImage1D")
+
+{-# NOINLINE glCompressedTexImage1DFunPtr #-}
+
+-- | Usage: @'glCompressedTexImage2D' target level internalformat width height border imageSize data@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @internalformat@ is a @PixelInternalFormat@.
+--
+-- The parameter @border@ is a @CheckedInt32@.
+--
+-- The parameter @data@ is a @CompressedTextureARB@.
+--
+-- The length of @data@ should be @imageSize@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glCompressedTexImage2D.xhtml>
+
+
+glCompressedTexImage2D :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> m ()
+glCompressedTexImage2D = ffienumintenumsizeisizeiintsizeiPtrVIOV glCompressedTexImage2DFunPtr
+
+glCompressedTexImage2DFunPtr :: FunPtr (GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> IO ())
+glCompressedTexImage2DFunPtr = unsafePerformIO (getProcAddress "glCompressedTexImage2D")
+
+{-# NOINLINE glCompressedTexImage2DFunPtr #-}
+
+-- | Usage: @'glCompressedTexImage3D' target level internalformat width height depth border imageSize data@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @internalformat@ is a @PixelInternalFormat@.
+--
+-- The parameter @border@ is a @CheckedInt32@.
+--
+-- The parameter @data@ is a @CompressedTextureARB@.
+--
+-- The length of @data@ should be @imageSize@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glCompressedTexImage3D.xhtml>
+
+
+glCompressedTexImage3D :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> m ()
+glCompressedTexImage3D = ffienumintenumsizeisizeisizeiintsizeiPtrVIOV glCompressedTexImage3DFunPtr
+
+glCompressedTexImage3DFunPtr :: FunPtr (GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> IO ())
+glCompressedTexImage3DFunPtr = unsafePerformIO (getProcAddress "glCompressedTexImage3D")
+
+{-# NOINLINE glCompressedTexImage3DFunPtr #-}
+
+-- | Usage: @'glCompressedTexSubImage1D' target level xoffset width format imageSize data@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @xoffset@ is a @CheckedInt32@.
+--
+-- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Raw.Extension.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_ALPHA', 'Graphics.GL.Raw.Internal.Shared.GL_BLUE', 'Graphics.GL.Raw.Extension.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Raw.Extension.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Raw.Internal.Shared.GL_GREEN', 'Graphics.GL.Raw.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Raw.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Raw.Internal.Shared.GL_RED', 'Graphics.GL.Raw.Extension.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_RGB', 'Graphics.GL.Raw.Internal.Shared.GL_RGBA', 'Graphics.GL.Raw.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Raw.Extension.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
+--
+-- The parameter @data@ is a @CompressedTextureARB@.
+--
+-- The length of @data@ should be @imageSize@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glCompressedTexSubImage1D.xhtml>
+
+
+glCompressedTexSubImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr () -> m ()
+glCompressedTexSubImage1D = ffienumintintsizeienumsizeiPtrVIOV glCompressedTexSubImage1DFunPtr
+
+glCompressedTexSubImage1DFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ())
+glCompressedTexSubImage1DFunPtr = unsafePerformIO (getProcAddress "glCompressedTexSubImage1D")
+
+{-# NOINLINE glCompressedTexSubImage1DFunPtr #-}
+
+-- | Usage: @'glCompressedTexSubImage2D' target level xoffset yoffset width height format imageSize data@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @xoffset@ is a @CheckedInt32@.
+--
+-- The parameter @yoffset@ is a @CheckedInt32@.
+--
+-- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Raw.Extension.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_ALPHA', 'Graphics.GL.Raw.Internal.Shared.GL_BLUE', 'Graphics.GL.Raw.Extension.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Raw.Extension.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Raw.Internal.Shared.GL_GREEN', 'Graphics.GL.Raw.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Raw.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Raw.Internal.Shared.GL_RED', 'Graphics.GL.Raw.Extension.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_RGB', 'Graphics.GL.Raw.Internal.Shared.GL_RGBA', 'Graphics.GL.Raw.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Raw.Extension.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
+--
+-- The parameter @data@ is a @CompressedTextureARB@.
+--
+-- The length of @data@ should be @imageSize@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glCompressedTexSubImage2D.xhtml>
+
+
+glCompressedTexSubImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> m ()
+glCompressedTexSubImage2D = ffienumintintintsizeisizeienumsizeiPtrVIOV glCompressedTexSubImage2DFunPtr
+
+glCompressedTexSubImage2DFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ())
+glCompressedTexSubImage2DFunPtr = unsafePerformIO (getProcAddress "glCompressedTexSubImage2D")
+
+{-# NOINLINE glCompressedTexSubImage2DFunPtr #-}
+
+-- | Usage: @'glCompressedTexSubImage3D' target level xoffset yoffset zoffset width height depth format imageSize data@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @xoffset@ is a @CheckedInt32@.
+--
+-- The parameter @yoffset@ is a @CheckedInt32@.
+--
+-- The parameter @zoffset@ is a @CheckedInt32@.
+--
+-- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Raw.Extension.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_ALPHA', 'Graphics.GL.Raw.Internal.Shared.GL_BLUE', 'Graphics.GL.Raw.Extension.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Raw.Extension.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Raw.Internal.Shared.GL_GREEN', 'Graphics.GL.Raw.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Raw.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Raw.Internal.Shared.GL_RED', 'Graphics.GL.Raw.Extension.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_RGB', 'Graphics.GL.Raw.Internal.Shared.GL_RGBA', 'Graphics.GL.Raw.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Raw.Extension.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
+--
+-- The parameter @data@ is a @CompressedTextureARB@.
+--
+-- The length of @data@ should be @imageSize@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glCompressedTexSubImage3D.xhtml>
+
+
+glCompressedTexSubImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> m ()
+glCompressedTexSubImage3D = ffienumintintintintsizeisizeisizeienumsizeiPtrVIOV glCompressedTexSubImage3DFunPtr
+
+glCompressedTexSubImage3DFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ())
+glCompressedTexSubImage3DFunPtr = unsafePerformIO (getProcAddress "glCompressedTexSubImage3D")
+
+{-# NOINLINE glCompressedTexSubImage3DFunPtr #-}
+
+-- | Usage: @'glCopyTexImage1D' target level internalformat x y width border@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @internalformat@ is a @PixelInternalFormat@.
+--
+-- The parameter @x@ is a @WinCoord@.
+--
+-- The parameter @y@ is a @WinCoord@.
+--
+-- The parameter @border@ is a @CheckedInt32@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glCopyTexImage1D.xhtml>
+
+
+glCopyTexImage1D :: MonadIO m => GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> m ()
+glCopyTexImage1D = ffienumintenumintintsizeiintIOV glCopyTexImage1DFunPtr
+
+glCopyTexImage1DFunPtr :: FunPtr (GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> IO ())
+glCopyTexImage1DFunPtr = unsafePerformIO (getProcAddress "glCopyTexImage1D")
+
+{-# NOINLINE glCopyTexImage1DFunPtr #-}
+
+-- | Usage: @'glCopyTexImage2D' target level internalformat x y width height border@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @internalformat@ is a @PixelInternalFormat@.
+--
+-- The parameter @x@ is a @WinCoord@.
+--
+-- The parameter @y@ is a @WinCoord@.
+--
+-- The parameter @border@ is a @CheckedInt32@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glCopyTexImage2D.xhtml>
+
+
+glCopyTexImage2D :: MonadIO m => GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> m ()
+glCopyTexImage2D = ffienumintenumintintsizeisizeiintIOV glCopyTexImage2DFunPtr
+
+glCopyTexImage2DFunPtr :: FunPtr (GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> IO ())
+glCopyTexImage2DFunPtr = unsafePerformIO (getProcAddress "glCopyTexImage2D")
+
+{-# NOINLINE glCopyTexImage2DFunPtr #-}
+
+-- | Usage: @'glCopyTexSubImage1D' target level xoffset x y width@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @xoffset@ is a @CheckedInt32@.
+--
+-- The parameter @x@ is a @WinCoord@.
+--
+-- The parameter @y@ is a @WinCoord@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glCopyTexSubImage1D.xhtml>
+
+
+glCopyTexSubImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> m ()
+glCopyTexSubImage1D = ffienumintintintintsizeiIOV glCopyTexSubImage1DFunPtr
+
+glCopyTexSubImage1DFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> IO ())
+glCopyTexSubImage1DFunPtr = unsafePerformIO (getProcAddress "glCopyTexSubImage1D")
+
+{-# NOINLINE glCopyTexSubImage1DFunPtr #-}
+
+-- | Usage: @'glCopyTexSubImage2D' target level xoffset yoffset x y width height@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @xoffset@ is a @CheckedInt32@.
+--
+-- The parameter @yoffset@ is a @CheckedInt32@.
+--
+-- The parameter @x@ is a @WinCoord@.
+--
+-- The parameter @y@ is a @WinCoord@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glCopyTexSubImage2D.xhtml>
+
+
+glCopyTexSubImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()
+glCopyTexSubImage2D = ffienumintintintintintsizeisizeiIOV glCopyTexSubImage2DFunPtr
+
+glCopyTexSubImage2DFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ())
+glCopyTexSubImage2DFunPtr = unsafePerformIO (getProcAddress "glCopyTexSubImage2D")
+
+{-# NOINLINE glCopyTexSubImage2DFunPtr #-}
+
+-- | Usage: @'glCopyTexSubImage3D' target level xoffset yoffset zoffset x y width height@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @xoffset@ is a @CheckedInt32@.
+--
+-- The parameter @yoffset@ is a @CheckedInt32@.
+--
+-- The parameter @zoffset@ is a @CheckedInt32@.
+--
+-- The parameter @x@ is a @WinCoord@.
+--
+-- The parameter @y@ is a @WinCoord@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glCopyTexSubImage3D.xhtml>
+
+
+glCopyTexSubImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()
+glCopyTexSubImage3D = ffienumintintintintintintsizeisizeiIOV glCopyTexSubImage3DFunPtr
+
+glCopyTexSubImage3DFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ())
+glCopyTexSubImage3DFunPtr = unsafePerformIO (getProcAddress "glCopyTexSubImage3D")
+
+{-# NOINLINE glCopyTexSubImage3DFunPtr #-}
+
+-- | Usage: @'glCreateProgram'@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glCreateProgram.xhtml>
+
+
+glCreateProgram :: MonadIO m => m GLuint
+glCreateProgram = ffiIOuint glCreateProgramFunPtr
+
+glCreateProgramFunPtr :: FunPtr (IO GLuint)
+glCreateProgramFunPtr = unsafePerformIO (getProcAddress "glCreateProgram")
+
+{-# NOINLINE glCreateProgramFunPtr #-}
+
+-- | Usage: @'glCreateShader' type@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glCreateShader.xhtml>
+
+
+glCreateShader :: MonadIO m => GLenum -> m GLuint
+glCreateShader = ffienumIOuint glCreateShaderFunPtr
+
+glCreateShaderFunPtr :: FunPtr (GLenum -> IO GLuint)
+glCreateShaderFunPtr = unsafePerformIO (getProcAddress "glCreateShader")
+
+{-# NOINLINE glCreateShaderFunPtr #-}
+
+-- | Usage: @'glCullFace' mode@
+--
+-- The parameter @mode@ is a @CullFaceMode@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_BACK', 'Graphics.GL.Raw.Internal.Shared.GL_FRONT', 'Graphics.GL.Raw.Internal.Shared.GL_FRONT_AND_BACK'.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glCullFace.xhtml>
+
+
+glCullFace :: MonadIO m => GLenum -> m ()
+glCullFace = ffienumIOV glCullFaceFunPtr
+
+glCullFaceFunPtr :: FunPtr (GLenum -> IO ())
+glCullFaceFunPtr = unsafePerformIO (getProcAddress "glCullFace")
+
+{-# NOINLINE glCullFaceFunPtr #-}
+
+-- | Usage: @'glDeleteBuffers' n buffers@
+--
+-- The length of @buffers@ should be @n@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDeleteBuffers.xhtml>
+
+
+glDeleteBuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glDeleteBuffers = ffisizeiPtruintIOV glDeleteBuffersFunPtr
+
+glDeleteBuffersFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glDeleteBuffersFunPtr = unsafePerformIO (getProcAddress "glDeleteBuffers")
+
+{-# NOINLINE glDeleteBuffersFunPtr #-}
+
+-- | Usage: @'glDeleteProgram' program@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDeleteProgram.xhtml>
+
+
+glDeleteProgram :: MonadIO m => GLuint -> m ()
+glDeleteProgram = ffiuintIOV glDeleteProgramFunPtr
+
+glDeleteProgramFunPtr :: FunPtr (GLuint -> IO ())
+glDeleteProgramFunPtr = unsafePerformIO (getProcAddress "glDeleteProgram")
+
+{-# NOINLINE glDeleteProgramFunPtr #-}
+
+-- | Usage: @'glDeleteQueries' n ids@
+--
+-- The length of @ids@ should be @n@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDeleteQueries.xhtml>
+
+
+glDeleteQueries :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glDeleteQueries = ffisizeiPtruintIOV glDeleteQueriesFunPtr
+
+glDeleteQueriesFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glDeleteQueriesFunPtr = unsafePerformIO (getProcAddress "glDeleteQueries")
+
+{-# NOINLINE glDeleteQueriesFunPtr #-}
+
+-- | Usage: @'glDeleteShader' shader@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDeleteShader.xhtml>
+
+
+glDeleteShader :: MonadIO m => GLuint -> m ()
+glDeleteShader = ffiuintIOV glDeleteShaderFunPtr
+
+glDeleteShaderFunPtr :: FunPtr (GLuint -> IO ())
+glDeleteShaderFunPtr = unsafePerformIO (getProcAddress "glDeleteShader")
+
+{-# NOINLINE glDeleteShaderFunPtr #-}
+
+-- | Usage: @'glDeleteTextures' n textures@
+--
+-- The parameter @textures@ is a @Texture@.
+--
+-- The length of @textures@ should be @n@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDeleteTextures.xhtml>
+
+
+glDeleteTextures :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glDeleteTextures = ffisizeiPtruintIOV glDeleteTexturesFunPtr
+
+glDeleteTexturesFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glDeleteTexturesFunPtr = unsafePerformIO (getProcAddress "glDeleteTextures")
+
+{-# NOINLINE glDeleteTexturesFunPtr #-}
+
+-- | Usage: @'glDepthFunc' func@
+--
+-- The parameter @func@ is a @DepthFunction@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_ALWAYS', 'Graphics.GL.Raw.Internal.Shared.GL_EQUAL', 'Graphics.GL.Raw.Internal.Shared.GL_GEQUAL', 'Graphics.GL.Raw.Internal.Shared.GL_GREATER', 'Graphics.GL.Raw.Internal.Shared.GL_LEQUAL', 'Graphics.GL.Raw.Internal.Shared.GL_LESS', 'Graphics.GL.Raw.Internal.Shared.GL_NEVER', 'Graphics.GL.Raw.Internal.Shared.GL_NOTEQUAL'.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDepthFunc.xhtml>
+
+
+glDepthFunc :: MonadIO m => GLenum -> m ()
+glDepthFunc = ffienumIOV glDepthFuncFunPtr
+
+glDepthFuncFunPtr :: FunPtr (GLenum -> IO ())
+glDepthFuncFunPtr = unsafePerformIO (getProcAddress "glDepthFunc")
+
+{-# NOINLINE glDepthFuncFunPtr #-}
+
+-- | Usage: @'glDepthMask' flag@
+--
+-- The parameter @flag@ is a @Boolean@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FALSE', 'Graphics.GL.Raw.Internal.Shared.GL_TRUE'.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDepthMask.xhtml>
+
+
+glDepthMask :: MonadIO m => GLboolean -> m ()
+glDepthMask = ffibooleanIOV glDepthMaskFunPtr
+
+glDepthMaskFunPtr :: FunPtr (GLboolean -> IO ())
+glDepthMaskFunPtr = unsafePerformIO (getProcAddress "glDepthMask")
+
+{-# NOINLINE glDepthMaskFunPtr #-}
+
+-- | Usage: @'glDepthRange' near far@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDepthRange.xhtml>
+
+
+glDepthRange :: MonadIO m => GLdouble -> GLdouble -> m ()
+glDepthRange = ffidoubledoubleIOV glDepthRangeFunPtr
+
+glDepthRangeFunPtr :: FunPtr (GLdouble -> GLdouble -> IO ())
+glDepthRangeFunPtr = unsafePerformIO (getProcAddress "glDepthRange")
+
+{-# NOINLINE glDepthRangeFunPtr #-}
+
+-- | Usage: @'glDetachShader' program shader@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDetachShader.xhtml>
+
+
+glDetachShader :: MonadIO m => GLuint -> GLuint -> m ()
+glDetachShader = ffiuintuintIOV glDetachShaderFunPtr
+
+glDetachShaderFunPtr :: FunPtr (GLuint -> GLuint -> IO ())
+glDetachShaderFunPtr = unsafePerformIO (getProcAddress "glDetachShader")
+
+{-# NOINLINE glDetachShaderFunPtr #-}
+
+-- | Usage: @'glDisable' cap@
+--
+-- The parameter @cap@ is a @EnableCap@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_ALPHA_TEST', 'Graphics.GL.Raw.Extension.SGIX.AsyncPixel.GL_ASYNC_DRAW_PIXELS_SGIX', 'Graphics.GL.Raw.Extension.SGIX.AsyncHistogram.GL_ASYNC_HISTOGRAM_SGIX', 'Graphics.GL.Raw.Extension.SGIX.AsyncPixel.GL_ASYNC_READ_PIXELS_SGIX', 'Graphics.GL.Raw.Extension.SGIX.AsyncPixel.GL_ASYNC_TEX_IMAGE_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_AUTO_NORMAL', 'Graphics.GL.Raw.Internal.Shared.GL_BLEND', 'Graphics.GL.Raw.Extension.SGIX.CalligraphicFragment.GL_CALLIGRAPHIC_FRAGMENT_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_CLIP_PLANE0', 'Graphics.GL.Raw.Internal.Shared.GL_CLIP_PLANE1', 'Graphics.GL.Raw.Internal.Shared.GL_CLIP_PLANE2', 'Graphics.GL.Raw.Internal.Shared.GL_CLIP_PLANE3', 'Graphics.GL.Raw.Internal.Shared.GL_CLIP_PLANE4', 'Graphics.GL.Raw.Internal.Shared.GL_CLIP_PLANE5', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_ARRAY', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_LOGIC_OP', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_MATERIAL', 'Graphics.GL.Raw.Extension.SGI.ColorTable.GL_COLOR_TABLE_SGI', 'Graphics.GL.Raw.Extension.EXT.Convolution.GL_CONVOLUTION_1D_EXT', 'Graphics.GL.Raw.Extension.EXT.Convolution.GL_CONVOLUTION_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_CULL_FACE', 'Graphics.GL.Raw.Internal.Shared.GL_DEPTH_TEST', 'Graphics.GL.Raw.Internal.Shared.GL_DITHER', 'Graphics.GL.Raw.Internal.Shared.GL_EDGE_FLAG_ARRAY', 'Graphics.GL.Raw.Internal.Shared.GL_FOG', 'Graphics.GL.Raw.Extension.SGIX.FogOffset.GL_FOG_OFFSET_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_COLOR_MATERIAL_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT0_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT1_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT2_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT3_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT4_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT5_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT6_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT7_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHTING_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Framezoom.GL_FRAMEZOOM_SGIX', 'Graphics.GL.Raw.Extension.EXT.Histogram.GL_HISTOGRAM_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_INDEX_ARRAY', 'Graphics.GL.Raw.Internal.Shared.GL_INDEX_LOGIC_OP', 'Graphics.GL.Raw.Extension.SGIX.Interlace.GL_INTERLACE_SGIX', 'Graphics.GL.Raw.Extension.SGIX.IrInstrument1.GL_IR_INSTRUMENT1_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT0', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT1', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT2', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT3', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT4', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT5', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT6', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT7', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHTING', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_SMOOTH', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_STIPPLE', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_COLOR_4', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_NORMAL', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_TEXTURE_COORD_1', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_TEXTURE_COORD_2', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_TEXTURE_COORD_3', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_TEXTURE_COORD_4', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_VERTEX_3', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_VERTEX_4', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_COLOR_4', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_NORMAL', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_TEXTURE_COORD_1', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_TEXTURE_COORD_2', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_TEXTURE_COORD_3', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_TEXTURE_COORD_4', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_VERTEX_3', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_VERTEX_4', 'Graphics.GL.Raw.Extension.EXT.Histogram.GL_MINMAX_EXT', 'Graphics.GL.Raw.Extension.SGIS.Multisample.GL_MULTISAMPLE_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_NORMALIZE', 'Graphics.GL.Raw.Internal.Shared.GL_NORMAL_ARRAY', 'Graphics.GL.Raw.Extension.SGIS.PixelTexture.GL_PIXEL_TEXTURE_SGIS', 'Graphics.GL.Raw.Extension.SGIX.PixelTexture.GL_PIXEL_TEX_GEN_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_POINT_SMOOTH', 'Graphics.GL.Raw.Internal.Shared.GL_POLYGON_OFFSET_FILL', 'Graphics.GL.Raw.Internal.Shared.GL_POLYGON_OFFSET_LINE', 'Graphics.GL.Raw.Internal.Shared.GL_POLYGON_OFFSET_POINT', 'Graphics.GL.Raw.Internal.Shared.GL_POLYGON_SMOOTH', 'Graphics.GL.Raw.Internal.Shared.GL_POLYGON_STIPPLE', 'Graphics.GL.Raw.Extension.SGI.ColorTable.GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI', 'Graphics.GL.Raw.Extension.SGI.ColorTable.GL_POST_CONVOLUTION_COLOR_TABLE_SGI', 'Graphics.GL.Raw.Extension.SGIX.ReferencePlane.GL_REFERENCE_PLANE_SGIX', 'Graphics.GL.Raw.Extension.EXT.RescaleNormal.GL_RESCALE_NORMAL_EXT', 'Graphics.GL.Raw.Extension.SGIS.Multisample.GL_SAMPLE_ALPHA_TO_MASK_SGIS', 'Graphics.GL.Raw.Extension.SGIS.Multisample.GL_SAMPLE_ALPHA_TO_ONE_SGIS', 'Graphics.GL.Raw.Extension.SGIS.Multisample.GL_SAMPLE_MASK_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_SCISSOR_TEST', 'Graphics.GL.Raw.Extension.EXT.Convolution.GL_SEPARABLE_2D_EXT', 'Graphics.GL.Raw.Extension.EXT.SharedTexturePalette.GL_SHARED_TEXTURE_PALETTE_EXT', 'Graphics.GL.Raw.Extension.SGIX.Sprite.GL_SPRITE_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_STENCIL_TEST', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Extension.SGI.TextureColorTable.GL_TEXTURE_COLOR_TABLE_SGI', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_COORD_ARRAY', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_GEN_Q', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_GEN_R', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_GEN_S', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_GEN_T', 'Graphics.GL.Raw.Internal.Shared.GL_VERTEX_ARRAY'.
+
+
+glDisable :: MonadIO m => GLenum -> m ()
+glDisable = ffienumIOV glDisableFunPtr
+
+glDisableFunPtr :: FunPtr (GLenum -> IO ())
+glDisableFunPtr = unsafePerformIO (getProcAddress "glDisable")
+
+{-# NOINLINE glDisableFunPtr #-}
+
+-- | Usage: @'glDisableVertexAttribArray' index@
+
+
+glDisableVertexAttribArray :: MonadIO m => GLuint -> m ()
+glDisableVertexAttribArray = ffiuintIOV glDisableVertexAttribArrayFunPtr
+
+glDisableVertexAttribArrayFunPtr :: FunPtr (GLuint -> IO ())
+glDisableVertexAttribArrayFunPtr = unsafePerformIO (getProcAddress "glDisableVertexAttribArray")
+
+{-# NOINLINE glDisableVertexAttribArrayFunPtr #-}
+
+-- | Usage: @'glDisablei' target index@
+
+
+glDisablei :: MonadIO m => GLenum -> GLuint -> m ()
+glDisablei = ffienumuintIOV glDisableiFunPtr
+
+glDisableiFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
+glDisableiFunPtr = unsafePerformIO (getProcAddress "glDisablei")
+
+{-# NOINLINE glDisableiFunPtr #-}
+
+-- | Usage: @'glDrawArrays' mode first count@
+--
+-- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_LINES', 'Graphics.GL.Raw.Profile.Core32.GL_LINES_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Raw.Profile.Core32.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PATCHES', 'Graphics.GL.Raw.Extension.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_POINTS', 'Graphics.GL.Raw.Internal.Shared.GL_POLYGON', 'Graphics.GL.Raw.Internal.Shared.GL_QUADS', 'Graphics.GL.Raw.Extension.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Raw.Profile.Core32.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Raw.Profile.Core32.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDrawArrays.xhtml>
+
+
+glDrawArrays :: MonadIO m => GLenum -> GLint -> GLsizei -> m ()
+glDrawArrays = ffienumintsizeiIOV glDrawArraysFunPtr
+
+glDrawArraysFunPtr :: FunPtr (GLenum -> GLint -> GLsizei -> IO ())
+glDrawArraysFunPtr = unsafePerformIO (getProcAddress "glDrawArrays")
+
+{-# NOINLINE glDrawArraysFunPtr #-}
+
+-- | Usage: @'glDrawArraysInstanced' mode first count instancecount@
+--
+-- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_LINES', 'Graphics.GL.Raw.Profile.Core32.GL_LINES_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Raw.Profile.Core32.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PATCHES', 'Graphics.GL.Raw.Extension.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_POINTS', 'Graphics.GL.Raw.Internal.Shared.GL_POLYGON', 'Graphics.GL.Raw.Internal.Shared.GL_QUADS', 'Graphics.GL.Raw.Extension.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Raw.Profile.Core32.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Raw.Profile.Core32.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDrawArraysInstanced.xhtml>
+
+
+glDrawArraysInstanced :: MonadIO m => GLenum -> GLint -> GLsizei -> GLsizei -> m ()
+glDrawArraysInstanced = ffienumintsizeisizeiIOV glDrawArraysInstancedFunPtr
+
+glDrawArraysInstancedFunPtr :: FunPtr (GLenum -> GLint -> GLsizei -> GLsizei -> IO ())
+glDrawArraysInstancedFunPtr = unsafePerformIO (getProcAddress "glDrawArraysInstanced")
+
+{-# NOINLINE glDrawArraysInstancedFunPtr #-}
+
+-- | Usage: @'glDrawBuffer' buf@
+--
+-- The parameter @buf@ is a @DrawBufferMode@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_AUX0', 'Graphics.GL.Raw.Internal.Shared.GL_AUX1', 'Graphics.GL.Raw.Internal.Shared.GL_AUX2', 'Graphics.GL.Raw.Internal.Shared.GL_AUX3', 'Graphics.GL.Raw.Internal.Shared.GL_BACK', 'Graphics.GL.Raw.Internal.Shared.GL_BACK_LEFT', 'Graphics.GL.Raw.Internal.Shared.GL_BACK_RIGHT', 'Graphics.GL.Raw.Internal.Shared.GL_FRONT', 'Graphics.GL.Raw.Internal.Shared.GL_FRONT_AND_BACK', 'Graphics.GL.Raw.Internal.Shared.GL_FRONT_LEFT', 'Graphics.GL.Raw.Internal.Shared.GL_FRONT_RIGHT', 'Graphics.GL.Raw.Internal.Shared.GL_LEFT', 'Graphics.GL.Raw.Internal.Shared.GL_NONE', 'Graphics.GL.Raw.Extension.OES.FramebufferObject.GL_NONE_OES', 'Graphics.GL.Raw.Internal.Shared.GL_RIGHT'.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDrawBuffer.xhtml>
+
+
+glDrawBuffer :: MonadIO m => GLenum -> m ()
+glDrawBuffer = ffienumIOV glDrawBufferFunPtr
+
+glDrawBufferFunPtr :: FunPtr (GLenum -> IO ())
+glDrawBufferFunPtr = unsafePerformIO (getProcAddress "glDrawBuffer")
+
+{-# NOINLINE glDrawBufferFunPtr #-}
+
+-- | Usage: @'glDrawBuffers' n bufs@
+--
+-- The parameter @bufs@ is a @DrawBufferModeATI@.
+--
+-- The length of @bufs@ should be @n@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDrawBuffers.xhtml>
+
+
+glDrawBuffers :: MonadIO m => GLsizei -> Ptr GLenum -> m ()
+glDrawBuffers = ffisizeiPtrenumIOV glDrawBuffersFunPtr
+
+glDrawBuffersFunPtr :: FunPtr (GLsizei -> Ptr GLenum -> IO ())
+glDrawBuffersFunPtr = unsafePerformIO (getProcAddress "glDrawBuffers")
+
+{-# NOINLINE glDrawBuffersFunPtr #-}
+
+-- | Usage: @'glDrawElements' mode count type indices@
+--
+-- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_LINES', 'Graphics.GL.Raw.Profile.Core32.GL_LINES_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Raw.Profile.Core32.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PATCHES', 'Graphics.GL.Raw.Extension.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_POINTS', 'Graphics.GL.Raw.Internal.Shared.GL_POLYGON', 'Graphics.GL.Raw.Internal.Shared.GL_QUADS', 'Graphics.GL.Raw.Extension.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Raw.Profile.Core32.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Raw.Profile.Core32.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
+--
+-- The parameter @type@ is a @DrawElementsType@.
+--
+-- The length of @indices@ should be @COMPSIZE(count,type)@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDrawElements.xhtml>
+
+
+glDrawElements :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr () -> m ()
+glDrawElements = ffienumsizeienumPtrVIOV glDrawElementsFunPtr
+
+glDrawElementsFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> Ptr () -> IO ())
+glDrawElementsFunPtr = unsafePerformIO (getProcAddress "glDrawElements")
+
+{-# NOINLINE glDrawElementsFunPtr #-}
+
+-- | Usage: @'glDrawElementsInstanced' mode count type indices instancecount@
+--
+-- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_LINES', 'Graphics.GL.Raw.Profile.Core32.GL_LINES_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Raw.Profile.Core32.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PATCHES', 'Graphics.GL.Raw.Extension.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_POINTS', 'Graphics.GL.Raw.Internal.Shared.GL_POLYGON', 'Graphics.GL.Raw.Internal.Shared.GL_QUADS', 'Graphics.GL.Raw.Extension.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Raw.Profile.Core32.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Raw.Profile.Core32.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
+--
+-- The parameter @type@ is a @DrawElementsType@.
+--
+-- The length of @indices@ should be @COMPSIZE(count,type)@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDrawElementsInstanced.xhtml>
+
+
+glDrawElementsInstanced :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> m ()
+glDrawElementsInstanced = ffienumsizeienumPtrVsizeiIOV glDrawElementsInstancedFunPtr
+
+glDrawElementsInstancedFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> IO ())
+glDrawElementsInstancedFunPtr = unsafePerformIO (getProcAddress "glDrawElementsInstanced")
+
+{-# NOINLINE glDrawElementsInstancedFunPtr #-}
+
+-- | Usage: @'glDrawRangeElements' mode start end count type indices@
+--
+-- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_LINES', 'Graphics.GL.Raw.Profile.Core32.GL_LINES_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Raw.Profile.Core32.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PATCHES', 'Graphics.GL.Raw.Extension.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_POINTS', 'Graphics.GL.Raw.Internal.Shared.GL_POLYGON', 'Graphics.GL.Raw.Internal.Shared.GL_QUADS', 'Graphics.GL.Raw.Extension.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Raw.Profile.Core32.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Raw.Profile.Core32.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
+--
+-- The parameter @type@ is a @DrawElementsType@.
+--
+-- The length of @indices@ should be @COMPSIZE(count,type)@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDrawRangeElements.xhtml>
+
+
+glDrawRangeElements :: MonadIO m => GLenum -> GLuint -> GLuint -> GLsizei -> GLenum -> Ptr () -> m ()
+glDrawRangeElements = ffienumuintuintsizeienumPtrVIOV glDrawRangeElementsFunPtr
+
+glDrawRangeElementsFunPtr :: FunPtr (GLenum -> GLuint -> GLuint -> GLsizei -> GLenum -> Ptr () -> IO ())
+glDrawRangeElementsFunPtr = unsafePerformIO (getProcAddress "glDrawRangeElements")
+
+{-# NOINLINE glDrawRangeElementsFunPtr #-}
+
+-- | Usage: @'glEnable' cap@
+--
+-- The parameter @cap@ is a @EnableCap@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_ALPHA_TEST', 'Graphics.GL.Raw.Extension.SGIX.AsyncPixel.GL_ASYNC_DRAW_PIXELS_SGIX', 'Graphics.GL.Raw.Extension.SGIX.AsyncHistogram.GL_ASYNC_HISTOGRAM_SGIX', 'Graphics.GL.Raw.Extension.SGIX.AsyncPixel.GL_ASYNC_READ_PIXELS_SGIX', 'Graphics.GL.Raw.Extension.SGIX.AsyncPixel.GL_ASYNC_TEX_IMAGE_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_AUTO_NORMAL', 'Graphics.GL.Raw.Internal.Shared.GL_BLEND', 'Graphics.GL.Raw.Extension.SGIX.CalligraphicFragment.GL_CALLIGRAPHIC_FRAGMENT_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_CLIP_PLANE0', 'Graphics.GL.Raw.Internal.Shared.GL_CLIP_PLANE1', 'Graphics.GL.Raw.Internal.Shared.GL_CLIP_PLANE2', 'Graphics.GL.Raw.Internal.Shared.GL_CLIP_PLANE3', 'Graphics.GL.Raw.Internal.Shared.GL_CLIP_PLANE4', 'Graphics.GL.Raw.Internal.Shared.GL_CLIP_PLANE5', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_ARRAY', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_LOGIC_OP', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_MATERIAL', 'Graphics.GL.Raw.Extension.SGI.ColorTable.GL_COLOR_TABLE_SGI', 'Graphics.GL.Raw.Extension.EXT.Convolution.GL_CONVOLUTION_1D_EXT', 'Graphics.GL.Raw.Extension.EXT.Convolution.GL_CONVOLUTION_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_CULL_FACE', 'Graphics.GL.Raw.Internal.Shared.GL_DEPTH_TEST', 'Graphics.GL.Raw.Internal.Shared.GL_DITHER', 'Graphics.GL.Raw.Internal.Shared.GL_EDGE_FLAG_ARRAY', 'Graphics.GL.Raw.Internal.Shared.GL_FOG', 'Graphics.GL.Raw.Extension.SGIX.FogOffset.GL_FOG_OFFSET_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_COLOR_MATERIAL_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT0_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT1_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT2_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT3_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT4_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT5_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT6_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT7_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHTING_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Framezoom.GL_FRAMEZOOM_SGIX', 'Graphics.GL.Raw.Extension.EXT.Histogram.GL_HISTOGRAM_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_INDEX_ARRAY', 'Graphics.GL.Raw.Internal.Shared.GL_INDEX_LOGIC_OP', 'Graphics.GL.Raw.Extension.SGIX.Interlace.GL_INTERLACE_SGIX', 'Graphics.GL.Raw.Extension.SGIX.IrInstrument1.GL_IR_INSTRUMENT1_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT0', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT1', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT2', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT3', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT4', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT5', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT6', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT7', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHTING', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_SMOOTH', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_STIPPLE', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_COLOR_4', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_NORMAL', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_TEXTURE_COORD_1', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_TEXTURE_COORD_2', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_TEXTURE_COORD_3', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_TEXTURE_COORD_4', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_VERTEX_3', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_VERTEX_4', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_COLOR_4', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_NORMAL', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_TEXTURE_COORD_1', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_TEXTURE_COORD_2', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_TEXTURE_COORD_3', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_TEXTURE_COORD_4', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_VERTEX_3', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_VERTEX_4', 'Graphics.GL.Raw.Extension.EXT.Histogram.GL_MINMAX_EXT', 'Graphics.GL.Raw.Extension.SGIS.Multisample.GL_MULTISAMPLE_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_NORMALIZE', 'Graphics.GL.Raw.Internal.Shared.GL_NORMAL_ARRAY', 'Graphics.GL.Raw.Extension.SGIS.PixelTexture.GL_PIXEL_TEXTURE_SGIS', 'Graphics.GL.Raw.Extension.SGIX.PixelTexture.GL_PIXEL_TEX_GEN_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_POINT_SMOOTH', 'Graphics.GL.Raw.Internal.Shared.GL_POLYGON_OFFSET_FILL', 'Graphics.GL.Raw.Internal.Shared.GL_POLYGON_OFFSET_LINE', 'Graphics.GL.Raw.Internal.Shared.GL_POLYGON_OFFSET_POINT', 'Graphics.GL.Raw.Internal.Shared.GL_POLYGON_SMOOTH', 'Graphics.GL.Raw.Internal.Shared.GL_POLYGON_STIPPLE', 'Graphics.GL.Raw.Extension.SGI.ColorTable.GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI', 'Graphics.GL.Raw.Extension.SGI.ColorTable.GL_POST_CONVOLUTION_COLOR_TABLE_SGI', 'Graphics.GL.Raw.Extension.SGIX.ReferencePlane.GL_REFERENCE_PLANE_SGIX', 'Graphics.GL.Raw.Extension.EXT.RescaleNormal.GL_RESCALE_NORMAL_EXT', 'Graphics.GL.Raw.Extension.SGIS.Multisample.GL_SAMPLE_ALPHA_TO_MASK_SGIS', 'Graphics.GL.Raw.Extension.SGIS.Multisample.GL_SAMPLE_ALPHA_TO_ONE_SGIS', 'Graphics.GL.Raw.Extension.SGIS.Multisample.GL_SAMPLE_MASK_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_SCISSOR_TEST', 'Graphics.GL.Raw.Extension.EXT.Convolution.GL_SEPARABLE_2D_EXT', 'Graphics.GL.Raw.Extension.EXT.SharedTexturePalette.GL_SHARED_TEXTURE_PALETTE_EXT', 'Graphics.GL.Raw.Extension.SGIX.Sprite.GL_SPRITE_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_STENCIL_TEST', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Extension.SGI.TextureColorTable.GL_TEXTURE_COLOR_TABLE_SGI', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_COORD_ARRAY', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_GEN_Q', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_GEN_R', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_GEN_S', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_GEN_T', 'Graphics.GL.Raw.Internal.Shared.GL_VERTEX_ARRAY'.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glEnable.xhtml>
+
+
+glEnable :: MonadIO m => GLenum -> m ()
+glEnable = ffienumIOV glEnableFunPtr
+
+glEnableFunPtr :: FunPtr (GLenum -> IO ())
+glEnableFunPtr = unsafePerformIO (getProcAddress "glEnable")
+
+{-# NOINLINE glEnableFunPtr #-}
+
+-- | Usage: @'glEnableVertexAttribArray' index@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glEnableVertexAttribArray.xhtml>
+
+
+glEnableVertexAttribArray :: MonadIO m => GLuint -> m ()
+glEnableVertexAttribArray = ffiuintIOV glEnableVertexAttribArrayFunPtr
+
+glEnableVertexAttribArrayFunPtr :: FunPtr (GLuint -> IO ())
+glEnableVertexAttribArrayFunPtr = unsafePerformIO (getProcAddress "glEnableVertexAttribArray")
+
+{-# NOINLINE glEnableVertexAttribArrayFunPtr #-}
+
+-- | Usage: @'glEnablei' target index@
+
+
+glEnablei :: MonadIO m => GLenum -> GLuint -> m ()
+glEnablei = ffienumuintIOV glEnableiFunPtr
+
+glEnableiFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
+glEnableiFunPtr = unsafePerformIO (getProcAddress "glEnablei")
+
+{-# NOINLINE glEnableiFunPtr #-}
+
+-- | Usage: @'glEndConditionalRender'@
+
+
+glEndConditionalRender :: MonadIO m => m ()
+glEndConditionalRender = ffiIOV glEndConditionalRenderFunPtr
+
+glEndConditionalRenderFunPtr :: FunPtr (IO ())
+glEndConditionalRenderFunPtr = unsafePerformIO (getProcAddress "glEndConditionalRender")
+
+{-# NOINLINE glEndConditionalRenderFunPtr #-}
+
+-- | Usage: @'glEndQuery' target@
+
+
+glEndQuery :: MonadIO m => GLenum -> m ()
+glEndQuery = ffienumIOV glEndQueryFunPtr
+
+glEndQueryFunPtr :: FunPtr (GLenum -> IO ())
+glEndQueryFunPtr = unsafePerformIO (getProcAddress "glEndQuery")
+
+{-# NOINLINE glEndQueryFunPtr #-}
+
+-- | Usage: @'glEndTransformFeedback'@
+
+
+glEndTransformFeedback :: MonadIO m => m ()
+glEndTransformFeedback = ffiIOV glEndTransformFeedbackFunPtr
+
+glEndTransformFeedbackFunPtr :: FunPtr (IO ())
+glEndTransformFeedbackFunPtr = unsafePerformIO (getProcAddress "glEndTransformFeedback")
+
+{-# NOINLINE glEndTransformFeedbackFunPtr #-}
+
+-- | Usage: @'glFinish'@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glFinish.xhtml>
+
+
+glFinish :: MonadIO m => m ()
+glFinish = ffiIOV glFinishFunPtr
+
+glFinishFunPtr :: FunPtr (IO ())
+glFinishFunPtr = unsafePerformIO (getProcAddress "glFinish")
+
+{-# NOINLINE glFinishFunPtr #-}
+
+-- | Usage: @'glFlush'@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glFlush.xhtml>
+
+
+glFlush :: MonadIO m => m ()
+glFlush = ffiIOV glFlushFunPtr
+
+glFlushFunPtr :: FunPtr (IO ())
+glFlushFunPtr = unsafePerformIO (getProcAddress "glFlush")
+
+{-# NOINLINE glFlushFunPtr #-}
+
+-- | Usage: @'glFrontFace' mode@
+--
+-- The parameter @mode@ is a @FrontFaceDirection@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_CCW', 'Graphics.GL.Raw.Internal.Shared.GL_CW'.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glFrontFace.xhtml>
+
+
+glFrontFace :: MonadIO m => GLenum -> m ()
+glFrontFace = ffienumIOV glFrontFaceFunPtr
+
+glFrontFaceFunPtr :: FunPtr (GLenum -> IO ())
+glFrontFaceFunPtr = unsafePerformIO (getProcAddress "glFrontFace")
+
+{-# NOINLINE glFrontFaceFunPtr #-}
+
+-- | Usage: @'glGenBuffers' n buffers@
+--
+-- The length of @buffers@ should be @n@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGenBuffers.xhtml>
+
+
+glGenBuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glGenBuffers = ffisizeiPtruintIOV glGenBuffersFunPtr
+
+glGenBuffersFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glGenBuffersFunPtr = unsafePerformIO (getProcAddress "glGenBuffers")
+
+{-# NOINLINE glGenBuffersFunPtr #-}
+
+-- | Usage: @'glGenQueries' n ids@
+--
+-- The length of @ids@ should be @n@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGenQueries.xhtml>
+
+
+glGenQueries :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glGenQueries = ffisizeiPtruintIOV glGenQueriesFunPtr
+
+glGenQueriesFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glGenQueriesFunPtr = unsafePerformIO (getProcAddress "glGenQueries")
+
+{-# NOINLINE glGenQueriesFunPtr #-}
+
+-- | Usage: @'glGenTextures' n textures@
+--
+-- The parameter @textures@ is a @Texture@.
+--
+-- The length of @textures@ should be @n@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGenTextures.xhtml>
+
+
+glGenTextures :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glGenTextures = ffisizeiPtruintIOV glGenTexturesFunPtr
+
+glGenTexturesFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glGenTexturesFunPtr = unsafePerformIO (getProcAddress "glGenTextures")
+
+{-# NOINLINE glGenTexturesFunPtr #-}
+
+-- | Usage: @'glGetActiveAttrib' program index bufSize length size type name@
+--
+-- The length of @length@ should be @1@.
+--
+-- The length of @size@ should be @1@.
+--
+-- The length of @type@ should be @1@.
+--
+-- The length of @name@ should be @bufSize@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetActiveAttrib.xhtml>
+
+
+glGetActiveAttrib :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLint -> Ptr GLenum -> Ptr GLchar -> m ()
+glGetActiveAttrib = ffiuintuintsizeiPtrsizeiPtrintPtrenumPtrcharIOV glGetActiveAttribFunPtr
+
+glGetActiveAttribFunPtr :: FunPtr (GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLint -> Ptr GLenum -> Ptr GLchar -> IO ())
+glGetActiveAttribFunPtr = unsafePerformIO (getProcAddress "glGetActiveAttrib")
+
+{-# NOINLINE glGetActiveAttribFunPtr #-}
+
+-- | Usage: @'glGetActiveUniform' program index bufSize length size type name@
+--
+-- The length of @length@ should be @1@.
+--
+-- The length of @size@ should be @1@.
+--
+-- The length of @type@ should be @1@.
+--
+-- The length of @name@ should be @bufSize@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetActiveUniform.xhtml>
+
+
+glGetActiveUniform :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLint -> Ptr GLenum -> Ptr GLchar -> m ()
+glGetActiveUniform = ffiuintuintsizeiPtrsizeiPtrintPtrenumPtrcharIOV glGetActiveUniformFunPtr
+
+glGetActiveUniformFunPtr :: FunPtr (GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLint -> Ptr GLenum -> Ptr GLchar -> IO ())
+glGetActiveUniformFunPtr = unsafePerformIO (getProcAddress "glGetActiveUniform")
+
+{-# NOINLINE glGetActiveUniformFunPtr #-}
+
+-- | Usage: @'glGetAttachedShaders' program maxCount count shaders@
+--
+-- The length of @count@ should be @1@.
+--
+-- The length of @shaders@ should be @maxCount@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetAttachedShaders.xhtml>
+
+
+glGetAttachedShaders :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLuint -> m ()
+glGetAttachedShaders = ffiuintsizeiPtrsizeiPtruintIOV glGetAttachedShadersFunPtr
+
+glGetAttachedShadersFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLuint -> IO ())
+glGetAttachedShadersFunPtr = unsafePerformIO (getProcAddress "glGetAttachedShaders")
+
+{-# NOINLINE glGetAttachedShadersFunPtr #-}
+
+-- | Usage: @'glGetAttribLocation' program name@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetAttribLocation.xhtml>
+
+
+glGetAttribLocation :: MonadIO m => GLuint -> Ptr GLchar -> m GLint
+glGetAttribLocation = ffiuintPtrcharIOint glGetAttribLocationFunPtr
+
+glGetAttribLocationFunPtr :: FunPtr (GLuint -> Ptr GLchar -> IO GLint)
+glGetAttribLocationFunPtr = unsafePerformIO (getProcAddress "glGetAttribLocation")
+
+{-# NOINLINE glGetAttribLocationFunPtr #-}
+
+-- | Usage: @'glGetBooleani_v' target index data@
+--
+-- The parameter @data@ is a @Boolean@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FALSE', 'Graphics.GL.Raw.Internal.Shared.GL_TRUE'.
+--
+-- The length of @data@ should be @COMPSIZE(target)@.
+
+
+glGetBooleani_v :: MonadIO m => GLenum -> GLuint -> Ptr GLboolean -> m ()
+glGetBooleani_v = ffienumuintPtrbooleanIOV glGetBooleani_vFunPtr
+
+glGetBooleani_vFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLboolean -> IO ())
+glGetBooleani_vFunPtr = unsafePerformIO (getProcAddress "glGetBooleani_v")
+
+{-# NOINLINE glGetBooleani_vFunPtr #-}
+
+-- | Usage: @'glGetBooleanv' pname data@
+--
+-- The parameter @pname@ is a @GetPName@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_ACCUM_ALPHA_BITS', 'Graphics.GL.Raw.Internal.Shared.GL_ACCUM_BLUE_BITS', 'Graphics.GL.Raw.Internal.Shared.GL_ACCUM_CLEAR_VALUE', 'Graphics.GL.Raw.Internal.Shared.GL_ACCUM_GREEN_BITS', 'Graphics.GL.Raw.Internal.Shared.GL_ACCUM_RED_BITS', 'Graphics.GL.Raw.Internal.Shared.GL_ALIASED_LINE_WIDTH_RANGE', 'Graphics.GL.Raw.Internal.Shared.GL_ALIASED_POINT_SIZE_RANGE', 'Graphics.GL.Raw.Internal.Shared.GL_ALPHA_BIAS', 'Graphics.GL.Raw.Internal.Shared.GL_ALPHA_BITS', 'Graphics.GL.Raw.Internal.Shared.GL_ALPHA_SCALE', 'Graphics.GL.Raw.Internal.Shared.GL_ALPHA_TEST', 'Graphics.GL.Raw.Internal.Shared.GL_ALPHA_TEST_FUNC', 'Graphics.GL.Raw.Extension.QCOM.AlphaTest.GL_ALPHA_TEST_FUNC_QCOM', 'Graphics.GL.Raw.Extension.QCOM.AlphaTest.GL_ALPHA_TEST_QCOM', 'Graphics.GL.Raw.Internal.Shared.GL_ALPHA_TEST_REF', 'Graphics.GL.Raw.Extension.QCOM.AlphaTest.GL_ALPHA_TEST_REF_QCOM', 'Graphics.GL.Raw.Extension.SGIX.AsyncPixel.GL_ASYNC_DRAW_PIXELS_SGIX', 'Graphics.GL.Raw.Extension.SGIX.AsyncHistogram.GL_ASYNC_HISTOGRAM_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Async.GL_ASYNC_MARKER_SGIX', 'Graphics.GL.Raw.Extension.SGIX.AsyncPixel.GL_ASYNC_READ_PIXELS_SGIX', 'Graphics.GL.Raw.Extension.SGIX.AsyncPixel.GL_ASYNC_TEX_IMAGE_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_ATTRIB_STACK_DEPTH', 'Graphics.GL.Raw.Internal.Shared.GL_AUTO_NORMAL', 'Graphics.GL.Raw.Internal.Shared.GL_AUX_BUFFERS', 'Graphics.GL.Raw.Internal.Shared.GL_BLEND', 'Graphics.GL.Raw.Extension.EXT.BlendColor.GL_BLEND_COLOR_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_BLEND_DST', 'Graphics.GL.Raw.Extension.EXT.BlendMinmax.GL_BLEND_EQUATION_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_BLEND_SRC', 'Graphics.GL.Raw.Internal.Shared.GL_BLUE_BIAS', 'Graphics.GL.Raw.Internal.Shared.GL_BLUE_BITS', 'Graphics.GL.Raw.Internal.Shared.GL_BLUE_SCALE', 'Graphics.GL.Raw.Extension.SGIX.CalligraphicFragment.GL_CALLIGRAPHIC_FRAGMENT_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_CLIENT_ATTRIB_STACK_DEPTH', 'Graphics.GL.Raw.Internal.Shared.GL_CLIP_PLANE0', 'Graphics.GL.Raw.Internal.Shared.GL_CLIP_PLANE1', 'Graphics.GL.Raw.Internal.Shared.GL_CLIP_PLANE2', 'Graphics.GL.Raw.Internal.Shared.GL_CLIP_PLANE3', 'Graphics.GL.Raw.Internal.Shared.GL_CLIP_PLANE4', 'Graphics.GL.Raw.Internal.Shared.GL_CLIP_PLANE5', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_ARRAY', 'Graphics.GL.Raw.Extension.EXT.VertexArray.GL_COLOR_ARRAY_COUNT_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_ARRAY_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_ARRAY_STRIDE', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_ARRAY_TYPE', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_CLEAR_VALUE', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_LOGIC_OP', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_MATERIAL', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_MATERIAL_FACE', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_MATERIAL_PARAMETER', 'Graphics.GL.Raw.Extension.SGI.ColorMatrix.GL_COLOR_MATRIX_SGI', 'Graphics.GL.Raw.Extension.SGI.ColorMatrix.GL_COLOR_MATRIX_STACK_DEPTH_SGI', 'Graphics.GL.Raw.Extension.SGI.ColorTable.GL_COLOR_TABLE_SGI', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_WRITEMASK', 'Graphics.GL.Raw.Extension.EXT.Convolution.GL_CONVOLUTION_1D_EXT', 'Graphics.GL.Raw.Extension.EXT.Convolution.GL_CONVOLUTION_2D_EXT', 'Graphics.GL.Raw.Extension.SGIX.ConvolutionAccuracy.GL_CONVOLUTION_HINT_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_CULL_FACE', 'Graphics.GL.Raw.Internal.Shared.GL_CULL_FACE_MODE', 'Graphics.GL.Raw.Internal.Shared.GL_CURRENT_COLOR', 'Graphics.GL.Raw.Internal.Shared.GL_CURRENT_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_CURRENT_NORMAL', 'Graphics.GL.Raw.Internal.Shared.GL_CURRENT_RASTER_COLOR', 'Graphics.GL.Raw.Internal.Shared.GL_CURRENT_RASTER_DISTANCE', 'Graphics.GL.Raw.Internal.Shared.GL_CURRENT_RASTER_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_CURRENT_RASTER_POSITION', 'Graphics.GL.Raw.Internal.Shared.GL_CURRENT_RASTER_POSITION_VALID', 'Graphics.GL.Raw.Internal.Shared.GL_CURRENT_RASTER_TEXTURE_COORDS', 'Graphics.GL.Raw.Internal.Shared.GL_CURRENT_TEXTURE_COORDS', 'Graphics.GL.Raw.Extension.SGIX.PolynomialFfd.GL_DEFORMATIONS_MASK_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_DEPTH_BIAS', 'Graphics.GL.Raw.Internal.Shared.GL_DEPTH_BITS', 'Graphics.GL.Raw.Internal.Shared.GL_DEPTH_CLEAR_VALUE', 'Graphics.GL.Raw.Internal.Shared.GL_DEPTH_FUNC', 'Graphics.GL.Raw.Internal.Shared.GL_DEPTH_RANGE', 'Graphics.GL.Raw.Internal.Shared.GL_DEPTH_SCALE', 'Graphics.GL.Raw.Internal.Shared.GL_DEPTH_TEST', 'Graphics.GL.Raw.Internal.Shared.GL_DEPTH_WRITEMASK', 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_BINDING_SGIS', 'Graphics.GL.Raw.Extension.SGIS.PointParameters.GL_DISTANCE_ATTENUATION_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_DITHER', 'Graphics.GL.Raw.Internal.Shared.GL_DOUBLEBUFFER', 'Graphics.GL.Raw.Internal.Shared.GL_DRAW_BUFFER', 'Graphics.GL.Raw.Extension.EXT.MultiviewDrawBuffers.GL_DRAW_BUFFER_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_EDGE_FLAG', 'Graphics.GL.Raw.Internal.Shared.GL_EDGE_FLAG_ARRAY', 'Graphics.GL.Raw.Extension.EXT.VertexArray.GL_EDGE_FLAG_ARRAY_COUNT_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_EDGE_FLAG_ARRAY_STRIDE', 'Graphics.GL.Raw.Internal.Shared.GL_FEEDBACK_BUFFER_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_FEEDBACK_BUFFER_TYPE', 'Graphics.GL.Raw.Internal.Shared.GL_FOG', 'Graphics.GL.Raw.Internal.Shared.GL_FOG_COLOR', 'Graphics.GL.Raw.Internal.Shared.GL_FOG_DENSITY', 'Graphics.GL.Raw.Internal.Shared.GL_FOG_END', 'Graphics.GL.Raw.Extension.SGIS.FogFunction.GL_FOG_FUNC_POINTS_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_FOG_HINT', 'Graphics.GL.Raw.Internal.Shared.GL_FOG_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_FOG_MODE', 'Graphics.GL.Raw.Extension.SGIX.FogOffset.GL_FOG_OFFSET_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FogOffset.GL_FOG_OFFSET_VALUE_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_FOG_START', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_COLOR_MATERIAL_FACE_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_COLOR_MATERIAL_PARAMETER_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_COLOR_MATERIAL_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT0_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHTING_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Framezoom.GL_FRAMEZOOM_FACTOR_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Framezoom.GL_FRAMEZOOM_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_FRONT_FACE', 'Graphics.GL.Raw.Extension.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_HINT_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_GREEN_BIAS', 'Graphics.GL.Raw.Internal.Shared.GL_GREEN_BITS', 'Graphics.GL.Raw.Internal.Shared.GL_GREEN_SCALE', 'Graphics.GL.Raw.Extension.EXT.Histogram.GL_HISTOGRAM_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_INDEX_ARRAY', 'Graphics.GL.Raw.Extension.EXT.VertexArray.GL_INDEX_ARRAY_COUNT_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_INDEX_ARRAY_STRIDE', 'Graphics.GL.Raw.Internal.Shared.GL_INDEX_ARRAY_TYPE', 'Graphics.GL.Raw.Internal.Shared.GL_INDEX_BITS', 'Graphics.GL.Raw.Internal.Shared.GL_INDEX_CLEAR_VALUE', 'Graphics.GL.Raw.Internal.Shared.GL_INDEX_LOGIC_OP', 'Graphics.GL.Raw.Internal.Shared.GL_INDEX_MODE', 'Graphics.GL.Raw.Internal.Shared.GL_INDEX_OFFSET', 'Graphics.GL.Raw.Internal.Shared.GL_INDEX_SHIFT', 'Graphics.GL.Raw.Internal.Shared.GL_INDEX_WRITEMASK', 'Graphics.GL.Raw.Extension.SGIX.Instruments.GL_INSTRUMENT_MEASUREMENTS_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Interlace.GL_INTERLACE_SGIX', 'Graphics.GL.Raw.Extension.SGIX.IrInstrument1.GL_IR_INSTRUMENT1_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT0', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT1', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT2', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT3', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT4', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT5', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT6', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT7', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHTING', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_LIGHT_ENV_MODE_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT_MODEL_AMBIENT', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT_MODEL_COLOR_CONTROL', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT_MODEL_LOCAL_VIEWER', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT_MODEL_TWO_SIDE', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_SMOOTH', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_SMOOTH_HINT', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_STIPPLE', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_STIPPLE_PATTERN', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_STIPPLE_REPEAT', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_WIDTH', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_WIDTH_GRANULARITY', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_WIDTH_RANGE', 'Graphics.GL.Raw.Internal.Shared.GL_LIST_BASE', 'Graphics.GL.Raw.Internal.Shared.GL_LIST_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_LIST_MODE', 'Graphics.GL.Raw.Internal.Shared.GL_LOGIC_OP', 'Graphics.GL.Raw.Internal.Shared.GL_LOGIC_OP_MODE', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_COLOR_4', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_GRID_DOMAIN', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_GRID_SEGMENTS', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_NORMAL', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_TEXTURE_COORD_1', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_TEXTURE_COORD_2', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_TEXTURE_COORD_3', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_TEXTURE_COORD_4', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_VERTEX_3', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_VERTEX_4', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_COLOR_4', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_GRID_DOMAIN', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_GRID_SEGMENTS', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_NORMAL', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_TEXTURE_COORD_1', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_TEXTURE_COORD_2', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_TEXTURE_COORD_3', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_TEXTURE_COORD_4', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_VERTEX_3', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_VERTEX_4', 'Graphics.GL.Raw.Internal.Shared.GL_MAP_COLOR', 'Graphics.GL.Raw.Internal.Shared.GL_MAP_STENCIL', 'Graphics.GL.Raw.Internal.Shared.GL_MATRIX_MODE', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_MAX_3D_TEXTURE_SIZE_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_MAX_4D_TEXTURE_SIZE_SGIS', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_MAX_ACTIVE_LIGHTS_SGIX', 'Graphics.GL.Raw.Extension.SGIX.AsyncPixel.GL_MAX_ASYNC_DRAW_PIXELS_SGIX', 'Graphics.GL.Raw.Extension.SGIX.AsyncHistogram.GL_MAX_ASYNC_HISTOGRAM_SGIX', 'Graphics.GL.Raw.Extension.SGIX.AsyncPixel.GL_MAX_ASYNC_READ_PIXELS_SGIX', 'Graphics.GL.Raw.Extension.SGIX.AsyncPixel.GL_MAX_ASYNC_TEX_IMAGE_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_MAX_ATTRIB_STACK_DEPTH', 'Graphics.GL.Raw.Internal.Shared.GL_MAX_CLIENT_ATTRIB_STACK_DEPTH', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_MAX_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_MAX_CLIP_DISTANCES', 'Graphics.GL.Raw.Internal.Shared.GL_MAX_CLIP_PLANES', 'Graphics.GL.Raw.Extension.SGI.ColorMatrix.GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI', 'Graphics.GL.Raw.Internal.Shared.GL_MAX_EVAL_ORDER', 'Graphics.GL.Raw.Extension.SGIS.FogFunction.GL_MAX_FOG_FUNC_POINTS_SGIS', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_MAX_FRAGMENT_LIGHTS_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Framezoom.GL_MAX_FRAMEZOOM_FACTOR_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_MAX_LIGHTS', 'Graphics.GL.Raw.Internal.Shared.GL_MAX_LIST_NESTING', 'Graphics.GL.Raw.Internal.Shared.GL_MAX_MODELVIEW_STACK_DEPTH', 'Graphics.GL.Raw.Internal.Shared.GL_MAX_NAME_STACK_DEPTH', 'Graphics.GL.Raw.Internal.Shared.GL_MAX_PIXEL_MAP_TABLE', 'Graphics.GL.Raw.Internal.Shared.GL_MAX_PROJECTION_STACK_DEPTH', 'Graphics.GL.Raw.Internal.Shared.GL_MAX_TEXTURE_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_MAX_TEXTURE_STACK_DEPTH', 'Graphics.GL.Raw.Internal.Shared.GL_MAX_VIEWPORT_DIMS', 'Graphics.GL.Raw.Extension.EXT.Histogram.GL_MINMAX_EXT', 'Graphics.GL.Raw.Extension.EXT.VertexWeighting.GL_MODELVIEW0_MATRIX_EXT', 'Graphics.GL.Raw.Extension.EXT.VertexWeighting.GL_MODELVIEW0_STACK_DEPTH_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_MODELVIEW_MATRIX', 'Graphics.GL.Raw.Internal.Shared.GL_MODELVIEW_STACK_DEPTH', 'Graphics.GL.Raw.Extension.SGIS.Multisample.GL_MULTISAMPLE_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_NAME_STACK_DEPTH', 'Graphics.GL.Raw.Internal.Shared.GL_NORMALIZE', 'Graphics.GL.Raw.Internal.Shared.GL_NORMAL_ARRAY', 'Graphics.GL.Raw.Extension.EXT.VertexArray.GL_NORMAL_ARRAY_COUNT_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_NORMAL_ARRAY_STRIDE', 'Graphics.GL.Raw.Internal.Shared.GL_NORMAL_ARRAY_TYPE', 'Graphics.GL.Raw.Internal.Shared.GL_PACK_ALIGNMENT', 'Graphics.GL.Raw.Extension.EXT.Cmyka.GL_PACK_CMYK_HINT_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PACK_IMAGE_DEPTH_SGIS', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PACK_IMAGE_HEIGHT_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PACK_LSB_FIRST', 'Graphics.GL.Raw.Extension.SGIX.Resample.GL_PACK_RESAMPLE_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_PACK_ROW_LENGTH', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PACK_SKIP_IMAGES_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PACK_SKIP_PIXELS', 'Graphics.GL.Raw.Internal.Shared.GL_PACK_SKIP_ROWS', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PACK_SKIP_VOLUMES_SGIS', 'Graphics.GL.Raw.Extension.SGIX.Subsample.GL_PACK_SUBSAMPLE_RATE_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_PACK_SWAP_BYTES', 'Graphics.GL.Raw.Internal.Shared.GL_PERSPECTIVE_CORRECTION_HINT', 'Graphics.GL.Raw.Internal.Shared.GL_PIXEL_MAP_A_TO_A_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_PIXEL_MAP_B_TO_B_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_PIXEL_MAP_G_TO_G_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_PIXEL_MAP_I_TO_A_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_PIXEL_MAP_I_TO_B_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_PIXEL_MAP_I_TO_G_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_PIXEL_MAP_I_TO_I_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_PIXEL_MAP_I_TO_R_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_PIXEL_MAP_R_TO_R_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_PIXEL_MAP_S_TO_S_SIZE', 'Graphics.GL.Raw.Extension.SGIS.PixelTexture.GL_PIXEL_TEXTURE_SGIS', 'Graphics.GL.Raw.Extension.SGIX.PixelTexture.GL_PIXEL_TEX_GEN_MODE_SGIX', 'Graphics.GL.Raw.Extension.SGIX.PixelTexture.GL_PIXEL_TEX_GEN_SGIX', 'Graphics.GL.Raw.Extension.SGIX.PixelTiles.GL_PIXEL_TILE_BEST_ALIGNMENT_SGIX', 'Graphics.GL.Raw.Extension.SGIX.PixelTiles.GL_PIXEL_TILE_CACHE_INCREMENT_SGIX', 'Graphics.GL.Raw.Extension.SGIX.PixelTiles.GL_PIXEL_TILE_CACHE_SIZE_SGIX', 'Graphics.GL.Raw.Extension.SGIX.PixelTiles.GL_PIXEL_TILE_GRID_DEPTH_SGIX', 'Graphics.GL.Raw.Extension.SGIX.PixelTiles.GL_PIXEL_TILE_GRID_HEIGHT_SGIX', 'Graphics.GL.Raw.Extension.SGIX.PixelTiles.GL_PIXEL_TILE_GRID_WIDTH_SGIX', 'Graphics.GL.Raw.Extension.SGIX.PixelTiles.GL_PIXEL_TILE_HEIGHT_SGIX', 'Graphics.GL.Raw.Extension.SGIX.PixelTiles.GL_PIXEL_TILE_WIDTH_SGIX', 'Graphics.GL.Raw.Extension.SGIS.PointParameters.GL_POINT_FADE_THRESHOLD_SIZE_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_POINT_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_POINT_SIZE_GRANULARITY', 'Graphics.GL.Raw.Extension.SGIS.PointParameters.GL_POINT_SIZE_MAX_SGIS', 'Graphics.GL.Raw.Extension.SGIS.PointParameters.GL_POINT_SIZE_MIN_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_POINT_SIZE_RANGE', 'Graphics.GL.Raw.Internal.Shared.GL_POINT_SMOOTH', 'Graphics.GL.Raw.Internal.Shared.GL_POINT_SMOOTH_HINT', 'Graphics.GL.Raw.Internal.Shared.GL_POLYGON_MODE', 'Graphics.GL.Raw.Extension.EXT.PolygonOffset.GL_POLYGON_OFFSET_BIAS_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_POLYGON_OFFSET_FACTOR', 'Graphics.GL.Raw.Internal.Shared.GL_POLYGON_OFFSET_FILL', 'Graphics.GL.Raw.Internal.Shared.GL_POLYGON_OFFSET_LINE', 'Graphics.GL.Raw.Internal.Shared.GL_POLYGON_OFFSET_POINT', 'Graphics.GL.Raw.Internal.Shared.GL_POLYGON_OFFSET_UNITS', 'Graphics.GL.Raw.Internal.Shared.GL_POLYGON_SMOOTH', 'Graphics.GL.Raw.Internal.Shared.GL_POLYGON_SMOOTH_HINT', 'Graphics.GL.Raw.Internal.Shared.GL_POLYGON_STIPPLE', 'Graphics.GL.Raw.Extension.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI', 'Graphics.GL.Raw.Extension.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI', 'Graphics.GL.Raw.Extension.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI', 'Graphics.GL.Raw.Extension.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI', 'Graphics.GL.Raw.Extension.SGI.ColorTable.GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI', 'Graphics.GL.Raw.Extension.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI', 'Graphics.GL.Raw.Extension.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI', 'Graphics.GL.Raw.Extension.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_RED_BIAS_SGI', 'Graphics.GL.Raw.Extension.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_RED_SCALE_SGI', 'Graphics.GL.Raw.Extension.EXT.Convolution.GL_POST_CONVOLUTION_ALPHA_BIAS_EXT', 'Graphics.GL.Raw.Extension.EXT.Convolution.GL_POST_CONVOLUTION_ALPHA_SCALE_EXT', 'Graphics.GL.Raw.Extension.EXT.Convolution.GL_POST_CONVOLUTION_BLUE_BIAS_EXT', 'Graphics.GL.Raw.Extension.EXT.Convolution.GL_POST_CONVOLUTION_BLUE_SCALE_EXT', 'Graphics.GL.Raw.Extension.SGI.ColorTable.GL_POST_CONVOLUTION_COLOR_TABLE_SGI', 'Graphics.GL.Raw.Extension.EXT.Convolution.GL_POST_CONVOLUTION_GREEN_BIAS_EXT', 'Graphics.GL.Raw.Extension.EXT.Convolution.GL_POST_CONVOLUTION_GREEN_SCALE_EXT', 'Graphics.GL.Raw.Extension.EXT.Convolution.GL_POST_CONVOLUTION_RED_BIAS_EXT', 'Graphics.GL.Raw.Extension.EXT.Convolution.GL_POST_CONVOLUTION_RED_SCALE_EXT', 'Graphics.GL.Raw.Extension.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_PROJECTION_MATRIX', 'Graphics.GL.Raw.Internal.Shared.GL_PROJECTION_STACK_DEPTH', 'Graphics.GL.Raw.Internal.Shared.GL_READ_BUFFER', 'Graphics.GL.Raw.Extension.EXT.MultiviewDrawBuffers.GL_READ_BUFFER_EXT', 'Graphics.GL.Raw.Extension.NV.ReadBuffer.GL_READ_BUFFER_NV', 'Graphics.GL.Raw.Internal.Shared.GL_RED_BIAS', 'Graphics.GL.Raw.Internal.Shared.GL_RED_BITS', 'Graphics.GL.Raw.Internal.Shared.GL_RED_SCALE', 'Graphics.GL.Raw.Extension.SGIX.ReferencePlane.GL_REFERENCE_PLANE_EQUATION_SGIX', 'Graphics.GL.Raw.Extension.SGIX.ReferencePlane.GL_REFERENCE_PLANE_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_RENDER_MODE', 'Graphics.GL.Raw.Extension.EXT.RescaleNormal.GL_RESCALE_NORMAL_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_RGBA_MODE', 'Graphics.GL.Raw.Extension.SGIS.Multisample.GL_SAMPLES_SGIS', 'Graphics.GL.Raw.Extension.SGIS.Multisample.GL_SAMPLE_ALPHA_TO_MASK_SGIS', 'Graphics.GL.Raw.Extension.SGIS.Multisample.GL_SAMPLE_ALPHA_TO_ONE_SGIS', 'Graphics.GL.Raw.Extension.SGIS.Multisample.GL_SAMPLE_BUFFERS_SGIS', 'Graphics.GL.Raw.Extension.SGIS.Multisample.GL_SAMPLE_MASK_INVERT_SGIS', 'Graphics.GL.Raw.Extension.SGIS.Multisample.GL_SAMPLE_MASK_SGIS', 'Graphics.GL.Raw.Extension.SGIS.Multisample.GL_SAMPLE_MASK_VALUE_SGIS', 'Graphics.GL.Raw.Extension.SGIS.Multisample.GL_SAMPLE_PATTERN_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_SCISSOR_BOX', 'Graphics.GL.Raw.Internal.Shared.GL_SCISSOR_TEST', 'Graphics.GL.Raw.Internal.Shared.GL_SELECTION_BUFFER_SIZE', 'Graphics.GL.Raw.Extension.EXT.Convolution.GL_SEPARABLE_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_SHADE_MODEL', 'Graphics.GL.Raw.Extension.EXT.SharedTexturePalette.GL_SHARED_TEXTURE_PALETTE_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_SMOOTH_LINE_WIDTH_GRANULARITY', 'Graphics.GL.Raw.Internal.Shared.GL_SMOOTH_LINE_WIDTH_RANGE', 'Graphics.GL.Raw.Internal.Shared.GL_SMOOTH_POINT_SIZE_GRANULARITY', 'Graphics.GL.Raw.Internal.Shared.GL_SMOOTH_POINT_SIZE_RANGE', 'Graphics.GL.Raw.Extension.SGIX.Sprite.GL_SPRITE_AXIS_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Sprite.GL_SPRITE_MODE_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Sprite.GL_SPRITE_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Sprite.GL_SPRITE_TRANSLATION_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_STENCIL_BITS', 'Graphics.GL.Raw.Internal.Shared.GL_STENCIL_CLEAR_VALUE', 'Graphics.GL.Raw.Internal.Shared.GL_STENCIL_FAIL', 'Graphics.GL.Raw.Internal.Shared.GL_STENCIL_FUNC', 'Graphics.GL.Raw.Internal.Shared.GL_STENCIL_PASS_DEPTH_FAIL', 'Graphics.GL.Raw.Internal.Shared.GL_STENCIL_PASS_DEPTH_PASS', 'Graphics.GL.Raw.Internal.Shared.GL_STENCIL_REF', 'Graphics.GL.Raw.Internal.Shared.GL_STENCIL_TEST', 'Graphics.GL.Raw.Internal.Shared.GL_STENCIL_VALUE_MASK', 'Graphics.GL.Raw.Internal.Shared.GL_STENCIL_WRITEMASK', 'Graphics.GL.Raw.Internal.Shared.GL_STEREO', 'Graphics.GL.Raw.Internal.Shared.GL_SUBPIXEL_BITS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.TextureObject.GL_TEXTURE_3D_BINDING_EXT', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_BINDING_SGIS', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BINDING_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BINDING_2D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BINDING_3D', 'Graphics.GL.Raw.Extension.SGI.TextureColorTable.GL_TEXTURE_COLOR_TABLE_SGI', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_COORD_ARRAY', 'Graphics.GL.Raw.Extension.EXT.VertexArray.GL_TEXTURE_COORD_ARRAY_COUNT_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_COORD_ARRAY_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_COORD_ARRAY_STRIDE', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_COORD_ARRAY_TYPE', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_GEN_Q', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_GEN_R', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_GEN_S', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_GEN_T', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MATRIX', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_STACK_DEPTH', 'Graphics.GL.Raw.Internal.Shared.GL_UNPACK_ALIGNMENT', 'Graphics.GL.Raw.Extension.EXT.Cmyka.GL_UNPACK_CMYK_HINT_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_UNPACK_IMAGE_DEPTH_SGIS', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_UNPACK_IMAGE_HEIGHT_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNPACK_LSB_FIRST', 'Graphics.GL.Raw.Extension.SGIX.Resample.GL_UNPACK_RESAMPLE_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_UNPACK_ROW_LENGTH', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_UNPACK_SKIP_IMAGES_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNPACK_SKIP_PIXELS', 'Graphics.GL.Raw.Internal.Shared.GL_UNPACK_SKIP_ROWS', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_UNPACK_SKIP_VOLUMES_SGIS', 'Graphics.GL.Raw.Extension.SGIX.Subsample.GL_UNPACK_SUBSAMPLE_RATE_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_UNPACK_SWAP_BYTES', 'Graphics.GL.Raw.Internal.Shared.GL_VERTEX_ARRAY', 'Graphics.GL.Raw.Extension.EXT.VertexArray.GL_VERTEX_ARRAY_COUNT_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_VERTEX_ARRAY_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_VERTEX_ARRAY_STRIDE', 'Graphics.GL.Raw.Internal.Shared.GL_VERTEX_ARRAY_TYPE', 'Graphics.GL.Raw.Extension.SGIX.VertexPreclip.GL_VERTEX_PRECLIP_HINT_SGIX', 'Graphics.GL.Raw.Extension.SGIX.VertexPreclip.GL_VERTEX_PRECLIP_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_VIEWPORT', 'Graphics.GL.Raw.Internal.Shared.GL_ZOOM_X', 'Graphics.GL.Raw.Internal.Shared.GL_ZOOM_Y'.
+--
+-- The parameter @data@ is a @Boolean@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FALSE', 'Graphics.GL.Raw.Internal.Shared.GL_TRUE'.
+--
+-- The length of @data@ should be @COMPSIZE(pname)@.
+
+
+glGetBooleanv :: MonadIO m => GLenum -> Ptr GLboolean -> m ()
+glGetBooleanv = ffienumPtrbooleanIOV glGetBooleanvFunPtr
+
+glGetBooleanvFunPtr :: FunPtr (GLenum -> Ptr GLboolean -> IO ())
+glGetBooleanvFunPtr = unsafePerformIO (getProcAddress "glGetBooleanv")
+
+{-# NOINLINE glGetBooleanvFunPtr #-}
+
+-- | Usage: @'glGetBufferParameteri64v' target pname params@
+--
+-- The parameter @target@ is a @BufferTargetARB@.
+--
+-- The parameter @pname@ is a @BufferPNameARB@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetBufferParameteri64v :: MonadIO m => GLenum -> GLenum -> Ptr GLint64 -> m ()
+glGetBufferParameteri64v = ffienumenumPtrint64IOV glGetBufferParameteri64vFunPtr
+
+glGetBufferParameteri64vFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint64 -> IO ())
+glGetBufferParameteri64vFunPtr = unsafePerformIO (getProcAddress "glGetBufferParameteri64v")
+
+{-# NOINLINE glGetBufferParameteri64vFunPtr #-}
+
+-- | Usage: @'glGetBufferParameteriv' target pname params@
+--
+-- The parameter @target@ is a @BufferTargetARB@.
+--
+-- The parameter @pname@ is a @BufferPNameARB@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetBufferParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
+glGetBufferParameteriv = ffienumenumPtrintIOV glGetBufferParameterivFunPtr
+
+glGetBufferParameterivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+glGetBufferParameterivFunPtr = unsafePerformIO (getProcAddress "glGetBufferParameteriv")
+
+{-# NOINLINE glGetBufferParameterivFunPtr #-}
+
+-- | Usage: @'glGetBufferPointerv' target pname params@
+--
+-- The parameter @target@ is a @BufferTargetARB@.
+--
+-- The parameter @pname@ is a @BufferPointerNameARB@.
+--
+-- The length of @params@ should be @1@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetBufferPointerv.xhtml>
+
+
+glGetBufferPointerv :: MonadIO m => GLenum -> GLenum -> Ptr (Ptr ()) -> m ()
+glGetBufferPointerv = ffienumenumPtrPtrVIOV glGetBufferPointervFunPtr
+
+glGetBufferPointervFunPtr :: FunPtr (GLenum -> GLenum -> Ptr (Ptr ()) -> IO ())
+glGetBufferPointervFunPtr = unsafePerformIO (getProcAddress "glGetBufferPointerv")
+
+{-# NOINLINE glGetBufferPointervFunPtr #-}
+
+-- | Usage: @'glGetBufferSubData' target offset size data@
+--
+-- The parameter @target@ is a @BufferTargetARB@.
+--
+-- The parameter @offset@ is a @BufferOffset@.
+--
+-- The parameter @size@ is a @BufferSize@.
+--
+-- The length of @data@ should be @size@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetBufferSubData.xhtml>
+
+
+glGetBufferSubData :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> Ptr () -> m ()
+glGetBufferSubData = ffienumintptrsizeiptrPtrVIOV glGetBufferSubDataFunPtr
+
+glGetBufferSubDataFunPtr :: FunPtr (GLenum -> GLintptr -> GLsizeiptr -> Ptr () -> IO ())
+glGetBufferSubDataFunPtr = unsafePerformIO (getProcAddress "glGetBufferSubData")
+
+{-# NOINLINE glGetBufferSubDataFunPtr #-}
+
+-- | Usage: @'glGetCompressedTexImage' target level img@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @img@ is a @CompressedTextureARB@.
+--
+-- The length of @img@ should be @COMPSIZE(target,level)@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetCompressedTexImage.xhtml>
+
+
+glGetCompressedTexImage :: MonadIO m => GLenum -> GLint -> Ptr () -> m ()
+glGetCompressedTexImage = ffienumintPtrVIOV glGetCompressedTexImageFunPtr
+
+glGetCompressedTexImageFunPtr :: FunPtr (GLenum -> GLint -> Ptr () -> IO ())
+glGetCompressedTexImageFunPtr = unsafePerformIO (getProcAddress "glGetCompressedTexImage")
+
+{-# NOINLINE glGetCompressedTexImageFunPtr #-}
+
+-- | Usage: @'glGetDoublev' pname data@
+--
+-- The parameter @pname@ is a @GetPName@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_ACCUM_ALPHA_BITS', 'Graphics.GL.Raw.Internal.Shared.GL_ACCUM_BLUE_BITS', 'Graphics.GL.Raw.Internal.Shared.GL_ACCUM_CLEAR_VALUE', 'Graphics.GL.Raw.Internal.Shared.GL_ACCUM_GREEN_BITS', 'Graphics.GL.Raw.Internal.Shared.GL_ACCUM_RED_BITS', 'Graphics.GL.Raw.Internal.Shared.GL_ALIASED_LINE_WIDTH_RANGE', 'Graphics.GL.Raw.Internal.Shared.GL_ALIASED_POINT_SIZE_RANGE', 'Graphics.GL.Raw.Internal.Shared.GL_ALPHA_BIAS', 'Graphics.GL.Raw.Internal.Shared.GL_ALPHA_BITS', 'Graphics.GL.Raw.Internal.Shared.GL_ALPHA_SCALE', 'Graphics.GL.Raw.Internal.Shared.GL_ALPHA_TEST', 'Graphics.GL.Raw.Internal.Shared.GL_ALPHA_TEST_FUNC', 'Graphics.GL.Raw.Extension.QCOM.AlphaTest.GL_ALPHA_TEST_FUNC_QCOM', 'Graphics.GL.Raw.Extension.QCOM.AlphaTest.GL_ALPHA_TEST_QCOM', 'Graphics.GL.Raw.Internal.Shared.GL_ALPHA_TEST_REF', 'Graphics.GL.Raw.Extension.QCOM.AlphaTest.GL_ALPHA_TEST_REF_QCOM', 'Graphics.GL.Raw.Extension.SGIX.AsyncPixel.GL_ASYNC_DRAW_PIXELS_SGIX', 'Graphics.GL.Raw.Extension.SGIX.AsyncHistogram.GL_ASYNC_HISTOGRAM_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Async.GL_ASYNC_MARKER_SGIX', 'Graphics.GL.Raw.Extension.SGIX.AsyncPixel.GL_ASYNC_READ_PIXELS_SGIX', 'Graphics.GL.Raw.Extension.SGIX.AsyncPixel.GL_ASYNC_TEX_IMAGE_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_ATTRIB_STACK_DEPTH', 'Graphics.GL.Raw.Internal.Shared.GL_AUTO_NORMAL', 'Graphics.GL.Raw.Internal.Shared.GL_AUX_BUFFERS', 'Graphics.GL.Raw.Internal.Shared.GL_BLEND', 'Graphics.GL.Raw.Extension.EXT.BlendColor.GL_BLEND_COLOR_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_BLEND_DST', 'Graphics.GL.Raw.Extension.EXT.BlendMinmax.GL_BLEND_EQUATION_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_BLEND_SRC', 'Graphics.GL.Raw.Internal.Shared.GL_BLUE_BIAS', 'Graphics.GL.Raw.Internal.Shared.GL_BLUE_BITS', 'Graphics.GL.Raw.Internal.Shared.GL_BLUE_SCALE', 'Graphics.GL.Raw.Extension.SGIX.CalligraphicFragment.GL_CALLIGRAPHIC_FRAGMENT_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_CLIENT_ATTRIB_STACK_DEPTH', 'Graphics.GL.Raw.Internal.Shared.GL_CLIP_PLANE0', 'Graphics.GL.Raw.Internal.Shared.GL_CLIP_PLANE1', 'Graphics.GL.Raw.Internal.Shared.GL_CLIP_PLANE2', 'Graphics.GL.Raw.Internal.Shared.GL_CLIP_PLANE3', 'Graphics.GL.Raw.Internal.Shared.GL_CLIP_PLANE4', 'Graphics.GL.Raw.Internal.Shared.GL_CLIP_PLANE5', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_ARRAY', 'Graphics.GL.Raw.Extension.EXT.VertexArray.GL_COLOR_ARRAY_COUNT_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_ARRAY_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_ARRAY_STRIDE', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_ARRAY_TYPE', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_CLEAR_VALUE', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_LOGIC_OP', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_MATERIAL', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_MATERIAL_FACE', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_MATERIAL_PARAMETER', 'Graphics.GL.Raw.Extension.SGI.ColorMatrix.GL_COLOR_MATRIX_SGI', 'Graphics.GL.Raw.Extension.SGI.ColorMatrix.GL_COLOR_MATRIX_STACK_DEPTH_SGI', 'Graphics.GL.Raw.Extension.SGI.ColorTable.GL_COLOR_TABLE_SGI', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_WRITEMASK', 'Graphics.GL.Raw.Extension.EXT.Convolution.GL_CONVOLUTION_1D_EXT', 'Graphics.GL.Raw.Extension.EXT.Convolution.GL_CONVOLUTION_2D_EXT', 'Graphics.GL.Raw.Extension.SGIX.ConvolutionAccuracy.GL_CONVOLUTION_HINT_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_CULL_FACE', 'Graphics.GL.Raw.Internal.Shared.GL_CULL_FACE_MODE', 'Graphics.GL.Raw.Internal.Shared.GL_CURRENT_COLOR', 'Graphics.GL.Raw.Internal.Shared.GL_CURRENT_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_CURRENT_NORMAL', 'Graphics.GL.Raw.Internal.Shared.GL_CURRENT_RASTER_COLOR', 'Graphics.GL.Raw.Internal.Shared.GL_CURRENT_RASTER_DISTANCE', 'Graphics.GL.Raw.Internal.Shared.GL_CURRENT_RASTER_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_CURRENT_RASTER_POSITION', 'Graphics.GL.Raw.Internal.Shared.GL_CURRENT_RASTER_POSITION_VALID', 'Graphics.GL.Raw.Internal.Shared.GL_CURRENT_RASTER_TEXTURE_COORDS', 'Graphics.GL.Raw.Internal.Shared.GL_CURRENT_TEXTURE_COORDS', 'Graphics.GL.Raw.Extension.SGIX.PolynomialFfd.GL_DEFORMATIONS_MASK_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_DEPTH_BIAS', 'Graphics.GL.Raw.Internal.Shared.GL_DEPTH_BITS', 'Graphics.GL.Raw.Internal.Shared.GL_DEPTH_CLEAR_VALUE', 'Graphics.GL.Raw.Internal.Shared.GL_DEPTH_FUNC', 'Graphics.GL.Raw.Internal.Shared.GL_DEPTH_RANGE', 'Graphics.GL.Raw.Internal.Shared.GL_DEPTH_SCALE', 'Graphics.GL.Raw.Internal.Shared.GL_DEPTH_TEST', 'Graphics.GL.Raw.Internal.Shared.GL_DEPTH_WRITEMASK', 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_BINDING_SGIS', 'Graphics.GL.Raw.Extension.SGIS.PointParameters.GL_DISTANCE_ATTENUATION_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_DITHER', 'Graphics.GL.Raw.Internal.Shared.GL_DOUBLEBUFFER', 'Graphics.GL.Raw.Internal.Shared.GL_DRAW_BUFFER', 'Graphics.GL.Raw.Extension.EXT.MultiviewDrawBuffers.GL_DRAW_BUFFER_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_EDGE_FLAG', 'Graphics.GL.Raw.Internal.Shared.GL_EDGE_FLAG_ARRAY', 'Graphics.GL.Raw.Extension.EXT.VertexArray.GL_EDGE_FLAG_ARRAY_COUNT_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_EDGE_FLAG_ARRAY_STRIDE', 'Graphics.GL.Raw.Internal.Shared.GL_FEEDBACK_BUFFER_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_FEEDBACK_BUFFER_TYPE', 'Graphics.GL.Raw.Internal.Shared.GL_FOG', 'Graphics.GL.Raw.Internal.Shared.GL_FOG_COLOR', 'Graphics.GL.Raw.Internal.Shared.GL_FOG_DENSITY', 'Graphics.GL.Raw.Internal.Shared.GL_FOG_END', 'Graphics.GL.Raw.Extension.SGIS.FogFunction.GL_FOG_FUNC_POINTS_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_FOG_HINT', 'Graphics.GL.Raw.Internal.Shared.GL_FOG_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_FOG_MODE', 'Graphics.GL.Raw.Extension.SGIX.FogOffset.GL_FOG_OFFSET_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FogOffset.GL_FOG_OFFSET_VALUE_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_FOG_START', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_COLOR_MATERIAL_FACE_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_COLOR_MATERIAL_PARAMETER_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_COLOR_MATERIAL_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT0_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHTING_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Framezoom.GL_FRAMEZOOM_FACTOR_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Framezoom.GL_FRAMEZOOM_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_FRONT_FACE', 'Graphics.GL.Raw.Extension.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_HINT_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_GREEN_BIAS', 'Graphics.GL.Raw.Internal.Shared.GL_GREEN_BITS', 'Graphics.GL.Raw.Internal.Shared.GL_GREEN_SCALE', 'Graphics.GL.Raw.Extension.EXT.Histogram.GL_HISTOGRAM_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_INDEX_ARRAY', 'Graphics.GL.Raw.Extension.EXT.VertexArray.GL_INDEX_ARRAY_COUNT_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_INDEX_ARRAY_STRIDE', 'Graphics.GL.Raw.Internal.Shared.GL_INDEX_ARRAY_TYPE', 'Graphics.GL.Raw.Internal.Shared.GL_INDEX_BITS', 'Graphics.GL.Raw.Internal.Shared.GL_INDEX_CLEAR_VALUE', 'Graphics.GL.Raw.Internal.Shared.GL_INDEX_LOGIC_OP', 'Graphics.GL.Raw.Internal.Shared.GL_INDEX_MODE', 'Graphics.GL.Raw.Internal.Shared.GL_INDEX_OFFSET', 'Graphics.GL.Raw.Internal.Shared.GL_INDEX_SHIFT', 'Graphics.GL.Raw.Internal.Shared.GL_INDEX_WRITEMASK', 'Graphics.GL.Raw.Extension.SGIX.Instruments.GL_INSTRUMENT_MEASUREMENTS_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Interlace.GL_INTERLACE_SGIX', 'Graphics.GL.Raw.Extension.SGIX.IrInstrument1.GL_IR_INSTRUMENT1_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT0', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT1', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT2', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT3', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT4', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT5', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT6', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT7', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHTING', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_LIGHT_ENV_MODE_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT_MODEL_AMBIENT', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT_MODEL_COLOR_CONTROL', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT_MODEL_LOCAL_VIEWER', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT_MODEL_TWO_SIDE', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_SMOOTH', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_SMOOTH_HINT', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_STIPPLE', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_STIPPLE_PATTERN', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_STIPPLE_REPEAT', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_WIDTH', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_WIDTH_GRANULARITY', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_WIDTH_RANGE', 'Graphics.GL.Raw.Internal.Shared.GL_LIST_BASE', 'Graphics.GL.Raw.Internal.Shared.GL_LIST_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_LIST_MODE', 'Graphics.GL.Raw.Internal.Shared.GL_LOGIC_OP', 'Graphics.GL.Raw.Internal.Shared.GL_LOGIC_OP_MODE', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_COLOR_4', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_GRID_DOMAIN', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_GRID_SEGMENTS', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_NORMAL', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_TEXTURE_COORD_1', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_TEXTURE_COORD_2', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_TEXTURE_COORD_3', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_TEXTURE_COORD_4', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_VERTEX_3', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_VERTEX_4', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_COLOR_4', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_GRID_DOMAIN', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_GRID_SEGMENTS', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_NORMAL', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_TEXTURE_COORD_1', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_TEXTURE_COORD_2', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_TEXTURE_COORD_3', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_TEXTURE_COORD_4', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_VERTEX_3', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_VERTEX_4', 'Graphics.GL.Raw.Internal.Shared.GL_MAP_COLOR', 'Graphics.GL.Raw.Internal.Shared.GL_MAP_STENCIL', 'Graphics.GL.Raw.Internal.Shared.GL_MATRIX_MODE', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_MAX_3D_TEXTURE_SIZE_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_MAX_4D_TEXTURE_SIZE_SGIS', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_MAX_ACTIVE_LIGHTS_SGIX', 'Graphics.GL.Raw.Extension.SGIX.AsyncPixel.GL_MAX_ASYNC_DRAW_PIXELS_SGIX', 'Graphics.GL.Raw.Extension.SGIX.AsyncHistogram.GL_MAX_ASYNC_HISTOGRAM_SGIX', 'Graphics.GL.Raw.Extension.SGIX.AsyncPixel.GL_MAX_ASYNC_READ_PIXELS_SGIX', 'Graphics.GL.Raw.Extension.SGIX.AsyncPixel.GL_MAX_ASYNC_TEX_IMAGE_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_MAX_ATTRIB_STACK_DEPTH', 'Graphics.GL.Raw.Internal.Shared.GL_MAX_CLIENT_ATTRIB_STACK_DEPTH', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_MAX_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_MAX_CLIP_DISTANCES', 'Graphics.GL.Raw.Internal.Shared.GL_MAX_CLIP_PLANES', 'Graphics.GL.Raw.Extension.SGI.ColorMatrix.GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI', 'Graphics.GL.Raw.Internal.Shared.GL_MAX_EVAL_ORDER', 'Graphics.GL.Raw.Extension.SGIS.FogFunction.GL_MAX_FOG_FUNC_POINTS_SGIS', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_MAX_FRAGMENT_LIGHTS_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Framezoom.GL_MAX_FRAMEZOOM_FACTOR_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_MAX_LIGHTS', 'Graphics.GL.Raw.Internal.Shared.GL_MAX_LIST_NESTING', 'Graphics.GL.Raw.Internal.Shared.GL_MAX_MODELVIEW_STACK_DEPTH', 'Graphics.GL.Raw.Internal.Shared.GL_MAX_NAME_STACK_DEPTH', 'Graphics.GL.Raw.Internal.Shared.GL_MAX_PIXEL_MAP_TABLE', 'Graphics.GL.Raw.Internal.Shared.GL_MAX_PROJECTION_STACK_DEPTH', 'Graphics.GL.Raw.Internal.Shared.GL_MAX_TEXTURE_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_MAX_TEXTURE_STACK_DEPTH', 'Graphics.GL.Raw.Internal.Shared.GL_MAX_VIEWPORT_DIMS', 'Graphics.GL.Raw.Extension.EXT.Histogram.GL_MINMAX_EXT', 'Graphics.GL.Raw.Extension.EXT.VertexWeighting.GL_MODELVIEW0_MATRIX_EXT', 'Graphics.GL.Raw.Extension.EXT.VertexWeighting.GL_MODELVIEW0_STACK_DEPTH_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_MODELVIEW_MATRIX', 'Graphics.GL.Raw.Internal.Shared.GL_MODELVIEW_STACK_DEPTH', 'Graphics.GL.Raw.Extension.SGIS.Multisample.GL_MULTISAMPLE_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_NAME_STACK_DEPTH', 'Graphics.GL.Raw.Internal.Shared.GL_NORMALIZE', 'Graphics.GL.Raw.Internal.Shared.GL_NORMAL_ARRAY', 'Graphics.GL.Raw.Extension.EXT.VertexArray.GL_NORMAL_ARRAY_COUNT_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_NORMAL_ARRAY_STRIDE', 'Graphics.GL.Raw.Internal.Shared.GL_NORMAL_ARRAY_TYPE', 'Graphics.GL.Raw.Internal.Shared.GL_PACK_ALIGNMENT', 'Graphics.GL.Raw.Extension.EXT.Cmyka.GL_PACK_CMYK_HINT_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PACK_IMAGE_DEPTH_SGIS', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PACK_IMAGE_HEIGHT_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PACK_LSB_FIRST', 'Graphics.GL.Raw.Extension.SGIX.Resample.GL_PACK_RESAMPLE_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_PACK_ROW_LENGTH', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PACK_SKIP_IMAGES_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PACK_SKIP_PIXELS', 'Graphics.GL.Raw.Internal.Shared.GL_PACK_SKIP_ROWS', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PACK_SKIP_VOLUMES_SGIS', 'Graphics.GL.Raw.Extension.SGIX.Subsample.GL_PACK_SUBSAMPLE_RATE_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_PACK_SWAP_BYTES', 'Graphics.GL.Raw.Internal.Shared.GL_PERSPECTIVE_CORRECTION_HINT', 'Graphics.GL.Raw.Internal.Shared.GL_PIXEL_MAP_A_TO_A_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_PIXEL_MAP_B_TO_B_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_PIXEL_MAP_G_TO_G_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_PIXEL_MAP_I_TO_A_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_PIXEL_MAP_I_TO_B_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_PIXEL_MAP_I_TO_G_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_PIXEL_MAP_I_TO_I_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_PIXEL_MAP_I_TO_R_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_PIXEL_MAP_R_TO_R_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_PIXEL_MAP_S_TO_S_SIZE', 'Graphics.GL.Raw.Extension.SGIS.PixelTexture.GL_PIXEL_TEXTURE_SGIS', 'Graphics.GL.Raw.Extension.SGIX.PixelTexture.GL_PIXEL_TEX_GEN_MODE_SGIX', 'Graphics.GL.Raw.Extension.SGIX.PixelTexture.GL_PIXEL_TEX_GEN_SGIX', 'Graphics.GL.Raw.Extension.SGIX.PixelTiles.GL_PIXEL_TILE_BEST_ALIGNMENT_SGIX', 'Graphics.GL.Raw.Extension.SGIX.PixelTiles.GL_PIXEL_TILE_CACHE_INCREMENT_SGIX', 'Graphics.GL.Raw.Extension.SGIX.PixelTiles.GL_PIXEL_TILE_CACHE_SIZE_SGIX', 'Graphics.GL.Raw.Extension.SGIX.PixelTiles.GL_PIXEL_TILE_GRID_DEPTH_SGIX', 'Graphics.GL.Raw.Extension.SGIX.PixelTiles.GL_PIXEL_TILE_GRID_HEIGHT_SGIX', 'Graphics.GL.Raw.Extension.SGIX.PixelTiles.GL_PIXEL_TILE_GRID_WIDTH_SGIX', 'Graphics.GL.Raw.Extension.SGIX.PixelTiles.GL_PIXEL_TILE_HEIGHT_SGIX', 'Graphics.GL.Raw.Extension.SGIX.PixelTiles.GL_PIXEL_TILE_WIDTH_SGIX', 'Graphics.GL.Raw.Extension.SGIS.PointParameters.GL_POINT_FADE_THRESHOLD_SIZE_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_POINT_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_POINT_SIZE_GRANULARITY', 'Graphics.GL.Raw.Extension.SGIS.PointParameters.GL_POINT_SIZE_MAX_SGIS', 'Graphics.GL.Raw.Extension.SGIS.PointParameters.GL_POINT_SIZE_MIN_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_POINT_SIZE_RANGE', 'Graphics.GL.Raw.Internal.Shared.GL_POINT_SMOOTH', 'Graphics.GL.Raw.Internal.Shared.GL_POINT_SMOOTH_HINT', 'Graphics.GL.Raw.Internal.Shared.GL_POLYGON_MODE', 'Graphics.GL.Raw.Extension.EXT.PolygonOffset.GL_POLYGON_OFFSET_BIAS_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_POLYGON_OFFSET_FACTOR', 'Graphics.GL.Raw.Internal.Shared.GL_POLYGON_OFFSET_FILL', 'Graphics.GL.Raw.Internal.Shared.GL_POLYGON_OFFSET_LINE', 'Graphics.GL.Raw.Internal.Shared.GL_POLYGON_OFFSET_POINT', 'Graphics.GL.Raw.Internal.Shared.GL_POLYGON_OFFSET_UNITS', 'Graphics.GL.Raw.Internal.Shared.GL_POLYGON_SMOOTH', 'Graphics.GL.Raw.Internal.Shared.GL_POLYGON_SMOOTH_HINT', 'Graphics.GL.Raw.Internal.Shared.GL_POLYGON_STIPPLE', 'Graphics.GL.Raw.Extension.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI', 'Graphics.GL.Raw.Extension.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI', 'Graphics.GL.Raw.Extension.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI', 'Graphics.GL.Raw.Extension.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI', 'Graphics.GL.Raw.Extension.SGI.ColorTable.GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI', 'Graphics.GL.Raw.Extension.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI', 'Graphics.GL.Raw.Extension.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI', 'Graphics.GL.Raw.Extension.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_RED_BIAS_SGI', 'Graphics.GL.Raw.Extension.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_RED_SCALE_SGI', 'Graphics.GL.Raw.Extension.EXT.Convolution.GL_POST_CONVOLUTION_ALPHA_BIAS_EXT', 'Graphics.GL.Raw.Extension.EXT.Convolution.GL_POST_CONVOLUTION_ALPHA_SCALE_EXT', 'Graphics.GL.Raw.Extension.EXT.Convolution.GL_POST_CONVOLUTION_BLUE_BIAS_EXT', 'Graphics.GL.Raw.Extension.EXT.Convolution.GL_POST_CONVOLUTION_BLUE_SCALE_EXT', 'Graphics.GL.Raw.Extension.SGI.ColorTable.GL_POST_CONVOLUTION_COLOR_TABLE_SGI', 'Graphics.GL.Raw.Extension.EXT.Convolution.GL_POST_CONVOLUTION_GREEN_BIAS_EXT', 'Graphics.GL.Raw.Extension.EXT.Convolution.GL_POST_CONVOLUTION_GREEN_SCALE_EXT', 'Graphics.GL.Raw.Extension.EXT.Convolution.GL_POST_CONVOLUTION_RED_BIAS_EXT', 'Graphics.GL.Raw.Extension.EXT.Convolution.GL_POST_CONVOLUTION_RED_SCALE_EXT', 'Graphics.GL.Raw.Extension.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_PROJECTION_MATRIX', 'Graphics.GL.Raw.Internal.Shared.GL_PROJECTION_STACK_DEPTH', 'Graphics.GL.Raw.Internal.Shared.GL_READ_BUFFER', 'Graphics.GL.Raw.Extension.EXT.MultiviewDrawBuffers.GL_READ_BUFFER_EXT', 'Graphics.GL.Raw.Extension.NV.ReadBuffer.GL_READ_BUFFER_NV', 'Graphics.GL.Raw.Internal.Shared.GL_RED_BIAS', 'Graphics.GL.Raw.Internal.Shared.GL_RED_BITS', 'Graphics.GL.Raw.Internal.Shared.GL_RED_SCALE', 'Graphics.GL.Raw.Extension.SGIX.ReferencePlane.GL_REFERENCE_PLANE_EQUATION_SGIX', 'Graphics.GL.Raw.Extension.SGIX.ReferencePlane.GL_REFERENCE_PLANE_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_RENDER_MODE', 'Graphics.GL.Raw.Extension.EXT.RescaleNormal.GL_RESCALE_NORMAL_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_RGBA_MODE', 'Graphics.GL.Raw.Extension.SGIS.Multisample.GL_SAMPLES_SGIS', 'Graphics.GL.Raw.Extension.SGIS.Multisample.GL_SAMPLE_ALPHA_TO_MASK_SGIS', 'Graphics.GL.Raw.Extension.SGIS.Multisample.GL_SAMPLE_ALPHA_TO_ONE_SGIS', 'Graphics.GL.Raw.Extension.SGIS.Multisample.GL_SAMPLE_BUFFERS_SGIS', 'Graphics.GL.Raw.Extension.SGIS.Multisample.GL_SAMPLE_MASK_INVERT_SGIS', 'Graphics.GL.Raw.Extension.SGIS.Multisample.GL_SAMPLE_MASK_SGIS', 'Graphics.GL.Raw.Extension.SGIS.Multisample.GL_SAMPLE_MASK_VALUE_SGIS', 'Graphics.GL.Raw.Extension.SGIS.Multisample.GL_SAMPLE_PATTERN_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_SCISSOR_BOX', 'Graphics.GL.Raw.Internal.Shared.GL_SCISSOR_TEST', 'Graphics.GL.Raw.Internal.Shared.GL_SELECTION_BUFFER_SIZE', 'Graphics.GL.Raw.Extension.EXT.Convolution.GL_SEPARABLE_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_SHADE_MODEL', 'Graphics.GL.Raw.Extension.EXT.SharedTexturePalette.GL_SHARED_TEXTURE_PALETTE_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_SMOOTH_LINE_WIDTH_GRANULARITY', 'Graphics.GL.Raw.Internal.Shared.GL_SMOOTH_LINE_WIDTH_RANGE', 'Graphics.GL.Raw.Internal.Shared.GL_SMOOTH_POINT_SIZE_GRANULARITY', 'Graphics.GL.Raw.Internal.Shared.GL_SMOOTH_POINT_SIZE_RANGE', 'Graphics.GL.Raw.Extension.SGIX.Sprite.GL_SPRITE_AXIS_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Sprite.GL_SPRITE_MODE_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Sprite.GL_SPRITE_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Sprite.GL_SPRITE_TRANSLATION_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_STENCIL_BITS', 'Graphics.GL.Raw.Internal.Shared.GL_STENCIL_CLEAR_VALUE', 'Graphics.GL.Raw.Internal.Shared.GL_STENCIL_FAIL', 'Graphics.GL.Raw.Internal.Shared.GL_STENCIL_FUNC', 'Graphics.GL.Raw.Internal.Shared.GL_STENCIL_PASS_DEPTH_FAIL', 'Graphics.GL.Raw.Internal.Shared.GL_STENCIL_PASS_DEPTH_PASS', 'Graphics.GL.Raw.Internal.Shared.GL_STENCIL_REF', 'Graphics.GL.Raw.Internal.Shared.GL_STENCIL_TEST', 'Graphics.GL.Raw.Internal.Shared.GL_STENCIL_VALUE_MASK', 'Graphics.GL.Raw.Internal.Shared.GL_STENCIL_WRITEMASK', 'Graphics.GL.Raw.Internal.Shared.GL_STEREO', 'Graphics.GL.Raw.Internal.Shared.GL_SUBPIXEL_BITS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.TextureObject.GL_TEXTURE_3D_BINDING_EXT', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_BINDING_SGIS', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BINDING_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BINDING_2D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BINDING_3D', 'Graphics.GL.Raw.Extension.SGI.TextureColorTable.GL_TEXTURE_COLOR_TABLE_SGI', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_COORD_ARRAY', 'Graphics.GL.Raw.Extension.EXT.VertexArray.GL_TEXTURE_COORD_ARRAY_COUNT_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_COORD_ARRAY_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_COORD_ARRAY_STRIDE', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_COORD_ARRAY_TYPE', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_GEN_Q', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_GEN_R', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_GEN_S', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_GEN_T', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MATRIX', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_STACK_DEPTH', 'Graphics.GL.Raw.Internal.Shared.GL_UNPACK_ALIGNMENT', 'Graphics.GL.Raw.Extension.EXT.Cmyka.GL_UNPACK_CMYK_HINT_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_UNPACK_IMAGE_DEPTH_SGIS', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_UNPACK_IMAGE_HEIGHT_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNPACK_LSB_FIRST', 'Graphics.GL.Raw.Extension.SGIX.Resample.GL_UNPACK_RESAMPLE_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_UNPACK_ROW_LENGTH', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_UNPACK_SKIP_IMAGES_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNPACK_SKIP_PIXELS', 'Graphics.GL.Raw.Internal.Shared.GL_UNPACK_SKIP_ROWS', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_UNPACK_SKIP_VOLUMES_SGIS', 'Graphics.GL.Raw.Extension.SGIX.Subsample.GL_UNPACK_SUBSAMPLE_RATE_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_UNPACK_SWAP_BYTES', 'Graphics.GL.Raw.Internal.Shared.GL_VERTEX_ARRAY', 'Graphics.GL.Raw.Extension.EXT.VertexArray.GL_VERTEX_ARRAY_COUNT_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_VERTEX_ARRAY_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_VERTEX_ARRAY_STRIDE', 'Graphics.GL.Raw.Internal.Shared.GL_VERTEX_ARRAY_TYPE', 'Graphics.GL.Raw.Extension.SGIX.VertexPreclip.GL_VERTEX_PRECLIP_HINT_SGIX', 'Graphics.GL.Raw.Extension.SGIX.VertexPreclip.GL_VERTEX_PRECLIP_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_VIEWPORT', 'Graphics.GL.Raw.Internal.Shared.GL_ZOOM_X', 'Graphics.GL.Raw.Internal.Shared.GL_ZOOM_Y'.
+--
+-- The length of @data@ should be @COMPSIZE(pname)@.
+
+
+glGetDoublev :: MonadIO m => GLenum -> Ptr GLdouble -> m ()
+glGetDoublev = ffienumPtrdoubleIOV glGetDoublevFunPtr
+
+glGetDoublevFunPtr :: FunPtr (GLenum -> Ptr GLdouble -> IO ())
+glGetDoublevFunPtr = unsafePerformIO (getProcAddress "glGetDoublev")
+
+{-# NOINLINE glGetDoublevFunPtr #-}
+
+-- | Usage: @'glGetError'@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetError.xhtml>
+
+
+glGetError :: MonadIO m => m GLenum
+glGetError = ffiIOenum glGetErrorFunPtr
+
+glGetErrorFunPtr :: FunPtr (IO GLenum)
+glGetErrorFunPtr = unsafePerformIO (getProcAddress "glGetError")
+
+{-# NOINLINE glGetErrorFunPtr #-}
+
+-- | Usage: @'glGetFloatv' pname data@
+--
+-- The parameter @pname@ is a @GetPName@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_ACCUM_ALPHA_BITS', 'Graphics.GL.Raw.Internal.Shared.GL_ACCUM_BLUE_BITS', 'Graphics.GL.Raw.Internal.Shared.GL_ACCUM_CLEAR_VALUE', 'Graphics.GL.Raw.Internal.Shared.GL_ACCUM_GREEN_BITS', 'Graphics.GL.Raw.Internal.Shared.GL_ACCUM_RED_BITS', 'Graphics.GL.Raw.Internal.Shared.GL_ALIASED_LINE_WIDTH_RANGE', 'Graphics.GL.Raw.Internal.Shared.GL_ALIASED_POINT_SIZE_RANGE', 'Graphics.GL.Raw.Internal.Shared.GL_ALPHA_BIAS', 'Graphics.GL.Raw.Internal.Shared.GL_ALPHA_BITS', 'Graphics.GL.Raw.Internal.Shared.GL_ALPHA_SCALE', 'Graphics.GL.Raw.Internal.Shared.GL_ALPHA_TEST', 'Graphics.GL.Raw.Internal.Shared.GL_ALPHA_TEST_FUNC', 'Graphics.GL.Raw.Extension.QCOM.AlphaTest.GL_ALPHA_TEST_FUNC_QCOM', 'Graphics.GL.Raw.Extension.QCOM.AlphaTest.GL_ALPHA_TEST_QCOM', 'Graphics.GL.Raw.Internal.Shared.GL_ALPHA_TEST_REF', 'Graphics.GL.Raw.Extension.QCOM.AlphaTest.GL_ALPHA_TEST_REF_QCOM', 'Graphics.GL.Raw.Extension.SGIX.AsyncPixel.GL_ASYNC_DRAW_PIXELS_SGIX', 'Graphics.GL.Raw.Extension.SGIX.AsyncHistogram.GL_ASYNC_HISTOGRAM_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Async.GL_ASYNC_MARKER_SGIX', 'Graphics.GL.Raw.Extension.SGIX.AsyncPixel.GL_ASYNC_READ_PIXELS_SGIX', 'Graphics.GL.Raw.Extension.SGIX.AsyncPixel.GL_ASYNC_TEX_IMAGE_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_ATTRIB_STACK_DEPTH', 'Graphics.GL.Raw.Internal.Shared.GL_AUTO_NORMAL', 'Graphics.GL.Raw.Internal.Shared.GL_AUX_BUFFERS', 'Graphics.GL.Raw.Internal.Shared.GL_BLEND', 'Graphics.GL.Raw.Extension.EXT.BlendColor.GL_BLEND_COLOR_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_BLEND_DST', 'Graphics.GL.Raw.Extension.EXT.BlendMinmax.GL_BLEND_EQUATION_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_BLEND_SRC', 'Graphics.GL.Raw.Internal.Shared.GL_BLUE_BIAS', 'Graphics.GL.Raw.Internal.Shared.GL_BLUE_BITS', 'Graphics.GL.Raw.Internal.Shared.GL_BLUE_SCALE', 'Graphics.GL.Raw.Extension.SGIX.CalligraphicFragment.GL_CALLIGRAPHIC_FRAGMENT_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_CLIENT_ATTRIB_STACK_DEPTH', 'Graphics.GL.Raw.Internal.Shared.GL_CLIP_PLANE0', 'Graphics.GL.Raw.Internal.Shared.GL_CLIP_PLANE1', 'Graphics.GL.Raw.Internal.Shared.GL_CLIP_PLANE2', 'Graphics.GL.Raw.Internal.Shared.GL_CLIP_PLANE3', 'Graphics.GL.Raw.Internal.Shared.GL_CLIP_PLANE4', 'Graphics.GL.Raw.Internal.Shared.GL_CLIP_PLANE5', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_ARRAY', 'Graphics.GL.Raw.Extension.EXT.VertexArray.GL_COLOR_ARRAY_COUNT_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_ARRAY_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_ARRAY_STRIDE', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_ARRAY_TYPE', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_CLEAR_VALUE', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_LOGIC_OP', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_MATERIAL', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_MATERIAL_FACE', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_MATERIAL_PARAMETER', 'Graphics.GL.Raw.Extension.SGI.ColorMatrix.GL_COLOR_MATRIX_SGI', 'Graphics.GL.Raw.Extension.SGI.ColorMatrix.GL_COLOR_MATRIX_STACK_DEPTH_SGI', 'Graphics.GL.Raw.Extension.SGI.ColorTable.GL_COLOR_TABLE_SGI', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_WRITEMASK', 'Graphics.GL.Raw.Extension.EXT.Convolution.GL_CONVOLUTION_1D_EXT', 'Graphics.GL.Raw.Extension.EXT.Convolution.GL_CONVOLUTION_2D_EXT', 'Graphics.GL.Raw.Extension.SGIX.ConvolutionAccuracy.GL_CONVOLUTION_HINT_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_CULL_FACE', 'Graphics.GL.Raw.Internal.Shared.GL_CULL_FACE_MODE', 'Graphics.GL.Raw.Internal.Shared.GL_CURRENT_COLOR', 'Graphics.GL.Raw.Internal.Shared.GL_CURRENT_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_CURRENT_NORMAL', 'Graphics.GL.Raw.Internal.Shared.GL_CURRENT_RASTER_COLOR', 'Graphics.GL.Raw.Internal.Shared.GL_CURRENT_RASTER_DISTANCE', 'Graphics.GL.Raw.Internal.Shared.GL_CURRENT_RASTER_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_CURRENT_RASTER_POSITION', 'Graphics.GL.Raw.Internal.Shared.GL_CURRENT_RASTER_POSITION_VALID', 'Graphics.GL.Raw.Internal.Shared.GL_CURRENT_RASTER_TEXTURE_COORDS', 'Graphics.GL.Raw.Internal.Shared.GL_CURRENT_TEXTURE_COORDS', 'Graphics.GL.Raw.Extension.SGIX.PolynomialFfd.GL_DEFORMATIONS_MASK_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_DEPTH_BIAS', 'Graphics.GL.Raw.Internal.Shared.GL_DEPTH_BITS', 'Graphics.GL.Raw.Internal.Shared.GL_DEPTH_CLEAR_VALUE', 'Graphics.GL.Raw.Internal.Shared.GL_DEPTH_FUNC', 'Graphics.GL.Raw.Internal.Shared.GL_DEPTH_RANGE', 'Graphics.GL.Raw.Internal.Shared.GL_DEPTH_SCALE', 'Graphics.GL.Raw.Internal.Shared.GL_DEPTH_TEST', 'Graphics.GL.Raw.Internal.Shared.GL_DEPTH_WRITEMASK', 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_BINDING_SGIS', 'Graphics.GL.Raw.Extension.SGIS.PointParameters.GL_DISTANCE_ATTENUATION_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_DITHER', 'Graphics.GL.Raw.Internal.Shared.GL_DOUBLEBUFFER', 'Graphics.GL.Raw.Internal.Shared.GL_DRAW_BUFFER', 'Graphics.GL.Raw.Extension.EXT.MultiviewDrawBuffers.GL_DRAW_BUFFER_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_EDGE_FLAG', 'Graphics.GL.Raw.Internal.Shared.GL_EDGE_FLAG_ARRAY', 'Graphics.GL.Raw.Extension.EXT.VertexArray.GL_EDGE_FLAG_ARRAY_COUNT_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_EDGE_FLAG_ARRAY_STRIDE', 'Graphics.GL.Raw.Internal.Shared.GL_FEEDBACK_BUFFER_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_FEEDBACK_BUFFER_TYPE', 'Graphics.GL.Raw.Internal.Shared.GL_FOG', 'Graphics.GL.Raw.Internal.Shared.GL_FOG_COLOR', 'Graphics.GL.Raw.Internal.Shared.GL_FOG_DENSITY', 'Graphics.GL.Raw.Internal.Shared.GL_FOG_END', 'Graphics.GL.Raw.Extension.SGIS.FogFunction.GL_FOG_FUNC_POINTS_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_FOG_HINT', 'Graphics.GL.Raw.Internal.Shared.GL_FOG_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_FOG_MODE', 'Graphics.GL.Raw.Extension.SGIX.FogOffset.GL_FOG_OFFSET_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FogOffset.GL_FOG_OFFSET_VALUE_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_FOG_START', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_COLOR_MATERIAL_FACE_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_COLOR_MATERIAL_PARAMETER_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_COLOR_MATERIAL_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT0_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHTING_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Framezoom.GL_FRAMEZOOM_FACTOR_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Framezoom.GL_FRAMEZOOM_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_FRONT_FACE', 'Graphics.GL.Raw.Extension.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_HINT_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_GREEN_BIAS', 'Graphics.GL.Raw.Internal.Shared.GL_GREEN_BITS', 'Graphics.GL.Raw.Internal.Shared.GL_GREEN_SCALE', 'Graphics.GL.Raw.Extension.EXT.Histogram.GL_HISTOGRAM_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_INDEX_ARRAY', 'Graphics.GL.Raw.Extension.EXT.VertexArray.GL_INDEX_ARRAY_COUNT_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_INDEX_ARRAY_STRIDE', 'Graphics.GL.Raw.Internal.Shared.GL_INDEX_ARRAY_TYPE', 'Graphics.GL.Raw.Internal.Shared.GL_INDEX_BITS', 'Graphics.GL.Raw.Internal.Shared.GL_INDEX_CLEAR_VALUE', 'Graphics.GL.Raw.Internal.Shared.GL_INDEX_LOGIC_OP', 'Graphics.GL.Raw.Internal.Shared.GL_INDEX_MODE', 'Graphics.GL.Raw.Internal.Shared.GL_INDEX_OFFSET', 'Graphics.GL.Raw.Internal.Shared.GL_INDEX_SHIFT', 'Graphics.GL.Raw.Internal.Shared.GL_INDEX_WRITEMASK', 'Graphics.GL.Raw.Extension.SGIX.Instruments.GL_INSTRUMENT_MEASUREMENTS_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Interlace.GL_INTERLACE_SGIX', 'Graphics.GL.Raw.Extension.SGIX.IrInstrument1.GL_IR_INSTRUMENT1_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT0', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT1', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT2', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT3', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT4', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT5', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT6', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT7', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHTING', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_LIGHT_ENV_MODE_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT_MODEL_AMBIENT', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT_MODEL_COLOR_CONTROL', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT_MODEL_LOCAL_VIEWER', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT_MODEL_TWO_SIDE', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_SMOOTH', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_SMOOTH_HINT', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_STIPPLE', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_STIPPLE_PATTERN', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_STIPPLE_REPEAT', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_WIDTH', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_WIDTH_GRANULARITY', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_WIDTH_RANGE', 'Graphics.GL.Raw.Internal.Shared.GL_LIST_BASE', 'Graphics.GL.Raw.Internal.Shared.GL_LIST_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_LIST_MODE', 'Graphics.GL.Raw.Internal.Shared.GL_LOGIC_OP', 'Graphics.GL.Raw.Internal.Shared.GL_LOGIC_OP_MODE', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_COLOR_4', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_GRID_DOMAIN', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_GRID_SEGMENTS', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_NORMAL', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_TEXTURE_COORD_1', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_TEXTURE_COORD_2', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_TEXTURE_COORD_3', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_TEXTURE_COORD_4', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_VERTEX_3', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_VERTEX_4', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_COLOR_4', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_GRID_DOMAIN', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_GRID_SEGMENTS', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_NORMAL', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_TEXTURE_COORD_1', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_TEXTURE_COORD_2', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_TEXTURE_COORD_3', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_TEXTURE_COORD_4', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_VERTEX_3', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_VERTEX_4', 'Graphics.GL.Raw.Internal.Shared.GL_MAP_COLOR', 'Graphics.GL.Raw.Internal.Shared.GL_MAP_STENCIL', 'Graphics.GL.Raw.Internal.Shared.GL_MATRIX_MODE', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_MAX_3D_TEXTURE_SIZE_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_MAX_4D_TEXTURE_SIZE_SGIS', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_MAX_ACTIVE_LIGHTS_SGIX', 'Graphics.GL.Raw.Extension.SGIX.AsyncPixel.GL_MAX_ASYNC_DRAW_PIXELS_SGIX', 'Graphics.GL.Raw.Extension.SGIX.AsyncHistogram.GL_MAX_ASYNC_HISTOGRAM_SGIX', 'Graphics.GL.Raw.Extension.SGIX.AsyncPixel.GL_MAX_ASYNC_READ_PIXELS_SGIX', 'Graphics.GL.Raw.Extension.SGIX.AsyncPixel.GL_MAX_ASYNC_TEX_IMAGE_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_MAX_ATTRIB_STACK_DEPTH', 'Graphics.GL.Raw.Internal.Shared.GL_MAX_CLIENT_ATTRIB_STACK_DEPTH', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_MAX_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_MAX_CLIP_DISTANCES', 'Graphics.GL.Raw.Internal.Shared.GL_MAX_CLIP_PLANES', 'Graphics.GL.Raw.Extension.SGI.ColorMatrix.GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI', 'Graphics.GL.Raw.Internal.Shared.GL_MAX_EVAL_ORDER', 'Graphics.GL.Raw.Extension.SGIS.FogFunction.GL_MAX_FOG_FUNC_POINTS_SGIS', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_MAX_FRAGMENT_LIGHTS_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Framezoom.GL_MAX_FRAMEZOOM_FACTOR_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_MAX_LIGHTS', 'Graphics.GL.Raw.Internal.Shared.GL_MAX_LIST_NESTING', 'Graphics.GL.Raw.Internal.Shared.GL_MAX_MODELVIEW_STACK_DEPTH', 'Graphics.GL.Raw.Internal.Shared.GL_MAX_NAME_STACK_DEPTH', 'Graphics.GL.Raw.Internal.Shared.GL_MAX_PIXEL_MAP_TABLE', 'Graphics.GL.Raw.Internal.Shared.GL_MAX_PROJECTION_STACK_DEPTH', 'Graphics.GL.Raw.Internal.Shared.GL_MAX_TEXTURE_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_MAX_TEXTURE_STACK_DEPTH', 'Graphics.GL.Raw.Internal.Shared.GL_MAX_VIEWPORT_DIMS', 'Graphics.GL.Raw.Extension.EXT.Histogram.GL_MINMAX_EXT', 'Graphics.GL.Raw.Extension.EXT.VertexWeighting.GL_MODELVIEW0_MATRIX_EXT', 'Graphics.GL.Raw.Extension.EXT.VertexWeighting.GL_MODELVIEW0_STACK_DEPTH_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_MODELVIEW_MATRIX', 'Graphics.GL.Raw.Internal.Shared.GL_MODELVIEW_STACK_DEPTH', 'Graphics.GL.Raw.Extension.SGIS.Multisample.GL_MULTISAMPLE_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_NAME_STACK_DEPTH', 'Graphics.GL.Raw.Internal.Shared.GL_NORMALIZE', 'Graphics.GL.Raw.Internal.Shared.GL_NORMAL_ARRAY', 'Graphics.GL.Raw.Extension.EXT.VertexArray.GL_NORMAL_ARRAY_COUNT_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_NORMAL_ARRAY_STRIDE', 'Graphics.GL.Raw.Internal.Shared.GL_NORMAL_ARRAY_TYPE', 'Graphics.GL.Raw.Internal.Shared.GL_PACK_ALIGNMENT', 'Graphics.GL.Raw.Extension.EXT.Cmyka.GL_PACK_CMYK_HINT_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PACK_IMAGE_DEPTH_SGIS', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PACK_IMAGE_HEIGHT_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PACK_LSB_FIRST', 'Graphics.GL.Raw.Extension.SGIX.Resample.GL_PACK_RESAMPLE_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_PACK_ROW_LENGTH', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PACK_SKIP_IMAGES_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PACK_SKIP_PIXELS', 'Graphics.GL.Raw.Internal.Shared.GL_PACK_SKIP_ROWS', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PACK_SKIP_VOLUMES_SGIS', 'Graphics.GL.Raw.Extension.SGIX.Subsample.GL_PACK_SUBSAMPLE_RATE_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_PACK_SWAP_BYTES', 'Graphics.GL.Raw.Internal.Shared.GL_PERSPECTIVE_CORRECTION_HINT', 'Graphics.GL.Raw.Internal.Shared.GL_PIXEL_MAP_A_TO_A_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_PIXEL_MAP_B_TO_B_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_PIXEL_MAP_G_TO_G_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_PIXEL_MAP_I_TO_A_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_PIXEL_MAP_I_TO_B_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_PIXEL_MAP_I_TO_G_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_PIXEL_MAP_I_TO_I_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_PIXEL_MAP_I_TO_R_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_PIXEL_MAP_R_TO_R_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_PIXEL_MAP_S_TO_S_SIZE', 'Graphics.GL.Raw.Extension.SGIS.PixelTexture.GL_PIXEL_TEXTURE_SGIS', 'Graphics.GL.Raw.Extension.SGIX.PixelTexture.GL_PIXEL_TEX_GEN_MODE_SGIX', 'Graphics.GL.Raw.Extension.SGIX.PixelTexture.GL_PIXEL_TEX_GEN_SGIX', 'Graphics.GL.Raw.Extension.SGIX.PixelTiles.GL_PIXEL_TILE_BEST_ALIGNMENT_SGIX', 'Graphics.GL.Raw.Extension.SGIX.PixelTiles.GL_PIXEL_TILE_CACHE_INCREMENT_SGIX', 'Graphics.GL.Raw.Extension.SGIX.PixelTiles.GL_PIXEL_TILE_CACHE_SIZE_SGIX', 'Graphics.GL.Raw.Extension.SGIX.PixelTiles.GL_PIXEL_TILE_GRID_DEPTH_SGIX', 'Graphics.GL.Raw.Extension.SGIX.PixelTiles.GL_PIXEL_TILE_GRID_HEIGHT_SGIX', 'Graphics.GL.Raw.Extension.SGIX.PixelTiles.GL_PIXEL_TILE_GRID_WIDTH_SGIX', 'Graphics.GL.Raw.Extension.SGIX.PixelTiles.GL_PIXEL_TILE_HEIGHT_SGIX', 'Graphics.GL.Raw.Extension.SGIX.PixelTiles.GL_PIXEL_TILE_WIDTH_SGIX', 'Graphics.GL.Raw.Extension.SGIS.PointParameters.GL_POINT_FADE_THRESHOLD_SIZE_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_POINT_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_POINT_SIZE_GRANULARITY', 'Graphics.GL.Raw.Extension.SGIS.PointParameters.GL_POINT_SIZE_MAX_SGIS', 'Graphics.GL.Raw.Extension.SGIS.PointParameters.GL_POINT_SIZE_MIN_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_POINT_SIZE_RANGE', 'Graphics.GL.Raw.Internal.Shared.GL_POINT_SMOOTH', 'Graphics.GL.Raw.Internal.Shared.GL_POINT_SMOOTH_HINT', 'Graphics.GL.Raw.Internal.Shared.GL_POLYGON_MODE', 'Graphics.GL.Raw.Extension.EXT.PolygonOffset.GL_POLYGON_OFFSET_BIAS_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_POLYGON_OFFSET_FACTOR', 'Graphics.GL.Raw.Internal.Shared.GL_POLYGON_OFFSET_FILL', 'Graphics.GL.Raw.Internal.Shared.GL_POLYGON_OFFSET_LINE', 'Graphics.GL.Raw.Internal.Shared.GL_POLYGON_OFFSET_POINT', 'Graphics.GL.Raw.Internal.Shared.GL_POLYGON_OFFSET_UNITS', 'Graphics.GL.Raw.Internal.Shared.GL_POLYGON_SMOOTH', 'Graphics.GL.Raw.Internal.Shared.GL_POLYGON_SMOOTH_HINT', 'Graphics.GL.Raw.Internal.Shared.GL_POLYGON_STIPPLE', 'Graphics.GL.Raw.Extension.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI', 'Graphics.GL.Raw.Extension.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI', 'Graphics.GL.Raw.Extension.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI', 'Graphics.GL.Raw.Extension.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI', 'Graphics.GL.Raw.Extension.SGI.ColorTable.GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI', 'Graphics.GL.Raw.Extension.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI', 'Graphics.GL.Raw.Extension.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI', 'Graphics.GL.Raw.Extension.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_RED_BIAS_SGI', 'Graphics.GL.Raw.Extension.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_RED_SCALE_SGI', 'Graphics.GL.Raw.Extension.EXT.Convolution.GL_POST_CONVOLUTION_ALPHA_BIAS_EXT', 'Graphics.GL.Raw.Extension.EXT.Convolution.GL_POST_CONVOLUTION_ALPHA_SCALE_EXT', 'Graphics.GL.Raw.Extension.EXT.Convolution.GL_POST_CONVOLUTION_BLUE_BIAS_EXT', 'Graphics.GL.Raw.Extension.EXT.Convolution.GL_POST_CONVOLUTION_BLUE_SCALE_EXT', 'Graphics.GL.Raw.Extension.SGI.ColorTable.GL_POST_CONVOLUTION_COLOR_TABLE_SGI', 'Graphics.GL.Raw.Extension.EXT.Convolution.GL_POST_CONVOLUTION_GREEN_BIAS_EXT', 'Graphics.GL.Raw.Extension.EXT.Convolution.GL_POST_CONVOLUTION_GREEN_SCALE_EXT', 'Graphics.GL.Raw.Extension.EXT.Convolution.GL_POST_CONVOLUTION_RED_BIAS_EXT', 'Graphics.GL.Raw.Extension.EXT.Convolution.GL_POST_CONVOLUTION_RED_SCALE_EXT', 'Graphics.GL.Raw.Extension.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_PROJECTION_MATRIX', 'Graphics.GL.Raw.Internal.Shared.GL_PROJECTION_STACK_DEPTH', 'Graphics.GL.Raw.Internal.Shared.GL_READ_BUFFER', 'Graphics.GL.Raw.Extension.EXT.MultiviewDrawBuffers.GL_READ_BUFFER_EXT', 'Graphics.GL.Raw.Extension.NV.ReadBuffer.GL_READ_BUFFER_NV', 'Graphics.GL.Raw.Internal.Shared.GL_RED_BIAS', 'Graphics.GL.Raw.Internal.Shared.GL_RED_BITS', 'Graphics.GL.Raw.Internal.Shared.GL_RED_SCALE', 'Graphics.GL.Raw.Extension.SGIX.ReferencePlane.GL_REFERENCE_PLANE_EQUATION_SGIX', 'Graphics.GL.Raw.Extension.SGIX.ReferencePlane.GL_REFERENCE_PLANE_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_RENDER_MODE', 'Graphics.GL.Raw.Extension.EXT.RescaleNormal.GL_RESCALE_NORMAL_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_RGBA_MODE', 'Graphics.GL.Raw.Extension.SGIS.Multisample.GL_SAMPLES_SGIS', 'Graphics.GL.Raw.Extension.SGIS.Multisample.GL_SAMPLE_ALPHA_TO_MASK_SGIS', 'Graphics.GL.Raw.Extension.SGIS.Multisample.GL_SAMPLE_ALPHA_TO_ONE_SGIS', 'Graphics.GL.Raw.Extension.SGIS.Multisample.GL_SAMPLE_BUFFERS_SGIS', 'Graphics.GL.Raw.Extension.SGIS.Multisample.GL_SAMPLE_MASK_INVERT_SGIS', 'Graphics.GL.Raw.Extension.SGIS.Multisample.GL_SAMPLE_MASK_SGIS', 'Graphics.GL.Raw.Extension.SGIS.Multisample.GL_SAMPLE_MASK_VALUE_SGIS', 'Graphics.GL.Raw.Extension.SGIS.Multisample.GL_SAMPLE_PATTERN_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_SCISSOR_BOX', 'Graphics.GL.Raw.Internal.Shared.GL_SCISSOR_TEST', 'Graphics.GL.Raw.Internal.Shared.GL_SELECTION_BUFFER_SIZE', 'Graphics.GL.Raw.Extension.EXT.Convolution.GL_SEPARABLE_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_SHADE_MODEL', 'Graphics.GL.Raw.Extension.EXT.SharedTexturePalette.GL_SHARED_TEXTURE_PALETTE_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_SMOOTH_LINE_WIDTH_GRANULARITY', 'Graphics.GL.Raw.Internal.Shared.GL_SMOOTH_LINE_WIDTH_RANGE', 'Graphics.GL.Raw.Internal.Shared.GL_SMOOTH_POINT_SIZE_GRANULARITY', 'Graphics.GL.Raw.Internal.Shared.GL_SMOOTH_POINT_SIZE_RANGE', 'Graphics.GL.Raw.Extension.SGIX.Sprite.GL_SPRITE_AXIS_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Sprite.GL_SPRITE_MODE_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Sprite.GL_SPRITE_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Sprite.GL_SPRITE_TRANSLATION_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_STENCIL_BITS', 'Graphics.GL.Raw.Internal.Shared.GL_STENCIL_CLEAR_VALUE', 'Graphics.GL.Raw.Internal.Shared.GL_STENCIL_FAIL', 'Graphics.GL.Raw.Internal.Shared.GL_STENCIL_FUNC', 'Graphics.GL.Raw.Internal.Shared.GL_STENCIL_PASS_DEPTH_FAIL', 'Graphics.GL.Raw.Internal.Shared.GL_STENCIL_PASS_DEPTH_PASS', 'Graphics.GL.Raw.Internal.Shared.GL_STENCIL_REF', 'Graphics.GL.Raw.Internal.Shared.GL_STENCIL_TEST', 'Graphics.GL.Raw.Internal.Shared.GL_STENCIL_VALUE_MASK', 'Graphics.GL.Raw.Internal.Shared.GL_STENCIL_WRITEMASK', 'Graphics.GL.Raw.Internal.Shared.GL_STEREO', 'Graphics.GL.Raw.Internal.Shared.GL_SUBPIXEL_BITS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.TextureObject.GL_TEXTURE_3D_BINDING_EXT', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_BINDING_SGIS', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BINDING_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BINDING_2D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BINDING_3D', 'Graphics.GL.Raw.Extension.SGI.TextureColorTable.GL_TEXTURE_COLOR_TABLE_SGI', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_COORD_ARRAY', 'Graphics.GL.Raw.Extension.EXT.VertexArray.GL_TEXTURE_COORD_ARRAY_COUNT_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_COORD_ARRAY_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_COORD_ARRAY_STRIDE', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_COORD_ARRAY_TYPE', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_GEN_Q', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_GEN_R', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_GEN_S', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_GEN_T', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MATRIX', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_STACK_DEPTH', 'Graphics.GL.Raw.Internal.Shared.GL_UNPACK_ALIGNMENT', 'Graphics.GL.Raw.Extension.EXT.Cmyka.GL_UNPACK_CMYK_HINT_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_UNPACK_IMAGE_DEPTH_SGIS', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_UNPACK_IMAGE_HEIGHT_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNPACK_LSB_FIRST', 'Graphics.GL.Raw.Extension.SGIX.Resample.GL_UNPACK_RESAMPLE_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_UNPACK_ROW_LENGTH', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_UNPACK_SKIP_IMAGES_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNPACK_SKIP_PIXELS', 'Graphics.GL.Raw.Internal.Shared.GL_UNPACK_SKIP_ROWS', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_UNPACK_SKIP_VOLUMES_SGIS', 'Graphics.GL.Raw.Extension.SGIX.Subsample.GL_UNPACK_SUBSAMPLE_RATE_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_UNPACK_SWAP_BYTES', 'Graphics.GL.Raw.Internal.Shared.GL_VERTEX_ARRAY', 'Graphics.GL.Raw.Extension.EXT.VertexArray.GL_VERTEX_ARRAY_COUNT_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_VERTEX_ARRAY_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_VERTEX_ARRAY_STRIDE', 'Graphics.GL.Raw.Internal.Shared.GL_VERTEX_ARRAY_TYPE', 'Graphics.GL.Raw.Extension.SGIX.VertexPreclip.GL_VERTEX_PRECLIP_HINT_SGIX', 'Graphics.GL.Raw.Extension.SGIX.VertexPreclip.GL_VERTEX_PRECLIP_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_VIEWPORT', 'Graphics.GL.Raw.Internal.Shared.GL_ZOOM_X', 'Graphics.GL.Raw.Internal.Shared.GL_ZOOM_Y'.
+--
+-- The length of @data@ should be @COMPSIZE(pname)@.
+
+
+glGetFloatv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
+glGetFloatv = ffienumPtrfloatIOV glGetFloatvFunPtr
+
+glGetFloatvFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
+glGetFloatvFunPtr = unsafePerformIO (getProcAddress "glGetFloatv")
+
+{-# NOINLINE glGetFloatvFunPtr #-}
+
+-- | Usage: @'glGetFragDataLocation' program name@
+--
+-- The length of @name@ should be @COMPSIZE(name)@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetFragDataLocation.xhtml>
+
+
+glGetFragDataLocation :: MonadIO m => GLuint -> Ptr GLchar -> m GLint
+glGetFragDataLocation = ffiuintPtrcharIOint glGetFragDataLocationFunPtr
+
+glGetFragDataLocationFunPtr :: FunPtr (GLuint -> Ptr GLchar -> IO GLint)
+glGetFragDataLocationFunPtr = unsafePerformIO (getProcAddress "glGetFragDataLocation")
+
+{-# NOINLINE glGetFragDataLocationFunPtr #-}
+
+-- | Usage: @'glGetInteger64i_v' target index data@
+--
+-- The length of @data@ should be @COMPSIZE(target)@.
+
+
+glGetInteger64i_v :: MonadIO m => GLenum -> GLuint -> Ptr GLint64 -> m ()
+glGetInteger64i_v = ffienumuintPtrint64IOV glGetInteger64i_vFunPtr
+
+glGetInteger64i_vFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLint64 -> IO ())
+glGetInteger64i_vFunPtr = unsafePerformIO (getProcAddress "glGetInteger64i_v")
+
+{-# NOINLINE glGetInteger64i_vFunPtr #-}
+
+-- | Usage: @'glGetIntegeri_v' target index data@
+--
+-- The length of @data@ should be @COMPSIZE(target)@.
+
+
+glGetIntegeri_v :: MonadIO m => GLenum -> GLuint -> Ptr GLint -> m ()
+glGetIntegeri_v = ffienumuintPtrintIOV glGetIntegeri_vFunPtr
+
+glGetIntegeri_vFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLint -> IO ())
+glGetIntegeri_vFunPtr = unsafePerformIO (getProcAddress "glGetIntegeri_v")
+
+{-# NOINLINE glGetIntegeri_vFunPtr #-}
+
+-- | Usage: @'glGetIntegerv' pname data@
+--
+-- The parameter @pname@ is a @GetPName@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_ACCUM_ALPHA_BITS', 'Graphics.GL.Raw.Internal.Shared.GL_ACCUM_BLUE_BITS', 'Graphics.GL.Raw.Internal.Shared.GL_ACCUM_CLEAR_VALUE', 'Graphics.GL.Raw.Internal.Shared.GL_ACCUM_GREEN_BITS', 'Graphics.GL.Raw.Internal.Shared.GL_ACCUM_RED_BITS', 'Graphics.GL.Raw.Internal.Shared.GL_ALIASED_LINE_WIDTH_RANGE', 'Graphics.GL.Raw.Internal.Shared.GL_ALIASED_POINT_SIZE_RANGE', 'Graphics.GL.Raw.Internal.Shared.GL_ALPHA_BIAS', 'Graphics.GL.Raw.Internal.Shared.GL_ALPHA_BITS', 'Graphics.GL.Raw.Internal.Shared.GL_ALPHA_SCALE', 'Graphics.GL.Raw.Internal.Shared.GL_ALPHA_TEST', 'Graphics.GL.Raw.Internal.Shared.GL_ALPHA_TEST_FUNC', 'Graphics.GL.Raw.Extension.QCOM.AlphaTest.GL_ALPHA_TEST_FUNC_QCOM', 'Graphics.GL.Raw.Extension.QCOM.AlphaTest.GL_ALPHA_TEST_QCOM', 'Graphics.GL.Raw.Internal.Shared.GL_ALPHA_TEST_REF', 'Graphics.GL.Raw.Extension.QCOM.AlphaTest.GL_ALPHA_TEST_REF_QCOM', 'Graphics.GL.Raw.Extension.SGIX.AsyncPixel.GL_ASYNC_DRAW_PIXELS_SGIX', 'Graphics.GL.Raw.Extension.SGIX.AsyncHistogram.GL_ASYNC_HISTOGRAM_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Async.GL_ASYNC_MARKER_SGIX', 'Graphics.GL.Raw.Extension.SGIX.AsyncPixel.GL_ASYNC_READ_PIXELS_SGIX', 'Graphics.GL.Raw.Extension.SGIX.AsyncPixel.GL_ASYNC_TEX_IMAGE_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_ATTRIB_STACK_DEPTH', 'Graphics.GL.Raw.Internal.Shared.GL_AUTO_NORMAL', 'Graphics.GL.Raw.Internal.Shared.GL_AUX_BUFFERS', 'Graphics.GL.Raw.Internal.Shared.GL_BLEND', 'Graphics.GL.Raw.Extension.EXT.BlendColor.GL_BLEND_COLOR_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_BLEND_DST', 'Graphics.GL.Raw.Extension.EXT.BlendMinmax.GL_BLEND_EQUATION_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_BLEND_SRC', 'Graphics.GL.Raw.Internal.Shared.GL_BLUE_BIAS', 'Graphics.GL.Raw.Internal.Shared.GL_BLUE_BITS', 'Graphics.GL.Raw.Internal.Shared.GL_BLUE_SCALE', 'Graphics.GL.Raw.Extension.SGIX.CalligraphicFragment.GL_CALLIGRAPHIC_FRAGMENT_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_CLIENT_ATTRIB_STACK_DEPTH', 'Graphics.GL.Raw.Internal.Shared.GL_CLIP_PLANE0', 'Graphics.GL.Raw.Internal.Shared.GL_CLIP_PLANE1', 'Graphics.GL.Raw.Internal.Shared.GL_CLIP_PLANE2', 'Graphics.GL.Raw.Internal.Shared.GL_CLIP_PLANE3', 'Graphics.GL.Raw.Internal.Shared.GL_CLIP_PLANE4', 'Graphics.GL.Raw.Internal.Shared.GL_CLIP_PLANE5', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_ARRAY', 'Graphics.GL.Raw.Extension.EXT.VertexArray.GL_COLOR_ARRAY_COUNT_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_ARRAY_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_ARRAY_STRIDE', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_ARRAY_TYPE', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_CLEAR_VALUE', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_LOGIC_OP', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_MATERIAL', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_MATERIAL_FACE', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_MATERIAL_PARAMETER', 'Graphics.GL.Raw.Extension.SGI.ColorMatrix.GL_COLOR_MATRIX_SGI', 'Graphics.GL.Raw.Extension.SGI.ColorMatrix.GL_COLOR_MATRIX_STACK_DEPTH_SGI', 'Graphics.GL.Raw.Extension.SGI.ColorTable.GL_COLOR_TABLE_SGI', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_WRITEMASK', 'Graphics.GL.Raw.Extension.EXT.Convolution.GL_CONVOLUTION_1D_EXT', 'Graphics.GL.Raw.Extension.EXT.Convolution.GL_CONVOLUTION_2D_EXT', 'Graphics.GL.Raw.Extension.SGIX.ConvolutionAccuracy.GL_CONVOLUTION_HINT_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_CULL_FACE', 'Graphics.GL.Raw.Internal.Shared.GL_CULL_FACE_MODE', 'Graphics.GL.Raw.Internal.Shared.GL_CURRENT_COLOR', 'Graphics.GL.Raw.Internal.Shared.GL_CURRENT_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_CURRENT_NORMAL', 'Graphics.GL.Raw.Internal.Shared.GL_CURRENT_RASTER_COLOR', 'Graphics.GL.Raw.Internal.Shared.GL_CURRENT_RASTER_DISTANCE', 'Graphics.GL.Raw.Internal.Shared.GL_CURRENT_RASTER_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_CURRENT_RASTER_POSITION', 'Graphics.GL.Raw.Internal.Shared.GL_CURRENT_RASTER_POSITION_VALID', 'Graphics.GL.Raw.Internal.Shared.GL_CURRENT_RASTER_TEXTURE_COORDS', 'Graphics.GL.Raw.Internal.Shared.GL_CURRENT_TEXTURE_COORDS', 'Graphics.GL.Raw.Extension.SGIX.PolynomialFfd.GL_DEFORMATIONS_MASK_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_DEPTH_BIAS', 'Graphics.GL.Raw.Internal.Shared.GL_DEPTH_BITS', 'Graphics.GL.Raw.Internal.Shared.GL_DEPTH_CLEAR_VALUE', 'Graphics.GL.Raw.Internal.Shared.GL_DEPTH_FUNC', 'Graphics.GL.Raw.Internal.Shared.GL_DEPTH_RANGE', 'Graphics.GL.Raw.Internal.Shared.GL_DEPTH_SCALE', 'Graphics.GL.Raw.Internal.Shared.GL_DEPTH_TEST', 'Graphics.GL.Raw.Internal.Shared.GL_DEPTH_WRITEMASK', 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_BINDING_SGIS', 'Graphics.GL.Raw.Extension.SGIS.PointParameters.GL_DISTANCE_ATTENUATION_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_DITHER', 'Graphics.GL.Raw.Internal.Shared.GL_DOUBLEBUFFER', 'Graphics.GL.Raw.Internal.Shared.GL_DRAW_BUFFER', 'Graphics.GL.Raw.Extension.EXT.MultiviewDrawBuffers.GL_DRAW_BUFFER_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_EDGE_FLAG', 'Graphics.GL.Raw.Internal.Shared.GL_EDGE_FLAG_ARRAY', 'Graphics.GL.Raw.Extension.EXT.VertexArray.GL_EDGE_FLAG_ARRAY_COUNT_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_EDGE_FLAG_ARRAY_STRIDE', 'Graphics.GL.Raw.Internal.Shared.GL_FEEDBACK_BUFFER_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_FEEDBACK_BUFFER_TYPE', 'Graphics.GL.Raw.Internal.Shared.GL_FOG', 'Graphics.GL.Raw.Internal.Shared.GL_FOG_COLOR', 'Graphics.GL.Raw.Internal.Shared.GL_FOG_DENSITY', 'Graphics.GL.Raw.Internal.Shared.GL_FOG_END', 'Graphics.GL.Raw.Extension.SGIS.FogFunction.GL_FOG_FUNC_POINTS_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_FOG_HINT', 'Graphics.GL.Raw.Internal.Shared.GL_FOG_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_FOG_MODE', 'Graphics.GL.Raw.Extension.SGIX.FogOffset.GL_FOG_OFFSET_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FogOffset.GL_FOG_OFFSET_VALUE_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_FOG_START', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_COLOR_MATERIAL_FACE_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_COLOR_MATERIAL_PARAMETER_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_COLOR_MATERIAL_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT0_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHTING_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Framezoom.GL_FRAMEZOOM_FACTOR_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Framezoom.GL_FRAMEZOOM_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_FRONT_FACE', 'Graphics.GL.Raw.Extension.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_HINT_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_GREEN_BIAS', 'Graphics.GL.Raw.Internal.Shared.GL_GREEN_BITS', 'Graphics.GL.Raw.Internal.Shared.GL_GREEN_SCALE', 'Graphics.GL.Raw.Extension.EXT.Histogram.GL_HISTOGRAM_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_INDEX_ARRAY', 'Graphics.GL.Raw.Extension.EXT.VertexArray.GL_INDEX_ARRAY_COUNT_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_INDEX_ARRAY_STRIDE', 'Graphics.GL.Raw.Internal.Shared.GL_INDEX_ARRAY_TYPE', 'Graphics.GL.Raw.Internal.Shared.GL_INDEX_BITS', 'Graphics.GL.Raw.Internal.Shared.GL_INDEX_CLEAR_VALUE', 'Graphics.GL.Raw.Internal.Shared.GL_INDEX_LOGIC_OP', 'Graphics.GL.Raw.Internal.Shared.GL_INDEX_MODE', 'Graphics.GL.Raw.Internal.Shared.GL_INDEX_OFFSET', 'Graphics.GL.Raw.Internal.Shared.GL_INDEX_SHIFT', 'Graphics.GL.Raw.Internal.Shared.GL_INDEX_WRITEMASK', 'Graphics.GL.Raw.Extension.SGIX.Instruments.GL_INSTRUMENT_MEASUREMENTS_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Interlace.GL_INTERLACE_SGIX', 'Graphics.GL.Raw.Extension.SGIX.IrInstrument1.GL_IR_INSTRUMENT1_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT0', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT1', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT2', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT3', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT4', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT5', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT6', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT7', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHTING', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_LIGHT_ENV_MODE_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT_MODEL_AMBIENT', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT_MODEL_COLOR_CONTROL', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT_MODEL_LOCAL_VIEWER', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT_MODEL_TWO_SIDE', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_SMOOTH', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_SMOOTH_HINT', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_STIPPLE', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_STIPPLE_PATTERN', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_STIPPLE_REPEAT', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_WIDTH', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_WIDTH_GRANULARITY', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_WIDTH_RANGE', 'Graphics.GL.Raw.Internal.Shared.GL_LIST_BASE', 'Graphics.GL.Raw.Internal.Shared.GL_LIST_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_LIST_MODE', 'Graphics.GL.Raw.Internal.Shared.GL_LOGIC_OP', 'Graphics.GL.Raw.Internal.Shared.GL_LOGIC_OP_MODE', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_COLOR_4', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_GRID_DOMAIN', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_GRID_SEGMENTS', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_NORMAL', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_TEXTURE_COORD_1', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_TEXTURE_COORD_2', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_TEXTURE_COORD_3', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_TEXTURE_COORD_4', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_VERTEX_3', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_VERTEX_4', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_COLOR_4', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_GRID_DOMAIN', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_GRID_SEGMENTS', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_NORMAL', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_TEXTURE_COORD_1', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_TEXTURE_COORD_2', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_TEXTURE_COORD_3', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_TEXTURE_COORD_4', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_VERTEX_3', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_VERTEX_4', 'Graphics.GL.Raw.Internal.Shared.GL_MAP_COLOR', 'Graphics.GL.Raw.Internal.Shared.GL_MAP_STENCIL', 'Graphics.GL.Raw.Internal.Shared.GL_MATRIX_MODE', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_MAX_3D_TEXTURE_SIZE_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_MAX_4D_TEXTURE_SIZE_SGIS', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_MAX_ACTIVE_LIGHTS_SGIX', 'Graphics.GL.Raw.Extension.SGIX.AsyncPixel.GL_MAX_ASYNC_DRAW_PIXELS_SGIX', 'Graphics.GL.Raw.Extension.SGIX.AsyncHistogram.GL_MAX_ASYNC_HISTOGRAM_SGIX', 'Graphics.GL.Raw.Extension.SGIX.AsyncPixel.GL_MAX_ASYNC_READ_PIXELS_SGIX', 'Graphics.GL.Raw.Extension.SGIX.AsyncPixel.GL_MAX_ASYNC_TEX_IMAGE_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_MAX_ATTRIB_STACK_DEPTH', 'Graphics.GL.Raw.Internal.Shared.GL_MAX_CLIENT_ATTRIB_STACK_DEPTH', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_MAX_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_MAX_CLIP_DISTANCES', 'Graphics.GL.Raw.Internal.Shared.GL_MAX_CLIP_PLANES', 'Graphics.GL.Raw.Extension.SGI.ColorMatrix.GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI', 'Graphics.GL.Raw.Internal.Shared.GL_MAX_EVAL_ORDER', 'Graphics.GL.Raw.Extension.SGIS.FogFunction.GL_MAX_FOG_FUNC_POINTS_SGIS', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_MAX_FRAGMENT_LIGHTS_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Framezoom.GL_MAX_FRAMEZOOM_FACTOR_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_MAX_LIGHTS', 'Graphics.GL.Raw.Internal.Shared.GL_MAX_LIST_NESTING', 'Graphics.GL.Raw.Internal.Shared.GL_MAX_MODELVIEW_STACK_DEPTH', 'Graphics.GL.Raw.Internal.Shared.GL_MAX_NAME_STACK_DEPTH', 'Graphics.GL.Raw.Internal.Shared.GL_MAX_PIXEL_MAP_TABLE', 'Graphics.GL.Raw.Internal.Shared.GL_MAX_PROJECTION_STACK_DEPTH', 'Graphics.GL.Raw.Internal.Shared.GL_MAX_TEXTURE_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_MAX_TEXTURE_STACK_DEPTH', 'Graphics.GL.Raw.Internal.Shared.GL_MAX_VIEWPORT_DIMS', 'Graphics.GL.Raw.Extension.EXT.Histogram.GL_MINMAX_EXT', 'Graphics.GL.Raw.Extension.EXT.VertexWeighting.GL_MODELVIEW0_MATRIX_EXT', 'Graphics.GL.Raw.Extension.EXT.VertexWeighting.GL_MODELVIEW0_STACK_DEPTH_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_MODELVIEW_MATRIX', 'Graphics.GL.Raw.Internal.Shared.GL_MODELVIEW_STACK_DEPTH', 'Graphics.GL.Raw.Extension.SGIS.Multisample.GL_MULTISAMPLE_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_NAME_STACK_DEPTH', 'Graphics.GL.Raw.Internal.Shared.GL_NORMALIZE', 'Graphics.GL.Raw.Internal.Shared.GL_NORMAL_ARRAY', 'Graphics.GL.Raw.Extension.EXT.VertexArray.GL_NORMAL_ARRAY_COUNT_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_NORMAL_ARRAY_STRIDE', 'Graphics.GL.Raw.Internal.Shared.GL_NORMAL_ARRAY_TYPE', 'Graphics.GL.Raw.Internal.Shared.GL_PACK_ALIGNMENT', 'Graphics.GL.Raw.Extension.EXT.Cmyka.GL_PACK_CMYK_HINT_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PACK_IMAGE_DEPTH_SGIS', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PACK_IMAGE_HEIGHT_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PACK_LSB_FIRST', 'Graphics.GL.Raw.Extension.SGIX.Resample.GL_PACK_RESAMPLE_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_PACK_ROW_LENGTH', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PACK_SKIP_IMAGES_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PACK_SKIP_PIXELS', 'Graphics.GL.Raw.Internal.Shared.GL_PACK_SKIP_ROWS', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PACK_SKIP_VOLUMES_SGIS', 'Graphics.GL.Raw.Extension.SGIX.Subsample.GL_PACK_SUBSAMPLE_RATE_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_PACK_SWAP_BYTES', 'Graphics.GL.Raw.Internal.Shared.GL_PERSPECTIVE_CORRECTION_HINT', 'Graphics.GL.Raw.Internal.Shared.GL_PIXEL_MAP_A_TO_A_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_PIXEL_MAP_B_TO_B_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_PIXEL_MAP_G_TO_G_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_PIXEL_MAP_I_TO_A_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_PIXEL_MAP_I_TO_B_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_PIXEL_MAP_I_TO_G_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_PIXEL_MAP_I_TO_I_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_PIXEL_MAP_I_TO_R_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_PIXEL_MAP_R_TO_R_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_PIXEL_MAP_S_TO_S_SIZE', 'Graphics.GL.Raw.Extension.SGIS.PixelTexture.GL_PIXEL_TEXTURE_SGIS', 'Graphics.GL.Raw.Extension.SGIX.PixelTexture.GL_PIXEL_TEX_GEN_MODE_SGIX', 'Graphics.GL.Raw.Extension.SGIX.PixelTexture.GL_PIXEL_TEX_GEN_SGIX', 'Graphics.GL.Raw.Extension.SGIX.PixelTiles.GL_PIXEL_TILE_BEST_ALIGNMENT_SGIX', 'Graphics.GL.Raw.Extension.SGIX.PixelTiles.GL_PIXEL_TILE_CACHE_INCREMENT_SGIX', 'Graphics.GL.Raw.Extension.SGIX.PixelTiles.GL_PIXEL_TILE_CACHE_SIZE_SGIX', 'Graphics.GL.Raw.Extension.SGIX.PixelTiles.GL_PIXEL_TILE_GRID_DEPTH_SGIX', 'Graphics.GL.Raw.Extension.SGIX.PixelTiles.GL_PIXEL_TILE_GRID_HEIGHT_SGIX', 'Graphics.GL.Raw.Extension.SGIX.PixelTiles.GL_PIXEL_TILE_GRID_WIDTH_SGIX', 'Graphics.GL.Raw.Extension.SGIX.PixelTiles.GL_PIXEL_TILE_HEIGHT_SGIX', 'Graphics.GL.Raw.Extension.SGIX.PixelTiles.GL_PIXEL_TILE_WIDTH_SGIX', 'Graphics.GL.Raw.Extension.SGIS.PointParameters.GL_POINT_FADE_THRESHOLD_SIZE_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_POINT_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_POINT_SIZE_GRANULARITY', 'Graphics.GL.Raw.Extension.SGIS.PointParameters.GL_POINT_SIZE_MAX_SGIS', 'Graphics.GL.Raw.Extension.SGIS.PointParameters.GL_POINT_SIZE_MIN_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_POINT_SIZE_RANGE', 'Graphics.GL.Raw.Internal.Shared.GL_POINT_SMOOTH', 'Graphics.GL.Raw.Internal.Shared.GL_POINT_SMOOTH_HINT', 'Graphics.GL.Raw.Internal.Shared.GL_POLYGON_MODE', 'Graphics.GL.Raw.Extension.EXT.PolygonOffset.GL_POLYGON_OFFSET_BIAS_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_POLYGON_OFFSET_FACTOR', 'Graphics.GL.Raw.Internal.Shared.GL_POLYGON_OFFSET_FILL', 'Graphics.GL.Raw.Internal.Shared.GL_POLYGON_OFFSET_LINE', 'Graphics.GL.Raw.Internal.Shared.GL_POLYGON_OFFSET_POINT', 'Graphics.GL.Raw.Internal.Shared.GL_POLYGON_OFFSET_UNITS', 'Graphics.GL.Raw.Internal.Shared.GL_POLYGON_SMOOTH', 'Graphics.GL.Raw.Internal.Shared.GL_POLYGON_SMOOTH_HINT', 'Graphics.GL.Raw.Internal.Shared.GL_POLYGON_STIPPLE', 'Graphics.GL.Raw.Extension.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI', 'Graphics.GL.Raw.Extension.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI', 'Graphics.GL.Raw.Extension.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI', 'Graphics.GL.Raw.Extension.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI', 'Graphics.GL.Raw.Extension.SGI.ColorTable.GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI', 'Graphics.GL.Raw.Extension.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI', 'Graphics.GL.Raw.Extension.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI', 'Graphics.GL.Raw.Extension.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_RED_BIAS_SGI', 'Graphics.GL.Raw.Extension.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_RED_SCALE_SGI', 'Graphics.GL.Raw.Extension.EXT.Convolution.GL_POST_CONVOLUTION_ALPHA_BIAS_EXT', 'Graphics.GL.Raw.Extension.EXT.Convolution.GL_POST_CONVOLUTION_ALPHA_SCALE_EXT', 'Graphics.GL.Raw.Extension.EXT.Convolution.GL_POST_CONVOLUTION_BLUE_BIAS_EXT', 'Graphics.GL.Raw.Extension.EXT.Convolution.GL_POST_CONVOLUTION_BLUE_SCALE_EXT', 'Graphics.GL.Raw.Extension.SGI.ColorTable.GL_POST_CONVOLUTION_COLOR_TABLE_SGI', 'Graphics.GL.Raw.Extension.EXT.Convolution.GL_POST_CONVOLUTION_GREEN_BIAS_EXT', 'Graphics.GL.Raw.Extension.EXT.Convolution.GL_POST_CONVOLUTION_GREEN_SCALE_EXT', 'Graphics.GL.Raw.Extension.EXT.Convolution.GL_POST_CONVOLUTION_RED_BIAS_EXT', 'Graphics.GL.Raw.Extension.EXT.Convolution.GL_POST_CONVOLUTION_RED_SCALE_EXT', 'Graphics.GL.Raw.Extension.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_PROJECTION_MATRIX', 'Graphics.GL.Raw.Internal.Shared.GL_PROJECTION_STACK_DEPTH', 'Graphics.GL.Raw.Internal.Shared.GL_READ_BUFFER', 'Graphics.GL.Raw.Extension.EXT.MultiviewDrawBuffers.GL_READ_BUFFER_EXT', 'Graphics.GL.Raw.Extension.NV.ReadBuffer.GL_READ_BUFFER_NV', 'Graphics.GL.Raw.Internal.Shared.GL_RED_BIAS', 'Graphics.GL.Raw.Internal.Shared.GL_RED_BITS', 'Graphics.GL.Raw.Internal.Shared.GL_RED_SCALE', 'Graphics.GL.Raw.Extension.SGIX.ReferencePlane.GL_REFERENCE_PLANE_EQUATION_SGIX', 'Graphics.GL.Raw.Extension.SGIX.ReferencePlane.GL_REFERENCE_PLANE_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_RENDER_MODE', 'Graphics.GL.Raw.Extension.EXT.RescaleNormal.GL_RESCALE_NORMAL_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_RGBA_MODE', 'Graphics.GL.Raw.Extension.SGIS.Multisample.GL_SAMPLES_SGIS', 'Graphics.GL.Raw.Extension.SGIS.Multisample.GL_SAMPLE_ALPHA_TO_MASK_SGIS', 'Graphics.GL.Raw.Extension.SGIS.Multisample.GL_SAMPLE_ALPHA_TO_ONE_SGIS', 'Graphics.GL.Raw.Extension.SGIS.Multisample.GL_SAMPLE_BUFFERS_SGIS', 'Graphics.GL.Raw.Extension.SGIS.Multisample.GL_SAMPLE_MASK_INVERT_SGIS', 'Graphics.GL.Raw.Extension.SGIS.Multisample.GL_SAMPLE_MASK_SGIS', 'Graphics.GL.Raw.Extension.SGIS.Multisample.GL_SAMPLE_MASK_VALUE_SGIS', 'Graphics.GL.Raw.Extension.SGIS.Multisample.GL_SAMPLE_PATTERN_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_SCISSOR_BOX', 'Graphics.GL.Raw.Internal.Shared.GL_SCISSOR_TEST', 'Graphics.GL.Raw.Internal.Shared.GL_SELECTION_BUFFER_SIZE', 'Graphics.GL.Raw.Extension.EXT.Convolution.GL_SEPARABLE_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_SHADE_MODEL', 'Graphics.GL.Raw.Extension.EXT.SharedTexturePalette.GL_SHARED_TEXTURE_PALETTE_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_SMOOTH_LINE_WIDTH_GRANULARITY', 'Graphics.GL.Raw.Internal.Shared.GL_SMOOTH_LINE_WIDTH_RANGE', 'Graphics.GL.Raw.Internal.Shared.GL_SMOOTH_POINT_SIZE_GRANULARITY', 'Graphics.GL.Raw.Internal.Shared.GL_SMOOTH_POINT_SIZE_RANGE', 'Graphics.GL.Raw.Extension.SGIX.Sprite.GL_SPRITE_AXIS_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Sprite.GL_SPRITE_MODE_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Sprite.GL_SPRITE_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Sprite.GL_SPRITE_TRANSLATION_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_STENCIL_BITS', 'Graphics.GL.Raw.Internal.Shared.GL_STENCIL_CLEAR_VALUE', 'Graphics.GL.Raw.Internal.Shared.GL_STENCIL_FAIL', 'Graphics.GL.Raw.Internal.Shared.GL_STENCIL_FUNC', 'Graphics.GL.Raw.Internal.Shared.GL_STENCIL_PASS_DEPTH_FAIL', 'Graphics.GL.Raw.Internal.Shared.GL_STENCIL_PASS_DEPTH_PASS', 'Graphics.GL.Raw.Internal.Shared.GL_STENCIL_REF', 'Graphics.GL.Raw.Internal.Shared.GL_STENCIL_TEST', 'Graphics.GL.Raw.Internal.Shared.GL_STENCIL_VALUE_MASK', 'Graphics.GL.Raw.Internal.Shared.GL_STENCIL_WRITEMASK', 'Graphics.GL.Raw.Internal.Shared.GL_STEREO', 'Graphics.GL.Raw.Internal.Shared.GL_SUBPIXEL_BITS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.TextureObject.GL_TEXTURE_3D_BINDING_EXT', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_BINDING_SGIS', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BINDING_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BINDING_2D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BINDING_3D', 'Graphics.GL.Raw.Extension.SGI.TextureColorTable.GL_TEXTURE_COLOR_TABLE_SGI', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_COORD_ARRAY', 'Graphics.GL.Raw.Extension.EXT.VertexArray.GL_TEXTURE_COORD_ARRAY_COUNT_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_COORD_ARRAY_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_COORD_ARRAY_STRIDE', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_COORD_ARRAY_TYPE', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_GEN_Q', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_GEN_R', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_GEN_S', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_GEN_T', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MATRIX', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_STACK_DEPTH', 'Graphics.GL.Raw.Internal.Shared.GL_UNPACK_ALIGNMENT', 'Graphics.GL.Raw.Extension.EXT.Cmyka.GL_UNPACK_CMYK_HINT_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_UNPACK_IMAGE_DEPTH_SGIS', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_UNPACK_IMAGE_HEIGHT_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNPACK_LSB_FIRST', 'Graphics.GL.Raw.Extension.SGIX.Resample.GL_UNPACK_RESAMPLE_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_UNPACK_ROW_LENGTH', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_UNPACK_SKIP_IMAGES_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNPACK_SKIP_PIXELS', 'Graphics.GL.Raw.Internal.Shared.GL_UNPACK_SKIP_ROWS', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_UNPACK_SKIP_VOLUMES_SGIS', 'Graphics.GL.Raw.Extension.SGIX.Subsample.GL_UNPACK_SUBSAMPLE_RATE_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_UNPACK_SWAP_BYTES', 'Graphics.GL.Raw.Internal.Shared.GL_VERTEX_ARRAY', 'Graphics.GL.Raw.Extension.EXT.VertexArray.GL_VERTEX_ARRAY_COUNT_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_VERTEX_ARRAY_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_VERTEX_ARRAY_STRIDE', 'Graphics.GL.Raw.Internal.Shared.GL_VERTEX_ARRAY_TYPE', 'Graphics.GL.Raw.Extension.SGIX.VertexPreclip.GL_VERTEX_PRECLIP_HINT_SGIX', 'Graphics.GL.Raw.Extension.SGIX.VertexPreclip.GL_VERTEX_PRECLIP_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_VIEWPORT', 'Graphics.GL.Raw.Internal.Shared.GL_ZOOM_X', 'Graphics.GL.Raw.Internal.Shared.GL_ZOOM_Y'.
+--
+-- The length of @data@ should be @COMPSIZE(pname)@.
+
+
+glGetIntegerv :: MonadIO m => GLenum -> Ptr GLint -> m ()
+glGetIntegerv = ffienumPtrintIOV glGetIntegervFunPtr
+
+glGetIntegervFunPtr :: FunPtr (GLenum -> Ptr GLint -> IO ())
+glGetIntegervFunPtr = unsafePerformIO (getProcAddress "glGetIntegerv")
+
+{-# NOINLINE glGetIntegervFunPtr #-}
+
+-- | Usage: @'glGetProgramInfoLog' program bufSize length infoLog@
+--
+-- The length of @length@ should be @1@.
+--
+-- The length of @infoLog@ should be @bufSize@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetProgramInfoLog.xhtml>
+
+
+glGetProgramInfoLog :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
+glGetProgramInfoLog = ffiuintsizeiPtrsizeiPtrcharIOV glGetProgramInfoLogFunPtr
+
+glGetProgramInfoLogFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
+glGetProgramInfoLogFunPtr = unsafePerformIO (getProcAddress "glGetProgramInfoLog")
+
+{-# NOINLINE glGetProgramInfoLogFunPtr #-}
+
+-- | Usage: @'glGetProgramiv' program pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetProgramiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
+glGetProgramiv = ffiuintenumPtrintIOV glGetProgramivFunPtr
+
+glGetProgramivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+glGetProgramivFunPtr = unsafePerformIO (getProcAddress "glGetProgramiv")
+
+{-# NOINLINE glGetProgramivFunPtr #-}
+
+-- | Usage: @'glGetQueryObjectiv' id pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetQueryObjectiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
+glGetQueryObjectiv = ffiuintenumPtrintIOV glGetQueryObjectivFunPtr
+
+glGetQueryObjectivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+glGetQueryObjectivFunPtr = unsafePerformIO (getProcAddress "glGetQueryObjectiv")
+
+{-# NOINLINE glGetQueryObjectivFunPtr #-}
+
+-- | Usage: @'glGetQueryObjectuiv' id pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetQueryObjectuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()
+glGetQueryObjectuiv = ffiuintenumPtruintIOV glGetQueryObjectuivFunPtr
+
+glGetQueryObjectuivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLuint -> IO ())
+glGetQueryObjectuivFunPtr = unsafePerformIO (getProcAddress "glGetQueryObjectuiv")
+
+{-# NOINLINE glGetQueryObjectuivFunPtr #-}
+
+-- | Usage: @'glGetQueryiv' target pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetQueryiv.xhtml>
+
+
+glGetQueryiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
+glGetQueryiv = ffienumenumPtrintIOV glGetQueryivFunPtr
+
+glGetQueryivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+glGetQueryivFunPtr = unsafePerformIO (getProcAddress "glGetQueryiv")
+
+{-# NOINLINE glGetQueryivFunPtr #-}
+
+-- | Usage: @'glGetShaderInfoLog' shader bufSize length infoLog@
+--
+-- The length of @length@ should be @1@.
+--
+-- The length of @infoLog@ should be @bufSize@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetShaderInfoLog.xhtml>
+
+
+glGetShaderInfoLog :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
+glGetShaderInfoLog = ffiuintsizeiPtrsizeiPtrcharIOV glGetShaderInfoLogFunPtr
+
+glGetShaderInfoLogFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
+glGetShaderInfoLogFunPtr = unsafePerformIO (getProcAddress "glGetShaderInfoLog")
+
+{-# NOINLINE glGetShaderInfoLogFunPtr #-}
+
+-- | Usage: @'glGetShaderSource' shader bufSize length source@
+--
+-- The length of @length@ should be @1@.
+--
+-- The length of @source@ should be @bufSize@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetShaderSource.xhtml>
+
+
+glGetShaderSource :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
+glGetShaderSource = ffiuintsizeiPtrsizeiPtrcharIOV glGetShaderSourceFunPtr
+
+glGetShaderSourceFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
+glGetShaderSourceFunPtr = unsafePerformIO (getProcAddress "glGetShaderSource")
+
+{-# NOINLINE glGetShaderSourceFunPtr #-}
+
+-- | Usage: @'glGetShaderiv' shader pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetShaderiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
+glGetShaderiv = ffiuintenumPtrintIOV glGetShaderivFunPtr
+
+glGetShaderivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+glGetShaderivFunPtr = unsafePerformIO (getProcAddress "glGetShaderiv")
+
+{-# NOINLINE glGetShaderivFunPtr #-}
+
+-- | Usage: @'glGetString' name@
+--
+-- The parameter @name@ is a @StringName@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_EXTENSIONS', 'Graphics.GL.Raw.Internal.Shared.GL_RENDERER', 'Graphics.GL.Raw.Internal.Shared.GL_VENDOR', 'Graphics.GL.Raw.Internal.Shared.GL_VERSION'.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetString.xhtml>
+
+
+glGetString :: MonadIO m => GLenum -> m (Ptr GLubyte)
+glGetString = ffienumIOPtrubyte glGetStringFunPtr
+
+glGetStringFunPtr :: FunPtr (GLenum -> IO (Ptr GLubyte))
+glGetStringFunPtr = unsafePerformIO (getProcAddress "glGetString")
+
+{-# NOINLINE glGetStringFunPtr #-}
+
+-- | Usage: @'glGetStringi' name index@
+
+
+glGetStringi :: MonadIO m => GLenum -> GLuint -> m (Ptr GLubyte)
+glGetStringi = ffienumuintIOPtrubyte glGetStringiFunPtr
+
+glGetStringiFunPtr :: FunPtr (GLenum -> GLuint -> IO (Ptr GLubyte))
+glGetStringiFunPtr = unsafePerformIO (getProcAddress "glGetStringi")
+
+{-# NOINLINE glGetStringiFunPtr #-}
+
+-- | Usage: @'glGetTexImage' target level format type pixels@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Raw.Extension.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_ALPHA', 'Graphics.GL.Raw.Internal.Shared.GL_BLUE', 'Graphics.GL.Raw.Extension.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Raw.Extension.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Raw.Internal.Shared.GL_GREEN', 'Graphics.GL.Raw.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Raw.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Raw.Internal.Shared.GL_RED', 'Graphics.GL.Raw.Extension.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_RGB', 'Graphics.GL.Raw.Internal.Shared.GL_RGBA', 'Graphics.GL.Raw.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Raw.Extension.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
+--
+-- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_BITMAP', 'Graphics.GL.Raw.Internal.Shared.GL_BYTE', 'Graphics.GL.Raw.Internal.Shared.GL_FLOAT', 'Graphics.GL.Raw.Internal.Shared.GL_INT', 'Graphics.GL.Raw.Internal.Shared.GL_SHORT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
+--
+-- The length of @pixels@ should be @COMPSIZE(target,level,format,type)@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetTexImage.xhtml>
+
+
+glGetTexImage :: MonadIO m => GLenum -> GLint -> GLenum -> GLenum -> Ptr () -> m ()
+glGetTexImage = ffienumintenumenumPtrVIOV glGetTexImageFunPtr
+
+glGetTexImageFunPtr :: FunPtr (GLenum -> GLint -> GLenum -> GLenum -> Ptr () -> IO ())
+glGetTexImageFunPtr = unsafePerformIO (getProcAddress "glGetTexImage")
+
+{-# NOINLINE glGetTexImageFunPtr #-}
+
+-- | Usage: @'glGetTexLevelParameterfv' target level pname params@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @pname@ is a @GetTextureParameter@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Raw.Extension.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Raw.Extension.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Raw.Extension.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Raw.Extension.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Raw.Extension.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Raw.Extension.SGIS.SharpenTexture.GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4DSIZE_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_ALPHA_SIZE', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BLUE_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BORDER', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Raw.Extension.NV.TextureBorderClamp.GL_TEXTURE_BORDER_COLOR_NV', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Shadow.GL_TEXTURE_COMPARE_OPERATOR_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_COMPONENTS', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_DEPTH_EXT', 'Graphics.GL.Raw.Extension.SGIS.TextureFilter4.GL_TEXTURE_FILTER4_SIZE_SGIS', 'Graphics.GL.Raw.Extension.SGIX.Shadow.GL_TEXTURE_GEQUAL_R_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_GREEN_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_HEIGHT', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_INTENSITY_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_INTERNAL_FORMAT', 'Graphics.GL.Raw.Extension.SGIX.Shadow.GL_TEXTURE_LEQUAL_R_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_LUMINANCE_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Raw.Extension.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_RED_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_RESIDENT', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_WIDTH', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_WRAP_T'.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetTexLevelParameterfv :: MonadIO m => GLenum -> GLint -> GLenum -> Ptr GLfloat -> m ()
+glGetTexLevelParameterfv = ffienumintenumPtrfloatIOV glGetTexLevelParameterfvFunPtr
+
+glGetTexLevelParameterfvFunPtr :: FunPtr (GLenum -> GLint -> GLenum -> Ptr GLfloat -> IO ())
+glGetTexLevelParameterfvFunPtr = unsafePerformIO (getProcAddress "glGetTexLevelParameterfv")
+
+{-# NOINLINE glGetTexLevelParameterfvFunPtr #-}
+
+-- | Usage: @'glGetTexLevelParameteriv' target level pname params@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @pname@ is a @GetTextureParameter@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Raw.Extension.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Raw.Extension.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Raw.Extension.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Raw.Extension.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Raw.Extension.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Raw.Extension.SGIS.SharpenTexture.GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4DSIZE_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_ALPHA_SIZE', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BLUE_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BORDER', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Raw.Extension.NV.TextureBorderClamp.GL_TEXTURE_BORDER_COLOR_NV', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Shadow.GL_TEXTURE_COMPARE_OPERATOR_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_COMPONENTS', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_DEPTH_EXT', 'Graphics.GL.Raw.Extension.SGIS.TextureFilter4.GL_TEXTURE_FILTER4_SIZE_SGIS', 'Graphics.GL.Raw.Extension.SGIX.Shadow.GL_TEXTURE_GEQUAL_R_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_GREEN_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_HEIGHT', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_INTENSITY_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_INTERNAL_FORMAT', 'Graphics.GL.Raw.Extension.SGIX.Shadow.GL_TEXTURE_LEQUAL_R_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_LUMINANCE_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Raw.Extension.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_RED_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_RESIDENT', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_WIDTH', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_WRAP_T'.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetTexLevelParameteriv :: MonadIO m => GLenum -> GLint -> GLenum -> Ptr GLint -> m ()
+glGetTexLevelParameteriv = ffienumintenumPtrintIOV glGetTexLevelParameterivFunPtr
+
+glGetTexLevelParameterivFunPtr :: FunPtr (GLenum -> GLint -> GLenum -> Ptr GLint -> IO ())
+glGetTexLevelParameterivFunPtr = unsafePerformIO (getProcAddress "glGetTexLevelParameteriv")
+
+{-# NOINLINE glGetTexLevelParameterivFunPtr #-}
+
+-- | Usage: @'glGetTexParameterIiv' target pname params@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @pname@ is a @GetTextureParameter@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Raw.Extension.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Raw.Extension.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Raw.Extension.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Raw.Extension.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Raw.Extension.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Raw.Extension.SGIS.SharpenTexture.GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4DSIZE_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_ALPHA_SIZE', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BLUE_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BORDER', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Raw.Extension.NV.TextureBorderClamp.GL_TEXTURE_BORDER_COLOR_NV', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Shadow.GL_TEXTURE_COMPARE_OPERATOR_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_COMPONENTS', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_DEPTH_EXT', 'Graphics.GL.Raw.Extension.SGIS.TextureFilter4.GL_TEXTURE_FILTER4_SIZE_SGIS', 'Graphics.GL.Raw.Extension.SGIX.Shadow.GL_TEXTURE_GEQUAL_R_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_GREEN_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_HEIGHT', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_INTENSITY_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_INTERNAL_FORMAT', 'Graphics.GL.Raw.Extension.SGIX.Shadow.GL_TEXTURE_LEQUAL_R_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_LUMINANCE_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Raw.Extension.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_RED_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_RESIDENT', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_WIDTH', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_WRAP_T'.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetTexParameterIiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
+glGetTexParameterIiv = ffienumenumPtrintIOV glGetTexParameterIivFunPtr
+
+glGetTexParameterIivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+glGetTexParameterIivFunPtr = unsafePerformIO (getProcAddress "glGetTexParameterIiv")
+
+{-# NOINLINE glGetTexParameterIivFunPtr #-}
+
+-- | Usage: @'glGetTexParameterIuiv' target pname params@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @pname@ is a @GetTextureParameter@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Raw.Extension.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Raw.Extension.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Raw.Extension.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Raw.Extension.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Raw.Extension.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Raw.Extension.SGIS.SharpenTexture.GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4DSIZE_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_ALPHA_SIZE', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BLUE_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BORDER', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Raw.Extension.NV.TextureBorderClamp.GL_TEXTURE_BORDER_COLOR_NV', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Shadow.GL_TEXTURE_COMPARE_OPERATOR_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_COMPONENTS', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_DEPTH_EXT', 'Graphics.GL.Raw.Extension.SGIS.TextureFilter4.GL_TEXTURE_FILTER4_SIZE_SGIS', 'Graphics.GL.Raw.Extension.SGIX.Shadow.GL_TEXTURE_GEQUAL_R_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_GREEN_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_HEIGHT', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_INTENSITY_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_INTERNAL_FORMAT', 'Graphics.GL.Raw.Extension.SGIX.Shadow.GL_TEXTURE_LEQUAL_R_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_LUMINANCE_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Raw.Extension.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_RED_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_RESIDENT', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_WIDTH', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_WRAP_T'.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetTexParameterIuiv :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()
+glGetTexParameterIuiv = ffienumenumPtruintIOV glGetTexParameterIuivFunPtr
+
+glGetTexParameterIuivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLuint -> IO ())
+glGetTexParameterIuivFunPtr = unsafePerformIO (getProcAddress "glGetTexParameterIuiv")
+
+{-# NOINLINE glGetTexParameterIuivFunPtr #-}
+
+-- | Usage: @'glGetTexParameterfv' target pname params@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @pname@ is a @GetTextureParameter@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Raw.Extension.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Raw.Extension.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Raw.Extension.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Raw.Extension.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Raw.Extension.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Raw.Extension.SGIS.SharpenTexture.GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4DSIZE_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_ALPHA_SIZE', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BLUE_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BORDER', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Raw.Extension.NV.TextureBorderClamp.GL_TEXTURE_BORDER_COLOR_NV', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Shadow.GL_TEXTURE_COMPARE_OPERATOR_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_COMPONENTS', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_DEPTH_EXT', 'Graphics.GL.Raw.Extension.SGIS.TextureFilter4.GL_TEXTURE_FILTER4_SIZE_SGIS', 'Graphics.GL.Raw.Extension.SGIX.Shadow.GL_TEXTURE_GEQUAL_R_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_GREEN_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_HEIGHT', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_INTENSITY_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_INTERNAL_FORMAT', 'Graphics.GL.Raw.Extension.SGIX.Shadow.GL_TEXTURE_LEQUAL_R_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_LUMINANCE_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Raw.Extension.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_RED_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_RESIDENT', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_WIDTH', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_WRAP_T'.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetTexParameterfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
+glGetTexParameterfv = ffienumenumPtrfloatIOV glGetTexParameterfvFunPtr
+
+glGetTexParameterfvFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
+glGetTexParameterfvFunPtr = unsafePerformIO (getProcAddress "glGetTexParameterfv")
+
+{-# NOINLINE glGetTexParameterfvFunPtr #-}
+
+-- | Usage: @'glGetTexParameteriv' target pname params@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @pname@ is a @GetTextureParameter@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Raw.Extension.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Raw.Extension.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Raw.Extension.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Raw.Extension.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Raw.Extension.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Raw.Extension.SGIS.SharpenTexture.GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4DSIZE_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_ALPHA_SIZE', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BLUE_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BORDER', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Raw.Extension.NV.TextureBorderClamp.GL_TEXTURE_BORDER_COLOR_NV', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Shadow.GL_TEXTURE_COMPARE_OPERATOR_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_COMPONENTS', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_DEPTH_EXT', 'Graphics.GL.Raw.Extension.SGIS.TextureFilter4.GL_TEXTURE_FILTER4_SIZE_SGIS', 'Graphics.GL.Raw.Extension.SGIX.Shadow.GL_TEXTURE_GEQUAL_R_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_GREEN_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_HEIGHT', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_INTENSITY_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_INTERNAL_FORMAT', 'Graphics.GL.Raw.Extension.SGIX.Shadow.GL_TEXTURE_LEQUAL_R_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_LUMINANCE_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Raw.Extension.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_RED_SIZE', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_RESIDENT', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_WIDTH', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_WRAP_T'.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetTexParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
+glGetTexParameteriv = ffienumenumPtrintIOV glGetTexParameterivFunPtr
+
+glGetTexParameterivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+glGetTexParameterivFunPtr = unsafePerformIO (getProcAddress "glGetTexParameteriv")
+
+{-# NOINLINE glGetTexParameterivFunPtr #-}
+
+-- | Usage: @'glGetTransformFeedbackVarying' program index bufSize length size type name@
+--
+-- The length of @length@ should be @1@.
+--
+-- The length of @size@ should be @1@.
+--
+-- The length of @type@ should be @1@.
+--
+-- The length of @name@ should be @bufSize@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetTransformFeedbackVarying.xhtml>
+
+
+glGetTransformFeedbackVarying :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLsizei -> Ptr GLenum -> Ptr GLchar -> m ()
+glGetTransformFeedbackVarying = ffiuintuintsizeiPtrsizeiPtrsizeiPtrenumPtrcharIOV glGetTransformFeedbackVaryingFunPtr
+
+glGetTransformFeedbackVaryingFunPtr :: FunPtr (GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLsizei -> Ptr GLenum -> Ptr GLchar -> IO ())
+glGetTransformFeedbackVaryingFunPtr = unsafePerformIO (getProcAddress "glGetTransformFeedbackVarying")
+
+{-# NOINLINE glGetTransformFeedbackVaryingFunPtr #-}
+
+-- | Usage: @'glGetUniformLocation' program name@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetUniformLocation.xhtml>
+
+
+glGetUniformLocation :: MonadIO m => GLuint -> Ptr GLchar -> m GLint
+glGetUniformLocation = ffiuintPtrcharIOint glGetUniformLocationFunPtr
+
+glGetUniformLocationFunPtr :: FunPtr (GLuint -> Ptr GLchar -> IO GLint)
+glGetUniformLocationFunPtr = unsafePerformIO (getProcAddress "glGetUniformLocation")
+
+{-# NOINLINE glGetUniformLocationFunPtr #-}
+
+-- | Usage: @'glGetUniformfv' program location params@
+--
+-- The length of @params@ should be @COMPSIZE(program,location)@.
+
+
+glGetUniformfv :: MonadIO m => GLuint -> GLint -> Ptr GLfloat -> m ()
+glGetUniformfv = ffiuintintPtrfloatIOV glGetUniformfvFunPtr
+
+glGetUniformfvFunPtr :: FunPtr (GLuint -> GLint -> Ptr GLfloat -> IO ())
+glGetUniformfvFunPtr = unsafePerformIO (getProcAddress "glGetUniformfv")
+
+{-# NOINLINE glGetUniformfvFunPtr #-}
+
+-- | Usage: @'glGetUniformiv' program location params@
+--
+-- The length of @params@ should be @COMPSIZE(program,location)@.
+
+
+glGetUniformiv :: MonadIO m => GLuint -> GLint -> Ptr GLint -> m ()
+glGetUniformiv = ffiuintintPtrintIOV glGetUniformivFunPtr
+
+glGetUniformivFunPtr :: FunPtr (GLuint -> GLint -> Ptr GLint -> IO ())
+glGetUniformivFunPtr = unsafePerformIO (getProcAddress "glGetUniformiv")
+
+{-# NOINLINE glGetUniformivFunPtr #-}
+
+-- | Usage: @'glGetUniformuiv' program location params@
+--
+-- The length of @params@ should be @COMPSIZE(program,location)@.
+
+
+glGetUniformuiv :: MonadIO m => GLuint -> GLint -> Ptr GLuint -> m ()
+glGetUniformuiv = ffiuintintPtruintIOV glGetUniformuivFunPtr
+
+glGetUniformuivFunPtr :: FunPtr (GLuint -> GLint -> Ptr GLuint -> IO ())
+glGetUniformuivFunPtr = unsafePerformIO (getProcAddress "glGetUniformuiv")
+
+{-# NOINLINE glGetUniformuivFunPtr #-}
+
+-- | Usage: @'glGetVertexAttribIiv' index pname params@
+--
+-- The parameter @pname@ is a @VertexAttribEnum@.
+--
+-- The length of @params@ should be @1@.
+
+
+glGetVertexAttribIiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
+glGetVertexAttribIiv = ffiuintenumPtrintIOV glGetVertexAttribIivFunPtr
+
+glGetVertexAttribIivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+glGetVertexAttribIivFunPtr = unsafePerformIO (getProcAddress "glGetVertexAttribIiv")
+
+{-# NOINLINE glGetVertexAttribIivFunPtr #-}
+
+-- | Usage: @'glGetVertexAttribIuiv' index pname params@
+--
+-- The parameter @pname@ is a @VertexAttribEnum@.
+--
+-- The length of @params@ should be @1@.
+
+
+glGetVertexAttribIuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()
+glGetVertexAttribIuiv = ffiuintenumPtruintIOV glGetVertexAttribIuivFunPtr
+
+glGetVertexAttribIuivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLuint -> IO ())
+glGetVertexAttribIuivFunPtr = unsafePerformIO (getProcAddress "glGetVertexAttribIuiv")
+
+{-# NOINLINE glGetVertexAttribIuivFunPtr #-}
+
+-- | Usage: @'glGetVertexAttribPointerv' index pname pointer@
+--
+-- The parameter @pname@ is a @VertexAttribPointerPropertyARB@.
+--
+-- The length of @pointer@ should be @1@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetVertexAttribPointerv.xhtml>
+
+
+glGetVertexAttribPointerv :: MonadIO m => GLuint -> GLenum -> Ptr (Ptr ()) -> m ()
+glGetVertexAttribPointerv = ffiuintenumPtrPtrVIOV glGetVertexAttribPointervFunPtr
+
+glGetVertexAttribPointervFunPtr :: FunPtr (GLuint -> GLenum -> Ptr (Ptr ()) -> IO ())
+glGetVertexAttribPointervFunPtr = unsafePerformIO (getProcAddress "glGetVertexAttribPointerv")
+
+{-# NOINLINE glGetVertexAttribPointervFunPtr #-}
+
+-- | Usage: @'glGetVertexAttribdv' index pname params@
+--
+-- The parameter @pname@ is a @VertexAttribPropertyARB@.
+--
+-- The length of @params@ should be @4@.
+
+
+glGetVertexAttribdv :: MonadIO m => GLuint -> GLenum -> Ptr GLdouble -> m ()
+glGetVertexAttribdv = ffiuintenumPtrdoubleIOV glGetVertexAttribdvFunPtr
+
+glGetVertexAttribdvFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLdouble -> IO ())
+glGetVertexAttribdvFunPtr = unsafePerformIO (getProcAddress "glGetVertexAttribdv")
+
+{-# NOINLINE glGetVertexAttribdvFunPtr #-}
+
+-- | Usage: @'glGetVertexAttribfv' index pname params@
+--
+-- The parameter @pname@ is a @VertexAttribPropertyARB@.
+--
+-- The length of @params@ should be @4@.
+
+
+glGetVertexAttribfv :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()
+glGetVertexAttribfv = ffiuintenumPtrfloatIOV glGetVertexAttribfvFunPtr
+
+glGetVertexAttribfvFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLfloat -> IO ())
+glGetVertexAttribfvFunPtr = unsafePerformIO (getProcAddress "glGetVertexAttribfv")
+
+{-# NOINLINE glGetVertexAttribfvFunPtr #-}
+
+-- | Usage: @'glGetVertexAttribiv' index pname params@
+--
+-- The parameter @pname@ is a @VertexAttribPropertyARB@.
+--
+-- The length of @params@ should be @4@.
+
+
+glGetVertexAttribiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
+glGetVertexAttribiv = ffiuintenumPtrintIOV glGetVertexAttribivFunPtr
+
+glGetVertexAttribivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+glGetVertexAttribivFunPtr = unsafePerformIO (getProcAddress "glGetVertexAttribiv")
+
+{-# NOINLINE glGetVertexAttribivFunPtr #-}
+
+-- | Usage: @'glHint' target mode@
+--
+-- The parameter @target@ is a @HintTarget@, one of: 'Graphics.GL.Raw.Extension.PGI.MiscHints.GL_ALLOW_DRAW_FRG_HINT_PGI', 'Graphics.GL.Raw.Extension.PGI.MiscHints.GL_ALLOW_DRAW_MEM_HINT_PGI', 'Graphics.GL.Raw.Extension.PGI.MiscHints.GL_ALLOW_DRAW_OBJ_HINT_PGI', 'Graphics.GL.Raw.Extension.PGI.MiscHints.GL_ALLOW_DRAW_WIN_HINT_PGI', 'Graphics.GL.Raw.Extension.PGI.MiscHints.GL_ALWAYS_FAST_HINT_PGI', 'Graphics.GL.Raw.Extension.PGI.MiscHints.GL_ALWAYS_SOFT_HINT_PGI', 'Graphics.GL.Raw.Extension.PGI.MiscHints.GL_BACK_NORMALS_HINT_PGI', 'Graphics.GL.Raw.Extension.QCOM.BinningControl.GL_BINNING_CONTROL_HINT_QCOM', 'Graphics.GL.Raw.Extension.PGI.MiscHints.GL_CLIP_FAR_HINT_PGI', 'Graphics.GL.Raw.Extension.PGI.MiscHints.GL_CLIP_NEAR_HINT_PGI', 'Graphics.GL.Raw.Extension.EXT.ClipVolumeHint.GL_CLIP_VOLUME_CLIPPING_HINT_EXT', 'Graphics.GL.Raw.Extension.PGI.MiscHints.GL_CONSERVE_MEMORY_HINT_PGI', 'Graphics.GL.Raw.Extension.SGIX.ConvolutionAccuracy.GL_CONVOLUTION_HINT_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_FOG_HINT', 'Graphics.GL.Raw.Internal.Shared.GL_FRAGMENT_SHADER_DERIVATIVE_HINT', 'Graphics.GL.Raw.Extension.ARB.FragmentShader.GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB', 'Graphics.GL.Raw.Extension.OES.StandardDerivatives.GL_FRAGMENT_SHADER_DERIVATIVE_HINT_OES', 'Graphics.GL.Raw.Extension.PGI.MiscHints.GL_FULL_STIPPLE_HINT_PGI', 'Graphics.GL.Raw.Internal.Shared.GL_GENERATE_MIPMAP_HINT', 'Graphics.GL.Raw.Extension.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_HINT_SGIS', @GL_LINE_QUALITY_HINT_SGIX@, 'Graphics.GL.Raw.Internal.Shared.GL_LINE_SMOOTH_HINT', 'Graphics.GL.Raw.Extension.PGI.VertexHints.GL_MATERIAL_SIDE_HINT_PGI', 'Graphics.GL.Raw.Extension.PGI.VertexHints.GL_MAX_VERTEX_HINT_PGI', 'Graphics.GL.Raw.Extension.NV.MultisampleFilterHint.GL_MULTISAMPLE_FILTER_HINT_NV', 'Graphics.GL.Raw.Extension.PGI.MiscHints.GL_NATIVE_GRAPHICS_BEGIN_HINT_PGI', 'Graphics.GL.Raw.Extension.PGI.MiscHints.GL_NATIVE_GRAPHICS_END_HINT_PGI', 'Graphics.GL.Raw.Extension.EXT.Cmyka.GL_PACK_CMYK_HINT_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PERSPECTIVE_CORRECTION_HINT', 'Graphics.GL.Raw.Extension.WIN.PhongShading.GL_PHONG_HINT_WIN', 'Graphics.GL.Raw.Internal.Shared.GL_POINT_SMOOTH_HINT', 'Graphics.GL.Raw.Internal.Shared.GL_POLYGON_SMOOTH_HINT', 'Graphics.GL.Raw.Extension.PGI.MiscHints.GL_PREFER_DOUBLEBUFFER_HINT_PGI', 'Graphics.GL.Raw.Internal.Shared.GL_PROGRAM_BINARY_RETRIEVABLE_HINT', 'Graphics.GL.Raw.Extension.PGI.MiscHints.GL_RECLAIM_MEMORY_HINT_PGI', 'Graphics.GL.Raw.Extension.SGIX.ScalebiasHint.GL_SCALEBIAS_HINT_SGIX', 'Graphics.GL.Raw.Extension.PGI.MiscHints.GL_STRICT_DEPTHFUNC_HINT_PGI', 'Graphics.GL.Raw.Extension.PGI.MiscHints.GL_STRICT_LIGHTING_HINT_PGI', 'Graphics.GL.Raw.Extension.PGI.MiscHints.GL_STRICT_SCISSOR_HINT_PGI', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_COMPRESSION_HINT', 'Graphics.GL.Raw.Extension.ARB.TextureCompression.GL_TEXTURE_COMPRESSION_HINT_ARB', 'Graphics.GL.Raw.Extension.SGIX.TextureMultiBuffer.GL_TEXTURE_MULTI_BUFFER_HINT_SGIX', 'Graphics.GL.Raw.Extension.APPLE.TextureRange.GL_TEXTURE_STORAGE_HINT_APPLE', 'Graphics.GL.Raw.Extension.APPLE.TransformHint.GL_TRANSFORM_HINT_APPLE', 'Graphics.GL.Raw.Extension.EXT.Cmyka.GL_UNPACK_CMYK_HINT_EXT', 'Graphics.GL.Raw.Extension.APPLE.VertexArrayRange.GL_VERTEX_ARRAY_STORAGE_HINT_APPLE', 'Graphics.GL.Raw.Extension.PGI.VertexHints.GL_VERTEX_CONSISTENT_HINT_PGI', 'Graphics.GL.Raw.Extension.PGI.VertexHints.GL_VERTEX_DATA_HINT_PGI', 'Graphics.GL.Raw.Extension.SGIX.VertexPreclip.GL_VERTEX_PRECLIP_HINT_SGIX', 'Graphics.GL.Raw.Extension.SGIX.VertexPreclip.GL_VERTEX_PRECLIP_SGIX', 'Graphics.GL.Raw.Extension.PGI.MiscHints.GL_WIDE_LINE_HINT_PGI'.
+--
+-- The parameter @mode@ is a @HintMode@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_DONT_CARE', 'Graphics.GL.Raw.Internal.Shared.GL_FASTEST', 'Graphics.GL.Raw.Internal.Shared.GL_NICEST'.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glHint.xhtml>
+
+
+glHint :: MonadIO m => GLenum -> GLenum -> m ()
+glHint = ffienumenumIOV glHintFunPtr
+
+glHintFunPtr :: FunPtr (GLenum -> GLenum -> IO ())
+glHintFunPtr = unsafePerformIO (getProcAddress "glHint")
+
+{-# NOINLINE glHintFunPtr #-}
+
+-- | Usage: @'glIsBuffer' buffer@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glIsBuffer.xhtml>
+
+
+glIsBuffer :: MonadIO m => GLuint -> m GLboolean
+glIsBuffer = ffiuintIOboolean glIsBufferFunPtr
+
+glIsBufferFunPtr :: FunPtr (GLuint -> IO GLboolean)
+glIsBufferFunPtr = unsafePerformIO (getProcAddress "glIsBuffer")
+
+{-# NOINLINE glIsBufferFunPtr #-}
+
+-- | Usage: @'glIsEnabled' cap@
+--
+-- The parameter @cap@ is a @EnableCap@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_ALPHA_TEST', 'Graphics.GL.Raw.Extension.SGIX.AsyncPixel.GL_ASYNC_DRAW_PIXELS_SGIX', 'Graphics.GL.Raw.Extension.SGIX.AsyncHistogram.GL_ASYNC_HISTOGRAM_SGIX', 'Graphics.GL.Raw.Extension.SGIX.AsyncPixel.GL_ASYNC_READ_PIXELS_SGIX', 'Graphics.GL.Raw.Extension.SGIX.AsyncPixel.GL_ASYNC_TEX_IMAGE_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_AUTO_NORMAL', 'Graphics.GL.Raw.Internal.Shared.GL_BLEND', 'Graphics.GL.Raw.Extension.SGIX.CalligraphicFragment.GL_CALLIGRAPHIC_FRAGMENT_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_CLIP_PLANE0', 'Graphics.GL.Raw.Internal.Shared.GL_CLIP_PLANE1', 'Graphics.GL.Raw.Internal.Shared.GL_CLIP_PLANE2', 'Graphics.GL.Raw.Internal.Shared.GL_CLIP_PLANE3', 'Graphics.GL.Raw.Internal.Shared.GL_CLIP_PLANE4', 'Graphics.GL.Raw.Internal.Shared.GL_CLIP_PLANE5', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_ARRAY', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_LOGIC_OP', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_MATERIAL', 'Graphics.GL.Raw.Extension.SGI.ColorTable.GL_COLOR_TABLE_SGI', 'Graphics.GL.Raw.Extension.EXT.Convolution.GL_CONVOLUTION_1D_EXT', 'Graphics.GL.Raw.Extension.EXT.Convolution.GL_CONVOLUTION_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_CULL_FACE', 'Graphics.GL.Raw.Internal.Shared.GL_DEPTH_TEST', 'Graphics.GL.Raw.Internal.Shared.GL_DITHER', 'Graphics.GL.Raw.Internal.Shared.GL_EDGE_FLAG_ARRAY', 'Graphics.GL.Raw.Internal.Shared.GL_FOG', 'Graphics.GL.Raw.Extension.SGIX.FogOffset.GL_FOG_OFFSET_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_COLOR_MATERIAL_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT0_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT1_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT2_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT3_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT4_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT5_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT6_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT7_SGIX', 'Graphics.GL.Raw.Extension.SGIX.FragmentLighting.GL_FRAGMENT_LIGHTING_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Framezoom.GL_FRAMEZOOM_SGIX', 'Graphics.GL.Raw.Extension.EXT.Histogram.GL_HISTOGRAM_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_INDEX_ARRAY', 'Graphics.GL.Raw.Internal.Shared.GL_INDEX_LOGIC_OP', 'Graphics.GL.Raw.Extension.SGIX.Interlace.GL_INTERLACE_SGIX', 'Graphics.GL.Raw.Extension.SGIX.IrInstrument1.GL_IR_INSTRUMENT1_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT0', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT1', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT2', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT3', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT4', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT5', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT6', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHT7', 'Graphics.GL.Raw.Internal.Shared.GL_LIGHTING', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_SMOOTH', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_STIPPLE', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_COLOR_4', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_NORMAL', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_TEXTURE_COORD_1', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_TEXTURE_COORD_2', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_TEXTURE_COORD_3', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_TEXTURE_COORD_4', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_VERTEX_3', 'Graphics.GL.Raw.Internal.Shared.GL_MAP1_VERTEX_4', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_COLOR_4', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_NORMAL', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_TEXTURE_COORD_1', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_TEXTURE_COORD_2', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_TEXTURE_COORD_3', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_TEXTURE_COORD_4', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_VERTEX_3', 'Graphics.GL.Raw.Internal.Shared.GL_MAP2_VERTEX_4', 'Graphics.GL.Raw.Extension.EXT.Histogram.GL_MINMAX_EXT', 'Graphics.GL.Raw.Extension.SGIS.Multisample.GL_MULTISAMPLE_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_NORMALIZE', 'Graphics.GL.Raw.Internal.Shared.GL_NORMAL_ARRAY', 'Graphics.GL.Raw.Extension.SGIS.PixelTexture.GL_PIXEL_TEXTURE_SGIS', 'Graphics.GL.Raw.Extension.SGIX.PixelTexture.GL_PIXEL_TEX_GEN_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_POINT_SMOOTH', 'Graphics.GL.Raw.Internal.Shared.GL_POLYGON_OFFSET_FILL', 'Graphics.GL.Raw.Internal.Shared.GL_POLYGON_OFFSET_LINE', 'Graphics.GL.Raw.Internal.Shared.GL_POLYGON_OFFSET_POINT', 'Graphics.GL.Raw.Internal.Shared.GL_POLYGON_SMOOTH', 'Graphics.GL.Raw.Internal.Shared.GL_POLYGON_STIPPLE', 'Graphics.GL.Raw.Extension.SGI.ColorTable.GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI', 'Graphics.GL.Raw.Extension.SGI.ColorTable.GL_POST_CONVOLUTION_COLOR_TABLE_SGI', 'Graphics.GL.Raw.Extension.SGIX.ReferencePlane.GL_REFERENCE_PLANE_SGIX', 'Graphics.GL.Raw.Extension.EXT.RescaleNormal.GL_RESCALE_NORMAL_EXT', 'Graphics.GL.Raw.Extension.SGIS.Multisample.GL_SAMPLE_ALPHA_TO_MASK_SGIS', 'Graphics.GL.Raw.Extension.SGIS.Multisample.GL_SAMPLE_ALPHA_TO_ONE_SGIS', 'Graphics.GL.Raw.Extension.SGIS.Multisample.GL_SAMPLE_MASK_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_SCISSOR_TEST', 'Graphics.GL.Raw.Extension.EXT.Convolution.GL_SEPARABLE_2D_EXT', 'Graphics.GL.Raw.Extension.EXT.SharedTexturePalette.GL_SHARED_TEXTURE_PALETTE_EXT', 'Graphics.GL.Raw.Extension.SGIX.Sprite.GL_SPRITE_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_STENCIL_TEST', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Extension.SGI.TextureColorTable.GL_TEXTURE_COLOR_TABLE_SGI', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_COORD_ARRAY', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_GEN_Q', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_GEN_R', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_GEN_S', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_GEN_T', 'Graphics.GL.Raw.Internal.Shared.GL_VERTEX_ARRAY'.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glIsEnabled.xhtml>
+
+
+glIsEnabled :: MonadIO m => GLenum -> m GLboolean
+glIsEnabled = ffienumIOboolean glIsEnabledFunPtr
+
+glIsEnabledFunPtr :: FunPtr (GLenum -> IO GLboolean)
+glIsEnabledFunPtr = unsafePerformIO (getProcAddress "glIsEnabled")
+
+{-# NOINLINE glIsEnabledFunPtr #-}
+
+-- | Usage: @'glIsEnabledi' target index@
+
+
+glIsEnabledi :: MonadIO m => GLenum -> GLuint -> m GLboolean
+glIsEnabledi = ffienumuintIOboolean glIsEnablediFunPtr
+
+glIsEnablediFunPtr :: FunPtr (GLenum -> GLuint -> IO GLboolean)
+glIsEnablediFunPtr = unsafePerformIO (getProcAddress "glIsEnabledi")
+
+{-# NOINLINE glIsEnablediFunPtr #-}
+
+-- | Usage: @'glIsProgram' program@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glIsProgram.xhtml>
+
+
+glIsProgram :: MonadIO m => GLuint -> m GLboolean
+glIsProgram = ffiuintIOboolean glIsProgramFunPtr
+
+glIsProgramFunPtr :: FunPtr (GLuint -> IO GLboolean)
+glIsProgramFunPtr = unsafePerformIO (getProcAddress "glIsProgram")
+
+{-# NOINLINE glIsProgramFunPtr #-}
+
+-- | Usage: @'glIsQuery' id@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glIsQuery.xhtml>
+
+
+glIsQuery :: MonadIO m => GLuint -> m GLboolean
+glIsQuery = ffiuintIOboolean glIsQueryFunPtr
+
+glIsQueryFunPtr :: FunPtr (GLuint -> IO GLboolean)
+glIsQueryFunPtr = unsafePerformIO (getProcAddress "glIsQuery")
+
+{-# NOINLINE glIsQueryFunPtr #-}
+
+-- | Usage: @'glIsShader' shader@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glIsShader.xhtml>
+
+
+glIsShader :: MonadIO m => GLuint -> m GLboolean
+glIsShader = ffiuintIOboolean glIsShaderFunPtr
+
+glIsShaderFunPtr :: FunPtr (GLuint -> IO GLboolean)
+glIsShaderFunPtr = unsafePerformIO (getProcAddress "glIsShader")
+
+{-# NOINLINE glIsShaderFunPtr #-}
+
+-- | Usage: @'glIsTexture' texture@
+--
+-- The parameter @texture@ is a @Texture@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glIsTexture.xhtml>
+
+
+glIsTexture :: MonadIO m => GLuint -> m GLboolean
+glIsTexture = ffiuintIOboolean glIsTextureFunPtr
+
+glIsTextureFunPtr :: FunPtr (GLuint -> IO GLboolean)
+glIsTextureFunPtr = unsafePerformIO (getProcAddress "glIsTexture")
+
+{-# NOINLINE glIsTextureFunPtr #-}
+
+-- | Usage: @'glLineWidth' width@
+--
+-- The parameter @width@ is a @CheckedFloat32@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glLineWidth.xhtml>
+
+
+glLineWidth :: MonadIO m => GLfloat -> m ()
+glLineWidth = ffifloatIOV glLineWidthFunPtr
+
+glLineWidthFunPtr :: FunPtr (GLfloat -> IO ())
+glLineWidthFunPtr = unsafePerformIO (getProcAddress "glLineWidth")
+
+{-# NOINLINE glLineWidthFunPtr #-}
+
+-- | Usage: @'glLinkProgram' program@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glLinkProgram.xhtml>
+
+
+glLinkProgram :: MonadIO m => GLuint -> m ()
+glLinkProgram = ffiuintIOV glLinkProgramFunPtr
+
+glLinkProgramFunPtr :: FunPtr (GLuint -> IO ())
+glLinkProgramFunPtr = unsafePerformIO (getProcAddress "glLinkProgram")
+
+{-# NOINLINE glLinkProgramFunPtr #-}
+
+-- | Usage: @'glLogicOp' opcode@
+--
+-- The parameter @opcode@ is a @LogicOp@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_AND', 'Graphics.GL.Raw.Internal.Shared.GL_AND_INVERTED', 'Graphics.GL.Raw.Internal.Shared.GL_AND_REVERSE', 'Graphics.GL.Raw.Internal.Shared.GL_CLEAR', 'Graphics.GL.Raw.Internal.Shared.GL_COPY', 'Graphics.GL.Raw.Internal.Shared.GL_COPY_INVERTED', 'Graphics.GL.Raw.Internal.Shared.GL_EQUIV', 'Graphics.GL.Raw.Internal.Shared.GL_INVERT', 'Graphics.GL.Raw.Internal.Shared.GL_NAND', 'Graphics.GL.Raw.Internal.Shared.GL_NOOP', 'Graphics.GL.Raw.Internal.Shared.GL_NOR', 'Graphics.GL.Raw.Internal.Shared.GL_OR', 'Graphics.GL.Raw.Internal.Shared.GL_OR_INVERTED', 'Graphics.GL.Raw.Internal.Shared.GL_OR_REVERSE', 'Graphics.GL.Raw.Internal.Shared.GL_SET', 'Graphics.GL.Raw.Internal.Shared.GL_XOR'.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glLogicOp.xhtml>
+
+
+glLogicOp :: MonadIO m => GLenum -> m ()
+glLogicOp = ffienumIOV glLogicOpFunPtr
+
+glLogicOpFunPtr :: FunPtr (GLenum -> IO ())
+glLogicOpFunPtr = unsafePerformIO (getProcAddress "glLogicOp")
+
+{-# NOINLINE glLogicOpFunPtr #-}
+
+-- | Usage: @'glMapBuffer' target access@
+--
+-- The parameter @target@ is a @BufferTargetARB@.
+--
+-- The parameter @access@ is a @BufferAccessARB@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glMapBuffer.xhtml>
+
+
+glMapBuffer :: MonadIO m => GLenum -> GLenum -> m (Ptr ())
+glMapBuffer = ffienumenumIOPtrV glMapBufferFunPtr
+
+glMapBufferFunPtr :: FunPtr (GLenum -> GLenum -> IO (Ptr ()))
+glMapBufferFunPtr = unsafePerformIO (getProcAddress "glMapBuffer")
+
+{-# NOINLINE glMapBufferFunPtr #-}
+
+-- | Usage: @'glMultiDrawArrays' mode first count drawcount@
+--
+-- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_LINES', 'Graphics.GL.Raw.Profile.Core32.GL_LINES_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Raw.Profile.Core32.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PATCHES', 'Graphics.GL.Raw.Extension.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_POINTS', 'Graphics.GL.Raw.Internal.Shared.GL_POLYGON', 'Graphics.GL.Raw.Internal.Shared.GL_QUADS', 'Graphics.GL.Raw.Extension.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Raw.Profile.Core32.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Raw.Profile.Core32.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
+--
+-- The length of @first@ should be @COMPSIZE(count)@.
+--
+-- The length of @count@ should be @COMPSIZE(drawcount)@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glMultiDrawArrays.xhtml>
+
+
+glMultiDrawArrays :: MonadIO m => GLenum -> Ptr GLint -> Ptr GLsizei -> GLsizei -> m ()
+glMultiDrawArrays = ffienumPtrintPtrsizeisizeiIOV glMultiDrawArraysFunPtr
+
+glMultiDrawArraysFunPtr :: FunPtr (GLenum -> Ptr GLint -> Ptr GLsizei -> GLsizei -> IO ())
+glMultiDrawArraysFunPtr = unsafePerformIO (getProcAddress "glMultiDrawArrays")
+
+{-# NOINLINE glMultiDrawArraysFunPtr #-}
+
+-- | Usage: @'glMultiDrawElements' mode count type indices drawcount@
+--
+-- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_LINES', 'Graphics.GL.Raw.Profile.Core32.GL_LINES_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Raw.Profile.Core32.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PATCHES', 'Graphics.GL.Raw.Extension.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_POINTS', 'Graphics.GL.Raw.Internal.Shared.GL_POLYGON', 'Graphics.GL.Raw.Internal.Shared.GL_QUADS', 'Graphics.GL.Raw.Extension.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Raw.Profile.Core32.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Raw.Profile.Core32.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Raw.Extension.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Raw.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
+--
+-- The parameter @type@ is a @DrawElementsType@.
+--
+-- The length of @count@ should be @COMPSIZE(drawcount)@.
+--
+-- The length of @indices@ should be @COMPSIZE(drawcount)@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glMultiDrawElements.xhtml>
+
+
+glMultiDrawElements :: MonadIO m => GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr ()) -> GLsizei -> m ()
+glMultiDrawElements = ffienumPtrsizeienumPtrPtrVsizeiIOV glMultiDrawElementsFunPtr
+
+glMultiDrawElementsFunPtr :: FunPtr (GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr ()) -> GLsizei -> IO ())
+glMultiDrawElementsFunPtr = unsafePerformIO (getProcAddress "glMultiDrawElements")
+
+{-# NOINLINE glMultiDrawElementsFunPtr #-}
+
+-- | Usage: @'glPixelStoref' pname param@
+--
+-- The parameter @pname@ is a @PixelStoreParameter@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_PACK_ALIGNMENT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PACK_IMAGE_DEPTH_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_PACK_IMAGE_HEIGHT', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PACK_IMAGE_HEIGHT_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PACK_LSB_FIRST', 'Graphics.GL.Raw.Extension.OML.Resample.GL_PACK_RESAMPLE_OML', 'Graphics.GL.Raw.Extension.SGIX.Resample.GL_PACK_RESAMPLE_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_PACK_ROW_LENGTH', 'Graphics.GL.Raw.Internal.Shared.GL_PACK_SKIP_IMAGES', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PACK_SKIP_IMAGES_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PACK_SKIP_PIXELS', 'Graphics.GL.Raw.Internal.Shared.GL_PACK_SKIP_ROWS', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PACK_SKIP_VOLUMES_SGIS', 'Graphics.GL.Raw.Extension.SGIX.Subsample.GL_PACK_SUBSAMPLE_RATE_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_PACK_SWAP_BYTES', 'Graphics.GL.Raw.Extension.SGIX.PixelTiles.GL_PIXEL_TILE_CACHE_SIZE_SGIX', 'Graphics.GL.Raw.Extension.SGIX.PixelTiles.GL_PIXEL_TILE_GRID_DEPTH_SGIX', 'Graphics.GL.Raw.Extension.SGIX.PixelTiles.GL_PIXEL_TILE_GRID_HEIGHT_SGIX', 'Graphics.GL.Raw.Extension.SGIX.PixelTiles.GL_PIXEL_TILE_GRID_WIDTH_SGIX', 'Graphics.GL.Raw.Extension.SGIX.PixelTiles.GL_PIXEL_TILE_HEIGHT_SGIX', 'Graphics.GL.Raw.Extension.SGIX.PixelTiles.GL_PIXEL_TILE_WIDTH_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_UNPACK_ALIGNMENT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_UNPACK_IMAGE_DEPTH_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_UNPACK_IMAGE_HEIGHT', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_UNPACK_IMAGE_HEIGHT_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNPACK_LSB_FIRST', 'Graphics.GL.Raw.Extension.OML.Resample.GL_UNPACK_RESAMPLE_OML', 'Graphics.GL.Raw.Extension.SGIX.Resample.GL_UNPACK_RESAMPLE_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_UNPACK_ROW_LENGTH', 'Graphics.GL.Raw.Extension.EXT.UnpackSubimage.GL_UNPACK_ROW_LENGTH_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNPACK_SKIP_IMAGES', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_UNPACK_SKIP_IMAGES_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNPACK_SKIP_PIXELS', 'Graphics.GL.Raw.Extension.EXT.UnpackSubimage.GL_UNPACK_SKIP_PIXELS_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNPACK_SKIP_ROWS', 'Graphics.GL.Raw.Extension.EXT.UnpackSubimage.GL_UNPACK_SKIP_ROWS_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_UNPACK_SKIP_VOLUMES_SGIS', 'Graphics.GL.Raw.Extension.SGIX.Subsample.GL_UNPACK_SUBSAMPLE_RATE_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_UNPACK_SWAP_BYTES'.
+--
+-- The parameter @param@ is a @CheckedFloat32@.
+
+
+glPixelStoref :: MonadIO m => GLenum -> GLfloat -> m ()
+glPixelStoref = ffienumfloatIOV glPixelStorefFunPtr
+
+glPixelStorefFunPtr :: FunPtr (GLenum -> GLfloat -> IO ())
+glPixelStorefFunPtr = unsafePerformIO (getProcAddress "glPixelStoref")
+
+{-# NOINLINE glPixelStorefFunPtr #-}
+
+-- | Usage: @'glPixelStorei' pname param@
+--
+-- The parameter @pname@ is a @PixelStoreParameter@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_PACK_ALIGNMENT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PACK_IMAGE_DEPTH_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_PACK_IMAGE_HEIGHT', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PACK_IMAGE_HEIGHT_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PACK_LSB_FIRST', 'Graphics.GL.Raw.Extension.OML.Resample.GL_PACK_RESAMPLE_OML', 'Graphics.GL.Raw.Extension.SGIX.Resample.GL_PACK_RESAMPLE_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_PACK_ROW_LENGTH', 'Graphics.GL.Raw.Internal.Shared.GL_PACK_SKIP_IMAGES', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PACK_SKIP_IMAGES_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PACK_SKIP_PIXELS', 'Graphics.GL.Raw.Internal.Shared.GL_PACK_SKIP_ROWS', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PACK_SKIP_VOLUMES_SGIS', 'Graphics.GL.Raw.Extension.SGIX.Subsample.GL_PACK_SUBSAMPLE_RATE_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_PACK_SWAP_BYTES', 'Graphics.GL.Raw.Extension.SGIX.PixelTiles.GL_PIXEL_TILE_CACHE_SIZE_SGIX', 'Graphics.GL.Raw.Extension.SGIX.PixelTiles.GL_PIXEL_TILE_GRID_DEPTH_SGIX', 'Graphics.GL.Raw.Extension.SGIX.PixelTiles.GL_PIXEL_TILE_GRID_HEIGHT_SGIX', 'Graphics.GL.Raw.Extension.SGIX.PixelTiles.GL_PIXEL_TILE_GRID_WIDTH_SGIX', 'Graphics.GL.Raw.Extension.SGIX.PixelTiles.GL_PIXEL_TILE_HEIGHT_SGIX', 'Graphics.GL.Raw.Extension.SGIX.PixelTiles.GL_PIXEL_TILE_WIDTH_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_UNPACK_ALIGNMENT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_UNPACK_IMAGE_DEPTH_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_UNPACK_IMAGE_HEIGHT', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_UNPACK_IMAGE_HEIGHT_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNPACK_LSB_FIRST', 'Graphics.GL.Raw.Extension.OML.Resample.GL_UNPACK_RESAMPLE_OML', 'Graphics.GL.Raw.Extension.SGIX.Resample.GL_UNPACK_RESAMPLE_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_UNPACK_ROW_LENGTH', 'Graphics.GL.Raw.Extension.EXT.UnpackSubimage.GL_UNPACK_ROW_LENGTH_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNPACK_SKIP_IMAGES', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_UNPACK_SKIP_IMAGES_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNPACK_SKIP_PIXELS', 'Graphics.GL.Raw.Extension.EXT.UnpackSubimage.GL_UNPACK_SKIP_PIXELS_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNPACK_SKIP_ROWS', 'Graphics.GL.Raw.Extension.EXT.UnpackSubimage.GL_UNPACK_SKIP_ROWS_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_UNPACK_SKIP_VOLUMES_SGIS', 'Graphics.GL.Raw.Extension.SGIX.Subsample.GL_UNPACK_SUBSAMPLE_RATE_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_UNPACK_SWAP_BYTES'.
+--
+-- The parameter @param@ is a @CheckedInt32@.
+
+
+glPixelStorei :: MonadIO m => GLenum -> GLint -> m ()
+glPixelStorei = ffienumintIOV glPixelStoreiFunPtr
+
+glPixelStoreiFunPtr :: FunPtr (GLenum -> GLint -> IO ())
+glPixelStoreiFunPtr = unsafePerformIO (getProcAddress "glPixelStorei")
+
+{-# NOINLINE glPixelStoreiFunPtr #-}
+
+-- | Usage: @'glPointParameterf' pname param@
+--
+-- The parameter @pname@ is a @PointParameterNameARB@.
+--
+-- The parameter @param@ is a @CheckedFloat32@.
+
+
+glPointParameterf :: MonadIO m => GLenum -> GLfloat -> m ()
+glPointParameterf = ffienumfloatIOV glPointParameterfFunPtr
+
+glPointParameterfFunPtr :: FunPtr (GLenum -> GLfloat -> IO ())
+glPointParameterfFunPtr = unsafePerformIO (getProcAddress "glPointParameterf")
+
+{-# NOINLINE glPointParameterfFunPtr #-}
+
+-- | Usage: @'glPointParameterfv' pname params@
+--
+-- The parameter @pname@ is a @PointParameterNameARB@.
+--
+-- The parameter @params@ is a @CheckedFloat32@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glPointParameterfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
+glPointParameterfv = ffienumPtrfloatIOV glPointParameterfvFunPtr
+
+glPointParameterfvFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
+glPointParameterfvFunPtr = unsafePerformIO (getProcAddress "glPointParameterfv")
+
+{-# NOINLINE glPointParameterfvFunPtr #-}
+
+-- | Usage: @'glPointParameteri' pname param@
+--
+-- The parameter @pname@ is a @PointParameterNameARB@.
+
+
+glPointParameteri :: MonadIO m => GLenum -> GLint -> m ()
+glPointParameteri = ffienumintIOV glPointParameteriFunPtr
+
+glPointParameteriFunPtr :: FunPtr (GLenum -> GLint -> IO ())
+glPointParameteriFunPtr = unsafePerformIO (getProcAddress "glPointParameteri")
+
+{-# NOINLINE glPointParameteriFunPtr #-}
+
+-- | Usage: @'glPointParameteriv' pname params@
+--
+-- The parameter @pname@ is a @PointParameterNameARB@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glPointParameteriv :: MonadIO m => GLenum -> Ptr GLint -> m ()
+glPointParameteriv = ffienumPtrintIOV glPointParameterivFunPtr
+
+glPointParameterivFunPtr :: FunPtr (GLenum -> Ptr GLint -> IO ())
+glPointParameterivFunPtr = unsafePerformIO (getProcAddress "glPointParameteriv")
+
+{-# NOINLINE glPointParameterivFunPtr #-}
+
+-- | Usage: @'glPointSize' size@
+--
+-- The parameter @size@ is a @CheckedFloat32@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glPointSize.xhtml>
+
+
+glPointSize :: MonadIO m => GLfloat -> m ()
+glPointSize = ffifloatIOV glPointSizeFunPtr
+
+glPointSizeFunPtr :: FunPtr (GLfloat -> IO ())
+glPointSizeFunPtr = unsafePerformIO (getProcAddress "glPointSize")
+
+{-# NOINLINE glPointSizeFunPtr #-}
+
+-- | Usage: @'glPolygonMode' face mode@
+--
+-- The parameter @face@ is a @MaterialFace@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_BACK', 'Graphics.GL.Raw.Internal.Shared.GL_FRONT', 'Graphics.GL.Raw.Internal.Shared.GL_FRONT_AND_BACK'.
+--
+-- The parameter @mode@ is a @PolygonMode@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FILL', 'Graphics.GL.Raw.Internal.Shared.GL_LINE', 'Graphics.GL.Raw.Internal.Shared.GL_POINT'.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glPolygonMode.xhtml>
+
+
+glPolygonMode :: MonadIO m => GLenum -> GLenum -> m ()
+glPolygonMode = ffienumenumIOV glPolygonModeFunPtr
+
+glPolygonModeFunPtr :: FunPtr (GLenum -> GLenum -> IO ())
+glPolygonModeFunPtr = unsafePerformIO (getProcAddress "glPolygonMode")
+
+{-# NOINLINE glPolygonModeFunPtr #-}
+
+-- | Usage: @'glPolygonOffset' factor units@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glPolygonOffset.xhtml>
+
+
+glPolygonOffset :: MonadIO m => GLfloat -> GLfloat -> m ()
+glPolygonOffset = ffifloatfloatIOV glPolygonOffsetFunPtr
+
+glPolygonOffsetFunPtr :: FunPtr (GLfloat -> GLfloat -> IO ())
+glPolygonOffsetFunPtr = unsafePerformIO (getProcAddress "glPolygonOffset")
+
+{-# NOINLINE glPolygonOffsetFunPtr #-}
+
+-- | Usage: @'glPrimitiveRestartIndex' index@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glPrimitiveRestartIndex.xhtml>
+
+
+glPrimitiveRestartIndex :: MonadIO m => GLuint -> m ()
+glPrimitiveRestartIndex = ffiuintIOV glPrimitiveRestartIndexFunPtr
+
+glPrimitiveRestartIndexFunPtr :: FunPtr (GLuint -> IO ())
+glPrimitiveRestartIndexFunPtr = unsafePerformIO (getProcAddress "glPrimitiveRestartIndex")
+
+{-# NOINLINE glPrimitiveRestartIndexFunPtr #-}
+
+-- | Usage: @'glReadBuffer' src@
+--
+-- The parameter @src@ is a @ReadBufferMode@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_AUX0', 'Graphics.GL.Raw.Internal.Shared.GL_AUX1', 'Graphics.GL.Raw.Internal.Shared.GL_AUX2', 'Graphics.GL.Raw.Internal.Shared.GL_AUX3', 'Graphics.GL.Raw.Internal.Shared.GL_BACK', 'Graphics.GL.Raw.Internal.Shared.GL_BACK_LEFT', 'Graphics.GL.Raw.Internal.Shared.GL_BACK_RIGHT', 'Graphics.GL.Raw.Internal.Shared.GL_FRONT', 'Graphics.GL.Raw.Internal.Shared.GL_FRONT_LEFT', 'Graphics.GL.Raw.Internal.Shared.GL_FRONT_RIGHT', 'Graphics.GL.Raw.Internal.Shared.GL_LEFT', 'Graphics.GL.Raw.Internal.Shared.GL_RIGHT'.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glReadBuffer.xhtml>
+
+
+glReadBuffer :: MonadIO m => GLenum -> m ()
+glReadBuffer = ffienumIOV glReadBufferFunPtr
+
+glReadBufferFunPtr :: FunPtr (GLenum -> IO ())
+glReadBufferFunPtr = unsafePerformIO (getProcAddress "glReadBuffer")
+
+{-# NOINLINE glReadBufferFunPtr #-}
+
+-- | Usage: @'glReadPixels' x y width height format type pixels@
+--
+-- The parameter @x@ is a @WinCoord@.
+--
+-- The parameter @y@ is a @WinCoord@.
+--
+-- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Raw.Extension.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_ALPHA', 'Graphics.GL.Raw.Internal.Shared.GL_BLUE', 'Graphics.GL.Raw.Extension.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Raw.Extension.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Raw.Internal.Shared.GL_GREEN', 'Graphics.GL.Raw.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Raw.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Raw.Internal.Shared.GL_RED', 'Graphics.GL.Raw.Extension.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_RGB', 'Graphics.GL.Raw.Internal.Shared.GL_RGBA', 'Graphics.GL.Raw.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Raw.Extension.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
+--
+-- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_BITMAP', 'Graphics.GL.Raw.Internal.Shared.GL_BYTE', 'Graphics.GL.Raw.Internal.Shared.GL_FLOAT', 'Graphics.GL.Raw.Internal.Shared.GL_INT', 'Graphics.GL.Raw.Internal.Shared.GL_SHORT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
+--
+-- The length of @pixels@ should be @COMPSIZE(format,type,width,height)@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glReadPixels.xhtml>
+
+
+glReadPixels :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
+glReadPixels = ffiintintsizeisizeienumenumPtrVIOV glReadPixelsFunPtr
+
+glReadPixelsFunPtr :: FunPtr (GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ())
+glReadPixelsFunPtr = unsafePerformIO (getProcAddress "glReadPixels")
+
+{-# NOINLINE glReadPixelsFunPtr #-}
+
+-- | Usage: @'glSampleCoverage' value invert@
+--
+-- The parameter @invert@ is a @Boolean@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FALSE', 'Graphics.GL.Raw.Internal.Shared.GL_TRUE'.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glSampleCoverage.xhtml>
+
+
+glSampleCoverage :: MonadIO m => GLfloat -> GLboolean -> m ()
+glSampleCoverage = ffifloatbooleanIOV glSampleCoverageFunPtr
+
+glSampleCoverageFunPtr :: FunPtr (GLfloat -> GLboolean -> IO ())
+glSampleCoverageFunPtr = unsafePerformIO (getProcAddress "glSampleCoverage")
+
+{-# NOINLINE glSampleCoverageFunPtr #-}
+
+-- | Usage: @'glScissor' x y width height@
+--
+-- The parameter @x@ is a @WinCoord@.
+--
+-- The parameter @y@ is a @WinCoord@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glScissor.xhtml>
+
+
+glScissor :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> m ()
+glScissor = ffiintintsizeisizeiIOV glScissorFunPtr
+
+glScissorFunPtr :: FunPtr (GLint -> GLint -> GLsizei -> GLsizei -> IO ())
+glScissorFunPtr = unsafePerformIO (getProcAddress "glScissor")
+
+{-# NOINLINE glScissorFunPtr #-}
+
+-- | Usage: @'glShaderSource' shader count string length@
+--
+-- The length of @string@ should be @count@.
+--
+-- The length of @length@ should be @count@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glShaderSource.xhtml>
+
+
+glShaderSource :: MonadIO m => GLuint -> GLsizei -> Ptr (Ptr GLchar) -> Ptr GLint -> m ()
+glShaderSource = ffiuintsizeiPtrPtrcharPtrintIOV glShaderSourceFunPtr
+
+glShaderSourceFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr (Ptr GLchar) -> Ptr GLint -> IO ())
+glShaderSourceFunPtr = unsafePerformIO (getProcAddress "glShaderSource")
+
+{-# NOINLINE glShaderSourceFunPtr #-}
+
+-- | Usage: @'glStencilFunc' func ref mask@
+--
+-- The parameter @func@ is a @StencilFunction@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_ALWAYS', 'Graphics.GL.Raw.Internal.Shared.GL_EQUAL', 'Graphics.GL.Raw.Internal.Shared.GL_GEQUAL', 'Graphics.GL.Raw.Internal.Shared.GL_GREATER', 'Graphics.GL.Raw.Internal.Shared.GL_LEQUAL', 'Graphics.GL.Raw.Internal.Shared.GL_LESS', 'Graphics.GL.Raw.Internal.Shared.GL_NEVER', 'Graphics.GL.Raw.Internal.Shared.GL_NOTEQUAL'.
+--
+-- The parameter @ref@ is a @StencilValue@.
+--
+-- The parameter @mask@ is a @MaskedStencilValue@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glStencilFunc.xhtml>
+
+
+glStencilFunc :: MonadIO m => GLenum -> GLint -> GLuint -> m ()
+glStencilFunc = ffienumintuintIOV glStencilFuncFunPtr
+
+glStencilFuncFunPtr :: FunPtr (GLenum -> GLint -> GLuint -> IO ())
+glStencilFuncFunPtr = unsafePerformIO (getProcAddress "glStencilFunc")
+
+{-# NOINLINE glStencilFuncFunPtr #-}
+
+-- | Usage: @'glStencilFuncSeparate' face func ref mask@
+--
+-- The parameter @face@ is a @StencilFaceDirection@.
+--
+-- The parameter @func@ is a @StencilFunction@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_ALWAYS', 'Graphics.GL.Raw.Internal.Shared.GL_EQUAL', 'Graphics.GL.Raw.Internal.Shared.GL_GEQUAL', 'Graphics.GL.Raw.Internal.Shared.GL_GREATER', 'Graphics.GL.Raw.Internal.Shared.GL_LEQUAL', 'Graphics.GL.Raw.Internal.Shared.GL_LESS', 'Graphics.GL.Raw.Internal.Shared.GL_NEVER', 'Graphics.GL.Raw.Internal.Shared.GL_NOTEQUAL'.
+--
+-- The parameter @ref@ is a @StencilValue@.
+--
+-- The parameter @mask@ is a @MaskedStencilValue@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glStencilFuncSeparate.xhtml>
+
+
+glStencilFuncSeparate :: MonadIO m => GLenum -> GLenum -> GLint -> GLuint -> m ()
+glStencilFuncSeparate = ffienumenumintuintIOV glStencilFuncSeparateFunPtr
+
+glStencilFuncSeparateFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> GLuint -> IO ())
+glStencilFuncSeparateFunPtr = unsafePerformIO (getProcAddress "glStencilFuncSeparate")
+
+{-# NOINLINE glStencilFuncSeparateFunPtr #-}
+
+-- | Usage: @'glStencilMask' mask@
+--
+-- The parameter @mask@ is a @MaskedStencilValue@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glStencilMask.xhtml>
+
+
+glStencilMask :: MonadIO m => GLuint -> m ()
+glStencilMask = ffiuintIOV glStencilMaskFunPtr
+
+glStencilMaskFunPtr :: FunPtr (GLuint -> IO ())
+glStencilMaskFunPtr = unsafePerformIO (getProcAddress "glStencilMask")
+
+{-# NOINLINE glStencilMaskFunPtr #-}
+
+-- | Usage: @'glStencilMaskSeparate' face mask@
+--
+-- The parameter @face@ is a @StencilFaceDirection@.
+--
+-- The parameter @mask@ is a @MaskedStencilValue@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glStencilMaskSeparate.xhtml>
+
+
+glStencilMaskSeparate :: MonadIO m => GLenum -> GLuint -> m ()
+glStencilMaskSeparate = ffienumuintIOV glStencilMaskSeparateFunPtr
+
+glStencilMaskSeparateFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
+glStencilMaskSeparateFunPtr = unsafePerformIO (getProcAddress "glStencilMaskSeparate")
+
+{-# NOINLINE glStencilMaskSeparateFunPtr #-}
+
+-- | Usage: @'glStencilOp' fail zfail zpass@
+--
+-- The parameter @fail@ is a @StencilOp@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_DECR', 'Graphics.GL.Raw.Internal.Shared.GL_INCR', 'Graphics.GL.Raw.Internal.Shared.GL_INVERT', 'Graphics.GL.Raw.Internal.Shared.GL_KEEP', 'Graphics.GL.Raw.Internal.Shared.GL_REPLACE', 'Graphics.GL.Raw.Internal.Shared.GL_ZERO'.
+--
+-- The parameter @zfail@ is a @StencilOp@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_DECR', 'Graphics.GL.Raw.Internal.Shared.GL_INCR', 'Graphics.GL.Raw.Internal.Shared.GL_INVERT', 'Graphics.GL.Raw.Internal.Shared.GL_KEEP', 'Graphics.GL.Raw.Internal.Shared.GL_REPLACE', 'Graphics.GL.Raw.Internal.Shared.GL_ZERO'.
+--
+-- The parameter @zpass@ is a @StencilOp@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_DECR', 'Graphics.GL.Raw.Internal.Shared.GL_INCR', 'Graphics.GL.Raw.Internal.Shared.GL_INVERT', 'Graphics.GL.Raw.Internal.Shared.GL_KEEP', 'Graphics.GL.Raw.Internal.Shared.GL_REPLACE', 'Graphics.GL.Raw.Internal.Shared.GL_ZERO'.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glStencilOp.xhtml>
+
+
+glStencilOp :: MonadIO m => GLenum -> GLenum -> GLenum -> m ()
+glStencilOp = ffienumenumenumIOV glStencilOpFunPtr
+
+glStencilOpFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> IO ())
+glStencilOpFunPtr = unsafePerformIO (getProcAddress "glStencilOp")
+
+{-# NOINLINE glStencilOpFunPtr #-}
+
+-- | Usage: @'glStencilOpSeparate' face sfail dpfail dppass@
+--
+-- The parameter @face@ is a @StencilFaceDirection@.
+--
+-- The parameter @sfail@ is a @StencilOp@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_DECR', 'Graphics.GL.Raw.Internal.Shared.GL_INCR', 'Graphics.GL.Raw.Internal.Shared.GL_INVERT', 'Graphics.GL.Raw.Internal.Shared.GL_KEEP', 'Graphics.GL.Raw.Internal.Shared.GL_REPLACE', 'Graphics.GL.Raw.Internal.Shared.GL_ZERO'.
+--
+-- The parameter @dpfail@ is a @StencilOp@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_DECR', 'Graphics.GL.Raw.Internal.Shared.GL_INCR', 'Graphics.GL.Raw.Internal.Shared.GL_INVERT', 'Graphics.GL.Raw.Internal.Shared.GL_KEEP', 'Graphics.GL.Raw.Internal.Shared.GL_REPLACE', 'Graphics.GL.Raw.Internal.Shared.GL_ZERO'.
+--
+-- The parameter @dppass@ is a @StencilOp@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_DECR', 'Graphics.GL.Raw.Internal.Shared.GL_INCR', 'Graphics.GL.Raw.Internal.Shared.GL_INVERT', 'Graphics.GL.Raw.Internal.Shared.GL_KEEP', 'Graphics.GL.Raw.Internal.Shared.GL_REPLACE', 'Graphics.GL.Raw.Internal.Shared.GL_ZERO'.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glStencilOpSeparate.xhtml>
+
+
+glStencilOpSeparate :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> m ()
+glStencilOpSeparate = ffienumenumenumenumIOV glStencilOpSeparateFunPtr
+
+glStencilOpSeparateFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLenum -> IO ())
+glStencilOpSeparateFunPtr = unsafePerformIO (getProcAddress "glStencilOpSeparate")
+
+{-# NOINLINE glStencilOpSeparateFunPtr #-}
+
+-- | Usage: @'glTexBuffer' target internalformat buffer@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glTexBuffer.xhtml>
+
+
+glTexBuffer :: MonadIO m => GLenum -> GLenum -> GLuint -> m ()
+glTexBuffer = ffienumenumuintIOV glTexBufferFunPtr
+
+glTexBufferFunPtr :: FunPtr (GLenum -> GLenum -> GLuint -> IO ())
+glTexBufferFunPtr = unsafePerformIO (getProcAddress "glTexBuffer")
+
+{-# NOINLINE glTexBufferFunPtr #-}
+
+-- | Usage: @'glTexImage1D' target level internalformat width border format type pixels@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @internalformat@ is a @TextureComponentCount@.
+--
+-- The parameter @border@ is a @CheckedInt32@.
+--
+-- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Raw.Extension.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_ALPHA', 'Graphics.GL.Raw.Internal.Shared.GL_BLUE', 'Graphics.GL.Raw.Extension.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Raw.Extension.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Raw.Internal.Shared.GL_GREEN', 'Graphics.GL.Raw.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Raw.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Raw.Internal.Shared.GL_RED', 'Graphics.GL.Raw.Extension.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_RGB', 'Graphics.GL.Raw.Internal.Shared.GL_RGBA', 'Graphics.GL.Raw.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Raw.Extension.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
+--
+-- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_BITMAP', 'Graphics.GL.Raw.Internal.Shared.GL_BYTE', 'Graphics.GL.Raw.Internal.Shared.GL_FLOAT', 'Graphics.GL.Raw.Internal.Shared.GL_INT', 'Graphics.GL.Raw.Internal.Shared.GL_SHORT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
+--
+-- The length of @pixels@ should be @COMPSIZE(format,type,width)@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glTexImage1D.xhtml>
+
+
+glTexImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> m ()
+glTexImage1D = ffienumintintsizeiintenumenumPtrVIOV glTexImage1DFunPtr
+
+glTexImage1DFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> IO ())
+glTexImage1DFunPtr = unsafePerformIO (getProcAddress "glTexImage1D")
+
+{-# NOINLINE glTexImage1DFunPtr #-}
+
+-- | Usage: @'glTexImage2D' target level internalformat width height border format type pixels@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @internalformat@ is a @TextureComponentCount@.
+--
+-- The parameter @border@ is a @CheckedInt32@.
+--
+-- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Raw.Extension.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_ALPHA', 'Graphics.GL.Raw.Internal.Shared.GL_BLUE', 'Graphics.GL.Raw.Extension.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Raw.Extension.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Raw.Internal.Shared.GL_GREEN', 'Graphics.GL.Raw.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Raw.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Raw.Internal.Shared.GL_RED', 'Graphics.GL.Raw.Extension.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_RGB', 'Graphics.GL.Raw.Internal.Shared.GL_RGBA', 'Graphics.GL.Raw.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Raw.Extension.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
+--
+-- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_BITMAP', 'Graphics.GL.Raw.Internal.Shared.GL_BYTE', 'Graphics.GL.Raw.Internal.Shared.GL_FLOAT', 'Graphics.GL.Raw.Internal.Shared.GL_INT', 'Graphics.GL.Raw.Internal.Shared.GL_SHORT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
+--
+-- The length of @pixels@ should be @COMPSIZE(format,type,width,height)@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glTexImage2D.xhtml>
+
+
+glTexImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> m ()
+glTexImage2D = ffienumintintsizeisizeiintenumenumPtrVIOV glTexImage2DFunPtr
+
+glTexImage2DFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> IO ())
+glTexImage2DFunPtr = unsafePerformIO (getProcAddress "glTexImage2D")
+
+{-# NOINLINE glTexImage2DFunPtr #-}
+
+-- | Usage: @'glTexImage3D' target level internalformat width height depth border format type pixels@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @internalformat@ is a @TextureComponentCount@.
+--
+-- The parameter @border@ is a @CheckedInt32@.
+--
+-- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Raw.Extension.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_ALPHA', 'Graphics.GL.Raw.Internal.Shared.GL_BLUE', 'Graphics.GL.Raw.Extension.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Raw.Extension.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Raw.Internal.Shared.GL_GREEN', 'Graphics.GL.Raw.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Raw.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Raw.Internal.Shared.GL_RED', 'Graphics.GL.Raw.Extension.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_RGB', 'Graphics.GL.Raw.Internal.Shared.GL_RGBA', 'Graphics.GL.Raw.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Raw.Extension.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
+--
+-- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_BITMAP', 'Graphics.GL.Raw.Internal.Shared.GL_BYTE', 'Graphics.GL.Raw.Internal.Shared.GL_FLOAT', 'Graphics.GL.Raw.Internal.Shared.GL_INT', 'Graphics.GL.Raw.Internal.Shared.GL_SHORT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
+--
+-- The length of @pixels@ should be @COMPSIZE(format,type,width,height,depth)@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glTexImage3D.xhtml>
+
+
+glTexImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> m ()
+glTexImage3D = ffienumintintsizeisizeisizeiintenumenumPtrVIOV glTexImage3DFunPtr
+
+glTexImage3DFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> IO ())
+glTexImage3DFunPtr = unsafePerformIO (getProcAddress "glTexImage3D")
+
+{-# NOINLINE glTexImage3DFunPtr #-}
+
+-- | Usage: @'glTexParameterIiv' target pname params@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @pname@ is a @TextureParameterName@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Raw.Extension.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_GENERATE_MIPMAP', 'Graphics.GL.Raw.Extension.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Raw.Extension.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Raw.Extension.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Raw.Extension.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Raw.Extension.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Raw.Extension.EXT.TextureObject.GL_TEXTURE_PRIORITY_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_WRAP_R', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_WRAP_R_OES', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_WRAP_T'.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glTexParameterIiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
+glTexParameterIiv = ffienumenumPtrintIOV glTexParameterIivFunPtr
+
+glTexParameterIivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+glTexParameterIivFunPtr = unsafePerformIO (getProcAddress "glTexParameterIiv")
+
+{-# NOINLINE glTexParameterIivFunPtr #-}
+
+-- | Usage: @'glTexParameterIuiv' target pname params@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @pname@ is a @TextureParameterName@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Raw.Extension.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_GENERATE_MIPMAP', 'Graphics.GL.Raw.Extension.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Raw.Extension.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Raw.Extension.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Raw.Extension.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Raw.Extension.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Raw.Extension.EXT.TextureObject.GL_TEXTURE_PRIORITY_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_WRAP_R', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_WRAP_R_OES', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_WRAP_T'.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glTexParameterIuiv :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()
+glTexParameterIuiv = ffienumenumPtruintIOV glTexParameterIuivFunPtr
+
+glTexParameterIuivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLuint -> IO ())
+glTexParameterIuivFunPtr = unsafePerformIO (getProcAddress "glTexParameterIuiv")
+
+{-# NOINLINE glTexParameterIuivFunPtr #-}
+
+-- | Usage: @'glTexParameterf' target pname param@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @pname@ is a @TextureParameterName@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Raw.Extension.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_GENERATE_MIPMAP', 'Graphics.GL.Raw.Extension.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Raw.Extension.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Raw.Extension.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Raw.Extension.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Raw.Extension.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Raw.Extension.EXT.TextureObject.GL_TEXTURE_PRIORITY_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_WRAP_R', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_WRAP_R_OES', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_WRAP_T'.
+--
+-- The parameter @param@ is a @CheckedFloat32@.
+
+
+glTexParameterf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()
+glTexParameterf = ffienumenumfloatIOV glTexParameterfFunPtr
+
+glTexParameterfFunPtr :: FunPtr (GLenum -> GLenum -> GLfloat -> IO ())
+glTexParameterfFunPtr = unsafePerformIO (getProcAddress "glTexParameterf")
+
+{-# NOINLINE glTexParameterfFunPtr #-}
+
+-- | Usage: @'glTexParameterfv' target pname params@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @pname@ is a @TextureParameterName@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Raw.Extension.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_GENERATE_MIPMAP', 'Graphics.GL.Raw.Extension.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Raw.Extension.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Raw.Extension.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Raw.Extension.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Raw.Extension.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Raw.Extension.EXT.TextureObject.GL_TEXTURE_PRIORITY_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_WRAP_R', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_WRAP_R_OES', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_WRAP_T'.
+--
+-- The parameter @params@ is a @CheckedFloat32@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glTexParameterfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
+glTexParameterfv = ffienumenumPtrfloatIOV glTexParameterfvFunPtr
+
+glTexParameterfvFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
+glTexParameterfvFunPtr = unsafePerformIO (getProcAddress "glTexParameterfv")
+
+{-# NOINLINE glTexParameterfvFunPtr #-}
+
+-- | Usage: @'glTexParameteri' target pname param@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @pname@ is a @TextureParameterName@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Raw.Extension.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_GENERATE_MIPMAP', 'Graphics.GL.Raw.Extension.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Raw.Extension.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Raw.Extension.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Raw.Extension.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Raw.Extension.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Raw.Extension.EXT.TextureObject.GL_TEXTURE_PRIORITY_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_WRAP_R', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_WRAP_R_OES', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_WRAP_T'.
+--
+-- The parameter @param@ is a @CheckedInt32@.
+
+
+glTexParameteri :: MonadIO m => GLenum -> GLenum -> GLint -> m ()
+glTexParameteri = ffienumenumintIOV glTexParameteriFunPtr
+
+glTexParameteriFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> IO ())
+glTexParameteriFunPtr = unsafePerformIO (getProcAddress "glTexParameteri")
+
+{-# NOINLINE glTexParameteriFunPtr #-}
+
+-- | Usage: @'glTexParameteriv' target pname params@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @pname@ is a @TextureParameterName@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Raw.Extension.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_GENERATE_MIPMAP', 'Graphics.GL.Raw.Extension.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Raw.Extension.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Raw.Extension.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Raw.Extension.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Raw.Extension.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Raw.Extension.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Raw.Extension.EXT.TextureObject.GL_TEXTURE_PRIORITY_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_WRAP_R', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_WRAP_R_OES', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_WRAP_T'.
+--
+-- The parameter @params@ is a @CheckedInt32@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glTexParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
+glTexParameteriv = ffienumenumPtrintIOV glTexParameterivFunPtr
+
+glTexParameterivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+glTexParameterivFunPtr = unsafePerformIO (getProcAddress "glTexParameteriv")
+
+{-# NOINLINE glTexParameterivFunPtr #-}
+
+-- | Usage: @'glTexSubImage1D' target level xoffset width format type pixels@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @xoffset@ is a @CheckedInt32@.
+--
+-- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Raw.Extension.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_ALPHA', 'Graphics.GL.Raw.Internal.Shared.GL_BLUE', 'Graphics.GL.Raw.Extension.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Raw.Extension.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Raw.Internal.Shared.GL_GREEN', 'Graphics.GL.Raw.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Raw.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Raw.Internal.Shared.GL_RED', 'Graphics.GL.Raw.Extension.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_RGB', 'Graphics.GL.Raw.Internal.Shared.GL_RGBA', 'Graphics.GL.Raw.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Raw.Extension.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
+--
+-- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_BITMAP', 'Graphics.GL.Raw.Internal.Shared.GL_BYTE', 'Graphics.GL.Raw.Internal.Shared.GL_FLOAT', 'Graphics.GL.Raw.Internal.Shared.GL_INT', 'Graphics.GL.Raw.Internal.Shared.GL_SHORT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
+--
+-- The length of @pixels@ should be @COMPSIZE(format,type,width)@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glTexSubImage1D.xhtml>
+
+
+glTexSubImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
+glTexSubImage1D = ffienumintintsizeienumenumPtrVIOV glTexSubImage1DFunPtr
+
+glTexSubImage1DFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ())
+glTexSubImage1DFunPtr = unsafePerformIO (getProcAddress "glTexSubImage1D")
+
+{-# NOINLINE glTexSubImage1DFunPtr #-}
+
+-- | Usage: @'glTexSubImage2D' target level xoffset yoffset width height format type pixels@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @xoffset@ is a @CheckedInt32@.
+--
+-- The parameter @yoffset@ is a @CheckedInt32@.
+--
+-- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Raw.Extension.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_ALPHA', 'Graphics.GL.Raw.Internal.Shared.GL_BLUE', 'Graphics.GL.Raw.Extension.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Raw.Extension.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Raw.Internal.Shared.GL_GREEN', 'Graphics.GL.Raw.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Raw.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Raw.Internal.Shared.GL_RED', 'Graphics.GL.Raw.Extension.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_RGB', 'Graphics.GL.Raw.Internal.Shared.GL_RGBA', 'Graphics.GL.Raw.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Raw.Extension.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
+--
+-- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_BITMAP', 'Graphics.GL.Raw.Internal.Shared.GL_BYTE', 'Graphics.GL.Raw.Internal.Shared.GL_FLOAT', 'Graphics.GL.Raw.Internal.Shared.GL_INT', 'Graphics.GL.Raw.Internal.Shared.GL_SHORT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
+--
+-- The length of @pixels@ should be @COMPSIZE(format,type,width,height)@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glTexSubImage2D.xhtml>
+
+
+glTexSubImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
+glTexSubImage2D = ffienumintintintsizeisizeienumenumPtrVIOV glTexSubImage2DFunPtr
+
+glTexSubImage2DFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ())
+glTexSubImage2DFunPtr = unsafePerformIO (getProcAddress "glTexSubImage2D")
+
+{-# NOINLINE glTexSubImage2DFunPtr #-}
+
+-- | Usage: @'glTexSubImage3D' target level xoffset yoffset zoffset width height depth format type pixels@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Raw.Extension.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Raw.Extension.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Raw.Extension.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Raw.Extension.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Raw.Extension.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Raw.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Raw.Extension.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @xoffset@ is a @CheckedInt32@.
+--
+-- The parameter @yoffset@ is a @CheckedInt32@.
+--
+-- The parameter @zoffset@ is a @CheckedInt32@.
+--
+-- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Raw.Extension.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_ALPHA', 'Graphics.GL.Raw.Internal.Shared.GL_BLUE', 'Graphics.GL.Raw.Extension.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Raw.Extension.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Raw.Internal.Shared.GL_GREEN', 'Graphics.GL.Raw.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Raw.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Raw.Internal.Shared.GL_RED', 'Graphics.GL.Raw.Extension.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_RGB', 'Graphics.GL.Raw.Internal.Shared.GL_RGBA', 'Graphics.GL.Raw.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Raw.Extension.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Raw.Extension.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
+--
+-- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_BITMAP', 'Graphics.GL.Raw.Internal.Shared.GL_BYTE', 'Graphics.GL.Raw.Internal.Shared.GL_FLOAT', 'Graphics.GL.Raw.Internal.Shared.GL_INT', 'Graphics.GL.Raw.Internal.Shared.GL_SHORT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Raw.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Raw.Extension.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
+--
+-- The length of @pixels@ should be @COMPSIZE(format,type,width,height,depth)@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glTexSubImage3D.xhtml>
+
+
+glTexSubImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
+glTexSubImage3D = ffienumintintintintsizeisizeisizeienumenumPtrVIOV glTexSubImage3DFunPtr
+
+glTexSubImage3DFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ())
+glTexSubImage3DFunPtr = unsafePerformIO (getProcAddress "glTexSubImage3D")
+
+{-# NOINLINE glTexSubImage3DFunPtr #-}
+
+-- | Usage: @'glTransformFeedbackVaryings' program count varyings bufferMode@
+--
+-- The length of @varyings@ should be @count@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glTransformFeedbackVaryings.xhtml>
+
+
+glTransformFeedbackVaryings :: MonadIO m => GLuint -> GLsizei -> Ptr (Ptr GLchar) -> GLenum -> m ()
+glTransformFeedbackVaryings = ffiuintsizeiPtrPtrcharenumIOV glTransformFeedbackVaryingsFunPtr
+
+glTransformFeedbackVaryingsFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr (Ptr GLchar) -> GLenum -> IO ())
+glTransformFeedbackVaryingsFunPtr = unsafePerformIO (getProcAddress "glTransformFeedbackVaryings")
+
+{-# NOINLINE glTransformFeedbackVaryingsFunPtr #-}
+
+-- | Usage: @'glUniform1f' location v0@
+
+
+glUniform1f :: MonadIO m => GLint -> GLfloat -> m ()
+glUniform1f = ffiintfloatIOV glUniform1fFunPtr
+
+glUniform1fFunPtr :: FunPtr (GLint -> GLfloat -> IO ())
+glUniform1fFunPtr = unsafePerformIO (getProcAddress "glUniform1f")
+
+{-# NOINLINE glUniform1fFunPtr #-}
+
+-- | Usage: @'glUniform1fv' location count value@
+--
+-- The length of @value@ should be @count*1@.
+
+
+glUniform1fv :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()
+glUniform1fv = ffiintsizeiPtrfloatIOV glUniform1fvFunPtr
+
+glUniform1fvFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLfloat -> IO ())
+glUniform1fvFunPtr = unsafePerformIO (getProcAddress "glUniform1fv")
+
+{-# NOINLINE glUniform1fvFunPtr #-}
+
+-- | Usage: @'glUniform1i' location v0@
+
+
+glUniform1i :: MonadIO m => GLint -> GLint -> m ()
+glUniform1i = ffiintintIOV glUniform1iFunPtr
+
+glUniform1iFunPtr :: FunPtr (GLint -> GLint -> IO ())
+glUniform1iFunPtr = unsafePerformIO (getProcAddress "glUniform1i")
+
+{-# NOINLINE glUniform1iFunPtr #-}
+
+-- | Usage: @'glUniform1iv' location count value@
+--
+-- The length of @value@ should be @count*1@.
+
+
+glUniform1iv :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()
+glUniform1iv = ffiintsizeiPtrintIOV glUniform1ivFunPtr
+
+glUniform1ivFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLint -> IO ())
+glUniform1ivFunPtr = unsafePerformIO (getProcAddress "glUniform1iv")
+
+{-# NOINLINE glUniform1ivFunPtr #-}
+
+-- | Usage: @'glUniform1ui' location v0@
+
+
+glUniform1ui :: MonadIO m => GLint -> GLuint -> m ()
+glUniform1ui = ffiintuintIOV glUniform1uiFunPtr
+
+glUniform1uiFunPtr :: FunPtr (GLint -> GLuint -> IO ())
+glUniform1uiFunPtr = unsafePerformIO (getProcAddress "glUniform1ui")
+
+{-# NOINLINE glUniform1uiFunPtr #-}
+
+-- | Usage: @'glUniform1uiv' location count value@
+--
+-- The length of @value@ should be @count*1@.
+
+
+glUniform1uiv :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()
+glUniform1uiv = ffiintsizeiPtruintIOV glUniform1uivFunPtr
+
+glUniform1uivFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLuint -> IO ())
+glUniform1uivFunPtr = unsafePerformIO (getProcAddress "glUniform1uiv")
+
+{-# NOINLINE glUniform1uivFunPtr #-}
+
+-- | Usage: @'glUniform2f' location v0 v1@
+
+
+glUniform2f :: MonadIO m => GLint -> GLfloat -> GLfloat -> m ()
+glUniform2f = ffiintfloatfloatIOV glUniform2fFunPtr
+
+glUniform2fFunPtr :: FunPtr (GLint -> GLfloat -> GLfloat -> IO ())
+glUniform2fFunPtr = unsafePerformIO (getProcAddress "glUniform2f")
+
+{-# NOINLINE glUniform2fFunPtr #-}
+
+-- | Usage: @'glUniform2fv' location count value@
+--
+-- The length of @value@ should be @count*2@.
+
+
+glUniform2fv :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()
+glUniform2fv = ffiintsizeiPtrfloatIOV glUniform2fvFunPtr
+
+glUniform2fvFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLfloat -> IO ())
+glUniform2fvFunPtr = unsafePerformIO (getProcAddress "glUniform2fv")
+
+{-# NOINLINE glUniform2fvFunPtr #-}
+
+-- | Usage: @'glUniform2i' location v0 v1@
+
+
+glUniform2i :: MonadIO m => GLint -> GLint -> GLint -> m ()
+glUniform2i = ffiintintintIOV glUniform2iFunPtr
+
+glUniform2iFunPtr :: FunPtr (GLint -> GLint -> GLint -> IO ())
+glUniform2iFunPtr = unsafePerformIO (getProcAddress "glUniform2i")
+
+{-# NOINLINE glUniform2iFunPtr #-}
+
+-- | Usage: @'glUniform2iv' location count value@
+--
+-- The length of @value@ should be @count*2@.
+
+
+glUniform2iv :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()
+glUniform2iv = ffiintsizeiPtrintIOV glUniform2ivFunPtr
+
+glUniform2ivFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLint -> IO ())
+glUniform2ivFunPtr = unsafePerformIO (getProcAddress "glUniform2iv")
+
+{-# NOINLINE glUniform2ivFunPtr #-}
+
+-- | Usage: @'glUniform2ui' location v0 v1@
+
+
+glUniform2ui :: MonadIO m => GLint -> GLuint -> GLuint -> m ()
+glUniform2ui = ffiintuintuintIOV glUniform2uiFunPtr
+
+glUniform2uiFunPtr :: FunPtr (GLint -> GLuint -> GLuint -> IO ())
+glUniform2uiFunPtr = unsafePerformIO (getProcAddress "glUniform2ui")
+
+{-# NOINLINE glUniform2uiFunPtr #-}
+
+-- | Usage: @'glUniform2uiv' location count value@
+--
+-- The length of @value@ should be @count*2@.
+
+
+glUniform2uiv :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()
+glUniform2uiv = ffiintsizeiPtruintIOV glUniform2uivFunPtr
+
+glUniform2uivFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLuint -> IO ())
+glUniform2uivFunPtr = unsafePerformIO (getProcAddress "glUniform2uiv")
+
+{-# NOINLINE glUniform2uivFunPtr #-}
+
+-- | Usage: @'glUniform3f' location v0 v1 v2@
+
+
+glUniform3f :: MonadIO m => GLint -> GLfloat -> GLfloat -> GLfloat -> m ()
+glUniform3f = ffiintfloatfloatfloatIOV glUniform3fFunPtr
+
+glUniform3fFunPtr :: FunPtr (GLint -> GLfloat -> GLfloat -> GLfloat -> IO ())
+glUniform3fFunPtr = unsafePerformIO (getProcAddress "glUniform3f")
+
+{-# NOINLINE glUniform3fFunPtr #-}
+
+-- | Usage: @'glUniform3fv' location count value@
+--
+-- The length of @value@ should be @count*3@.
+
+
+glUniform3fv :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()
+glUniform3fv = ffiintsizeiPtrfloatIOV glUniform3fvFunPtr
+
+glUniform3fvFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLfloat -> IO ())
+glUniform3fvFunPtr = unsafePerformIO (getProcAddress "glUniform3fv")
+
+{-# NOINLINE glUniform3fvFunPtr #-}
+
+-- | Usage: @'glUniform3i' location v0 v1 v2@
+
+
+glUniform3i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()
+glUniform3i = ffiintintintintIOV glUniform3iFunPtr
+
+glUniform3iFunPtr :: FunPtr (GLint -> GLint -> GLint -> GLint -> IO ())
+glUniform3iFunPtr = unsafePerformIO (getProcAddress "glUniform3i")
+
+{-# NOINLINE glUniform3iFunPtr #-}
+
+-- | Usage: @'glUniform3iv' location count value@
+--
+-- The length of @value@ should be @count*3@.
+
+
+glUniform3iv :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()
+glUniform3iv = ffiintsizeiPtrintIOV glUniform3ivFunPtr
+
+glUniform3ivFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLint -> IO ())
+glUniform3ivFunPtr = unsafePerformIO (getProcAddress "glUniform3iv")
+
+{-# NOINLINE glUniform3ivFunPtr #-}
+
+-- | Usage: @'glUniform3ui' location v0 v1 v2@
+
+
+glUniform3ui :: MonadIO m => GLint -> GLuint -> GLuint -> GLuint -> m ()
+glUniform3ui = ffiintuintuintuintIOV glUniform3uiFunPtr
+
+glUniform3uiFunPtr :: FunPtr (GLint -> GLuint -> GLuint -> GLuint -> IO ())
+glUniform3uiFunPtr = unsafePerformIO (getProcAddress "glUniform3ui")
+
+{-# NOINLINE glUniform3uiFunPtr #-}
+
+-- | Usage: @'glUniform3uiv' location count value@
+--
+-- The length of @value@ should be @count*3@.
+
+
+glUniform3uiv :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()
+glUniform3uiv = ffiintsizeiPtruintIOV glUniform3uivFunPtr
+
+glUniform3uivFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLuint -> IO ())
+glUniform3uivFunPtr = unsafePerformIO (getProcAddress "glUniform3uiv")
+
+{-# NOINLINE glUniform3uivFunPtr #-}
+
+-- | Usage: @'glUniform4f' location v0 v1 v2 v3@
+
+
+glUniform4f :: MonadIO m => GLint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
+glUniform4f = ffiintfloatfloatfloatfloatIOV glUniform4fFunPtr
+
+glUniform4fFunPtr :: FunPtr (GLint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+glUniform4fFunPtr = unsafePerformIO (getProcAddress "glUniform4f")
+
+{-# NOINLINE glUniform4fFunPtr #-}
+
+-- | Usage: @'glUniform4fv' location count value@
+--
+-- The length of @value@ should be @count*4@.
+
+
+glUniform4fv :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()
+glUniform4fv = ffiintsizeiPtrfloatIOV glUniform4fvFunPtr
+
+glUniform4fvFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLfloat -> IO ())
+glUniform4fvFunPtr = unsafePerformIO (getProcAddress "glUniform4fv")
+
+{-# NOINLINE glUniform4fvFunPtr #-}
+
+-- | Usage: @'glUniform4i' location v0 v1 v2 v3@
+
+
+glUniform4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> GLint -> m ()
+glUniform4i = ffiintintintintintIOV glUniform4iFunPtr
+
+glUniform4iFunPtr :: FunPtr (GLint -> GLint -> GLint -> GLint -> GLint -> IO ())
+glUniform4iFunPtr = unsafePerformIO (getProcAddress "glUniform4i")
+
+{-# NOINLINE glUniform4iFunPtr #-}
+
+-- | Usage: @'glUniform4iv' location count value@
+--
+-- The length of @value@ should be @count*4@.
+
+
+glUniform4iv :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()
+glUniform4iv = ffiintsizeiPtrintIOV glUniform4ivFunPtr
+
+glUniform4ivFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLint -> IO ())
+glUniform4ivFunPtr = unsafePerformIO (getProcAddress "glUniform4iv")
+
+{-# NOINLINE glUniform4ivFunPtr #-}
+
+-- | Usage: @'glUniform4ui' location v0 v1 v2 v3@
+
+
+glUniform4ui :: MonadIO m => GLint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
+glUniform4ui = ffiintuintuintuintuintIOV glUniform4uiFunPtr
+
+glUniform4uiFunPtr :: FunPtr (GLint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ())
+glUniform4uiFunPtr = unsafePerformIO (getProcAddress "glUniform4ui")
+
+{-# NOINLINE glUniform4uiFunPtr #-}
+
+-- | Usage: @'glUniform4uiv' location count value@
+--
+-- The length of @value@ should be @count*4@.
+
+
+glUniform4uiv :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()
+glUniform4uiv = ffiintsizeiPtruintIOV glUniform4uivFunPtr
+
+glUniform4uivFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLuint -> IO ())
+glUniform4uivFunPtr = unsafePerformIO (getProcAddress "glUniform4uiv")
+
+{-# NOINLINE glUniform4uivFunPtr #-}
+
+-- | Usage: @'glUniformMatrix2fv' location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FALSE', 'Graphics.GL.Raw.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count*4@.
+
+
+glUniformMatrix2fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
+glUniformMatrix2fv = ffiintsizeibooleanPtrfloatIOV glUniformMatrix2fvFunPtr
+
+glUniformMatrix2fvFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+glUniformMatrix2fvFunPtr = unsafePerformIO (getProcAddress "glUniformMatrix2fv")
+
+{-# NOINLINE glUniformMatrix2fvFunPtr #-}
+
+-- | Usage: @'glUniformMatrix2x3fv' location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FALSE', 'Graphics.GL.Raw.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count*6@.
+
+
+glUniformMatrix2x3fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
+glUniformMatrix2x3fv = ffiintsizeibooleanPtrfloatIOV glUniformMatrix2x3fvFunPtr
+
+glUniformMatrix2x3fvFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+glUniformMatrix2x3fvFunPtr = unsafePerformIO (getProcAddress "glUniformMatrix2x3fv")
+
+{-# NOINLINE glUniformMatrix2x3fvFunPtr #-}
+
+-- | Usage: @'glUniformMatrix2x4fv' location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FALSE', 'Graphics.GL.Raw.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count*8@.
+
+
+glUniformMatrix2x4fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
+glUniformMatrix2x4fv = ffiintsizeibooleanPtrfloatIOV glUniformMatrix2x4fvFunPtr
+
+glUniformMatrix2x4fvFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+glUniformMatrix2x4fvFunPtr = unsafePerformIO (getProcAddress "glUniformMatrix2x4fv")
+
+{-# NOINLINE glUniformMatrix2x4fvFunPtr #-}
+
+-- | Usage: @'glUniformMatrix3fv' location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FALSE', 'Graphics.GL.Raw.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count*9@.
+
+
+glUniformMatrix3fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
+glUniformMatrix3fv = ffiintsizeibooleanPtrfloatIOV glUniformMatrix3fvFunPtr
+
+glUniformMatrix3fvFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+glUniformMatrix3fvFunPtr = unsafePerformIO (getProcAddress "glUniformMatrix3fv")
+
+{-# NOINLINE glUniformMatrix3fvFunPtr #-}
+
+-- | Usage: @'glUniformMatrix3x2fv' location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FALSE', 'Graphics.GL.Raw.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count*6@.
+
+
+glUniformMatrix3x2fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
+glUniformMatrix3x2fv = ffiintsizeibooleanPtrfloatIOV glUniformMatrix3x2fvFunPtr
+
+glUniformMatrix3x2fvFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+glUniformMatrix3x2fvFunPtr = unsafePerformIO (getProcAddress "glUniformMatrix3x2fv")
+
+{-# NOINLINE glUniformMatrix3x2fvFunPtr #-}
+
+-- | Usage: @'glUniformMatrix3x4fv' location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FALSE', 'Graphics.GL.Raw.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count*12@.
+
+
+glUniformMatrix3x4fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
+glUniformMatrix3x4fv = ffiintsizeibooleanPtrfloatIOV glUniformMatrix3x4fvFunPtr
+
+glUniformMatrix3x4fvFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+glUniformMatrix3x4fvFunPtr = unsafePerformIO (getProcAddress "glUniformMatrix3x4fv")
+
+{-# NOINLINE glUniformMatrix3x4fvFunPtr #-}
+
+-- | Usage: @'glUniformMatrix4fv' location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FALSE', 'Graphics.GL.Raw.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count*16@.
+
+
+glUniformMatrix4fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
+glUniformMatrix4fv = ffiintsizeibooleanPtrfloatIOV glUniformMatrix4fvFunPtr
+
+glUniformMatrix4fvFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+glUniformMatrix4fvFunPtr = unsafePerformIO (getProcAddress "glUniformMatrix4fv")
+
+{-# NOINLINE glUniformMatrix4fvFunPtr #-}
+
+-- | Usage: @'glUniformMatrix4x2fv' location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FALSE', 'Graphics.GL.Raw.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count*8@.
+
+
+glUniformMatrix4x2fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
+glUniformMatrix4x2fv = ffiintsizeibooleanPtrfloatIOV glUniformMatrix4x2fvFunPtr
+
+glUniformMatrix4x2fvFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+glUniformMatrix4x2fvFunPtr = unsafePerformIO (getProcAddress "glUniformMatrix4x2fv")
+
+{-# NOINLINE glUniformMatrix4x2fvFunPtr #-}
+
+-- | Usage: @'glUniformMatrix4x3fv' location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FALSE', 'Graphics.GL.Raw.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count*12@.
+
+
+glUniformMatrix4x3fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
+glUniformMatrix4x3fv = ffiintsizeibooleanPtrfloatIOV glUniformMatrix4x3fvFunPtr
+
+glUniformMatrix4x3fvFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+glUniformMatrix4x3fvFunPtr = unsafePerformIO (getProcAddress "glUniformMatrix4x3fv")
+
+{-# NOINLINE glUniformMatrix4x3fvFunPtr #-}
+
+-- | Usage: @'glUnmapBuffer' target@
+--
+-- The parameter @target@ is a @BufferTargetARB@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glUnmapBuffer.xhtml>
+
+
+glUnmapBuffer :: MonadIO m => GLenum -> m GLboolean
+glUnmapBuffer = ffienumIOboolean glUnmapBufferFunPtr
+
+glUnmapBufferFunPtr :: FunPtr (GLenum -> IO GLboolean)
+glUnmapBufferFunPtr = unsafePerformIO (getProcAddress "glUnmapBuffer")
+
+{-# NOINLINE glUnmapBufferFunPtr #-}
+
+-- | Usage: @'glUseProgram' program@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glUseProgram.xhtml>
+
+
+glUseProgram :: MonadIO m => GLuint -> m ()
+glUseProgram = ffiuintIOV glUseProgramFunPtr
+
+glUseProgramFunPtr :: FunPtr (GLuint -> IO ())
+glUseProgramFunPtr = unsafePerformIO (getProcAddress "glUseProgram")
+
+{-# NOINLINE glUseProgramFunPtr #-}
+
+-- | Usage: @'glValidateProgram' program@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glValidateProgram.xhtml>
+
+
+glValidateProgram :: MonadIO m => GLuint -> m ()
+glValidateProgram = ffiuintIOV glValidateProgramFunPtr
+
+glValidateProgramFunPtr :: FunPtr (GLuint -> IO ())
+glValidateProgramFunPtr = unsafePerformIO (getProcAddress "glValidateProgram")
+
+{-# NOINLINE glValidateProgramFunPtr #-}
+
+-- | Usage: @'glVertexAttrib1d' index x@
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glVertexAttrib1dv'.
+
+
+glVertexAttrib1d :: MonadIO m => GLuint -> GLdouble -> m ()
+glVertexAttrib1d = ffiuintdoubleIOV glVertexAttrib1dFunPtr
+
+glVertexAttrib1dFunPtr :: FunPtr (GLuint -> GLdouble -> IO ())
+glVertexAttrib1dFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib1d")
+
+{-# NOINLINE glVertexAttrib1dFunPtr #-}
+
+-- | Usage: @'glVertexAttrib1dv' index v@
+--
+-- The length of @v@ should be @1@.
+
+
+glVertexAttrib1dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()
+glVertexAttrib1dv = ffiuintPtrdoubleIOV glVertexAttrib1dvFunPtr
+
+glVertexAttrib1dvFunPtr :: FunPtr (GLuint -> Ptr GLdouble -> IO ())
+glVertexAttrib1dvFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib1dv")
+
+{-# NOINLINE glVertexAttrib1dvFunPtr #-}
+
+-- | Usage: @'glVertexAttrib1f' index x@
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glVertexAttrib1fv'.
+
+
+glVertexAttrib1f :: MonadIO m => GLuint -> GLfloat -> m ()
+glVertexAttrib1f = ffiuintfloatIOV glVertexAttrib1fFunPtr
+
+glVertexAttrib1fFunPtr :: FunPtr (GLuint -> GLfloat -> IO ())
+glVertexAttrib1fFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib1f")
+
+{-# NOINLINE glVertexAttrib1fFunPtr #-}
+
+-- | Usage: @'glVertexAttrib1fv' index v@
+--
+-- The length of @v@ should be @1@.
+
+
+glVertexAttrib1fv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()
+glVertexAttrib1fv = ffiuintPtrfloatIOV glVertexAttrib1fvFunPtr
+
+glVertexAttrib1fvFunPtr :: FunPtr (GLuint -> Ptr GLfloat -> IO ())
+glVertexAttrib1fvFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib1fv")
+
+{-# NOINLINE glVertexAttrib1fvFunPtr #-}
+
+-- | Usage: @'glVertexAttrib1s' index x@
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glVertexAttrib1sv'.
+
+
+glVertexAttrib1s :: MonadIO m => GLuint -> GLshort -> m ()
+glVertexAttrib1s = ffiuintshortIOV glVertexAttrib1sFunPtr
+
+glVertexAttrib1sFunPtr :: FunPtr (GLuint -> GLshort -> IO ())
+glVertexAttrib1sFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib1s")
+
+{-# NOINLINE glVertexAttrib1sFunPtr #-}
+
+-- | Usage: @'glVertexAttrib1sv' index v@
+--
+-- The length of @v@ should be @1@.
+
+
+glVertexAttrib1sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()
+glVertexAttrib1sv = ffiuintPtrshortIOV glVertexAttrib1svFunPtr
+
+glVertexAttrib1svFunPtr :: FunPtr (GLuint -> Ptr GLshort -> IO ())
+glVertexAttrib1svFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib1sv")
+
+{-# NOINLINE glVertexAttrib1svFunPtr #-}
+
+-- | Usage: @'glVertexAttrib2d' index x y@
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glVertexAttrib2dv'.
+
+
+glVertexAttrib2d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> m ()
+glVertexAttrib2d = ffiuintdoubledoubleIOV glVertexAttrib2dFunPtr
+
+glVertexAttrib2dFunPtr :: FunPtr (GLuint -> GLdouble -> GLdouble -> IO ())
+glVertexAttrib2dFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib2d")
+
+{-# NOINLINE glVertexAttrib2dFunPtr #-}
+
+-- | Usage: @'glVertexAttrib2dv' index v@
+--
+-- The length of @v@ should be @2@.
+
+
+glVertexAttrib2dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()
+glVertexAttrib2dv = ffiuintPtrdoubleIOV glVertexAttrib2dvFunPtr
+
+glVertexAttrib2dvFunPtr :: FunPtr (GLuint -> Ptr GLdouble -> IO ())
+glVertexAttrib2dvFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib2dv")
+
+{-# NOINLINE glVertexAttrib2dvFunPtr #-}
+
+-- | Usage: @'glVertexAttrib2f' index x y@
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glVertexAttrib2fv'.
+
+
+glVertexAttrib2f :: MonadIO m => GLuint -> GLfloat -> GLfloat -> m ()
+glVertexAttrib2f = ffiuintfloatfloatIOV glVertexAttrib2fFunPtr
+
+glVertexAttrib2fFunPtr :: FunPtr (GLuint -> GLfloat -> GLfloat -> IO ())
+glVertexAttrib2fFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib2f")
+
+{-# NOINLINE glVertexAttrib2fFunPtr #-}
+
+-- | Usage: @'glVertexAttrib2fv' index v@
+--
+-- The length of @v@ should be @2@.
+
+
+glVertexAttrib2fv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()
+glVertexAttrib2fv = ffiuintPtrfloatIOV glVertexAttrib2fvFunPtr
+
+glVertexAttrib2fvFunPtr :: FunPtr (GLuint -> Ptr GLfloat -> IO ())
+glVertexAttrib2fvFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib2fv")
+
+{-# NOINLINE glVertexAttrib2fvFunPtr #-}
+
+-- | Usage: @'glVertexAttrib2s' index x y@
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glVertexAttrib2sv'.
+
+
+glVertexAttrib2s :: MonadIO m => GLuint -> GLshort -> GLshort -> m ()
+glVertexAttrib2s = ffiuintshortshortIOV glVertexAttrib2sFunPtr
+
+glVertexAttrib2sFunPtr :: FunPtr (GLuint -> GLshort -> GLshort -> IO ())
+glVertexAttrib2sFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib2s")
+
+{-# NOINLINE glVertexAttrib2sFunPtr #-}
+
+-- | Usage: @'glVertexAttrib2sv' index v@
+--
+-- The length of @v@ should be @2@.
+
+
+glVertexAttrib2sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()
+glVertexAttrib2sv = ffiuintPtrshortIOV glVertexAttrib2svFunPtr
+
+glVertexAttrib2svFunPtr :: FunPtr (GLuint -> Ptr GLshort -> IO ())
+glVertexAttrib2svFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib2sv")
+
+{-# NOINLINE glVertexAttrib2svFunPtr #-}
+
+-- | Usage: @'glVertexAttrib3d' index x y z@
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glVertexAttrib3dv'.
+
+
+glVertexAttrib3d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> m ()
+glVertexAttrib3d = ffiuintdoubledoubledoubleIOV glVertexAttrib3dFunPtr
+
+glVertexAttrib3dFunPtr :: FunPtr (GLuint -> GLdouble -> GLdouble -> GLdouble -> IO ())
+glVertexAttrib3dFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib3d")
+
+{-# NOINLINE glVertexAttrib3dFunPtr #-}
+
+-- | Usage: @'glVertexAttrib3dv' index v@
+--
+-- The length of @v@ should be @3@.
+
+
+glVertexAttrib3dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()
+glVertexAttrib3dv = ffiuintPtrdoubleIOV glVertexAttrib3dvFunPtr
+
+glVertexAttrib3dvFunPtr :: FunPtr (GLuint -> Ptr GLdouble -> IO ())
+glVertexAttrib3dvFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib3dv")
+
+{-# NOINLINE glVertexAttrib3dvFunPtr #-}
+
+-- | Usage: @'glVertexAttrib3f' index x y z@
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glVertexAttrib3fv'.
+
+
+glVertexAttrib3f :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> m ()
+glVertexAttrib3f = ffiuintfloatfloatfloatIOV glVertexAttrib3fFunPtr
+
+glVertexAttrib3fFunPtr :: FunPtr (GLuint -> GLfloat -> GLfloat -> GLfloat -> IO ())
+glVertexAttrib3fFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib3f")
+
+{-# NOINLINE glVertexAttrib3fFunPtr #-}
+
+-- | Usage: @'glVertexAttrib3fv' index v@
+--
+-- The length of @v@ should be @3@.
+
+
+glVertexAttrib3fv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()
+glVertexAttrib3fv = ffiuintPtrfloatIOV glVertexAttrib3fvFunPtr
+
+glVertexAttrib3fvFunPtr :: FunPtr (GLuint -> Ptr GLfloat -> IO ())
+glVertexAttrib3fvFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib3fv")
+
+{-# NOINLINE glVertexAttrib3fvFunPtr #-}
+
+-- | Usage: @'glVertexAttrib3s' index x y z@
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glVertexAttrib3sv'.
+
+
+glVertexAttrib3s :: MonadIO m => GLuint -> GLshort -> GLshort -> GLshort -> m ()
+glVertexAttrib3s = ffiuintshortshortshortIOV glVertexAttrib3sFunPtr
+
+glVertexAttrib3sFunPtr :: FunPtr (GLuint -> GLshort -> GLshort -> GLshort -> IO ())
+glVertexAttrib3sFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib3s")
+
+{-# NOINLINE glVertexAttrib3sFunPtr #-}
+
+-- | Usage: @'glVertexAttrib3sv' index v@
+--
+-- The length of @v@ should be @3@.
+
+
+glVertexAttrib3sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()
+glVertexAttrib3sv = ffiuintPtrshortIOV glVertexAttrib3svFunPtr
+
+glVertexAttrib3svFunPtr :: FunPtr (GLuint -> Ptr GLshort -> IO ())
+glVertexAttrib3svFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib3sv")
+
+{-# NOINLINE glVertexAttrib3svFunPtr #-}
+
+-- | Usage: @'glVertexAttrib4Nbv' index v@
+--
+-- The length of @v@ should be @4@.
+
+
+glVertexAttrib4Nbv :: MonadIO m => GLuint -> Ptr GLbyte -> m ()
+glVertexAttrib4Nbv = ffiuintPtrbyteIOV glVertexAttrib4NbvFunPtr
+
+glVertexAttrib4NbvFunPtr :: FunPtr (GLuint -> Ptr GLbyte -> IO ())
+glVertexAttrib4NbvFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4Nbv")
+
+{-# NOINLINE glVertexAttrib4NbvFunPtr #-}
+
+-- | Usage: @'glVertexAttrib4Niv' index v@
+--
+-- The length of @v@ should be @4@.
+
+
+glVertexAttrib4Niv :: MonadIO m => GLuint -> Ptr GLint -> m ()
+glVertexAttrib4Niv = ffiuintPtrintIOV glVertexAttrib4NivFunPtr
+
+glVertexAttrib4NivFunPtr :: FunPtr (GLuint -> Ptr GLint -> IO ())
+glVertexAttrib4NivFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4Niv")
+
+{-# NOINLINE glVertexAttrib4NivFunPtr #-}
+
+-- | Usage: @'glVertexAttrib4Nsv' index v@
+--
+-- The length of @v@ should be @4@.
+
+
+glVertexAttrib4Nsv :: MonadIO m => GLuint -> Ptr GLshort -> m ()
+glVertexAttrib4Nsv = ffiuintPtrshortIOV glVertexAttrib4NsvFunPtr
+
+glVertexAttrib4NsvFunPtr :: FunPtr (GLuint -> Ptr GLshort -> IO ())
+glVertexAttrib4NsvFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4Nsv")
+
+{-# NOINLINE glVertexAttrib4NsvFunPtr #-}
+
+-- | Usage: @'glVertexAttrib4Nub' index x y z w@
+
+
+glVertexAttrib4Nub :: MonadIO m => GLuint -> GLubyte -> GLubyte -> GLubyte -> GLubyte -> m ()
+glVertexAttrib4Nub = ffiuintubyteubyteubyteubyteIOV glVertexAttrib4NubFunPtr
+
+glVertexAttrib4NubFunPtr :: FunPtr (GLuint -> GLubyte -> GLubyte -> GLubyte -> GLubyte -> IO ())
+glVertexAttrib4NubFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4Nub")
+
+{-# NOINLINE glVertexAttrib4NubFunPtr #-}
+
+-- | Usage: @'glVertexAttrib4Nubv' index v@
+--
+-- The length of @v@ should be @4@.
+
+
+glVertexAttrib4Nubv :: MonadIO m => GLuint -> Ptr GLubyte -> m ()
+glVertexAttrib4Nubv = ffiuintPtrubyteIOV glVertexAttrib4NubvFunPtr
+
+glVertexAttrib4NubvFunPtr :: FunPtr (GLuint -> Ptr GLubyte -> IO ())
+glVertexAttrib4NubvFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4Nubv")
+
+{-# NOINLINE glVertexAttrib4NubvFunPtr #-}
+
+-- | Usage: @'glVertexAttrib4Nuiv' index v@
+--
+-- The length of @v@ should be @4@.
+
+
+glVertexAttrib4Nuiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()
+glVertexAttrib4Nuiv = ffiuintPtruintIOV glVertexAttrib4NuivFunPtr
+
+glVertexAttrib4NuivFunPtr :: FunPtr (GLuint -> Ptr GLuint -> IO ())
+glVertexAttrib4NuivFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4Nuiv")
+
+{-# NOINLINE glVertexAttrib4NuivFunPtr #-}
+
+-- | Usage: @'glVertexAttrib4Nusv' index v@
+--
+-- The length of @v@ should be @4@.
+
+
+glVertexAttrib4Nusv :: MonadIO m => GLuint -> Ptr GLushort -> m ()
+glVertexAttrib4Nusv = ffiuintPtrushortIOV glVertexAttrib4NusvFunPtr
+
+glVertexAttrib4NusvFunPtr :: FunPtr (GLuint -> Ptr GLushort -> IO ())
+glVertexAttrib4NusvFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4Nusv")
+
+{-# NOINLINE glVertexAttrib4NusvFunPtr #-}
+
+-- | Usage: @'glVertexAttrib4bv' index v@
+--
+-- The length of @v@ should be @4@.
+
+
+glVertexAttrib4bv :: MonadIO m => GLuint -> Ptr GLbyte -> m ()
+glVertexAttrib4bv = ffiuintPtrbyteIOV glVertexAttrib4bvFunPtr
+
+glVertexAttrib4bvFunPtr :: FunPtr (GLuint -> Ptr GLbyte -> IO ())
+glVertexAttrib4bvFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4bv")
+
+{-# NOINLINE glVertexAttrib4bvFunPtr #-}
+
+-- | Usage: @'glVertexAttrib4d' index x y z w@
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glVertexAttrib4dv'.
+
+
+glVertexAttrib4d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
+glVertexAttrib4d = ffiuintdoubledoubledoubledoubleIOV glVertexAttrib4dFunPtr
+
+glVertexAttrib4dFunPtr :: FunPtr (GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
+glVertexAttrib4dFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4d")
+
+{-# NOINLINE glVertexAttrib4dFunPtr #-}
+
+-- | Usage: @'glVertexAttrib4dv' index v@
+--
+-- The length of @v@ should be @4@.
+
+
+glVertexAttrib4dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()
+glVertexAttrib4dv = ffiuintPtrdoubleIOV glVertexAttrib4dvFunPtr
+
+glVertexAttrib4dvFunPtr :: FunPtr (GLuint -> Ptr GLdouble -> IO ())
+glVertexAttrib4dvFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4dv")
+
+{-# NOINLINE glVertexAttrib4dvFunPtr #-}
+
+-- | Usage: @'glVertexAttrib4f' index x y z w@
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glVertexAttrib4fv'.
+
+
+glVertexAttrib4f :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
+glVertexAttrib4f = ffiuintfloatfloatfloatfloatIOV glVertexAttrib4fFunPtr
+
+glVertexAttrib4fFunPtr :: FunPtr (GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+glVertexAttrib4fFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4f")
+
+{-# NOINLINE glVertexAttrib4fFunPtr #-}
+
+-- | Usage: @'glVertexAttrib4fv' index v@
+--
+-- The length of @v@ should be @4@.
+
+
+glVertexAttrib4fv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()
+glVertexAttrib4fv = ffiuintPtrfloatIOV glVertexAttrib4fvFunPtr
+
+glVertexAttrib4fvFunPtr :: FunPtr (GLuint -> Ptr GLfloat -> IO ())
+glVertexAttrib4fvFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4fv")
+
+{-# NOINLINE glVertexAttrib4fvFunPtr #-}
+
+-- | Usage: @'glVertexAttrib4iv' index v@
+--
+-- The length of @v@ should be @4@.
+
+
+glVertexAttrib4iv :: MonadIO m => GLuint -> Ptr GLint -> m ()
+glVertexAttrib4iv = ffiuintPtrintIOV glVertexAttrib4ivFunPtr
+
+glVertexAttrib4ivFunPtr :: FunPtr (GLuint -> Ptr GLint -> IO ())
+glVertexAttrib4ivFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4iv")
+
+{-# NOINLINE glVertexAttrib4ivFunPtr #-}
+
+-- | Usage: @'glVertexAttrib4s' index x y z w@
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glVertexAttrib4sv'.
+
+
+glVertexAttrib4s :: MonadIO m => GLuint -> GLshort -> GLshort -> GLshort -> GLshort -> m ()
+glVertexAttrib4s = ffiuintshortshortshortshortIOV glVertexAttrib4sFunPtr
+
+glVertexAttrib4sFunPtr :: FunPtr (GLuint -> GLshort -> GLshort -> GLshort -> GLshort -> IO ())
+glVertexAttrib4sFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4s")
+
+{-# NOINLINE glVertexAttrib4sFunPtr #-}
+
+-- | Usage: @'glVertexAttrib4sv' index v@
+--
+-- The length of @v@ should be @4@.
+
+
+glVertexAttrib4sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()
+glVertexAttrib4sv = ffiuintPtrshortIOV glVertexAttrib4svFunPtr
+
+glVertexAttrib4svFunPtr :: FunPtr (GLuint -> Ptr GLshort -> IO ())
+glVertexAttrib4svFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4sv")
+
+{-# NOINLINE glVertexAttrib4svFunPtr #-}
+
+-- | Usage: @'glVertexAttrib4ubv' index v@
+--
+-- The length of @v@ should be @4@.
+
+
+glVertexAttrib4ubv :: MonadIO m => GLuint -> Ptr GLubyte -> m ()
+glVertexAttrib4ubv = ffiuintPtrubyteIOV glVertexAttrib4ubvFunPtr
+
+glVertexAttrib4ubvFunPtr :: FunPtr (GLuint -> Ptr GLubyte -> IO ())
+glVertexAttrib4ubvFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4ubv")
+
+{-# NOINLINE glVertexAttrib4ubvFunPtr #-}
+
+-- | Usage: @'glVertexAttrib4uiv' index v@
+--
+-- The length of @v@ should be @4@.
+
+
+glVertexAttrib4uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()
+glVertexAttrib4uiv = ffiuintPtruintIOV glVertexAttrib4uivFunPtr
+
+glVertexAttrib4uivFunPtr :: FunPtr (GLuint -> Ptr GLuint -> IO ())
+glVertexAttrib4uivFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4uiv")
+
+{-# NOINLINE glVertexAttrib4uivFunPtr #-}
+
+-- | Usage: @'glVertexAttrib4usv' index v@
+--
+-- The length of @v@ should be @4@.
+
+
+glVertexAttrib4usv :: MonadIO m => GLuint -> Ptr GLushort -> m ()
+glVertexAttrib4usv = ffiuintPtrushortIOV glVertexAttrib4usvFunPtr
+
+glVertexAttrib4usvFunPtr :: FunPtr (GLuint -> Ptr GLushort -> IO ())
+glVertexAttrib4usvFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4usv")
+
+{-# NOINLINE glVertexAttrib4usvFunPtr #-}
+
+-- | Usage: @'glVertexAttribI1i' index x@
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glVertexAttribI1iv'.
+
+
+glVertexAttribI1i :: MonadIO m => GLuint -> GLint -> m ()
+glVertexAttribI1i = ffiuintintIOV glVertexAttribI1iFunPtr
+
+glVertexAttribI1iFunPtr :: FunPtr (GLuint -> GLint -> IO ())
+glVertexAttribI1iFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI1i")
+
+{-# NOINLINE glVertexAttribI1iFunPtr #-}
+
+-- | Usage: @'glVertexAttribI1iv' index v@
+--
+-- The length of @v@ should be @1@.
+
+
+glVertexAttribI1iv :: MonadIO m => GLuint -> Ptr GLint -> m ()
+glVertexAttribI1iv = ffiuintPtrintIOV glVertexAttribI1ivFunPtr
+
+glVertexAttribI1ivFunPtr :: FunPtr (GLuint -> Ptr GLint -> IO ())
+glVertexAttribI1ivFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI1iv")
+
+{-# NOINLINE glVertexAttribI1ivFunPtr #-}
+
+-- | Usage: @'glVertexAttribI1ui' index x@
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glVertexAttribI1uiv'.
+
+
+glVertexAttribI1ui :: MonadIO m => GLuint -> GLuint -> m ()
+glVertexAttribI1ui = ffiuintuintIOV glVertexAttribI1uiFunPtr
+
+glVertexAttribI1uiFunPtr :: FunPtr (GLuint -> GLuint -> IO ())
+glVertexAttribI1uiFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI1ui")
+
+{-# NOINLINE glVertexAttribI1uiFunPtr #-}
+
+-- | Usage: @'glVertexAttribI1uiv' index v@
+--
+-- The length of @v@ should be @1@.
+
+
+glVertexAttribI1uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()
+glVertexAttribI1uiv = ffiuintPtruintIOV glVertexAttribI1uivFunPtr
+
+glVertexAttribI1uivFunPtr :: FunPtr (GLuint -> Ptr GLuint -> IO ())
+glVertexAttribI1uivFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI1uiv")
+
+{-# NOINLINE glVertexAttribI1uivFunPtr #-}
+
+-- | Usage: @'glVertexAttribI2i' index x y@
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glVertexAttribI2iv'.
+
+
+glVertexAttribI2i :: MonadIO m => GLuint -> GLint -> GLint -> m ()
+glVertexAttribI2i = ffiuintintintIOV glVertexAttribI2iFunPtr
+
+glVertexAttribI2iFunPtr :: FunPtr (GLuint -> GLint -> GLint -> IO ())
+glVertexAttribI2iFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI2i")
+
+{-# NOINLINE glVertexAttribI2iFunPtr #-}
+
+-- | Usage: @'glVertexAttribI2iv' index v@
+--
+-- The length of @v@ should be @2@.
+
+
+glVertexAttribI2iv :: MonadIO m => GLuint -> Ptr GLint -> m ()
+glVertexAttribI2iv = ffiuintPtrintIOV glVertexAttribI2ivFunPtr
+
+glVertexAttribI2ivFunPtr :: FunPtr (GLuint -> Ptr GLint -> IO ())
+glVertexAttribI2ivFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI2iv")
+
+{-# NOINLINE glVertexAttribI2ivFunPtr #-}
+
+-- | Usage: @'glVertexAttribI2ui' index x y@
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glVertexAttribI2uiv'.
+
+
+glVertexAttribI2ui :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()
+glVertexAttribI2ui = ffiuintuintuintIOV glVertexAttribI2uiFunPtr
+
+glVertexAttribI2uiFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> IO ())
+glVertexAttribI2uiFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI2ui")
+
+{-# NOINLINE glVertexAttribI2uiFunPtr #-}
+
+-- | Usage: @'glVertexAttribI2uiv' index v@
+--
+-- The length of @v@ should be @2@.
+
+
+glVertexAttribI2uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()
+glVertexAttribI2uiv = ffiuintPtruintIOV glVertexAttribI2uivFunPtr
+
+glVertexAttribI2uivFunPtr :: FunPtr (GLuint -> Ptr GLuint -> IO ())
+glVertexAttribI2uivFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI2uiv")
+
+{-# NOINLINE glVertexAttribI2uivFunPtr #-}
+
+-- | Usage: @'glVertexAttribI3i' index x y z@
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glVertexAttribI3iv'.
+
+
+glVertexAttribI3i :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> m ()
+glVertexAttribI3i = ffiuintintintintIOV glVertexAttribI3iFunPtr
+
+glVertexAttribI3iFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> IO ())
+glVertexAttribI3iFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI3i")
+
+{-# NOINLINE glVertexAttribI3iFunPtr #-}
+
+-- | Usage: @'glVertexAttribI3iv' index v@
+--
+-- The length of @v@ should be @3@.
+
+
+glVertexAttribI3iv :: MonadIO m => GLuint -> Ptr GLint -> m ()
+glVertexAttribI3iv = ffiuintPtrintIOV glVertexAttribI3ivFunPtr
+
+glVertexAttribI3ivFunPtr :: FunPtr (GLuint -> Ptr GLint -> IO ())
+glVertexAttribI3ivFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI3iv")
+
+{-# NOINLINE glVertexAttribI3ivFunPtr #-}
+
+-- | Usage: @'glVertexAttribI3ui' index x y z@
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glVertexAttribI3uiv'.
+
+
+glVertexAttribI3ui :: MonadIO m => GLuint -> GLuint -> GLuint -> GLuint -> m ()
+glVertexAttribI3ui = ffiuintuintuintuintIOV glVertexAttribI3uiFunPtr
+
+glVertexAttribI3uiFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> GLuint -> IO ())
+glVertexAttribI3uiFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI3ui")
+
+{-# NOINLINE glVertexAttribI3uiFunPtr #-}
+
+-- | Usage: @'glVertexAttribI3uiv' index v@
+--
+-- The length of @v@ should be @3@.
+
+
+glVertexAttribI3uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()
+glVertexAttribI3uiv = ffiuintPtruintIOV glVertexAttribI3uivFunPtr
+
+glVertexAttribI3uivFunPtr :: FunPtr (GLuint -> Ptr GLuint -> IO ())
+glVertexAttribI3uivFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI3uiv")
+
+{-# NOINLINE glVertexAttribI3uivFunPtr #-}
+
+-- | Usage: @'glVertexAttribI4bv' index v@
+--
+-- The length of @v@ should be @4@.
+
+
+glVertexAttribI4bv :: MonadIO m => GLuint -> Ptr GLbyte -> m ()
+glVertexAttribI4bv = ffiuintPtrbyteIOV glVertexAttribI4bvFunPtr
+
+glVertexAttribI4bvFunPtr :: FunPtr (GLuint -> Ptr GLbyte -> IO ())
+glVertexAttribI4bvFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI4bv")
+
+{-# NOINLINE glVertexAttribI4bvFunPtr #-}
+
+-- | Usage: @'glVertexAttribI4i' index x y z w@
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glVertexAttribI4iv'.
+
+
+glVertexAttribI4i :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> m ()
+glVertexAttribI4i = ffiuintintintintintIOV glVertexAttribI4iFunPtr
+
+glVertexAttribI4iFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> IO ())
+glVertexAttribI4iFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI4i")
+
+{-# NOINLINE glVertexAttribI4iFunPtr #-}
+
+-- | Usage: @'glVertexAttribI4iv' index v@
+--
+-- The length of @v@ should be @4@.
+
+
+glVertexAttribI4iv :: MonadIO m => GLuint -> Ptr GLint -> m ()
+glVertexAttribI4iv = ffiuintPtrintIOV glVertexAttribI4ivFunPtr
+
+glVertexAttribI4ivFunPtr :: FunPtr (GLuint -> Ptr GLint -> IO ())
+glVertexAttribI4ivFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI4iv")
+
+{-# NOINLINE glVertexAttribI4ivFunPtr #-}
+
+-- | Usage: @'glVertexAttribI4sv' index v@
+--
+-- The length of @v@ should be @4@.
+
+
+glVertexAttribI4sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()
+glVertexAttribI4sv = ffiuintPtrshortIOV glVertexAttribI4svFunPtr
+
+glVertexAttribI4svFunPtr :: FunPtr (GLuint -> Ptr GLshort -> IO ())
+glVertexAttribI4svFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI4sv")
+
+{-# NOINLINE glVertexAttribI4svFunPtr #-}
+
+-- | Usage: @'glVertexAttribI4ubv' index v@
+--
+-- The length of @v@ should be @4@.
+
+
+glVertexAttribI4ubv :: MonadIO m => GLuint -> Ptr GLubyte -> m ()
+glVertexAttribI4ubv = ffiuintPtrubyteIOV glVertexAttribI4ubvFunPtr
+
+glVertexAttribI4ubvFunPtr :: FunPtr (GLuint -> Ptr GLubyte -> IO ())
+glVertexAttribI4ubvFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI4ubv")
+
+{-# NOINLINE glVertexAttribI4ubvFunPtr #-}
+
+-- | Usage: @'glVertexAttribI4ui' index x y z w@
+--
+-- The vector equivalent of this command is 'Graphics.GL.Raw.Internal.Shared.glVertexAttribI4uiv'.
+
+
+glVertexAttribI4ui :: MonadIO m => GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
+glVertexAttribI4ui = ffiuintuintuintuintuintIOV glVertexAttribI4uiFunPtr
+
+glVertexAttribI4uiFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ())
+glVertexAttribI4uiFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI4ui")
+
+{-# NOINLINE glVertexAttribI4uiFunPtr #-}
+
+-- | Usage: @'glVertexAttribI4uiv' index v@
+--
+-- The length of @v@ should be @4@.
+
+
+glVertexAttribI4uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()
+glVertexAttribI4uiv = ffiuintPtruintIOV glVertexAttribI4uivFunPtr
+
+glVertexAttribI4uivFunPtr :: FunPtr (GLuint -> Ptr GLuint -> IO ())
+glVertexAttribI4uivFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI4uiv")
+
+{-# NOINLINE glVertexAttribI4uivFunPtr #-}
+
+-- | Usage: @'glVertexAttribI4usv' index v@
+--
+-- The length of @v@ should be @4@.
+
+
+glVertexAttribI4usv :: MonadIO m => GLuint -> Ptr GLushort -> m ()
+glVertexAttribI4usv = ffiuintPtrushortIOV glVertexAttribI4usvFunPtr
+
+glVertexAttribI4usvFunPtr :: FunPtr (GLuint -> Ptr GLushort -> IO ())
+glVertexAttribI4usvFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI4usv")
+
+{-# NOINLINE glVertexAttribI4usvFunPtr #-}
+
+-- | Usage: @'glVertexAttribIPointer' index size type stride pointer@
+--
+-- The parameter @type@ is a @VertexAttribEnum@.
+--
+-- The length of @pointer@ should be @COMPSIZE(size,type,stride)@.
+
+
+glVertexAttribIPointer :: MonadIO m => GLuint -> GLint -> GLenum -> GLsizei -> Ptr () -> m ()
+glVertexAttribIPointer = ffiuintintenumsizeiPtrVIOV glVertexAttribIPointerFunPtr
+
+glVertexAttribIPointerFunPtr :: FunPtr (GLuint -> GLint -> GLenum -> GLsizei -> Ptr () -> IO ())
+glVertexAttribIPointerFunPtr = unsafePerformIO (getProcAddress "glVertexAttribIPointer")
+
+{-# NOINLINE glVertexAttribIPointerFunPtr #-}
+
+-- | Usage: @'glVertexAttribPointer' index size type normalized stride pointer@
+--
+-- The parameter @type@ is a @VertexAttribPointerType@.
+--
+-- The parameter @normalized@ is a @Boolean@, one of: 'Graphics.GL.Raw.Internal.Shared.GL_FALSE', 'Graphics.GL.Raw.Internal.Shared.GL_TRUE'.
+--
+-- The length of @pointer@ should be @COMPSIZE(size,type,stride)@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glVertexAttribPointer.xhtml>
+
+
+glVertexAttribPointer :: MonadIO m => GLuint -> GLint -> GLenum -> GLboolean -> GLsizei -> Ptr () -> m ()
+glVertexAttribPointer = ffiuintintenumbooleansizeiPtrVIOV glVertexAttribPointerFunPtr
+
+glVertexAttribPointerFunPtr :: FunPtr (GLuint -> GLint -> GLenum -> GLboolean -> GLsizei -> Ptr () -> IO ())
+glVertexAttribPointerFunPtr = unsafePerformIO (getProcAddress "glVertexAttribPointer")
+
+{-# NOINLINE glVertexAttribPointerFunPtr #-}
+
+-- | Usage: @'glViewport' x y width height@
+--
+-- The parameter @x@ is a @WinCoord@.
+--
+-- The parameter @y@ is a @WinCoord@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glViewport.xhtml>
+
+
+glViewport :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> m ()
+glViewport = ffiintintsizeisizeiIOV glViewportFunPtr
+
+glViewportFunPtr :: FunPtr (GLint -> GLint -> GLsizei -> GLsizei -> IO ())
+glViewportFunPtr = unsafePerformIO (getProcAddress "glViewport")
+
+{-# NOINLINE glViewportFunPtr #-}
+
+pattern GL_ACTIVE_ATTRIBUTES = 0x8B89
+
+pattern GL_ACTIVE_ATTRIBUTE_MAX_LENGTH = 0x8B8A
+
+pattern GL_ACTIVE_TEXTURE = 0x84E0
+
+pattern GL_ACTIVE_UNIFORMS = 0x8B86
+
+pattern GL_ACTIVE_UNIFORM_MAX_LENGTH = 0x8B87
+
+pattern GL_ALIASED_LINE_WIDTH_RANGE = 0x846E
+
+pattern GL_ALWAYS = 0x0207
+
+pattern GL_AND = 0x1501
+
+pattern GL_AND_INVERTED = 0x1504
+
+pattern GL_AND_REVERSE = 0x1502
+
+pattern GL_ARRAY_BUFFER = 0x8892
+
+pattern GL_ARRAY_BUFFER_BINDING = 0x8894
+
+pattern GL_ATTACHED_SHADERS = 0x8B85
+
+pattern GL_BACK_LEFT = 0x0402
+
+pattern GL_BACK_RIGHT = 0x0403
+
+pattern GL_BGR = 0x80E0
+
+pattern GL_BGRA_INTEGER = 0x8D9B
+
+pattern GL_BGR_INTEGER = 0x8D9A
+
+pattern GL_BLEND_DST = 0x0BE0
+
+pattern GL_BLEND_SRC = 0x0BE1
+
+pattern GL_BLUE_INTEGER = 0x8D96
+
+pattern GL_BOOL = 0x8B56
+
+pattern GL_BOOL_VEC2 = 0x8B57
+
+pattern GL_BOOL_VEC3 = 0x8B58
+
+pattern GL_BOOL_VEC4 = 0x8B59
+
+pattern GL_BUFFER_ACCESS = 0x88BB
+
+pattern GL_BUFFER_ACCESS_FLAGS = 0x911F
+
+pattern GL_BUFFER_MAPPED = 0x88BC
+
+pattern GL_BUFFER_MAP_LENGTH = 0x9120
+
+pattern GL_BUFFER_MAP_OFFSET = 0x9121
+
+pattern GL_BUFFER_MAP_POINTER = 0x88BD
+
+pattern GL_BUFFER_SIZE = 0x8764
+
+pattern GL_BUFFER_USAGE = 0x8765
+
+pattern GL_CLAMP_READ_COLOR = 0x891C
+
+pattern GL_CLAMP_TO_BORDER = 0x812D
+
+pattern GL_CLAMP_TO_EDGE = 0x812F
+
+pattern GL_CLEAR = 0x1500
+
+pattern GL_CLIP_DISTANCE0 = 0x3000
+
+pattern GL_CLIP_DISTANCE1 = 0x3001
+
+pattern GL_CLIP_DISTANCE2 = 0x3002
+
+pattern GL_CLIP_DISTANCE3 = 0x3003
+
+pattern GL_CLIP_DISTANCE4 = 0x3004
+
+pattern GL_CLIP_DISTANCE5 = 0x3005
+
+pattern GL_CLIP_DISTANCE6 = 0x3006
+
+pattern GL_CLIP_DISTANCE7 = 0x3007
+
+pattern GL_COLOR = 0x1800
+
+pattern GL_COLOR_BUFFER_BIT = 0x00004000
+
+pattern GL_COLOR_CLEAR_VALUE = 0x0C22
+
+pattern GL_COLOR_LOGIC_OP = 0x0BF2
+
+pattern GL_COMPARE_REF_TO_TEXTURE = 0x884E
+
+pattern GL_COMPILE_STATUS = 0x8B81
+
+pattern GL_COMPRESSED_RED = 0x8225
+
+pattern GL_COMPRESSED_RG = 0x8226
+
+pattern GL_COMPRESSED_RGB = 0x84ED
+
+pattern GL_COMPRESSED_RGBA = 0x84EE
+
+pattern GL_COMPRESSED_SRGB = 0x8C48
+
+pattern GL_COMPRESSED_SRGB_ALPHA = 0x8C49
+
+pattern GL_COMPRESSED_TEXTURE_FORMATS = 0x86A3
+
+pattern GL_CONTEXT_FLAGS = 0x821E
+
+pattern GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT = 0x00000001
+
+pattern GL_COPY = 0x1503
+
+pattern GL_COPY_INVERTED = 0x150C
+
+pattern GL_CULL_FACE = 0x0B44
+
+pattern GL_CULL_FACE_MODE = 0x0B45
+
+pattern GL_CURRENT_PROGRAM = 0x8B8D
+
+pattern GL_CURRENT_QUERY = 0x8865
+
+pattern GL_CURRENT_VERTEX_ATTRIB = 0x8626
+
+pattern GL_DECR = 0x1E03
+
+pattern GL_DECR_WRAP = 0x8508
+
+pattern GL_DELETE_STATUS = 0x8B80
+
+pattern GL_DEPTH = 0x1801
+
+pattern GL_DEPTH_BUFFER_BIT = 0x00000100
+
+pattern GL_DEPTH_CLEAR_VALUE = 0x0B73
+
+pattern GL_DEPTH_COMPONENT24 = 0x81A6
+
+pattern GL_DEPTH_COMPONENT32 = 0x81A7
+
+pattern GL_DEPTH_FUNC = 0x0B74
+
+pattern GL_DEPTH_TEST = 0x0B71
+
+pattern GL_DEPTH_WRITEMASK = 0x0B72
+
+pattern GL_DITHER = 0x0BD0
+
+pattern GL_DONT_CARE = 0x1100
+
+pattern GL_DOUBLEBUFFER = 0x0C32
+
+pattern GL_DRAW_BUFFER = 0x0C01
+
+pattern GL_DRAW_BUFFER0 = 0x8825
+
+pattern GL_DRAW_BUFFER1 = 0x8826
+
+pattern GL_DRAW_BUFFER10 = 0x882F
+
+pattern GL_DRAW_BUFFER11 = 0x8830
+
+pattern GL_DRAW_BUFFER12 = 0x8831
+
+pattern GL_DRAW_BUFFER13 = 0x8832
+
+pattern GL_DRAW_BUFFER14 = 0x8833
+
+pattern GL_DRAW_BUFFER15 = 0x8834
+
+pattern GL_DRAW_BUFFER2 = 0x8827
+
+pattern GL_DRAW_BUFFER3 = 0x8828
+
+pattern GL_DRAW_BUFFER4 = 0x8829
+
+pattern GL_DRAW_BUFFER5 = 0x882A
+
+pattern GL_DRAW_BUFFER6 = 0x882B
+
+pattern GL_DRAW_BUFFER7 = 0x882C
+
+pattern GL_DRAW_BUFFER8 = 0x882D
+
+pattern GL_DRAW_BUFFER9 = 0x882E
+
+pattern GL_DYNAMIC_COPY = 0x88EA
+
+pattern GL_DYNAMIC_DRAW = 0x88E8
+
+pattern GL_DYNAMIC_READ = 0x88E9
+
+pattern GL_ELEMENT_ARRAY_BUFFER = 0x8893
+
+pattern GL_ELEMENT_ARRAY_BUFFER_BINDING = 0x8895
+
+pattern GL_EQUIV = 0x1509
+
+pattern GL_EXTENSIONS = 0x1F03
+
+pattern GL_FALSE = 0
+
+pattern GL_FASTEST = 0x1101
+
+pattern GL_FILL = 0x1B02
+
+pattern GL_FIXED_ONLY = 0x891D
+
+pattern GL_FLOAT_MAT2 = 0x8B5A
+
+pattern GL_FLOAT_MAT2x3 = 0x8B65
+
+pattern GL_FLOAT_MAT2x4 = 0x8B66
+
+pattern GL_FLOAT_MAT3 = 0x8B5B
+
+pattern GL_FLOAT_MAT3x2 = 0x8B67
+
+pattern GL_FLOAT_MAT3x4 = 0x8B68
+
+pattern GL_FLOAT_MAT4 = 0x8B5C
+
+pattern GL_FLOAT_MAT4x2 = 0x8B69
+
+pattern GL_FLOAT_MAT4x3 = 0x8B6A
+
+pattern GL_FLOAT_VEC2 = 0x8B50
+
+pattern GL_FLOAT_VEC3 = 0x8B51
+
+pattern GL_FLOAT_VEC4 = 0x8B52
+
+pattern GL_FRAGMENT_SHADER = 0x8B30
+
+pattern GL_FRAGMENT_SHADER_DERIVATIVE_HINT = 0x8B8B
+
+pattern GL_FRONT = 0x0404
+
+pattern GL_FRONT_AND_BACK = 0x0408
+
+pattern GL_FRONT_FACE = 0x0B46
+
+pattern GL_FRONT_LEFT = 0x0400
+
+pattern GL_FRONT_RIGHT = 0x0401
+
+pattern GL_GEQUAL = 0x0206
+
+pattern GL_GREATER = 0x0204
+
+pattern GL_GREEN_INTEGER = 0x8D95
+
+pattern GL_INCR = 0x1E02
+
+pattern GL_INCR_WRAP = 0x8507
+
+pattern GL_INFO_LOG_LENGTH = 0x8B84
+
+pattern GL_INT = 0x1404
+
+pattern GL_INTERLEAVED_ATTRIBS = 0x8C8C
+
+pattern GL_INT_SAMPLER_1D = 0x8DC9
+
+pattern GL_INT_SAMPLER_1D_ARRAY = 0x8DCE
+
+pattern GL_INT_SAMPLER_2D = 0x8DCA
+
+pattern GL_INT_SAMPLER_2D_ARRAY = 0x8DCF
+
+pattern GL_INT_SAMPLER_2D_RECT = 0x8DCD
+
+pattern GL_INT_SAMPLER_3D = 0x8DCB
+
+pattern GL_INT_SAMPLER_BUFFER = 0x8DD0
+
+pattern GL_INT_SAMPLER_CUBE = 0x8DCC
+
+pattern GL_INT_VEC2 = 0x8B53
+
+pattern GL_INT_VEC3 = 0x8B54
+
+pattern GL_INT_VEC4 = 0x8B55
+
+pattern GL_INVALID_ENUM = 0x0500
+
+pattern GL_INVALID_OPERATION = 0x0502
+
+pattern GL_INVALID_VALUE = 0x0501
+
+pattern GL_KEEP = 0x1E00
+
+pattern GL_LEFT = 0x0406
+
+pattern GL_LEQUAL = 0x0203
+
+pattern GL_LESS = 0x0201
+
+pattern GL_LINE = 0x1B01
+
+pattern GL_LINEAR = 0x2601
+
+pattern GL_LINEAR_MIPMAP_LINEAR = 0x2703
+
+pattern GL_LINEAR_MIPMAP_NEAREST = 0x2701
+
+pattern GL_LINES = 0x0001
+
+pattern GL_LINE_LOOP = 0x0002
+
+pattern GL_LINE_SMOOTH = 0x0B20
+
+pattern GL_LINE_SMOOTH_HINT = 0x0C52
+
+pattern GL_LINE_STRIP = 0x0003
+
+pattern GL_LINE_WIDTH = 0x0B21
+
+pattern GL_LINE_WIDTH_GRANULARITY = 0x0B23
+
+pattern GL_LINE_WIDTH_RANGE = 0x0B22
+
+pattern GL_LINK_STATUS = 0x8B82
+
+pattern GL_LOGIC_OP_MODE = 0x0BF0
+
+pattern GL_MAJOR_VERSION = 0x821B
+
+pattern GL_MAX_3D_TEXTURE_SIZE = 0x8073
+
+pattern GL_MAX_ARRAY_TEXTURE_LAYERS = 0x88FF
+
+pattern GL_MAX_CLIP_DISTANCES = 0x0D32
+
+pattern GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS = 0x8B4D
+
+pattern GL_MAX_CUBE_MAP_TEXTURE_SIZE = 0x851C
+
+pattern GL_MAX_DRAW_BUFFERS = 0x8824
+
+pattern GL_MAX_ELEMENTS_INDICES = 0x80E9
+
+pattern GL_MAX_ELEMENTS_VERTICES = 0x80E8
+
+pattern GL_MAX_FRAGMENT_INPUT_COMPONENTS = 0x9125
+
+pattern GL_MAX_FRAGMENT_UNIFORM_COMPONENTS = 0x8B49
+
+pattern GL_MAX_PROGRAM_TEXEL_OFFSET = 0x8905
+
+pattern GL_MAX_RECTANGLE_TEXTURE_SIZE = 0x84F8
+
+pattern GL_MAX_TEXTURE_BUFFER_SIZE = 0x8C2B
+
+pattern GL_MAX_TEXTURE_IMAGE_UNITS = 0x8872
+
+pattern GL_MAX_TEXTURE_LOD_BIAS = 0x84FD
+
+pattern GL_MAX_TEXTURE_SIZE = 0x0D33
+
+pattern GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS = 0x8C8A
+
+pattern GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS = 0x8C8B
+
+pattern GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS = 0x8C80
+
+pattern GL_MAX_VARYING_FLOATS = 0x8B4B
+
+pattern GL_MAX_VERTEX_ATTRIBS = 0x8869
+
+pattern GL_MAX_VERTEX_OUTPUT_COMPONENTS = 0x9122
+
+pattern GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS = 0x8B4C
+
+pattern GL_MAX_VERTEX_UNIFORM_COMPONENTS = 0x8B4A
+
+pattern GL_MAX_VIEWPORT_DIMS = 0x0D3A
+
+pattern GL_MINOR_VERSION = 0x821C
+
+pattern GL_MIN_PROGRAM_TEXEL_OFFSET = 0x8904
+
+pattern GL_MIRRORED_REPEAT = 0x8370
+
+pattern GL_MULTISAMPLE = 0x809D
+
+pattern GL_NAND = 0x150E
+
+pattern GL_NEAREST = 0x2600
+
+pattern GL_NEAREST_MIPMAP_LINEAR = 0x2702
+
+pattern GL_NEAREST_MIPMAP_NEAREST = 0x2700
+
+pattern GL_NEVER = 0x0200
+
+pattern GL_NICEST = 0x1102
+
+pattern GL_NOOP = 0x1505
+
+pattern GL_NOR = 0x1508
+
+pattern GL_NOTEQUAL = 0x0205
+
+pattern GL_NUM_COMPRESSED_TEXTURE_FORMATS = 0x86A2
+
+pattern GL_NUM_EXTENSIONS = 0x821D
+
+pattern GL_OR = 0x1507
+
+pattern GL_OR_INVERTED = 0x150D
+
+pattern GL_OR_REVERSE = 0x150B
+
+pattern GL_OUT_OF_MEMORY = 0x0505
+
+pattern GL_PACK_ALIGNMENT = 0x0D05
+
+pattern GL_PACK_IMAGE_HEIGHT = 0x806C
+
+pattern GL_PACK_LSB_FIRST = 0x0D01
+
+pattern GL_PACK_ROW_LENGTH = 0x0D02
+
+pattern GL_PACK_SKIP_IMAGES = 0x806B
+
+pattern GL_PACK_SKIP_PIXELS = 0x0D04
+
+pattern GL_PACK_SKIP_ROWS = 0x0D03
+
+pattern GL_PACK_SWAP_BYTES = 0x0D00
+
+pattern GL_PIXEL_PACK_BUFFER = 0x88EB
+
+pattern GL_PIXEL_PACK_BUFFER_BINDING = 0x88ED
+
+pattern GL_PIXEL_UNPACK_BUFFER = 0x88EC
+
+pattern GL_PIXEL_UNPACK_BUFFER_BINDING = 0x88EF
+
+pattern GL_POINT = 0x1B00
+
+pattern GL_POINTS = 0x0000
+
+pattern GL_POINT_FADE_THRESHOLD_SIZE = 0x8128
+
+pattern GL_POINT_SIZE = 0x0B11
+
+pattern GL_POINT_SIZE_GRANULARITY = 0x0B13
+
+pattern GL_POINT_SIZE_RANGE = 0x0B12
+
+pattern GL_POINT_SPRITE_COORD_ORIGIN = 0x8CA0
+
+pattern GL_POLYGON_MODE = 0x0B40
+
+pattern GL_POLYGON_OFFSET_FACTOR = 0x8038
+
+pattern GL_POLYGON_OFFSET_FILL = 0x8037
+
+pattern GL_POLYGON_OFFSET_LINE = 0x2A02
+
+pattern GL_POLYGON_OFFSET_POINT = 0x2A01
+
+pattern GL_POLYGON_OFFSET_UNITS = 0x2A00
+
+pattern GL_POLYGON_SMOOTH = 0x0B41
+
+pattern GL_POLYGON_SMOOTH_HINT = 0x0C53
+
+pattern GL_PRIMITIVES_GENERATED = 0x8C87
+
+pattern GL_PRIMITIVE_RESTART = 0x8F9D
+
+pattern GL_PRIMITIVE_RESTART_INDEX = 0x8F9E
+
+pattern GL_PROXY_TEXTURE_1D = 0x8063
+
+pattern GL_PROXY_TEXTURE_1D_ARRAY = 0x8C19
+
+pattern GL_PROXY_TEXTURE_2D = 0x8064
+
+pattern GL_PROXY_TEXTURE_2D_ARRAY = 0x8C1B
+
+pattern GL_PROXY_TEXTURE_3D = 0x8070
+
+pattern GL_PROXY_TEXTURE_CUBE_MAP = 0x851B
+
+pattern GL_PROXY_TEXTURE_RECTANGLE = 0x84F7
+
+pattern GL_QUERY_BY_REGION_NO_WAIT = 0x8E16
+
+pattern GL_QUERY_BY_REGION_WAIT = 0x8E15
+
+pattern GL_QUERY_COUNTER_BITS = 0x8864
+
+pattern GL_QUERY_NO_WAIT = 0x8E14
+
+pattern GL_QUERY_RESULT = 0x8866
+
+pattern GL_QUERY_RESULT_AVAILABLE = 0x8867
+
+pattern GL_QUERY_WAIT = 0x8E13
+
+pattern GL_R11F_G11F_B10F = 0x8C3A
+
+pattern GL_R3_G3_B2 = 0x2A10
+
+pattern GL_RASTERIZER_DISCARD = 0x8C89
+
+pattern GL_READ_BUFFER = 0x0C02
+
+pattern GL_READ_ONLY = 0x88B8
+
+pattern GL_RED_INTEGER = 0x8D94
+
+pattern GL_RENDERER = 0x1F01
+
+pattern GL_REPEAT = 0x2901
+
+pattern GL_REPLACE = 0x1E01
+
+pattern GL_RGB = 0x1907
+
+pattern GL_RGB10 = 0x8052
+
+pattern GL_RGB10_A2 = 0x8059
+
+pattern GL_RGB12 = 0x8053
+
+pattern GL_RGB16 = 0x8054
+
+pattern GL_RGB16F = 0x881B
+
+pattern GL_RGB16I = 0x8D89
+
+pattern GL_RGB16UI = 0x8D77
+
+pattern GL_RGB4 = 0x804F
+
+pattern GL_RGB5 = 0x8050
+
+pattern GL_RGB5_A1 = 0x8057
+
+pattern GL_RGB8 = 0x8051
+
+pattern GL_RGB8I = 0x8D8F
+
+pattern GL_RGB8UI = 0x8D7D
+
+pattern GL_RGB9_E5 = 0x8C3D
+
+pattern GL_RGBA = 0x1908
+
+pattern GL_RGBA12 = 0x805A
+
+pattern GL_RGBA16 = 0x805B
+
+pattern GL_RGBA16F = 0x881A
+
+pattern GL_RGBA16I = 0x8D88
+
+pattern GL_RGBA16UI = 0x8D76
+
+pattern GL_RGBA2 = 0x8055
+
+pattern GL_RGBA32F = 0x8814
+
+pattern GL_RGBA32I = 0x8D82
+
+pattern GL_RGBA32UI = 0x8D70
+
+pattern GL_RGBA4 = 0x8056
+
+pattern GL_RGBA8 = 0x8058
+
+pattern GL_RGBA8I = 0x8D8E
+
+pattern GL_RGBA_INTEGER = 0x8D99
+
+pattern GL_RGB_INTEGER = 0x8D98
+
+pattern GL_RIGHT = 0x0407
+
+pattern GL_SAMPLER_1D = 0x8B5D
+
+pattern GL_SAMPLER_1D_ARRAY = 0x8DC0
+
+pattern GL_SAMPLER_1D_ARRAY_SHADOW = 0x8DC3
+
+pattern GL_SAMPLER_1D_SHADOW = 0x8B61
+
+pattern GL_SAMPLER_2D = 0x8B5E
+
+pattern GL_SAMPLER_2D_ARRAY = 0x8DC1
+
+pattern GL_SAMPLER_2D_ARRAY_SHADOW = 0x8DC4
+
+pattern GL_SAMPLER_2D_RECT = 0x8B63
+
+pattern GL_SAMPLER_2D_RECT_SHADOW = 0x8B64
+
+pattern GL_SAMPLER_2D_SHADOW = 0x8B62
+
+pattern GL_SAMPLER_3D = 0x8B5F
+
+pattern GL_SAMPLER_BUFFER = 0x8DC2
+
+pattern GL_SAMPLER_CUBE = 0x8B60
+
+pattern GL_SAMPLER_CUBE_SHADOW = 0x8DC5
+
+pattern GL_SAMPLES_PASSED = 0x8914
+
+pattern GL_SAMPLE_ALPHA_TO_COVERAGE = 0x809E
+
+pattern GL_SAMPLE_ALPHA_TO_ONE = 0x809F
+
+pattern GL_SAMPLE_BUFFERS = 0x80A8
+
+pattern GL_SAMPLE_COVERAGE = 0x80A0
+
+pattern GL_SAMPLE_COVERAGE_INVERT = 0x80AB
+
+pattern GL_SAMPLE_COVERAGE_VALUE = 0x80AA
+
+pattern GL_SEPARATE_ATTRIBS = 0x8C8D
+
+pattern GL_SET = 0x150F
+
+pattern GL_SHADER_SOURCE_LENGTH = 0x8B88
+
+pattern GL_SHADER_TYPE = 0x8B4F
+
+pattern GL_SHADING_LANGUAGE_VERSION = 0x8B8C
+
+pattern GL_SHORT = 0x1402
+
+pattern GL_SMOOTH_LINE_WIDTH_GRANULARITY = 0x0B23
+
+pattern GL_SMOOTH_LINE_WIDTH_RANGE = 0x0B22
+
+pattern GL_SMOOTH_POINT_SIZE_GRANULARITY = 0x0B13
+
+pattern GL_SMOOTH_POINT_SIZE_RANGE = 0x0B12
+
+pattern GL_SRGB = 0x8C40
+
+pattern GL_SRGB8 = 0x8C41
+
+pattern GL_SRGB8_ALPHA8 = 0x8C43
+
+pattern GL_SRGB_ALPHA = 0x8C42
+
+pattern GL_STATIC_COPY = 0x88E6
+
+pattern GL_STATIC_DRAW = 0x88E4
+
+pattern GL_STATIC_READ = 0x88E5
+
+pattern GL_STENCIL = 0x1802
+
+pattern GL_STENCIL_BACK_FAIL = 0x8801
+
+pattern GL_STENCIL_BACK_FUNC = 0x8800
+
+pattern GL_STENCIL_BACK_PASS_DEPTH_FAIL = 0x8802
+
+pattern GL_STENCIL_BACK_PASS_DEPTH_PASS = 0x8803
+
+pattern GL_STENCIL_BACK_REF = 0x8CA3
+
+pattern GL_STENCIL_BACK_VALUE_MASK = 0x8CA4
+
+pattern GL_STENCIL_BACK_WRITEMASK = 0x8CA5
+
+pattern GL_STENCIL_BUFFER_BIT = 0x00000400
+
+pattern GL_STENCIL_CLEAR_VALUE = 0x0B91
+
+pattern GL_STENCIL_FAIL = 0x0B94
+
+pattern GL_STENCIL_FUNC = 0x0B92
+
+pattern GL_STENCIL_PASS_DEPTH_FAIL = 0x0B95
+
+pattern GL_STENCIL_PASS_DEPTH_PASS = 0x0B96
+
+pattern GL_STENCIL_REF = 0x0B97
+
+pattern GL_STENCIL_TEST = 0x0B90
+
+pattern GL_STENCIL_VALUE_MASK = 0x0B93
+
+pattern GL_STENCIL_WRITEMASK = 0x0B98
+
+pattern GL_STEREO = 0x0C33
+
+pattern GL_STREAM_COPY = 0x88E2
+
+pattern GL_STREAM_DRAW = 0x88E0
+
+pattern GL_STREAM_READ = 0x88E1
+
+pattern GL_SUBPIXEL_BITS = 0x0D50
+
+pattern GL_TEXTURE = 0x1702
+
+pattern GL_TEXTURE0 = 0x84C0
+
+pattern GL_TEXTURE1 = 0x84C1
+
+pattern GL_TEXTURE10 = 0x84CA
+
+pattern GL_TEXTURE11 = 0x84CB
+
+pattern GL_TEXTURE12 = 0x84CC
+
+pattern GL_TEXTURE13 = 0x84CD
+
+pattern GL_TEXTURE14 = 0x84CE
+
+pattern GL_TEXTURE15 = 0x84CF
+
+pattern GL_TEXTURE16 = 0x84D0
+
+pattern GL_TEXTURE17 = 0x84D1
+
+pattern GL_TEXTURE18 = 0x84D2
+
+pattern GL_TEXTURE19 = 0x84D3
+
+pattern GL_TEXTURE2 = 0x84C2
+
+pattern GL_TEXTURE20 = 0x84D4
+
+pattern GL_TEXTURE21 = 0x84D5
+
+pattern GL_TEXTURE22 = 0x84D6
+
+pattern GL_TEXTURE23 = 0x84D7
+
+pattern GL_TEXTURE24 = 0x84D8
+
+pattern GL_TEXTURE25 = 0x84D9
+
+pattern GL_TEXTURE26 = 0x84DA
+
+pattern GL_TEXTURE27 = 0x84DB
+
+pattern GL_TEXTURE28 = 0x84DC
+
+pattern GL_TEXTURE29 = 0x84DD
+
+pattern GL_TEXTURE3 = 0x84C3
+
+pattern GL_TEXTURE30 = 0x84DE
+
+pattern GL_TEXTURE31 = 0x84DF
+
+pattern GL_TEXTURE4 = 0x84C4
+
+pattern GL_TEXTURE5 = 0x84C5
+
+pattern GL_TEXTURE6 = 0x84C6
+
+pattern GL_TEXTURE7 = 0x84C7
+
+pattern GL_TEXTURE8 = 0x84C8
+
+pattern GL_TEXTURE9 = 0x84C9
+
+pattern GL_TEXTURE_ALPHA_SIZE = 0x805F
+
+pattern GL_TEXTURE_ALPHA_TYPE = 0x8C13
+
+pattern GL_TEXTURE_BASE_LEVEL = 0x813C
+
+pattern GL_TEXTURE_BLUE_SIZE = 0x805E
+
+pattern GL_TEXTURE_BLUE_TYPE = 0x8C12
+
+pattern GL_TEXTURE_BORDER_COLOR = 0x1004
+
+pattern GL_TEXTURE_BUFFER_DATA_STORE_BINDING = 0x8C2D
+
+pattern GL_TEXTURE_COMPARE_FUNC = 0x884D
+
+pattern GL_TEXTURE_COMPARE_MODE = 0x884C
+
+pattern GL_TEXTURE_COMPRESSED_IMAGE_SIZE = 0x86A0
+
+pattern GL_TEXTURE_COMPRESSION_HINT = 0x84EF
+
+pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_X = 0x8516
+
+pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_Y = 0x8518
+
+pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_Z = 0x851A
+
+pattern GL_TEXTURE_CUBE_MAP_POSITIVE_X = 0x8515
+
+pattern GL_TEXTURE_CUBE_MAP_POSITIVE_Y = 0x8517
+
+pattern GL_TEXTURE_CUBE_MAP_POSITIVE_Z = 0x8519
+
+pattern GL_TEXTURE_DEPTH = 0x8071
+
+pattern GL_TEXTURE_DEPTH_SIZE = 0x884A
+
+pattern GL_TEXTURE_DEPTH_TYPE = 0x8C16
+
+pattern GL_TEXTURE_GREEN_SIZE = 0x805D
+
+pattern GL_TEXTURE_GREEN_TYPE = 0x8C11
+
+pattern GL_TEXTURE_HEIGHT = 0x1001
+
+pattern GL_TEXTURE_INTERNAL_FORMAT = 0x1003
+
+pattern GL_TEXTURE_LOD_BIAS = 0x8501
+
+pattern GL_TEXTURE_MAG_FILTER = 0x2800
+
+pattern GL_TEXTURE_MAX_LEVEL = 0x813D
+
+pattern GL_TEXTURE_MAX_LOD = 0x813B
+
+pattern GL_TEXTURE_MIN_FILTER = 0x2801
+
+pattern GL_TEXTURE_MIN_LOD = 0x813A
+
+pattern GL_TEXTURE_RED_SIZE = 0x805C
+
+pattern GL_TEXTURE_RED_TYPE = 0x8C10
+
+pattern GL_TEXTURE_SHARED_SIZE = 0x8C3F
+
+pattern GL_TEXTURE_WIDTH = 0x1000
+
+pattern GL_TEXTURE_WRAP_R = 0x8072
+
+pattern GL_TEXTURE_WRAP_S = 0x2802
+
+pattern GL_TEXTURE_WRAP_T = 0x2803
+
+pattern GL_TRANSFORM_FEEDBACK_BUFFER_BINDING = 0x8C8F
+
+pattern GL_TRANSFORM_FEEDBACK_BUFFER_MODE = 0x8C7F
+
+pattern GL_TRANSFORM_FEEDBACK_BUFFER_SIZE = 0x8C85
+
+pattern GL_TRANSFORM_FEEDBACK_BUFFER_START = 0x8C84
+
+pattern GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN = 0x8C88
+
+pattern GL_TRANSFORM_FEEDBACK_VARYINGS = 0x8C83
+
+pattern GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH = 0x8C76
+
+pattern GL_TRIANGLE_FAN = 0x0006
+
+pattern GL_TRIANGLE_STRIP = 0x0005
+
+pattern GL_TRUE = 1
+
+pattern GL_UNPACK_ALIGNMENT = 0x0CF5
+
+pattern GL_UNPACK_IMAGE_HEIGHT = 0x806E
+
+pattern GL_UNPACK_LSB_FIRST = 0x0CF1
+
+pattern GL_UNPACK_ROW_LENGTH = 0x0CF2
+
+pattern GL_UNPACK_SKIP_IMAGES = 0x806D
+
+pattern GL_UNPACK_SKIP_PIXELS = 0x0CF4
+
+pattern GL_UNPACK_SKIP_ROWS = 0x0CF3
+
+pattern GL_UNPACK_SWAP_BYTES = 0x0CF0
+
+pattern GL_UNSIGNED_BYTE = 0x1401
+
+pattern GL_UNSIGNED_BYTE_2_3_3_REV = 0x8362
+
+pattern GL_UNSIGNED_BYTE_3_3_2 = 0x8032
+
+pattern GL_UNSIGNED_INT_10_10_10_2 = 0x8036
+
+pattern GL_UNSIGNED_INT_5_9_9_9_REV = 0x8C3E
+
+pattern GL_UNSIGNED_INT_8_8_8_8 = 0x8035
+
+pattern GL_UNSIGNED_INT_8_8_8_8_REV = 0x8367
+
+pattern GL_UNSIGNED_INT_SAMPLER_1D = 0x8DD1
+
+pattern GL_UNSIGNED_INT_SAMPLER_1D_ARRAY = 0x8DD6
+
+pattern GL_UNSIGNED_INT_SAMPLER_2D = 0x8DD2
+
+pattern GL_UNSIGNED_INT_SAMPLER_2D_ARRAY = 0x8DD7
+
+pattern GL_UNSIGNED_INT_SAMPLER_2D_RECT = 0x8DD5
+
+pattern GL_UNSIGNED_INT_SAMPLER_3D = 0x8DD3
+
+pattern GL_UNSIGNED_INT_SAMPLER_BUFFER = 0x8DD8
+
+pattern GL_UNSIGNED_INT_SAMPLER_CUBE = 0x8DD4
+
+pattern GL_UNSIGNED_INT_VEC2 = 0x8DC6
+
+pattern GL_UNSIGNED_INT_VEC3 = 0x8DC7
+
+pattern GL_UNSIGNED_INT_VEC4 = 0x8DC8
+
+pattern GL_UNSIGNED_SHORT_1_5_5_5_REV = 0x8366
+
+pattern GL_UNSIGNED_SHORT_4_4_4_4 = 0x8033
+
+pattern GL_UNSIGNED_SHORT_4_4_4_4_REV = 0x8365
+
+pattern GL_UNSIGNED_SHORT_5_5_5_1 = 0x8034
+
+pattern GL_UNSIGNED_SHORT_5_6_5 = 0x8363
+
+pattern GL_UNSIGNED_SHORT_5_6_5_REV = 0x8364
+
+pattern GL_VALIDATE_STATUS = 0x8B83
+
+pattern GL_VENDOR = 0x1F00
+
+pattern GL_VERSION = 0x1F02
+
+pattern GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING = 0x889F
+
+pattern GL_VERTEX_ATTRIB_ARRAY_ENABLED = 0x8622
+
+pattern GL_VERTEX_ATTRIB_ARRAY_INTEGER = 0x88FD
+
+pattern GL_VERTEX_ATTRIB_ARRAY_NORMALIZED = 0x886A
+
+pattern GL_VERTEX_ATTRIB_ARRAY_POINTER = 0x8645
+
+pattern GL_VERTEX_ATTRIB_ARRAY_SIZE = 0x8623
+
+pattern GL_VERTEX_ATTRIB_ARRAY_STRIDE = 0x8624
+
+pattern GL_VERTEX_ATTRIB_ARRAY_TYPE = 0x8625
+
+pattern GL_VERTEX_PROGRAM_POINT_SIZE = 0x8642
+
+pattern GL_VERTEX_SHADER = 0x8B31
+
+pattern GL_XOR = 0x1506
+
+-- | Usage: @'glVertexAttribDivisor' index divisor@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glVertexAttribDivisor.xhtml>
+
 
 glVertexAttribDivisor :: MonadIO m => GLuint -> GLuint -> m ()
 glVertexAttribDivisor = ffiuintuintIOV glVertexAttribDivisorFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Profile/Compatibility45.hs b/dist/build/autogen/Graphics/GL/Raw/Profile/Compatibility45.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Profile/Compatibility45.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Profile/Compatibility45.hs
@@ -28,6 +28,9 @@
 import Graphics.GL.Raw.Profile.Compatibility44
 import Graphics.GL.Raw.Profile.Core45
 
+-- | Usage: @'glGetnColorTable' target format type bufSize table@
+
+
 glGetnColorTable :: MonadIO m => GLenum -> GLenum -> GLenum -> GLsizei -> Ptr () -> m ()
 glGetnColorTable = ffienumenumenumsizeiPtrVIOV glGetnColorTableFunPtr
 
@@ -36,6 +39,9 @@
 
 {-# NOINLINE glGetnColorTableFunPtr #-}
 
+-- | Usage: @'glGetnConvolutionFilter' target format type bufSize image@
+
+
 glGetnConvolutionFilter :: MonadIO m => GLenum -> GLenum -> GLenum -> GLsizei -> Ptr () -> m ()
 glGetnConvolutionFilter = ffienumenumenumsizeiPtrVIOV glGetnConvolutionFilterFunPtr
 
@@ -44,6 +50,9 @@
 
 {-# NOINLINE glGetnConvolutionFilterFunPtr #-}
 
+-- | Usage: @'glGetnHistogram' target reset format type bufSize values@
+
+
 glGetnHistogram :: MonadIO m => GLenum -> GLboolean -> GLenum -> GLenum -> GLsizei -> Ptr () -> m ()
 glGetnHistogram = ffienumbooleanenumenumsizeiPtrVIOV glGetnHistogramFunPtr
 
@@ -52,6 +61,9 @@
 
 {-# NOINLINE glGetnHistogramFunPtr #-}
 
+-- | Usage: @'glGetnMapdv' target query bufSize v@
+
+
 glGetnMapdv :: MonadIO m => GLenum -> GLenum -> GLsizei -> Ptr GLdouble -> m ()
 glGetnMapdv = ffienumenumsizeiPtrdoubleIOV glGetnMapdvFunPtr
 
@@ -60,6 +72,9 @@
 
 {-# NOINLINE glGetnMapdvFunPtr #-}
 
+-- | Usage: @'glGetnMapfv' target query bufSize v@
+
+
 glGetnMapfv :: MonadIO m => GLenum -> GLenum -> GLsizei -> Ptr GLfloat -> m ()
 glGetnMapfv = ffienumenumsizeiPtrfloatIOV glGetnMapfvFunPtr
 
@@ -68,6 +83,9 @@
 
 {-# NOINLINE glGetnMapfvFunPtr #-}
 
+-- | Usage: @'glGetnMapiv' target query bufSize v@
+
+
 glGetnMapiv :: MonadIO m => GLenum -> GLenum -> GLsizei -> Ptr GLint -> m ()
 glGetnMapiv = ffienumenumsizeiPtrintIOV glGetnMapivFunPtr
 
@@ -76,6 +94,9 @@
 
 {-# NOINLINE glGetnMapivFunPtr #-}
 
+-- | Usage: @'glGetnMinmax' target reset format type bufSize values@
+
+
 glGetnMinmax :: MonadIO m => GLenum -> GLboolean -> GLenum -> GLenum -> GLsizei -> Ptr () -> m ()
 glGetnMinmax = ffienumbooleanenumenumsizeiPtrVIOV glGetnMinmaxFunPtr
 
@@ -84,6 +105,9 @@
 
 {-# NOINLINE glGetnMinmaxFunPtr #-}
 
+-- | Usage: @'glGetnPixelMapfv' map bufSize values@
+
+
 glGetnPixelMapfv :: MonadIO m => GLenum -> GLsizei -> Ptr GLfloat -> m ()
 glGetnPixelMapfv = ffienumsizeiPtrfloatIOV glGetnPixelMapfvFunPtr
 
@@ -92,6 +116,9 @@
 
 {-# NOINLINE glGetnPixelMapfvFunPtr #-}
 
+-- | Usage: @'glGetnPixelMapuiv' map bufSize values@
+
+
 glGetnPixelMapuiv :: MonadIO m => GLenum -> GLsizei -> Ptr GLuint -> m ()
 glGetnPixelMapuiv = ffienumsizeiPtruintIOV glGetnPixelMapuivFunPtr
 
@@ -100,6 +127,9 @@
 
 {-# NOINLINE glGetnPixelMapuivFunPtr #-}
 
+-- | Usage: @'glGetnPixelMapusv' map bufSize values@
+
+
 glGetnPixelMapusv :: MonadIO m => GLenum -> GLsizei -> Ptr GLushort -> m ()
 glGetnPixelMapusv = ffienumsizeiPtrushortIOV glGetnPixelMapusvFunPtr
 
@@ -108,6 +138,9 @@
 
 {-# NOINLINE glGetnPixelMapusvFunPtr #-}
 
+-- | Usage: @'glGetnPolygonStipple' bufSize pattern@
+
+
 glGetnPolygonStipple :: MonadIO m => GLsizei -> Ptr GLubyte -> m ()
 glGetnPolygonStipple = ffisizeiPtrubyteIOV glGetnPolygonStippleFunPtr
 
@@ -115,6 +148,9 @@
 glGetnPolygonStippleFunPtr = unsafePerformIO (getProcAddress "glGetnPolygonStipple")
 
 {-# NOINLINE glGetnPolygonStippleFunPtr #-}
+
+-- | Usage: @'glGetnSeparableFilter' target format type rowBufSize row columnBufSize column span@
+
 
 glGetnSeparableFilter :: MonadIO m => GLenum -> GLenum -> GLenum -> GLsizei -> Ptr () -> GLsizei -> Ptr () -> Ptr () -> m ()
 glGetnSeparableFilter = ffienumenumenumsizeiPtrVsizeiPtrVPtrVIOV glGetnSeparableFilterFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Profile/Core32.hs b/dist/build/autogen/Graphics/GL/Raw/Profile/Core32.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Profile/Core32.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Profile/Core32.hs
@@ -1113,6 +1113,11 @@
 import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
+-- | Usage: @'glFramebufferTexture' target attachment texture level@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glFramebufferTexture.xhtml>
+
+
 glFramebufferTexture :: MonadIO m => GLenum -> GLenum -> GLuint -> GLint -> m ()
 glFramebufferTexture = ffienumenumuintintIOV glFramebufferTextureFunPtr
 
diff --git a/dist/build/autogen/Graphics/GL/Raw/Profile/Core40.hs b/dist/build/autogen/Graphics/GL/Raw/Profile/Core40.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Profile/Core40.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Profile/Core40.hs
@@ -139,6 +139,9 @@
 
 import Graphics.GL.Raw.Profile.Core33
 
+-- | Usage: @'glBlendEquationSeparatei' buf modeRGB modeAlpha@
+
+
 glBlendEquationSeparatei :: MonadIO m => GLuint -> GLenum -> GLenum -> m ()
 glBlendEquationSeparatei = ffiuintenumenumIOV glBlendEquationSeparateiFunPtr
 
@@ -147,6 +150,9 @@
 
 {-# NOINLINE glBlendEquationSeparateiFunPtr #-}
 
+-- | Usage: @'glBlendEquationi' buf mode@
+
+
 glBlendEquationi :: MonadIO m => GLuint -> GLenum -> m ()
 glBlendEquationi = ffiuintenumIOV glBlendEquationiFunPtr
 
@@ -155,6 +161,9 @@
 
 {-# NOINLINE glBlendEquationiFunPtr #-}
 
+-- | Usage: @'glBlendFuncSeparatei' buf srcRGB dstRGB srcAlpha dstAlpha@
+
+
 glBlendFuncSeparatei :: MonadIO m => GLuint -> GLenum -> GLenum -> GLenum -> GLenum -> m ()
 glBlendFuncSeparatei = ffiuintenumenumenumenumIOV glBlendFuncSeparateiFunPtr
 
@@ -163,6 +172,9 @@
 
 {-# NOINLINE glBlendFuncSeparateiFunPtr #-}
 
+-- | Usage: @'glBlendFunci' buf src dst@
+
+
 glBlendFunci :: MonadIO m => GLuint -> GLenum -> GLenum -> m ()
 glBlendFunci = ffiuintenumenumIOV glBlendFunciFunPtr
 
@@ -170,6 +182,13 @@
 glBlendFunciFunPtr = unsafePerformIO (getProcAddress "glBlendFunci")
 
 {-# NOINLINE glBlendFunciFunPtr #-}
+
+-- | Usage: @'glMinSampleShading' value@
+--
+-- The parameter @value@ is a @ColorF@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glMinSampleShading.xhtml>
+
 
 glMinSampleShading :: MonadIO m => GLfloat -> m ()
 glMinSampleShading = ffifloatIOV glMinSampleShadingFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Profile/Core45.hs b/dist/build/autogen/Graphics/GL/Raw/Profile/Core45.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Profile/Core45.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Profile/Core45.hs
@@ -148,6 +148,9 @@
 
 import Graphics.GL.Raw.Profile.Core44
 
+-- | Usage: @'glGetnCompressedTexImage' target lod bufSize pixels@
+
+
 glGetnCompressedTexImage :: MonadIO m => GLenum -> GLint -> GLsizei -> Ptr () -> m ()
 glGetnCompressedTexImage = ffienumintsizeiPtrVIOV glGetnCompressedTexImageFunPtr
 
@@ -156,6 +159,9 @@
 
 {-# NOINLINE glGetnCompressedTexImageFunPtr #-}
 
+-- | Usage: @'glGetnTexImage' target level format type bufSize pixels@
+
+
 glGetnTexImage :: MonadIO m => GLenum -> GLint -> GLenum -> GLenum -> GLsizei -> Ptr () -> m ()
 glGetnTexImage = ffienumintenumenumsizeiPtrVIOV glGetnTexImageFunPtr
 
@@ -163,6 +169,9 @@
 glGetnTexImageFunPtr = unsafePerformIO (getProcAddress "glGetnTexImage")
 
 {-# NOINLINE glGetnTexImageFunPtr #-}
+
+-- | Usage: @'glGetnUniformdv' program location bufSize params@
+
 
 glGetnUniformdv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLdouble -> m ()
 glGetnUniformdv = ffiuintintsizeiPtrdoubleIOV glGetnUniformdvFunPtr
diff --git a/dist/build/autogen/Graphics/GL/Raw/Profile/EmbeddedCommon11.hs b/dist/build/autogen/Graphics/GL/Raw/Profile/EmbeddedCommon11.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Profile/EmbeddedCommon11.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Profile/EmbeddedCommon11.hs
@@ -1,5 +1,102 @@
 -- This file was automatically generated.
 {-# LANGUAGE ScopedTypeVariables, PatternSynonyms #-}
 module Graphics.GL.Raw.Profile.EmbeddedCommon11 (
+  -- * Graphics.GL.Raw.Profile.EmbeddedCommon11
+    module Graphics.GL.Raw.Profile.EmbeddedLite11
+  , glAlphaFunc
+  , glClearColor
+  , glClearDepthf
+  , glClipPlanef
+  , glColor4f
+  , glDepthRangef
+  , glFogf
+  , glFogfv
+  , glFrustumf
+  , glGetClipPlanef
+  , glGetFloatv
+  , glGetLightfv
+  , glGetMaterialfv
+  , glGetTexEnvfv
+  , glGetTexParameterfv
+  , glLightModelf
+  , glLightModelfv
+  , glLightf
+  , glLightfv
+  , glLineWidth
+  , glLoadMatrixf
+  , glMaterialf
+  , glMaterialfv
+  , glMultMatrixf
+  , glMultiTexCoord4f
+  , glNormal3f
+  , glOrthof
+  , glPointParameterf
+  , glPointParameterfv
+  , glPointSize
+  , glPolygonOffset
+  , glRotatef
+  , glScalef
+  , glTexEnvf
+  , glTexEnvfv
+  , glTexParameterf
+  , glTexParameterfv
+  , glTranslatef
 ) where
 
+import Control.Monad.IO.Class
+import Foreign.Ptr
+import Graphics.GL.Raw.Internal.FFI
+import Graphics.GL.Raw.Internal.Proc
+import Graphics.GL.Raw.Internal.Shared
+import Graphics.GL.Raw.Types
+import System.IO.Unsafe
+
+import Graphics.GL.Raw.Profile.EmbeddedLite11
+
+-- | Usage: @'glClipPlanef' p eqn@
+--
+-- The length of @eqn@ should be @4@.
+
+
+glClipPlanef :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
+glClipPlanef = ffienumPtrfloatIOV glClipPlanefFunPtr
+
+glClipPlanefFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
+glClipPlanefFunPtr = unsafePerformIO (getProcAddress "glClipPlanef")
+
+{-# NOINLINE glClipPlanefFunPtr #-}
+
+-- | Usage: @'glFrustumf' l r b t n f@
+
+
+glFrustumf :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
+glFrustumf = ffifloatfloatfloatfloatfloatfloatIOV glFrustumfFunPtr
+
+glFrustumfFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+glFrustumfFunPtr = unsafePerformIO (getProcAddress "glFrustumf")
+
+{-# NOINLINE glFrustumfFunPtr #-}
+
+-- | Usage: @'glGetClipPlanef' plane equation@
+--
+-- The length of @equation@ should be @4@.
+
+
+glGetClipPlanef :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
+glGetClipPlanef = ffienumPtrfloatIOV glGetClipPlanefFunPtr
+
+glGetClipPlanefFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
+glGetClipPlanefFunPtr = unsafePerformIO (getProcAddress "glGetClipPlanef")
+
+{-# NOINLINE glGetClipPlanefFunPtr #-}
+
+-- | Usage: @'glOrthof' l r b t n f@
+
+
+glOrthof :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
+glOrthof = ffifloatfloatfloatfloatfloatfloatIOV glOrthofFunPtr
+
+glOrthofFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+glOrthofFunPtr = unsafePerformIO (getProcAddress "glOrthof")
+
+{-# NOINLINE glOrthofFunPtr #-}
diff --git a/dist/build/autogen/Graphics/GL/Raw/Profile/EmbeddedLite11.hs b/dist/build/autogen/Graphics/GL/Raw/Profile/EmbeddedLite11.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Profile/EmbeddedLite11.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Profile/EmbeddedLite11.hs
@@ -1,5 +1,917 @@
 -- This file was automatically generated.
 {-# LANGUAGE ScopedTypeVariables, PatternSynonyms #-}
 module Graphics.GL.Raw.Profile.EmbeddedLite11 (
+  -- * Graphics.GL.Raw.Profile.EmbeddedLite11
+    glActiveTexture
+  , glAlphaFuncx
+  , glBindBuffer
+  , glBindTexture
+  , glBlendFunc
+  , glBufferData
+  , glBufferSubData
+  , glClear
+  , glClearColorx
+  , glClearDepthx
+  , glClearStencil
+  , glClientActiveTexture
+  , glClipPlanex
+  , glColor4ub
+  , glColor4x
+  , glColorMask
+  , glColorPointer
+  , glCompressedTexImage2D
+  , glCompressedTexSubImage2D
+  , glCopyTexImage2D
+  , glCopyTexSubImage2D
+  , glCullFace
+  , glDeleteBuffers
+  , glDeleteTextures
+  , glDepthFunc
+  , glDepthMask
+  , glDepthRangex
+  , glDisable
+  , glDisableClientState
+  , glDrawArrays
+  , glDrawElements
+  , glEnable
+  , glEnableClientState
+  , glFinish
+  , glFlush
+  , glFogx
+  , glFogxv
+  , glFrontFace
+  , glFrustumx
+  , glGenBuffers
+  , glGenTextures
+  , glGetBooleanv
+  , glGetBufferParameteriv
+  , glGetClipPlanex
+  , glGetError
+  , glGetFixedv
+  , glGetIntegerv
+  , glGetLightxv
+  , glGetMaterialxv
+  , glGetPointerv
+  , glGetString
+  , glGetTexEnviv
+  , glGetTexEnvxv
+  , glGetTexParameteriv
+  , glGetTexParameterxv
+  , glHint
+  , glIsBuffer
+  , glIsEnabled
+  , glIsTexture
+  , glLightModelx
+  , glLightModelxv
+  , glLightx
+  , glLightxv
+  , glLineWidthx
+  , glLoadIdentity
+  , glLoadMatrixx
+  , glLogicOp
+  , glMaterialx
+  , glMaterialxv
+  , glMatrixMode
+  , glMultMatrixx
+  , glMultiTexCoord4x
+  , glNormal3x
+  , glNormalPointer
+  , glOrthox
+  , glPixelStorei
+  , glPointParameterx
+  , glPointParameterxv
+  , glPointSizex
+  , glPolygonOffsetx
+  , glPopMatrix
+  , glPushMatrix
+  , glReadPixels
+  , glRotatex
+  , glSampleCoverage
+  , glSampleCoveragex
+  , glScalex
+  , glScissor
+  , glShadeModel
+  , glStencilFunc
+  , glStencilMask
+  , glStencilOp
+  , glTexCoordPointer
+  , glTexEnvi
+  , glTexEnviv
+  , glTexEnvx
+  , glTexEnvxv
+  , glTexImage2D
+  , glTexParameteri
+  , glTexParameteriv
+  , glTexParameterx
+  , glTexParameterxv
+  , glTexSubImage2D
+  , glTranslatex
+  , glVertexPointer
+  , glViewport
+  , pattern GL_ACTIVE_TEXTURE
+  , pattern GL_ADD
+  , pattern GL_ADD_SIGNED
+  , pattern GL_ALIASED_LINE_WIDTH_RANGE
+  , pattern GL_ALIASED_POINT_SIZE_RANGE
+  , pattern GL_ALPHA
+  , pattern GL_ALPHA_BITS
+  , pattern GL_ALPHA_SCALE
+  , pattern GL_ALPHA_TEST
+  , pattern GL_ALPHA_TEST_FUNC
+  , pattern GL_ALPHA_TEST_REF
+  , pattern GL_ALWAYS
+  , pattern GL_AMBIENT
+  , pattern GL_AMBIENT_AND_DIFFUSE
+  , pattern GL_AND
+  , pattern GL_AND_INVERTED
+  , pattern GL_AND_REVERSE
+  , pattern GL_ARRAY_BUFFER
+  , pattern GL_ARRAY_BUFFER_BINDING
+  , pattern GL_BACK
+  , pattern GL_BLEND
+  , pattern GL_BLEND_DST
+  , pattern GL_BLEND_SRC
+  , pattern GL_BLUE_BITS
+  , pattern GL_BUFFER_SIZE
+  , pattern GL_BUFFER_USAGE
+  , pattern GL_BYTE
+  , pattern GL_CCW
+  , pattern GL_CLAMP_TO_EDGE
+  , pattern GL_CLEAR
+  , pattern GL_CLIENT_ACTIVE_TEXTURE
+  , pattern GL_CLIP_PLANE0
+  , pattern GL_CLIP_PLANE1
+  , pattern GL_CLIP_PLANE2
+  , pattern GL_CLIP_PLANE3
+  , pattern GL_CLIP_PLANE4
+  , pattern GL_CLIP_PLANE5
+  , pattern GL_COLOR_ARRAY
+  , pattern GL_COLOR_ARRAY_BUFFER_BINDING
+  , pattern GL_COLOR_ARRAY_POINTER
+  , pattern GL_COLOR_ARRAY_SIZE
+  , pattern GL_COLOR_ARRAY_STRIDE
+  , pattern GL_COLOR_ARRAY_TYPE
+  , pattern GL_COLOR_BUFFER_BIT
+  , pattern GL_COLOR_CLEAR_VALUE
+  , pattern GL_COLOR_LOGIC_OP
+  , pattern GL_COLOR_MATERIAL
+  , pattern GL_COLOR_WRITEMASK
+  , pattern GL_COMBINE
+  , pattern GL_COMBINE_ALPHA
+  , pattern GL_COMBINE_RGB
+  , pattern GL_COMPRESSED_TEXTURE_FORMATS
+  , pattern GL_CONSTANT
+  , pattern GL_CONSTANT_ATTENUATION
+  , pattern GL_COPY
+  , pattern GL_COPY_INVERTED
+  , pattern GL_CULL_FACE
+  , pattern GL_CULL_FACE_MODE
+  , pattern GL_CURRENT_COLOR
+  , pattern GL_CURRENT_NORMAL
+  , pattern GL_CURRENT_TEXTURE_COORDS
+  , pattern GL_CW
+  , pattern GL_DECAL
+  , pattern GL_DECR
+  , pattern GL_DEPTH_BITS
+  , pattern GL_DEPTH_BUFFER_BIT
+  , pattern GL_DEPTH_CLEAR_VALUE
+  , pattern GL_DEPTH_FUNC
+  , pattern GL_DEPTH_RANGE
+  , pattern GL_DEPTH_TEST
+  , pattern GL_DEPTH_WRITEMASK
+  , pattern GL_DIFFUSE
+  , pattern GL_DITHER
+  , pattern GL_DONT_CARE
+  , pattern GL_DOT3_RGB
+  , pattern GL_DOT3_RGBA
+  , pattern GL_DST_ALPHA
+  , pattern GL_DST_COLOR
+  , pattern GL_DYNAMIC_DRAW
+  , pattern GL_ELEMENT_ARRAY_BUFFER
+  , pattern GL_ELEMENT_ARRAY_BUFFER_BINDING
+  , pattern GL_EMISSION
+  , pattern GL_EQUAL
+  , pattern GL_EQUIV
+  , pattern GL_EXP
+  , pattern GL_EXP2
+  , pattern GL_EXTENSIONS
+  , pattern GL_FALSE
+  , pattern GL_FASTEST
+  , pattern GL_FIXED
+  , pattern GL_FLAT
+  , pattern GL_FLOAT
+  , pattern GL_FOG
+  , pattern GL_FOG_COLOR
+  , pattern GL_FOG_DENSITY
+  , pattern GL_FOG_END
+  , pattern GL_FOG_HINT
+  , pattern GL_FOG_MODE
+  , pattern GL_FOG_START
+  , pattern GL_FRONT
+  , pattern GL_FRONT_AND_BACK
+  , pattern GL_FRONT_FACE
+  , pattern GL_GENERATE_MIPMAP
+  , pattern GL_GENERATE_MIPMAP_HINT
+  , pattern GL_GEQUAL
+  , pattern GL_GREATER
+  , pattern GL_GREEN_BITS
+  , pattern GL_INCR
+  , pattern GL_INTERPOLATE
+  , pattern GL_INVALID_ENUM
+  , pattern GL_INVALID_OPERATION
+  , pattern GL_INVALID_VALUE
+  , pattern GL_INVERT
+  , pattern GL_KEEP
+  , pattern GL_LEQUAL
+  , pattern GL_LESS
+  , pattern GL_LIGHT0
+  , pattern GL_LIGHT1
+  , pattern GL_LIGHT2
+  , pattern GL_LIGHT3
+  , pattern GL_LIGHT4
+  , pattern GL_LIGHT5
+  , pattern GL_LIGHT6
+  , pattern GL_LIGHT7
+  , pattern GL_LIGHTING
+  , pattern GL_LIGHT_MODEL_AMBIENT
+  , pattern GL_LIGHT_MODEL_TWO_SIDE
+  , pattern GL_LINEAR
+  , pattern GL_LINEAR_ATTENUATION
+  , pattern GL_LINEAR_MIPMAP_LINEAR
+  , pattern GL_LINEAR_MIPMAP_NEAREST
+  , pattern GL_LINES
+  , pattern GL_LINE_LOOP
+  , pattern GL_LINE_SMOOTH
+  , pattern GL_LINE_SMOOTH_HINT
+  , pattern GL_LINE_STRIP
+  , pattern GL_LINE_WIDTH
+  , pattern GL_LOGIC_OP_MODE
+  , pattern GL_LUMINANCE
+  , pattern GL_LUMINANCE_ALPHA
+  , pattern GL_MATRIX_MODE
+  , pattern GL_MAX_CLIP_PLANES
+  , pattern GL_MAX_LIGHTS
+  , pattern GL_MAX_MODELVIEW_STACK_DEPTH
+  , pattern GL_MAX_PROJECTION_STACK_DEPTH
+  , pattern GL_MAX_TEXTURE_SIZE
+  , pattern GL_MAX_TEXTURE_STACK_DEPTH
+  , pattern GL_MAX_TEXTURE_UNITS
+  , pattern GL_MAX_VIEWPORT_DIMS
+  , pattern GL_MODELVIEW
+  , pattern GL_MODELVIEW_MATRIX
+  , pattern GL_MODELVIEW_STACK_DEPTH
+  , pattern GL_MODULATE
+  , pattern GL_MULTISAMPLE
+  , pattern GL_NAND
+  , pattern GL_NEAREST
+  , pattern GL_NEAREST_MIPMAP_LINEAR
+  , pattern GL_NEAREST_MIPMAP_NEAREST
+  , pattern GL_NEVER
+  , pattern GL_NICEST
+  , pattern GL_NOOP
+  , pattern GL_NOR
+  , pattern GL_NORMALIZE
+  , pattern GL_NORMAL_ARRAY
+  , pattern GL_NORMAL_ARRAY_BUFFER_BINDING
+  , pattern GL_NORMAL_ARRAY_POINTER
+  , pattern GL_NORMAL_ARRAY_STRIDE
+  , pattern GL_NORMAL_ARRAY_TYPE
+  , pattern GL_NOTEQUAL
+  , pattern GL_NO_ERROR
+  , pattern GL_NUM_COMPRESSED_TEXTURE_FORMATS
+  , pattern GL_ONE
+  , pattern GL_ONE_MINUS_DST_ALPHA
+  , pattern GL_ONE_MINUS_DST_COLOR
+  , pattern GL_ONE_MINUS_SRC_ALPHA
+  , pattern GL_ONE_MINUS_SRC_COLOR
+  , pattern GL_OPERAND0_ALPHA
+  , pattern GL_OPERAND0_RGB
+  , pattern GL_OPERAND1_ALPHA
+  , pattern GL_OPERAND1_RGB
+  , pattern GL_OPERAND2_ALPHA
+  , pattern GL_OPERAND2_RGB
+  , pattern GL_OR
+  , pattern GL_OR_INVERTED
+  , pattern GL_OR_REVERSE
+  , pattern GL_OUT_OF_MEMORY
+  , pattern GL_PACK_ALIGNMENT
+  , pattern GL_PERSPECTIVE_CORRECTION_HINT
+  , pattern GL_POINTS
+  , pattern GL_POINT_DISTANCE_ATTENUATION
+  , pattern GL_POINT_FADE_THRESHOLD_SIZE
+  , pattern GL_POINT_SIZE
+  , pattern GL_POINT_SIZE_MAX
+  , pattern GL_POINT_SIZE_MIN
+  , pattern GL_POINT_SMOOTH
+  , pattern GL_POINT_SMOOTH_HINT
+  , pattern GL_POLYGON_OFFSET_FACTOR
+  , pattern GL_POLYGON_OFFSET_FILL
+  , pattern GL_POLYGON_OFFSET_UNITS
+  , pattern GL_POSITION
+  , pattern GL_PREVIOUS
+  , pattern GL_PRIMARY_COLOR
+  , pattern GL_PROJECTION
+  , pattern GL_PROJECTION_MATRIX
+  , pattern GL_PROJECTION_STACK_DEPTH
+  , pattern GL_QUADRATIC_ATTENUATION
+  , pattern GL_RED_BITS
+  , pattern GL_RENDERER
+  , pattern GL_REPEAT
+  , pattern GL_REPLACE
+  , pattern GL_RESCALE_NORMAL
+  , pattern GL_RGB
+  , pattern GL_RGBA
+  , pattern GL_RGB_SCALE
+  , pattern GL_SAMPLES
+  , pattern GL_SAMPLE_ALPHA_TO_COVERAGE
+  , pattern GL_SAMPLE_ALPHA_TO_ONE
+  , pattern GL_SAMPLE_BUFFERS
+  , pattern GL_SAMPLE_COVERAGE
+  , pattern GL_SAMPLE_COVERAGE_INVERT
+  , pattern GL_SAMPLE_COVERAGE_VALUE
+  , pattern GL_SCISSOR_BOX
+  , pattern GL_SCISSOR_TEST
+  , pattern GL_SET
+  , pattern GL_SHADE_MODEL
+  , pattern GL_SHININESS
+  , pattern GL_SHORT
+  , pattern GL_SMOOTH
+  , pattern GL_SMOOTH_LINE_WIDTH_RANGE
+  , pattern GL_SMOOTH_POINT_SIZE_RANGE
+  , pattern GL_SPECULAR
+  , pattern GL_SPOT_CUTOFF
+  , pattern GL_SPOT_DIRECTION
+  , pattern GL_SPOT_EXPONENT
+  , pattern GL_SRC0_ALPHA
+  , pattern GL_SRC0_RGB
+  , pattern GL_SRC1_ALPHA
+  , pattern GL_SRC1_RGB
+  , pattern GL_SRC2_ALPHA
+  , pattern GL_SRC2_RGB
+  , pattern GL_SRC_ALPHA
+  , pattern GL_SRC_ALPHA_SATURATE
+  , pattern GL_SRC_COLOR
+  , pattern GL_STACK_OVERFLOW
+  , pattern GL_STACK_UNDERFLOW
+  , pattern GL_STATIC_DRAW
+  , pattern GL_STENCIL_BITS
+  , pattern GL_STENCIL_BUFFER_BIT
+  , pattern GL_STENCIL_CLEAR_VALUE
+  , pattern GL_STENCIL_FAIL
+  , pattern GL_STENCIL_FUNC
+  , pattern GL_STENCIL_PASS_DEPTH_FAIL
+  , pattern GL_STENCIL_PASS_DEPTH_PASS
+  , pattern GL_STENCIL_REF
+  , pattern GL_STENCIL_TEST
+  , pattern GL_STENCIL_VALUE_MASK
+  , pattern GL_STENCIL_WRITEMASK
+  , pattern GL_SUBPIXEL_BITS
+  , pattern GL_SUBTRACT
+  , pattern GL_TEXTURE
+  , pattern GL_TEXTURE0
+  , pattern GL_TEXTURE1
+  , pattern GL_TEXTURE10
+  , pattern GL_TEXTURE11
+  , pattern GL_TEXTURE12
+  , pattern GL_TEXTURE13
+  , pattern GL_TEXTURE14
+  , pattern GL_TEXTURE15
+  , pattern GL_TEXTURE16
+  , pattern GL_TEXTURE17
+  , pattern GL_TEXTURE18
+  , pattern GL_TEXTURE19
+  , pattern GL_TEXTURE2
+  , pattern GL_TEXTURE20
+  , pattern GL_TEXTURE21
+  , pattern GL_TEXTURE22
+  , pattern GL_TEXTURE23
+  , pattern GL_TEXTURE24
+  , pattern GL_TEXTURE25
+  , pattern GL_TEXTURE26
+  , pattern GL_TEXTURE27
+  , pattern GL_TEXTURE28
+  , pattern GL_TEXTURE29
+  , pattern GL_TEXTURE3
+  , pattern GL_TEXTURE30
+  , pattern GL_TEXTURE31
+  , pattern GL_TEXTURE4
+  , pattern GL_TEXTURE5
+  , pattern GL_TEXTURE6
+  , pattern GL_TEXTURE7
+  , pattern GL_TEXTURE8
+  , pattern GL_TEXTURE9
+  , pattern GL_TEXTURE_2D
+  , pattern GL_TEXTURE_BINDING_2D
+  , pattern GL_TEXTURE_COORD_ARRAY
+  , pattern GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING
+  , pattern GL_TEXTURE_COORD_ARRAY_POINTER
+  , pattern GL_TEXTURE_COORD_ARRAY_SIZE
+  , pattern GL_TEXTURE_COORD_ARRAY_STRIDE
+  , pattern GL_TEXTURE_COORD_ARRAY_TYPE
+  , pattern GL_TEXTURE_ENV
+  , pattern GL_TEXTURE_ENV_COLOR
+  , pattern GL_TEXTURE_ENV_MODE
+  , pattern GL_TEXTURE_MAG_FILTER
+  , pattern GL_TEXTURE_MATRIX
+  , pattern GL_TEXTURE_MIN_FILTER
+  , pattern GL_TEXTURE_STACK_DEPTH
+  , pattern GL_TEXTURE_WRAP_S
+  , pattern GL_TEXTURE_WRAP_T
+  , pattern GL_TRIANGLES
+  , pattern GL_TRIANGLE_FAN
+  , pattern GL_TRIANGLE_STRIP
+  , pattern GL_TRUE
+  , pattern GL_UNPACK_ALIGNMENT
+  , pattern GL_UNSIGNED_BYTE
+  , pattern GL_UNSIGNED_SHORT
+  , pattern GL_UNSIGNED_SHORT_4_4_4_4
+  , pattern GL_UNSIGNED_SHORT_5_5_5_1
+  , pattern GL_UNSIGNED_SHORT_5_6_5
+  , pattern GL_VENDOR
+  , pattern GL_VERSION
+  , pattern GL_VERSION_ES_CL_1_0
+  , pattern GL_VERSION_ES_CL_1_1
+  , pattern GL_VERSION_ES_CM_1_1
+  , pattern GL_VERTEX_ARRAY
+  , pattern GL_VERTEX_ARRAY_BUFFER_BINDING
+  , pattern GL_VERTEX_ARRAY_POINTER
+  , pattern GL_VERTEX_ARRAY_SIZE
+  , pattern GL_VERTEX_ARRAY_STRIDE
+  , pattern GL_VERTEX_ARRAY_TYPE
+  , pattern GL_VIEWPORT
+  , pattern GL_XOR
+  , pattern GL_ZERO
 ) where
 
+import Control.Monad.IO.Class
+import Foreign.Ptr
+import Graphics.GL.Raw.Internal.FFI
+import Graphics.GL.Raw.Internal.Proc
+import Graphics.GL.Raw.Internal.Shared
+import Graphics.GL.Raw.Types
+import System.IO.Unsafe
+
+-- | Usage: @'glAlphaFuncx' func ref@
+
+
+glAlphaFuncx :: MonadIO m => GLenum -> GLfixed -> m ()
+glAlphaFuncx = ffienumfixedIOV glAlphaFuncxFunPtr
+
+glAlphaFuncxFunPtr :: FunPtr (GLenum -> GLfixed -> IO ())
+glAlphaFuncxFunPtr = unsafePerformIO (getProcAddress "glAlphaFuncx")
+
+{-# NOINLINE glAlphaFuncxFunPtr #-}
+
+-- | Usage: @'glClearColorx' red green blue alpha@
+
+
+glClearColorx :: MonadIO m => GLfixed -> GLfixed -> GLfixed -> GLfixed -> m ()
+glClearColorx = ffifixedfixedfixedfixedIOV glClearColorxFunPtr
+
+glClearColorxFunPtr :: FunPtr (GLfixed -> GLfixed -> GLfixed -> GLfixed -> IO ())
+glClearColorxFunPtr = unsafePerformIO (getProcAddress "glClearColorx")
+
+{-# NOINLINE glClearColorxFunPtr #-}
+
+-- | Usage: @'glClearDepthx' depth@
+
+
+glClearDepthx :: MonadIO m => GLfixed -> m ()
+glClearDepthx = ffifixedIOV glClearDepthxFunPtr
+
+glClearDepthxFunPtr :: FunPtr (GLfixed -> IO ())
+glClearDepthxFunPtr = unsafePerformIO (getProcAddress "glClearDepthx")
+
+{-# NOINLINE glClearDepthxFunPtr #-}
+
+-- | Usage: @'glClipPlanex' plane equation@
+--
+-- The length of @equation@ should be @4@.
+
+
+glClipPlanex :: MonadIO m => GLenum -> Ptr GLfixed -> m ()
+glClipPlanex = ffienumPtrfixedIOV glClipPlanexFunPtr
+
+glClipPlanexFunPtr :: FunPtr (GLenum -> Ptr GLfixed -> IO ())
+glClipPlanexFunPtr = unsafePerformIO (getProcAddress "glClipPlanex")
+
+{-# NOINLINE glClipPlanexFunPtr #-}
+
+-- | Usage: @'glColor4x' red green blue alpha@
+
+
+glColor4x :: MonadIO m => GLfixed -> GLfixed -> GLfixed -> GLfixed -> m ()
+glColor4x = ffifixedfixedfixedfixedIOV glColor4xFunPtr
+
+glColor4xFunPtr :: FunPtr (GLfixed -> GLfixed -> GLfixed -> GLfixed -> IO ())
+glColor4xFunPtr = unsafePerformIO (getProcAddress "glColor4x")
+
+{-# NOINLINE glColor4xFunPtr #-}
+
+-- | Usage: @'glDepthRangex' n f@
+
+
+glDepthRangex :: MonadIO m => GLfixed -> GLfixed -> m ()
+glDepthRangex = ffifixedfixedIOV glDepthRangexFunPtr
+
+glDepthRangexFunPtr :: FunPtr (GLfixed -> GLfixed -> IO ())
+glDepthRangexFunPtr = unsafePerformIO (getProcAddress "glDepthRangex")
+
+{-# NOINLINE glDepthRangexFunPtr #-}
+
+-- | Usage: @'glFogx' pname param@
+
+
+glFogx :: MonadIO m => GLenum -> GLfixed -> m ()
+glFogx = ffienumfixedIOV glFogxFunPtr
+
+glFogxFunPtr :: FunPtr (GLenum -> GLfixed -> IO ())
+glFogxFunPtr = unsafePerformIO (getProcAddress "glFogx")
+
+{-# NOINLINE glFogxFunPtr #-}
+
+-- | Usage: @'glFogxv' pname param@
+--
+-- The length of @param@ should be @COMPSIZE(pname)@.
+
+
+glFogxv :: MonadIO m => GLenum -> Ptr GLfixed -> m ()
+glFogxv = ffienumPtrfixedIOV glFogxvFunPtr
+
+glFogxvFunPtr :: FunPtr (GLenum -> Ptr GLfixed -> IO ())
+glFogxvFunPtr = unsafePerformIO (getProcAddress "glFogxv")
+
+{-# NOINLINE glFogxvFunPtr #-}
+
+-- | Usage: @'glFrustumx' l r b t n f@
+
+
+glFrustumx :: MonadIO m => GLfixed -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> m ()
+glFrustumx = ffifixedfixedfixedfixedfixedfixedIOV glFrustumxFunPtr
+
+glFrustumxFunPtr :: FunPtr (GLfixed -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> IO ())
+glFrustumxFunPtr = unsafePerformIO (getProcAddress "glFrustumx")
+
+{-# NOINLINE glFrustumxFunPtr #-}
+
+-- | Usage: @'glGetClipPlanex' plane equation@
+--
+-- The length of @equation@ should be @4@.
+
+
+glGetClipPlanex :: MonadIO m => GLenum -> Ptr GLfixed -> m ()
+glGetClipPlanex = ffienumPtrfixedIOV glGetClipPlanexFunPtr
+
+glGetClipPlanexFunPtr :: FunPtr (GLenum -> Ptr GLfixed -> IO ())
+glGetClipPlanexFunPtr = unsafePerformIO (getProcAddress "glGetClipPlanex")
+
+{-# NOINLINE glGetClipPlanexFunPtr #-}
+
+-- | Usage: @'glGetFixedv' pname params@
+
+
+glGetFixedv :: MonadIO m => GLenum -> Ptr GLfixed -> m ()
+glGetFixedv = ffienumPtrfixedIOV glGetFixedvFunPtr
+
+glGetFixedvFunPtr :: FunPtr (GLenum -> Ptr GLfixed -> IO ())
+glGetFixedvFunPtr = unsafePerformIO (getProcAddress "glGetFixedv")
+
+{-# NOINLINE glGetFixedvFunPtr #-}
+
+-- | Usage: @'glGetLightxv' light pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetLightxv :: MonadIO m => GLenum -> GLenum -> Ptr GLfixed -> m ()
+glGetLightxv = ffienumenumPtrfixedIOV glGetLightxvFunPtr
+
+glGetLightxvFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfixed -> IO ())
+glGetLightxvFunPtr = unsafePerformIO (getProcAddress "glGetLightxv")
+
+{-# NOINLINE glGetLightxvFunPtr #-}
+
+-- | Usage: @'glGetMaterialxv' face pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetMaterialxv :: MonadIO m => GLenum -> GLenum -> Ptr GLfixed -> m ()
+glGetMaterialxv = ffienumenumPtrfixedIOV glGetMaterialxvFunPtr
+
+glGetMaterialxvFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfixed -> IO ())
+glGetMaterialxvFunPtr = unsafePerformIO (getProcAddress "glGetMaterialxv")
+
+{-# NOINLINE glGetMaterialxvFunPtr #-}
+
+-- | Usage: @'glGetTexEnvxv' target pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetTexEnvxv :: MonadIO m => GLenum -> GLenum -> Ptr GLfixed -> m ()
+glGetTexEnvxv = ffienumenumPtrfixedIOV glGetTexEnvxvFunPtr
+
+glGetTexEnvxvFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfixed -> IO ())
+glGetTexEnvxvFunPtr = unsafePerformIO (getProcAddress "glGetTexEnvxv")
+
+{-# NOINLINE glGetTexEnvxvFunPtr #-}
+
+-- | Usage: @'glGetTexParameterxv' target pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetTexParameterxv :: MonadIO m => GLenum -> GLenum -> Ptr GLfixed -> m ()
+glGetTexParameterxv = ffienumenumPtrfixedIOV glGetTexParameterxvFunPtr
+
+glGetTexParameterxvFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfixed -> IO ())
+glGetTexParameterxvFunPtr = unsafePerformIO (getProcAddress "glGetTexParameterxv")
+
+{-# NOINLINE glGetTexParameterxvFunPtr #-}
+
+-- | Usage: @'glLightModelx' pname param@
+
+
+glLightModelx :: MonadIO m => GLenum -> GLfixed -> m ()
+glLightModelx = ffienumfixedIOV glLightModelxFunPtr
+
+glLightModelxFunPtr :: FunPtr (GLenum -> GLfixed -> IO ())
+glLightModelxFunPtr = unsafePerformIO (getProcAddress "glLightModelx")
+
+{-# NOINLINE glLightModelxFunPtr #-}
+
+-- | Usage: @'glLightModelxv' pname param@
+--
+-- The length of @param@ should be @COMPSIZE(pname)@.
+
+
+glLightModelxv :: MonadIO m => GLenum -> Ptr GLfixed -> m ()
+glLightModelxv = ffienumPtrfixedIOV glLightModelxvFunPtr
+
+glLightModelxvFunPtr :: FunPtr (GLenum -> Ptr GLfixed -> IO ())
+glLightModelxvFunPtr = unsafePerformIO (getProcAddress "glLightModelxv")
+
+{-# NOINLINE glLightModelxvFunPtr #-}
+
+-- | Usage: @'glLightx' light pname param@
+
+
+glLightx :: MonadIO m => GLenum -> GLenum -> GLfixed -> m ()
+glLightx = ffienumenumfixedIOV glLightxFunPtr
+
+glLightxFunPtr :: FunPtr (GLenum -> GLenum -> GLfixed -> IO ())
+glLightxFunPtr = unsafePerformIO (getProcAddress "glLightx")
+
+{-# NOINLINE glLightxFunPtr #-}
+
+-- | Usage: @'glLightxv' light pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glLightxv :: MonadIO m => GLenum -> GLenum -> Ptr GLfixed -> m ()
+glLightxv = ffienumenumPtrfixedIOV glLightxvFunPtr
+
+glLightxvFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfixed -> IO ())
+glLightxvFunPtr = unsafePerformIO (getProcAddress "glLightxv")
+
+{-# NOINLINE glLightxvFunPtr #-}
+
+-- | Usage: @'glLineWidthx' width@
+
+
+glLineWidthx :: MonadIO m => GLfixed -> m ()
+glLineWidthx = ffifixedIOV glLineWidthxFunPtr
+
+glLineWidthxFunPtr :: FunPtr (GLfixed -> IO ())
+glLineWidthxFunPtr = unsafePerformIO (getProcAddress "glLineWidthx")
+
+{-# NOINLINE glLineWidthxFunPtr #-}
+
+-- | Usage: @'glLoadMatrixx' m@
+--
+-- The length of @m@ should be @16@.
+
+
+glLoadMatrixx :: MonadIO m => Ptr GLfixed -> m ()
+glLoadMatrixx = ffiPtrfixedIOV glLoadMatrixxFunPtr
+
+glLoadMatrixxFunPtr :: FunPtr (Ptr GLfixed -> IO ())
+glLoadMatrixxFunPtr = unsafePerformIO (getProcAddress "glLoadMatrixx")
+
+{-# NOINLINE glLoadMatrixxFunPtr #-}
+
+-- | Usage: @'glMaterialx' face pname param@
+
+
+glMaterialx :: MonadIO m => GLenum -> GLenum -> GLfixed -> m ()
+glMaterialx = ffienumenumfixedIOV glMaterialxFunPtr
+
+glMaterialxFunPtr :: FunPtr (GLenum -> GLenum -> GLfixed -> IO ())
+glMaterialxFunPtr = unsafePerformIO (getProcAddress "glMaterialx")
+
+{-# NOINLINE glMaterialxFunPtr #-}
+
+-- | Usage: @'glMaterialxv' face pname param@
+--
+-- The length of @param@ should be @COMPSIZE(pname)@.
+
+
+glMaterialxv :: MonadIO m => GLenum -> GLenum -> Ptr GLfixed -> m ()
+glMaterialxv = ffienumenumPtrfixedIOV glMaterialxvFunPtr
+
+glMaterialxvFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfixed -> IO ())
+glMaterialxvFunPtr = unsafePerformIO (getProcAddress "glMaterialxv")
+
+{-# NOINLINE glMaterialxvFunPtr #-}
+
+-- | Usage: @'glMultMatrixx' m@
+--
+-- The length of @m@ should be @16@.
+
+
+glMultMatrixx :: MonadIO m => Ptr GLfixed -> m ()
+glMultMatrixx = ffiPtrfixedIOV glMultMatrixxFunPtr
+
+glMultMatrixxFunPtr :: FunPtr (Ptr GLfixed -> IO ())
+glMultMatrixxFunPtr = unsafePerformIO (getProcAddress "glMultMatrixx")
+
+{-# NOINLINE glMultMatrixxFunPtr #-}
+
+-- | Usage: @'glMultiTexCoord4x' texture s t r q@
+
+
+glMultiTexCoord4x :: MonadIO m => GLenum -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> m ()
+glMultiTexCoord4x = ffienumfixedfixedfixedfixedIOV glMultiTexCoord4xFunPtr
+
+glMultiTexCoord4xFunPtr :: FunPtr (GLenum -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> IO ())
+glMultiTexCoord4xFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord4x")
+
+{-# NOINLINE glMultiTexCoord4xFunPtr #-}
+
+-- | Usage: @'glNormal3x' nx ny nz@
+
+
+glNormal3x :: MonadIO m => GLfixed -> GLfixed -> GLfixed -> m ()
+glNormal3x = ffifixedfixedfixedIOV glNormal3xFunPtr
+
+glNormal3xFunPtr :: FunPtr (GLfixed -> GLfixed -> GLfixed -> IO ())
+glNormal3xFunPtr = unsafePerformIO (getProcAddress "glNormal3x")
+
+{-# NOINLINE glNormal3xFunPtr #-}
+
+-- | Usage: @'glOrthox' l r b t n f@
+
+
+glOrthox :: MonadIO m => GLfixed -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> m ()
+glOrthox = ffifixedfixedfixedfixedfixedfixedIOV glOrthoxFunPtr
+
+glOrthoxFunPtr :: FunPtr (GLfixed -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> IO ())
+glOrthoxFunPtr = unsafePerformIO (getProcAddress "glOrthox")
+
+{-# NOINLINE glOrthoxFunPtr #-}
+
+-- | Usage: @'glPointParameterx' pname param@
+
+
+glPointParameterx :: MonadIO m => GLenum -> GLfixed -> m ()
+glPointParameterx = ffienumfixedIOV glPointParameterxFunPtr
+
+glPointParameterxFunPtr :: FunPtr (GLenum -> GLfixed -> IO ())
+glPointParameterxFunPtr = unsafePerformIO (getProcAddress "glPointParameterx")
+
+{-# NOINLINE glPointParameterxFunPtr #-}
+
+-- | Usage: @'glPointParameterxv' pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glPointParameterxv :: MonadIO m => GLenum -> Ptr GLfixed -> m ()
+glPointParameterxv = ffienumPtrfixedIOV glPointParameterxvFunPtr
+
+glPointParameterxvFunPtr :: FunPtr (GLenum -> Ptr GLfixed -> IO ())
+glPointParameterxvFunPtr = unsafePerformIO (getProcAddress "glPointParameterxv")
+
+{-# NOINLINE glPointParameterxvFunPtr #-}
+
+-- | Usage: @'glPointSizex' size@
+
+
+glPointSizex :: MonadIO m => GLfixed -> m ()
+glPointSizex = ffifixedIOV glPointSizexFunPtr
+
+glPointSizexFunPtr :: FunPtr (GLfixed -> IO ())
+glPointSizexFunPtr = unsafePerformIO (getProcAddress "glPointSizex")
+
+{-# NOINLINE glPointSizexFunPtr #-}
+
+-- | Usage: @'glPolygonOffsetx' factor units@
+
+
+glPolygonOffsetx :: MonadIO m => GLfixed -> GLfixed -> m ()
+glPolygonOffsetx = ffifixedfixedIOV glPolygonOffsetxFunPtr
+
+glPolygonOffsetxFunPtr :: FunPtr (GLfixed -> GLfixed -> IO ())
+glPolygonOffsetxFunPtr = unsafePerformIO (getProcAddress "glPolygonOffsetx")
+
+{-# NOINLINE glPolygonOffsetxFunPtr #-}
+
+-- | Usage: @'glRotatex' angle x y z@
+
+
+glRotatex :: MonadIO m => GLfixed -> GLfixed -> GLfixed -> GLfixed -> m ()
+glRotatex = ffifixedfixedfixedfixedIOV glRotatexFunPtr
+
+glRotatexFunPtr :: FunPtr (GLfixed -> GLfixed -> GLfixed -> GLfixed -> IO ())
+glRotatexFunPtr = unsafePerformIO (getProcAddress "glRotatex")
+
+{-# NOINLINE glRotatexFunPtr #-}
+
+-- | Usage: @'glSampleCoveragex' value invert@
+
+
+glSampleCoveragex :: MonadIO m => GLclampx -> GLboolean -> m ()
+glSampleCoveragex = fficlampxbooleanIOV glSampleCoveragexFunPtr
+
+glSampleCoveragexFunPtr :: FunPtr (GLclampx -> GLboolean -> IO ())
+glSampleCoveragexFunPtr = unsafePerformIO (getProcAddress "glSampleCoveragex")
+
+{-# NOINLINE glSampleCoveragexFunPtr #-}
+
+-- | Usage: @'glScalex' x y z@
+
+
+glScalex :: MonadIO m => GLfixed -> GLfixed -> GLfixed -> m ()
+glScalex = ffifixedfixedfixedIOV glScalexFunPtr
+
+glScalexFunPtr :: FunPtr (GLfixed -> GLfixed -> GLfixed -> IO ())
+glScalexFunPtr = unsafePerformIO (getProcAddress "glScalex")
+
+{-# NOINLINE glScalexFunPtr #-}
+
+-- | Usage: @'glTexEnvx' target pname param@
+
+
+glTexEnvx :: MonadIO m => GLenum -> GLenum -> GLfixed -> m ()
+glTexEnvx = ffienumenumfixedIOV glTexEnvxFunPtr
+
+glTexEnvxFunPtr :: FunPtr (GLenum -> GLenum -> GLfixed -> IO ())
+glTexEnvxFunPtr = unsafePerformIO (getProcAddress "glTexEnvx")
+
+{-# NOINLINE glTexEnvxFunPtr #-}
+
+-- | Usage: @'glTexEnvxv' target pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glTexEnvxv :: MonadIO m => GLenum -> GLenum -> Ptr GLfixed -> m ()
+glTexEnvxv = ffienumenumPtrfixedIOV glTexEnvxvFunPtr
+
+glTexEnvxvFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfixed -> IO ())
+glTexEnvxvFunPtr = unsafePerformIO (getProcAddress "glTexEnvxv")
+
+{-# NOINLINE glTexEnvxvFunPtr #-}
+
+-- | Usage: @'glTexParameterx' target pname param@
+
+
+glTexParameterx :: MonadIO m => GLenum -> GLenum -> GLfixed -> m ()
+glTexParameterx = ffienumenumfixedIOV glTexParameterxFunPtr
+
+glTexParameterxFunPtr :: FunPtr (GLenum -> GLenum -> GLfixed -> IO ())
+glTexParameterxFunPtr = unsafePerformIO (getProcAddress "glTexParameterx")
+
+{-# NOINLINE glTexParameterxFunPtr #-}
+
+-- | Usage: @'glTexParameterxv' target pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glTexParameterxv :: MonadIO m => GLenum -> GLenum -> Ptr GLfixed -> m ()
+glTexParameterxv = ffienumenumPtrfixedIOV glTexParameterxvFunPtr
+
+glTexParameterxvFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfixed -> IO ())
+glTexParameterxvFunPtr = unsafePerformIO (getProcAddress "glTexParameterxv")
+
+{-# NOINLINE glTexParameterxvFunPtr #-}
+
+-- | Usage: @'glTranslatex' x y z@
+
+
+glTranslatex :: MonadIO m => GLfixed -> GLfixed -> GLfixed -> m ()
+glTranslatex = ffifixedfixedfixedIOV glTranslatexFunPtr
+
+glTranslatexFunPtr :: FunPtr (GLfixed -> GLfixed -> GLfixed -> IO ())
+glTranslatexFunPtr = unsafePerformIO (getProcAddress "glTranslatex")
+
+{-# NOINLINE glTranslatexFunPtr #-}
+
+pattern GL_VERSION_ES_CL_1_0 = 1
+
+pattern GL_VERSION_ES_CL_1_1 = 1
+
+pattern GL_VERSION_ES_CM_1_1 = 1
diff --git a/extensions.txt b/extensions.txt
new file mode 100644
--- /dev/null
+++ b/extensions.txt
@@ -0,0 +1,632 @@
+3DFX/3dfx_multisample
+3DFX/tbuffer
+3DFX/texture_compression_FXT1
+3DL/stereo_control
+AMD/blend_minmax_factor
+AMD/conservative_depth
+AMD/debug_output
+AMD/depth_clamp_separate
+AMD/draw_buffers_blend
+AMD/gcn_shader
+AMD/glx_gpu_association
+AMD/gpu_shader_int64
+AMD/interleaved_elements
+AMD/multi_draw_indirect
+AMD/name_gen_delete
+AMD/occlusion_query_event
+AMD/performance_monitor
+AMD/pinned_memory
+AMD/query_buffer_object
+AMD/sample_positions
+AMD/seamless_cubemap_per_texture
+AMD/shader_atomic_counter_ops
+AMD/shader_stencil_export
+AMD/shader_stencil_value_export
+AMD/shader_trinary_minmax
+AMD/sparse_texture
+AMD/stencil_operation_extended
+AMD/texture_texture4
+AMD/transform_feedback3_lines_triangles
+AMD/transform_feedback4
+AMD/vertex_shader_layer
+AMD/vertex_shader_tessellator
+AMD/vertex_shader_viewport_index
+AMD/wgl_gpu_association
+APPLE/aux_depth_stencil
+APPLE/client_storage
+APPLE/element_array
+APPLE/fence
+APPLE/float_pixels
+APPLE/flush_buffer_range
+APPLE/object_purgeable
+APPLE/rgb_422
+APPLE/row_bytes
+APPLE/specular_vector
+APPLE/texture_range
+APPLE/transform_hint
+APPLE/vertex_array_object
+APPLE/vertex_array_range
+APPLE/vertex_program_evaluators
+APPLE/ycbcr_422
+ARB/ES2_compatibility
+ARB/ES3_1_compatibility
+ARB/ES3_compatibility
+ARB/arrays_of_arrays
+ARB/base_instance
+ARB/bindless_texture
+ARB/blend_func_extended
+ARB/buffer_storage
+ARB/cl_event
+ARB/clear_buffer_object
+ARB/clear_texture
+ARB/clip_control
+ARB/color_buffer_float
+ARB/color_buffer_float
+ARB/color_buffer_float
+ARB/compatibility
+ARB/compressed_texture_pixel_storage
+ARB/compute_shader
+ARB/compute_variable_group_size
+ARB/conditional_render_inverted
+ARB/conservative_depth
+ARB/copy_buffer
+ARB/copy_image
+ARB/cull_distance
+ARB/debug_output
+ARB/depth_buffer_float
+ARB/depth_clamp
+ARB/depth_texture
+ARB/derivative_control
+ARB/direct_state_access
+ARB/draw_buffers
+ARB/draw_buffers_blend
+ARB/draw_elements_base_vertex
+ARB/draw_indirect
+ARB/draw_instanced
+ARB/enhanced_layouts
+ARB/explicit_attrib_location
+ARB/explicit_uniform_location
+ARB/fragment_coord_conventions
+ARB/fragment_layer_viewport
+ARB/fragment_program
+ARB/fragment_program_shadow
+ARB/fragment_shader
+ARB/framebuffer_no_attachments
+ARB/framebuffer_object
+ARB/framebuffer_sRGB
+ARB/framebuffer_sRGB
+ARB/framebuffer_sRGB
+ARB/geometry_shader4
+ARB/get_proc_address
+ARB/get_program_binary
+ARB/get_texture_sub_image
+ARB/glx_create_context
+ARB/glx_create_context
+ARB/glx_create_context_robustness
+ARB/glx_robustness_isolation
+ARB/glx_robustness_isolation
+ARB/gpu_shader5
+ARB/gpu_shader_fp64
+ARB/half_float_pixel
+ARB/half_float_vertex
+ARB/indirect_parameters
+ARB/instanced_arrays
+ARB/internalformat_query
+ARB/internalformat_query2
+ARB/invalidate_subdata
+ARB/map_buffer_alignment
+ARB/map_buffer_range
+ARB/matrix_palette
+ARB/multi_bind
+ARB/multi_draw_indirect
+ARB/multisample
+ARB/multisample
+ARB/multisample
+ARB/multitexture
+ARB/occlusion_query
+ARB/occlusion_query2
+ARB/pipeline_statistics_query
+ARB/pixel_buffer_object
+ARB/point_parameters
+ARB/point_sprite
+ARB/program_interface_query
+ARB/provoking_vertex
+ARB/query_buffer_object
+ARB/robust_buffer_access_behavior
+ARB/robustness
+ARB/robustness_isolation
+ARB/sample_shading
+ARB/sampler_objects
+ARB/seamless_cube_map
+ARB/seamless_cubemap_per_texture
+ARB/separate_shader_objects
+ARB/shader_atomic_counters
+ARB/shader_bit_encoding
+ARB/shader_draw_parameters
+ARB/shader_group_vote
+ARB/shader_image_load_store
+ARB/shader_image_size
+ARB/shader_objects
+ARB/shader_precision
+ARB/shader_stencil_export
+ARB/shader_storage_buffer_object
+ARB/shader_subroutine
+ARB/shader_texture_image_samples
+ARB/shader_texture_lod
+ARB/shading_language_100
+ARB/shading_language_420pack
+ARB/shading_language_include
+ARB/shading_language_packing
+ARB/shadow
+ARB/shadow_ambient
+ARB/sparse_buffer
+ARB/sparse_texture
+ARB/stencil_texturing
+ARB/sync
+ARB/tessellation_shader
+ARB/texture_barrier
+ARB/texture_border_clamp
+ARB/texture_buffer_object
+ARB/texture_buffer_object_rgb32
+ARB/texture_buffer_range
+ARB/texture_compression
+ARB/texture_compression_bptc
+ARB/texture_compression_rgtc
+ARB/texture_cube_map
+ARB/texture_cube_map_array
+ARB/texture_env_add
+ARB/texture_env_combine
+ARB/texture_env_crossbar
+ARB/texture_env_dot3
+ARB/texture_float
+ARB/texture_gather
+ARB/texture_mirror_clamp_to_edge
+ARB/texture_mirrored_repeat
+ARB/texture_multisample
+ARB/texture_non_power_of_two
+ARB/texture_query_levels
+ARB/texture_query_lod
+ARB/texture_rectangle
+ARB/texture_rg
+ARB/texture_rgb10_a2ui
+ARB/texture_stencil8
+ARB/texture_storage
+ARB/texture_storage_multisample
+ARB/texture_swizzle
+ARB/texture_view
+ARB/timer_query
+ARB/transform_feedback2
+ARB/transform_feedback3
+ARB/transform_feedback_instanced
+ARB/transform_feedback_overflow_query
+ARB/transpose_matrix
+ARB/uniform_buffer_object
+ARB/vertex_array_bgra
+ARB/vertex_array_object
+ARB/vertex_attrib_64bit
+ARB/vertex_attrib_binding
+ARB/vertex_blend
+ARB/vertex_buffer_object
+ARB/vertex_buffer_object
+ARB/vertex_program
+ARB/vertex_shader
+ARB/vertex_type_10f_11f_11f_rev
+ARB/vertex_type_2_10_10_10_rev
+ARB/viewport_array
+ARB/wgl_buffer_region
+ARB/wgl_create_context
+ARB/wgl_create_context
+ARB/wgl_create_context_robustness
+ARB/wgl_extensions_string
+ARB/wgl_make_current_read
+ARB/wgl_pbuffer
+ARB/wgl_pixel_format
+ARB/wgl_render_texture
+ARB/wgl_robustness_isolation
+ARB/wgl_robustness_isolation
+ARB/window_pos
+ATI/draw_buffers
+ATI/element_array
+ATI/envmap_bumpmap
+ATI/fragment_shader
+ATI/map_object_buffer
+ATI/meminfo
+ATI/pixel_format_float
+ATI/pn_triangles
+ATI/separate_stencil
+ATI/text_fragment_shader
+ATI/texture_env_combine3
+ATI/texture_float
+ATI/texture_mirror_once
+ATI/vertex_array_object
+ATI/vertex_attrib_array_object
+ATI/vertex_streams
+EXT/422_pixels
+EXT/EXT_debug_label
+EXT/EXT_debug_marker
+EXT/abgr
+EXT/bgra
+EXT/bindable_uniform
+EXT/blend_color
+EXT/blend_equation_separate
+EXT/blend_func_separate
+EXT/blend_logic_op
+EXT/blend_minmax
+EXT/blend_subtract
+EXT/clip_volume_hint
+EXT/cmyka
+EXT/color_subtable
+EXT/compiled_vertex_array
+EXT/convolution
+EXT/coordinate_frame
+EXT/copy_texture
+EXT/cull_vertex
+EXT/depth_bounds_test
+EXT/direct_state_access
+EXT/draw_buffers2
+EXT/draw_instanced
+EXT/draw_range_elements
+EXT/fog_coord
+EXT/fragment_lighting
+EXT/framebuffer_blit
+EXT/framebuffer_multisample
+EXT/framebuffer_multisample_blit_scaled
+EXT/framebuffer_object
+EXT/framebuffer_sRGB
+EXT/framebuffer_sRGB
+EXT/framebuffer_sRGB
+EXT/geometry_shader4
+EXT/glx_buffer_age
+EXT/glx_create_context_es2_profile
+EXT/glx_create_context_es2_profile
+EXT/glx_stereo_tree
+EXT/glx_swap_control_tear
+EXT/gpu_program_parameters
+EXT/gpu_shader4
+EXT/histogram
+EXT/import_context
+EXT/index_array_formats
+EXT/index_func
+EXT/index_material
+EXT/index_texture
+EXT/light_texture
+EXT/misc_attribute
+EXT/multi_draw_arrays
+EXT/multi_draw_arrays
+EXT/nurbs_tessellator
+EXT/object_space_tess
+EXT/packed_depth_stencil
+EXT/packed_float
+EXT/packed_float
+EXT/packed_float
+EXT/packed_pixels
+EXT/paletted_texture
+EXT/pixel_buffer_object
+EXT/pixel_transform
+EXT/pixel_transform_color_table
+EXT/point_parameters
+EXT/polygon_offset
+EXT/polygon_offset_clamp
+EXT/post_depth_coverage
+EXT/provoking_vertex
+EXT/raster_multisample
+EXT/rescale_normal
+EXT/scene_marker
+EXT/scene_marker
+EXT/secondary_color
+EXT/separate_shader_objects
+EXT/separate_specular_color
+EXT/shader_image_load_formatted
+EXT/shader_image_load_store
+EXT/shader_integer_mix
+EXT/shadow_funcs
+EXT/shared_texture_palette
+EXT/sparse_texture2
+EXT/static_vertex_array
+EXT/stencil_clear_tag
+EXT/stencil_two_side
+EXT/stencil_wrap
+EXT/subtexture
+EXT/swap_control
+EXT/texture
+EXT/texture3D
+EXT/texture_array
+EXT/texture_buffer_object
+EXT/texture_compression_dxt1
+EXT/texture_compression_latc
+EXT/texture_compression_rgtc
+EXT/texture_compression_s3tc
+EXT/texture_env
+EXT/texture_env_add
+EXT/texture_env_combine
+EXT/texture_env_dot3
+EXT/texture_filter_anisotropic
+EXT/texture_filter_minmax
+EXT/texture_from_pixmap
+EXT/texture_integer
+EXT/texture_lod_bias
+EXT/texture_mirror_clamp
+EXT/texture_object
+EXT/texture_perturb_normal
+EXT/texture_sRGB
+EXT/texture_sRGB_decode
+EXT/texture_shared_exponent
+EXT/texture_snorm
+EXT/texture_swizzle
+EXT/timer_query
+EXT/transform_feedback
+EXT/vertex_array
+EXT/vertex_array_bgra
+EXT/vertex_array_set
+EXT/vertex_array_set.alt
+EXT/vertex_attrib_64bit
+EXT/vertex_shader
+EXT/vertex_weighting
+EXT/visual_info
+EXT/visual_rating
+EXT/wgl_create_context_es2_profile
+EXT/wgl_create_context_es2_profile
+EXT/wgl_depth_float
+EXT/wgl_display_color_table
+EXT/wgl_extensions_string
+EXT/wgl_make_current_read
+EXT/wgl_multisample
+EXT/wgl_multisample
+EXT/wgl_pbuffer
+EXT/wgl_pixel_format
+EXT/wgl_swap_control
+EXT/wgl_swap_control_tear
+EXT/x11_sync_object
+GREMEDY/frame_terminator
+GREMEDY/string_marker
+HP/convolution_border_modes
+HP/image_transform
+HP/occlusion_test
+HP/texture_lighting
+I3D/wgl_digital_video_control
+I3D/wgl_gamma
+I3D/wgl_genlock
+I3D/wgl_image_buffer
+I3D/wgl_swap_frame_lock
+I3D/wgl_swap_frame_usage
+IBM/cull_vertex
+IBM/multimode_draw_arrays
+IBM/rasterpos_clip
+IBM/static_data
+IBM/texture_mirrored_repeat
+IBM/vertex_array_lists
+INGR/color_clamp
+INGR/interlace_read
+INTEL/fragment_shader_ordering
+INTEL/map_texture
+INTEL/parallel_arrays
+INTEL/performance_query
+INTEL/swap_event
+INTEL/texture_scissor
+KHR/blend_equation_advanced
+KHR/blend_equation_advanced
+KHR/context_flush_control
+KHR/context_flush_control
+KHR/context_flush_control
+KHR/debug
+KHR/robust_buffer_access_behavior
+KHR/robustness
+KHR/texture_compression_astc_hdr
+KHR/texture_compression_astc_hdr
+MESA/agp_offset
+MESA/copy_sub_buffer
+MESA/glx_query_renderer
+MESA/pack_invert
+MESA/pixmap_colormap
+MESA/release_buffers
+MESA/resize_buffers
+MESA/set_3dfx_mode
+MESA/window_pos
+MESA/ycbcr_texture
+MESAX/texture_stack
+NV/DX_interop
+NV/DX_interop2
+NV/bindless_multi_draw_indirect
+NV/bindless_multi_draw_indirect_count
+NV/bindless_texture
+NV/blend_equation_advanced
+NV/blend_equation_advanced
+NV/blend_square
+NV/compute_program5
+NV/conditional_render
+NV/conservative_raster
+NV/copy_depth_to_color
+NV/copy_image
+NV/copy_image
+NV/copy_image
+NV/deep_texture3D
+NV/depth_buffer_float
+NV/depth_clamp
+NV/draw_texture
+NV/evaluators
+NV/explicit_multisample
+NV/fence
+NV/fill_rectangle
+NV/float_buffer
+NV/float_buffer
+NV/fog_distance
+NV/fragment_coverage_to_color
+NV/fragment_program
+NV/fragment_program2
+NV/fragment_program4
+NV/fragment_program_option
+NV/fragment_shader_interlock
+NV/framebuffer_mixed_samples
+NV/framebuffer_multisample_coverage
+NV/geometry_program4
+NV/geometry_shader4
+NV/geometry_shader_passthrough
+NV/glx_copy_buffer
+NV/glx_delay_before_swap
+NV/glx_swap_group
+NV/glx_video_output
+NV/gpu_affinity
+NV/gpu_program4
+NV/gpu_program5
+NV/gpu_program5_mem_extended
+NV/gpu_shader5
+NV/half_float
+NV/internalformat_sample_query
+NV/light_max_exponent
+NV/multisample_coverage
+NV/multisample_filter_hint
+NV/occlusion_query
+NV/packed_depth_stencil
+NV/parameter_buffer_object
+NV/parameter_buffer_object2
+NV/path_rendering
+NV/path_rendering_shared_edge
+NV/pixel_data_range
+NV/point_sprite
+NV/present_video
+NV/present_video
+NV/present_video
+NV/primitive_restart
+NV/register_combiners
+NV/register_combiners2
+NV/render_depth_texture
+NV/render_texture_rectangle
+NV/sample_locations
+NV/sample_mask_override_coverage
+NV/shader_atomic_counters
+NV/shader_atomic_float
+NV/shader_atomic_fp16_vector
+NV/shader_atomic_int64
+NV/shader_buffer_load
+NV/shader_buffer_store
+NV/shader_storage_buffer_object
+NV/shader_thread_group
+NV/shader_thread_shuffle
+NV/tessellation_program5
+NV/texgen_emboss
+NV/texgen_reflection
+NV/texture_barrier
+NV/texture_compression_vtc
+NV/texture_env_combine4
+NV/texture_expand_normal
+NV/texture_multisample
+NV/texture_rectangle
+NV/texture_shader
+NV/texture_shader2
+NV/texture_shader3
+NV/transform_feedback
+NV/transform_feedback2
+NV/uniform_buffer_unified_memory
+NV/vdpau_interop
+NV/vertex_array_range
+NV/vertex_array_range2
+NV/vertex_attrib_integer_64bit
+NV/vertex_buffer_unified_memory
+NV/vertex_program
+NV/vertex_program1_1
+NV/vertex_program2
+NV/vertex_program2_option
+NV/vertex_program3
+NV/vertex_program4
+NV/video_capture
+NV/video_capture
+NV/video_capture
+NV/wgl_delay_before_swap
+NV/wgl_swap_group
+NV/wgl_video_output
+NVX/gpu_memory_info
+NVX/nvx_conditional_render
+OES/OES_byte_coordinates
+OES/OES_compressed_paletted_texture
+OES/OES_fixed_point
+OES/OES_query_matrix
+OES/OES_read_format
+OES/OES_single_precision
+OML/glx_swap_method
+OML/glx_sync_control
+OML/interlace
+OML/resample
+OML/subsample
+OML/wgl_sync_control
+PGI/misc_hints
+PGI/vertex_hints
+REND/screen_coordinates
+S3/s3tc
+SGI/color_matrix
+SGI/color_table
+SGI/cushion
+SGI/filter4_parameters
+SGI/make_current_read
+SGI/swap_control
+SGI/texture_color_table
+SGI/video_sync
+SGIS/blended_overlay
+SGIS/color_range
+SGIS/color_range
+SGIS/detail_texture
+SGIS/fog_func
+SGIS/generate_mipmap
+SGIS/multisample
+SGIS/multisample
+SGIS/pixel_texture
+SGIS/point_line_texgen
+SGIS/sharpen_texture
+SGIS/texture4D
+SGIS/texture_border_clamp
+SGIS/texture_color_mask
+SGIS/texture_edge_clamp
+SGIS/texture_filter4
+SGIS/texture_lod
+SGIS/texture_select
+SGIX/async
+SGIX/async_histogram
+SGIX/async_pixel
+SGIX/blend_alpha_minmax
+SGIX/clipmap
+SGIX/convolution_accuracy
+SGIX/depth_texture
+SGIX/dmbuffer
+SGIX/fbconfig
+SGIX/flush_raster
+SGIX/fog_offset
+SGIX/fog_texture
+SGIX/fragment_specular_lighting
+SGIX/framezoom
+SGIX/hyperpipe_group
+SGIX/instruments
+SGIX/interlace
+SGIX/ir_instrument1
+SGIX/list_priority
+SGIX/pbuffer
+SGIX/pixel_texture_bits
+SGIX/reference_plane
+SGIX/resample
+SGIX/sgix_pixel_texture
+SGIX/shadow
+SGIX/shadow_ambient
+SGIX/sprite
+SGIX/swap_barrier
+SGIX/swap_group
+SGIX/tag_sample_buffer
+SGIX/texture_coordinate_clamp
+SGIX/texture_env_add
+SGIX/texture_lod_bias
+SGIX/texture_multi_buffer
+SGIX/texture_range
+SGIX/texture_scale_bias
+SGIX/vertex_preclip
+SGIX/vertex_preclip
+SGIX/video_resize
+SGIX/video_source
+SGIX/visual_select_group
+SGIX/ycrcb
+SUN/convolution_border_modes
+SUN/get_transparent_index
+SUN/global_alpha
+SUN/mesh_array
+SUN/slice_accum
+SUN/triangle_list
+SUN/vertex
+SUNX/constant_data
+WIN/phong_shading
+WIN/specular_fog
diff --git a/gl.cabal b/gl.cabal
--- a/gl.cabal
+++ b/gl.cabal
@@ -1,5 +1,5 @@
 name:          gl
-version:       0.3
+version:       0.4
 synopsis:      Complete OpenGL raw bindings
 description:   Complete OpenGL raw bindings
 license:       BSD3
@@ -13,7 +13,7 @@
 build-type:    Custom
 cabal-version: >=1.18
 extra-source-files:
-  gl.xml
+  gl.xml man.txt extensions.txt
   CHANGELOG.markdown README.markdown TODO.markdown
   Generator.hs Module.hs Parser.hs Registry.hs Utils.hs
 
@@ -41,7 +41,6 @@
     , fixed >= 0.2.1 && < 0.3
     , half >= 0.2 && < 0.3
     , transformers >= 0.2 && < 0.5
-    , vector == 0.10.*
 
   -- for Setup.hs
   build-depends:
@@ -73,12 +72,10 @@
       else
         extra-libraries: GL
 
-  other-modules:
-    Graphics.GL.Raw.Internal.Shared
-
   exposed-modules:
     Graphics.GL.Raw.Internal.FFI
     Graphics.GL.Raw.Internal.Proc
+    Graphics.GL.Raw.Internal.Shared
     Graphics.GL.Raw.Types
     Graphics.GL.Raw.Extension
     Graphics.GL.Raw.Extension.ThreeDFX
diff --git a/man.txt b/man.txt
new file mode 100644
--- /dev/null
+++ b/man.txt
@@ -0,0 +1,322 @@
+glActiveShaderProgram
+glActiveTexture
+glAttachShader
+glBeginConditionalRender
+glBeginQuery
+glBeginQueryIndexed
+glBeginTransformFeedback
+glBindAttribLocation
+glBindBuffer
+glBindBufferBase
+glBindBufferRange
+glBindBuffersBase
+glBindBuffersRange
+glBindFragDataLocation
+glBindFragDataLocationIndexed
+glBindFramebuffer
+glBindImageTexture
+glBindImageTextures
+glBindProgramPipeline
+glBindRenderbuffer
+glBindSampler
+glBindSamplers
+glBindTexture
+glBindTextureUnit
+glBindTextures
+glBindTransformFeedback
+glBindVertexArray
+glBindVertexBuffer
+glBindVertexBuffers
+glBlendColor
+glBlendEquation
+glBlendEquationSeparate
+glBlendFunc
+glBlendFuncSeparate
+glBlitFramebuffer
+glBufferData
+glBufferStorage
+glBufferSubData
+glCheckFramebufferStatus
+glClampColor
+glClear
+glClearBuffer
+glClearBufferData
+glClearBufferSubData
+glClearColor
+glClearDepth
+glClearStencil
+glClearTexImage
+glClearTexSubImage
+glClientWaitSync
+glClipControl
+glColorMask
+glCompileShader
+glCompressedTexImage1D
+glCompressedTexImage2D
+glCompressedTexImage3D
+glCompressedTexSubImage1D
+glCompressedTexSubImage2D
+glCompressedTexSubImage3D
+glCopyBufferSubData
+glCopyImageSubData
+glCopyTexImage1D
+glCopyTexImage2D
+glCopyTexSubImage1D
+glCopyTexSubImage2D
+glCopyTexSubImage3D
+glCreateBuffers
+glCreateFramebuffers
+glCreateProgram
+glCreateProgramPipelines
+glCreateQueries
+glCreateRenderbuffers
+glCreateSamplers
+glCreateShader
+glCreateShaderProgram
+glCreateTextures
+glCreateTransformFeedbacks
+glCreateVertexArrays
+glCullFace
+glDebugMessageCallback
+glDebugMessageControl
+glDebugMessageInsert
+glDeleteBuffers
+glDeleteFramebuffers
+glDeleteProgram
+glDeleteProgramPipelines
+glDeleteQueries
+glDeleteRenderbuffers
+glDeleteSamplers
+glDeleteShader
+glDeleteSync
+glDeleteTextures
+glDeleteTransformFeedbacks
+glDeleteVertexArrays
+glDepthFunc
+glDepthMask
+glDepthRange
+glDepthRangeArray
+glDepthRangeIndexed
+glDetachShader
+glDispatchCompute
+glDispatchComputeIndirect
+glDrawArrays
+glDrawArraysIndirect
+glDrawArraysInstanced
+glDrawArraysInstancedBaseInstance
+glDrawBuffer
+glDrawBuffers
+glDrawElements
+glDrawElementsBaseVertex
+glDrawElementsIndirect
+glDrawElementsInstanced
+glDrawElementsInstancedBaseInstance
+glDrawElementsInstancedBaseVertex
+glDrawElementsInstancedBaseVertexBaseInstance
+glDrawRangeElements
+glDrawRangeElementsBaseVertex
+glDrawTransformFeedback
+glDrawTransformFeedbackInstanced
+glDrawTransformFeedbackStream
+glDrawTransformFeedbackStreamInstanced
+glEnable
+glEnableVertexAttribArray
+glFenceSync
+glFinish
+glFlush
+glFlushMappedBufferRange
+glFramebufferParameteri
+glFramebufferRenderbuffer
+glFramebufferTexture
+glFramebufferTextureLayer
+glFrontFace
+glGenBuffers
+glGenFramebuffers
+glGenProgramPipelines
+glGenQueries
+glGenRenderbuffers
+glGenSamplers
+glGenTextures
+glGenTransformFeedbacks
+glGenVertexArrays
+glGenerateMipmap
+glGet
+glGetActiveAtomicCounterBufferiv
+glGetActiveAttrib
+glGetActiveSubroutineName
+glGetActiveSubroutineUniform
+glGetActiveSubroutineUniformName
+glGetActiveUniform
+glGetActiveUniformBlock
+glGetActiveUniformBlockName
+glGetActiveUniformName
+glGetActiveUniformsiv
+glGetAttachedShaders
+glGetAttribLocation
+glGetBufferParameter
+glGetBufferPointerv
+glGetBufferSubData
+glGetCompressedTexImage
+glGetCompressedTextureSubImage
+glGetDebugMessageLog
+glGetError
+glGetFragDataIndex
+glGetFragDataLocation
+glGetFramebufferAttachmentParameter
+glGetFramebufferParameter
+glGetGraphicsResetStatus
+glGetInternalformat
+glGetMultisample
+glGetObjectLabel
+glGetObjectPtrLabel
+glGetPointerv
+glGetProgram
+glGetProgramBinary
+glGetProgramInfoLog
+glGetProgramInterface
+glGetProgramPipeline
+glGetProgramPipelineInfoLog
+glGetProgramResource
+glGetProgramResourceIndex
+glGetProgramResourceLocation
+glGetProgramResourceLocationIndex
+glGetProgramResourceName
+glGetProgramStage
+glGetQueryIndexed
+glGetQueryObject
+glGetQueryiv
+glGetRenderbufferParameter
+glGetSamplerParameter
+glGetShader
+glGetShaderInfoLog
+glGetShaderPrecisionFormat
+glGetShaderSource
+glGetString
+glGetSubroutineIndex
+glGetSubroutineUniformLocation
+glGetSync
+glGetTexImage
+glGetTexLevelParameter
+glGetTexParameter
+glGetTextureSubImage
+glGetTransformFeedback
+glGetTransformFeedbackVarying
+glGetUniform
+glGetUniformBlockIndex
+glGetUniformIndices
+glGetUniformLocation
+glGetUniformSubroutine
+glGetVertexArrayIndexed
+glGetVertexArrayiv
+glGetVertexAttrib
+glGetVertexAttribPointerv
+glHint
+glInvalidateBufferData
+glInvalidateBufferSubData
+glInvalidateFramebuffer
+glInvalidateSubFramebuffer
+glInvalidateTexImage
+glInvalidateTexSubImage
+glIsBuffer
+glIsEnabled
+glIsFramebuffer
+glIsProgram
+glIsProgramPipeline
+glIsQuery
+glIsRenderbuffer
+glIsSampler
+glIsShader
+glIsSync
+glIsTexture
+glIsTransformFeedback
+glIsVertexArray
+glLineWidth
+glLinkProgram
+glLogicOp
+glMapBuffer
+glMapBufferRange
+glMemoryBarrier
+glMinSampleShading
+glMultiDrawArrays
+glMultiDrawArraysIndirect
+glMultiDrawElements
+glMultiDrawElementsBaseVertex
+glMultiDrawElementsIndirect
+glObjectLabel
+glObjectPtrLabel
+glPatchParameter
+glPauseTransformFeedback
+glPixelStore
+glPointParameter
+glPointSize
+glPolygonMode
+glPolygonOffset
+glPopDebugGroup
+glPrimitiveRestartIndex
+glProgramBinary
+glProgramParameter
+glProgramUniform
+glProvokingVertex
+glPushDebugGroup
+glQueryCounter
+glReadBuffer
+glReadPixels
+glReleaseShaderCompiler
+glRenderbufferStorage
+glRenderbufferStorageMultisample
+glResumeTransformFeedback
+glSampleCoverage
+glSampleMaski
+glSamplerParameter
+glScissor
+glScissorArray
+glScissorIndexed
+glShaderBinary
+glShaderSource
+glShaderStorageBlockBinding
+glStencilFunc
+glStencilFuncSeparate
+glStencilMask
+glStencilMaskSeparate
+glStencilOp
+glStencilOpSeparate
+glTexBuffer
+glTexBufferRange
+glTexImage1D
+glTexImage2D
+glTexImage2DMultisample
+glTexImage3D
+glTexImage3DMultisample
+glTexParameter
+glTexStorage1D
+glTexStorage2D
+glTexStorage2DMultisample
+glTexStorage3D
+glTexStorage3DMultisample
+glTexSubImage1D
+glTexSubImage2D
+glTexSubImage3D
+glTextureBarrier
+glTextureView
+glTransformFeedbackBufferBase
+glTransformFeedbackBufferRange
+glTransformFeedbackVaryings
+glUniform
+glUniformBlockBinding
+glUniformSubroutines
+glUnmapBuffer
+glUseProgram
+glUseProgramStages
+glValidateProgram
+glValidateProgramPipeline
+glVertexArrayElementBuffer
+glVertexAttrib
+glVertexAttribBinding
+glVertexAttribDivisor
+glVertexAttribFormat
+glVertexAttribPointer
+glVertexBindingDivisor
+glViewport
+glViewportArray
+glViewportIndexed
+glWaitSync
diff --git a/src/Graphics/GL/Raw/Internal/Proc.hs b/src/Graphics/GL/Raw/Internal/Proc.hs
--- a/src/Graphics/GL/Raw/Internal/Proc.hs
+++ b/src/Graphics/GL/Raw/Internal/Proc.hs
@@ -25,7 +25,6 @@
 
 import Control.Monad
 import Data.Functor
-import Data.List.Split (splitOn)
 import Data.Set as Set
 import Foreign.C.String
 import Foreign.Marshal.Alloc
diff --git a/src/Graphics/GL/Raw/Types.hs b/src/Graphics/GL/Raw/Types.hs
--- a/src/Graphics/GL/Raw/Types.hs
+++ b/src/Graphics/GL/Raw/Types.hs
@@ -101,15 +101,23 @@
        -> Ptr ()
        -> IO ())
 
+-- | The storage associated with the resulting 'FunPtr' has to be released with
+-- 'freeHaskellFunPtr' when it is no longer required.
 foreign import ccall "wrapper"
   mkGLDEBUGPROC :: (GLenum -> GLenum -> GLuint -> GLenum -> GLsizei -> Ptr GLchar -> Ptr () -> IO ()) -> IO GLDEBUGPROC
 
+-- | The storage associated with the resulting 'FunPtr' has to be released with
+-- 'freeHaskellFunPtr' when it is no longer required.
 foreign import ccall "wrapper"
   mkGLDEBUGPROCAMD :: (GLuint -> GLenum -> GLenum -> GLsizei -> Ptr GLchar -> Ptr () -> IO ()) -> IO GLDEBUGPROCAMD
 
+-- | The storage associated with the resulting 'FunPtr' has to be released with
+-- 'freeHaskellFunPtr' when it is no longer required.
 foreign import ccall "wrapper"
   mkGLDEBUGPROCARB :: (GLenum -> GLenum -> GLuint -> GLenum -> GLsizei -> Ptr GLchar -> Ptr () -> IO ()) -> IO GLDEBUGPROCARB
 
+-- | The storage associated with the resulting 'FunPtr' has to be released with
+-- 'freeHaskellFunPtr' when it is no longer required.
 foreign import ccall "wrapper"
   mkGLDEBUGPROCKHR :: (GLenum -> GLenum -> GLuint -> GLenum -> GLsizei -> Ptr GLchar -> Ptr () -> IO ()) -> IO GLDEBUGPROCKHR
 
@@ -117,7 +125,7 @@
 type GLboolean        = Word8
 type GLbyte           = Int8
 type GLchar           = CChar
-type GLcharARB        = Word8
+type GLcharARB        = CChar
 type GLclampd         = Double
 type GLclampf         = Float
 type GLclampx         = Int32
