diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,7 @@
+3.2.3.0
+-------
+* Updated OpenGL registry to r33189.
+
 3.2.2.0
 -------
 * Updated OpenGL registry to r33080.
diff --git a/OpenGLRaw.cabal b/OpenGLRaw.cabal
--- a/OpenGLRaw.cabal
+++ b/OpenGLRaw.cabal
@@ -1,5 +1,5 @@
 name: OpenGLRaw
-version: 3.2.2.0
+version: 3.2.3.0
 synopsis: A raw binding for the OpenGL graphics system
 description:
   OpenGLRaw is a raw Haskell binding for the OpenGL 4.5 graphics system and
@@ -74,6 +74,7 @@
     Graphics.GL.AMD.DebugOutput
     Graphics.GL.AMD.DepthClampSeparate
     Graphics.GL.AMD.DrawBuffersBlend
+    Graphics.GL.AMD.GPUShaderHalfFloat
     Graphics.GL.AMD.GPUShaderInt64
     Graphics.GL.AMD.InterleavedElements
     Graphics.GL.AMD.MultiDrawIndirect
diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -1,1 +1,4 @@
-[![Hackage](https://img.shields.io/hackage/v/OpenGLRaw.svg)](https://hackage.haskell.org/package/OpenGLRaw) [![Build Status](https://travis-ci.org/haskell-opengl/OpenGLRaw.png?branch=master)](https://travis-ci.org/haskell-opengl/OpenGLRaw)
+[![Hackage](https://img.shields.io/hackage/v/OpenGLRaw.svg)](https://hackage.haskell.org/package/OpenGLRaw)
+[![Stackage LTS](https://www.stackage.org/package/OpenGLRaw/badge/lts)](https://www.stackage.org/lts/package/OpenGLRaw)
+[![Stackage nightly](https://www.stackage.org/package/OpenGLRaw/badge/nightly)](https://www.stackage.org/nightly/package/OpenGLRaw)
+[![Build Status](https://img.shields.io/travis/haskell-opengl/OpenGLRaw/master.svg)](https://travis-ci.org/haskell-opengl/OpenGLRaw)
diff --git a/RegistryProcessor/OpenGL-Registry/gl.xml b/RegistryProcessor/OpenGL-Registry/gl.xml
# file too large to diff: RegistryProcessor/OpenGL-Registry/gl.xml
diff --git a/RegistryProcessor/RegistryProcessor.cabal b/RegistryProcessor/RegistryProcessor.cabal
--- a/RegistryProcessor/RegistryProcessor.cabal
+++ b/RegistryProcessor/RegistryProcessor.cabal
@@ -21,7 +21,8 @@
     containers >= 0.3 && < 0.6,
     hxt        >= 9.3 && < 9.4,
     directory  >= 1.0 && < 1.3,
-    filepath   >= 1.0 && < 1.5
+    filepath   >= 1.0 && < 1.5,
+    pretty     >= 1.1 && < 1.2
   hs-source-dirs: src
   default-language: Haskell2010
   ghc-options: -Wall
diff --git a/RegistryProcessor/src/Main.hs b/RegistryProcessor/src/Main.hs
--- a/RegistryProcessor/src/Main.hs
+++ b/RegistryProcessor/src/Main.hs
@@ -6,6 +6,7 @@
 import qualified Data.Map.Strict as M
 import qualified Data.Maybe as DM
 import qualified Data.Set as S
+import qualified Text.PrettyPrint.HughesPJClass as P
 import qualified System.Directory as D
 import qualified System.Environment as E
 import qualified System.FilePath as F
@@ -74,13 +75,12 @@
 
 printTokens :: API -> Registry -> IO ()
 printTokens api registry = do
-  let comment =
-        ["All enumeration tokens from the",
-         "<http://www.opengl.org/registry/ OpenGL registry>."]
-  startModule ["Tokens"] (Just "{-# LANGUAGE CPP, PatternSynonyms, ScopedTypeVariables #-}\n#if __GLASGOW_HASKELL__ >= 800\n{-# OPTIONS_GHC -Wno-missing-pattern-synonym-signatures #-}\n#endif") comment $ \moduleName h -> do
-    SI.hPutStrLn h $ "module " ++ moduleName ++ " where"
-    SI.hPutStrLn h ""
-    SI.hPutStrLn h $ "import " ++ moduleNameFor ["Types"]
+  let cmnt =
+        [Comment "All enumeration tokens from the",
+         Comment "<http://www.opengl.org/registry/ OpenGL registry>."]
+  startModule ["Tokens"] (Just "{-# LANGUAGE CPP, PatternSynonyms, ScopedTypeVariables #-}\n#if __GLASGOW_HASKELL__ >= 800\n{-# OPTIONS_GHC -Wno-missing-pattern-synonym-signatures #-}\n#endif") cmnt $ \moduleName h -> do
+    hRender h $ Module moduleName P.empty
+    hRender h $ Import (moduleNameFor ["Types"]) P.empty
     SI.hPutStrLn h ""
     mapM_ (SI.hPutStrLn h . unlines . convertEnum)
       [ e
@@ -90,40 +90,37 @@
 
 printGroups :: API -> Registry -> IO ()
 printGroups api registry = do
-  let comment =
-        ["All enumeration groups from the",
-         "<http://www.opengl.org/registry/ OpenGL registry>."]
-  startModule ["Groups"] Nothing comment $ \moduleName h -> do
-    SI.hPutStrLn h $ "module " ++ moduleName ++ " ("
-    SI.hPutStrLn h $ "  -- $EnumerantGroups"
-    SI.hPutStrLn h $ ") where"
-    SI.hPutStrLn h ""
-    SI.hPutStrLn h $ "-- $EnumerantGroups"
-    SI.hPutStrLn h $ "-- Note that the actual set of valid values depend on the OpenGL version, the"
-    SI.hPutStrLn h $ "-- chosen profile and the supported extensions. Therefore, the groups mentioned"
-    SI.hPutStrLn h $ "-- here should only be considered a rough guideline, for details see the OpenGL"
-    SI.hPutStrLn h $ "-- specification."
+  let cmnt =
+        [Comment "All enumeration groups from the",
+         Comment "<http://www.opengl.org/registry/ OpenGL registry>."]
+  startModule ["Groups"] Nothing cmnt $ \moduleName h -> do
+    hRender h $ Module moduleName (P.text "(\n  -- $EnumerantGroups\n)")
+    hRender h $ Comment "$EnumerantGroups"
+    hRender h $ Comment "Note that the actual set of valid values depend on the OpenGL version, the"
+    hRender h $ Comment "chosen profile and the supported extensions. Therefore, the groups mentioned"
+    hRender h $ Comment "here should only be considered a rough guideline, for details see the OpenGL"
+    hRender h $ Comment "specification."
     CM.forM_ (M.assocs (groups registry)) $ \(gn, g) -> do
       let ugn = unGroupName gn
           es = getGroupEnums api registry g
-      SI.hPutStrLn h $ "--"
-      SI.hPutStrLn h $ "-- === #" ++ ugn ++ "# " ++ ugn
-      SI.hPutStrLn h $ "-- " ++ groupHeader es
-      SI.hPutStrLn h $ "--"
+      hRender h $ Comment ""
+      hRender h $ Comment ("=== #" ++ ugn ++ "# " ++ ugn)
+      hRender h $ Comment (groupHeader es)
+      hRender h $ Comment ""
       -- TODO: Improve the alias computation below. It takes quadratic time and
       -- is very naive about what is the canonical name and what is an alias.
       CM.forM_ es $ \e -> do
         let same = L.sort [ f | f <- es, enumValue e == enumValue f ]
         CM.when (e == head same) $ do
-          SI.hPutStrLn h $ "-- * " ++ linkToToken e ++
+          hRender h $ Comment ("* " ++ linkToToken e ++
             (case tail same of
                 [] -> ""
                 aliases -> " (" ++ al ++ ": " ++ L.intercalate ", " (map linkToToken aliases) ++ ")"
                   where al | length aliases == 1 = "alias"
-                           | otherwise = "aliases")
+                           | otherwise = "aliases"))
 
 linkToToken :: Enum' -> String
-linkToToken e = "'" ++ moduleNameFor ["Tokens"] ++ "." ++ (unEnumName . enumName) e ++ "'"
+linkToToken e = "'" ++ (case moduleNameFor ["Tokens"] of ModuleName mn -> mn) ++ "." ++ (unEnumName . enumName) e ++ "'"
 
 -- There are several enums which are mentioned in groups, but commented out in
 -- enums (12 GL_*_ICC_SGIX enumerants). These are implicitly filtered out below.
@@ -154,17 +151,16 @@
 
 printForeign :: M.Map String String -> IO ()
 printForeign sigMap = do
-  let comment = ["All foreign imports."]
-  startModule ["Foreign"] (Just "{-# LANGUAGE CPP #-}\n{-# OPTIONS_HADDOCK hide #-}") comment $ \moduleName h -> do
-    SI.hPutStrLn h $ "module " ++ moduleName ++ " where"
-    SI.hPutStrLn h ""
-    SI.hPutStrLn h "import Foreign.C.Types"
-    SI.hPutStrLn h "import Foreign.Marshal.Error ( throwIf )"
-    SI.hPutStrLn h "import Foreign.Ptr"
-    SI.hPutStrLn h $ "import " ++ moduleNameFor ["GetProcAddress"] ++ " ( getProcAddress )"
-    SI.hPutStrLn h $ "import " ++ moduleNameFor ["Types"]
-    SI.hPutStrLn h "import Numeric.Fixed"
-    SI.hPutStrLn h "import Numeric.Half"
+  let cmnt = [Comment "All foreign imports."]
+  startModule ["Foreign"] (Just "{-# LANGUAGE CPP #-}\n{-# OPTIONS_HADDOCK hide #-}") cmnt $ \moduleName h -> do
+    hRender h $ Module moduleName P.empty
+    hRender h $ Import (ModuleName "Foreign.C.Types") P.empty
+    hRender h $ Import (ModuleName "Foreign.Marshal.Error") (P.text "( throwIf )")
+    hRender h $ Import (ModuleName "Foreign.Ptr") P.empty
+    hRender h $ Import (moduleNameFor ["GetProcAddress"]) (P.text "( getProcAddress )")
+    hRender h $ Import (moduleNameFor ["Types"]) P.empty
+    hRender h $ Import (ModuleName "Numeric.Fixed") P.empty
+    hRender h $ Import (ModuleName "Numeric.Half") P.empty
     SI.hPutStrLn h ""
     SI.hPutStrLn h "getCommand :: String -> IO (FunPtr a)"
     SI.hPutStrLn h "getCommand cmd ="
@@ -182,36 +178,31 @@
 
 printFunctions :: API -> Registry -> M.Map String String -> IO ()
 printFunctions api registry sigMap = do
-  let comment =
-        ["All raw functions from the",
-         "<http://www.opengl.org/registry/ OpenGL registry>."]
+  let cmnt =
+        [Comment "All raw functions from the",
+         Comment "<http://www.opengl.org/registry/ OpenGL registry>."]
       cmds = chunksOf 100 . M.toAscList . commands $ registry
       mnames = [ [ "Functions", "F" ++ justifyRight 2 '0' (show i) ] |
                    i <- [ 1 .. length cmds ] ]
-  startModule ["Functions"] Nothing comment $ \moduleName h -> do
-    SI.hPutStrLn h $ "module " ++ moduleName ++ " ("
-    SI.hPutStrLn h . separate (("module " ++) . moduleNameFor) $ mnames
-    SI.hPutStrLn h ") where"
-    SI.hPutStrLn h ""
-    mapM_ (SI.hPutStrLn h . ("import " ++) . moduleNameFor) mnames
+  startModule ["Functions"] Nothing cmnt $ \moduleName h -> do
+    hRender h $ Module moduleName (P.text ("(\n" ++ separate (\x -> "module " ++ (case moduleNameFor x of ModuleName mn -> mn)) mnames ++ "\n)"))
+    CM.forM_ mnames $ \mname ->
+      hRender h $ Import (moduleNameFor mname) P.empty
   CM.zipWithM_ (printSubFunctions api registry sigMap) mnames cmds
 
 printSubFunctions :: API -> Registry -> M.Map String String ->
                      [String] -> [(CommandName, Command)] -> IO ()
 printSubFunctions api registry sigMap mname cmds = do
-  let comment =
-        ["Raw functions from the",
-         "<http://www.opengl.org/registry/ OpenGL registry>."]
-  startModule mname (Just "{-# OPTIONS_HADDOCK hide #-}") comment $ \moduleName h -> do
-    SI.hPutStrLn h $ "module " ++ moduleName ++ " ("
-    SI.hPutStrLn h . separate unCommandName . map fst $ cmds
-    SI.hPutStrLn h ") where"
-    SI.hPutStrLn h ""
-    SI.hPutStrLn h "import Control.Monad.IO.Class ( MonadIO(..) )"
-    SI.hPutStrLn h "import Foreign.Ptr"
-    SI.hPutStrLn h $ "import " ++ moduleNameFor ["Foreign"]
-    SI.hPutStrLn h $ "import " ++ moduleNameFor ["Types"]
-    SI.hPutStrLn h "import System.IO.Unsafe ( unsafePerformIO )"
+  let cmnt =
+        [Comment "Raw functions from the",
+         Comment "<http://www.opengl.org/registry/ OpenGL registry>."]
+  startModule mname (Just "{-# OPTIONS_HADDOCK hide #-}") cmnt $ \moduleName h -> do
+    hRender h $ Module moduleName (P.text ("(\n" ++ separate unCommandName (map fst cmds) ++ "\n)"))
+    hRender h $ Import (ModuleName "Control.Monad.IO.Class") (P.text "( MonadIO(..) )")
+    hRender h $ Import (ModuleName "Foreign.Ptr") P.empty
+    hRender h $ Import (moduleNameFor ["Foreign"]) P.empty
+    hRender h $ Import (moduleNameFor ["Types"]) P.empty
+    hRender h $ Import (ModuleName "System.IO.Unsafe") (P.text "( unsafePerformIO )")
     SI.hPutStrLn h ""
     mapM_ (SI.hPutStrLn h . showCommand api registry sigMap . snd) cmds
 
@@ -339,24 +330,20 @@
       reExports = [ (cat, L.sort mangledExtNames)
                   | (cat, mangledExtNames) <- M.toList extMap ]
   CM.forM_ reExports $ \((category, mangledCategory), mangledExtNames) -> do
-    let comment = ["A convenience module, combining all raw modules containing " ++ category ++ " extensions."]
-    startModule [mangledCategory] Nothing comment $ \moduleName h -> do
-      SI.hPutStrLn h $ "module "++ moduleName ++ " ("
-      SI.hPutStrLn h $ separate (\mangledExtName -> "module " ++ extensionNameFor mangledExtName) mangledExtNames
-      SI.hPutStrLn h ") where"
-      SI.hPutStrLn h ""
+    let cmnt = [Comment ("A convenience module, combining all raw modules containing " ++ category ++ " extensions.")]
+    startModule [mangledCategory] Nothing cmnt $ \moduleName h -> do
+      hRender h $ Module moduleName (P.text ("(\n" ++ separate (\mangledExtName -> "module " ++ (case extensionNameFor mangledExtName of ModuleName mn -> mn)) mangledExtNames ++ "\n)"))
       CM.forM_ mangledExtNames $ \mangledExtName ->
-        SI.hPutStrLn h $ "import " ++ extensionNameFor mangledExtName
+        hRender h $ Import (extensionNameFor mangledExtName) P.empty
 
 printExtensionSupport :: [ExtensionModule] -> IO ()
 printExtensionSupport extModules = do
-  let comment = ["Extension support predicates."]
-  startModule ["ExtensionPredicates"] (Just "{-# OPTIONS_HADDOCK hide #-}") comment $ \moduleName h -> do
-    SI.hPutStrLn h $ "module "++ moduleName ++ " where"
-    SI.hPutStrLn h $ ""
-    SI.hPutStrLn h $ "import Control.Monad.IO.Class ( MonadIO(..) )"
-    SI.hPutStrLn h $ "import Data.Set ( member )"
-    SI.hPutStrLn h $ "import " ++ moduleNameFor ["GetProcAddress"] ++ " ( getExtensions, extensions )"
+  let cmnt = [Comment "Extension support predicates."]
+  startModule ["ExtensionPredicates"] (Just "{-# OPTIONS_HADDOCK hide #-}") cmnt $ \moduleName h -> do
+    hRender h $ Module moduleName P.empty
+    hRender h $ Import (ModuleName "Control.Monad.IO.Class") (P.text "( MonadIO(..) )")
+    hRender h $ Import (ModuleName "Data.Set") (P.text "( member )")
+    hRender h $ Import (moduleNameFor ["GetProcAddress"]) (P.text "( getExtensions, extensions )")
     let names = sortUnique [ extName | (extName, _, _) <- extModules]
     CM.forM_ names $ \extName -> do
       let predNameMonad = extensionPredicateNameMonad extName
@@ -365,18 +352,18 @@
                                 , extensionNameCategory extName
                                  , extensionNameName extName ]
       SI.hPutStrLn h $ ""
-      SI.hPutStrLn h $ "-- | Is the " ++ extensionHyperlink extName ++ " extension supported?"
+      hRender h $ Comment ("| Is the " ++ extensionHyperlink extName ++ " extension supported?")
       SI.hPutStrLn h $ predNameMonad ++ " :: MonadIO m => m Bool"
       SI.hPutStrLn h $ predNameMonad ++ " = getExtensions >>= (return . member " ++ show extString ++ ")"
       SI.hPutStrLn h $ ""
-      SI.hPutStrLn h $ "-- | Is the " ++ extensionHyperlink extName ++ " extension supported?"
-      SI.hPutStrLn h $ "-- Note that in the presence of multiple contexts with different capabilities,"
-      SI.hPutStrLn h $ "-- this might be wrong. Use '" ++ predNameMonad ++ "' in those cases instead."
+      hRender h $ Comment ("| Is the " ++ extensionHyperlink extName ++ " extension supported?")
+      hRender h $ Comment "Note that in the presence of multiple contexts with different capabilities,"
+      hRender h $ Comment ("this might be wrong. Use '" ++ predNameMonad ++ "' in those cases instead.")
       SI.hPutStrLn h $ predName ++ " :: Bool"
       SI.hPutStrLn h $ predName ++ " = member " ++ show extString ++ " extensions"
       SI.hPutStrLn h $ "{-# NOINLINE " ++ predName ++ " #-}"
 
-extensionNameFor :: ExtensionName -> String
+extensionNameFor :: ExtensionName -> ModuleName
 extensionNameFor mangledExtName = moduleNameFor [extensionNameCategory mangledExtName, extensionNameName mangledExtName]
 
 supports :: API -> Maybe [API] -> Bool
@@ -394,33 +381,32 @@
 printExtension moduleNameSuffix mbExtName (ts, es, cs) = do
   let pragma = if null es then Nothing else Just "{-# LANGUAGE PatternSynonyms #-}"
   startModule moduleNameSuffix pragma [] $ \moduleName h -> do
-    SI.hPutStrLn h $ "module "++ moduleName ++ " ("
-    flip (maybe (return ())) mbExtName $ \extName -> do
-      SI.hPutStrLn h "  -- * Extension Support"
-      SI.hPutStrLn h $ separate id [ extensionPredicateNameMonad extName
-                                   , extensionPredicateName extName ] ++ ","
-    CM.unless (null ts) $ do
-      SI.hPutStrLn h "  -- * Types"
-      SI.hPutStr h $ separate unTypeName ts
-      SI.hPutStrLn h $ if null es && null cs then "" else ","
-    CM.unless (null es) $ do
-      SI.hPutStrLn h "  -- * Enums"
-      SI.hPutStr h $ separate (("pattern " ++) . unEnumName . enumName) es
-      SI.hPutStrLn h $ if null cs then "" else ","
-    CM.unless (null cs) $ do
-      SI.hPutStrLn h "  -- * Functions"
-      SI.hPutStr h $ separate (unCommandName . commandName) cs
-      SI.hPutStrLn h ""
-    SI.hPutStrLn h ") where"
-    SI.hPutStrLn h ""
+    let extStr = flip (maybe "") mbExtName $ \extName ->
+                   "  -- * Extension Support\n" ++
+                   separate id [ extensionPredicateNameMonad extName
+                               , extensionPredicateName extName ] ++ ",\n"
+        typeStr  | null ts = ""
+                 | otherwise = "  -- * Types\n" ++
+                               separate unTypeName ts ++
+                               if null es && null cs then "\n" else ",\n"
+        enumStr | null es = ""
+                | otherwise = "  -- * Enums\n" ++
+                              separate (("pattern " ++) . unEnumName . enumName) es ++
+                              if null cs then "\n" else ",\n"
+        funcStr | null cs = ""
+                | otherwise = "  -- * Functions\n" ++
+                              separate (unCommandName . commandName) cs ++
+                              "\n"
+
+    hRender h $ Module moduleName (P.text ("(\n" ++ extStr ++ typeStr ++ enumStr ++ funcStr ++ ")"))
     CM.when (DM.isJust mbExtName) $
-      SI.hPutStrLn h $ "import " ++ moduleNameFor ["ExtensionPredicates"]
+      hRender h $ Import (moduleNameFor ["ExtensionPredicates"]) P.empty
     CM.unless (null ts) $
-      SI.hPutStrLn h $ "import " ++ moduleNameFor ["Types"]
+      hRender h $ Import (moduleNameFor ["Types"]) P.empty
     CM.unless (null es) $
-      SI.hPutStrLn h $ "import " ++ moduleNameFor ["Tokens"]
+      hRender h $ Import (moduleNameFor ["Tokens"]) P.empty
     CM.unless (null cs) $
-      SI.hPutStrLn h $ "import " ++ moduleNameFor ["Functions"]
+      hRender h $ Import (moduleNameFor ["Functions"]) P.empty
 
 extensionPredicateName :: ExtensionName -> String
 extensionPredicateName extName =
@@ -443,19 +429,16 @@
       profToReExport = profileToReExport api
       lastComp = featureName (latestVersion api) profToReExport
       moduleNames = [ moduleNameFor [c] | c <- [ lastComp, "GetProcAddress" ] ++ mangledCategories ]
-      comment = [ L.intercalate " "
-                    [ "A convenience module, combining the latest"
-                    , apiName api
-                    , maybe "version" (\p -> unProfileName p ++ " profile") profToReExport
-                    , "plus" ]
-                , "all extensions." ]
-  startModule [] Nothing comment $ \moduleName h -> do
-    SI.hPutStrLn h $ "module "++ moduleName ++ " ("
-    SI.hPutStrLn h $ separate (\m -> "module " ++ m) moduleNames
-    SI.hPutStrLn h ") where"
-    SI.hPutStrLn h ""
+      cmnt = [ Comment (L.intercalate " "
+                 [ "A convenience module, combining the latest"
+                 , apiName api
+                 , maybe "version" (\p -> unProfileName p ++ " profile") profToReExport
+                 , "plus" ])
+             , Comment "all extensions." ]
+  startModule [] Nothing cmnt $ \moduleName h -> do
+    hRender h $ Module moduleName (P.text ("(\n" ++ separate (\(ModuleName m) -> "module " ++ m) moduleNames ++ "\n)"))
     CM.forM_ moduleNames $ \theModuleName ->
-      SI.hPutStrLn h $ "import " ++ theModuleName
+      hRender h $ Import theModuleName P.empty
 
 apiName :: API -> String
 apiName api = case unAPI api of
@@ -467,7 +450,7 @@
 sortUnique :: Ord a => [a] -> [a]
 sortUnique = S.toList . S.fromList
 
-startModule :: [String] -> Maybe String -> [String] -> (String -> SI.Handle -> IO ()) -> IO ()
+startModule :: [String] -> Maybe String -> [Comment] -> (ModuleName -> SI.Handle -> IO ()) -> IO ()
 startModule moduleNameSuffix mbPragma comments action = do
   let path = modulePathFor moduleNameSuffix
       moduleName = moduleNameFor moduleNameSuffix
@@ -476,8 +459,8 @@
     printModuleHeader h mbPragma moduleName comments
     action moduleName h
 
-moduleNameFor :: [String] -> String
-moduleNameFor = L.intercalate "." . moduleNameParts
+moduleNameFor :: [String] -> ModuleName
+moduleNameFor = ModuleName . L.intercalate "." . moduleNameParts
 
 modulePathFor :: [String] -> FilePath
 modulePathFor moduleNameSuffix = F.joinPath (moduleNameParts moduleNameSuffix) `F.addExtension` "hs"
@@ -485,23 +468,23 @@
 moduleNameParts :: [String] -> [String]
 moduleNameParts = (["Graphics", "GL"] ++)
 
-printModuleHeader :: SI.Handle -> Maybe String -> String -> [String] -> IO ()
-printModuleHeader h mbPragma moduleName comments = do
+printModuleHeader :: SI.Handle -> Maybe String -> ModuleName -> [Comment] -> IO ()
+printModuleHeader h mbPragma (ModuleName moduleName) comments = do
   maybe (return ()) (SI.hPutStrLn h) mbPragma
-  SI.hPutStrLn h "--------------------------------------------------------------------------------"
-  SI.hPutStrLn h "-- |"
-  SI.hPutStrLn h $ "-- Module      :  " ++ moduleName
-  SI.hPutStrLn h "-- Copyright   :  (c) Sven Panne 2016"
-  SI.hPutStrLn h "-- License     :  BSD3"
-  SI.hPutStrLn h "--"
-  SI.hPutStrLn h "-- Maintainer  :  Sven Panne <svenpanne@gmail.com>"
-  SI.hPutStrLn h "-- Stability   :  stable"
-  SI.hPutStrLn h "-- Portability :  portable"
-  SI.hPutStrLn h "--"
+  hRender h $ Comment "------------------------------------------------------------------------------"
+  hRender h $ Comment "|"
+  hRender h $ Comment ("Module      :  " ++ moduleName)
+  hRender h $ Comment "Copyright   :  (c) Sven Panne 2016"
+  hRender h $ Comment "License     :  BSD3"
+  hRender h $ Comment ""
+  hRender h $ Comment "Maintainer  :  Sven Panne <svenpanne@gmail.com>"
+  hRender h $ Comment "Stability   :  stable"
+  hRender h $ Comment "Portability :  portable"
+  hRender h $ Comment ""
   CM.unless (null comments) $ do
-    mapM_ (SI.hPutStrLn h . ("-- " ++)) comments
-    SI.hPutStrLn h "--"
-  SI.hPutStrLn h "--------------------------------------------------------------------------------"
+    mapM_ (hRender h) comments
+    hRender h $ Comment ""
+  hRender h $ Comment "------------------------------------------------------------------------------"
   SI.hPutStrLn h ""
 
 -- Annoyingly enough, the OpenGL registry doesn't contain any enums for
@@ -573,9 +556,9 @@
 
 showCommand :: API -> Registry -> M.Map String String -> Command -> String
 showCommand api registry sigMap c =
-  showString (take 80 ("-- " ++ name ++ " " ++ repeat '-') ++ "\n\n") .
+  showString (P.render (P.pPrint (Comment (take 77 (name ++ " " ++ repeat '-'))) P.$+$ P.text "" P.$+$ P.text "")) .
 
-  showString comment .
+  showString (P.render cmnt) .
 
   showString (name ++ "\n") .
   showString ("  :: MonadIO m\n") .
@@ -596,9 +579,9 @@
         signature withComment = showSignatureFromCommand registry c withComment
         urls = M.findWithDefault [] (api, CommandName name) manPageURLs
         links = L.intercalate " or " (map renderURL urls)
-        comment = case concat (man ++ ve ++ al) of
-                    ""  -> ""
-                    cs -> "-- |" ++ cs ++ "\n"
+        cmnt = case concat (man ++ ve ++ al) of
+                 ""  -> P.empty
+                 cs -> P.pPrint (Comment ("|" ++ cs)) P.$+$ P.text ""
         man = case urls of
                 []  -> []
                 [_] -> [" Manual page for "  ++ links ++ "."]
@@ -621,20 +604,20 @@
      [showSignatureElement registry withComment True (resultType c)])
 
 showSignatureElement :: Registry -> Bool -> Bool -> SignatureElement -> String
-showSignatureElement registry withComment isResult sigElem = el ++ comment
+showSignatureElement registry withComment isResult sigElem = el ++ cmnt
   where el | isResult  = monad ++ " " ++ showsPrec 11 sigElem ""
            | otherwise = show sigElem
         monad | withComment = "m"
               | otherwise = "IO"
-        comment | withComment = showComment registry name sigElem
-                | otherwise   = ""
+        cmnt | withComment = P.render (showComment registry name sigElem P.$+$ P.text "")
+             | otherwise   = ""
         name | isResult  = ""
              | otherwise = signatureElementName sigElem
 
-showComment :: Registry -> String -> SignatureElement -> String
+showComment :: Registry -> String -> SignatureElement -> P.Doc
 showComment registry name sigElem
-  | null name' && null info = "\n"
-  | otherwise = " -- ^" ++ name' ++ info ++ ".\n"
+  | null name' && null info = P.text ""
+  | otherwise = P.text " " P.<> P.pPrint (Comment ("^" ++ name' ++ info ++ "."))
 
   where name' | null name = ""
               | otherwise = " " ++ inlineCode name
@@ -720,3 +703,34 @@
 
 isMask :: TypeName -> Bool
 isMask = (== TypeName "GLbitfield")
+
+--------------------------------------------------------------------------------
+
+data Module = Module ModuleName Exports
+
+instance P.Pretty Module where
+  pPrint (Module mn ex) = P.text "module" P.<+> P.pPrint mn P.<+> ex P.<+> P.text "where\n"
+
+type Exports = P.Doc
+
+data Import = Import ModuleName ImportSpecs
+
+instance P.Pretty Import where
+  pPrint (Import mn im) = P.text "import" P.<+> P.pPrint mn P.<+> im
+
+type ImportSpecs = P.Doc
+
+newtype ModuleName = ModuleName String
+
+instance P.Pretty ModuleName where
+  pPrint (ModuleName m) = P.text m
+
+newtype Comment = Comment String
+
+instance P.Pretty Comment where
+  pPrint (Comment c) | null c         = P.text "--"
+                     | all (== '-') c = P.pPrint (Comment "") P.<> P.text c
+                     | otherwise      = P.pPrint (Comment "") P.<+> P.text c
+
+hRender :: P.Pretty a => SI.Handle -> a -> IO ()
+hRender h = SI.hPutStrLn h . P.render . P.pPrint
diff --git a/src/Graphics/GL/AMD.hs b/src/Graphics/GL/AMD.hs
--- a/src/Graphics/GL/AMD.hs
+++ b/src/Graphics/GL/AMD.hs
@@ -17,6 +17,7 @@
   module Graphics.GL.AMD.DebugOutput,
   module Graphics.GL.AMD.DepthClampSeparate,
   module Graphics.GL.AMD.DrawBuffersBlend,
+  module Graphics.GL.AMD.GPUShaderHalfFloat,
   module Graphics.GL.AMD.GPUShaderInt64,
   module Graphics.GL.AMD.InterleavedElements,
   module Graphics.GL.AMD.MultiDrawIndirect,
@@ -37,6 +38,7 @@
 import Graphics.GL.AMD.DebugOutput
 import Graphics.GL.AMD.DepthClampSeparate
 import Graphics.GL.AMD.DrawBuffersBlend
+import Graphics.GL.AMD.GPUShaderHalfFloat
 import Graphics.GL.AMD.GPUShaderInt64
 import Graphics.GL.AMD.InterleavedElements
 import Graphics.GL.AMD.MultiDrawIndirect
diff --git a/src/Graphics/GL/AMD/GPUShaderHalfFloat.hs b/src/Graphics/GL/AMD/GPUShaderHalfFloat.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/AMD/GPUShaderHalfFloat.hs
@@ -0,0 +1,35 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.AMD.GPUShaderHalfFloat
+-- Copyright   :  (c) Sven Panne 2016
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.AMD.GPUShaderHalfFloat (
+  -- * Extension Support
+  glGetAMDGPUShaderHalfFloat,
+  gl_AMD_gpu_shader_half_float,
+  -- * Enums
+  pattern GL_FLOAT16_MAT2_AMD,
+  pattern GL_FLOAT16_MAT2x3_AMD,
+  pattern GL_FLOAT16_MAT2x4_AMD,
+  pattern GL_FLOAT16_MAT3_AMD,
+  pattern GL_FLOAT16_MAT3x2_AMD,
+  pattern GL_FLOAT16_MAT3x4_AMD,
+  pattern GL_FLOAT16_MAT4_AMD,
+  pattern GL_FLOAT16_MAT4x2_AMD,
+  pattern GL_FLOAT16_MAT4x3_AMD,
+  pattern GL_FLOAT16_NV,
+  pattern GL_FLOAT16_VEC2_NV,
+  pattern GL_FLOAT16_VEC3_NV,
+  pattern GL_FLOAT16_VEC4_NV
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/ExtensionPredicates.hs b/src/Graphics/GL/ExtensionPredicates.hs
--- a/src/Graphics/GL/ExtensionPredicates.hs
+++ b/src/Graphics/GL/ExtensionPredicates.hs
@@ -96,6 +96,17 @@
 gl_AMD_draw_buffers_blend = member "GL_AMD_draw_buffers_blend" extensions
 {-# NOINLINE gl_AMD_draw_buffers_blend #-}
 
+-- | Is the <https://www.opengl.org/registry/specs/AMD/gpu_shader_half_float.txt AMD_gpu_shader_half_float> extension supported?
+glGetAMDGPUShaderHalfFloat :: MonadIO m => m Bool
+glGetAMDGPUShaderHalfFloat = getExtensions >>= (return . member "GL_AMD_gpu_shader_half_float")
+
+-- | Is the <https://www.opengl.org/registry/specs/AMD/gpu_shader_half_float.txt AMD_gpu_shader_half_float> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetAMDGPUShaderHalfFloat' in those cases instead.
+gl_AMD_gpu_shader_half_float :: Bool
+gl_AMD_gpu_shader_half_float = member "GL_AMD_gpu_shader_half_float" extensions
+{-# NOINLINE gl_AMD_gpu_shader_half_float #-}
+
 -- | Is the <https://www.opengl.org/registry/specs/AMD/gpu_shader_int64.txt AMD_gpu_shader_int64> extension supported?
 glGetAMDGPUShaderInt64 :: MonadIO m => m Bool
 glGetAMDGPUShaderInt64 = getExtensions >>= (return . member "GL_AMD_gpu_shader_int64")
diff --git a/src/Graphics/GL/Functions/F03.hs b/src/Graphics/GL/Functions/F03.hs
--- a/src/Graphics/GL/Functions/F03.hs
+++ b/src/Graphics/GL/Functions/F03.hs
@@ -20,7 +20,9 @@
   glClearPixelLocalStorageuiEXT,
   glClearStencil,
   glClearTexImage,
+  glClearTexImageEXT,
   glClearTexSubImage,
+  glClearTexSubImageEXT,
   glClientActiveTexture,
   glClientActiveTextureARB,
   glClientActiveVertexStreamATI,
@@ -112,9 +114,7 @@
   glColorTableParameterivSGI,
   glColorTableSGI,
   glCombinerInputNV,
-  glCombinerOutputNV,
-  glCombinerParameterfNV,
-  glCombinerParameterfvNV
+  glCombinerOutputNV
 ) where
 
 import Control.Monad.IO.Class ( MonadIO(..) )
@@ -199,6 +199,23 @@
 ptr_glClearTexImage :: FunPtr (GLuint -> GLint -> GLenum -> GLenum -> Ptr a -> IO ())
 ptr_glClearTexImage = unsafePerformIO $ getCommand "glClearTexImage"
 
+-- glClearTexImageEXT ----------------------------------------------------------
+
+-- | This command is an alias for 'glClearTexImage'.
+glClearTexImageEXT
+  :: MonadIO m
+  => GLuint -- ^ @texture@.
+  -> GLint -- ^ @level@.
+  -> GLenum -- ^ @format@.
+  -> GLenum -- ^ @type@.
+  -> Ptr a -- ^ @data@ pointing to @COMPSIZE(format,type)@ elements of type @a@.
+  -> m ()
+glClearTexImageEXT v1 v2 v3 v4 v5 = liftIO $ dyn90 ptr_glClearTexImageEXT v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glClearTexImageEXT #-}
+ptr_glClearTexImageEXT :: FunPtr (GLuint -> GLint -> GLenum -> GLenum -> Ptr a -> IO ())
+ptr_glClearTexImageEXT = unsafePerformIO $ getCommand "glClearTexImageEXT"
+
 -- glClearTexSubImage ----------------------------------------------------------
 
 -- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glClearTexSubImage.xhtml OpenGL 4.x>.
@@ -222,6 +239,29 @@
 ptr_glClearTexSubImage :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> IO ())
 ptr_glClearTexSubImage = unsafePerformIO $ getCommand "glClearTexSubImage"
 
+-- glClearTexSubImageEXT -------------------------------------------------------
+
+-- | This command is an alias for 'glClearTexSubImage'.
+glClearTexSubImageEXT
+  :: MonadIO m
+  => GLuint -- ^ @texture@.
+  -> GLint -- ^ @level@.
+  -> GLint -- ^ @xoffset@.
+  -> GLint -- ^ @yoffset@.
+  -> GLint -- ^ @zoffset@.
+  -> GLsizei -- ^ @width@.
+  -> GLsizei -- ^ @height@.
+  -> GLsizei -- ^ @depth@.
+  -> GLenum -- ^ @format@.
+  -> GLenum -- ^ @type@.
+  -> Ptr a -- ^ @data@ pointing to @COMPSIZE(format,type)@ elements of type @a@.
+  -> m ()
+glClearTexSubImageEXT v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 = liftIO $ dyn91 ptr_glClearTexSubImageEXT v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11
+
+{-# NOINLINE ptr_glClearTexSubImageEXT #-}
+ptr_glClearTexSubImageEXT :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> IO ())
+ptr_glClearTexSubImageEXT = unsafePerformIO $ getCommand "glClearTexSubImageEXT"
+
 -- glClientActiveTexture -------------------------------------------------------
 
 -- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glClientActiveTexture.xml OpenGL 2.x>.
@@ -1589,30 +1629,4 @@
 {-# NOINLINE ptr_glCombinerOutputNV #-}
 ptr_glCombinerOutputNV :: FunPtr (GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> GLboolean -> GLboolean -> GLboolean -> IO ())
 ptr_glCombinerOutputNV = unsafePerformIO $ getCommand "glCombinerOutputNV"
-
--- glCombinerParameterfNV ------------------------------------------------------
-
-glCombinerParameterfNV
-  :: MonadIO m
-  => GLenum -- ^ @pname@ of type @CombinerParameterNV@.
-  -> GLfloat -- ^ @param@.
-  -> m ()
-glCombinerParameterfNV v1 v2 = liftIO $ dyn0 ptr_glCombinerParameterfNV v1 v2
-
-{-# NOINLINE ptr_glCombinerParameterfNV #-}
-ptr_glCombinerParameterfNV :: FunPtr (GLenum -> GLfloat -> IO ())
-ptr_glCombinerParameterfNV = unsafePerformIO $ getCommand "glCombinerParameterfNV"
-
--- glCombinerParameterfvNV -----------------------------------------------------
-
-glCombinerParameterfvNV
-  :: MonadIO m
-  => GLenum -- ^ @pname@ of type @CombinerParameterNV@.
-  -> Ptr GLfloat -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @CheckedFloat32@.
-  -> m ()
-glCombinerParameterfvNV v1 v2 = liftIO $ dyn94 ptr_glCombinerParameterfvNV v1 v2
-
-{-# NOINLINE ptr_glCombinerParameterfvNV #-}
-ptr_glCombinerParameterfvNV :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
-ptr_glCombinerParameterfvNV = unsafePerformIO $ getCommand "glCombinerParameterfvNV"
 
diff --git a/src/Graphics/GL/Functions/F04.hs b/src/Graphics/GL/Functions/F04.hs
--- a/src/Graphics/GL/Functions/F04.hs
+++ b/src/Graphics/GL/Functions/F04.hs
@@ -15,6 +15,8 @@
 --------------------------------------------------------------------------------
 
 module Graphics.GL.Functions.F04 (
+  glCombinerParameterfNV,
+  glCombinerParameterfvNV,
   glCombinerParameteriNV,
   glCombinerParameterivNV,
   glCombinerStageParameterfvNV,
@@ -112,9 +114,7 @@
   glCopyTextureSubImage3DEXT,
   glCoverFillPathInstancedNV,
   glCoverFillPathNV,
-  glCoverStrokePathInstancedNV,
-  glCoverStrokePathNV,
-  glCoverageMaskNV
+  glCoverStrokePathInstancedNV
 ) where
 
 import Control.Monad.IO.Class ( MonadIO(..) )
@@ -123,6 +123,32 @@
 import Graphics.GL.Types
 import System.IO.Unsafe ( unsafePerformIO )
 
+-- glCombinerParameterfNV ------------------------------------------------------
+
+glCombinerParameterfNV
+  :: MonadIO m
+  => GLenum -- ^ @pname@ of type @CombinerParameterNV@.
+  -> GLfloat -- ^ @param@.
+  -> m ()
+glCombinerParameterfNV v1 v2 = liftIO $ dyn0 ptr_glCombinerParameterfNV v1 v2
+
+{-# NOINLINE ptr_glCombinerParameterfNV #-}
+ptr_glCombinerParameterfNV :: FunPtr (GLenum -> GLfloat -> IO ())
+ptr_glCombinerParameterfNV = unsafePerformIO $ getCommand "glCombinerParameterfNV"
+
+-- glCombinerParameterfvNV -----------------------------------------------------
+
+glCombinerParameterfvNV
+  :: MonadIO m
+  => GLenum -- ^ @pname@ of type @CombinerParameterNV@.
+  -> Ptr GLfloat -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @CheckedFloat32@.
+  -> m ()
+glCombinerParameterfvNV v1 v2 = liftIO $ dyn94 ptr_glCombinerParameterfvNV v1 v2
+
+{-# NOINLINE ptr_glCombinerParameterfvNV #-}
+ptr_glCombinerParameterfvNV :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
+ptr_glCombinerParameterfvNV = unsafePerformIO $ getCommand "glCombinerParameterfvNV"
+
 -- glCombinerParameteriNV ------------------------------------------------------
 
 glCombinerParameteriNV
@@ -1937,29 +1963,4 @@
 {-# NOINLINE ptr_glCoverStrokePathInstancedNV #-}
 ptr_glCoverStrokePathInstancedNV :: FunPtr (GLsizei -> GLenum -> Ptr a -> GLuint -> GLenum -> GLenum -> Ptr GLfloat -> IO ())
 ptr_glCoverStrokePathInstancedNV = unsafePerformIO $ getCommand "glCoverStrokePathInstancedNV"
-
--- glCoverStrokePathNV ---------------------------------------------------------
-
-glCoverStrokePathNV
-  :: MonadIO m
-  => GLuint -- ^ @path@ of type @Path@.
-  -> GLenum -- ^ @coverMode@ of type @PathCoverMode@.
-  -> m ()
-glCoverStrokePathNV v1 v2 = liftIO $ dyn15 ptr_glCoverStrokePathNV v1 v2
-
-{-# NOINLINE ptr_glCoverStrokePathNV #-}
-ptr_glCoverStrokePathNV :: FunPtr (GLuint -> GLenum -> IO ())
-ptr_glCoverStrokePathNV = unsafePerformIO $ getCommand "glCoverStrokePathNV"
-
--- glCoverageMaskNV ------------------------------------------------------------
-
-glCoverageMaskNV
-  :: MonadIO m
-  => GLboolean -- ^ @mask@.
-  -> m ()
-glCoverageMaskNV v1 = liftIO $ dyn191 ptr_glCoverageMaskNV v1
-
-{-# NOINLINE ptr_glCoverageMaskNV #-}
-ptr_glCoverageMaskNV :: FunPtr (GLboolean -> IO ())
-ptr_glCoverageMaskNV = unsafePerformIO $ getCommand "glCoverageMaskNV"
 
diff --git a/src/Graphics/GL/Functions/F05.hs b/src/Graphics/GL/Functions/F05.hs
--- a/src/Graphics/GL/Functions/F05.hs
+++ b/src/Graphics/GL/Functions/F05.hs
@@ -15,6 +15,8 @@
 --------------------------------------------------------------------------------
 
 module Graphics.GL.Functions.F05 (
+  glCoverStrokePathNV,
+  glCoverageMaskNV,
   glCoverageModulationNV,
   glCoverageModulationTableNV,
   glCoverageOperationNV,
@@ -112,9 +114,7 @@
   glDepthRangeIndexedfNV,
   glDepthRangeIndexedfOES,
   glDepthRangedNV,
-  glDepthRangef,
-  glDepthRangefOES,
-  glDepthRangex
+  glDepthRangef
 ) where
 
 import Control.Monad.IO.Class ( MonadIO(..) )
@@ -123,6 +123,31 @@
 import Graphics.GL.Types
 import System.IO.Unsafe ( unsafePerformIO )
 
+-- glCoverStrokePathNV ---------------------------------------------------------
+
+glCoverStrokePathNV
+  :: MonadIO m
+  => GLuint -- ^ @path@ of type @Path@.
+  -> GLenum -- ^ @coverMode@ of type @PathCoverMode@.
+  -> m ()
+glCoverStrokePathNV v1 v2 = liftIO $ dyn15 ptr_glCoverStrokePathNV v1 v2
+
+{-# NOINLINE ptr_glCoverStrokePathNV #-}
+ptr_glCoverStrokePathNV :: FunPtr (GLuint -> GLenum -> IO ())
+ptr_glCoverStrokePathNV = unsafePerformIO $ getCommand "glCoverStrokePathNV"
+
+-- glCoverageMaskNV ------------------------------------------------------------
+
+glCoverageMaskNV
+  :: MonadIO m
+  => GLboolean -- ^ @mask@.
+  -> m ()
+glCoverageMaskNV v1 = liftIO $ dyn191 ptr_glCoverageMaskNV v1
+
+{-# NOINLINE ptr_glCoverageMaskNV #-}
+ptr_glCoverageMaskNV :: FunPtr (GLboolean -> IO ())
+ptr_glCoverageMaskNV = unsafePerformIO $ getCommand "glCoverageMaskNV"
+
 -- glCoverageModulationNV ------------------------------------------------------
 
 glCoverageModulationNV
@@ -1492,31 +1517,4 @@
 {-# NOINLINE ptr_glDepthRangef #-}
 ptr_glDepthRangef :: FunPtr (GLfloat -> GLfloat -> IO ())
 ptr_glDepthRangef = unsafePerformIO $ getCommand "glDepthRangef"
-
--- glDepthRangefOES ------------------------------------------------------------
-
--- | This command is an alias for 'glDepthRangef'.
-glDepthRangefOES
-  :: MonadIO m
-  => GLclampf -- ^ @n@ of type @ClampedFloat32@.
-  -> GLclampf -- ^ @f@ of type @ClampedFloat32@.
-  -> m ()
-glDepthRangefOES v1 v2 = liftIO $ dyn223 ptr_glDepthRangefOES v1 v2
-
-{-# NOINLINE ptr_glDepthRangefOES #-}
-ptr_glDepthRangefOES :: FunPtr (GLclampf -> GLclampf -> IO ())
-ptr_glDepthRangefOES = unsafePerformIO $ getCommand "glDepthRangefOES"
-
--- glDepthRangex ---------------------------------------------------------------
-
-glDepthRangex
-  :: MonadIO m
-  => GLfixed -- ^ @n@.
-  -> GLfixed -- ^ @f@.
-  -> m ()
-glDepthRangex v1 v2 = liftIO $ dyn224 ptr_glDepthRangex v1 v2
-
-{-# NOINLINE ptr_glDepthRangex #-}
-ptr_glDepthRangex :: FunPtr (GLfixed -> GLfixed -> IO ())
-ptr_glDepthRangex = unsafePerformIO $ getCommand "glDepthRangex"
 
diff --git a/src/Graphics/GL/Functions/F06.hs b/src/Graphics/GL/Functions/F06.hs
--- a/src/Graphics/GL/Functions/F06.hs
+++ b/src/Graphics/GL/Functions/F06.hs
@@ -15,6 +15,8 @@
 --------------------------------------------------------------------------------
 
 module Graphics.GL.Functions.F06 (
+  glDepthRangefOES,
+  glDepthRangex,
   glDepthRangexOES,
   glDetachObjectARB,
   glDetachShader,
@@ -112,9 +114,7 @@
   glEdgeFlagPointerListIBM,
   glEdgeFlagv,
   glElementPointerAPPLE,
-  glElementPointerATI,
-  glEnable,
-  glEnableClientState
+  glElementPointerATI
 ) where
 
 import Control.Monad.IO.Class ( MonadIO(..) )
@@ -123,6 +123,33 @@
 import Graphics.GL.Types
 import System.IO.Unsafe ( unsafePerformIO )
 
+-- glDepthRangefOES ------------------------------------------------------------
+
+-- | This command is an alias for 'glDepthRangef'.
+glDepthRangefOES
+  :: MonadIO m
+  => GLclampf -- ^ @n@ of type @ClampedFloat32@.
+  -> GLclampf -- ^ @f@ of type @ClampedFloat32@.
+  -> m ()
+glDepthRangefOES v1 v2 = liftIO $ dyn223 ptr_glDepthRangefOES v1 v2
+
+{-# NOINLINE ptr_glDepthRangefOES #-}
+ptr_glDepthRangefOES :: FunPtr (GLclampf -> GLclampf -> IO ())
+ptr_glDepthRangefOES = unsafePerformIO $ getCommand "glDepthRangefOES"
+
+-- glDepthRangex ---------------------------------------------------------------
+
+glDepthRangex
+  :: MonadIO m
+  => GLfixed -- ^ @n@.
+  -> GLfixed -- ^ @f@.
+  -> m ()
+glDepthRangex v1 v2 = liftIO $ dyn224 ptr_glDepthRangex v1 v2
+
+{-# NOINLINE ptr_glDepthRangex #-}
+ptr_glDepthRangex :: FunPtr (GLfixed -> GLfixed -> IO ())
+ptr_glDepthRangex = unsafePerformIO $ getCommand "glDepthRangex"
+
 -- glDepthRangexOES ------------------------------------------------------------
 
 glDepthRangexOES
@@ -1597,30 +1624,4 @@
 {-# NOINLINE ptr_glElementPointerATI #-}
 ptr_glElementPointerATI :: FunPtr (GLenum -> Ptr a -> IO ())
 ptr_glElementPointerATI = unsafePerformIO $ getCommand "glElementPointerATI"
-
--- glEnable --------------------------------------------------------------------
-
--- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glEnable.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glEnable.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glEnable.xhtml OpenGL 4.x>.
-glEnable
-  :: MonadIO m
-  => GLenum -- ^ @cap@ of type [EnableCap](Graphics-GL-Groups.html#EnableCap).
-  -> m ()
-glEnable v1 = liftIO $ dyn4 ptr_glEnable v1
-
-{-# NOINLINE ptr_glEnable #-}
-ptr_glEnable :: FunPtr (GLenum -> IO ())
-ptr_glEnable = unsafePerformIO $ getCommand "glEnable"
-
--- glEnableClientState ---------------------------------------------------------
-
--- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glEnableClientState.xml OpenGL 2.x>.
-glEnableClientState
-  :: MonadIO m
-  => GLenum -- ^ @array@ of type [EnableCap](Graphics-GL-Groups.html#EnableCap).
-  -> m ()
-glEnableClientState v1 = liftIO $ dyn4 ptr_glEnableClientState v1
-
-{-# NOINLINE ptr_glEnableClientState #-}
-ptr_glEnableClientState :: FunPtr (GLenum -> IO ())
-ptr_glEnableClientState = unsafePerformIO $ getCommand "glEnableClientState"
 
diff --git a/src/Graphics/GL/Functions/F07.hs b/src/Graphics/GL/Functions/F07.hs
--- a/src/Graphics/GL/Functions/F07.hs
+++ b/src/Graphics/GL/Functions/F07.hs
@@ -15,6 +15,8 @@
 --------------------------------------------------------------------------------
 
 module Graphics.GL.Functions.F07 (
+  glEnable,
+  glEnableClientState,
   glEnableClientStateIndexedEXT,
   glEnableClientStateiEXT,
   glEnableDriverControlQCOM,
@@ -112,9 +114,7 @@
   glFogCoorddv,
   glFogCoorddvEXT,
   glFogCoordf,
-  glFogCoordfEXT,
-  glFogCoordfv,
-  glFogCoordfvEXT
+  glFogCoordfEXT
 ) where
 
 import Control.Monad.IO.Class ( MonadIO(..) )
@@ -123,6 +123,32 @@
 import Graphics.GL.Types
 import System.IO.Unsafe ( unsafePerformIO )
 
+-- glEnable --------------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glEnable.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glEnable.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glEnable.xhtml OpenGL 4.x>.
+glEnable
+  :: MonadIO m
+  => GLenum -- ^ @cap@ of type [EnableCap](Graphics-GL-Groups.html#EnableCap).
+  -> m ()
+glEnable v1 = liftIO $ dyn4 ptr_glEnable v1
+
+{-# NOINLINE ptr_glEnable #-}
+ptr_glEnable :: FunPtr (GLenum -> IO ())
+ptr_glEnable = unsafePerformIO $ getCommand "glEnable"
+
+-- glEnableClientState ---------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glEnableClientState.xml OpenGL 2.x>.
+glEnableClientState
+  :: MonadIO m
+  => GLenum -- ^ @array@ of type [EnableCap](Graphics-GL-Groups.html#EnableCap).
+  -> m ()
+glEnableClientState v1 = liftIO $ dyn4 ptr_glEnableClientState v1
+
+{-# NOINLINE ptr_glEnableClientState #-}
+ptr_glEnableClientState :: FunPtr (GLenum -> IO ())
+ptr_glEnableClientState = unsafePerformIO $ getCommand "glEnableClientState"
+
 -- glEnableClientStateIndexedEXT -----------------------------------------------
 
 glEnableClientStateIndexedEXT
@@ -1417,30 +1443,4 @@
 {-# NOINLINE ptr_glFogCoordfEXT #-}
 ptr_glFogCoordfEXT :: FunPtr (GLfloat -> IO ())
 ptr_glFogCoordfEXT = unsafePerformIO $ getCommand "glFogCoordfEXT"
-
--- glFogCoordfv ----------------------------------------------------------------
-
--- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glFogCoord.xml OpenGL 2.x>.
-glFogCoordfv
-  :: MonadIO m
-  => Ptr GLfloat -- ^ @coord@ pointing to @1@ element of type @CoordF@.
-  -> m ()
-glFogCoordfv v1 = liftIO $ dyn41 ptr_glFogCoordfv v1
-
-{-# NOINLINE ptr_glFogCoordfv #-}
-ptr_glFogCoordfv :: FunPtr (Ptr GLfloat -> IO ())
-ptr_glFogCoordfv = unsafePerformIO $ getCommand "glFogCoordfv"
-
--- glFogCoordfvEXT -------------------------------------------------------------
-
--- | This command is an alias for 'glFogCoordfv'.
-glFogCoordfvEXT
-  :: MonadIO m
-  => Ptr GLfloat -- ^ @coord@ pointing to @1@ element of type @CoordF@.
-  -> m ()
-glFogCoordfvEXT v1 = liftIO $ dyn41 ptr_glFogCoordfvEXT v1
-
-{-# NOINLINE ptr_glFogCoordfvEXT #-}
-ptr_glFogCoordfvEXT :: FunPtr (Ptr GLfloat -> IO ())
-ptr_glFogCoordfvEXT = unsafePerformIO $ getCommand "glFogCoordfvEXT"
 
diff --git a/src/Graphics/GL/Functions/F08.hs b/src/Graphics/GL/Functions/F08.hs
--- a/src/Graphics/GL/Functions/F08.hs
+++ b/src/Graphics/GL/Functions/F08.hs
@@ -15,6 +15,8 @@
 --------------------------------------------------------------------------------
 
 module Graphics.GL.Functions.F08 (
+  glFogCoordfv,
+  glFogCoordfvEXT,
   glFogCoordhNV,
   glFogCoordhvNV,
   glFogFuncSGIS,
@@ -112,9 +114,7 @@
   glGenTexturesEXT,
   glGenTransformFeedbacks,
   glGenTransformFeedbacksNV,
-  glGenVertexArrays,
-  glGenVertexArraysAPPLE,
-  glGenVertexArraysOES
+  glGenVertexArrays
 ) where
 
 import Control.Monad.IO.Class ( MonadIO(..) )
@@ -123,6 +123,32 @@
 import Graphics.GL.Types
 import System.IO.Unsafe ( unsafePerformIO )
 
+-- glFogCoordfv ----------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glFogCoord.xml OpenGL 2.x>.
+glFogCoordfv
+  :: MonadIO m
+  => Ptr GLfloat -- ^ @coord@ pointing to @1@ element of type @CoordF@.
+  -> m ()
+glFogCoordfv v1 = liftIO $ dyn41 ptr_glFogCoordfv v1
+
+{-# NOINLINE ptr_glFogCoordfv #-}
+ptr_glFogCoordfv :: FunPtr (Ptr GLfloat -> IO ())
+ptr_glFogCoordfv = unsafePerformIO $ getCommand "glFogCoordfv"
+
+-- glFogCoordfvEXT -------------------------------------------------------------
+
+-- | This command is an alias for 'glFogCoordfv'.
+glFogCoordfvEXT
+  :: MonadIO m
+  => Ptr GLfloat -- ^ @coord@ pointing to @1@ element of type @CoordF@.
+  -> m ()
+glFogCoordfvEXT v1 = liftIO $ dyn41 ptr_glFogCoordfvEXT v1
+
+{-# NOINLINE ptr_glFogCoordfvEXT #-}
+ptr_glFogCoordfvEXT :: FunPtr (Ptr GLfloat -> IO ())
+ptr_glFogCoordfvEXT = unsafePerformIO $ getCommand "glFogCoordfvEXT"
+
 -- glFogCoordhNV ---------------------------------------------------------------
 
 -- | The vector equivalent of this command is 'glFogCoordhvNV'.
@@ -1545,32 +1571,4 @@
 {-# NOINLINE ptr_glGenVertexArrays #-}
 ptr_glGenVertexArrays :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
 ptr_glGenVertexArrays = unsafePerformIO $ getCommand "glGenVertexArrays"
-
--- glGenVertexArraysAPPLE ------------------------------------------------------
-
--- | This command is an alias for 'glGenVertexArrays'.
-glGenVertexArraysAPPLE
-  :: MonadIO m
-  => GLsizei -- ^ @n@.
-  -> Ptr GLuint -- ^ @arrays@ pointing to @n@ elements of type @GLuint@.
-  -> m ()
-glGenVertexArraysAPPLE v1 v2 = liftIO $ dyn193 ptr_glGenVertexArraysAPPLE v1 v2
-
-{-# NOINLINE ptr_glGenVertexArraysAPPLE #-}
-ptr_glGenVertexArraysAPPLE :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
-ptr_glGenVertexArraysAPPLE = unsafePerformIO $ getCommand "glGenVertexArraysAPPLE"
-
--- glGenVertexArraysOES --------------------------------------------------------
-
--- | This command is an alias for 'glGenVertexArrays'.
-glGenVertexArraysOES
-  :: MonadIO m
-  => GLsizei -- ^ @n@.
-  -> Ptr GLuint -- ^ @arrays@ pointing to @n@ elements of type @GLuint@.
-  -> m ()
-glGenVertexArraysOES v1 v2 = liftIO $ dyn193 ptr_glGenVertexArraysOES v1 v2
-
-{-# NOINLINE ptr_glGenVertexArraysOES #-}
-ptr_glGenVertexArraysOES :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
-ptr_glGenVertexArraysOES = unsafePerformIO $ getCommand "glGenVertexArraysOES"
 
diff --git a/src/Graphics/GL/Functions/F09.hs b/src/Graphics/GL/Functions/F09.hs
--- a/src/Graphics/GL/Functions/F09.hs
+++ b/src/Graphics/GL/Functions/F09.hs
@@ -15,6 +15,8 @@
 --------------------------------------------------------------------------------
 
 module Graphics.GL.Functions.F09 (
+  glGenVertexArraysAPPLE,
+  glGenVertexArraysOES,
   glGenVertexShadersEXT,
   glGenerateMipmap,
   glGenerateMipmapEXT,
@@ -112,9 +114,7 @@
   glGetFloati_vOES,
   glGetFloatv,
   glGetFogFuncSGIS,
-  glGetFragDataIndex,
-  glGetFragDataIndexEXT,
-  glGetFragDataLocation
+  glGetFragDataIndex
 ) where
 
 import Control.Monad.IO.Class ( MonadIO(..) )
@@ -123,6 +123,34 @@
 import Graphics.GL.Types
 import System.IO.Unsafe ( unsafePerformIO )
 
+-- glGenVertexArraysAPPLE ------------------------------------------------------
+
+-- | This command is an alias for 'glGenVertexArrays'.
+glGenVertexArraysAPPLE
+  :: MonadIO m
+  => GLsizei -- ^ @n@.
+  -> Ptr GLuint -- ^ @arrays@ pointing to @n@ elements of type @GLuint@.
+  -> m ()
+glGenVertexArraysAPPLE v1 v2 = liftIO $ dyn193 ptr_glGenVertexArraysAPPLE v1 v2
+
+{-# NOINLINE ptr_glGenVertexArraysAPPLE #-}
+ptr_glGenVertexArraysAPPLE :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+ptr_glGenVertexArraysAPPLE = unsafePerformIO $ getCommand "glGenVertexArraysAPPLE"
+
+-- glGenVertexArraysOES --------------------------------------------------------
+
+-- | This command is an alias for 'glGenVertexArrays'.
+glGenVertexArraysOES
+  :: MonadIO m
+  => GLsizei -- ^ @n@.
+  -> Ptr GLuint -- ^ @arrays@ pointing to @n@ elements of type @GLuint@.
+  -> m ()
+glGenVertexArraysOES v1 v2 = liftIO $ dyn193 ptr_glGenVertexArraysOES v1 v2
+
+{-# NOINLINE ptr_glGenVertexArraysOES #-}
+ptr_glGenVertexArraysOES :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+ptr_glGenVertexArraysOES = unsafePerformIO $ getCommand "glGenVertexArraysOES"
+
 -- glGenVertexShadersEXT -------------------------------------------------------
 
 glGenVertexShadersEXT
@@ -1598,32 +1626,4 @@
 {-# NOINLINE ptr_glGetFragDataIndex #-}
 ptr_glGetFragDataIndex :: FunPtr (GLuint -> Ptr GLchar -> IO GLint)
 ptr_glGetFragDataIndex = unsafePerformIO $ getCommand "glGetFragDataIndex"
-
--- glGetFragDataIndexEXT -------------------------------------------------------
-
--- | This command is an alias for 'glGetFragDataIndex'.
-glGetFragDataIndexEXT
-  :: MonadIO m
-  => GLuint -- ^ @program@.
-  -> Ptr GLchar -- ^ @name@.
-  -> m GLint
-glGetFragDataIndexEXT v1 v2 = liftIO $ dyn310 ptr_glGetFragDataIndexEXT v1 v2
-
-{-# NOINLINE ptr_glGetFragDataIndexEXT #-}
-ptr_glGetFragDataIndexEXT :: FunPtr (GLuint -> Ptr GLchar -> IO GLint)
-ptr_glGetFragDataIndexEXT = unsafePerformIO $ getCommand "glGetFragDataIndexEXT"
-
--- glGetFragDataLocation -------------------------------------------------------
-
--- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glGetFragDataLocation.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glGetFragDataLocation.xhtml OpenGL 4.x>.
-glGetFragDataLocation
-  :: MonadIO m
-  => GLuint -- ^ @program@.
-  -> Ptr GLchar -- ^ @name@ pointing to @COMPSIZE(name)@ elements of type @GLchar@.
-  -> m GLint
-glGetFragDataLocation v1 v2 = liftIO $ dyn310 ptr_glGetFragDataLocation v1 v2
-
-{-# NOINLINE ptr_glGetFragDataLocation #-}
-ptr_glGetFragDataLocation :: FunPtr (GLuint -> Ptr GLchar -> IO GLint)
-ptr_glGetFragDataLocation = unsafePerformIO $ getCommand "glGetFragDataLocation"
 
diff --git a/src/Graphics/GL/Functions/F10.hs b/src/Graphics/GL/Functions/F10.hs
--- a/src/Graphics/GL/Functions/F10.hs
+++ b/src/Graphics/GL/Functions/F10.hs
@@ -15,6 +15,8 @@
 --------------------------------------------------------------------------------
 
 module Graphics.GL.Functions.F10 (
+  glGetFragDataIndexEXT,
+  glGetFragDataLocation,
   glGetFragDataLocationEXT,
   glGetFragmentLightfvSGIX,
   glGetFragmentLightivSGIX,
@@ -112,9 +114,7 @@
   glGetNamedBufferSubData,
   glGetNamedBufferSubDataEXT,
   glGetNamedFramebufferAttachmentParameteriv,
-  glGetNamedFramebufferAttachmentParameterivEXT,
-  glGetNamedFramebufferParameteriv,
-  glGetNamedFramebufferParameterivEXT
+  glGetNamedFramebufferAttachmentParameterivEXT
 ) where
 
 import Control.Monad.IO.Class ( MonadIO(..) )
@@ -123,6 +123,34 @@
 import Graphics.GL.Types
 import System.IO.Unsafe ( unsafePerformIO )
 
+-- glGetFragDataIndexEXT -------------------------------------------------------
+
+-- | This command is an alias for 'glGetFragDataIndex'.
+glGetFragDataIndexEXT
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> Ptr GLchar -- ^ @name@.
+  -> m GLint
+glGetFragDataIndexEXT v1 v2 = liftIO $ dyn310 ptr_glGetFragDataIndexEXT v1 v2
+
+{-# NOINLINE ptr_glGetFragDataIndexEXT #-}
+ptr_glGetFragDataIndexEXT :: FunPtr (GLuint -> Ptr GLchar -> IO GLint)
+ptr_glGetFragDataIndexEXT = unsafePerformIO $ getCommand "glGetFragDataIndexEXT"
+
+-- glGetFragDataLocation -------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glGetFragDataLocation.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glGetFragDataLocation.xhtml OpenGL 4.x>.
+glGetFragDataLocation
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> Ptr GLchar -- ^ @name@ pointing to @COMPSIZE(name)@ elements of type @GLchar@.
+  -> m GLint
+glGetFragDataLocation v1 v2 = liftIO $ dyn310 ptr_glGetFragDataLocation v1 v2
+
+{-# NOINLINE ptr_glGetFragDataLocation #-}
+ptr_glGetFragDataLocation :: FunPtr (GLuint -> Ptr GLchar -> IO GLint)
+ptr_glGetFragDataLocation = unsafePerformIO $ getCommand "glGetFragDataLocation"
+
 -- glGetFragDataLocationEXT ----------------------------------------------------
 
 -- | This command is an alias for 'glGetFragDataLocation'.
@@ -1553,33 +1581,4 @@
 {-# NOINLINE ptr_glGetNamedFramebufferAttachmentParameterivEXT #-}
 ptr_glGetNamedFramebufferAttachmentParameterivEXT :: FunPtr (GLuint -> GLenum -> GLenum -> Ptr GLint -> IO ())
 ptr_glGetNamedFramebufferAttachmentParameterivEXT = unsafePerformIO $ getCommand "glGetNamedFramebufferAttachmentParameterivEXT"
-
--- glGetNamedFramebufferParameteriv --------------------------------------------
-
--- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glGetFramebufferParameter.xhtml OpenGL 4.x>.
-glGetNamedFramebufferParameteriv
-  :: MonadIO m
-  => GLuint -- ^ @framebuffer@.
-  -> GLenum -- ^ @pname@.
-  -> Ptr GLint -- ^ @param@.
-  -> m ()
-glGetNamedFramebufferParameteriv v1 v2 v3 = liftIO $ dyn334 ptr_glGetNamedFramebufferParameteriv v1 v2 v3
-
-{-# NOINLINE ptr_glGetNamedFramebufferParameteriv #-}
-ptr_glGetNamedFramebufferParameteriv :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
-ptr_glGetNamedFramebufferParameteriv = unsafePerformIO $ getCommand "glGetNamedFramebufferParameteriv"
-
--- glGetNamedFramebufferParameterivEXT -----------------------------------------
-
-glGetNamedFramebufferParameterivEXT
-  :: MonadIO m
-  => GLuint -- ^ @framebuffer@ of type @Framebuffer@.
-  -> GLenum -- ^ @pname@ of type @GetFramebufferParameter@.
-  -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLint@.
-  -> m ()
-glGetNamedFramebufferParameterivEXT v1 v2 v3 = liftIO $ dyn334 ptr_glGetNamedFramebufferParameterivEXT v1 v2 v3
-
-{-# NOINLINE ptr_glGetNamedFramebufferParameterivEXT #-}
-ptr_glGetNamedFramebufferParameterivEXT :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
-ptr_glGetNamedFramebufferParameterivEXT = unsafePerformIO $ getCommand "glGetNamedFramebufferParameterivEXT"
 
diff --git a/src/Graphics/GL/Functions/F11.hs b/src/Graphics/GL/Functions/F11.hs
--- a/src/Graphics/GL/Functions/F11.hs
+++ b/src/Graphics/GL/Functions/F11.hs
@@ -15,6 +15,8 @@
 --------------------------------------------------------------------------------
 
 module Graphics.GL.Functions.F11 (
+  glGetNamedFramebufferParameteriv,
+  glGetNamedFramebufferParameterivEXT,
   glGetNamedProgramLocalParameterIivEXT,
   glGetNamedProgramLocalParameterIuivEXT,
   glGetNamedProgramLocalParameterdvEXT,
@@ -112,9 +114,7 @@
   glGetQueryBufferObjecti64v,
   glGetQueryBufferObjectiv,
   glGetQueryBufferObjectui64v,
-  glGetQueryBufferObjectuiv,
-  glGetQueryIndexediv,
-  glGetQueryObjecti64v
+  glGetQueryBufferObjectuiv
 ) where
 
 import Control.Monad.IO.Class ( MonadIO(..) )
@@ -123,6 +123,35 @@
 import Graphics.GL.Types
 import System.IO.Unsafe ( unsafePerformIO )
 
+-- glGetNamedFramebufferParameteriv --------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glGetFramebufferParameter.xhtml OpenGL 4.x>.
+glGetNamedFramebufferParameteriv
+  :: MonadIO m
+  => GLuint -- ^ @framebuffer@.
+  -> GLenum -- ^ @pname@.
+  -> Ptr GLint -- ^ @param@.
+  -> m ()
+glGetNamedFramebufferParameteriv v1 v2 v3 = liftIO $ dyn334 ptr_glGetNamedFramebufferParameteriv v1 v2 v3
+
+{-# NOINLINE ptr_glGetNamedFramebufferParameteriv #-}
+ptr_glGetNamedFramebufferParameteriv :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+ptr_glGetNamedFramebufferParameteriv = unsafePerformIO $ getCommand "glGetNamedFramebufferParameteriv"
+
+-- glGetNamedFramebufferParameterivEXT -----------------------------------------
+
+glGetNamedFramebufferParameterivEXT
+  :: MonadIO m
+  => GLuint -- ^ @framebuffer@ of type @Framebuffer@.
+  -> GLenum -- ^ @pname@ of type @GetFramebufferParameter@.
+  -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLint@.
+  -> m ()
+glGetNamedFramebufferParameterivEXT v1 v2 v3 = liftIO $ dyn334 ptr_glGetNamedFramebufferParameterivEXT v1 v2 v3
+
+{-# NOINLINE ptr_glGetNamedFramebufferParameterivEXT #-}
+ptr_glGetNamedFramebufferParameterivEXT :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+ptr_glGetNamedFramebufferParameterivEXT = unsafePerformIO $ getCommand "glGetNamedFramebufferParameterivEXT"
+
 -- glGetNamedProgramLocalParameterIivEXT ---------------------------------------
 
 glGetNamedProgramLocalParameterIivEXT
@@ -1586,35 +1615,4 @@
 {-# NOINLINE ptr_glGetQueryBufferObjectuiv #-}
 ptr_glGetQueryBufferObjectuiv :: FunPtr (GLuint -> GLuint -> GLenum -> GLintptr -> IO ())
 ptr_glGetQueryBufferObjectuiv = unsafePerformIO $ getCommand "glGetQueryBufferObjectuiv"
-
--- glGetQueryIndexediv ---------------------------------------------------------
-
--- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glGetQueryIndexed.xhtml OpenGL 4.x>.
-glGetQueryIndexediv
-  :: MonadIO m
-  => GLenum -- ^ @target@.
-  -> GLuint -- ^ @index@.
-  -> GLenum -- ^ @pname@.
-  -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLint@.
-  -> m ()
-glGetQueryIndexediv v1 v2 v3 v4 = liftIO $ dyn351 ptr_glGetQueryIndexediv v1 v2 v3 v4
-
-{-# NOINLINE ptr_glGetQueryIndexediv #-}
-ptr_glGetQueryIndexediv :: FunPtr (GLenum -> GLuint -> GLenum -> Ptr GLint -> IO ())
-ptr_glGetQueryIndexediv = unsafePerformIO $ getCommand "glGetQueryIndexediv"
-
--- glGetQueryObjecti64v --------------------------------------------------------
-
--- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glGetQueryObject.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glGetQueryObject.xhtml OpenGL 4.x>.
-glGetQueryObjecti64v
-  :: MonadIO m
-  => GLuint -- ^ @id@.
-  -> GLenum -- ^ @pname@.
-  -> Ptr GLint64 -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLint64@.
-  -> m ()
-glGetQueryObjecti64v v1 v2 v3 = liftIO $ dyn359 ptr_glGetQueryObjecti64v v1 v2 v3
-
-{-# NOINLINE ptr_glGetQueryObjecti64v #-}
-ptr_glGetQueryObjecti64v :: FunPtr (GLuint -> GLenum -> Ptr GLint64 -> IO ())
-ptr_glGetQueryObjecti64v = unsafePerformIO $ getCommand "glGetQueryObjecti64v"
 
diff --git a/src/Graphics/GL/Functions/F12.hs b/src/Graphics/GL/Functions/F12.hs
--- a/src/Graphics/GL/Functions/F12.hs
+++ b/src/Graphics/GL/Functions/F12.hs
@@ -15,6 +15,8 @@
 --------------------------------------------------------------------------------
 
 module Graphics.GL.Functions.F12 (
+  glGetQueryIndexediv,
+  glGetQueryObjecti64v,
   glGetQueryObjecti64vEXT,
   glGetQueryObjectiv,
   glGetQueryObjectivARB,
@@ -82,6 +84,7 @@
   glGetTexParameterxv,
   glGetTexParameterxvOES,
   glGetTextureHandleARB,
+  glGetTextureHandleIMG,
   glGetTextureHandleNV,
   glGetTextureImage,
   glGetTextureImageEXT,
@@ -98,6 +101,7 @@
   glGetTextureParameteriv,
   glGetTextureParameterivEXT,
   glGetTextureSamplerHandleARB,
+  glGetTextureSamplerHandleIMG,
   glGetTextureSamplerHandleNV,
   glGetTextureSubImage,
   glGetTrackMatrixivNV,
@@ -110,11 +114,7 @@
   glGetTranslatedShaderSourceANGLE,
   glGetUniformBlockIndex,
   glGetUniformBufferSizeEXT,
-  glGetUniformIndices,
-  glGetUniformLocation,
-  glGetUniformLocationARB,
-  glGetUniformOffsetEXT,
-  glGetUniformSubroutineuiv
+  glGetUniformIndices
 ) where
 
 import Control.Monad.IO.Class ( MonadIO(..) )
@@ -123,6 +123,37 @@
 import Graphics.GL.Types
 import System.IO.Unsafe ( unsafePerformIO )
 
+-- glGetQueryIndexediv ---------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glGetQueryIndexed.xhtml OpenGL 4.x>.
+glGetQueryIndexediv
+  :: MonadIO m
+  => GLenum -- ^ @target@.
+  -> GLuint -- ^ @index@.
+  -> GLenum -- ^ @pname@.
+  -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLint@.
+  -> m ()
+glGetQueryIndexediv v1 v2 v3 v4 = liftIO $ dyn351 ptr_glGetQueryIndexediv v1 v2 v3 v4
+
+{-# NOINLINE ptr_glGetQueryIndexediv #-}
+ptr_glGetQueryIndexediv :: FunPtr (GLenum -> GLuint -> GLenum -> Ptr GLint -> IO ())
+ptr_glGetQueryIndexediv = unsafePerformIO $ getCommand "glGetQueryIndexediv"
+
+-- glGetQueryObjecti64v --------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glGetQueryObject.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glGetQueryObject.xhtml OpenGL 4.x>.
+glGetQueryObjecti64v
+  :: MonadIO m
+  => GLuint -- ^ @id@.
+  -> GLenum -- ^ @pname@.
+  -> Ptr GLint64 -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLint64@.
+  -> m ()
+glGetQueryObjecti64v v1 v2 v3 = liftIO $ dyn359 ptr_glGetQueryObjecti64v v1 v2 v3
+
+{-# NOINLINE ptr_glGetQueryObjecti64v #-}
+ptr_glGetQueryObjecti64v :: FunPtr (GLuint -> GLenum -> Ptr GLint64 -> IO ())
+ptr_glGetQueryObjecti64v = unsafePerformIO $ getCommand "glGetQueryObjecti64v"
+
 -- glGetQueryObjecti64vEXT -----------------------------------------------------
 
 -- | This command is an alias for 'glGetQueryObjecti64v'.
@@ -1118,6 +1149,19 @@
 ptr_glGetTextureHandleARB :: FunPtr (GLuint -> IO GLuint64)
 ptr_glGetTextureHandleARB = unsafePerformIO $ getCommand "glGetTextureHandleARB"
 
+-- glGetTextureHandleIMG -------------------------------------------------------
+
+-- | This command is an alias for 'glGetTextureHandleARB'.
+glGetTextureHandleIMG
+  :: MonadIO m
+  => GLuint -- ^ @texture@.
+  -> m GLuint64
+glGetTextureHandleIMG v1 = liftIO $ dyn414 ptr_glGetTextureHandleIMG v1
+
+{-# NOINLINE ptr_glGetTextureHandleIMG #-}
+ptr_glGetTextureHandleIMG :: FunPtr (GLuint -> IO GLuint64)
+ptr_glGetTextureHandleIMG = unsafePerformIO $ getCommand "glGetTextureHandleIMG"
+
 -- glGetTextureHandleNV --------------------------------------------------------
 
 glGetTextureHandleNV
@@ -1362,6 +1406,20 @@
 ptr_glGetTextureSamplerHandleARB :: FunPtr (GLuint -> GLuint -> IO GLuint64)
 ptr_glGetTextureSamplerHandleARB = unsafePerformIO $ getCommand "glGetTextureSamplerHandleARB"
 
+-- glGetTextureSamplerHandleIMG ------------------------------------------------
+
+-- | This command is an alias for 'glGetTextureSamplerHandleARB'.
+glGetTextureSamplerHandleIMG
+  :: MonadIO m
+  => GLuint -- ^ @texture@.
+  -> GLuint -- ^ @sampler@.
+  -> m GLuint64
+glGetTextureSamplerHandleIMG v1 v2 = liftIO $ dyn422 ptr_glGetTextureSamplerHandleIMG v1 v2
+
+{-# NOINLINE ptr_glGetTextureSamplerHandleIMG #-}
+ptr_glGetTextureSamplerHandleIMG :: FunPtr (GLuint -> GLuint -> IO GLuint64)
+ptr_glGetTextureSamplerHandleIMG = unsafePerformIO $ getCommand "glGetTextureSamplerHandleIMG"
+
 -- glGetTextureSamplerHandleNV -------------------------------------------------
 
 glGetTextureSamplerHandleNV
@@ -1570,60 +1628,4 @@
 {-# NOINLINE ptr_glGetUniformIndices #-}
 ptr_glGetUniformIndices :: FunPtr (GLuint -> GLsizei -> Ptr (Ptr GLchar) -> Ptr GLuint -> IO ())
 ptr_glGetUniformIndices = unsafePerformIO $ getCommand "glGetUniformIndices"
-
--- glGetUniformLocation --------------------------------------------------------
-
--- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glGetUniformLocation.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glGetUniformLocation.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glGetUniformLocation.xhtml OpenGL 4.x>.
-glGetUniformLocation
-  :: MonadIO m
-  => GLuint -- ^ @program@.
-  -> Ptr GLchar -- ^ @name@.
-  -> m GLint
-glGetUniformLocation v1 v2 = liftIO $ dyn310 ptr_glGetUniformLocation v1 v2
-
-{-# NOINLINE ptr_glGetUniformLocation #-}
-ptr_glGetUniformLocation :: FunPtr (GLuint -> Ptr GLchar -> IO GLint)
-ptr_glGetUniformLocation = unsafePerformIO $ getCommand "glGetUniformLocation"
-
--- glGetUniformLocationARB -----------------------------------------------------
-
--- | This command is an alias for 'glGetUniformLocation'.
-glGetUniformLocationARB
-  :: MonadIO m
-  => GLhandleARB -- ^ @programObj@ of type @handleARB@.
-  -> Ptr GLcharARB -- ^ @name@.
-  -> m GLint
-glGetUniformLocationARB v1 v2 = liftIO $ dyn311 ptr_glGetUniformLocationARB v1 v2
-
-{-# NOINLINE ptr_glGetUniformLocationARB #-}
-ptr_glGetUniformLocationARB :: FunPtr (GLhandleARB -> Ptr GLcharARB -> IO GLint)
-ptr_glGetUniformLocationARB = unsafePerformIO $ getCommand "glGetUniformLocationARB"
-
--- glGetUniformOffsetEXT -------------------------------------------------------
-
-glGetUniformOffsetEXT
-  :: MonadIO m
-  => GLuint -- ^ @program@.
-  -> GLint -- ^ @location@.
-  -> m GLintptr -- ^ of type @BufferOffset@.
-glGetUniformOffsetEXT v1 v2 = liftIO $ dyn429 ptr_glGetUniformOffsetEXT v1 v2
-
-{-# NOINLINE ptr_glGetUniformOffsetEXT #-}
-ptr_glGetUniformOffsetEXT :: FunPtr (GLuint -> GLint -> IO GLintptr)
-ptr_glGetUniformOffsetEXT = unsafePerformIO $ getCommand "glGetUniformOffsetEXT"
-
--- glGetUniformSubroutineuiv ---------------------------------------------------
-
--- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glGetUniformSubroutine.xhtml OpenGL 4.x>.
-glGetUniformSubroutineuiv
-  :: MonadIO m
-  => GLenum -- ^ @shadertype@.
-  -> GLint -- ^ @location@.
-  -> Ptr GLuint -- ^ @params@ pointing to @1@ element of type @GLuint@.
-  -> m ()
-glGetUniformSubroutineuiv v1 v2 v3 = liftIO $ dyn75 ptr_glGetUniformSubroutineuiv v1 v2 v3
-
-{-# NOINLINE ptr_glGetUniformSubroutineuiv #-}
-ptr_glGetUniformSubroutineuiv :: FunPtr (GLenum -> GLint -> Ptr GLuint -> IO ())
-ptr_glGetUniformSubroutineuiv = unsafePerformIO $ getCommand "glGetUniformSubroutineuiv"
 
diff --git a/src/Graphics/GL/Functions/F13.hs b/src/Graphics/GL/Functions/F13.hs
--- a/src/Graphics/GL/Functions/F13.hs
+++ b/src/Graphics/GL/Functions/F13.hs
@@ -15,6 +15,10 @@
 --------------------------------------------------------------------------------
 
 module Graphics.GL.Functions.F13 (
+  glGetUniformLocation,
+  glGetUniformLocationARB,
+  glGetUniformOffsetEXT,
+  glGetUniformSubroutineuiv,
   glGetUniformdv,
   glGetUniformfv,
   glGetUniformfvARB,
@@ -110,11 +114,7 @@
   glGetnUniformivARB,
   glGetnUniformivEXT,
   glGetnUniformivKHR,
-  glGetnUniformui64vARB,
-  glGetnUniformuiv,
-  glGetnUniformuivARB,
-  glGetnUniformuivKHR,
-  glGlobalAlphaFactorbSUN
+  glGetnUniformui64vARB
 ) where
 
 import Control.Monad.IO.Class ( MonadIO(..) )
@@ -123,6 +123,62 @@
 import Graphics.GL.Types
 import System.IO.Unsafe ( unsafePerformIO )
 
+-- glGetUniformLocation --------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glGetUniformLocation.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glGetUniformLocation.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glGetUniformLocation.xhtml OpenGL 4.x>.
+glGetUniformLocation
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> Ptr GLchar -- ^ @name@.
+  -> m GLint
+glGetUniformLocation v1 v2 = liftIO $ dyn310 ptr_glGetUniformLocation v1 v2
+
+{-# NOINLINE ptr_glGetUniformLocation #-}
+ptr_glGetUniformLocation :: FunPtr (GLuint -> Ptr GLchar -> IO GLint)
+ptr_glGetUniformLocation = unsafePerformIO $ getCommand "glGetUniformLocation"
+
+-- glGetUniformLocationARB -----------------------------------------------------
+
+-- | This command is an alias for 'glGetUniformLocation'.
+glGetUniformLocationARB
+  :: MonadIO m
+  => GLhandleARB -- ^ @programObj@ of type @handleARB@.
+  -> Ptr GLcharARB -- ^ @name@.
+  -> m GLint
+glGetUniformLocationARB v1 v2 = liftIO $ dyn311 ptr_glGetUniformLocationARB v1 v2
+
+{-# NOINLINE ptr_glGetUniformLocationARB #-}
+ptr_glGetUniformLocationARB :: FunPtr (GLhandleARB -> Ptr GLcharARB -> IO GLint)
+ptr_glGetUniformLocationARB = unsafePerformIO $ getCommand "glGetUniformLocationARB"
+
+-- glGetUniformOffsetEXT -------------------------------------------------------
+
+glGetUniformOffsetEXT
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> m GLintptr -- ^ of type @BufferOffset@.
+glGetUniformOffsetEXT v1 v2 = liftIO $ dyn429 ptr_glGetUniformOffsetEXT v1 v2
+
+{-# NOINLINE ptr_glGetUniformOffsetEXT #-}
+ptr_glGetUniformOffsetEXT :: FunPtr (GLuint -> GLint -> IO GLintptr)
+ptr_glGetUniformOffsetEXT = unsafePerformIO $ getCommand "glGetUniformOffsetEXT"
+
+-- glGetUniformSubroutineuiv ---------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glGetUniformSubroutine.xhtml OpenGL 4.x>.
+glGetUniformSubroutineuiv
+  :: MonadIO m
+  => GLenum -- ^ @shadertype@.
+  -> GLint -- ^ @location@.
+  -> Ptr GLuint -- ^ @params@ pointing to @1@ element of type @GLuint@.
+  -> m ()
+glGetUniformSubroutineuiv v1 v2 v3 = liftIO $ dyn75 ptr_glGetUniformSubroutineuiv v1 v2 v3
+
+{-# NOINLINE ptr_glGetUniformSubroutineuiv #-}
+ptr_glGetUniformSubroutineuiv :: FunPtr (GLenum -> GLint -> Ptr GLuint -> IO ())
+ptr_glGetUniformSubroutineuiv = unsafePerformIO $ getCommand "glGetUniformSubroutineuiv"
+
 -- glGetUniformdv --------------------------------------------------------------
 
 -- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glGetUniform.xhtml OpenGL 4.x>.
@@ -1561,63 +1617,4 @@
 {-# NOINLINE ptr_glGetnUniformui64vARB #-}
 ptr_glGetnUniformui64vARB :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint64 -> IO ())
 ptr_glGetnUniformui64vARB = unsafePerformIO $ getCommand "glGetnUniformui64vARB"
-
--- glGetnUniformuiv ------------------------------------------------------------
-
--- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glGetUniform.xhtml OpenGL 4.x>.
-glGetnUniformuiv
-  :: MonadIO m
-  => GLuint -- ^ @program@.
-  -> GLint -- ^ @location@.
-  -> GLsizei -- ^ @bufSize@.
-  -> Ptr GLuint -- ^ @params@.
-  -> m ()
-glGetnUniformuiv v1 v2 v3 v4 = liftIO $ dyn461 ptr_glGetnUniformuiv v1 v2 v3 v4
-
-{-# NOINLINE ptr_glGetnUniformuiv #-}
-ptr_glGetnUniformuiv :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint -> IO ())
-ptr_glGetnUniformuiv = unsafePerformIO $ getCommand "glGetnUniformuiv"
-
--- glGetnUniformuivARB ---------------------------------------------------------
-
-glGetnUniformuivARB
-  :: MonadIO m
-  => GLuint -- ^ @program@.
-  -> GLint -- ^ @location@.
-  -> GLsizei -- ^ @bufSize@.
-  -> Ptr GLuint -- ^ @params@ pointing to @bufSize@ elements of type @GLuint@.
-  -> m ()
-glGetnUniformuivARB v1 v2 v3 v4 = liftIO $ dyn461 ptr_glGetnUniformuivARB v1 v2 v3 v4
-
-{-# NOINLINE ptr_glGetnUniformuivARB #-}
-ptr_glGetnUniformuivARB :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint -> IO ())
-ptr_glGetnUniformuivARB = unsafePerformIO $ getCommand "glGetnUniformuivARB"
-
--- glGetnUniformuivKHR ---------------------------------------------------------
-
--- | This command is an alias for 'glGetnUniformuiv'.
-glGetnUniformuivKHR
-  :: MonadIO m
-  => GLuint -- ^ @program@.
-  -> GLint -- ^ @location@.
-  -> GLsizei -- ^ @bufSize@.
-  -> Ptr GLuint -- ^ @params@.
-  -> m ()
-glGetnUniformuivKHR v1 v2 v3 v4 = liftIO $ dyn461 ptr_glGetnUniformuivKHR v1 v2 v3 v4
-
-{-# NOINLINE ptr_glGetnUniformuivKHR #-}
-ptr_glGetnUniformuivKHR :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint -> IO ())
-ptr_glGetnUniformuivKHR = unsafePerformIO $ getCommand "glGetnUniformuivKHR"
-
--- glGlobalAlphaFactorbSUN -----------------------------------------------------
-
-glGlobalAlphaFactorbSUN
-  :: MonadIO m
-  => GLbyte -- ^ @factor@.
-  -> m ()
-glGlobalAlphaFactorbSUN v1 = liftIO $ dyn462 ptr_glGlobalAlphaFactorbSUN v1
-
-{-# NOINLINE ptr_glGlobalAlphaFactorbSUN #-}
-ptr_glGlobalAlphaFactorbSUN :: FunPtr (GLbyte -> IO ())
-ptr_glGlobalAlphaFactorbSUN = unsafePerformIO $ getCommand "glGlobalAlphaFactorbSUN"
 
diff --git a/src/Graphics/GL/Functions/F14.hs b/src/Graphics/GL/Functions/F14.hs
--- a/src/Graphics/GL/Functions/F14.hs
+++ b/src/Graphics/GL/Functions/F14.hs
@@ -15,6 +15,10 @@
 --------------------------------------------------------------------------------
 
 module Graphics.GL.Functions.F14 (
+  glGetnUniformuiv,
+  glGetnUniformuivARB,
+  glGetnUniformuivKHR,
+  glGlobalAlphaFactorbSUN,
   glGlobalAlphaFactordSUN,
   glGlobalAlphaFactorfSUN,
   glGlobalAlphaFactoriSUN,
@@ -110,11 +114,7 @@
   glIsSyncAPPLE,
   glIsTexture,
   glIsTextureEXT,
-  glIsTextureHandleResidentARB,
-  glIsTextureHandleResidentNV,
-  glIsTransformFeedback,
-  glIsTransformFeedbackNV,
-  glIsVariantEnabledEXT
+  glIsTextureHandleResidentARB
 ) where
 
 import Control.Monad.IO.Class ( MonadIO(..) )
@@ -123,6 +123,65 @@
 import Graphics.GL.Types
 import System.IO.Unsafe ( unsafePerformIO )
 
+-- glGetnUniformuiv ------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glGetUniform.xhtml OpenGL 4.x>.
+glGetnUniformuiv
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLsizei -- ^ @bufSize@.
+  -> Ptr GLuint -- ^ @params@.
+  -> m ()
+glGetnUniformuiv v1 v2 v3 v4 = liftIO $ dyn461 ptr_glGetnUniformuiv v1 v2 v3 v4
+
+{-# NOINLINE ptr_glGetnUniformuiv #-}
+ptr_glGetnUniformuiv :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint -> IO ())
+ptr_glGetnUniformuiv = unsafePerformIO $ getCommand "glGetnUniformuiv"
+
+-- glGetnUniformuivARB ---------------------------------------------------------
+
+glGetnUniformuivARB
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLsizei -- ^ @bufSize@.
+  -> Ptr GLuint -- ^ @params@ pointing to @bufSize@ elements of type @GLuint@.
+  -> m ()
+glGetnUniformuivARB v1 v2 v3 v4 = liftIO $ dyn461 ptr_glGetnUniformuivARB v1 v2 v3 v4
+
+{-# NOINLINE ptr_glGetnUniformuivARB #-}
+ptr_glGetnUniformuivARB :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint -> IO ())
+ptr_glGetnUniformuivARB = unsafePerformIO $ getCommand "glGetnUniformuivARB"
+
+-- glGetnUniformuivKHR ---------------------------------------------------------
+
+-- | This command is an alias for 'glGetnUniformuiv'.
+glGetnUniformuivKHR
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLsizei -- ^ @bufSize@.
+  -> Ptr GLuint -- ^ @params@.
+  -> m ()
+glGetnUniformuivKHR v1 v2 v3 v4 = liftIO $ dyn461 ptr_glGetnUniformuivKHR v1 v2 v3 v4
+
+{-# NOINLINE ptr_glGetnUniformuivKHR #-}
+ptr_glGetnUniformuivKHR :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint -> IO ())
+ptr_glGetnUniformuivKHR = unsafePerformIO $ getCommand "glGetnUniformuivKHR"
+
+-- glGlobalAlphaFactorbSUN -----------------------------------------------------
+
+glGlobalAlphaFactorbSUN
+  :: MonadIO m
+  => GLbyte -- ^ @factor@.
+  -> m ()
+glGlobalAlphaFactorbSUN v1 = liftIO $ dyn462 ptr_glGlobalAlphaFactorbSUN v1
+
+{-# NOINLINE ptr_glGlobalAlphaFactorbSUN #-}
+ptr_glGlobalAlphaFactorbSUN :: FunPtr (GLbyte -> IO ())
+ptr_glGlobalAlphaFactorbSUN = unsafePerformIO $ getCommand "glGlobalAlphaFactorbSUN"
+
 -- glGlobalAlphaFactordSUN -----------------------------------------------------
 
 glGlobalAlphaFactordSUN
@@ -1398,55 +1457,4 @@
 {-# NOINLINE ptr_glIsTextureHandleResidentARB #-}
 ptr_glIsTextureHandleResidentARB :: FunPtr (GLuint64 -> IO GLboolean)
 ptr_glIsTextureHandleResidentARB = unsafePerformIO $ getCommand "glIsTextureHandleResidentARB"
-
--- glIsTextureHandleResidentNV -------------------------------------------------
-
-glIsTextureHandleResidentNV
-  :: MonadIO m
-  => GLuint64 -- ^ @handle@.
-  -> m GLboolean -- ^ of type [Boolean](Graphics-GL-Groups.html#Boolean).
-glIsTextureHandleResidentNV v1 = liftIO $ dyn478 ptr_glIsTextureHandleResidentNV v1
-
-{-# NOINLINE ptr_glIsTextureHandleResidentNV #-}
-ptr_glIsTextureHandleResidentNV :: FunPtr (GLuint64 -> IO GLboolean)
-ptr_glIsTextureHandleResidentNV = unsafePerformIO $ getCommand "glIsTextureHandleResidentNV"
-
--- glIsTransformFeedback -------------------------------------------------------
-
--- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glIsTransformFeedback.xhtml OpenGL 4.x>.
-glIsTransformFeedback
-  :: MonadIO m
-  => GLuint -- ^ @id@.
-  -> m GLboolean -- ^ of type [Boolean](Graphics-GL-Groups.html#Boolean).
-glIsTransformFeedback v1 = liftIO $ dyn273 ptr_glIsTransformFeedback v1
-
-{-# NOINLINE ptr_glIsTransformFeedback #-}
-ptr_glIsTransformFeedback :: FunPtr (GLuint -> IO GLboolean)
-ptr_glIsTransformFeedback = unsafePerformIO $ getCommand "glIsTransformFeedback"
-
--- glIsTransformFeedbackNV -----------------------------------------------------
-
--- | This command is an alias for 'glIsTransformFeedback'.
-glIsTransformFeedbackNV
-  :: MonadIO m
-  => GLuint -- ^ @id@.
-  -> m GLboolean -- ^ of type [Boolean](Graphics-GL-Groups.html#Boolean).
-glIsTransformFeedbackNV v1 = liftIO $ dyn273 ptr_glIsTransformFeedbackNV v1
-
-{-# NOINLINE ptr_glIsTransformFeedbackNV #-}
-ptr_glIsTransformFeedbackNV :: FunPtr (GLuint -> IO GLboolean)
-ptr_glIsTransformFeedbackNV = unsafePerformIO $ getCommand "glIsTransformFeedbackNV"
-
--- glIsVariantEnabledEXT -------------------------------------------------------
-
-glIsVariantEnabledEXT
-  :: MonadIO m
-  => GLuint -- ^ @id@.
-  -> GLenum -- ^ @cap@ of type @VariantCapEXT@.
-  -> m GLboolean -- ^ of type [Boolean](Graphics-GL-Groups.html#Boolean).
-glIsVariantEnabledEXT v1 v2 = liftIO $ dyn483 ptr_glIsVariantEnabledEXT v1 v2
-
-{-# NOINLINE ptr_glIsVariantEnabledEXT #-}
-ptr_glIsVariantEnabledEXT :: FunPtr (GLuint -> GLenum -> IO GLboolean)
-ptr_glIsVariantEnabledEXT = unsafePerformIO $ getCommand "glIsVariantEnabledEXT"
 
diff --git a/src/Graphics/GL/Functions/F15.hs b/src/Graphics/GL/Functions/F15.hs
--- a/src/Graphics/GL/Functions/F15.hs
+++ b/src/Graphics/GL/Functions/F15.hs
@@ -15,6 +15,10 @@
 --------------------------------------------------------------------------------
 
 module Graphics.GL.Functions.F15 (
+  glIsTextureHandleResidentNV,
+  glIsTransformFeedback,
+  glIsTransformFeedbackNV,
+  glIsVariantEnabledEXT,
   glIsVertexArray,
   glIsVertexArrayAPPLE,
   glIsVertexArrayOES,
@@ -110,11 +114,7 @@
   glMaterialf,
   glMaterialfv,
   glMateriali,
-  glMaterialiv,
-  glMaterialx,
-  glMaterialxOES,
-  glMaterialxv,
-  glMaterialxvOES
+  glMaterialiv
 ) where
 
 import Control.Monad.IO.Class ( MonadIO(..) )
@@ -123,6 +123,57 @@
 import Graphics.GL.Types
 import System.IO.Unsafe ( unsafePerformIO )
 
+-- glIsTextureHandleResidentNV -------------------------------------------------
+
+glIsTextureHandleResidentNV
+  :: MonadIO m
+  => GLuint64 -- ^ @handle@.
+  -> m GLboolean -- ^ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+glIsTextureHandleResidentNV v1 = liftIO $ dyn478 ptr_glIsTextureHandleResidentNV v1
+
+{-# NOINLINE ptr_glIsTextureHandleResidentNV #-}
+ptr_glIsTextureHandleResidentNV :: FunPtr (GLuint64 -> IO GLboolean)
+ptr_glIsTextureHandleResidentNV = unsafePerformIO $ getCommand "glIsTextureHandleResidentNV"
+
+-- glIsTransformFeedback -------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glIsTransformFeedback.xhtml OpenGL 4.x>.
+glIsTransformFeedback
+  :: MonadIO m
+  => GLuint -- ^ @id@.
+  -> m GLboolean -- ^ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+glIsTransformFeedback v1 = liftIO $ dyn273 ptr_glIsTransformFeedback v1
+
+{-# NOINLINE ptr_glIsTransformFeedback #-}
+ptr_glIsTransformFeedback :: FunPtr (GLuint -> IO GLboolean)
+ptr_glIsTransformFeedback = unsafePerformIO $ getCommand "glIsTransformFeedback"
+
+-- glIsTransformFeedbackNV -----------------------------------------------------
+
+-- | This command is an alias for 'glIsTransformFeedback'.
+glIsTransformFeedbackNV
+  :: MonadIO m
+  => GLuint -- ^ @id@.
+  -> m GLboolean -- ^ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+glIsTransformFeedbackNV v1 = liftIO $ dyn273 ptr_glIsTransformFeedbackNV v1
+
+{-# NOINLINE ptr_glIsTransformFeedbackNV #-}
+ptr_glIsTransformFeedbackNV :: FunPtr (GLuint -> IO GLboolean)
+ptr_glIsTransformFeedbackNV = unsafePerformIO $ getCommand "glIsTransformFeedbackNV"
+
+-- glIsVariantEnabledEXT -------------------------------------------------------
+
+glIsVariantEnabledEXT
+  :: MonadIO m
+  => GLuint -- ^ @id@.
+  -> GLenum -- ^ @cap@ of type @VariantCapEXT@.
+  -> m GLboolean -- ^ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+glIsVariantEnabledEXT v1 v2 = liftIO $ dyn483 ptr_glIsVariantEnabledEXT v1 v2
+
+{-# NOINLINE ptr_glIsVariantEnabledEXT #-}
+ptr_glIsVariantEnabledEXT :: FunPtr (GLuint -> GLenum -> IO GLboolean)
+ptr_glIsVariantEnabledEXT = unsafePerformIO $ getCommand "glIsVariantEnabledEXT"
+
 -- glIsVertexArray -------------------------------------------------------------
 
 -- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glIsVertexArray.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glIsVertexArray.xhtml OpenGL 4.x>.
@@ -1503,60 +1554,4 @@
 {-# NOINLINE ptr_glMaterialiv #-}
 ptr_glMaterialiv :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
 ptr_glMaterialiv = unsafePerformIO $ getCommand "glMaterialiv"
-
--- glMaterialx -----------------------------------------------------------------
-
-glMaterialx
-  :: MonadIO m
-  => GLenum -- ^ @face@.
-  -> GLenum -- ^ @pname@.
-  -> GLfixed -- ^ @param@.
-  -> m ()
-glMaterialx v1 v2 v3 = liftIO $ dyn162 ptr_glMaterialx v1 v2 v3
-
-{-# NOINLINE ptr_glMaterialx #-}
-ptr_glMaterialx :: FunPtr (GLenum -> GLenum -> GLfixed -> IO ())
-ptr_glMaterialx = unsafePerformIO $ getCommand "glMaterialx"
-
--- glMaterialxOES --------------------------------------------------------------
-
-glMaterialxOES
-  :: MonadIO m
-  => GLenum -- ^ @face@.
-  -> GLenum -- ^ @pname@.
-  -> GLfixed -- ^ @param@.
-  -> m ()
-glMaterialxOES v1 v2 v3 = liftIO $ dyn162 ptr_glMaterialxOES v1 v2 v3
-
-{-# NOINLINE ptr_glMaterialxOES #-}
-ptr_glMaterialxOES :: FunPtr (GLenum -> GLenum -> GLfixed -> IO ())
-ptr_glMaterialxOES = unsafePerformIO $ getCommand "glMaterialxOES"
-
--- glMaterialxv ----------------------------------------------------------------
-
-glMaterialxv
-  :: MonadIO m
-  => GLenum -- ^ @face@.
-  -> GLenum -- ^ @pname@.
-  -> Ptr GLfixed -- ^ @param@ pointing to @COMPSIZE(pname)@ elements of type @GLfixed@.
-  -> m ()
-glMaterialxv v1 v2 v3 = liftIO $ dyn163 ptr_glMaterialxv v1 v2 v3
-
-{-# NOINLINE ptr_glMaterialxv #-}
-ptr_glMaterialxv :: FunPtr (GLenum -> GLenum -> Ptr GLfixed -> IO ())
-ptr_glMaterialxv = unsafePerformIO $ getCommand "glMaterialxv"
-
--- glMaterialxvOES -------------------------------------------------------------
-
-glMaterialxvOES
-  :: MonadIO m
-  => GLenum -- ^ @face@.
-  -> GLenum -- ^ @pname@.
-  -> Ptr GLfixed -- ^ @param@ pointing to @COMPSIZE(pname)@ elements of type @GLfixed@.
-  -> m ()
-glMaterialxvOES v1 v2 v3 = liftIO $ dyn163 ptr_glMaterialxvOES v1 v2 v3
-
-{-# NOINLINE ptr_glMaterialxvOES #-}
-ptr_glMaterialxvOES :: FunPtr (GLenum -> GLenum -> Ptr GLfixed -> IO ())
-ptr_glMaterialxvOES = unsafePerformIO $ getCommand "glMaterialxvOES"
 
diff --git a/src/Graphics/GL/Functions/F16.hs b/src/Graphics/GL/Functions/F16.hs
--- a/src/Graphics/GL/Functions/F16.hs
+++ b/src/Graphics/GL/Functions/F16.hs
@@ -15,6 +15,10 @@
 --------------------------------------------------------------------------------
 
 module Graphics.GL.Functions.F16 (
+  glMaterialx,
+  glMaterialxOES,
+  glMaterialxv,
+  glMaterialxvOES,
   glMatrixFrustumEXT,
   glMatrixIndexPointerARB,
   glMatrixIndexPointerOES,
@@ -110,11 +114,7 @@
   glMultiTexCoord1svARB,
   glMultiTexCoord1xOES,
   glMultiTexCoord1xvOES,
-  glMultiTexCoord2bOES,
-  glMultiTexCoord2bvOES,
-  glMultiTexCoord2d,
-  glMultiTexCoord2dARB,
-  glMultiTexCoord2dv
+  glMultiTexCoord2bOES
 ) where
 
 import Control.Monad.IO.Class ( MonadIO(..) )
@@ -123,6 +123,62 @@
 import Graphics.GL.Types
 import System.IO.Unsafe ( unsafePerformIO )
 
+-- glMaterialx -----------------------------------------------------------------
+
+glMaterialx
+  :: MonadIO m
+  => GLenum -- ^ @face@.
+  -> GLenum -- ^ @pname@.
+  -> GLfixed -- ^ @param@.
+  -> m ()
+glMaterialx v1 v2 v3 = liftIO $ dyn162 ptr_glMaterialx v1 v2 v3
+
+{-# NOINLINE ptr_glMaterialx #-}
+ptr_glMaterialx :: FunPtr (GLenum -> GLenum -> GLfixed -> IO ())
+ptr_glMaterialx = unsafePerformIO $ getCommand "glMaterialx"
+
+-- glMaterialxOES --------------------------------------------------------------
+
+glMaterialxOES
+  :: MonadIO m
+  => GLenum -- ^ @face@.
+  -> GLenum -- ^ @pname@.
+  -> GLfixed -- ^ @param@.
+  -> m ()
+glMaterialxOES v1 v2 v3 = liftIO $ dyn162 ptr_glMaterialxOES v1 v2 v3
+
+{-# NOINLINE ptr_glMaterialxOES #-}
+ptr_glMaterialxOES :: FunPtr (GLenum -> GLenum -> GLfixed -> IO ())
+ptr_glMaterialxOES = unsafePerformIO $ getCommand "glMaterialxOES"
+
+-- glMaterialxv ----------------------------------------------------------------
+
+glMaterialxv
+  :: MonadIO m
+  => GLenum -- ^ @face@.
+  -> GLenum -- ^ @pname@.
+  -> Ptr GLfixed -- ^ @param@ pointing to @COMPSIZE(pname)@ elements of type @GLfixed@.
+  -> m ()
+glMaterialxv v1 v2 v3 = liftIO $ dyn163 ptr_glMaterialxv v1 v2 v3
+
+{-# NOINLINE ptr_glMaterialxv #-}
+ptr_glMaterialxv :: FunPtr (GLenum -> GLenum -> Ptr GLfixed -> IO ())
+ptr_glMaterialxv = unsafePerformIO $ getCommand "glMaterialxv"
+
+-- glMaterialxvOES -------------------------------------------------------------
+
+glMaterialxvOES
+  :: MonadIO m
+  => GLenum -- ^ @face@.
+  -> GLenum -- ^ @pname@.
+  -> Ptr GLfixed -- ^ @param@ pointing to @COMPSIZE(pname)@ elements of type @GLfixed@.
+  -> m ()
+glMaterialxvOES v1 v2 v3 = liftIO $ dyn163 ptr_glMaterialxvOES v1 v2 v3
+
+{-# NOINLINE ptr_glMaterialxvOES #-}
+ptr_glMaterialxvOES :: FunPtr (GLenum -> GLenum -> Ptr GLfixed -> IO ())
+ptr_glMaterialxvOES = unsafePerformIO $ getCommand "glMaterialxvOES"
+
 -- glMatrixFrustumEXT ----------------------------------------------------------
 
 glMatrixFrustumEXT
@@ -1501,61 +1557,4 @@
 {-# NOINLINE ptr_glMultiTexCoord2bOES #-}
 ptr_glMultiTexCoord2bOES :: FunPtr (GLenum -> GLbyte -> GLbyte -> IO ())
 ptr_glMultiTexCoord2bOES = unsafePerformIO $ getCommand "glMultiTexCoord2bOES"
-
--- glMultiTexCoord2bvOES -------------------------------------------------------
-
-glMultiTexCoord2bvOES
-  :: MonadIO m
-  => GLenum -- ^ @texture@.
-  -> Ptr GLbyte -- ^ @coords@ pointing to @2@ elements of type @GLbyte@.
-  -> m ()
-glMultiTexCoord2bvOES v1 v2 = liftIO $ dyn540 ptr_glMultiTexCoord2bvOES v1 v2
-
-{-# NOINLINE ptr_glMultiTexCoord2bvOES #-}
-ptr_glMultiTexCoord2bvOES :: FunPtr (GLenum -> Ptr GLbyte -> IO ())
-ptr_glMultiTexCoord2bvOES = unsafePerformIO $ getCommand "glMultiTexCoord2bvOES"
-
--- glMultiTexCoord2d -----------------------------------------------------------
-
--- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord.xml OpenGL 2.x>. The vector equivalent of this command is 'glMultiTexCoord2dv'.
-glMultiTexCoord2d
-  :: MonadIO m
-  => GLenum -- ^ @target@ of type @TextureUnit@.
-  -> GLdouble -- ^ @s@ of type @CoordD@.
-  -> GLdouble -- ^ @t@ of type @CoordD@.
-  -> m ()
-glMultiTexCoord2d v1 v2 v3 = liftIO $ dyn547 ptr_glMultiTexCoord2d v1 v2 v3
-
-{-# NOINLINE ptr_glMultiTexCoord2d #-}
-ptr_glMultiTexCoord2d :: FunPtr (GLenum -> GLdouble -> GLdouble -> IO ())
-ptr_glMultiTexCoord2d = unsafePerformIO $ getCommand "glMultiTexCoord2d"
-
--- glMultiTexCoord2dARB --------------------------------------------------------
-
--- | The vector equivalent of this command is 'glMultiTexCoord2dv'. This command is an alias for 'glMultiTexCoord2d'.
-glMultiTexCoord2dARB
-  :: MonadIO m
-  => GLenum -- ^ @target@ of type @TextureUnit@.
-  -> GLdouble -- ^ @s@ of type @CoordD@.
-  -> GLdouble -- ^ @t@ of type @CoordD@.
-  -> m ()
-glMultiTexCoord2dARB v1 v2 v3 = liftIO $ dyn547 ptr_glMultiTexCoord2dARB v1 v2 v3
-
-{-# NOINLINE ptr_glMultiTexCoord2dARB #-}
-ptr_glMultiTexCoord2dARB :: FunPtr (GLenum -> GLdouble -> GLdouble -> IO ())
-ptr_glMultiTexCoord2dARB = unsafePerformIO $ getCommand "glMultiTexCoord2dARB"
-
--- glMultiTexCoord2dv ----------------------------------------------------------
-
--- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord.xml OpenGL 2.x>.
-glMultiTexCoord2dv
-  :: MonadIO m
-  => GLenum -- ^ @target@ of type @TextureUnit@.
-  -> Ptr GLdouble -- ^ @v@ pointing to @2@ elements of type @CoordD@.
-  -> m ()
-glMultiTexCoord2dv v1 v2 = liftIO $ dyn93 ptr_glMultiTexCoord2dv v1 v2
-
-{-# NOINLINE ptr_glMultiTexCoord2dv #-}
-ptr_glMultiTexCoord2dv :: FunPtr (GLenum -> Ptr GLdouble -> IO ())
-ptr_glMultiTexCoord2dv = unsafePerformIO $ getCommand "glMultiTexCoord2dv"
 
diff --git a/src/Graphics/GL/Functions/F17.hs b/src/Graphics/GL/Functions/F17.hs
--- a/src/Graphics/GL/Functions/F17.hs
+++ b/src/Graphics/GL/Functions/F17.hs
@@ -15,6 +15,10 @@
 --------------------------------------------------------------------------------
 
 module Graphics.GL.Functions.F17 (
+  glMultiTexCoord2bvOES,
+  glMultiTexCoord2d,
+  glMultiTexCoord2dARB,
+  glMultiTexCoord2dv,
   glMultiTexCoord2dvARB,
   glMultiTexCoord2f,
   glMultiTexCoord2fARB,
@@ -110,11 +114,7 @@
   glMultiTexSubImage2DEXT,
   glMultiTexSubImage3DEXT,
   glNamedBufferData,
-  glNamedBufferDataEXT,
-  glNamedBufferPageCommitmentARB,
-  glNamedBufferPageCommitmentEXT,
-  glNamedBufferStorage,
-  glNamedBufferStorageEXT
+  glNamedBufferDataEXT
 ) where
 
 import Control.Monad.IO.Class ( MonadIO(..) )
@@ -123,6 +123,63 @@
 import Graphics.GL.Types
 import System.IO.Unsafe ( unsafePerformIO )
 
+-- glMultiTexCoord2bvOES -------------------------------------------------------
+
+glMultiTexCoord2bvOES
+  :: MonadIO m
+  => GLenum -- ^ @texture@.
+  -> Ptr GLbyte -- ^ @coords@ pointing to @2@ elements of type @GLbyte@.
+  -> m ()
+glMultiTexCoord2bvOES v1 v2 = liftIO $ dyn540 ptr_glMultiTexCoord2bvOES v1 v2
+
+{-# NOINLINE ptr_glMultiTexCoord2bvOES #-}
+ptr_glMultiTexCoord2bvOES :: FunPtr (GLenum -> Ptr GLbyte -> IO ())
+ptr_glMultiTexCoord2bvOES = unsafePerformIO $ getCommand "glMultiTexCoord2bvOES"
+
+-- glMultiTexCoord2d -----------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord.xml OpenGL 2.x>. The vector equivalent of this command is 'glMultiTexCoord2dv'.
+glMultiTexCoord2d
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type @TextureUnit@.
+  -> GLdouble -- ^ @s@ of type @CoordD@.
+  -> GLdouble -- ^ @t@ of type @CoordD@.
+  -> m ()
+glMultiTexCoord2d v1 v2 v3 = liftIO $ dyn547 ptr_glMultiTexCoord2d v1 v2 v3
+
+{-# NOINLINE ptr_glMultiTexCoord2d #-}
+ptr_glMultiTexCoord2d :: FunPtr (GLenum -> GLdouble -> GLdouble -> IO ())
+ptr_glMultiTexCoord2d = unsafePerformIO $ getCommand "glMultiTexCoord2d"
+
+-- glMultiTexCoord2dARB --------------------------------------------------------
+
+-- | The vector equivalent of this command is 'glMultiTexCoord2dv'. This command is an alias for 'glMultiTexCoord2d'.
+glMultiTexCoord2dARB
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type @TextureUnit@.
+  -> GLdouble -- ^ @s@ of type @CoordD@.
+  -> GLdouble -- ^ @t@ of type @CoordD@.
+  -> m ()
+glMultiTexCoord2dARB v1 v2 v3 = liftIO $ dyn547 ptr_glMultiTexCoord2dARB v1 v2 v3
+
+{-# NOINLINE ptr_glMultiTexCoord2dARB #-}
+ptr_glMultiTexCoord2dARB :: FunPtr (GLenum -> GLdouble -> GLdouble -> IO ())
+ptr_glMultiTexCoord2dARB = unsafePerformIO $ getCommand "glMultiTexCoord2dARB"
+
+-- glMultiTexCoord2dv ----------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord.xml OpenGL 2.x>.
+glMultiTexCoord2dv
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type @TextureUnit@.
+  -> Ptr GLdouble -- ^ @v@ pointing to @2@ elements of type @CoordD@.
+  -> m ()
+glMultiTexCoord2dv v1 v2 = liftIO $ dyn93 ptr_glMultiTexCoord2dv v1 v2
+
+{-# NOINLINE ptr_glMultiTexCoord2dv #-}
+ptr_glMultiTexCoord2dv :: FunPtr (GLenum -> Ptr GLdouble -> IO ())
+ptr_glMultiTexCoord2dv = unsafePerformIO $ getCommand "glMultiTexCoord2dv"
+
 -- glMultiTexCoord2dvARB -------------------------------------------------------
 
 -- | This command is an alias for 'glMultiTexCoord2dv'.
@@ -1588,66 +1645,4 @@
 {-# NOINLINE ptr_glNamedBufferDataEXT #-}
 ptr_glNamedBufferDataEXT :: FunPtr (GLuint -> GLsizeiptr -> Ptr a -> GLenum -> IO ())
 ptr_glNamedBufferDataEXT = unsafePerformIO $ getCommand "glNamedBufferDataEXT"
-
--- glNamedBufferPageCommitmentARB ----------------------------------------------
-
-glNamedBufferPageCommitmentARB
-  :: MonadIO m
-  => GLuint -- ^ @buffer@.
-  -> GLintptr -- ^ @offset@.
-  -> GLsizeiptr -- ^ @size@.
-  -> GLboolean -- ^ @commit@.
-  -> m ()
-glNamedBufferPageCommitmentARB v1 v2 v3 v4 = liftIO $ dyn572 ptr_glNamedBufferPageCommitmentARB v1 v2 v3 v4
-
-{-# NOINLINE ptr_glNamedBufferPageCommitmentARB #-}
-ptr_glNamedBufferPageCommitmentARB :: FunPtr (GLuint -> GLintptr -> GLsizeiptr -> GLboolean -> IO ())
-ptr_glNamedBufferPageCommitmentARB = unsafePerformIO $ getCommand "glNamedBufferPageCommitmentARB"
-
--- glNamedBufferPageCommitmentEXT ----------------------------------------------
-
-glNamedBufferPageCommitmentEXT
-  :: MonadIO m
-  => GLuint -- ^ @buffer@.
-  -> GLintptr -- ^ @offset@.
-  -> GLsizeiptr -- ^ @size@.
-  -> GLboolean -- ^ @commit@.
-  -> m ()
-glNamedBufferPageCommitmentEXT v1 v2 v3 v4 = liftIO $ dyn572 ptr_glNamedBufferPageCommitmentEXT v1 v2 v3 v4
-
-{-# NOINLINE ptr_glNamedBufferPageCommitmentEXT #-}
-ptr_glNamedBufferPageCommitmentEXT :: FunPtr (GLuint -> GLintptr -> GLsizeiptr -> GLboolean -> IO ())
-ptr_glNamedBufferPageCommitmentEXT = unsafePerformIO $ getCommand "glNamedBufferPageCommitmentEXT"
-
--- glNamedBufferStorage --------------------------------------------------------
-
--- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glBufferStorage.xhtml OpenGL 4.x>.
-glNamedBufferStorage
-  :: MonadIO m
-  => GLuint -- ^ @buffer@.
-  -> GLsizeiptr -- ^ @size@ of type @BufferSize@.
-  -> Ptr a -- ^ @data@ pointing to @size@ elements of type @a@.
-  -> GLbitfield -- ^ @flags@.
-  -> m ()
-glNamedBufferStorage v1 v2 v3 v4 = liftIO $ dyn573 ptr_glNamedBufferStorage v1 v2 v3 v4
-
-{-# NOINLINE ptr_glNamedBufferStorage #-}
-ptr_glNamedBufferStorage :: FunPtr (GLuint -> GLsizeiptr -> Ptr a -> GLbitfield -> IO ())
-ptr_glNamedBufferStorage = unsafePerformIO $ getCommand "glNamedBufferStorage"
-
--- glNamedBufferStorageEXT -----------------------------------------------------
-
--- | This command is an alias for 'glNamedBufferStorage'.
-glNamedBufferStorageEXT
-  :: MonadIO m
-  => GLuint -- ^ @buffer@.
-  -> GLsizeiptr -- ^ @size@ of type @BufferSize@.
-  -> Ptr a -- ^ @data@ pointing to @size@ elements of type @a@.
-  -> GLbitfield -- ^ @flags@.
-  -> m ()
-glNamedBufferStorageEXT v1 v2 v3 v4 = liftIO $ dyn573 ptr_glNamedBufferStorageEXT v1 v2 v3 v4
-
-{-# NOINLINE ptr_glNamedBufferStorageEXT #-}
-ptr_glNamedBufferStorageEXT :: FunPtr (GLuint -> GLsizeiptr -> Ptr a -> GLbitfield -> IO ())
-ptr_glNamedBufferStorageEXT = unsafePerformIO $ getCommand "glNamedBufferStorageEXT"
 
diff --git a/src/Graphics/GL/Functions/F18.hs b/src/Graphics/GL/Functions/F18.hs
--- a/src/Graphics/GL/Functions/F18.hs
+++ b/src/Graphics/GL/Functions/F18.hs
@@ -15,6 +15,10 @@
 --------------------------------------------------------------------------------
 
 module Graphics.GL.Functions.F18 (
+  glNamedBufferPageCommitmentARB,
+  glNamedBufferPageCommitmentEXT,
+  glNamedBufferStorage,
+  glNamedBufferStorageEXT,
   glNamedBufferSubData,
   glNamedBufferSubDataEXT,
   glNamedCopyBufferSubDataEXT,
@@ -110,11 +114,7 @@
   glPatchParameteriEXT,
   glPatchParameteriOES,
   glPathColorGenNV,
-  glPathCommandsNV,
-  glPathCoordsNV,
-  glPathCoverDepthFuncNV,
-  glPathDashArrayNV,
-  glPathFogGenNV
+  glPathCommandsNV
 ) where
 
 import Control.Monad.IO.Class ( MonadIO(..) )
@@ -123,6 +123,68 @@
 import Graphics.GL.Types
 import System.IO.Unsafe ( unsafePerformIO )
 
+-- glNamedBufferPageCommitmentARB ----------------------------------------------
+
+glNamedBufferPageCommitmentARB
+  :: MonadIO m
+  => GLuint -- ^ @buffer@.
+  -> GLintptr -- ^ @offset@.
+  -> GLsizeiptr -- ^ @size@.
+  -> GLboolean -- ^ @commit@.
+  -> m ()
+glNamedBufferPageCommitmentARB v1 v2 v3 v4 = liftIO $ dyn572 ptr_glNamedBufferPageCommitmentARB v1 v2 v3 v4
+
+{-# NOINLINE ptr_glNamedBufferPageCommitmentARB #-}
+ptr_glNamedBufferPageCommitmentARB :: FunPtr (GLuint -> GLintptr -> GLsizeiptr -> GLboolean -> IO ())
+ptr_glNamedBufferPageCommitmentARB = unsafePerformIO $ getCommand "glNamedBufferPageCommitmentARB"
+
+-- glNamedBufferPageCommitmentEXT ----------------------------------------------
+
+glNamedBufferPageCommitmentEXT
+  :: MonadIO m
+  => GLuint -- ^ @buffer@.
+  -> GLintptr -- ^ @offset@.
+  -> GLsizeiptr -- ^ @size@.
+  -> GLboolean -- ^ @commit@.
+  -> m ()
+glNamedBufferPageCommitmentEXT v1 v2 v3 v4 = liftIO $ dyn572 ptr_glNamedBufferPageCommitmentEXT v1 v2 v3 v4
+
+{-# NOINLINE ptr_glNamedBufferPageCommitmentEXT #-}
+ptr_glNamedBufferPageCommitmentEXT :: FunPtr (GLuint -> GLintptr -> GLsizeiptr -> GLboolean -> IO ())
+ptr_glNamedBufferPageCommitmentEXT = unsafePerformIO $ getCommand "glNamedBufferPageCommitmentEXT"
+
+-- glNamedBufferStorage --------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glBufferStorage.xhtml OpenGL 4.x>.
+glNamedBufferStorage
+  :: MonadIO m
+  => GLuint -- ^ @buffer@.
+  -> GLsizeiptr -- ^ @size@ of type @BufferSize@.
+  -> Ptr a -- ^ @data@ pointing to @size@ elements of type @a@.
+  -> GLbitfield -- ^ @flags@.
+  -> m ()
+glNamedBufferStorage v1 v2 v3 v4 = liftIO $ dyn573 ptr_glNamedBufferStorage v1 v2 v3 v4
+
+{-# NOINLINE ptr_glNamedBufferStorage #-}
+ptr_glNamedBufferStorage :: FunPtr (GLuint -> GLsizeiptr -> Ptr a -> GLbitfield -> IO ())
+ptr_glNamedBufferStorage = unsafePerformIO $ getCommand "glNamedBufferStorage"
+
+-- glNamedBufferStorageEXT -----------------------------------------------------
+
+-- | This command is an alias for 'glNamedBufferStorage'.
+glNamedBufferStorageEXT
+  :: MonadIO m
+  => GLuint -- ^ @buffer@.
+  -> GLsizeiptr -- ^ @size@ of type @BufferSize@.
+  -> Ptr a -- ^ @data@ pointing to @size@ elements of type @a@.
+  -> GLbitfield -- ^ @flags@.
+  -> m ()
+glNamedBufferStorageEXT v1 v2 v3 v4 = liftIO $ dyn573 ptr_glNamedBufferStorageEXT v1 v2 v3 v4
+
+{-# NOINLINE ptr_glNamedBufferStorageEXT #-}
+ptr_glNamedBufferStorageEXT :: FunPtr (GLuint -> GLsizeiptr -> Ptr a -> GLbitfield -> IO ())
+ptr_glNamedBufferStorageEXT = unsafePerformIO $ getCommand "glNamedBufferStorageEXT"
+
 -- glNamedBufferSubData --------------------------------------------------------
 
 -- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glBufferSubData.xhtml OpenGL 4.x>.
@@ -1560,57 +1622,4 @@
 {-# NOINLINE ptr_glPathCommandsNV #-}
 ptr_glPathCommandsNV :: FunPtr (GLuint -> GLsizei -> Ptr GLubyte -> GLsizei -> GLenum -> Ptr a -> IO ())
 ptr_glPathCommandsNV = unsafePerformIO $ getCommand "glPathCommandsNV"
-
--- glPathCoordsNV --------------------------------------------------------------
-
-glPathCoordsNV
-  :: MonadIO m
-  => GLuint -- ^ @path@ of type @Path@.
-  -> GLsizei -- ^ @numCoords@.
-  -> GLenum -- ^ @coordType@ of type @PathCoordType@.
-  -> Ptr a -- ^ @coords@ pointing to @COMPSIZE(numCoords,coordType)@ elements of type @a@.
-  -> m ()
-glPathCoordsNV v1 v2 v3 v4 = liftIO $ dyn598 ptr_glPathCoordsNV v1 v2 v3 v4
-
-{-# NOINLINE ptr_glPathCoordsNV #-}
-ptr_glPathCoordsNV :: FunPtr (GLuint -> GLsizei -> GLenum -> Ptr a -> IO ())
-ptr_glPathCoordsNV = unsafePerformIO $ getCommand "glPathCoordsNV"
-
--- glPathCoverDepthFuncNV ------------------------------------------------------
-
-glPathCoverDepthFuncNV
-  :: MonadIO m
-  => GLenum -- ^ @func@ of type [DepthFunction](Graphics-GL-Groups.html#DepthFunction).
-  -> m ()
-glPathCoverDepthFuncNV v1 = liftIO $ dyn4 ptr_glPathCoverDepthFuncNV v1
-
-{-# NOINLINE ptr_glPathCoverDepthFuncNV #-}
-ptr_glPathCoverDepthFuncNV :: FunPtr (GLenum -> IO ())
-ptr_glPathCoverDepthFuncNV = unsafePerformIO $ getCommand "glPathCoverDepthFuncNV"
-
--- glPathDashArrayNV -----------------------------------------------------------
-
-glPathDashArrayNV
-  :: MonadIO m
-  => GLuint -- ^ @path@ of type @Path@.
-  -> GLsizei -- ^ @dashCount@.
-  -> Ptr GLfloat -- ^ @dashArray@ pointing to @dashCount@ elements of type @GLfloat@.
-  -> m ()
-glPathDashArrayNV v1 v2 v3 = liftIO $ dyn218 ptr_glPathDashArrayNV v1 v2 v3
-
-{-# NOINLINE ptr_glPathDashArrayNV #-}
-ptr_glPathDashArrayNV :: FunPtr (GLuint -> GLsizei -> Ptr GLfloat -> IO ())
-ptr_glPathDashArrayNV = unsafePerformIO $ getCommand "glPathDashArrayNV"
-
--- glPathFogGenNV --------------------------------------------------------------
-
-glPathFogGenNV
-  :: MonadIO m
-  => GLenum -- ^ @genMode@ of type @PathGenMode@.
-  -> m ()
-glPathFogGenNV v1 = liftIO $ dyn4 ptr_glPathFogGenNV v1
-
-{-# NOINLINE ptr_glPathFogGenNV #-}
-ptr_glPathFogGenNV :: FunPtr (GLenum -> IO ())
-ptr_glPathFogGenNV = unsafePerformIO $ getCommand "glPathFogGenNV"
 
diff --git a/src/Graphics/GL/Functions/F19.hs b/src/Graphics/GL/Functions/F19.hs
--- a/src/Graphics/GL/Functions/F19.hs
+++ b/src/Graphics/GL/Functions/F19.hs
@@ -15,6 +15,10 @@
 --------------------------------------------------------------------------------
 
 module Graphics.GL.Functions.F19 (
+  glPathCoordsNV,
+  glPathCoverDepthFuncNV,
+  glPathDashArrayNV,
+  glPathFogGenNV,
   glPathGlyphIndexArrayNV,
   glPathGlyphIndexRangeNV,
   glPathGlyphRangeNV,
@@ -110,11 +114,7 @@
   glProgramBufferParametersIuivNV,
   glProgramBufferParametersfvNV,
   glProgramEnvParameter4dARB,
-  glProgramEnvParameter4dvARB,
-  glProgramEnvParameter4fARB,
-  glProgramEnvParameter4fvARB,
-  glProgramEnvParameterI4iNV,
-  glProgramEnvParameterI4ivNV
+  glProgramEnvParameter4dvARB
 ) where
 
 import Control.Monad.IO.Class ( MonadIO(..) )
@@ -123,6 +123,59 @@
 import Graphics.GL.Types
 import System.IO.Unsafe ( unsafePerformIO )
 
+-- glPathCoordsNV --------------------------------------------------------------
+
+glPathCoordsNV
+  :: MonadIO m
+  => GLuint -- ^ @path@ of type @Path@.
+  -> GLsizei -- ^ @numCoords@.
+  -> GLenum -- ^ @coordType@ of type @PathCoordType@.
+  -> Ptr a -- ^ @coords@ pointing to @COMPSIZE(numCoords,coordType)@ elements of type @a@.
+  -> m ()
+glPathCoordsNV v1 v2 v3 v4 = liftIO $ dyn598 ptr_glPathCoordsNV v1 v2 v3 v4
+
+{-# NOINLINE ptr_glPathCoordsNV #-}
+ptr_glPathCoordsNV :: FunPtr (GLuint -> GLsizei -> GLenum -> Ptr a -> IO ())
+ptr_glPathCoordsNV = unsafePerformIO $ getCommand "glPathCoordsNV"
+
+-- glPathCoverDepthFuncNV ------------------------------------------------------
+
+glPathCoverDepthFuncNV
+  :: MonadIO m
+  => GLenum -- ^ @func@ of type [DepthFunction](Graphics-GL-Groups.html#DepthFunction).
+  -> m ()
+glPathCoverDepthFuncNV v1 = liftIO $ dyn4 ptr_glPathCoverDepthFuncNV v1
+
+{-# NOINLINE ptr_glPathCoverDepthFuncNV #-}
+ptr_glPathCoverDepthFuncNV :: FunPtr (GLenum -> IO ())
+ptr_glPathCoverDepthFuncNV = unsafePerformIO $ getCommand "glPathCoverDepthFuncNV"
+
+-- glPathDashArrayNV -----------------------------------------------------------
+
+glPathDashArrayNV
+  :: MonadIO m
+  => GLuint -- ^ @path@ of type @Path@.
+  -> GLsizei -- ^ @dashCount@.
+  -> Ptr GLfloat -- ^ @dashArray@ pointing to @dashCount@ elements of type @GLfloat@.
+  -> m ()
+glPathDashArrayNV v1 v2 v3 = liftIO $ dyn218 ptr_glPathDashArrayNV v1 v2 v3
+
+{-# NOINLINE ptr_glPathDashArrayNV #-}
+ptr_glPathDashArrayNV :: FunPtr (GLuint -> GLsizei -> Ptr GLfloat -> IO ())
+ptr_glPathDashArrayNV = unsafePerformIO $ getCommand "glPathDashArrayNV"
+
+-- glPathFogGenNV --------------------------------------------------------------
+
+glPathFogGenNV
+  :: MonadIO m
+  => GLenum -- ^ @genMode@ of type @PathGenMode@.
+  -> m ()
+glPathFogGenNV v1 = liftIO $ dyn4 ptr_glPathFogGenNV v1
+
+{-# NOINLINE ptr_glPathFogGenNV #-}
+ptr_glPathFogGenNV :: FunPtr (GLenum -> IO ())
+ptr_glPathFogGenNV = unsafePerformIO $ getCommand "glPathFogGenNV"
+
 -- glPathGlyphIndexArrayNV -----------------------------------------------------
 
 glPathGlyphIndexArrayNV
@@ -1515,68 +1568,4 @@
 {-# NOINLINE ptr_glProgramEnvParameter4dvARB #-}
 ptr_glProgramEnvParameter4dvARB :: FunPtr (GLenum -> GLuint -> Ptr GLdouble -> IO ())
 ptr_glProgramEnvParameter4dvARB = unsafePerformIO $ getCommand "glProgramEnvParameter4dvARB"
-
--- glProgramEnvParameter4fARB --------------------------------------------------
-
--- | The vector equivalent of this command is 'glProgramEnvParameter4fvARB'.
-glProgramEnvParameter4fARB
-  :: MonadIO m
-  => GLenum -- ^ @target@ of type @ProgramTargetARB@.
-  -> GLuint -- ^ @index@.
-  -> GLfloat -- ^ @x@.
-  -> GLfloat -- ^ @y@.
-  -> GLfloat -- ^ @z@.
-  -> GLfloat -- ^ @w@.
-  -> m ()
-glProgramEnvParameter4fARB v1 v2 v3 v4 v5 v6 = liftIO $ dyn623 ptr_glProgramEnvParameter4fARB v1 v2 v3 v4 v5 v6
-
-{-# NOINLINE ptr_glProgramEnvParameter4fARB #-}
-ptr_glProgramEnvParameter4fARB :: FunPtr (GLenum -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
-ptr_glProgramEnvParameter4fARB = unsafePerformIO $ getCommand "glProgramEnvParameter4fARB"
-
--- glProgramEnvParameter4fvARB -------------------------------------------------
-
-glProgramEnvParameter4fvARB
-  :: MonadIO m
-  => GLenum -- ^ @target@ of type @ProgramTargetARB@.
-  -> GLuint -- ^ @index@.
-  -> Ptr GLfloat -- ^ @params@ pointing to @4@ elements of type @GLfloat@.
-  -> m ()
-glProgramEnvParameter4fvARB v1 v2 v3 = liftIO $ dyn267 ptr_glProgramEnvParameter4fvARB v1 v2 v3
-
-{-# NOINLINE ptr_glProgramEnvParameter4fvARB #-}
-ptr_glProgramEnvParameter4fvARB :: FunPtr (GLenum -> GLuint -> Ptr GLfloat -> IO ())
-ptr_glProgramEnvParameter4fvARB = unsafePerformIO $ getCommand "glProgramEnvParameter4fvARB"
-
--- glProgramEnvParameterI4iNV --------------------------------------------------
-
--- | The vector equivalent of this command is 'glProgramEnvParameterI4ivNV'.
-glProgramEnvParameterI4iNV
-  :: MonadIO m
-  => GLenum -- ^ @target@ of type @ProgramTarget@.
-  -> GLuint -- ^ @index@.
-  -> GLint -- ^ @x@.
-  -> GLint -- ^ @y@.
-  -> GLint -- ^ @z@.
-  -> GLint -- ^ @w@.
-  -> m ()
-glProgramEnvParameterI4iNV v1 v2 v3 v4 v5 v6 = liftIO $ dyn624 ptr_glProgramEnvParameterI4iNV v1 v2 v3 v4 v5 v6
-
-{-# NOINLINE ptr_glProgramEnvParameterI4iNV #-}
-ptr_glProgramEnvParameterI4iNV :: FunPtr (GLenum -> GLuint -> GLint -> GLint -> GLint -> GLint -> IO ())
-ptr_glProgramEnvParameterI4iNV = unsafePerformIO $ getCommand "glProgramEnvParameterI4iNV"
-
--- glProgramEnvParameterI4ivNV -------------------------------------------------
-
-glProgramEnvParameterI4ivNV
-  :: MonadIO m
-  => GLenum -- ^ @target@ of type @ProgramTarget@.
-  -> GLuint -- ^ @index@.
-  -> Ptr GLint -- ^ @params@ pointing to @4@ elements of type @GLint@.
-  -> m ()
-glProgramEnvParameterI4ivNV v1 v2 v3 = liftIO $ dyn342 ptr_glProgramEnvParameterI4ivNV v1 v2 v3
-
-{-# NOINLINE ptr_glProgramEnvParameterI4ivNV #-}
-ptr_glProgramEnvParameterI4ivNV :: FunPtr (GLenum -> GLuint -> Ptr GLint -> IO ())
-ptr_glProgramEnvParameterI4ivNV = unsafePerformIO $ getCommand "glProgramEnvParameterI4ivNV"
 
diff --git a/src/Graphics/GL/Functions/F20.hs b/src/Graphics/GL/Functions/F20.hs
--- a/src/Graphics/GL/Functions/F20.hs
+++ b/src/Graphics/GL/Functions/F20.hs
@@ -15,6 +15,10 @@
 --------------------------------------------------------------------------------
 
 module Graphics.GL.Functions.F20 (
+  glProgramEnvParameter4fARB,
+  glProgramEnvParameter4fvARB,
+  glProgramEnvParameterI4iNV,
+  glProgramEnvParameterI4ivNV,
   glProgramEnvParameterI4uiNV,
   glProgramEnvParameterI4uivNV,
   glProgramEnvParameters4fvEXT,
@@ -110,11 +114,7 @@
   glProgramUniform3i64vNV,
   glProgramUniform3iEXT,
   glProgramUniform3iv,
-  glProgramUniform3ivEXT,
-  glProgramUniform3ui,
-  glProgramUniform3ui64ARB,
-  glProgramUniform3ui64NV,
-  glProgramUniform3ui64vARB
+  glProgramUniform3ivEXT
 ) where
 
 import Control.Monad.IO.Class ( MonadIO(..) )
@@ -123,6 +123,70 @@
 import Graphics.GL.Types
 import System.IO.Unsafe ( unsafePerformIO )
 
+-- glProgramEnvParameter4fARB --------------------------------------------------
+
+-- | The vector equivalent of this command is 'glProgramEnvParameter4fvARB'.
+glProgramEnvParameter4fARB
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type @ProgramTargetARB@.
+  -> GLuint -- ^ @index@.
+  -> GLfloat -- ^ @x@.
+  -> GLfloat -- ^ @y@.
+  -> GLfloat -- ^ @z@.
+  -> GLfloat -- ^ @w@.
+  -> m ()
+glProgramEnvParameter4fARB v1 v2 v3 v4 v5 v6 = liftIO $ dyn623 ptr_glProgramEnvParameter4fARB v1 v2 v3 v4 v5 v6
+
+{-# NOINLINE ptr_glProgramEnvParameter4fARB #-}
+ptr_glProgramEnvParameter4fARB :: FunPtr (GLenum -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+ptr_glProgramEnvParameter4fARB = unsafePerformIO $ getCommand "glProgramEnvParameter4fARB"
+
+-- glProgramEnvParameter4fvARB -------------------------------------------------
+
+glProgramEnvParameter4fvARB
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type @ProgramTargetARB@.
+  -> GLuint -- ^ @index@.
+  -> Ptr GLfloat -- ^ @params@ pointing to @4@ elements of type @GLfloat@.
+  -> m ()
+glProgramEnvParameter4fvARB v1 v2 v3 = liftIO $ dyn267 ptr_glProgramEnvParameter4fvARB v1 v2 v3
+
+{-# NOINLINE ptr_glProgramEnvParameter4fvARB #-}
+ptr_glProgramEnvParameter4fvARB :: FunPtr (GLenum -> GLuint -> Ptr GLfloat -> IO ())
+ptr_glProgramEnvParameter4fvARB = unsafePerformIO $ getCommand "glProgramEnvParameter4fvARB"
+
+-- glProgramEnvParameterI4iNV --------------------------------------------------
+
+-- | The vector equivalent of this command is 'glProgramEnvParameterI4ivNV'.
+glProgramEnvParameterI4iNV
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type @ProgramTarget@.
+  -> GLuint -- ^ @index@.
+  -> GLint -- ^ @x@.
+  -> GLint -- ^ @y@.
+  -> GLint -- ^ @z@.
+  -> GLint -- ^ @w@.
+  -> m ()
+glProgramEnvParameterI4iNV v1 v2 v3 v4 v5 v6 = liftIO $ dyn624 ptr_glProgramEnvParameterI4iNV v1 v2 v3 v4 v5 v6
+
+{-# NOINLINE ptr_glProgramEnvParameterI4iNV #-}
+ptr_glProgramEnvParameterI4iNV :: FunPtr (GLenum -> GLuint -> GLint -> GLint -> GLint -> GLint -> IO ())
+ptr_glProgramEnvParameterI4iNV = unsafePerformIO $ getCommand "glProgramEnvParameterI4iNV"
+
+-- glProgramEnvParameterI4ivNV -------------------------------------------------
+
+glProgramEnvParameterI4ivNV
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type @ProgramTarget@.
+  -> GLuint -- ^ @index@.
+  -> Ptr GLint -- ^ @params@ pointing to @4@ elements of type @GLint@.
+  -> m ()
+glProgramEnvParameterI4ivNV v1 v2 v3 = liftIO $ dyn342 ptr_glProgramEnvParameterI4ivNV v1 v2 v3
+
+{-# NOINLINE ptr_glProgramEnvParameterI4ivNV #-}
+ptr_glProgramEnvParameterI4ivNV :: FunPtr (GLenum -> GLuint -> Ptr GLint -> IO ())
+ptr_glProgramEnvParameterI4ivNV = unsafePerformIO $ getCommand "glProgramEnvParameterI4ivNV"
+
 -- glProgramEnvParameterI4uiNV -------------------------------------------------
 
 -- | The vector equivalent of this command is 'glProgramEnvParameterI4uivNV'.
@@ -1612,68 +1676,4 @@
 {-# NOINLINE ptr_glProgramUniform3ivEXT #-}
 ptr_glProgramUniform3ivEXT :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint -> IO ())
 ptr_glProgramUniform3ivEXT = unsafePerformIO $ getCommand "glProgramUniform3ivEXT"
-
--- glProgramUniform3ui ---------------------------------------------------------
-
--- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glProgramUniform.xhtml OpenGL 4.x>.
-glProgramUniform3ui
-  :: MonadIO m
-  => GLuint -- ^ @program@.
-  -> GLint -- ^ @location@.
-  -> GLuint -- ^ @v0@.
-  -> GLuint -- ^ @v1@.
-  -> GLuint -- ^ @v2@.
-  -> m ()
-glProgramUniform3ui v1 v2 v3 v4 v5 = liftIO $ dyn654 ptr_glProgramUniform3ui v1 v2 v3 v4 v5
-
-{-# NOINLINE ptr_glProgramUniform3ui #-}
-ptr_glProgramUniform3ui :: FunPtr (GLuint -> GLint -> GLuint -> GLuint -> GLuint -> IO ())
-ptr_glProgramUniform3ui = unsafePerformIO $ getCommand "glProgramUniform3ui"
-
--- glProgramUniform3ui64ARB ----------------------------------------------------
-
-glProgramUniform3ui64ARB
-  :: MonadIO m
-  => GLuint -- ^ @program@.
-  -> GLint -- ^ @location@.
-  -> GLuint64 -- ^ @x@.
-  -> GLuint64 -- ^ @y@.
-  -> GLuint64 -- ^ @z@.
-  -> m ()
-glProgramUniform3ui64ARB v1 v2 v3 v4 v5 = liftIO $ dyn655 ptr_glProgramUniform3ui64ARB v1 v2 v3 v4 v5
-
-{-# NOINLINE ptr_glProgramUniform3ui64ARB #-}
-ptr_glProgramUniform3ui64ARB :: FunPtr (GLuint -> GLint -> GLuint64 -> GLuint64 -> GLuint64 -> IO ())
-ptr_glProgramUniform3ui64ARB = unsafePerformIO $ getCommand "glProgramUniform3ui64ARB"
-
--- glProgramUniform3ui64NV -----------------------------------------------------
-
-glProgramUniform3ui64NV
-  :: MonadIO m
-  => GLuint -- ^ @program@.
-  -> GLint -- ^ @location@.
-  -> GLuint64EXT -- ^ @x@.
-  -> GLuint64EXT -- ^ @y@.
-  -> GLuint64EXT -- ^ @z@.
-  -> m ()
-glProgramUniform3ui64NV v1 v2 v3 v4 v5 = liftIO $ dyn656 ptr_glProgramUniform3ui64NV v1 v2 v3 v4 v5
-
-{-# NOINLINE ptr_glProgramUniform3ui64NV #-}
-ptr_glProgramUniform3ui64NV :: FunPtr (GLuint -> GLint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> IO ())
-ptr_glProgramUniform3ui64NV = unsafePerformIO $ getCommand "glProgramUniform3ui64NV"
-
--- glProgramUniform3ui64vARB ---------------------------------------------------
-
-glProgramUniform3ui64vARB
-  :: MonadIO m
-  => GLuint -- ^ @program@.
-  -> GLint -- ^ @location@.
-  -> GLsizei -- ^ @count@.
-  -> Ptr GLuint64 -- ^ @value@ pointing to @count*3@ elements of type @GLuint64@.
-  -> m ()
-glProgramUniform3ui64vARB v1 v2 v3 v4 = liftIO $ dyn460 ptr_glProgramUniform3ui64vARB v1 v2 v3 v4
-
-{-# NOINLINE ptr_glProgramUniform3ui64vARB #-}
-ptr_glProgramUniform3ui64vARB :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint64 -> IO ())
-ptr_glProgramUniform3ui64vARB = unsafePerformIO $ getCommand "glProgramUniform3ui64vARB"
 
diff --git a/src/Graphics/GL/Functions/F21.hs b/src/Graphics/GL/Functions/F21.hs
--- a/src/Graphics/GL/Functions/F21.hs
+++ b/src/Graphics/GL/Functions/F21.hs
@@ -15,6 +15,10 @@
 --------------------------------------------------------------------------------
 
 module Graphics.GL.Functions.F21 (
+  glProgramUniform3ui,
+  glProgramUniform3ui64ARB,
+  glProgramUniform3ui64NV,
+  glProgramUniform3ui64vARB,
   glProgramUniform3ui64vNV,
   glProgramUniform3uiEXT,
   glProgramUniform3uiv,
@@ -44,8 +48,10 @@
   glProgramUniform4uiv,
   glProgramUniform4uivEXT,
   glProgramUniformHandleui64ARB,
+  glProgramUniformHandleui64IMG,
   glProgramUniformHandleui64NV,
   glProgramUniformHandleui64vARB,
+  glProgramUniformHandleui64vIMG,
   glProgramUniformHandleui64vNV,
   glProgramUniformMatrix2dv,
   glProgramUniformMatrix2dvEXT,
@@ -108,13 +114,7 @@
   glRasterPos2iv,
   glRasterPos2s,
   glRasterPos2sv,
-  glRasterPos2xOES,
-  glRasterPos2xvOES,
-  glRasterPos3d,
-  glRasterPos3dv,
-  glRasterPos3f,
-  glRasterPos3fv,
-  glRasterPos3i
+  glRasterPos2xOES
 ) where
 
 import Control.Monad.IO.Class ( MonadIO(..) )
@@ -123,6 +123,70 @@
 import Graphics.GL.Types
 import System.IO.Unsafe ( unsafePerformIO )
 
+-- glProgramUniform3ui ---------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glProgramUniform.xhtml OpenGL 4.x>.
+glProgramUniform3ui
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLuint -- ^ @v0@.
+  -> GLuint -- ^ @v1@.
+  -> GLuint -- ^ @v2@.
+  -> m ()
+glProgramUniform3ui v1 v2 v3 v4 v5 = liftIO $ dyn654 ptr_glProgramUniform3ui v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glProgramUniform3ui #-}
+ptr_glProgramUniform3ui :: FunPtr (GLuint -> GLint -> GLuint -> GLuint -> GLuint -> IO ())
+ptr_glProgramUniform3ui = unsafePerformIO $ getCommand "glProgramUniform3ui"
+
+-- glProgramUniform3ui64ARB ----------------------------------------------------
+
+glProgramUniform3ui64ARB
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLuint64 -- ^ @x@.
+  -> GLuint64 -- ^ @y@.
+  -> GLuint64 -- ^ @z@.
+  -> m ()
+glProgramUniform3ui64ARB v1 v2 v3 v4 v5 = liftIO $ dyn655 ptr_glProgramUniform3ui64ARB v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glProgramUniform3ui64ARB #-}
+ptr_glProgramUniform3ui64ARB :: FunPtr (GLuint -> GLint -> GLuint64 -> GLuint64 -> GLuint64 -> IO ())
+ptr_glProgramUniform3ui64ARB = unsafePerformIO $ getCommand "glProgramUniform3ui64ARB"
+
+-- glProgramUniform3ui64NV -----------------------------------------------------
+
+glProgramUniform3ui64NV
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLuint64EXT -- ^ @x@.
+  -> GLuint64EXT -- ^ @y@.
+  -> GLuint64EXT -- ^ @z@.
+  -> m ()
+glProgramUniform3ui64NV v1 v2 v3 v4 v5 = liftIO $ dyn656 ptr_glProgramUniform3ui64NV v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glProgramUniform3ui64NV #-}
+ptr_glProgramUniform3ui64NV :: FunPtr (GLuint -> GLint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> IO ())
+ptr_glProgramUniform3ui64NV = unsafePerformIO $ getCommand "glProgramUniform3ui64NV"
+
+-- glProgramUniform3ui64vARB ---------------------------------------------------
+
+glProgramUniform3ui64vARB
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLuint64 -- ^ @value@ pointing to @count*3@ elements of type @GLuint64@.
+  -> m ()
+glProgramUniform3ui64vARB v1 v2 v3 v4 = liftIO $ dyn460 ptr_glProgramUniform3ui64vARB v1 v2 v3 v4
+
+{-# NOINLINE ptr_glProgramUniform3ui64vARB #-}
+ptr_glProgramUniform3ui64vARB :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint64 -> IO ())
+ptr_glProgramUniform3ui64vARB = unsafePerformIO $ getCommand "glProgramUniform3ui64vARB"
+
 -- glProgramUniform3ui64vNV ----------------------------------------------------
 
 glProgramUniform3ui64vNV
@@ -597,6 +661,21 @@
 ptr_glProgramUniformHandleui64ARB :: FunPtr (GLuint -> GLint -> GLuint64 -> IO ())
 ptr_glProgramUniformHandleui64ARB = unsafePerformIO $ getCommand "glProgramUniformHandleui64ARB"
 
+-- glProgramUniformHandleui64IMG -----------------------------------------------
+
+-- | This command is an alias for 'glProgramUniformHandleui64ARB'.
+glProgramUniformHandleui64IMG
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLuint64 -- ^ @value@.
+  -> m ()
+glProgramUniformHandleui64IMG v1 v2 v3 = liftIO $ dyn638 ptr_glProgramUniformHandleui64IMG v1 v2 v3
+
+{-# NOINLINE ptr_glProgramUniformHandleui64IMG #-}
+ptr_glProgramUniformHandleui64IMG :: FunPtr (GLuint -> GLint -> GLuint64 -> IO ())
+ptr_glProgramUniformHandleui64IMG = unsafePerformIO $ getCommand "glProgramUniformHandleui64IMG"
+
 -- glProgramUniformHandleui64NV ------------------------------------------------
 
 glProgramUniformHandleui64NV
@@ -626,6 +705,22 @@
 ptr_glProgramUniformHandleui64vARB :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint64 -> IO ())
 ptr_glProgramUniformHandleui64vARB = unsafePerformIO $ getCommand "glProgramUniformHandleui64vARB"
 
+-- glProgramUniformHandleui64vIMG ----------------------------------------------
+
+-- | This command is an alias for 'glProgramUniformHandleui64vARB'.
+glProgramUniformHandleui64vIMG
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLuint64 -- ^ @values@ pointing to @count@ elements of type @GLuint64@.
+  -> m ()
+glProgramUniformHandleui64vIMG v1 v2 v3 v4 = liftIO $ dyn460 ptr_glProgramUniformHandleui64vIMG v1 v2 v3 v4
+
+{-# NOINLINE ptr_glProgramUniformHandleui64vIMG #-}
+ptr_glProgramUniformHandleui64vIMG :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint64 -> IO ())
+ptr_glProgramUniformHandleui64vIMG = unsafePerformIO $ getCommand "glProgramUniformHandleui64vIMG"
+
 -- glProgramUniformHandleui64vNV -----------------------------------------------
 
 glProgramUniformHandleui64vNV
@@ -1587,87 +1682,4 @@
 {-# NOINLINE ptr_glRasterPos2xOES #-}
 ptr_glRasterPos2xOES :: FunPtr (GLfixed -> GLfixed -> IO ())
 ptr_glRasterPos2xOES = unsafePerformIO $ getCommand "glRasterPos2xOES"
-
--- glRasterPos2xvOES -----------------------------------------------------------
-
-glRasterPos2xvOES
-  :: MonadIO m
-  => Ptr GLfixed -- ^ @coords@ pointing to @2@ elements of type @GLfixed@.
-  -> m ()
-glRasterPos2xvOES v1 = liftIO $ dyn107 ptr_glRasterPos2xvOES v1
-
-{-# NOINLINE ptr_glRasterPos2xvOES #-}
-ptr_glRasterPos2xvOES :: FunPtr (Ptr GLfixed -> IO ())
-ptr_glRasterPos2xvOES = unsafePerformIO $ getCommand "glRasterPos2xvOES"
-
--- glRasterPos3d ---------------------------------------------------------------
-
--- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos.xml OpenGL 2.x>. The vector equivalent of this command is 'glRasterPos3dv'.
-glRasterPos3d
-  :: MonadIO m
-  => GLdouble -- ^ @x@ of type @CoordD@.
-  -> GLdouble -- ^ @y@ of type @CoordD@.
-  -> GLdouble -- ^ @z@ of type @CoordD@.
-  -> m ()
-glRasterPos3d v1 v2 v3 = liftIO $ dyn38 ptr_glRasterPos3d v1 v2 v3
-
-{-# NOINLINE ptr_glRasterPos3d #-}
-ptr_glRasterPos3d :: FunPtr (GLdouble -> GLdouble -> GLdouble -> IO ())
-ptr_glRasterPos3d = unsafePerformIO $ getCommand "glRasterPos3d"
-
--- glRasterPos3dv --------------------------------------------------------------
-
--- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos.xml OpenGL 2.x>.
-glRasterPos3dv
-  :: MonadIO m
-  => Ptr GLdouble -- ^ @v@ pointing to @3@ elements of type @CoordD@.
-  -> m ()
-glRasterPos3dv v1 = liftIO $ dyn39 ptr_glRasterPos3dv v1
-
-{-# NOINLINE ptr_glRasterPos3dv #-}
-ptr_glRasterPos3dv :: FunPtr (Ptr GLdouble -> IO ())
-ptr_glRasterPos3dv = unsafePerformIO $ getCommand "glRasterPos3dv"
-
--- glRasterPos3f ---------------------------------------------------------------
-
--- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos.xml OpenGL 2.x>. The vector equivalent of this command is 'glRasterPos3fv'.
-glRasterPos3f
-  :: MonadIO m
-  => GLfloat -- ^ @x@ of type @CoordF@.
-  -> GLfloat -- ^ @y@ of type @CoordF@.
-  -> GLfloat -- ^ @z@ of type @CoordF@.
-  -> m ()
-glRasterPos3f v1 v2 v3 = liftIO $ dyn40 ptr_glRasterPos3f v1 v2 v3
-
-{-# NOINLINE ptr_glRasterPos3f #-}
-ptr_glRasterPos3f :: FunPtr (GLfloat -> GLfloat -> GLfloat -> IO ())
-ptr_glRasterPos3f = unsafePerformIO $ getCommand "glRasterPos3f"
-
--- glRasterPos3fv --------------------------------------------------------------
-
--- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos.xml OpenGL 2.x>.
-glRasterPos3fv
-  :: MonadIO m
-  => Ptr GLfloat -- ^ @v@ pointing to @3@ elements of type @CoordF@.
-  -> m ()
-glRasterPos3fv v1 = liftIO $ dyn41 ptr_glRasterPos3fv v1
-
-{-# NOINLINE ptr_glRasterPos3fv #-}
-ptr_glRasterPos3fv :: FunPtr (Ptr GLfloat -> IO ())
-ptr_glRasterPos3fv = unsafePerformIO $ getCommand "glRasterPos3fv"
-
--- glRasterPos3i ---------------------------------------------------------------
-
--- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos.xml OpenGL 2.x>. The vector equivalent of this command is 'glRasterPos3iv'.
-glRasterPos3i
-  :: MonadIO m
-  => GLint -- ^ @x@ of type @CoordI@.
-  -> GLint -- ^ @y@ of type @CoordI@.
-  -> GLint -- ^ @z@ of type @CoordI@.
-  -> m ()
-glRasterPos3i v1 v2 v3 = liftIO $ dyn42 ptr_glRasterPos3i v1 v2 v3
-
-{-# NOINLINE ptr_glRasterPos3i #-}
-ptr_glRasterPos3i :: FunPtr (GLint -> GLint -> GLint -> IO ())
-ptr_glRasterPos3i = unsafePerformIO $ getCommand "glRasterPos3i"
 
diff --git a/src/Graphics/GL/Functions/F22.hs b/src/Graphics/GL/Functions/F22.hs
--- a/src/Graphics/GL/Functions/F22.hs
+++ b/src/Graphics/GL/Functions/F22.hs
@@ -15,6 +15,12 @@
 --------------------------------------------------------------------------------
 
 module Graphics.GL.Functions.F22 (
+  glRasterPos2xvOES,
+  glRasterPos3d,
+  glRasterPos3dv,
+  glRasterPos3f,
+  glRasterPos3fv,
+  glRasterPos3i,
   glRasterPos3iv,
   glRasterPos3s,
   glRasterPos3sv,
@@ -108,13 +114,7 @@
   glSampleMaskEXT,
   glSampleMaskIndexedNV,
   glSampleMaskSGIS,
-  glSampleMaski,
-  glSamplePatternEXT,
-  glSamplePatternSGIS,
-  glSamplerParameterIiv,
-  glSamplerParameterIivEXT,
-  glSamplerParameterIivOES,
-  glSamplerParameterIuiv
+  glSampleMaski
 ) where
 
 import Control.Monad.IO.Class ( MonadIO(..) )
@@ -123,6 +123,89 @@
 import Graphics.GL.Types
 import System.IO.Unsafe ( unsafePerformIO )
 
+-- glRasterPos2xvOES -----------------------------------------------------------
+
+glRasterPos2xvOES
+  :: MonadIO m
+  => Ptr GLfixed -- ^ @coords@ pointing to @2@ elements of type @GLfixed@.
+  -> m ()
+glRasterPos2xvOES v1 = liftIO $ dyn107 ptr_glRasterPos2xvOES v1
+
+{-# NOINLINE ptr_glRasterPos2xvOES #-}
+ptr_glRasterPos2xvOES :: FunPtr (Ptr GLfixed -> IO ())
+ptr_glRasterPos2xvOES = unsafePerformIO $ getCommand "glRasterPos2xvOES"
+
+-- glRasterPos3d ---------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos.xml OpenGL 2.x>. The vector equivalent of this command is 'glRasterPos3dv'.
+glRasterPos3d
+  :: MonadIO m
+  => GLdouble -- ^ @x@ of type @CoordD@.
+  -> GLdouble -- ^ @y@ of type @CoordD@.
+  -> GLdouble -- ^ @z@ of type @CoordD@.
+  -> m ()
+glRasterPos3d v1 v2 v3 = liftIO $ dyn38 ptr_glRasterPos3d v1 v2 v3
+
+{-# NOINLINE ptr_glRasterPos3d #-}
+ptr_glRasterPos3d :: FunPtr (GLdouble -> GLdouble -> GLdouble -> IO ())
+ptr_glRasterPos3d = unsafePerformIO $ getCommand "glRasterPos3d"
+
+-- glRasterPos3dv --------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos.xml OpenGL 2.x>.
+glRasterPos3dv
+  :: MonadIO m
+  => Ptr GLdouble -- ^ @v@ pointing to @3@ elements of type @CoordD@.
+  -> m ()
+glRasterPos3dv v1 = liftIO $ dyn39 ptr_glRasterPos3dv v1
+
+{-# NOINLINE ptr_glRasterPos3dv #-}
+ptr_glRasterPos3dv :: FunPtr (Ptr GLdouble -> IO ())
+ptr_glRasterPos3dv = unsafePerformIO $ getCommand "glRasterPos3dv"
+
+-- glRasterPos3f ---------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos.xml OpenGL 2.x>. The vector equivalent of this command is 'glRasterPos3fv'.
+glRasterPos3f
+  :: MonadIO m
+  => GLfloat -- ^ @x@ of type @CoordF@.
+  -> GLfloat -- ^ @y@ of type @CoordF@.
+  -> GLfloat -- ^ @z@ of type @CoordF@.
+  -> m ()
+glRasterPos3f v1 v2 v3 = liftIO $ dyn40 ptr_glRasterPos3f v1 v2 v3
+
+{-# NOINLINE ptr_glRasterPos3f #-}
+ptr_glRasterPos3f :: FunPtr (GLfloat -> GLfloat -> GLfloat -> IO ())
+ptr_glRasterPos3f = unsafePerformIO $ getCommand "glRasterPos3f"
+
+-- glRasterPos3fv --------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos.xml OpenGL 2.x>.
+glRasterPos3fv
+  :: MonadIO m
+  => Ptr GLfloat -- ^ @v@ pointing to @3@ elements of type @CoordF@.
+  -> m ()
+glRasterPos3fv v1 = liftIO $ dyn41 ptr_glRasterPos3fv v1
+
+{-# NOINLINE ptr_glRasterPos3fv #-}
+ptr_glRasterPos3fv :: FunPtr (Ptr GLfloat -> IO ())
+ptr_glRasterPos3fv = unsafePerformIO $ getCommand "glRasterPos3fv"
+
+-- glRasterPos3i ---------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos.xml OpenGL 2.x>. The vector equivalent of this command is 'glRasterPos3iv'.
+glRasterPos3i
+  :: MonadIO m
+  => GLint -- ^ @x@ of type @CoordI@.
+  -> GLint -- ^ @y@ of type @CoordI@.
+  -> GLint -- ^ @z@ of type @CoordI@.
+  -> m ()
+glRasterPos3i v1 v2 v3 = liftIO $ dyn42 ptr_glRasterPos3i v1 v2 v3
+
+{-# NOINLINE ptr_glRasterPos3i #-}
+ptr_glRasterPos3i :: FunPtr (GLint -> GLint -> GLint -> IO ())
+ptr_glRasterPos3i = unsafePerformIO $ getCommand "glRasterPos3i"
+
 -- glRasterPos3iv --------------------------------------------------------------
 
 -- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos.xml OpenGL 2.x>.
@@ -1502,89 +1585,4 @@
 {-# NOINLINE ptr_glSampleMaski #-}
 ptr_glSampleMaski :: FunPtr (GLuint -> GLbitfield -> IO ())
 ptr_glSampleMaski = unsafePerformIO $ getCommand "glSampleMaski"
-
--- glSamplePatternEXT ----------------------------------------------------------
-
-glSamplePatternEXT
-  :: MonadIO m
-  => GLenum -- ^ @pattern@ of type @SamplePatternEXT@.
-  -> m ()
-glSamplePatternEXT v1 = liftIO $ dyn4 ptr_glSamplePatternEXT v1
-
-{-# NOINLINE ptr_glSamplePatternEXT #-}
-ptr_glSamplePatternEXT :: FunPtr (GLenum -> IO ())
-ptr_glSamplePatternEXT = unsafePerformIO $ getCommand "glSamplePatternEXT"
-
--- glSamplePatternSGIS ---------------------------------------------------------
-
--- | This command is an alias for 'glSamplePatternEXT'.
-glSamplePatternSGIS
-  :: MonadIO m
-  => GLenum -- ^ @pattern@ of type [SamplePatternSGIS](Graphics-GL-Groups.html#SamplePatternSGIS).
-  -> m ()
-glSamplePatternSGIS v1 = liftIO $ dyn4 ptr_glSamplePatternSGIS v1
-
-{-# NOINLINE ptr_glSamplePatternSGIS #-}
-ptr_glSamplePatternSGIS :: FunPtr (GLenum -> IO ())
-ptr_glSamplePatternSGIS = unsafePerformIO $ getCommand "glSamplePatternSGIS"
-
--- glSamplerParameterIiv -------------------------------------------------------
-
--- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glSamplerParameter.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glSamplerParameter.xhtml OpenGL 4.x>.
-glSamplerParameterIiv
-  :: MonadIO m
-  => GLuint -- ^ @sampler@.
-  -> GLenum -- ^ @pname@.
-  -> Ptr GLint -- ^ @param@ pointing to @COMPSIZE(pname)@ elements of type @GLint@.
-  -> m ()
-glSamplerParameterIiv v1 v2 v3 = liftIO $ dyn334 ptr_glSamplerParameterIiv v1 v2 v3
-
-{-# NOINLINE ptr_glSamplerParameterIiv #-}
-ptr_glSamplerParameterIiv :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
-ptr_glSamplerParameterIiv = unsafePerformIO $ getCommand "glSamplerParameterIiv"
-
--- glSamplerParameterIivEXT ----------------------------------------------------
-
--- | This command is an alias for 'glSamplerParameterIiv'.
-glSamplerParameterIivEXT
-  :: MonadIO m
-  => GLuint -- ^ @sampler@.
-  -> GLenum -- ^ @pname@.
-  -> Ptr GLint -- ^ @param@ pointing to @COMPSIZE(pname)@ elements of type @GLint@.
-  -> m ()
-glSamplerParameterIivEXT v1 v2 v3 = liftIO $ dyn334 ptr_glSamplerParameterIivEXT v1 v2 v3
-
-{-# NOINLINE ptr_glSamplerParameterIivEXT #-}
-ptr_glSamplerParameterIivEXT :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
-ptr_glSamplerParameterIivEXT = unsafePerformIO $ getCommand "glSamplerParameterIivEXT"
-
--- glSamplerParameterIivOES ----------------------------------------------------
-
--- | This command is an alias for 'glSamplerParameterIiv'.
-glSamplerParameterIivOES
-  :: MonadIO m
-  => GLuint -- ^ @sampler@.
-  -> GLenum -- ^ @pname@.
-  -> Ptr GLint -- ^ @param@ pointing to @COMPSIZE(pname)@ elements of type @GLint@.
-  -> m ()
-glSamplerParameterIivOES v1 v2 v3 = liftIO $ dyn334 ptr_glSamplerParameterIivOES v1 v2 v3
-
-{-# NOINLINE ptr_glSamplerParameterIivOES #-}
-ptr_glSamplerParameterIivOES :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
-ptr_glSamplerParameterIivOES = unsafePerformIO $ getCommand "glSamplerParameterIivOES"
-
--- glSamplerParameterIuiv ------------------------------------------------------
-
--- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glSamplerParameter.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glSamplerParameter.xhtml OpenGL 4.x>.
-glSamplerParameterIuiv
-  :: MonadIO m
-  => GLuint -- ^ @sampler@.
-  -> GLenum -- ^ @pname@.
-  -> Ptr GLuint -- ^ @param@ pointing to @COMPSIZE(pname)@ elements of type @GLuint@.
-  -> m ()
-glSamplerParameterIuiv v1 v2 v3 = liftIO $ dyn375 ptr_glSamplerParameterIuiv v1 v2 v3
-
-{-# NOINLINE ptr_glSamplerParameterIuiv #-}
-ptr_glSamplerParameterIuiv :: FunPtr (GLuint -> GLenum -> Ptr GLuint -> IO ())
-ptr_glSamplerParameterIuiv = unsafePerformIO $ getCommand "glSamplerParameterIuiv"
 
diff --git a/src/Graphics/GL/Functions/F23.hs b/src/Graphics/GL/Functions/F23.hs
--- a/src/Graphics/GL/Functions/F23.hs
+++ b/src/Graphics/GL/Functions/F23.hs
@@ -15,6 +15,12 @@
 --------------------------------------------------------------------------------
 
 module Graphics.GL.Functions.F23 (
+  glSamplePatternEXT,
+  glSamplePatternSGIS,
+  glSamplerParameterIiv,
+  glSamplerParameterIivEXT,
+  glSamplerParameterIivOES,
+  glSamplerParameterIuiv,
   glSamplerParameterIuivEXT,
   glSamplerParameterIuivOES,
   glSamplerParameterf,
@@ -108,13 +114,7 @@
   glStencilFuncSeparate,
   glStencilFuncSeparateATI,
   glStencilMask,
-  glStencilMaskSeparate,
-  glStencilOp,
-  glStencilOpSeparate,
-  glStencilOpSeparateATI,
-  glStencilOpValueAMD,
-  glStencilStrokePathInstancedNV,
-  glStencilStrokePathNV
+  glStencilMaskSeparate
 ) where
 
 import Control.Monad.IO.Class ( MonadIO(..) )
@@ -123,6 +123,91 @@
 import Graphics.GL.Types
 import System.IO.Unsafe ( unsafePerformIO )
 
+-- glSamplePatternEXT ----------------------------------------------------------
+
+glSamplePatternEXT
+  :: MonadIO m
+  => GLenum -- ^ @pattern@ of type @SamplePatternEXT@.
+  -> m ()
+glSamplePatternEXT v1 = liftIO $ dyn4 ptr_glSamplePatternEXT v1
+
+{-# NOINLINE ptr_glSamplePatternEXT #-}
+ptr_glSamplePatternEXT :: FunPtr (GLenum -> IO ())
+ptr_glSamplePatternEXT = unsafePerformIO $ getCommand "glSamplePatternEXT"
+
+-- glSamplePatternSGIS ---------------------------------------------------------
+
+-- | This command is an alias for 'glSamplePatternEXT'.
+glSamplePatternSGIS
+  :: MonadIO m
+  => GLenum -- ^ @pattern@ of type [SamplePatternSGIS](Graphics-GL-Groups.html#SamplePatternSGIS).
+  -> m ()
+glSamplePatternSGIS v1 = liftIO $ dyn4 ptr_glSamplePatternSGIS v1
+
+{-# NOINLINE ptr_glSamplePatternSGIS #-}
+ptr_glSamplePatternSGIS :: FunPtr (GLenum -> IO ())
+ptr_glSamplePatternSGIS = unsafePerformIO $ getCommand "glSamplePatternSGIS"
+
+-- glSamplerParameterIiv -------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glSamplerParameter.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glSamplerParameter.xhtml OpenGL 4.x>.
+glSamplerParameterIiv
+  :: MonadIO m
+  => GLuint -- ^ @sampler@.
+  -> GLenum -- ^ @pname@.
+  -> Ptr GLint -- ^ @param@ pointing to @COMPSIZE(pname)@ elements of type @GLint@.
+  -> m ()
+glSamplerParameterIiv v1 v2 v3 = liftIO $ dyn334 ptr_glSamplerParameterIiv v1 v2 v3
+
+{-# NOINLINE ptr_glSamplerParameterIiv #-}
+ptr_glSamplerParameterIiv :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+ptr_glSamplerParameterIiv = unsafePerformIO $ getCommand "glSamplerParameterIiv"
+
+-- glSamplerParameterIivEXT ----------------------------------------------------
+
+-- | This command is an alias for 'glSamplerParameterIiv'.
+glSamplerParameterIivEXT
+  :: MonadIO m
+  => GLuint -- ^ @sampler@.
+  -> GLenum -- ^ @pname@.
+  -> Ptr GLint -- ^ @param@ pointing to @COMPSIZE(pname)@ elements of type @GLint@.
+  -> m ()
+glSamplerParameterIivEXT v1 v2 v3 = liftIO $ dyn334 ptr_glSamplerParameterIivEXT v1 v2 v3
+
+{-# NOINLINE ptr_glSamplerParameterIivEXT #-}
+ptr_glSamplerParameterIivEXT :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+ptr_glSamplerParameterIivEXT = unsafePerformIO $ getCommand "glSamplerParameterIivEXT"
+
+-- glSamplerParameterIivOES ----------------------------------------------------
+
+-- | This command is an alias for 'glSamplerParameterIiv'.
+glSamplerParameterIivOES
+  :: MonadIO m
+  => GLuint -- ^ @sampler@.
+  -> GLenum -- ^ @pname@.
+  -> Ptr GLint -- ^ @param@ pointing to @COMPSIZE(pname)@ elements of type @GLint@.
+  -> m ()
+glSamplerParameterIivOES v1 v2 v3 = liftIO $ dyn334 ptr_glSamplerParameterIivOES v1 v2 v3
+
+{-# NOINLINE ptr_glSamplerParameterIivOES #-}
+ptr_glSamplerParameterIivOES :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+ptr_glSamplerParameterIivOES = unsafePerformIO $ getCommand "glSamplerParameterIivOES"
+
+-- glSamplerParameterIuiv ------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glSamplerParameter.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glSamplerParameter.xhtml OpenGL 4.x>.
+glSamplerParameterIuiv
+  :: MonadIO m
+  => GLuint -- ^ @sampler@.
+  -> GLenum -- ^ @pname@.
+  -> Ptr GLuint -- ^ @param@ pointing to @COMPSIZE(pname)@ elements of type @GLuint@.
+  -> m ()
+glSamplerParameterIuiv v1 v2 v3 = liftIO $ dyn375 ptr_glSamplerParameterIuiv v1 v2 v3
+
+{-# NOINLINE ptr_glSamplerParameterIuiv #-}
+ptr_glSamplerParameterIuiv :: FunPtr (GLuint -> GLenum -> Ptr GLuint -> IO ())
+ptr_glSamplerParameterIuiv = unsafePerformIO $ getCommand "glSamplerParameterIuiv"
+
 -- glSamplerParameterIuivEXT ---------------------------------------------------
 
 -- | This command is an alias for 'glSamplerParameterIuiv'.
@@ -1484,97 +1569,4 @@
 {-# NOINLINE ptr_glStencilMaskSeparate #-}
 ptr_glStencilMaskSeparate :: FunPtr (GLenum -> GLuint -> IO ())
 ptr_glStencilMaskSeparate = unsafePerformIO $ getCommand "glStencilMaskSeparate"
-
--- glStencilOp -----------------------------------------------------------------
-
--- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glStencilOp.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glStencilOp.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glStencilOp.xhtml OpenGL 4.x>.
-glStencilOp
-  :: MonadIO m
-  => GLenum -- ^ @fail@ of type [StencilOp](Graphics-GL-Groups.html#StencilOp).
-  -> GLenum -- ^ @zfail@ of type [StencilOp](Graphics-GL-Groups.html#StencilOp).
-  -> GLenum -- ^ @zpass@ of type [StencilOp](Graphics-GL-Groups.html#StencilOp).
-  -> m ()
-glStencilOp v1 v2 v3 = liftIO $ dyn714 ptr_glStencilOp v1 v2 v3
-
-{-# NOINLINE ptr_glStencilOp #-}
-ptr_glStencilOp :: FunPtr (GLenum -> GLenum -> GLenum -> IO ())
-ptr_glStencilOp = unsafePerformIO $ getCommand "glStencilOp"
-
--- glStencilOpSeparate ---------------------------------------------------------
-
--- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glStencilOpSeparate.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glStencilOpSeparate.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glStencilOpSeparate.xhtml OpenGL 4.x>.
-glStencilOpSeparate
-  :: MonadIO m
-  => GLenum -- ^ @face@ of type @StencilFaceDirection@.
-  -> GLenum -- ^ @sfail@ of type [StencilOp](Graphics-GL-Groups.html#StencilOp).
-  -> GLenum -- ^ @dpfail@ of type [StencilOp](Graphics-GL-Groups.html#StencilOp).
-  -> GLenum -- ^ @dppass@ of type [StencilOp](Graphics-GL-Groups.html#StencilOp).
-  -> m ()
-glStencilOpSeparate v1 v2 v3 v4 = liftIO $ dyn53 ptr_glStencilOpSeparate v1 v2 v3 v4
-
-{-# NOINLINE ptr_glStencilOpSeparate #-}
-ptr_glStencilOpSeparate :: FunPtr (GLenum -> GLenum -> GLenum -> GLenum -> IO ())
-ptr_glStencilOpSeparate = unsafePerformIO $ getCommand "glStencilOpSeparate"
-
--- glStencilOpSeparateATI ------------------------------------------------------
-
--- | This command is an alias for 'glStencilOpSeparate'.
-glStencilOpSeparateATI
-  :: MonadIO m
-  => GLenum -- ^ @face@ of type @StencilFaceDirection@.
-  -> GLenum -- ^ @sfail@ of type [StencilOp](Graphics-GL-Groups.html#StencilOp).
-  -> GLenum -- ^ @dpfail@ of type [StencilOp](Graphics-GL-Groups.html#StencilOp).
-  -> GLenum -- ^ @dppass@ of type [StencilOp](Graphics-GL-Groups.html#StencilOp).
-  -> m ()
-glStencilOpSeparateATI v1 v2 v3 v4 = liftIO $ dyn53 ptr_glStencilOpSeparateATI v1 v2 v3 v4
-
-{-# NOINLINE ptr_glStencilOpSeparateATI #-}
-ptr_glStencilOpSeparateATI :: FunPtr (GLenum -> GLenum -> GLenum -> GLenum -> IO ())
-ptr_glStencilOpSeparateATI = unsafePerformIO $ getCommand "glStencilOpSeparateATI"
-
--- glStencilOpValueAMD ---------------------------------------------------------
-
-glStencilOpValueAMD
-  :: MonadIO m
-  => GLenum -- ^ @face@ of type @StencilFaceDirection@.
-  -> GLuint -- ^ @value@.
-  -> m ()
-glStencilOpValueAMD v1 v2 = liftIO $ dyn16 ptr_glStencilOpValueAMD v1 v2
-
-{-# NOINLINE ptr_glStencilOpValueAMD #-}
-ptr_glStencilOpValueAMD :: FunPtr (GLenum -> GLuint -> IO ())
-ptr_glStencilOpValueAMD = unsafePerformIO $ getCommand "glStencilOpValueAMD"
-
--- glStencilStrokePathInstancedNV ----------------------------------------------
-
-glStencilStrokePathInstancedNV
-  :: MonadIO m
-  => GLsizei -- ^ @numPaths@.
-  -> GLenum -- ^ @pathNameType@ of type @PathElementType@.
-  -> Ptr a -- ^ @paths@ pointing to @COMPSIZE(numPaths,pathNameType,paths)@ elements of type @PathElement@.
-  -> GLuint -- ^ @pathBase@ of type @Path@.
-  -> GLint -- ^ @reference@ of type @StencilValue@.
-  -> GLuint -- ^ @mask@ of type @MaskedStencilValue@.
-  -> GLenum -- ^ @transformType@ of type @PathTransformType@.
-  -> Ptr GLfloat -- ^ @transformValues@ pointing to @COMPSIZE(numPaths,transformType)@ elements of type @GLfloat@.
-  -> m ()
-glStencilStrokePathInstancedNV v1 v2 v3 v4 v5 v6 v7 v8 = liftIO $ dyn715 ptr_glStencilStrokePathInstancedNV v1 v2 v3 v4 v5 v6 v7 v8
-
-{-# NOINLINE ptr_glStencilStrokePathInstancedNV #-}
-ptr_glStencilStrokePathInstancedNV :: FunPtr (GLsizei -> GLenum -> Ptr a -> GLuint -> GLint -> GLuint -> GLenum -> Ptr GLfloat -> IO ())
-ptr_glStencilStrokePathInstancedNV = unsafePerformIO $ getCommand "glStencilStrokePathInstancedNV"
-
--- glStencilStrokePathNV -------------------------------------------------------
-
-glStencilStrokePathNV
-  :: MonadIO m
-  => GLuint -- ^ @path@ of type @Path@.
-  -> GLint -- ^ @reference@ of type @StencilValue@.
-  -> GLuint -- ^ @mask@ of type @MaskedStencilValue@.
-  -> m ()
-glStencilStrokePathNV v1 v2 v3 = liftIO $ dyn637 ptr_glStencilStrokePathNV v1 v2 v3
-
-{-# NOINLINE ptr_glStencilStrokePathNV #-}
-ptr_glStencilStrokePathNV :: FunPtr (GLuint -> GLint -> GLuint -> IO ())
-ptr_glStencilStrokePathNV = unsafePerformIO $ getCommand "glStencilStrokePathNV"
 
diff --git a/src/Graphics/GL/Functions/F24.hs b/src/Graphics/GL/Functions/F24.hs
--- a/src/Graphics/GL/Functions/F24.hs
+++ b/src/Graphics/GL/Functions/F24.hs
@@ -15,6 +15,12 @@
 --------------------------------------------------------------------------------
 
 module Graphics.GL.Functions.F24 (
+  glStencilOp,
+  glStencilOpSeparate,
+  glStencilOpSeparateATI,
+  glStencilOpValueAMD,
+  glStencilStrokePathInstancedNV,
+  glStencilStrokePathNV,
   glStencilThenCoverFillPathInstancedNV,
   glStencilThenCoverFillPathNV,
   glStencilThenCoverStrokePathInstancedNV,
@@ -108,13 +114,7 @@
   glTexCoord4d,
   glTexCoord4dv,
   glTexCoord4f,
-  glTexCoord4fColor4fNormal3fVertex4fSUN,
-  glTexCoord4fColor4fNormal3fVertex4fvSUN,
-  glTexCoord4fVertex4fSUN,
-  glTexCoord4fVertex4fvSUN,
-  glTexCoord4fv,
-  glTexCoord4hNV,
-  glTexCoord4hvNV
+  glTexCoord4fColor4fNormal3fVertex4fSUN
 ) where
 
 import Control.Monad.IO.Class ( MonadIO(..) )
@@ -123,6 +123,99 @@
 import Graphics.GL.Types
 import System.IO.Unsafe ( unsafePerformIO )
 
+-- glStencilOp -----------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glStencilOp.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glStencilOp.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glStencilOp.xhtml OpenGL 4.x>.
+glStencilOp
+  :: MonadIO m
+  => GLenum -- ^ @fail@ of type [StencilOp](Graphics-GL-Groups.html#StencilOp).
+  -> GLenum -- ^ @zfail@ of type [StencilOp](Graphics-GL-Groups.html#StencilOp).
+  -> GLenum -- ^ @zpass@ of type [StencilOp](Graphics-GL-Groups.html#StencilOp).
+  -> m ()
+glStencilOp v1 v2 v3 = liftIO $ dyn714 ptr_glStencilOp v1 v2 v3
+
+{-# NOINLINE ptr_glStencilOp #-}
+ptr_glStencilOp :: FunPtr (GLenum -> GLenum -> GLenum -> IO ())
+ptr_glStencilOp = unsafePerformIO $ getCommand "glStencilOp"
+
+-- glStencilOpSeparate ---------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glStencilOpSeparate.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glStencilOpSeparate.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glStencilOpSeparate.xhtml OpenGL 4.x>.
+glStencilOpSeparate
+  :: MonadIO m
+  => GLenum -- ^ @face@ of type @StencilFaceDirection@.
+  -> GLenum -- ^ @sfail@ of type [StencilOp](Graphics-GL-Groups.html#StencilOp).
+  -> GLenum -- ^ @dpfail@ of type [StencilOp](Graphics-GL-Groups.html#StencilOp).
+  -> GLenum -- ^ @dppass@ of type [StencilOp](Graphics-GL-Groups.html#StencilOp).
+  -> m ()
+glStencilOpSeparate v1 v2 v3 v4 = liftIO $ dyn53 ptr_glStencilOpSeparate v1 v2 v3 v4
+
+{-# NOINLINE ptr_glStencilOpSeparate #-}
+ptr_glStencilOpSeparate :: FunPtr (GLenum -> GLenum -> GLenum -> GLenum -> IO ())
+ptr_glStencilOpSeparate = unsafePerformIO $ getCommand "glStencilOpSeparate"
+
+-- glStencilOpSeparateATI ------------------------------------------------------
+
+-- | This command is an alias for 'glStencilOpSeparate'.
+glStencilOpSeparateATI
+  :: MonadIO m
+  => GLenum -- ^ @face@ of type @StencilFaceDirection@.
+  -> GLenum -- ^ @sfail@ of type [StencilOp](Graphics-GL-Groups.html#StencilOp).
+  -> GLenum -- ^ @dpfail@ of type [StencilOp](Graphics-GL-Groups.html#StencilOp).
+  -> GLenum -- ^ @dppass@ of type [StencilOp](Graphics-GL-Groups.html#StencilOp).
+  -> m ()
+glStencilOpSeparateATI v1 v2 v3 v4 = liftIO $ dyn53 ptr_glStencilOpSeparateATI v1 v2 v3 v4
+
+{-# NOINLINE ptr_glStencilOpSeparateATI #-}
+ptr_glStencilOpSeparateATI :: FunPtr (GLenum -> GLenum -> GLenum -> GLenum -> IO ())
+ptr_glStencilOpSeparateATI = unsafePerformIO $ getCommand "glStencilOpSeparateATI"
+
+-- glStencilOpValueAMD ---------------------------------------------------------
+
+glStencilOpValueAMD
+  :: MonadIO m
+  => GLenum -- ^ @face@ of type @StencilFaceDirection@.
+  -> GLuint -- ^ @value@.
+  -> m ()
+glStencilOpValueAMD v1 v2 = liftIO $ dyn16 ptr_glStencilOpValueAMD v1 v2
+
+{-# NOINLINE ptr_glStencilOpValueAMD #-}
+ptr_glStencilOpValueAMD :: FunPtr (GLenum -> GLuint -> IO ())
+ptr_glStencilOpValueAMD = unsafePerformIO $ getCommand "glStencilOpValueAMD"
+
+-- glStencilStrokePathInstancedNV ----------------------------------------------
+
+glStencilStrokePathInstancedNV
+  :: MonadIO m
+  => GLsizei -- ^ @numPaths@.
+  -> GLenum -- ^ @pathNameType@ of type @PathElementType@.
+  -> Ptr a -- ^ @paths@ pointing to @COMPSIZE(numPaths,pathNameType,paths)@ elements of type @PathElement@.
+  -> GLuint -- ^ @pathBase@ of type @Path@.
+  -> GLint -- ^ @reference@ of type @StencilValue@.
+  -> GLuint -- ^ @mask@ of type @MaskedStencilValue@.
+  -> GLenum -- ^ @transformType@ of type @PathTransformType@.
+  -> Ptr GLfloat -- ^ @transformValues@ pointing to @COMPSIZE(numPaths,transformType)@ elements of type @GLfloat@.
+  -> m ()
+glStencilStrokePathInstancedNV v1 v2 v3 v4 v5 v6 v7 v8 = liftIO $ dyn715 ptr_glStencilStrokePathInstancedNV v1 v2 v3 v4 v5 v6 v7 v8
+
+{-# NOINLINE ptr_glStencilStrokePathInstancedNV #-}
+ptr_glStencilStrokePathInstancedNV :: FunPtr (GLsizei -> GLenum -> Ptr a -> GLuint -> GLint -> GLuint -> GLenum -> Ptr GLfloat -> IO ())
+ptr_glStencilStrokePathInstancedNV = unsafePerformIO $ getCommand "glStencilStrokePathInstancedNV"
+
+-- glStencilStrokePathNV -------------------------------------------------------
+
+glStencilStrokePathNV
+  :: MonadIO m
+  => GLuint -- ^ @path@ of type @Path@.
+  -> GLint -- ^ @reference@ of type @StencilValue@.
+  -> GLuint -- ^ @mask@ of type @MaskedStencilValue@.
+  -> m ()
+glStencilStrokePathNV v1 v2 v3 = liftIO $ dyn637 ptr_glStencilStrokePathNV v1 v2 v3
+
+{-# NOINLINE ptr_glStencilStrokePathNV #-}
+ptr_glStencilStrokePathNV :: FunPtr (GLuint -> GLint -> GLuint -> IO ())
+ptr_glStencilStrokePathNV = unsafePerformIO $ getCommand "glStencilStrokePathNV"
+
 -- glStencilThenCoverFillPathInstancedNV ---------------------------------------
 
 glStencilThenCoverFillPathInstancedNV
@@ -1446,92 +1539,4 @@
 {-# NOINLINE ptr_glTexCoord4fColor4fNormal3fVertex4fSUN #-}
 ptr_glTexCoord4fColor4fNormal3fVertex4fSUN :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
 ptr_glTexCoord4fColor4fNormal3fVertex4fSUN = unsafePerformIO $ getCommand "glTexCoord4fColor4fNormal3fVertex4fSUN"
-
--- glTexCoord4fColor4fNormal3fVertex4fvSUN -------------------------------------
-
-glTexCoord4fColor4fNormal3fVertex4fvSUN
-  :: MonadIO m
-  => Ptr GLfloat -- ^ @tc@ pointing to @4@ elements of type @GLfloat@.
-  -> Ptr GLfloat -- ^ @c@ pointing to @4@ elements of type @GLfloat@.
-  -> Ptr GLfloat -- ^ @n@ pointing to @3@ elements of type @GLfloat@.
-  -> Ptr GLfloat -- ^ @v@ pointing to @4@ elements of type @GLfloat@.
-  -> m ()
-glTexCoord4fColor4fNormal3fVertex4fvSUN v1 v2 v3 v4 = liftIO $ dyn724 ptr_glTexCoord4fColor4fNormal3fVertex4fvSUN v1 v2 v3 v4
-
-{-# NOINLINE ptr_glTexCoord4fColor4fNormal3fVertex4fvSUN #-}
-ptr_glTexCoord4fColor4fNormal3fVertex4fvSUN :: FunPtr (Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> IO ())
-ptr_glTexCoord4fColor4fNormal3fVertex4fvSUN = unsafePerformIO $ getCommand "glTexCoord4fColor4fNormal3fVertex4fvSUN"
-
--- glTexCoord4fVertex4fSUN -----------------------------------------------------
-
-glTexCoord4fVertex4fSUN
-  :: MonadIO m
-  => GLfloat -- ^ @s@.
-  -> GLfloat -- ^ @t@.
-  -> GLfloat -- ^ @p@.
-  -> GLfloat -- ^ @q@.
-  -> GLfloat -- ^ @x@.
-  -> GLfloat -- ^ @y@.
-  -> GLfloat -- ^ @z@.
-  -> GLfloat -- ^ @w@.
-  -> m ()
-glTexCoord4fVertex4fSUN v1 v2 v3 v4 v5 v6 v7 v8 = liftIO $ dyn613 ptr_glTexCoord4fVertex4fSUN v1 v2 v3 v4 v5 v6 v7 v8
-
-{-# NOINLINE ptr_glTexCoord4fVertex4fSUN #-}
-ptr_glTexCoord4fVertex4fSUN :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
-ptr_glTexCoord4fVertex4fSUN = unsafePerformIO $ getCommand "glTexCoord4fVertex4fSUN"
-
--- glTexCoord4fVertex4fvSUN ----------------------------------------------------
-
-glTexCoord4fVertex4fvSUN
-  :: MonadIO m
-  => Ptr GLfloat -- ^ @tc@ pointing to @4@ elements of type @GLfloat@.
-  -> Ptr GLfloat -- ^ @v@ pointing to @4@ elements of type @GLfloat@.
-  -> m ()
-glTexCoord4fVertex4fvSUN v1 v2 = liftIO $ dyn97 ptr_glTexCoord4fVertex4fvSUN v1 v2
-
-{-# NOINLINE ptr_glTexCoord4fVertex4fvSUN #-}
-ptr_glTexCoord4fVertex4fvSUN :: FunPtr (Ptr GLfloat -> Ptr GLfloat -> IO ())
-ptr_glTexCoord4fVertex4fvSUN = unsafePerformIO $ getCommand "glTexCoord4fVertex4fvSUN"
-
--- glTexCoord4fv ---------------------------------------------------------------
-
--- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord.xml OpenGL 2.x>.
-glTexCoord4fv
-  :: MonadIO m
-  => Ptr GLfloat -- ^ @v@ pointing to @4@ elements of type @CoordF@.
-  -> m ()
-glTexCoord4fv v1 = liftIO $ dyn41 ptr_glTexCoord4fv v1
-
-{-# NOINLINE ptr_glTexCoord4fv #-}
-ptr_glTexCoord4fv :: FunPtr (Ptr GLfloat -> IO ())
-ptr_glTexCoord4fv = unsafePerformIO $ getCommand "glTexCoord4fv"
-
--- glTexCoord4hNV --------------------------------------------------------------
-
--- | The vector equivalent of this command is 'glTexCoord4hvNV'.
-glTexCoord4hNV
-  :: MonadIO m
-  => GLhalfNV -- ^ @s@ of type @Half16NV@.
-  -> GLhalfNV -- ^ @t@ of type @Half16NV@.
-  -> GLhalfNV -- ^ @r@ of type @Half16NV@.
-  -> GLhalfNV -- ^ @q@ of type @Half16NV@.
-  -> m ()
-glTexCoord4hNV v1 v2 v3 v4 = liftIO $ dyn112 ptr_glTexCoord4hNV v1 v2 v3 v4
-
-{-# NOINLINE ptr_glTexCoord4hNV #-}
-ptr_glTexCoord4hNV :: FunPtr (GLhalfNV -> GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ())
-ptr_glTexCoord4hNV = unsafePerformIO $ getCommand "glTexCoord4hNV"
-
--- glTexCoord4hvNV -------------------------------------------------------------
-
-glTexCoord4hvNV
-  :: MonadIO m
-  => Ptr GLhalfNV -- ^ @v@ pointing to @4@ elements of type @Half16NV@.
-  -> m ()
-glTexCoord4hvNV v1 = liftIO $ dyn99 ptr_glTexCoord4hvNV v1
-
-{-# NOINLINE ptr_glTexCoord4hvNV #-}
-ptr_glTexCoord4hvNV :: FunPtr (Ptr GLhalfNV -> IO ())
-ptr_glTexCoord4hvNV = unsafePerformIO $ getCommand "glTexCoord4hvNV"
 
diff --git a/src/Graphics/GL/Functions/F25.hs b/src/Graphics/GL/Functions/F25.hs
--- a/src/Graphics/GL/Functions/F25.hs
+++ b/src/Graphics/GL/Functions/F25.hs
@@ -15,6 +15,12 @@
 --------------------------------------------------------------------------------
 
 module Graphics.GL.Functions.F25 (
+  glTexCoord4fColor4fNormal3fVertex4fvSUN,
+  glTexCoord4fVertex4fSUN,
+  glTexCoord4fVertex4fvSUN,
+  glTexCoord4fv,
+  glTexCoord4hNV,
+  glTexCoord4hvNV,
   glTexCoord4i,
   glTexCoord4iv,
   glTexCoord4s,
@@ -108,13 +114,7 @@
   glTextureBufferRangeEXT,
   glTextureColorMaskSGIS,
   glTextureImage1DEXT,
-  glTextureImage2DEXT,
-  glTextureImage2DMultisampleCoverageNV,
-  glTextureImage2DMultisampleNV,
-  glTextureImage3DEXT,
-  glTextureImage3DMultisampleCoverageNV,
-  glTextureImage3DMultisampleNV,
-  glTextureLightEXT
+  glTextureImage2DEXT
 ) where
 
 import Control.Monad.IO.Class ( MonadIO(..) )
@@ -123,6 +123,94 @@
 import Graphics.GL.Types
 import System.IO.Unsafe ( unsafePerformIO )
 
+-- glTexCoord4fColor4fNormal3fVertex4fvSUN -------------------------------------
+
+glTexCoord4fColor4fNormal3fVertex4fvSUN
+  :: MonadIO m
+  => Ptr GLfloat -- ^ @tc@ pointing to @4@ elements of type @GLfloat@.
+  -> Ptr GLfloat -- ^ @c@ pointing to @4@ elements of type @GLfloat@.
+  -> Ptr GLfloat -- ^ @n@ pointing to @3@ elements of type @GLfloat@.
+  -> Ptr GLfloat -- ^ @v@ pointing to @4@ elements of type @GLfloat@.
+  -> m ()
+glTexCoord4fColor4fNormal3fVertex4fvSUN v1 v2 v3 v4 = liftIO $ dyn724 ptr_glTexCoord4fColor4fNormal3fVertex4fvSUN v1 v2 v3 v4
+
+{-# NOINLINE ptr_glTexCoord4fColor4fNormal3fVertex4fvSUN #-}
+ptr_glTexCoord4fColor4fNormal3fVertex4fvSUN :: FunPtr (Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> IO ())
+ptr_glTexCoord4fColor4fNormal3fVertex4fvSUN = unsafePerformIO $ getCommand "glTexCoord4fColor4fNormal3fVertex4fvSUN"
+
+-- glTexCoord4fVertex4fSUN -----------------------------------------------------
+
+glTexCoord4fVertex4fSUN
+  :: MonadIO m
+  => GLfloat -- ^ @s@.
+  -> GLfloat -- ^ @t@.
+  -> GLfloat -- ^ @p@.
+  -> GLfloat -- ^ @q@.
+  -> GLfloat -- ^ @x@.
+  -> GLfloat -- ^ @y@.
+  -> GLfloat -- ^ @z@.
+  -> GLfloat -- ^ @w@.
+  -> m ()
+glTexCoord4fVertex4fSUN v1 v2 v3 v4 v5 v6 v7 v8 = liftIO $ dyn613 ptr_glTexCoord4fVertex4fSUN v1 v2 v3 v4 v5 v6 v7 v8
+
+{-# NOINLINE ptr_glTexCoord4fVertex4fSUN #-}
+ptr_glTexCoord4fVertex4fSUN :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+ptr_glTexCoord4fVertex4fSUN = unsafePerformIO $ getCommand "glTexCoord4fVertex4fSUN"
+
+-- glTexCoord4fVertex4fvSUN ----------------------------------------------------
+
+glTexCoord4fVertex4fvSUN
+  :: MonadIO m
+  => Ptr GLfloat -- ^ @tc@ pointing to @4@ elements of type @GLfloat@.
+  -> Ptr GLfloat -- ^ @v@ pointing to @4@ elements of type @GLfloat@.
+  -> m ()
+glTexCoord4fVertex4fvSUN v1 v2 = liftIO $ dyn97 ptr_glTexCoord4fVertex4fvSUN v1 v2
+
+{-# NOINLINE ptr_glTexCoord4fVertex4fvSUN #-}
+ptr_glTexCoord4fVertex4fvSUN :: FunPtr (Ptr GLfloat -> Ptr GLfloat -> IO ())
+ptr_glTexCoord4fVertex4fvSUN = unsafePerformIO $ getCommand "glTexCoord4fVertex4fvSUN"
+
+-- glTexCoord4fv ---------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord.xml OpenGL 2.x>.
+glTexCoord4fv
+  :: MonadIO m
+  => Ptr GLfloat -- ^ @v@ pointing to @4@ elements of type @CoordF@.
+  -> m ()
+glTexCoord4fv v1 = liftIO $ dyn41 ptr_glTexCoord4fv v1
+
+{-# NOINLINE ptr_glTexCoord4fv #-}
+ptr_glTexCoord4fv :: FunPtr (Ptr GLfloat -> IO ())
+ptr_glTexCoord4fv = unsafePerformIO $ getCommand "glTexCoord4fv"
+
+-- glTexCoord4hNV --------------------------------------------------------------
+
+-- | The vector equivalent of this command is 'glTexCoord4hvNV'.
+glTexCoord4hNV
+  :: MonadIO m
+  => GLhalfNV -- ^ @s@ of type @Half16NV@.
+  -> GLhalfNV -- ^ @t@ of type @Half16NV@.
+  -> GLhalfNV -- ^ @r@ of type @Half16NV@.
+  -> GLhalfNV -- ^ @q@ of type @Half16NV@.
+  -> m ()
+glTexCoord4hNV v1 v2 v3 v4 = liftIO $ dyn112 ptr_glTexCoord4hNV v1 v2 v3 v4
+
+{-# NOINLINE ptr_glTexCoord4hNV #-}
+ptr_glTexCoord4hNV :: FunPtr (GLhalfNV -> GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ())
+ptr_glTexCoord4hNV = unsafePerformIO $ getCommand "glTexCoord4hNV"
+
+-- glTexCoord4hvNV -------------------------------------------------------------
+
+glTexCoord4hvNV
+  :: MonadIO m
+  => Ptr GLhalfNV -- ^ @v@ pointing to @4@ elements of type @Half16NV@.
+  -> m ()
+glTexCoord4hvNV v1 = liftIO $ dyn99 ptr_glTexCoord4hvNV v1
+
+{-# NOINLINE ptr_glTexCoord4hvNV #-}
+ptr_glTexCoord4hvNV :: FunPtr (Ptr GLhalfNV -> IO ())
+ptr_glTexCoord4hvNV = unsafePerformIO $ getCommand "glTexCoord4hvNV"
+
 -- glTexCoord4i ----------------------------------------------------------------
 
 -- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord.xml OpenGL 2.x>. The vector equivalent of this command is 'glTexCoord4iv'.
@@ -1647,114 +1735,4 @@
 {-# NOINLINE ptr_glTextureImage2DEXT #-}
 ptr_glTextureImage2DEXT :: FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> IO ())
 ptr_glTextureImage2DEXT = unsafePerformIO $ getCommand "glTextureImage2DEXT"
-
--- glTextureImage2DMultisampleCoverageNV ---------------------------------------
-
-glTextureImage2DMultisampleCoverageNV
-  :: MonadIO m
-  => GLuint -- ^ @texture@.
-  -> GLenum -- ^ @target@.
-  -> GLsizei -- ^ @coverageSamples@.
-  -> GLsizei -- ^ @colorSamples@.
-  -> GLint -- ^ @internalFormat@.
-  -> GLsizei -- ^ @width@.
-  -> GLsizei -- ^ @height@.
-  -> GLboolean -- ^ @fixedSampleLocations@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
-  -> m ()
-glTextureImage2DMultisampleCoverageNV v1 v2 v3 v4 v5 v6 v7 v8 = liftIO $ dyn750 ptr_glTextureImage2DMultisampleCoverageNV v1 v2 v3 v4 v5 v6 v7 v8
-
-{-# NOINLINE ptr_glTextureImage2DMultisampleCoverageNV #-}
-ptr_glTextureImage2DMultisampleCoverageNV :: FunPtr (GLuint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLboolean -> IO ())
-ptr_glTextureImage2DMultisampleCoverageNV = unsafePerformIO $ getCommand "glTextureImage2DMultisampleCoverageNV"
-
--- glTextureImage2DMultisampleNV -----------------------------------------------
-
-glTextureImage2DMultisampleNV
-  :: MonadIO m
-  => GLuint -- ^ @texture@.
-  -> GLenum -- ^ @target@.
-  -> GLsizei -- ^ @samples@.
-  -> GLint -- ^ @internalFormat@.
-  -> GLsizei -- ^ @width@.
-  -> GLsizei -- ^ @height@.
-  -> GLboolean -- ^ @fixedSampleLocations@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
-  -> m ()
-glTextureImage2DMultisampleNV v1 v2 v3 v4 v5 v6 v7 = liftIO $ dyn751 ptr_glTextureImage2DMultisampleNV v1 v2 v3 v4 v5 v6 v7
-
-{-# NOINLINE ptr_glTextureImage2DMultisampleNV #-}
-ptr_glTextureImage2DMultisampleNV :: FunPtr (GLuint -> GLenum -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLboolean -> IO ())
-ptr_glTextureImage2DMultisampleNV = unsafePerformIO $ getCommand "glTextureImage2DMultisampleNV"
-
--- glTextureImage3DEXT ---------------------------------------------------------
-
-glTextureImage3DEXT
-  :: MonadIO m
-  => GLuint -- ^ @texture@ of type @Texture@.
-  -> GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
-  -> GLint -- ^ @level@ of type @CheckedInt32@.
-  -> GLint -- ^ @internalformat@ of type @TextureComponentCount@.
-  -> GLsizei -- ^ @width@.
-  -> GLsizei -- ^ @height@.
-  -> GLsizei -- ^ @depth@.
-  -> GLint -- ^ @border@ of type @CheckedInt32@.
-  -> GLenum -- ^ @format@ of type [PixelFormat](Graphics-GL-Groups.html#PixelFormat).
-  -> GLenum -- ^ @type@ of type [PixelType](Graphics-GL-Groups.html#PixelType).
-  -> Ptr a -- ^ @pixels@ pointing to @COMPSIZE(format,type,width,height,depth)@ elements of type @a@.
-  -> m ()
-glTextureImage3DEXT v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 = liftIO $ dyn752 ptr_glTextureImage3DEXT v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11
-
-{-# NOINLINE ptr_glTextureImage3DEXT #-}
-ptr_glTextureImage3DEXT :: FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> IO ())
-ptr_glTextureImage3DEXT = unsafePerformIO $ getCommand "glTextureImage3DEXT"
-
--- glTextureImage3DMultisampleCoverageNV ---------------------------------------
-
-glTextureImage3DMultisampleCoverageNV
-  :: MonadIO m
-  => GLuint -- ^ @texture@.
-  -> GLenum -- ^ @target@.
-  -> GLsizei -- ^ @coverageSamples@.
-  -> GLsizei -- ^ @colorSamples@.
-  -> GLint -- ^ @internalFormat@.
-  -> GLsizei -- ^ @width@.
-  -> GLsizei -- ^ @height@.
-  -> GLsizei -- ^ @depth@.
-  -> GLboolean -- ^ @fixedSampleLocations@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
-  -> m ()
-glTextureImage3DMultisampleCoverageNV v1 v2 v3 v4 v5 v6 v7 v8 v9 = liftIO $ dyn753 ptr_glTextureImage3DMultisampleCoverageNV v1 v2 v3 v4 v5 v6 v7 v8 v9
-
-{-# NOINLINE ptr_glTextureImage3DMultisampleCoverageNV #-}
-ptr_glTextureImage3DMultisampleCoverageNV :: FunPtr (GLuint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> IO ())
-ptr_glTextureImage3DMultisampleCoverageNV = unsafePerformIO $ getCommand "glTextureImage3DMultisampleCoverageNV"
-
--- glTextureImage3DMultisampleNV -----------------------------------------------
-
-glTextureImage3DMultisampleNV
-  :: MonadIO m
-  => GLuint -- ^ @texture@.
-  -> GLenum -- ^ @target@.
-  -> GLsizei -- ^ @samples@.
-  -> GLint -- ^ @internalFormat@.
-  -> GLsizei -- ^ @width@.
-  -> GLsizei -- ^ @height@.
-  -> GLsizei -- ^ @depth@.
-  -> GLboolean -- ^ @fixedSampleLocations@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
-  -> m ()
-glTextureImage3DMultisampleNV v1 v2 v3 v4 v5 v6 v7 v8 = liftIO $ dyn754 ptr_glTextureImage3DMultisampleNV v1 v2 v3 v4 v5 v6 v7 v8
-
-{-# NOINLINE ptr_glTextureImage3DMultisampleNV #-}
-ptr_glTextureImage3DMultisampleNV :: FunPtr (GLuint -> GLenum -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> IO ())
-ptr_glTextureImage3DMultisampleNV = unsafePerformIO $ getCommand "glTextureImage3DMultisampleNV"
-
--- glTextureLightEXT -----------------------------------------------------------
-
-glTextureLightEXT
-  :: MonadIO m
-  => GLenum -- ^ @pname@ of type @LightTexturePNameEXT@.
-  -> m ()
-glTextureLightEXT v1 = liftIO $ dyn4 ptr_glTextureLightEXT v1
-
-{-# NOINLINE ptr_glTextureLightEXT #-}
-ptr_glTextureLightEXT :: FunPtr (GLenum -> IO ())
-ptr_glTextureLightEXT = unsafePerformIO $ getCommand "glTextureLightEXT"
 
diff --git a/src/Graphics/GL/Functions/F26.hs b/src/Graphics/GL/Functions/F26.hs
--- a/src/Graphics/GL/Functions/F26.hs
+++ b/src/Graphics/GL/Functions/F26.hs
@@ -15,6 +15,12 @@
 --------------------------------------------------------------------------------
 
 module Graphics.GL.Functions.F26 (
+  glTextureImage2DMultisampleCoverageNV,
+  glTextureImage2DMultisampleNV,
+  glTextureImage3DEXT,
+  glTextureImage3DMultisampleCoverageNV,
+  glTextureImage3DMultisampleNV,
+  glTextureLightEXT,
   glTextureMaterialEXT,
   glTextureNormalEXT,
   glTexturePageCommitmentEXT,
@@ -108,13 +114,7 @@
   glUniform2ui64vNV,
   glUniform2uiEXT,
   glUniform2uiv,
-  glUniform2uivEXT,
-  glUniform3d,
-  glUniform3dv,
-  glUniform3f,
-  glUniform3fARB,
-  glUniform3fv,
-  glUniform3fvARB
+  glUniform2uivEXT
 ) where
 
 import Control.Monad.IO.Class ( MonadIO(..) )
@@ -123,6 +123,116 @@
 import Graphics.GL.Types
 import System.IO.Unsafe ( unsafePerformIO )
 
+-- glTextureImage2DMultisampleCoverageNV ---------------------------------------
+
+glTextureImage2DMultisampleCoverageNV
+  :: MonadIO m
+  => GLuint -- ^ @texture@.
+  -> GLenum -- ^ @target@.
+  -> GLsizei -- ^ @coverageSamples@.
+  -> GLsizei -- ^ @colorSamples@.
+  -> GLint -- ^ @internalFormat@.
+  -> GLsizei -- ^ @width@.
+  -> GLsizei -- ^ @height@.
+  -> GLboolean -- ^ @fixedSampleLocations@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> m ()
+glTextureImage2DMultisampleCoverageNV v1 v2 v3 v4 v5 v6 v7 v8 = liftIO $ dyn750 ptr_glTextureImage2DMultisampleCoverageNV v1 v2 v3 v4 v5 v6 v7 v8
+
+{-# NOINLINE ptr_glTextureImage2DMultisampleCoverageNV #-}
+ptr_glTextureImage2DMultisampleCoverageNV :: FunPtr (GLuint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLboolean -> IO ())
+ptr_glTextureImage2DMultisampleCoverageNV = unsafePerformIO $ getCommand "glTextureImage2DMultisampleCoverageNV"
+
+-- glTextureImage2DMultisampleNV -----------------------------------------------
+
+glTextureImage2DMultisampleNV
+  :: MonadIO m
+  => GLuint -- ^ @texture@.
+  -> GLenum -- ^ @target@.
+  -> GLsizei -- ^ @samples@.
+  -> GLint -- ^ @internalFormat@.
+  -> GLsizei -- ^ @width@.
+  -> GLsizei -- ^ @height@.
+  -> GLboolean -- ^ @fixedSampleLocations@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> m ()
+glTextureImage2DMultisampleNV v1 v2 v3 v4 v5 v6 v7 = liftIO $ dyn751 ptr_glTextureImage2DMultisampleNV v1 v2 v3 v4 v5 v6 v7
+
+{-# NOINLINE ptr_glTextureImage2DMultisampleNV #-}
+ptr_glTextureImage2DMultisampleNV :: FunPtr (GLuint -> GLenum -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLboolean -> IO ())
+ptr_glTextureImage2DMultisampleNV = unsafePerformIO $ getCommand "glTextureImage2DMultisampleNV"
+
+-- glTextureImage3DEXT ---------------------------------------------------------
+
+glTextureImage3DEXT
+  :: MonadIO m
+  => GLuint -- ^ @texture@ of type @Texture@.
+  -> GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLint -- ^ @level@ of type @CheckedInt32@.
+  -> GLint -- ^ @internalformat@ of type @TextureComponentCount@.
+  -> GLsizei -- ^ @width@.
+  -> GLsizei -- ^ @height@.
+  -> GLsizei -- ^ @depth@.
+  -> GLint -- ^ @border@ of type @CheckedInt32@.
+  -> GLenum -- ^ @format@ of type [PixelFormat](Graphics-GL-Groups.html#PixelFormat).
+  -> GLenum -- ^ @type@ of type [PixelType](Graphics-GL-Groups.html#PixelType).
+  -> Ptr a -- ^ @pixels@ pointing to @COMPSIZE(format,type,width,height,depth)@ elements of type @a@.
+  -> m ()
+glTextureImage3DEXT v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 = liftIO $ dyn752 ptr_glTextureImage3DEXT v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11
+
+{-# NOINLINE ptr_glTextureImage3DEXT #-}
+ptr_glTextureImage3DEXT :: FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> IO ())
+ptr_glTextureImage3DEXT = unsafePerformIO $ getCommand "glTextureImage3DEXT"
+
+-- glTextureImage3DMultisampleCoverageNV ---------------------------------------
+
+glTextureImage3DMultisampleCoverageNV
+  :: MonadIO m
+  => GLuint -- ^ @texture@.
+  -> GLenum -- ^ @target@.
+  -> GLsizei -- ^ @coverageSamples@.
+  -> GLsizei -- ^ @colorSamples@.
+  -> GLint -- ^ @internalFormat@.
+  -> GLsizei -- ^ @width@.
+  -> GLsizei -- ^ @height@.
+  -> GLsizei -- ^ @depth@.
+  -> GLboolean -- ^ @fixedSampleLocations@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> m ()
+glTextureImage3DMultisampleCoverageNV v1 v2 v3 v4 v5 v6 v7 v8 v9 = liftIO $ dyn753 ptr_glTextureImage3DMultisampleCoverageNV v1 v2 v3 v4 v5 v6 v7 v8 v9
+
+{-# NOINLINE ptr_glTextureImage3DMultisampleCoverageNV #-}
+ptr_glTextureImage3DMultisampleCoverageNV :: FunPtr (GLuint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> IO ())
+ptr_glTextureImage3DMultisampleCoverageNV = unsafePerformIO $ getCommand "glTextureImage3DMultisampleCoverageNV"
+
+-- glTextureImage3DMultisampleNV -----------------------------------------------
+
+glTextureImage3DMultisampleNV
+  :: MonadIO m
+  => GLuint -- ^ @texture@.
+  -> GLenum -- ^ @target@.
+  -> GLsizei -- ^ @samples@.
+  -> GLint -- ^ @internalFormat@.
+  -> GLsizei -- ^ @width@.
+  -> GLsizei -- ^ @height@.
+  -> GLsizei -- ^ @depth@.
+  -> GLboolean -- ^ @fixedSampleLocations@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> m ()
+glTextureImage3DMultisampleNV v1 v2 v3 v4 v5 v6 v7 v8 = liftIO $ dyn754 ptr_glTextureImage3DMultisampleNV v1 v2 v3 v4 v5 v6 v7 v8
+
+{-# NOINLINE ptr_glTextureImage3DMultisampleNV #-}
+ptr_glTextureImage3DMultisampleNV :: FunPtr (GLuint -> GLenum -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> IO ())
+ptr_glTextureImage3DMultisampleNV = unsafePerformIO $ getCommand "glTextureImage3DMultisampleNV"
+
+-- glTextureLightEXT -----------------------------------------------------------
+
+glTextureLightEXT
+  :: MonadIO m
+  => GLenum -- ^ @pname@ of type @LightTexturePNameEXT@.
+  -> m ()
+glTextureLightEXT v1 = liftIO $ dyn4 ptr_glTextureLightEXT v1
+
+{-# NOINLINE ptr_glTextureLightEXT #-}
+ptr_glTextureLightEXT :: FunPtr (GLenum -> IO ())
+ptr_glTextureLightEXT = unsafePerformIO $ getCommand "glTextureLightEXT"
+
 -- glTextureMaterialEXT --------------------------------------------------------
 
 glTextureMaterialEXT
@@ -1584,95 +1694,4 @@
 {-# NOINLINE ptr_glUniform2uivEXT #-}
 ptr_glUniform2uivEXT :: FunPtr (GLint -> GLsizei -> Ptr GLuint -> IO ())
 ptr_glUniform2uivEXT = unsafePerformIO $ getCommand "glUniform2uivEXT"
-
--- glUniform3d -----------------------------------------------------------------
-
-glUniform3d
-  :: MonadIO m
-  => GLint -- ^ @location@.
-  -> GLdouble -- ^ @x@.
-  -> GLdouble -- ^ @y@.
-  -> GLdouble -- ^ @z@.
-  -> m ()
-glUniform3d v1 v2 v3 v4 = liftIO $ dyn800 ptr_glUniform3d v1 v2 v3 v4
-
-{-# NOINLINE ptr_glUniform3d #-}
-ptr_glUniform3d :: FunPtr (GLint -> GLdouble -> GLdouble -> GLdouble -> IO ())
-ptr_glUniform3d = unsafePerformIO $ getCommand "glUniform3d"
-
--- glUniform3dv ----------------------------------------------------------------
-
-glUniform3dv
-  :: MonadIO m
-  => GLint -- ^ @location@.
-  -> GLsizei -- ^ @count@.
-  -> Ptr GLdouble -- ^ @value@ pointing to @count*3@ elements of type @GLdouble@.
-  -> m ()
-glUniform3dv v1 v2 v3 = liftIO $ dyn781 ptr_glUniform3dv v1 v2 v3
-
-{-# NOINLINE ptr_glUniform3dv #-}
-ptr_glUniform3dv :: FunPtr (GLint -> GLsizei -> Ptr GLdouble -> IO ())
-ptr_glUniform3dv = unsafePerformIO $ getCommand "glUniform3dv"
-
--- glUniform3f -----------------------------------------------------------------
-
--- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glUniform.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glUniform.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glUniform.xhtml OpenGL 4.x>.
-glUniform3f
-  :: MonadIO m
-  => GLint -- ^ @location@.
-  -> GLfloat -- ^ @v0@.
-  -> GLfloat -- ^ @v1@.
-  -> GLfloat -- ^ @v2@.
-  -> m ()
-glUniform3f v1 v2 v3 v4 = liftIO $ dyn801 ptr_glUniform3f v1 v2 v3 v4
-
-{-# NOINLINE ptr_glUniform3f #-}
-ptr_glUniform3f :: FunPtr (GLint -> GLfloat -> GLfloat -> GLfloat -> IO ())
-ptr_glUniform3f = unsafePerformIO $ getCommand "glUniform3f"
-
--- glUniform3fARB --------------------------------------------------------------
-
--- | This command is an alias for 'glUniform3f'.
-glUniform3fARB
-  :: MonadIO m
-  => GLint -- ^ @location@.
-  -> GLfloat -- ^ @v0@.
-  -> GLfloat -- ^ @v1@.
-  -> GLfloat -- ^ @v2@.
-  -> m ()
-glUniform3fARB v1 v2 v3 v4 = liftIO $ dyn801 ptr_glUniform3fARB v1 v2 v3 v4
-
-{-# NOINLINE ptr_glUniform3fARB #-}
-ptr_glUniform3fARB :: FunPtr (GLint -> GLfloat -> GLfloat -> GLfloat -> IO ())
-ptr_glUniform3fARB = unsafePerformIO $ getCommand "glUniform3fARB"
-
--- glUniform3fv ----------------------------------------------------------------
-
--- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glUniform.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glUniform.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glUniform.xhtml OpenGL 4.x>.
-glUniform3fv
-  :: MonadIO m
-  => GLint -- ^ @location@.
-  -> GLsizei -- ^ @count@.
-  -> Ptr GLfloat -- ^ @value@ pointing to @count*3@ elements of type @GLfloat@.
-  -> m ()
-glUniform3fv v1 v2 v3 = liftIO $ dyn783 ptr_glUniform3fv v1 v2 v3
-
-{-# NOINLINE ptr_glUniform3fv #-}
-ptr_glUniform3fv :: FunPtr (GLint -> GLsizei -> Ptr GLfloat -> IO ())
-ptr_glUniform3fv = unsafePerformIO $ getCommand "glUniform3fv"
-
--- glUniform3fvARB -------------------------------------------------------------
-
--- | This command is an alias for 'glUniform3fv'.
-glUniform3fvARB
-  :: MonadIO m
-  => GLint -- ^ @location@.
-  -> GLsizei -- ^ @count@.
-  -> Ptr GLfloat -- ^ @value@ pointing to @count*3@ elements of type @GLfloat@.
-  -> m ()
-glUniform3fvARB v1 v2 v3 = liftIO $ dyn783 ptr_glUniform3fvARB v1 v2 v3
-
-{-# NOINLINE ptr_glUniform3fvARB #-}
-ptr_glUniform3fvARB :: FunPtr (GLint -> GLsizei -> Ptr GLfloat -> IO ())
-ptr_glUniform3fvARB = unsafePerformIO $ getCommand "glUniform3fvARB"
 
diff --git a/src/Graphics/GL/Functions/F27.hs b/src/Graphics/GL/Functions/F27.hs
--- a/src/Graphics/GL/Functions/F27.hs
+++ b/src/Graphics/GL/Functions/F27.hs
@@ -15,6 +15,12 @@
 --------------------------------------------------------------------------------
 
 module Graphics.GL.Functions.F27 (
+  glUniform3d,
+  glUniform3dv,
+  glUniform3f,
+  glUniform3fARB,
+  glUniform3fv,
+  glUniform3fvARB,
   glUniform3i,
   glUniform3i64ARB,
   glUniform3i64NV,
@@ -56,8 +62,10 @@
   glUniformBlockBinding,
   glUniformBufferEXT,
   glUniformHandleui64ARB,
+  glUniformHandleui64IMG,
   glUniformHandleui64NV,
   glUniformHandleui64vARB,
+  glUniformHandleui64vIMG,
   glUniformHandleui64vNV,
   glUniformMatrix2dv,
   glUniformMatrix2fv,
@@ -106,15 +114,7 @@
   glVDPAUFiniNV,
   glVDPAUGetSurfaceivNV,
   glVDPAUInitNV,
-  glVDPAUIsSurfaceNV,
-  glVDPAUMapSurfacesNV,
-  glVDPAURegisterOutputSurfaceNV,
-  glVDPAURegisterVideoSurfaceNV,
-  glVDPAUSurfaceAccessNV,
-  glVDPAUUnmapSurfacesNV,
-  glVDPAUUnregisterSurfaceNV,
-  glValidateProgram,
-  glValidateProgramARB
+  glVDPAUIsSurfaceNV
 ) where
 
 import Control.Monad.IO.Class ( MonadIO(..) )
@@ -123,6 +123,97 @@
 import Graphics.GL.Types
 import System.IO.Unsafe ( unsafePerformIO )
 
+-- glUniform3d -----------------------------------------------------------------
+
+glUniform3d
+  :: MonadIO m
+  => GLint -- ^ @location@.
+  -> GLdouble -- ^ @x@.
+  -> GLdouble -- ^ @y@.
+  -> GLdouble -- ^ @z@.
+  -> m ()
+glUniform3d v1 v2 v3 v4 = liftIO $ dyn800 ptr_glUniform3d v1 v2 v3 v4
+
+{-# NOINLINE ptr_glUniform3d #-}
+ptr_glUniform3d :: FunPtr (GLint -> GLdouble -> GLdouble -> GLdouble -> IO ())
+ptr_glUniform3d = unsafePerformIO $ getCommand "glUniform3d"
+
+-- glUniform3dv ----------------------------------------------------------------
+
+glUniform3dv
+  :: MonadIO m
+  => GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLdouble -- ^ @value@ pointing to @count*3@ elements of type @GLdouble@.
+  -> m ()
+glUniform3dv v1 v2 v3 = liftIO $ dyn781 ptr_glUniform3dv v1 v2 v3
+
+{-# NOINLINE ptr_glUniform3dv #-}
+ptr_glUniform3dv :: FunPtr (GLint -> GLsizei -> Ptr GLdouble -> IO ())
+ptr_glUniform3dv = unsafePerformIO $ getCommand "glUniform3dv"
+
+-- glUniform3f -----------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glUniform.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glUniform.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glUniform.xhtml OpenGL 4.x>.
+glUniform3f
+  :: MonadIO m
+  => GLint -- ^ @location@.
+  -> GLfloat -- ^ @v0@.
+  -> GLfloat -- ^ @v1@.
+  -> GLfloat -- ^ @v2@.
+  -> m ()
+glUniform3f v1 v2 v3 v4 = liftIO $ dyn801 ptr_glUniform3f v1 v2 v3 v4
+
+{-# NOINLINE ptr_glUniform3f #-}
+ptr_glUniform3f :: FunPtr (GLint -> GLfloat -> GLfloat -> GLfloat -> IO ())
+ptr_glUniform3f = unsafePerformIO $ getCommand "glUniform3f"
+
+-- glUniform3fARB --------------------------------------------------------------
+
+-- | This command is an alias for 'glUniform3f'.
+glUniform3fARB
+  :: MonadIO m
+  => GLint -- ^ @location@.
+  -> GLfloat -- ^ @v0@.
+  -> GLfloat -- ^ @v1@.
+  -> GLfloat -- ^ @v2@.
+  -> m ()
+glUniform3fARB v1 v2 v3 v4 = liftIO $ dyn801 ptr_glUniform3fARB v1 v2 v3 v4
+
+{-# NOINLINE ptr_glUniform3fARB #-}
+ptr_glUniform3fARB :: FunPtr (GLint -> GLfloat -> GLfloat -> GLfloat -> IO ())
+ptr_glUniform3fARB = unsafePerformIO $ getCommand "glUniform3fARB"
+
+-- glUniform3fv ----------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glUniform.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glUniform.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glUniform.xhtml OpenGL 4.x>.
+glUniform3fv
+  :: MonadIO m
+  => GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLfloat -- ^ @value@ pointing to @count*3@ elements of type @GLfloat@.
+  -> m ()
+glUniform3fv v1 v2 v3 = liftIO $ dyn783 ptr_glUniform3fv v1 v2 v3
+
+{-# NOINLINE ptr_glUniform3fv #-}
+ptr_glUniform3fv :: FunPtr (GLint -> GLsizei -> Ptr GLfloat -> IO ())
+ptr_glUniform3fv = unsafePerformIO $ getCommand "glUniform3fv"
+
+-- glUniform3fvARB -------------------------------------------------------------
+
+-- | This command is an alias for 'glUniform3fv'.
+glUniform3fvARB
+  :: MonadIO m
+  => GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLfloat -- ^ @value@ pointing to @count*3@ elements of type @GLfloat@.
+  -> m ()
+glUniform3fvARB v1 v2 v3 = liftIO $ dyn783 ptr_glUniform3fvARB v1 v2 v3
+
+{-# NOINLINE ptr_glUniform3fvARB #-}
+ptr_glUniform3fvARB :: FunPtr (GLint -> GLsizei -> Ptr GLfloat -> IO ())
+ptr_glUniform3fvARB = unsafePerformIO $ getCommand "glUniform3fvARB"
+
 -- glUniform3i -----------------------------------------------------------------
 
 -- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glUniform.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glUniform.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glUniform.xhtml OpenGL 4.x>.
@@ -747,6 +838,20 @@
 ptr_glUniformHandleui64ARB :: FunPtr (GLint -> GLuint64 -> IO ())
 ptr_glUniformHandleui64ARB = unsafePerformIO $ getCommand "glUniformHandleui64ARB"
 
+-- glUniformHandleui64IMG ------------------------------------------------------
+
+-- | This command is an alias for 'glUniformHandleui64ARB'.
+glUniformHandleui64IMG
+  :: MonadIO m
+  => GLint -- ^ @location@.
+  -> GLuint64 -- ^ @value@.
+  -> m ()
+glUniformHandleui64IMG v1 v2 = liftIO $ dyn790 ptr_glUniformHandleui64IMG v1 v2
+
+{-# NOINLINE ptr_glUniformHandleui64IMG #-}
+ptr_glUniformHandleui64IMG :: FunPtr (GLint -> GLuint64 -> IO ())
+ptr_glUniformHandleui64IMG = unsafePerformIO $ getCommand "glUniformHandleui64IMG"
+
 -- glUniformHandleui64NV -------------------------------------------------------
 
 glUniformHandleui64NV
@@ -774,6 +879,21 @@
 ptr_glUniformHandleui64vARB :: FunPtr (GLint -> GLsizei -> Ptr GLuint64 -> IO ())
 ptr_glUniformHandleui64vARB = unsafePerformIO $ getCommand "glUniformHandleui64vARB"
 
+-- glUniformHandleui64vIMG -----------------------------------------------------
+
+-- | This command is an alias for 'glUniformHandleui64vARB'.
+glUniformHandleui64vIMG
+  :: MonadIO m
+  => GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLuint64 -- ^ @value@ pointing to @count@ elements of type @GLuint64@.
+  -> m ()
+glUniformHandleui64vIMG v1 v2 v3 = liftIO $ dyn792 ptr_glUniformHandleui64vIMG v1 v2 v3
+
+{-# NOINLINE ptr_glUniformHandleui64vIMG #-}
+ptr_glUniformHandleui64vIMG :: FunPtr (GLint -> GLsizei -> Ptr GLuint64 -> IO ())
+ptr_glUniformHandleui64vIMG = unsafePerformIO $ getCommand "glUniformHandleui64vIMG"
+
 -- glUniformHandleui64vNV ------------------------------------------------------
 
 glUniformHandleui64vNV
@@ -1488,111 +1608,4 @@
 {-# NOINLINE ptr_glVDPAUIsSurfaceNV #-}
 ptr_glVDPAUIsSurfaceNV :: FunPtr (GLvdpauSurfaceNV -> IO GLboolean)
 ptr_glVDPAUIsSurfaceNV = unsafePerformIO $ getCommand "glVDPAUIsSurfaceNV"
-
--- glVDPAUMapSurfacesNV --------------------------------------------------------
-
-glVDPAUMapSurfacesNV
-  :: MonadIO m
-  => GLsizei -- ^ @numSurfaces@.
-  -> Ptr GLvdpauSurfaceNV -- ^ @surfaces@ pointing to @numSurfaces@ elements of type @vdpauSurfaceNV@.
-  -> m ()
-glVDPAUMapSurfacesNV v1 v2 = liftIO $ dyn821 ptr_glVDPAUMapSurfacesNV v1 v2
-
-{-# NOINLINE ptr_glVDPAUMapSurfacesNV #-}
-ptr_glVDPAUMapSurfacesNV :: FunPtr (GLsizei -> Ptr GLvdpauSurfaceNV -> IO ())
-ptr_glVDPAUMapSurfacesNV = unsafePerformIO $ getCommand "glVDPAUMapSurfacesNV"
-
--- glVDPAURegisterOutputSurfaceNV ----------------------------------------------
-
-glVDPAURegisterOutputSurfaceNV
-  :: MonadIO m
-  => Ptr a -- ^ @vdpSurface@.
-  -> GLenum -- ^ @target@.
-  -> GLsizei -- ^ @numTextureNames@.
-  -> Ptr GLuint -- ^ @textureNames@ pointing to @numTextureNames@ elements of type @GLuint@.
-  -> m GLvdpauSurfaceNV -- ^ of type @vdpauSurfaceNV@.
-glVDPAURegisterOutputSurfaceNV v1 v2 v3 v4 = liftIO $ dyn822 ptr_glVDPAURegisterOutputSurfaceNV v1 v2 v3 v4
-
-{-# NOINLINE ptr_glVDPAURegisterOutputSurfaceNV #-}
-ptr_glVDPAURegisterOutputSurfaceNV :: FunPtr (Ptr a -> GLenum -> GLsizei -> Ptr GLuint -> IO GLvdpauSurfaceNV)
-ptr_glVDPAURegisterOutputSurfaceNV = unsafePerformIO $ getCommand "glVDPAURegisterOutputSurfaceNV"
-
--- glVDPAURegisterVideoSurfaceNV -----------------------------------------------
-
-glVDPAURegisterVideoSurfaceNV
-  :: MonadIO m
-  => Ptr a -- ^ @vdpSurface@.
-  -> GLenum -- ^ @target@.
-  -> GLsizei -- ^ @numTextureNames@.
-  -> Ptr GLuint -- ^ @textureNames@ pointing to @numTextureNames@ elements of type @GLuint@.
-  -> m GLvdpauSurfaceNV -- ^ of type @vdpauSurfaceNV@.
-glVDPAURegisterVideoSurfaceNV v1 v2 v3 v4 = liftIO $ dyn822 ptr_glVDPAURegisterVideoSurfaceNV v1 v2 v3 v4
-
-{-# NOINLINE ptr_glVDPAURegisterVideoSurfaceNV #-}
-ptr_glVDPAURegisterVideoSurfaceNV :: FunPtr (Ptr a -> GLenum -> GLsizei -> Ptr GLuint -> IO GLvdpauSurfaceNV)
-ptr_glVDPAURegisterVideoSurfaceNV = unsafePerformIO $ getCommand "glVDPAURegisterVideoSurfaceNV"
-
--- glVDPAUSurfaceAccessNV ------------------------------------------------------
-
-glVDPAUSurfaceAccessNV
-  :: MonadIO m
-  => GLvdpauSurfaceNV -- ^ @surface@ of type @vdpauSurfaceNV@.
-  -> GLenum -- ^ @access@.
-  -> m ()
-glVDPAUSurfaceAccessNV v1 v2 = liftIO $ dyn823 ptr_glVDPAUSurfaceAccessNV v1 v2
-
-{-# NOINLINE ptr_glVDPAUSurfaceAccessNV #-}
-ptr_glVDPAUSurfaceAccessNV :: FunPtr (GLvdpauSurfaceNV -> GLenum -> IO ())
-ptr_glVDPAUSurfaceAccessNV = unsafePerformIO $ getCommand "glVDPAUSurfaceAccessNV"
-
--- glVDPAUUnmapSurfacesNV ------------------------------------------------------
-
-glVDPAUUnmapSurfacesNV
-  :: MonadIO m
-  => GLsizei -- ^ @numSurface@.
-  -> Ptr GLvdpauSurfaceNV -- ^ @surfaces@ pointing to @numSurface@ elements of type @vdpauSurfaceNV@.
-  -> m ()
-glVDPAUUnmapSurfacesNV v1 v2 = liftIO $ dyn821 ptr_glVDPAUUnmapSurfacesNV v1 v2
-
-{-# NOINLINE ptr_glVDPAUUnmapSurfacesNV #-}
-ptr_glVDPAUUnmapSurfacesNV :: FunPtr (GLsizei -> Ptr GLvdpauSurfaceNV -> IO ())
-ptr_glVDPAUUnmapSurfacesNV = unsafePerformIO $ getCommand "glVDPAUUnmapSurfacesNV"
-
--- glVDPAUUnregisterSurfaceNV --------------------------------------------------
-
-glVDPAUUnregisterSurfaceNV
-  :: MonadIO m
-  => GLvdpauSurfaceNV -- ^ @surface@ of type @vdpauSurfaceNV@.
-  -> m ()
-glVDPAUUnregisterSurfaceNV v1 = liftIO $ dyn824 ptr_glVDPAUUnregisterSurfaceNV v1
-
-{-# NOINLINE ptr_glVDPAUUnregisterSurfaceNV #-}
-ptr_glVDPAUUnregisterSurfaceNV :: FunPtr (GLvdpauSurfaceNV -> IO ())
-ptr_glVDPAUUnregisterSurfaceNV = unsafePerformIO $ getCommand "glVDPAUUnregisterSurfaceNV"
-
--- glValidateProgram -----------------------------------------------------------
-
--- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glValidateProgram.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glValidateProgram.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glValidateProgram.xhtml OpenGL 4.x>.
-glValidateProgram
-  :: MonadIO m
-  => GLuint -- ^ @program@.
-  -> m ()
-glValidateProgram v1 = liftIO $ dyn2 ptr_glValidateProgram v1
-
-{-# NOINLINE ptr_glValidateProgram #-}
-ptr_glValidateProgram :: FunPtr (GLuint -> IO ())
-ptr_glValidateProgram = unsafePerformIO $ getCommand "glValidateProgram"
-
--- glValidateProgramARB --------------------------------------------------------
-
--- | This command is an alias for 'glValidateProgram'.
-glValidateProgramARB
-  :: MonadIO m
-  => GLhandleARB -- ^ @programObj@ of type @handleARB@.
-  -> m ()
-glValidateProgramARB v1 = liftIO $ dyn137 ptr_glValidateProgramARB v1
-
-{-# NOINLINE ptr_glValidateProgramARB #-}
-ptr_glValidateProgramARB :: FunPtr (GLhandleARB -> IO ())
-ptr_glValidateProgramARB = unsafePerformIO $ getCommand "glValidateProgramARB"
 
diff --git a/src/Graphics/GL/Functions/F28.hs b/src/Graphics/GL/Functions/F28.hs
--- a/src/Graphics/GL/Functions/F28.hs
+++ b/src/Graphics/GL/Functions/F28.hs
@@ -15,6 +15,14 @@
 --------------------------------------------------------------------------------
 
 module Graphics.GL.Functions.F28 (
+  glVDPAUMapSurfacesNV,
+  glVDPAURegisterOutputSurfaceNV,
+  glVDPAURegisterVideoSurfaceNV,
+  glVDPAUSurfaceAccessNV,
+  glVDPAUUnmapSurfacesNV,
+  glVDPAUUnregisterSurfaceNV,
+  glValidateProgram,
+  glValidateProgramARB,
   glValidateProgramPipeline,
   glValidateProgramPipelineEXT,
   glVariantArrayObjectATI,
@@ -106,15 +114,7 @@
   glVertexAttrib1dvARB,
   glVertexAttrib1dvNV,
   glVertexAttrib1f,
-  glVertexAttrib1fARB,
-  glVertexAttrib1fNV,
-  glVertexAttrib1fv,
-  glVertexAttrib1fvARB,
-  glVertexAttrib1fvNV,
-  glVertexAttrib1hNV,
-  glVertexAttrib1hvNV,
-  glVertexAttrib1s,
-  glVertexAttrib1sARB
+  glVertexAttrib1fARB
 ) where
 
 import Control.Monad.IO.Class ( MonadIO(..) )
@@ -123,6 +123,113 @@
 import Graphics.GL.Types
 import System.IO.Unsafe ( unsafePerformIO )
 
+-- glVDPAUMapSurfacesNV --------------------------------------------------------
+
+glVDPAUMapSurfacesNV
+  :: MonadIO m
+  => GLsizei -- ^ @numSurfaces@.
+  -> Ptr GLvdpauSurfaceNV -- ^ @surfaces@ pointing to @numSurfaces@ elements of type @vdpauSurfaceNV@.
+  -> m ()
+glVDPAUMapSurfacesNV v1 v2 = liftIO $ dyn821 ptr_glVDPAUMapSurfacesNV v1 v2
+
+{-# NOINLINE ptr_glVDPAUMapSurfacesNV #-}
+ptr_glVDPAUMapSurfacesNV :: FunPtr (GLsizei -> Ptr GLvdpauSurfaceNV -> IO ())
+ptr_glVDPAUMapSurfacesNV = unsafePerformIO $ getCommand "glVDPAUMapSurfacesNV"
+
+-- glVDPAURegisterOutputSurfaceNV ----------------------------------------------
+
+glVDPAURegisterOutputSurfaceNV
+  :: MonadIO m
+  => Ptr a -- ^ @vdpSurface@.
+  -> GLenum -- ^ @target@.
+  -> GLsizei -- ^ @numTextureNames@.
+  -> Ptr GLuint -- ^ @textureNames@ pointing to @numTextureNames@ elements of type @GLuint@.
+  -> m GLvdpauSurfaceNV -- ^ of type @vdpauSurfaceNV@.
+glVDPAURegisterOutputSurfaceNV v1 v2 v3 v4 = liftIO $ dyn822 ptr_glVDPAURegisterOutputSurfaceNV v1 v2 v3 v4
+
+{-# NOINLINE ptr_glVDPAURegisterOutputSurfaceNV #-}
+ptr_glVDPAURegisterOutputSurfaceNV :: FunPtr (Ptr a -> GLenum -> GLsizei -> Ptr GLuint -> IO GLvdpauSurfaceNV)
+ptr_glVDPAURegisterOutputSurfaceNV = unsafePerformIO $ getCommand "glVDPAURegisterOutputSurfaceNV"
+
+-- glVDPAURegisterVideoSurfaceNV -----------------------------------------------
+
+glVDPAURegisterVideoSurfaceNV
+  :: MonadIO m
+  => Ptr a -- ^ @vdpSurface@.
+  -> GLenum -- ^ @target@.
+  -> GLsizei -- ^ @numTextureNames@.
+  -> Ptr GLuint -- ^ @textureNames@ pointing to @numTextureNames@ elements of type @GLuint@.
+  -> m GLvdpauSurfaceNV -- ^ of type @vdpauSurfaceNV@.
+glVDPAURegisterVideoSurfaceNV v1 v2 v3 v4 = liftIO $ dyn822 ptr_glVDPAURegisterVideoSurfaceNV v1 v2 v3 v4
+
+{-# NOINLINE ptr_glVDPAURegisterVideoSurfaceNV #-}
+ptr_glVDPAURegisterVideoSurfaceNV :: FunPtr (Ptr a -> GLenum -> GLsizei -> Ptr GLuint -> IO GLvdpauSurfaceNV)
+ptr_glVDPAURegisterVideoSurfaceNV = unsafePerformIO $ getCommand "glVDPAURegisterVideoSurfaceNV"
+
+-- glVDPAUSurfaceAccessNV ------------------------------------------------------
+
+glVDPAUSurfaceAccessNV
+  :: MonadIO m
+  => GLvdpauSurfaceNV -- ^ @surface@ of type @vdpauSurfaceNV@.
+  -> GLenum -- ^ @access@.
+  -> m ()
+glVDPAUSurfaceAccessNV v1 v2 = liftIO $ dyn823 ptr_glVDPAUSurfaceAccessNV v1 v2
+
+{-# NOINLINE ptr_glVDPAUSurfaceAccessNV #-}
+ptr_glVDPAUSurfaceAccessNV :: FunPtr (GLvdpauSurfaceNV -> GLenum -> IO ())
+ptr_glVDPAUSurfaceAccessNV = unsafePerformIO $ getCommand "glVDPAUSurfaceAccessNV"
+
+-- glVDPAUUnmapSurfacesNV ------------------------------------------------------
+
+glVDPAUUnmapSurfacesNV
+  :: MonadIO m
+  => GLsizei -- ^ @numSurface@.
+  -> Ptr GLvdpauSurfaceNV -- ^ @surfaces@ pointing to @numSurface@ elements of type @vdpauSurfaceNV@.
+  -> m ()
+glVDPAUUnmapSurfacesNV v1 v2 = liftIO $ dyn821 ptr_glVDPAUUnmapSurfacesNV v1 v2
+
+{-# NOINLINE ptr_glVDPAUUnmapSurfacesNV #-}
+ptr_glVDPAUUnmapSurfacesNV :: FunPtr (GLsizei -> Ptr GLvdpauSurfaceNV -> IO ())
+ptr_glVDPAUUnmapSurfacesNV = unsafePerformIO $ getCommand "glVDPAUUnmapSurfacesNV"
+
+-- glVDPAUUnregisterSurfaceNV --------------------------------------------------
+
+glVDPAUUnregisterSurfaceNV
+  :: MonadIO m
+  => GLvdpauSurfaceNV -- ^ @surface@ of type @vdpauSurfaceNV@.
+  -> m ()
+glVDPAUUnregisterSurfaceNV v1 = liftIO $ dyn824 ptr_glVDPAUUnregisterSurfaceNV v1
+
+{-# NOINLINE ptr_glVDPAUUnregisterSurfaceNV #-}
+ptr_glVDPAUUnregisterSurfaceNV :: FunPtr (GLvdpauSurfaceNV -> IO ())
+ptr_glVDPAUUnregisterSurfaceNV = unsafePerformIO $ getCommand "glVDPAUUnregisterSurfaceNV"
+
+-- glValidateProgram -----------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glValidateProgram.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glValidateProgram.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glValidateProgram.xhtml OpenGL 4.x>.
+glValidateProgram
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> m ()
+glValidateProgram v1 = liftIO $ dyn2 ptr_glValidateProgram v1
+
+{-# NOINLINE ptr_glValidateProgram #-}
+ptr_glValidateProgram :: FunPtr (GLuint -> IO ())
+ptr_glValidateProgram = unsafePerformIO $ getCommand "glValidateProgram"
+
+-- glValidateProgramARB --------------------------------------------------------
+
+-- | This command is an alias for 'glValidateProgram'.
+glValidateProgramARB
+  :: MonadIO m
+  => GLhandleARB -- ^ @programObj@ of type @handleARB@.
+  -> m ()
+glValidateProgramARB v1 = liftIO $ dyn137 ptr_glValidateProgramARB v1
+
+{-# NOINLINE ptr_glValidateProgramARB #-}
+ptr_glValidateProgramARB :: FunPtr (GLhandleARB -> IO ())
+ptr_glValidateProgramARB = unsafePerformIO $ getCommand "glValidateProgramARB"
+
 -- glValidateProgramPipeline ---------------------------------------------------
 
 -- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glValidateProgramPipeline.xhtml OpenGL 4.x>.
@@ -1445,115 +1552,4 @@
 {-# NOINLINE ptr_glVertexAttrib1fARB #-}
 ptr_glVertexAttrib1fARB :: FunPtr (GLuint -> GLfloat -> IO ())
 ptr_glVertexAttrib1fARB = unsafePerformIO $ getCommand "glVertexAttrib1fARB"
-
--- glVertexAttrib1fNV ----------------------------------------------------------
-
--- | The vector equivalent of this command is 'glVertexAttrib1fvNV'. This command is an alias for 'glVertexAttrib1f'.
-glVertexAttrib1fNV
-  :: MonadIO m
-  => GLuint -- ^ @index@.
-  -> GLfloat -- ^ @x@.
-  -> m ()
-glVertexAttrib1fNV v1 v2 = liftIO $ dyn842 ptr_glVertexAttrib1fNV v1 v2
-
-{-# NOINLINE ptr_glVertexAttrib1fNV #-}
-ptr_glVertexAttrib1fNV :: FunPtr (GLuint -> GLfloat -> IO ())
-ptr_glVertexAttrib1fNV = unsafePerformIO $ getCommand "glVertexAttrib1fNV"
-
--- glVertexAttrib1fv -----------------------------------------------------------
-
--- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glVertexAttrib.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glVertexAttrib.xhtml OpenGL 4.x>.
-glVertexAttrib1fv
-  :: MonadIO m
-  => GLuint -- ^ @index@.
-  -> Ptr GLfloat -- ^ @v@ pointing to @1@ element of type @GLfloat@.
-  -> m ()
-glVertexAttrib1fv v1 v2 = liftIO $ dyn377 ptr_glVertexAttrib1fv v1 v2
-
-{-# NOINLINE ptr_glVertexAttrib1fv #-}
-ptr_glVertexAttrib1fv :: FunPtr (GLuint -> Ptr GLfloat -> IO ())
-ptr_glVertexAttrib1fv = unsafePerformIO $ getCommand "glVertexAttrib1fv"
-
--- glVertexAttrib1fvARB --------------------------------------------------------
-
--- | This command is an alias for 'glVertexAttrib1fv'.
-glVertexAttrib1fvARB
-  :: MonadIO m
-  => GLuint -- ^ @index@.
-  -> Ptr GLfloat -- ^ @v@ pointing to @1@ element of type @GLfloat@.
-  -> m ()
-glVertexAttrib1fvARB v1 v2 = liftIO $ dyn377 ptr_glVertexAttrib1fvARB v1 v2
-
-{-# NOINLINE ptr_glVertexAttrib1fvARB #-}
-ptr_glVertexAttrib1fvARB :: FunPtr (GLuint -> Ptr GLfloat -> IO ())
-ptr_glVertexAttrib1fvARB = unsafePerformIO $ getCommand "glVertexAttrib1fvARB"
-
--- glVertexAttrib1fvNV ---------------------------------------------------------
-
--- | This command is an alias for 'glVertexAttrib1fv'.
-glVertexAttrib1fvNV
-  :: MonadIO m
-  => GLuint -- ^ @index@.
-  -> Ptr GLfloat -- ^ @v@ pointing to @1@ element of type @GLfloat@.
-  -> m ()
-glVertexAttrib1fvNV v1 v2 = liftIO $ dyn377 ptr_glVertexAttrib1fvNV v1 v2
-
-{-# NOINLINE ptr_glVertexAttrib1fvNV #-}
-ptr_glVertexAttrib1fvNV :: FunPtr (GLuint -> Ptr GLfloat -> IO ())
-ptr_glVertexAttrib1fvNV = unsafePerformIO $ getCommand "glVertexAttrib1fvNV"
-
--- glVertexAttrib1hNV ----------------------------------------------------------
-
--- | The vector equivalent of this command is 'glVertexAttrib1hvNV'.
-glVertexAttrib1hNV
-  :: MonadIO m
-  => GLuint -- ^ @index@.
-  -> GLhalfNV -- ^ @x@ of type @Half16NV@.
-  -> m ()
-glVertexAttrib1hNV v1 v2 = liftIO $ dyn843 ptr_glVertexAttrib1hNV v1 v2
-
-{-# NOINLINE ptr_glVertexAttrib1hNV #-}
-ptr_glVertexAttrib1hNV :: FunPtr (GLuint -> GLhalfNV -> IO ())
-ptr_glVertexAttrib1hNV = unsafePerformIO $ getCommand "glVertexAttrib1hNV"
-
--- glVertexAttrib1hvNV ---------------------------------------------------------
-
-glVertexAttrib1hvNV
-  :: MonadIO m
-  => GLuint -- ^ @index@.
-  -> Ptr GLhalfNV -- ^ @v@ pointing to @1@ element of type @Half16NV@.
-  -> m ()
-glVertexAttrib1hvNV v1 v2 = liftIO $ dyn844 ptr_glVertexAttrib1hvNV v1 v2
-
-{-# NOINLINE ptr_glVertexAttrib1hvNV #-}
-ptr_glVertexAttrib1hvNV :: FunPtr (GLuint -> Ptr GLhalfNV -> IO ())
-ptr_glVertexAttrib1hvNV = unsafePerformIO $ getCommand "glVertexAttrib1hvNV"
-
--- glVertexAttrib1s ------------------------------------------------------------
-
--- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glVertexAttrib.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glVertexAttrib.xhtml OpenGL 4.x>. The vector equivalent of this command is 'glVertexAttrib1sv'.
-glVertexAttrib1s
-  :: MonadIO m
-  => GLuint -- ^ @index@.
-  -> GLshort -- ^ @x@.
-  -> m ()
-glVertexAttrib1s v1 v2 = liftIO $ dyn845 ptr_glVertexAttrib1s v1 v2
-
-{-# NOINLINE ptr_glVertexAttrib1s #-}
-ptr_glVertexAttrib1s :: FunPtr (GLuint -> GLshort -> IO ())
-ptr_glVertexAttrib1s = unsafePerformIO $ getCommand "glVertexAttrib1s"
-
--- glVertexAttrib1sARB ---------------------------------------------------------
-
--- | The vector equivalent of this command is 'glVertexAttrib1svARB'. This command is an alias for 'glVertexAttrib1s'.
-glVertexAttrib1sARB
-  :: MonadIO m
-  => GLuint -- ^ @index@.
-  -> GLshort -- ^ @x@.
-  -> m ()
-glVertexAttrib1sARB v1 v2 = liftIO $ dyn845 ptr_glVertexAttrib1sARB v1 v2
-
-{-# NOINLINE ptr_glVertexAttrib1sARB #-}
-ptr_glVertexAttrib1sARB :: FunPtr (GLuint -> GLshort -> IO ())
-ptr_glVertexAttrib1sARB = unsafePerformIO $ getCommand "glVertexAttrib1sARB"
 
diff --git a/src/Graphics/GL/Functions/F29.hs b/src/Graphics/GL/Functions/F29.hs
--- a/src/Graphics/GL/Functions/F29.hs
+++ b/src/Graphics/GL/Functions/F29.hs
@@ -15,6 +15,14 @@
 --------------------------------------------------------------------------------
 
 module Graphics.GL.Functions.F29 (
+  glVertexAttrib1fNV,
+  glVertexAttrib1fv,
+  glVertexAttrib1fvARB,
+  glVertexAttrib1fvNV,
+  glVertexAttrib1hNV,
+  glVertexAttrib1hvNV,
+  glVertexAttrib1s,
+  glVertexAttrib1sARB,
   glVertexAttrib1sNV,
   glVertexAttrib1sv,
   glVertexAttrib1svARB,
@@ -106,15 +114,7 @@
   glVertexAttrib4usv,
   glVertexAttrib4usvARB,
   glVertexAttribArrayObjectATI,
-  glVertexAttribBinding,
-  glVertexAttribDivisor,
-  glVertexAttribDivisorANGLE,
-  glVertexAttribDivisorARB,
-  glVertexAttribDivisorEXT,
-  glVertexAttribDivisorNV,
-  glVertexAttribFormat,
-  glVertexAttribFormatNV,
-  glVertexAttribI1i
+  glVertexAttribBinding
 ) where
 
 import Control.Monad.IO.Class ( MonadIO(..) )
@@ -123,6 +123,117 @@
 import Graphics.GL.Types
 import System.IO.Unsafe ( unsafePerformIO )
 
+-- glVertexAttrib1fNV ----------------------------------------------------------
+
+-- | The vector equivalent of this command is 'glVertexAttrib1fvNV'. This command is an alias for 'glVertexAttrib1f'.
+glVertexAttrib1fNV
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLfloat -- ^ @x@.
+  -> m ()
+glVertexAttrib1fNV v1 v2 = liftIO $ dyn842 ptr_glVertexAttrib1fNV v1 v2
+
+{-# NOINLINE ptr_glVertexAttrib1fNV #-}
+ptr_glVertexAttrib1fNV :: FunPtr (GLuint -> GLfloat -> IO ())
+ptr_glVertexAttrib1fNV = unsafePerformIO $ getCommand "glVertexAttrib1fNV"
+
+-- glVertexAttrib1fv -----------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glVertexAttrib.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glVertexAttrib.xhtml OpenGL 4.x>.
+glVertexAttrib1fv
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> Ptr GLfloat -- ^ @v@ pointing to @1@ element of type @GLfloat@.
+  -> m ()
+glVertexAttrib1fv v1 v2 = liftIO $ dyn377 ptr_glVertexAttrib1fv v1 v2
+
+{-# NOINLINE ptr_glVertexAttrib1fv #-}
+ptr_glVertexAttrib1fv :: FunPtr (GLuint -> Ptr GLfloat -> IO ())
+ptr_glVertexAttrib1fv = unsafePerformIO $ getCommand "glVertexAttrib1fv"
+
+-- glVertexAttrib1fvARB --------------------------------------------------------
+
+-- | This command is an alias for 'glVertexAttrib1fv'.
+glVertexAttrib1fvARB
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> Ptr GLfloat -- ^ @v@ pointing to @1@ element of type @GLfloat@.
+  -> m ()
+glVertexAttrib1fvARB v1 v2 = liftIO $ dyn377 ptr_glVertexAttrib1fvARB v1 v2
+
+{-# NOINLINE ptr_glVertexAttrib1fvARB #-}
+ptr_glVertexAttrib1fvARB :: FunPtr (GLuint -> Ptr GLfloat -> IO ())
+ptr_glVertexAttrib1fvARB = unsafePerformIO $ getCommand "glVertexAttrib1fvARB"
+
+-- glVertexAttrib1fvNV ---------------------------------------------------------
+
+-- | This command is an alias for 'glVertexAttrib1fv'.
+glVertexAttrib1fvNV
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> Ptr GLfloat -- ^ @v@ pointing to @1@ element of type @GLfloat@.
+  -> m ()
+glVertexAttrib1fvNV v1 v2 = liftIO $ dyn377 ptr_glVertexAttrib1fvNV v1 v2
+
+{-# NOINLINE ptr_glVertexAttrib1fvNV #-}
+ptr_glVertexAttrib1fvNV :: FunPtr (GLuint -> Ptr GLfloat -> IO ())
+ptr_glVertexAttrib1fvNV = unsafePerformIO $ getCommand "glVertexAttrib1fvNV"
+
+-- glVertexAttrib1hNV ----------------------------------------------------------
+
+-- | The vector equivalent of this command is 'glVertexAttrib1hvNV'.
+glVertexAttrib1hNV
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLhalfNV -- ^ @x@ of type @Half16NV@.
+  -> m ()
+glVertexAttrib1hNV v1 v2 = liftIO $ dyn843 ptr_glVertexAttrib1hNV v1 v2
+
+{-# NOINLINE ptr_glVertexAttrib1hNV #-}
+ptr_glVertexAttrib1hNV :: FunPtr (GLuint -> GLhalfNV -> IO ())
+ptr_glVertexAttrib1hNV = unsafePerformIO $ getCommand "glVertexAttrib1hNV"
+
+-- glVertexAttrib1hvNV ---------------------------------------------------------
+
+glVertexAttrib1hvNV
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> Ptr GLhalfNV -- ^ @v@ pointing to @1@ element of type @Half16NV@.
+  -> m ()
+glVertexAttrib1hvNV v1 v2 = liftIO $ dyn844 ptr_glVertexAttrib1hvNV v1 v2
+
+{-# NOINLINE ptr_glVertexAttrib1hvNV #-}
+ptr_glVertexAttrib1hvNV :: FunPtr (GLuint -> Ptr GLhalfNV -> IO ())
+ptr_glVertexAttrib1hvNV = unsafePerformIO $ getCommand "glVertexAttrib1hvNV"
+
+-- glVertexAttrib1s ------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glVertexAttrib.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glVertexAttrib.xhtml OpenGL 4.x>. The vector equivalent of this command is 'glVertexAttrib1sv'.
+glVertexAttrib1s
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLshort -- ^ @x@.
+  -> m ()
+glVertexAttrib1s v1 v2 = liftIO $ dyn845 ptr_glVertexAttrib1s v1 v2
+
+{-# NOINLINE ptr_glVertexAttrib1s #-}
+ptr_glVertexAttrib1s :: FunPtr (GLuint -> GLshort -> IO ())
+ptr_glVertexAttrib1s = unsafePerformIO $ getCommand "glVertexAttrib1s"
+
+-- glVertexAttrib1sARB ---------------------------------------------------------
+
+-- | The vector equivalent of this command is 'glVertexAttrib1svARB'. This command is an alias for 'glVertexAttrib1s'.
+glVertexAttrib1sARB
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLshort -- ^ @x@.
+  -> m ()
+glVertexAttrib1sARB v1 v2 = liftIO $ dyn845 ptr_glVertexAttrib1sARB v1 v2
+
+{-# NOINLINE ptr_glVertexAttrib1sARB #-}
+ptr_glVertexAttrib1sARB :: FunPtr (GLuint -> GLshort -> IO ())
+ptr_glVertexAttrib1sARB = unsafePerformIO $ getCommand "glVertexAttrib1sARB"
+
 -- glVertexAttrib1sNV ----------------------------------------------------------
 
 -- | The vector equivalent of this command is 'glVertexAttrib1svNV'. This command is an alias for 'glVertexAttrib1s'.
@@ -1480,121 +1591,4 @@
 {-# NOINLINE ptr_glVertexAttribBinding #-}
 ptr_glVertexAttribBinding :: FunPtr (GLuint -> GLuint -> IO ())
 ptr_glVertexAttribBinding = unsafePerformIO $ getCommand "glVertexAttribBinding"
-
--- glVertexAttribDivisor -------------------------------------------------------
-
--- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttribDivisor.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glVertexAttribDivisor.xhtml OpenGL 4.x>.
-glVertexAttribDivisor
-  :: MonadIO m
-  => GLuint -- ^ @index@.
-  -> GLuint -- ^ @divisor@.
-  -> m ()
-glVertexAttribDivisor v1 v2 = liftIO $ dyn3 ptr_glVertexAttribDivisor v1 v2
-
-{-# NOINLINE ptr_glVertexAttribDivisor #-}
-ptr_glVertexAttribDivisor :: FunPtr (GLuint -> GLuint -> IO ())
-ptr_glVertexAttribDivisor = unsafePerformIO $ getCommand "glVertexAttribDivisor"
-
--- glVertexAttribDivisorANGLE --------------------------------------------------
-
--- | This command is an alias for 'glVertexAttribDivisor'.
-glVertexAttribDivisorANGLE
-  :: MonadIO m
-  => GLuint -- ^ @index@.
-  -> GLuint -- ^ @divisor@.
-  -> m ()
-glVertexAttribDivisorANGLE v1 v2 = liftIO $ dyn3 ptr_glVertexAttribDivisorANGLE v1 v2
-
-{-# NOINLINE ptr_glVertexAttribDivisorANGLE #-}
-ptr_glVertexAttribDivisorANGLE :: FunPtr (GLuint -> GLuint -> IO ())
-ptr_glVertexAttribDivisorANGLE = unsafePerformIO $ getCommand "glVertexAttribDivisorANGLE"
-
--- glVertexAttribDivisorARB ----------------------------------------------------
-
--- | This command is an alias for 'glVertexAttribDivisor'.
-glVertexAttribDivisorARB
-  :: MonadIO m
-  => GLuint -- ^ @index@.
-  -> GLuint -- ^ @divisor@.
-  -> m ()
-glVertexAttribDivisorARB v1 v2 = liftIO $ dyn3 ptr_glVertexAttribDivisorARB v1 v2
-
-{-# NOINLINE ptr_glVertexAttribDivisorARB #-}
-ptr_glVertexAttribDivisorARB :: FunPtr (GLuint -> GLuint -> IO ())
-ptr_glVertexAttribDivisorARB = unsafePerformIO $ getCommand "glVertexAttribDivisorARB"
-
--- glVertexAttribDivisorEXT ----------------------------------------------------
-
--- | This command is an alias for 'glVertexAttribDivisor'.
-glVertexAttribDivisorEXT
-  :: MonadIO m
-  => GLuint -- ^ @index@.
-  -> GLuint -- ^ @divisor@.
-  -> m ()
-glVertexAttribDivisorEXT v1 v2 = liftIO $ dyn3 ptr_glVertexAttribDivisorEXT v1 v2
-
-{-# NOINLINE ptr_glVertexAttribDivisorEXT #-}
-ptr_glVertexAttribDivisorEXT :: FunPtr (GLuint -> GLuint -> IO ())
-ptr_glVertexAttribDivisorEXT = unsafePerformIO $ getCommand "glVertexAttribDivisorEXT"
-
--- glVertexAttribDivisorNV -----------------------------------------------------
-
--- | This command is an alias for 'glVertexAttribDivisor'.
-glVertexAttribDivisorNV
-  :: MonadIO m
-  => GLuint -- ^ @index@.
-  -> GLuint -- ^ @divisor@.
-  -> m ()
-glVertexAttribDivisorNV v1 v2 = liftIO $ dyn3 ptr_glVertexAttribDivisorNV v1 v2
-
-{-# NOINLINE ptr_glVertexAttribDivisorNV #-}
-ptr_glVertexAttribDivisorNV :: FunPtr (GLuint -> GLuint -> IO ())
-ptr_glVertexAttribDivisorNV = unsafePerformIO $ getCommand "glVertexAttribDivisorNV"
-
--- glVertexAttribFormat --------------------------------------------------------
-
--- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glVertexAttribFormat.xhtml OpenGL 4.x>.
-glVertexAttribFormat
-  :: MonadIO m
-  => GLuint -- ^ @attribindex@.
-  -> GLint -- ^ @size@.
-  -> GLenum -- ^ @type@.
-  -> GLboolean -- ^ @normalized@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
-  -> GLuint -- ^ @relativeoffset@.
-  -> m ()
-glVertexAttribFormat v1 v2 v3 v4 v5 = liftIO $ dyn857 ptr_glVertexAttribFormat v1 v2 v3 v4 v5
-
-{-# NOINLINE ptr_glVertexAttribFormat #-}
-ptr_glVertexAttribFormat :: FunPtr (GLuint -> GLint -> GLenum -> GLboolean -> GLuint -> IO ())
-ptr_glVertexAttribFormat = unsafePerformIO $ getCommand "glVertexAttribFormat"
-
--- glVertexAttribFormatNV ------------------------------------------------------
-
-glVertexAttribFormatNV
-  :: MonadIO m
-  => GLuint -- ^ @index@.
-  -> GLint -- ^ @size@.
-  -> GLenum -- ^ @type@.
-  -> GLboolean -- ^ @normalized@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
-  -> GLsizei -- ^ @stride@.
-  -> m ()
-glVertexAttribFormatNV v1 v2 v3 v4 v5 = liftIO $ dyn858 ptr_glVertexAttribFormatNV v1 v2 v3 v4 v5
-
-{-# NOINLINE ptr_glVertexAttribFormatNV #-}
-ptr_glVertexAttribFormatNV :: FunPtr (GLuint -> GLint -> GLenum -> GLboolean -> GLsizei -> IO ())
-ptr_glVertexAttribFormatNV = unsafePerformIO $ getCommand "glVertexAttribFormatNV"
-
--- glVertexAttribI1i -----------------------------------------------------------
-
--- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glVertexAttrib.xhtml OpenGL 4.x>. The vector equivalent of this command is 'glVertexAttribI1iv'.
-glVertexAttribI1i
-  :: MonadIO m
-  => GLuint -- ^ @index@.
-  -> GLint -- ^ @x@.
-  -> m ()
-glVertexAttribI1i v1 v2 = liftIO $ dyn474 ptr_glVertexAttribI1i v1 v2
-
-{-# NOINLINE ptr_glVertexAttribI1i #-}
-ptr_glVertexAttribI1i :: FunPtr (GLuint -> GLint -> IO ())
-ptr_glVertexAttribI1i = unsafePerformIO $ getCommand "glVertexAttribI1i"
 
diff --git a/src/Graphics/GL/Functions/F30.hs b/src/Graphics/GL/Functions/F30.hs
--- a/src/Graphics/GL/Functions/F30.hs
+++ b/src/Graphics/GL/Functions/F30.hs
@@ -15,6 +15,14 @@
 --------------------------------------------------------------------------------
 
 module Graphics.GL.Functions.F30 (
+  glVertexAttribDivisor,
+  glVertexAttribDivisorANGLE,
+  glVertexAttribDivisorARB,
+  glVertexAttribDivisorEXT,
+  glVertexAttribDivisorNV,
+  glVertexAttribFormat,
+  glVertexAttribFormatNV,
+  glVertexAttribI1i,
   glVertexAttribI1iEXT,
   glVertexAttribI1iv,
   glVertexAttribI1ivEXT,
@@ -106,15 +114,7 @@
   glVertexAttribP4uiv,
   glVertexAttribParameteriAMD,
   glVertexAttribPointer,
-  glVertexAttribPointerARB,
-  glVertexAttribPointerNV,
-  glVertexAttribs1dvNV,
-  glVertexAttribs1fvNV,
-  glVertexAttribs1hvNV,
-  glVertexAttribs1svNV,
-  glVertexAttribs2dvNV,
-  glVertexAttribs2fvNV,
-  glVertexAttribs2hvNV
+  glVertexAttribPointerARB
 ) where
 
 import Control.Monad.IO.Class ( MonadIO(..) )
@@ -123,6 +123,123 @@
 import Graphics.GL.Types
 import System.IO.Unsafe ( unsafePerformIO )
 
+-- glVertexAttribDivisor -------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttribDivisor.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glVertexAttribDivisor.xhtml OpenGL 4.x>.
+glVertexAttribDivisor
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLuint -- ^ @divisor@.
+  -> m ()
+glVertexAttribDivisor v1 v2 = liftIO $ dyn3 ptr_glVertexAttribDivisor v1 v2
+
+{-# NOINLINE ptr_glVertexAttribDivisor #-}
+ptr_glVertexAttribDivisor :: FunPtr (GLuint -> GLuint -> IO ())
+ptr_glVertexAttribDivisor = unsafePerformIO $ getCommand "glVertexAttribDivisor"
+
+-- glVertexAttribDivisorANGLE --------------------------------------------------
+
+-- | This command is an alias for 'glVertexAttribDivisor'.
+glVertexAttribDivisorANGLE
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLuint -- ^ @divisor@.
+  -> m ()
+glVertexAttribDivisorANGLE v1 v2 = liftIO $ dyn3 ptr_glVertexAttribDivisorANGLE v1 v2
+
+{-# NOINLINE ptr_glVertexAttribDivisorANGLE #-}
+ptr_glVertexAttribDivisorANGLE :: FunPtr (GLuint -> GLuint -> IO ())
+ptr_glVertexAttribDivisorANGLE = unsafePerformIO $ getCommand "glVertexAttribDivisorANGLE"
+
+-- glVertexAttribDivisorARB ----------------------------------------------------
+
+-- | This command is an alias for 'glVertexAttribDivisor'.
+glVertexAttribDivisorARB
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLuint -- ^ @divisor@.
+  -> m ()
+glVertexAttribDivisorARB v1 v2 = liftIO $ dyn3 ptr_glVertexAttribDivisorARB v1 v2
+
+{-# NOINLINE ptr_glVertexAttribDivisorARB #-}
+ptr_glVertexAttribDivisorARB :: FunPtr (GLuint -> GLuint -> IO ())
+ptr_glVertexAttribDivisorARB = unsafePerformIO $ getCommand "glVertexAttribDivisorARB"
+
+-- glVertexAttribDivisorEXT ----------------------------------------------------
+
+-- | This command is an alias for 'glVertexAttribDivisor'.
+glVertexAttribDivisorEXT
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLuint -- ^ @divisor@.
+  -> m ()
+glVertexAttribDivisorEXT v1 v2 = liftIO $ dyn3 ptr_glVertexAttribDivisorEXT v1 v2
+
+{-# NOINLINE ptr_glVertexAttribDivisorEXT #-}
+ptr_glVertexAttribDivisorEXT :: FunPtr (GLuint -> GLuint -> IO ())
+ptr_glVertexAttribDivisorEXT = unsafePerformIO $ getCommand "glVertexAttribDivisorEXT"
+
+-- glVertexAttribDivisorNV -----------------------------------------------------
+
+-- | This command is an alias for 'glVertexAttribDivisor'.
+glVertexAttribDivisorNV
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLuint -- ^ @divisor@.
+  -> m ()
+glVertexAttribDivisorNV v1 v2 = liftIO $ dyn3 ptr_glVertexAttribDivisorNV v1 v2
+
+{-# NOINLINE ptr_glVertexAttribDivisorNV #-}
+ptr_glVertexAttribDivisorNV :: FunPtr (GLuint -> GLuint -> IO ())
+ptr_glVertexAttribDivisorNV = unsafePerformIO $ getCommand "glVertexAttribDivisorNV"
+
+-- glVertexAttribFormat --------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glVertexAttribFormat.xhtml OpenGL 4.x>.
+glVertexAttribFormat
+  :: MonadIO m
+  => GLuint -- ^ @attribindex@.
+  -> GLint -- ^ @size@.
+  -> GLenum -- ^ @type@.
+  -> GLboolean -- ^ @normalized@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> GLuint -- ^ @relativeoffset@.
+  -> m ()
+glVertexAttribFormat v1 v2 v3 v4 v5 = liftIO $ dyn857 ptr_glVertexAttribFormat v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glVertexAttribFormat #-}
+ptr_glVertexAttribFormat :: FunPtr (GLuint -> GLint -> GLenum -> GLboolean -> GLuint -> IO ())
+ptr_glVertexAttribFormat = unsafePerformIO $ getCommand "glVertexAttribFormat"
+
+-- glVertexAttribFormatNV ------------------------------------------------------
+
+glVertexAttribFormatNV
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLint -- ^ @size@.
+  -> GLenum -- ^ @type@.
+  -> GLboolean -- ^ @normalized@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> GLsizei -- ^ @stride@.
+  -> m ()
+glVertexAttribFormatNV v1 v2 v3 v4 v5 = liftIO $ dyn858 ptr_glVertexAttribFormatNV v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glVertexAttribFormatNV #-}
+ptr_glVertexAttribFormatNV :: FunPtr (GLuint -> GLint -> GLenum -> GLboolean -> GLsizei -> IO ())
+ptr_glVertexAttribFormatNV = unsafePerformIO $ getCommand "glVertexAttribFormatNV"
+
+-- glVertexAttribI1i -----------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glVertexAttrib.xhtml OpenGL 4.x>. The vector equivalent of this command is 'glVertexAttribI1iv'.
+glVertexAttribI1i
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLint -- ^ @x@.
+  -> m ()
+glVertexAttribI1i v1 v2 = liftIO $ dyn474 ptr_glVertexAttribI1i v1 v2
+
+{-# NOINLINE ptr_glVertexAttribI1i #-}
+ptr_glVertexAttribI1i :: FunPtr (GLuint -> GLint -> IO ())
+ptr_glVertexAttribI1i = unsafePerformIO $ getCommand "glVertexAttribI1i"
+
 -- glVertexAttribI1iEXT --------------------------------------------------------
 
 -- | The vector equivalent of this command is 'glVertexAttribI1ivEXT'. This command is an alias for 'glVertexAttribI1i'.
@@ -1478,118 +1595,4 @@
 {-# NOINLINE ptr_glVertexAttribPointerARB #-}
 ptr_glVertexAttribPointerARB :: FunPtr (GLuint -> GLint -> GLenum -> GLboolean -> GLsizei -> Ptr a -> IO ())
 ptr_glVertexAttribPointerARB = unsafePerformIO $ getCommand "glVertexAttribPointerARB"
-
--- glVertexAttribPointerNV -----------------------------------------------------
-
-glVertexAttribPointerNV
-  :: MonadIO m
-  => GLuint -- ^ @index@.
-  -> GLint -- ^ @fsize@.
-  -> GLenum -- ^ @type@ of type @VertexAttribEnumNV@.
-  -> GLsizei -- ^ @stride@.
-  -> Ptr a -- ^ @pointer@ pointing to @COMPSIZE(fsize,type,stride)@ elements of type @a@.
-  -> m ()
-glVertexAttribPointerNV v1 v2 v3 v4 v5 = liftIO $ dyn862 ptr_glVertexAttribPointerNV v1 v2 v3 v4 v5
-
-{-# NOINLINE ptr_glVertexAttribPointerNV #-}
-ptr_glVertexAttribPointerNV :: FunPtr (GLuint -> GLint -> GLenum -> GLsizei -> Ptr a -> IO ())
-ptr_glVertexAttribPointerNV = unsafePerformIO $ getCommand "glVertexAttribPointerNV"
-
--- glVertexAttribs1dvNV --------------------------------------------------------
-
-glVertexAttribs1dvNV
-  :: MonadIO m
-  => GLuint -- ^ @index@.
-  -> GLsizei -- ^ @count@.
-  -> Ptr GLdouble -- ^ @v@ pointing to @count@ elements of type @GLdouble@.
-  -> m ()
-glVertexAttribs1dvNV v1 v2 v3 = liftIO $ dyn219 ptr_glVertexAttribs1dvNV v1 v2 v3
-
-{-# NOINLINE ptr_glVertexAttribs1dvNV #-}
-ptr_glVertexAttribs1dvNV :: FunPtr (GLuint -> GLsizei -> Ptr GLdouble -> IO ())
-ptr_glVertexAttribs1dvNV = unsafePerformIO $ getCommand "glVertexAttribs1dvNV"
-
--- glVertexAttribs1fvNV --------------------------------------------------------
-
-glVertexAttribs1fvNV
-  :: MonadIO m
-  => GLuint -- ^ @index@.
-  -> GLsizei -- ^ @count@.
-  -> Ptr GLfloat -- ^ @v@ pointing to @count@ elements of type @GLfloat@.
-  -> m ()
-glVertexAttribs1fvNV v1 v2 v3 = liftIO $ dyn218 ptr_glVertexAttribs1fvNV v1 v2 v3
-
-{-# NOINLINE ptr_glVertexAttribs1fvNV #-}
-ptr_glVertexAttribs1fvNV :: FunPtr (GLuint -> GLsizei -> Ptr GLfloat -> IO ())
-ptr_glVertexAttribs1fvNV = unsafePerformIO $ getCommand "glVertexAttribs1fvNV"
-
--- glVertexAttribs1hvNV --------------------------------------------------------
-
-glVertexAttribs1hvNV
-  :: MonadIO m
-  => GLuint -- ^ @index@.
-  -> GLsizei -- ^ @n@.
-  -> Ptr GLhalfNV -- ^ @v@ pointing to @n@ elements of type @Half16NV@.
-  -> m ()
-glVertexAttribs1hvNV v1 v2 v3 = liftIO $ dyn876 ptr_glVertexAttribs1hvNV v1 v2 v3
-
-{-# NOINLINE ptr_glVertexAttribs1hvNV #-}
-ptr_glVertexAttribs1hvNV :: FunPtr (GLuint -> GLsizei -> Ptr GLhalfNV -> IO ())
-ptr_glVertexAttribs1hvNV = unsafePerformIO $ getCommand "glVertexAttribs1hvNV"
-
--- glVertexAttribs1svNV --------------------------------------------------------
-
-glVertexAttribs1svNV
-  :: MonadIO m
-  => GLuint -- ^ @index@.
-  -> GLsizei -- ^ @count@.
-  -> Ptr GLshort -- ^ @v@ pointing to @count@ elements of type @GLshort@.
-  -> m ()
-glVertexAttribs1svNV v1 v2 v3 = liftIO $ dyn877 ptr_glVertexAttribs1svNV v1 v2 v3
-
-{-# NOINLINE ptr_glVertexAttribs1svNV #-}
-ptr_glVertexAttribs1svNV :: FunPtr (GLuint -> GLsizei -> Ptr GLshort -> IO ())
-ptr_glVertexAttribs1svNV = unsafePerformIO $ getCommand "glVertexAttribs1svNV"
-
--- glVertexAttribs2dvNV --------------------------------------------------------
-
-glVertexAttribs2dvNV
-  :: MonadIO m
-  => GLuint -- ^ @index@.
-  -> GLsizei -- ^ @count@.
-  -> Ptr GLdouble -- ^ @v@ pointing to @count*2@ elements of type @GLdouble@.
-  -> m ()
-glVertexAttribs2dvNV v1 v2 v3 = liftIO $ dyn219 ptr_glVertexAttribs2dvNV v1 v2 v3
-
-{-# NOINLINE ptr_glVertexAttribs2dvNV #-}
-ptr_glVertexAttribs2dvNV :: FunPtr (GLuint -> GLsizei -> Ptr GLdouble -> IO ())
-ptr_glVertexAttribs2dvNV = unsafePerformIO $ getCommand "glVertexAttribs2dvNV"
-
--- glVertexAttribs2fvNV --------------------------------------------------------
-
-glVertexAttribs2fvNV
-  :: MonadIO m
-  => GLuint -- ^ @index@.
-  -> GLsizei -- ^ @count@.
-  -> Ptr GLfloat -- ^ @v@ pointing to @count*2@ elements of type @GLfloat@.
-  -> m ()
-glVertexAttribs2fvNV v1 v2 v3 = liftIO $ dyn218 ptr_glVertexAttribs2fvNV v1 v2 v3
-
-{-# NOINLINE ptr_glVertexAttribs2fvNV #-}
-ptr_glVertexAttribs2fvNV :: FunPtr (GLuint -> GLsizei -> Ptr GLfloat -> IO ())
-ptr_glVertexAttribs2fvNV = unsafePerformIO $ getCommand "glVertexAttribs2fvNV"
-
--- glVertexAttribs2hvNV --------------------------------------------------------
-
-glVertexAttribs2hvNV
-  :: MonadIO m
-  => GLuint -- ^ @index@.
-  -> GLsizei -- ^ @n@.
-  -> Ptr GLhalfNV -- ^ @v@ pointing to @n@ elements of type @Half16NV@.
-  -> m ()
-glVertexAttribs2hvNV v1 v2 v3 = liftIO $ dyn876 ptr_glVertexAttribs2hvNV v1 v2 v3
-
-{-# NOINLINE ptr_glVertexAttribs2hvNV #-}
-ptr_glVertexAttribs2hvNV :: FunPtr (GLuint -> GLsizei -> Ptr GLhalfNV -> IO ())
-ptr_glVertexAttribs2hvNV = unsafePerformIO $ getCommand "glVertexAttribs2hvNV"
 
diff --git a/src/Graphics/GL/Functions/F31.hs b/src/Graphics/GL/Functions/F31.hs
--- a/src/Graphics/GL/Functions/F31.hs
+++ b/src/Graphics/GL/Functions/F31.hs
@@ -15,6 +15,14 @@
 --------------------------------------------------------------------------------
 
 module Graphics.GL.Functions.F31 (
+  glVertexAttribPointerNV,
+  glVertexAttribs1dvNV,
+  glVertexAttribs1fvNV,
+  glVertexAttribs1hvNV,
+  glVertexAttribs1svNV,
+  glVertexAttribs2dvNV,
+  glVertexAttribs2fvNV,
+  glVertexAttribs2hvNV,
   glVertexAttribs2svNV,
   glVertexAttribs3dvNV,
   glVertexAttribs3fvNV,
@@ -106,15 +114,7 @@
   glWeightubvARB,
   glWeightuivARB,
   glWeightusvARB,
-  glWindowPos2d,
-  glWindowPos2dARB,
-  glWindowPos2dMESA,
-  glWindowPos2dv,
-  glWindowPos2dvARB,
-  glWindowPos2dvMESA,
-  glWindowPos2f,
-  glWindowPos2fARB,
-  glWindowPos2fMESA
+  glWindowPos2d
 ) where
 
 import Control.Monad.IO.Class ( MonadIO(..) )
@@ -123,6 +123,120 @@
 import Graphics.GL.Types
 import System.IO.Unsafe ( unsafePerformIO )
 
+-- glVertexAttribPointerNV -----------------------------------------------------
+
+glVertexAttribPointerNV
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLint -- ^ @fsize@.
+  -> GLenum -- ^ @type@ of type @VertexAttribEnumNV@.
+  -> GLsizei -- ^ @stride@.
+  -> Ptr a -- ^ @pointer@ pointing to @COMPSIZE(fsize,type,stride)@ elements of type @a@.
+  -> m ()
+glVertexAttribPointerNV v1 v2 v3 v4 v5 = liftIO $ dyn862 ptr_glVertexAttribPointerNV v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glVertexAttribPointerNV #-}
+ptr_glVertexAttribPointerNV :: FunPtr (GLuint -> GLint -> GLenum -> GLsizei -> Ptr a -> IO ())
+ptr_glVertexAttribPointerNV = unsafePerformIO $ getCommand "glVertexAttribPointerNV"
+
+-- glVertexAttribs1dvNV --------------------------------------------------------
+
+glVertexAttribs1dvNV
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLdouble -- ^ @v@ pointing to @count@ elements of type @GLdouble@.
+  -> m ()
+glVertexAttribs1dvNV v1 v2 v3 = liftIO $ dyn219 ptr_glVertexAttribs1dvNV v1 v2 v3
+
+{-# NOINLINE ptr_glVertexAttribs1dvNV #-}
+ptr_glVertexAttribs1dvNV :: FunPtr (GLuint -> GLsizei -> Ptr GLdouble -> IO ())
+ptr_glVertexAttribs1dvNV = unsafePerformIO $ getCommand "glVertexAttribs1dvNV"
+
+-- glVertexAttribs1fvNV --------------------------------------------------------
+
+glVertexAttribs1fvNV
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLfloat -- ^ @v@ pointing to @count@ elements of type @GLfloat@.
+  -> m ()
+glVertexAttribs1fvNV v1 v2 v3 = liftIO $ dyn218 ptr_glVertexAttribs1fvNV v1 v2 v3
+
+{-# NOINLINE ptr_glVertexAttribs1fvNV #-}
+ptr_glVertexAttribs1fvNV :: FunPtr (GLuint -> GLsizei -> Ptr GLfloat -> IO ())
+ptr_glVertexAttribs1fvNV = unsafePerformIO $ getCommand "glVertexAttribs1fvNV"
+
+-- glVertexAttribs1hvNV --------------------------------------------------------
+
+glVertexAttribs1hvNV
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLsizei -- ^ @n@.
+  -> Ptr GLhalfNV -- ^ @v@ pointing to @n@ elements of type @Half16NV@.
+  -> m ()
+glVertexAttribs1hvNV v1 v2 v3 = liftIO $ dyn876 ptr_glVertexAttribs1hvNV v1 v2 v3
+
+{-# NOINLINE ptr_glVertexAttribs1hvNV #-}
+ptr_glVertexAttribs1hvNV :: FunPtr (GLuint -> GLsizei -> Ptr GLhalfNV -> IO ())
+ptr_glVertexAttribs1hvNV = unsafePerformIO $ getCommand "glVertexAttribs1hvNV"
+
+-- glVertexAttribs1svNV --------------------------------------------------------
+
+glVertexAttribs1svNV
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLshort -- ^ @v@ pointing to @count@ elements of type @GLshort@.
+  -> m ()
+glVertexAttribs1svNV v1 v2 v3 = liftIO $ dyn877 ptr_glVertexAttribs1svNV v1 v2 v3
+
+{-# NOINLINE ptr_glVertexAttribs1svNV #-}
+ptr_glVertexAttribs1svNV :: FunPtr (GLuint -> GLsizei -> Ptr GLshort -> IO ())
+ptr_glVertexAttribs1svNV = unsafePerformIO $ getCommand "glVertexAttribs1svNV"
+
+-- glVertexAttribs2dvNV --------------------------------------------------------
+
+glVertexAttribs2dvNV
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLdouble -- ^ @v@ pointing to @count*2@ elements of type @GLdouble@.
+  -> m ()
+glVertexAttribs2dvNV v1 v2 v3 = liftIO $ dyn219 ptr_glVertexAttribs2dvNV v1 v2 v3
+
+{-# NOINLINE ptr_glVertexAttribs2dvNV #-}
+ptr_glVertexAttribs2dvNV :: FunPtr (GLuint -> GLsizei -> Ptr GLdouble -> IO ())
+ptr_glVertexAttribs2dvNV = unsafePerformIO $ getCommand "glVertexAttribs2dvNV"
+
+-- glVertexAttribs2fvNV --------------------------------------------------------
+
+glVertexAttribs2fvNV
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLfloat -- ^ @v@ pointing to @count*2@ elements of type @GLfloat@.
+  -> m ()
+glVertexAttribs2fvNV v1 v2 v3 = liftIO $ dyn218 ptr_glVertexAttribs2fvNV v1 v2 v3
+
+{-# NOINLINE ptr_glVertexAttribs2fvNV #-}
+ptr_glVertexAttribs2fvNV :: FunPtr (GLuint -> GLsizei -> Ptr GLfloat -> IO ())
+ptr_glVertexAttribs2fvNV = unsafePerformIO $ getCommand "glVertexAttribs2fvNV"
+
+-- glVertexAttribs2hvNV --------------------------------------------------------
+
+glVertexAttribs2hvNV
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLsizei -- ^ @n@.
+  -> Ptr GLhalfNV -- ^ @v@ pointing to @n@ elements of type @Half16NV@.
+  -> m ()
+glVertexAttribs2hvNV v1 v2 v3 = liftIO $ dyn876 ptr_glVertexAttribs2hvNV v1 v2 v3
+
+{-# NOINLINE ptr_glVertexAttribs2hvNV #-}
+ptr_glVertexAttribs2hvNV :: FunPtr (GLuint -> GLsizei -> Ptr GLhalfNV -> IO ())
+ptr_glVertexAttribs2hvNV = unsafePerformIO $ getCommand "glVertexAttribs2hvNV"
+
 -- glVertexAttribs2svNV --------------------------------------------------------
 
 glVertexAttribs2svNV
@@ -1409,113 +1523,4 @@
 {-# NOINLINE ptr_glWindowPos2d #-}
 ptr_glWindowPos2d :: FunPtr (GLdouble -> GLdouble -> IO ())
 ptr_glWindowPos2d = unsafePerformIO $ getCommand "glWindowPos2d"
-
--- glWindowPos2dARB ------------------------------------------------------------
-
--- | The vector equivalent of this command is 'glWindowPos2dvARB'. This command is an alias for 'glWindowPos2d'.
-glWindowPos2dARB
-  :: MonadIO m
-  => GLdouble -- ^ @x@ of type @CoordD@.
-  -> GLdouble -- ^ @y@ of type @CoordD@.
-  -> m ()
-glWindowPos2dARB v1 v2 = liftIO $ dyn217 ptr_glWindowPos2dARB v1 v2
-
-{-# NOINLINE ptr_glWindowPos2dARB #-}
-ptr_glWindowPos2dARB :: FunPtr (GLdouble -> GLdouble -> IO ())
-ptr_glWindowPos2dARB = unsafePerformIO $ getCommand "glWindowPos2dARB"
-
--- glWindowPos2dMESA -----------------------------------------------------------
-
--- | The vector equivalent of this command is 'glWindowPos2dvMESA'. This command is an alias for 'glWindowPos2d'.
-glWindowPos2dMESA
-  :: MonadIO m
-  => GLdouble -- ^ @x@ of type @CoordD@.
-  -> GLdouble -- ^ @y@ of type @CoordD@.
-  -> m ()
-glWindowPos2dMESA v1 v2 = liftIO $ dyn217 ptr_glWindowPos2dMESA v1 v2
-
-{-# NOINLINE ptr_glWindowPos2dMESA #-}
-ptr_glWindowPos2dMESA :: FunPtr (GLdouble -> GLdouble -> IO ())
-ptr_glWindowPos2dMESA = unsafePerformIO $ getCommand "glWindowPos2dMESA"
-
--- glWindowPos2dv --------------------------------------------------------------
-
--- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glWindowPos.xml OpenGL 2.x>.
-glWindowPos2dv
-  :: MonadIO m
-  => Ptr GLdouble -- ^ @v@ pointing to @2@ elements of type @CoordD@.
-  -> m ()
-glWindowPos2dv v1 = liftIO $ dyn39 ptr_glWindowPos2dv v1
-
-{-# NOINLINE ptr_glWindowPos2dv #-}
-ptr_glWindowPos2dv :: FunPtr (Ptr GLdouble -> IO ())
-ptr_glWindowPos2dv = unsafePerformIO $ getCommand "glWindowPos2dv"
-
--- glWindowPos2dvARB -----------------------------------------------------------
-
--- | This command is an alias for 'glWindowPos2dv'.
-glWindowPos2dvARB
-  :: MonadIO m
-  => Ptr GLdouble -- ^ @v@ pointing to @2@ elements of type @CoordD@.
-  -> m ()
-glWindowPos2dvARB v1 = liftIO $ dyn39 ptr_glWindowPos2dvARB v1
-
-{-# NOINLINE ptr_glWindowPos2dvARB #-}
-ptr_glWindowPos2dvARB :: FunPtr (Ptr GLdouble -> IO ())
-ptr_glWindowPos2dvARB = unsafePerformIO $ getCommand "glWindowPos2dvARB"
-
--- glWindowPos2dvMESA ----------------------------------------------------------
-
--- | This command is an alias for 'glWindowPos2dv'.
-glWindowPos2dvMESA
-  :: MonadIO m
-  => Ptr GLdouble -- ^ @v@ pointing to @2@ elements of type @CoordD@.
-  -> m ()
-glWindowPos2dvMESA v1 = liftIO $ dyn39 ptr_glWindowPos2dvMESA v1
-
-{-# NOINLINE ptr_glWindowPos2dvMESA #-}
-ptr_glWindowPos2dvMESA :: FunPtr (Ptr GLdouble -> IO ())
-ptr_glWindowPos2dvMESA = unsafePerformIO $ getCommand "glWindowPos2dvMESA"
-
--- glWindowPos2f ---------------------------------------------------------------
-
--- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glWindowPos.xml OpenGL 2.x>. The vector equivalent of this command is 'glWindowPos2fv'.
-glWindowPos2f
-  :: MonadIO m
-  => GLfloat -- ^ @x@ of type @CoordF@.
-  -> GLfloat -- ^ @y@ of type @CoordF@.
-  -> m ()
-glWindowPos2f v1 v2 = liftIO $ dyn222 ptr_glWindowPos2f v1 v2
-
-{-# NOINLINE ptr_glWindowPos2f #-}
-ptr_glWindowPos2f :: FunPtr (GLfloat -> GLfloat -> IO ())
-ptr_glWindowPos2f = unsafePerformIO $ getCommand "glWindowPos2f"
-
--- glWindowPos2fARB ------------------------------------------------------------
-
--- | The vector equivalent of this command is 'glWindowPos2fvARB'. This command is an alias for 'glWindowPos2f'.
-glWindowPos2fARB
-  :: MonadIO m
-  => GLfloat -- ^ @x@ of type @CoordF@.
-  -> GLfloat -- ^ @y@ of type @CoordF@.
-  -> m ()
-glWindowPos2fARB v1 v2 = liftIO $ dyn222 ptr_glWindowPos2fARB v1 v2
-
-{-# NOINLINE ptr_glWindowPos2fARB #-}
-ptr_glWindowPos2fARB :: FunPtr (GLfloat -> GLfloat -> IO ())
-ptr_glWindowPos2fARB = unsafePerformIO $ getCommand "glWindowPos2fARB"
-
--- glWindowPos2fMESA -----------------------------------------------------------
-
--- | The vector equivalent of this command is 'glWindowPos2fvMESA'. This command is an alias for 'glWindowPos2f'.
-glWindowPos2fMESA
-  :: MonadIO m
-  => GLfloat -- ^ @x@ of type @CoordF@.
-  -> GLfloat -- ^ @y@ of type @CoordF@.
-  -> m ()
-glWindowPos2fMESA v1 v2 = liftIO $ dyn222 ptr_glWindowPos2fMESA v1 v2
-
-{-# NOINLINE ptr_glWindowPos2fMESA #-}
-ptr_glWindowPos2fMESA :: FunPtr (GLfloat -> GLfloat -> IO ())
-ptr_glWindowPos2fMESA = unsafePerformIO $ getCommand "glWindowPos2fMESA"
 
diff --git a/src/Graphics/GL/Functions/F32.hs b/src/Graphics/GL/Functions/F32.hs
--- a/src/Graphics/GL/Functions/F32.hs
+++ b/src/Graphics/GL/Functions/F32.hs
@@ -15,6 +15,14 @@
 --------------------------------------------------------------------------------
 
 module Graphics.GL.Functions.F32 (
+  glWindowPos2dARB,
+  glWindowPos2dMESA,
+  glWindowPos2dv,
+  glWindowPos2dvARB,
+  glWindowPos2dvMESA,
+  glWindowPos2f,
+  glWindowPos2fARB,
+  glWindowPos2fMESA,
   glWindowPos2fv,
   glWindowPos2fvARB,
   glWindowPos2fvMESA,
@@ -71,6 +79,115 @@
 import Graphics.GL.Foreign
 import Graphics.GL.Types
 import System.IO.Unsafe ( unsafePerformIO )
+
+-- glWindowPos2dARB ------------------------------------------------------------
+
+-- | The vector equivalent of this command is 'glWindowPos2dvARB'. This command is an alias for 'glWindowPos2d'.
+glWindowPos2dARB
+  :: MonadIO m
+  => GLdouble -- ^ @x@ of type @CoordD@.
+  -> GLdouble -- ^ @y@ of type @CoordD@.
+  -> m ()
+glWindowPos2dARB v1 v2 = liftIO $ dyn217 ptr_glWindowPos2dARB v1 v2
+
+{-# NOINLINE ptr_glWindowPos2dARB #-}
+ptr_glWindowPos2dARB :: FunPtr (GLdouble -> GLdouble -> IO ())
+ptr_glWindowPos2dARB = unsafePerformIO $ getCommand "glWindowPos2dARB"
+
+-- glWindowPos2dMESA -----------------------------------------------------------
+
+-- | The vector equivalent of this command is 'glWindowPos2dvMESA'. This command is an alias for 'glWindowPos2d'.
+glWindowPos2dMESA
+  :: MonadIO m
+  => GLdouble -- ^ @x@ of type @CoordD@.
+  -> GLdouble -- ^ @y@ of type @CoordD@.
+  -> m ()
+glWindowPos2dMESA v1 v2 = liftIO $ dyn217 ptr_glWindowPos2dMESA v1 v2
+
+{-# NOINLINE ptr_glWindowPos2dMESA #-}
+ptr_glWindowPos2dMESA :: FunPtr (GLdouble -> GLdouble -> IO ())
+ptr_glWindowPos2dMESA = unsafePerformIO $ getCommand "glWindowPos2dMESA"
+
+-- glWindowPos2dv --------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glWindowPos.xml OpenGL 2.x>.
+glWindowPos2dv
+  :: MonadIO m
+  => Ptr GLdouble -- ^ @v@ pointing to @2@ elements of type @CoordD@.
+  -> m ()
+glWindowPos2dv v1 = liftIO $ dyn39 ptr_glWindowPos2dv v1
+
+{-# NOINLINE ptr_glWindowPos2dv #-}
+ptr_glWindowPos2dv :: FunPtr (Ptr GLdouble -> IO ())
+ptr_glWindowPos2dv = unsafePerformIO $ getCommand "glWindowPos2dv"
+
+-- glWindowPos2dvARB -----------------------------------------------------------
+
+-- | This command is an alias for 'glWindowPos2dv'.
+glWindowPos2dvARB
+  :: MonadIO m
+  => Ptr GLdouble -- ^ @v@ pointing to @2@ elements of type @CoordD@.
+  -> m ()
+glWindowPos2dvARB v1 = liftIO $ dyn39 ptr_glWindowPos2dvARB v1
+
+{-# NOINLINE ptr_glWindowPos2dvARB #-}
+ptr_glWindowPos2dvARB :: FunPtr (Ptr GLdouble -> IO ())
+ptr_glWindowPos2dvARB = unsafePerformIO $ getCommand "glWindowPos2dvARB"
+
+-- glWindowPos2dvMESA ----------------------------------------------------------
+
+-- | This command is an alias for 'glWindowPos2dv'.
+glWindowPos2dvMESA
+  :: MonadIO m
+  => Ptr GLdouble -- ^ @v@ pointing to @2@ elements of type @CoordD@.
+  -> m ()
+glWindowPos2dvMESA v1 = liftIO $ dyn39 ptr_glWindowPos2dvMESA v1
+
+{-# NOINLINE ptr_glWindowPos2dvMESA #-}
+ptr_glWindowPos2dvMESA :: FunPtr (Ptr GLdouble -> IO ())
+ptr_glWindowPos2dvMESA = unsafePerformIO $ getCommand "glWindowPos2dvMESA"
+
+-- glWindowPos2f ---------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glWindowPos.xml OpenGL 2.x>. The vector equivalent of this command is 'glWindowPos2fv'.
+glWindowPos2f
+  :: MonadIO m
+  => GLfloat -- ^ @x@ of type @CoordF@.
+  -> GLfloat -- ^ @y@ of type @CoordF@.
+  -> m ()
+glWindowPos2f v1 v2 = liftIO $ dyn222 ptr_glWindowPos2f v1 v2
+
+{-# NOINLINE ptr_glWindowPos2f #-}
+ptr_glWindowPos2f :: FunPtr (GLfloat -> GLfloat -> IO ())
+ptr_glWindowPos2f = unsafePerformIO $ getCommand "glWindowPos2f"
+
+-- glWindowPos2fARB ------------------------------------------------------------
+
+-- | The vector equivalent of this command is 'glWindowPos2fvARB'. This command is an alias for 'glWindowPos2f'.
+glWindowPos2fARB
+  :: MonadIO m
+  => GLfloat -- ^ @x@ of type @CoordF@.
+  -> GLfloat -- ^ @y@ of type @CoordF@.
+  -> m ()
+glWindowPos2fARB v1 v2 = liftIO $ dyn222 ptr_glWindowPos2fARB v1 v2
+
+{-# NOINLINE ptr_glWindowPos2fARB #-}
+ptr_glWindowPos2fARB :: FunPtr (GLfloat -> GLfloat -> IO ())
+ptr_glWindowPos2fARB = unsafePerformIO $ getCommand "glWindowPos2fARB"
+
+-- glWindowPos2fMESA -----------------------------------------------------------
+
+-- | The vector equivalent of this command is 'glWindowPos2fvMESA'. This command is an alias for 'glWindowPos2f'.
+glWindowPos2fMESA
+  :: MonadIO m
+  => GLfloat -- ^ @x@ of type @CoordF@.
+  -> GLfloat -- ^ @y@ of type @CoordF@.
+  -> m ()
+glWindowPos2fMESA v1 v2 = liftIO $ dyn222 ptr_glWindowPos2fMESA v1 v2
+
+{-# NOINLINE ptr_glWindowPos2fMESA #-}
+ptr_glWindowPos2fMESA :: FunPtr (GLfloat -> GLfloat -> IO ())
+ptr_glWindowPos2fMESA = unsafePerformIO $ getCommand "glWindowPos2fMESA"
 
 -- glWindowPos2fv --------------------------------------------------------------
 
diff --git a/src/Graphics/GL/Tokens.hs b/src/Graphics/GL/Tokens.hs
--- a/src/Graphics/GL/Tokens.hs
+++ b/src/Graphics/GL/Tokens.hs
@@ -2969,6 +2969,24 @@
 
 pattern GL_FLOAT = 0x1406 :: GLenum
 
+pattern GL_FLOAT16_MAT2_AMD = 0x91C5 :: GLenum
+
+pattern GL_FLOAT16_MAT2x3_AMD = 0x91C8 :: GLenum
+
+pattern GL_FLOAT16_MAT2x4_AMD = 0x91C9 :: GLenum
+
+pattern GL_FLOAT16_MAT3_AMD = 0x91C6 :: GLenum
+
+pattern GL_FLOAT16_MAT3x2_AMD = 0x91CA :: GLenum
+
+pattern GL_FLOAT16_MAT3x4_AMD = 0x91CB :: GLenum
+
+pattern GL_FLOAT16_MAT4_AMD = 0x91C7 :: GLenum
+
+pattern GL_FLOAT16_MAT4x2_AMD = 0x91CC :: GLenum
+
+pattern GL_FLOAT16_MAT4x3_AMD = 0x91CD :: GLenum
+
 pattern GL_FLOAT16_NV = 0x8FF8 :: GLenum
 
 pattern GL_FLOAT16_VEC2_NV = 0x8FF9 :: GLenum
