diff --git a/OpenGLRaw.cabal b/OpenGLRaw.cabal
--- a/OpenGLRaw.cabal
+++ b/OpenGLRaw.cabal
@@ -1,5 +1,5 @@
 name: OpenGLRaw
-version: 2.5.0.0
+version: 2.5.1.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
@@ -30,8 +30,9 @@
 cabal-version: >= 1.10
 extra-source-files:
   README.md
-  include/HsOpenGLRaw.h
   RegistryProcessor/LICENSE
+  RegistryProcessor/OpenGL-Registry/gl.xml
+  RegistryProcessor/OpenGL-Registry/registry.rnc
   RegistryProcessor/RegistryProcessor.cabal
   RegistryProcessor/Setup.hs
   RegistryProcessor/src/DeclarationParser.hs
@@ -47,8 +48,18 @@
 
 flag UseGlXGetProcAddress
   description:
-    Use glXGetProcAddress instead of dlsym on non-Windows/-Darwin platforms.
+    Use glXGetProcAddress instead of dlsym on non-Windows/-Darwin/-Android platforms.
 
+flag UseGLES2
+  description:
+    Use OpenGL ES 2.x instead of OpenGL ES 3.x on Android.
+
+flag OsAndroid
+  description:
+    Compile for Android. This flag goes away when cabal supports os(android).
+  default:
+    False
+
 library
   exposed-modules:
     Graphics.Rendering.OpenGL.Raw
@@ -382,6 +393,7 @@
     Graphics.Rendering.OpenGL.Raw.KHR.ContextFlushControl
     Graphics.Rendering.OpenGL.Raw.KHR.DebugCompatibility
     Graphics.Rendering.OpenGL.Raw.KHR.DebugCore
+    Graphics.Rendering.OpenGL.Raw.KHR.NoError
     Graphics.Rendering.OpenGL.Raw.KHR.Robustness
     Graphics.Rendering.OpenGL.Raw.KHR.TextureCompressionASTCHDR
     Graphics.Rendering.OpenGL.Raw.KHR.TextureCompressionASTCLDR
@@ -579,7 +591,6 @@
   c-sources:
     cbits/HsOpenGLRaw.c
   hs-source-dirs: src
-  include-dirs: include
   build-depends:
     base         >= 4   && < 5,
     transformers >= 0.2 && < 0.5
@@ -595,10 +606,11 @@
     extra-libraries: opengl32
   else
     cpp-options: "-DCALLCONV=ccall"
-    if !os(darwin) && !os(ios) && flag(UseGlXGetProcAddress)
-      cc-options: "-DUSE_GLXGETPROCADDRESS"
-    else
+    if os(darwin) || os(ios) || flag(OsAndroid) || !flag(UseGlXGetProcAddress)
+      -- TODO: Figure out if/when eglGetProcAddress should be used.
       cc-options: "-DUSE_DLSYM"
+    else
+      cc-options: "-DUSE_GLXGETPROCADDRESS"
     if os(darwin)
       cpp-options: "-DHANDLE_IS_POINTER"
       frameworks: OpenGL
@@ -606,7 +618,13 @@
       if os(ios)
         frameworks: OpenGLES
       else
-        extra-libraries: GL
+        if flag(OsAndroid)
+          if flag(UseGLES2)
+            extra-libraries: GLESv2
+          else
+            extra-libraries: GLESv3
+        else
+          extra-libraries: GL
 
 source-repository head
   type: git
diff --git a/RegistryProcessor/OpenGL-Registry/gl.xml b/RegistryProcessor/OpenGL-Registry/gl.xml
new file mode 100644
# file too large to diff: RegistryProcessor/OpenGL-Registry/gl.xml
diff --git a/RegistryProcessor/OpenGL-Registry/registry.rnc b/RegistryProcessor/OpenGL-Registry/registry.rnc
new file mode 100644
--- /dev/null
+++ b/RegistryProcessor/OpenGL-Registry/registry.rnc
@@ -0,0 +1,288 @@
+# Copyright (c) 2013 The Khronos Group Inc.
+#
+# Permission is hereby granted, free of charge, to any person obtaining a
+# copy of this software and/or associated documentation files (the
+# "Materials"), to deal in the Materials without restriction, including
+# without limitation the rights to use, copy, modify, merge, publish,
+# distribute, sublicense, and/or sell copies of the Materials, and to
+# permit persons to whom the Materials are furnished to do so, subject to
+# the following conditions:
+#
+# The above copyright notice and this permission notice shall be included
+# in all copies or substantial portions of the Materials.
+#
+# THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+# IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+# CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+# MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
+
+# Relax NG schema for Khronos Registry XML
+# See http://www.opengl.org/registry/
+#
+# Last modified 2013/06/14
+# This definition is subject to change (mostly in the form of additions)
+
+namespace xsd = "http://www.w3.org/2001/XMLSchema-datatypes"
+
+# Toplevel is a <registry> tag.
+# May be led by an optional <comment> tag containing e.g. copyrights.
+start = element registry {
+    (
+        element comment { text } ? |
+        Types      * |
+        Groups     * |
+        Enums      * |
+        Commands   * |
+        Feature    * |
+        Extensions *
+    ) *
+}
+
+# <types> defines a group of types
+Types = element types {
+    Type *
+}
+
+# <type> defines a single type. It is usually a C typedef but
+# may contain arbitrary C code.
+#   name - name of this type, if not present in the <name> tag
+#   api - matches a <feature> api attribute, if present
+#   requires - name of another type definition required by this one
+#   type - "group", if present, indicating a group of values in the
+#       corresponding <enums> definition.
+#   comment - unused
+#   <apientry /> - substitutes for an APIENTRY-style macro on output
+#   <name> - contains typename
+Type = element type {
+    attribute api { text } ? ,
+    attribute requires { text } ? ,
+    attribute name { TypeName } ? ,
+    attribute type { text } ? ,
+    Comment ? ,
+    text ,
+    element apientry { text } ? ,
+    text ,
+    element name { TypeName } ? ,
+    text
+}
+
+# <groups> defines a group of enum groups
+Groups = element groups {
+    Group *
+}
+
+# <group> defines a single enum group. Enums may
+# be in multiple groups.
+#   name - group name
+#   comment - unused
+#   <enum name=""> - members of the group
+
+Group = element group {
+    Name ,
+    Comment ? ,
+    element enum { Name } *
+}
+
+# <enums> defines a group of enumerants
+#   namespace - identifies a numeric namespace
+#   group - identifies a functional subset of the namespace - same as <group name="">
+#   start, end - beginning and end of a numeric range in the namespace
+#   vendor - owner of the numeric range
+#   type - "bitmask", if present
+#   comment - unused
+Enums = element enums {
+    attribute namespace { text } ? ,
+    attribute group { text } ? ,
+    attribute type { text } ? ,
+    attribute start { Integer } ? ,
+    attribute end { Integer } ? ,
+    Vendor ? ,
+    Comment ? ,
+    (Enum | Unused) *
+}
+# <enum> defines a single enumerant
+#   value - integer (including hex) value of the enumerant
+#   api - matches a <feature> api attribute, if present
+#   type - "u" (unsigned), "ull" (uint64), or integer if not present
+#   name - enumerant name
+#   alias - another enumerant this is semantically identical to
+#   comment - unused
+Enum = element enum {
+    (
+        attribute value { Integer } &
+        attribute api { text } ? &
+        attribute type { TypeSuffix } ? &
+        attribute name { text } &
+        attribute alias { text } ? &
+        Comment ?
+    )
+}
+# <unused> defines a range of enumerants not currently being used
+#   start, end - beginning and end of an unused numeric range
+#   vendor - unused
+#   comment - unused
+Unused = element unused {
+    attribute start { Integer } ,
+    attribute end { Integer } ? ,
+    Vendor ? ,
+    Comment ?
+}
+# <commands> defines a group of commands
+#   namespace - identifies a function namespace
+Commands = element commands {
+    attribute namespace { text } ? ,
+    Command *
+}
+# <command> defines a single command
+#   <proto> is the C function prototype, including the return type
+#   <param> are function parameters, in order
+#     <ptype> is a <type> name, if present
+#     <name> is the function / parameter name
+# The textual contents of <proto> and <param> should be legal C
+# for those parts of a function declaration.
+#   <alias> - denotes function aliasing
+#     name - name of aliased function
+#   <vecequiv> - denotes scalar / vector function equivalence
+#     name - name of corresponding vector form, e.g. (glColor3f -> glColor3fv)
+#   <glx> - information about GLX protocol
+#     type - "render", "single", or "vendor" for GLXRender, GLXSingle, GLXVendorPrivate{WithReply}
+#     opcode - numeric opcode of specified type for this function
+#     name - if present, protocol name (defaults to command name)
+#     comment - unused
+Command = element command {
+    Comment ? ,
+    element proto {
+        attribute group { text } ? ,
+        text ,
+        element ptype { TypeName } ? ,
+        text ,
+        element name { text } ,
+        text
+    } ,
+    element param {
+        attribute group { text } ? ,
+        attribute len { text } ? ,
+        text ,
+        element ptype { TypeName } ? ,
+        text ,
+        element name { text } ,
+        text
+    } * ,
+    (
+        element alias {
+            Name
+        } ? &
+        element vecequiv {
+            Name
+        } ? &
+        element glx {
+            attribute type { text } ,
+            attribute opcode { xsd:integer } ,
+            Name ? ,
+            Comment ?
+        } *
+    )
+}
+# Each <feature> defines the interface of an API version (e.g. OpenGL 1.2)
+#   api - API tag (e.g. 'gl', 'gles2', etc. - used internally, not
+#     neccessarily an actual API name
+#   name - version name (C preprocessor name, e.g. GL_VERSION_4_2)
+#   number - version number, e.g. 4.2
+#   protect - additional #ifdef symbol to place around the feature
+#   <require> / <remove> contains features to require or remove in
+#                        this version
+#     profile - only require/remove when generated profile matches
+#     comment - unused
+Feature = element feature {
+    attribute api { text } ,
+    Name ,
+    attribute number { xsd:float } ,
+    attribute protect { text } ?,
+    Comment ? ,
+    (
+        element require {
+            ProfileName ? ,
+            Comment ? ,
+            InterfaceElement *
+        } |
+        element remove {
+            ProfileName ? ,
+            Comment ? ,
+            InterfaceElement *
+        }
+    ) *
+}
+Extensions = element extensions {
+    Extension *
+}
+# Defines the interface of an API <extension>. Like a <feature>
+# tag, but with a slightly different api attribute.
+#   api - regexp pattern matching one or more API tags, indicating
+#     which APIs the extension is known to work with. The only
+#     syntax supported is <name>{|<name>}* and each name must
+#     exactly match an API being generated (implicit ^$ surrounding).
+# In addition, <require> / <remove> tags also support an
+# api attribute:
+#     api - only require/remove these features for the matching API.
+#       Not a regular expression.
+Extension = element extension {
+    Name ,
+    attribute protect { text } ?,
+    attribute supported { StringGroup } ? ,
+    Comment ? ,
+    (
+        element require {
+            attribute api { text } ? ,
+            ProfileName ? ,
+            Comment ? ,
+            InterfaceElement *
+        } |
+        element remove {
+            attribute api { text } ? ,
+            ProfileName ? ,
+            Comment ? ,
+            InterfaceElement *
+        }
+    ) *
+}
+# Contents of a <require> / <remove> tag, defining a group
+# of features to require or remove.
+#   <type> / <enum> / <command> all have attributes
+#     name - feature name which must match
+InterfaceElement =
+    element type {
+        Name ,
+        Comment ?
+    } |
+    element enum {
+        Name ,
+        Comment ?
+    } |
+    element command {
+        Name ,
+        Comment ?
+    }
+
+# Integers are allowed to be either decimal or C-hex (0x[0-9A-F]+), but
+# XML Schema types don't seem to support hex notation, so we use this
+# as a placeholder.
+Integer = text
+
+# TypeName is an argument/return value C type name
+TypeName = text
+
+# TypeSuffix is a C numeric type suffix, e.g. 'u' or 'ull'
+TypeSuffix = text
+
+# StringGroup is a regular expression with an implicit
+#   '^(' and ')$' bracketing it.
+StringGroup = text
+
+# Repeatedly used attributes
+ProfileName = attribute profile { text }
+Vendor = attribute vendor { text }
+Comment = attribute comment { text }
+Name = attribute name { text }
diff --git a/RegistryProcessor/RegistryProcessor.cabal b/RegistryProcessor/RegistryProcessor.cabal
--- a/RegistryProcessor/RegistryProcessor.cabal
+++ b/RegistryProcessor/RegistryProcessor.cabal
@@ -1,5 +1,5 @@
 name: RegistryProcessor
-version: 0.1.0.0
+version: 0.1.0.1
 synopsis: A processor for the OpenGL Registry
 description: A tool for generating OpenGLRaw from the OpenGL Registry
 license: BSD3
@@ -9,13 +9,8 @@
 category: Graphics
 build-type: Simple
 extra-source-files:
-  TODO
-  registry/egl.xml
-  registry/gl.xml
-  registry/glx.xml
-  registry/registry.rnc
-  registry/registry.rng
-  registry/wgl.xml
+  OpenGL-Registry/gl.xml
+  OpenGL-Registry/registry.rnc
 cabal-version: >=1.10
 
 executable RegistryProcessor
diff --git a/RegistryProcessor/src/Main.hs b/RegistryProcessor/src/Main.hs
--- a/RegistryProcessor/src/Main.hs
+++ b/RegistryProcessor/src/Main.hs
@@ -15,9 +15,9 @@
 
 main :: IO ()
 main = do
-  [registryPath] <- E.getArgs
-  let api = API "gl"
-  res <- fmap parseRegistry $ readFile registryPath
+  [a, registryPath] <- E.getArgs
+  let api = API a
+  res <- parseRegistry toEnumType `fmap` readFile registryPath
   case res of
     Left msg -> SI.hPutStrLn SI.stderr msg
     Right registry -> do
@@ -25,28 +25,60 @@
       let sigMap = signatureMap registry
       printForeign sigMap
       printFunctions api registry sigMap
-      printExtensions api registry
-      CM.forM_ ["1.0", "1.1", "1.2", "1.3", "1.4", "1.5", "2.0", "2.1"] $ \v ->
-        printFeature api (read v) (ProfileName "version") registry
-      CM.forM_ ["3.0", "3.1", "3.2", "3.3", "4.0", "4.1", "4.2", "4.3", "4.4", "4.5"] $ \v -> do
-        printFeature api (read v) (ProfileName "core") registry
-        printFeature api (read v) (ProfileName "compatibility") registry
+      let extModules = extensionModules api registry
+      CM.forM_ extModules printExtensionModule
+      printReExports extModules
+      CM.forM_ (openGLVersions api) $ \v ->
+        CM.forM_ (supportedProfiles api v) $ \p ->
+          printFeature api v p registry
+      printTopLevel api extModules
 
-printFeature :: API -> Version -> ProfileName -> Registry -> IO ()
-printFeature api version profile registry = do
-  let relName = capitalize (unProfileName profile) ++
-                show (major version) ++ show (minor version)
-  printExtension Nothing [relName] $ fixedReplay api version profile registry
+openGLVersions :: API -> [Version]
+openGLVersions api = map read $ case unAPI api of
+  "gl" -> [ "1.0", "1.1", "1.2", "1.3", "1.4", "1.5",
+            "2.0", "2.1",
+            "3.0", "3.1", "3.2", "3.3",
+            "4.0", "4.1", "4.2", "4.3", "4.4", "4.5" ]
+  "gles1" -> [ "1.0" ]
+  "gles2" -> [ "2.0", "3.0", "3.1" ]
+  a -> error $ "unknown API " ++ a
 
+latestVersion :: API -> Version
+latestVersion = last . openGLVersions
+
+supportedProfiles :: API -> Version -> [Maybe ProfileName]
+supportedProfiles api v = case unAPI api of
+  "gl" | major v < 3 -> [ Nothing ]
+       | otherwise ->  map (Just . ProfileName) [ "core", "compatibility" ]
+  "gles1" -> map (Just . ProfileName) [ "lite", "common" ]
+  "gles2" -> [ Nothing ]
+  a -> error $ "unknown API " ++ a
+
+latestProfiles :: API -> [Maybe ProfileName]
+latestProfiles api = supportedProfiles api (latestVersion api)
+
+profileToReExport :: API -> Maybe ProfileName
+profileToReExport = last . latestProfiles
+
+printFeature :: API -> Version -> Maybe ProfileName -> Registry -> IO ()
+printFeature api version mbProfile registry =
+  printExtension [featureName version mbProfile] [] $
+    fixedReplay api version mbProfile registry
+
+featureName :: Version -> Maybe ProfileName -> String
+featureName version mbProfile =
+  maybe "Version" (capitalize . unProfileName) mbProfile ++
+  show (major version) ++ show (minor version)
+
 printTokens :: API -> Registry -> IO ()
 printTokens api registry = do
   let comment =
         ["All enumeration tokens from the",
          "<http://www.opengl.org/registry/ OpenGL registry>."]
-  startModule Nothing ["Tokens"] Nothing comment $ \moduleName h -> do
+  startModule ["Tokens"] Nothing comment $ \moduleName h -> do
     SI.hPutStrLn h $ "module " ++ moduleName ++ " where"
     SI.hPutStrLn h ""
-    SI.hPutStrLn h "import Graphics.Rendering.OpenGL.Raw.Types"
+    SI.hPutStrLn h $ "import " ++ moduleNameFor ["Types"]
     SI.hPutStrLn h ""
     mapM_ (SI.hPutStrLn h . unlines . convertEnum)
       [ e
@@ -67,12 +99,12 @@
 printForeign :: M.Map String String -> IO ()
 printForeign sigMap = do
   let comment = ["All foreign imports."]
-  startModule Nothing ["Foreign"] (Just "{-# LANGUAGE CPP #-}") comment $ \moduleName h -> do
+  startModule ["Foreign"] (Just "{-# LANGUAGE CPP #-}") 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.Ptr"
-    SI.hPutStrLn h "import Graphics.Rendering.OpenGL.Raw.Types"
+    SI.hPutStrLn h $ "import " ++ moduleNameFor ["Types"]
     SI.hPutStrLn h ""
     mapM_ (SI.hPutStrLn h . uncurry makeImportDynamic) (M.assocs sigMap)
 
@@ -81,7 +113,7 @@
   let comment =
         ["All raw functions from the",
          "<http://www.opengl.org/registry/ OpenGL registry>."]
-  startModule Nothing ["Functions"] Nothing comment $ \moduleName h -> do
+  startModule ["Functions"] Nothing comment $ \moduleName h -> do
     SI.hPutStrLn h $ "module " ++ moduleName ++ " ("
     SI.hPutStrLn h . separate unCommandName . M.keys . commands $ registry
     SI.hPutStrLn h ") where"
@@ -91,9 +123,9 @@
     SI.hPutStrLn h "import Foreign.Ptr ( Ptr, FunPtr, nullFunPtr )"
     SI.hPutStrLn h "import System.IO.Unsafe ( unsafePerformIO )"
     SI.hPutStrLn h ""
-    SI.hPutStrLn h "import Graphics.Rendering.OpenGL.Raw.Foreign"
-    SI.hPutStrLn h "import Graphics.Rendering.OpenGL.Raw.GetProcAddress ( getProcAddress )"
-    SI.hPutStrLn h "import Graphics.Rendering.OpenGL.Raw.Types"
+    SI.hPutStrLn h $ "import " ++ moduleNameFor ["Foreign"]
+    SI.hPutStrLn h $ "import " ++ moduleNameFor ["GetProcAddress"] ++" ( getProcAddress )"
+    SI.hPutStrLn h $ "import " ++ moduleNameFor ["Types"]
     SI.hPutStrLn h ""
     SI.hPutStrLn h "getCommand :: String -> IO (FunPtr a)"
     SI.hPutStrLn h "getCommand cmd ="
@@ -104,99 +136,139 @@
     SI.hPutStrLn h ""
     mapM_ (SI.hPutStrLn h . showCommand api sigMap) (M.elems (commands registry))
 
-printExtensions :: API -> Registry -> IO ()
-printExtensions api registry = do
-  -- only consider non-empty supported extensions/modifications for the given API
-  let supportedExtensions =
-        [ nameAndMods
-        | ext <- extensions registry
-        , api `supports` extensionSupported ext
-        , nameAndMods@(_,(_:_)) <- [nameAndModifications api ext] ]
-  CM.forM_ supportedExtensions $ \(n,mods) -> do
-    let profileAndModName =
-          if any isProfileDependent mods
-            then [(ProfileName p, extendExtensionName n p)
-                 | p <- ["core", "compatibility"] ]
-            else [(ProfileName "core", n)]  -- the actual profile doesn't matter
-    CM.forM_ profileAndModName $ \(prof, modName) -> do
-      let ("GL":vendor:extWords) = splitBy (== '_') (unExtensionName modName)
-      printExtension (Just vendor) extWords $
-        executeModifications api prof registry mods
+printExtensionModule :: (ExtensionName, ExtensionName, ([TypeName], [Enum'], [Command])) -> IO ()
+printExtensionModule (extName, mangledExtName, extensionParts) =
+  printExtension [extensionNameCategory mangledExtName, extensionNameName mangledExtName]
+                 (commentForExension extName)
+                 extensionParts
 
-isProfileDependent :: Modification -> Bool
-isProfileDependent = DM.isJust . modificationProfile
+extendWithProfile :: ExtensionName -> Maybe ProfileName -> ExtensionName
+extendWithProfile extName =
+  maybe extName (\p -> extName { extensionNameName = joinWords [extensionNameName extName, capitalize (unProfileName p)]})
 
-extendExtensionName :: ExtensionName -> String -> ExtensionName
-extendExtensionName n profile =
-  ExtensionName . (++ ("_" ++ profile)). unExtensionName $ n
+mangleExtensionName :: ExtensionName -> ExtensionName
+mangleExtensionName extName = extName {
+  extensionNameCategory = fixCategory $ extensionNameCategory extName,
+  extensionNameName = zip (splitWords (extensionNameName extName)) [0 ..] >>= fixExtensionWord }
+  where fixCategory c = case c of
+          "3DFX" -> "ThreeDFX"
+          _ -> c
+        fixExtensionWord (w, pos) = case w of
+          "422" | pos == 0-> "FourTwoTwo"
+          "64bit" -> "64Bit"
+          "ES2" -> "ES2"
+          "ES3" -> "ES3"
+          "FXT1" -> "FXT1"
+          "a2ui" -> "A2UI"
+          "abgr" -> "ABGR"
+          "astc" -> "ASTC"
+          "bgra" -> "BGRA"
+          "bptc" -> "BPTC"
+          "cl" -> "CL"
+          "cmyka" -> "CMYKA"
+          "dxt1" -> "DXT1"
+          "es" -> "ES"
+          "ffd" -> "FFD"
+          "fp64" -> "FP64"
+          "gpu" -> "GPU"
+          "hdr" -> "HDR"
+          "latc" -> "LATC"
+          "ldr" -> "LDR"
+          "lod" -> "LOD"
+          "pn" -> "PN"
+          "rg" -> "RG"
+          "rgb" -> "RGB"
+          "rgb10" -> "RGB10"
+          "rgb32" -> "RGB32"
+          "rgtc" -> "RGTC"
+          "s3tc" -> "S3TC"
+          "sRGB" -> "SRGB"
+          "snorm" -> "SNorm"
+          "texture3D" -> "Texture3D"
+          "texture4D" -> "Texture4D"
+          "vdpau" -> "VDPAU"
+          "ycbcr" -> "YCbCr"
+          "ycrcb" -> "YCrCb"
+          "ycrcba" -> "YCrCbA"
+          _ -> capitalize w
 
-startModule :: Maybe String -> [String] -> Maybe String -> [String] -> (String -> SI.Handle -> IO ()) -> IO ()
-startModule mbVendor extWords mbPragma comments action = do
-  let moduleNameParts =
-        ["Graphics", "Rendering", "OpenGL", "Raw"] ++
-        maybe [] (\vendor -> [fixVendor vendor]) mbVendor ++
-        [concat (zipWith fixExtensionWord extWords [0 ..])]
-      path = F.joinPath moduleNameParts `F.addExtension` "hs"
-      moduleName = L.intercalate "." moduleNameParts
-  D.createDirectoryIfMissing True $ F.takeDirectory path
-  SI.withFile path SI.WriteMode $ \h -> do
-    printModuleHeader h mbPragma moduleName comments
-    action moduleName h
+extensionModules :: API -> Registry -> [(ExtensionName, ExtensionName, ([TypeName], [Enum'], [Command]))]
+extensionModules api registry =
+  [ (extName, mangledExtName, executeModifications api mbProfile registry mods)
+  | (extName, mods) <- supportedExtensions api registry
+  , mbProfile <- if isProfileDependent mods then suppProfs else [ Nothing ]
+  , let mangledExtName = mangleExtensionName (extendWithProfile extName mbProfile)
+  ]
+  where suppProfs = latestProfiles api
+        isProfileDependent mods = any (`S.member` allProfileNames) (mentionedProfileNames mods)
+        mentionedProfileNames mods = DM.catMaybes . map modificationProfile $ mods
+        allProfileNames = S.fromList . DM.catMaybes $ suppProfs
 
-fixVendor :: String -> String
-fixVendor v = case v of
-  "3DFX" -> "ThreeDFX"
-  _ -> v
+-- We only consider non-empty supported extensions/modifications for the given API.
+supportedExtensions :: API -> Registry -> [(ExtensionName, [Modification])]
+supportedExtensions api registry =
+  [ nameAndMods
+  | ext <- extensions registry
+  , api `supports` extensionSupported ext
+  , nameAndMods@(_,(_:_)) <- [nameAndModifications api ext] ]
+  where nameAndModifications :: API -> Extension -> (ExtensionName, [Modification])
+        nameAndModifications api e =
+          (extensionName e,
+           [ conditionalModificationModification cm
+           | cm <- extensionsRequireRemove e
+           , api `matches` conditionalModificationAPI cm
+           -- ARB_compatibility has an empty "require" element only
+           , not . null . modificationInterfaceElements . conditionalModificationModification $ cm ])
 
-fixExtensionWord :: String -> Int -> String
-fixExtensionWord w  pos = case w of
-  "422" | pos == 0-> "FourTwoTwo"
-  "64bit" -> "64Bit"
-  "ES2" -> "ES2"
-  "ES3" -> "ES3"
-  "FXT1" -> "FXT1"
-  "a2ui" -> "A2UI"
-  "abgr" -> "ABGR"
-  "astc" -> "ASTC"
-  "bgra" -> "BGRA"
-  "bptc" -> "BPTC"
-  "cl" -> "CL"
-  "cmyka" -> "CMYKA"
-  "dxt1" -> "DXT1"
-  "es" -> "ES"
-  "ffd" -> "FFD"
-  "fp64" -> "FP64"
-  "gpu" -> "GPU"
-  "hdr" -> "HDR"
-  "latc" -> "LATC"
-  "ldr" -> "LDR"
-  "lod" -> "LOD"
-  "pn" -> "PN"
-  "rg" -> "RG"
-  "rgb" -> "RGB"
-  "rgb10" -> "RGB10"
-  "rgb32" -> "RGB32"
-  "rgtc" -> "RGTC"
-  "s3tc" -> "S3TC"
-  "sRGB" -> "SRGB"
-  "snorm" -> "SNorm"
-  "texture3D" -> "Texture3D"
-  "texture4D" -> "Texture4D"
-  "vdpau" -> "VDPAU"
-  "ycbcr" -> "YCbCr"
-  "ycrcb" -> "YCrCb"
-  "ycrcba" -> "YCrCbA"
-  _ -> capitalize w
+commentForExension :: ExtensionName -> [String]
+commentForExension n = [
+  "The <https://www.opengl.org/registry/specs/" ++
+  fixRegistryPath (extensionNameCategory n ++ "/" ++ extensionNameName n) ++ ".txt " ++
+  joinWords [extensionNameCategory n, extensionNameName n] ++ "> extension."]
+  where fixRegistryPath :: String -> String
+        fixRegistryPath path = case path of
+          "3DFX/multisample" -> "3DFX/3dfx_multisample"
+          "EXT/debug_label" -> "EXT/EXT_debug_label"
+          "EXT/debug_marker" -> "EXT/EXT_debug_marker"
+          "EXT/multisample" -> "EXT/wgl_multisample"
+          "EXT/texture_cube_map" -> "ARB/texture_cube_map"
+          "INGR/blend_func_separate" -> "EXT/blend_func_separate"
+          "KHR/blend_equation_advanced_coherent" -> "KHR/blend_equation_advanced"
+          "KHR/texture_compression_astc_ldr" -> "KHR/texture_compression_astc_hdr"
+          "NV/blend_equation_advanced_coherent" -> "NV/blend_equation_advanced"
+          "NVX/conditional_render" -> "NVX/nvx_conditional_render"
+          "OES/byte_coordinates" -> "OES/OES_byte_coordinates"
+          "OES/compressed_paletted_texture" -> "OES/OES_compressed_paletted_texture"
+          "OES/fixed_point" -> "OES/OES_fixed_point"
+          "OES/query_matrix" -> "OES/OES_query_matrix"
+          "OES/read_format" -> "OES/OES_read_format"
+          "OES/single_precision" -> "OES/OES_single_precision"
+          "SGIS/fog_function" -> "SGIS/fog_func"
+          "SGIS/point_parameters" -> "EXT/point_parameters"
+          "SGIX/fragment_lighting" -> "EXT/fragment_lighting"
+          "SGIX/pixel_texture" -> "SGIX/sgix_pixel_texture"
+          "SGIX/texture_add_env" -> "SGIX/texture_env_add"
+          _ -> path
 
-nameAndModifications :: API -> Extension -> (ExtensionName, [Modification])
-nameAndModifications api e =
-  (extensionName e,
-   [ conditionalModificationModification cm
-   | cm <- extensionsRequireRemove e
-   , api `matches` conditionalModificationAPI cm
-   -- ARB_compatibility has an empty "require" element only
-   , not . null . modificationInterfaceElements . conditionalModificationModification $ cm ])
+printReExports :: [(ExtensionName, ExtensionName, ([TypeName], [Enum'], [Command]))] -> IO ()
+printReExports extModules = do
+  let extMap = M.fromListWith (++) [((extensionNameCategory extName, extensionNameCategory mangledExtName), [mangledExtName])
+                                   | (extName, mangledExtName, _) <- extModules ]
+      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 ""
+      CM.forM_ mangledExtNames $ \mangledExtName ->
+        SI.hPutStrLn h $ "import " ++ extensionNameFor mangledExtName
 
+extensionNameFor :: ExtensionName -> String
+extensionNameFor mangledExtName = moduleNameFor [extensionNameCategory mangledExtName, extensionNameName mangledExtName]
+
 supports :: API -> Maybe [API] -> Bool
 _ `supports` Nothing = True
 a `supports` Just apis = a `elem` apis
@@ -208,10 +280,9 @@
 separate f = L.intercalate ",\n" . map ("  " ++) . map f
 
 -- Note that we handle features just like extensions.
-printExtension :: Maybe String -> [String] -> ([TypeName], [Enum'], [Command]) -> IO ()
-printExtension mbVendor extWords (ts, es, cs) = do
-  let comment = maybe [] (makeExtensionURL extWords) mbVendor
-  startModule mbVendor extWords Nothing comment $ \moduleName h -> do
+printExtension :: [String] -> [String] -> ([TypeName], [Enum'], [Command]) -> IO ()
+printExtension moduleNameSuffix comment (ts, es, cs) =
+  startModule moduleNameSuffix Nothing comment $ \moduleName h -> do
     SI.hPutStrLn h $ "module "++ moduleName ++ " ("
     CM.unless (null ts) $ do
       SI.hPutStrLn h "  -- * Types"
@@ -228,18 +299,61 @@
     SI.hPutStrLn h ") where"
     SI.hPutStrLn h ""
     CM.unless (null ts) $
-      SI.hPutStrLn h "import Graphics.Rendering.OpenGL.Raw.Types"
+      SI.hPutStrLn h $ "import " ++ moduleNameFor ["Types"]
     CM.unless (null es) $
-      SI.hPutStrLn h "import Graphics.Rendering.OpenGL.Raw.Tokens"
+      SI.hPutStrLn h $ "import " ++ moduleNameFor ["Tokens"]
     CM.unless (null cs) $
-      SI.hPutStrLn h "import Graphics.Rendering.OpenGL.Raw.Functions"
+      SI.hPutStrLn h $ "import " ++ moduleNameFor ["Functions"]
 
-makeExtensionURL :: [String] -> String -> [String]
-makeExtensionURL extWords vendor =
-  ["The <https://www.opengl.org/registry/specs/" ++
-   vendor ++ "/" ++ L.intercalate "_" extWords ++ ".txt " ++
-   L.intercalate "_" (vendor : extWords) ++ "> extension."]
+printTopLevel :: API -> [(ExtensionName, ExtensionName, ([TypeName], [Enum'], [Command]))] -> IO ()
+printTopLevel api extModules = do
+  let mangledCategories = sortUnique [ extensionNameCategory mangledExtName
+                                     | (_, mangledExtName, _) <- extModules ]
+      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 ""
+    CM.forM_ moduleNames $ \moduleName ->
+      SI.hPutStrLn h $ "import " ++ moduleName
 
+apiName :: API -> String
+apiName api = case unAPI api of
+  "gl" -> "OpenGL"
+  "gles1" -> "OpenGL ES 1.x"
+  "gles2" -> "OpenGL ES"
+  a -> error $ "unknown API " ++ a
+
+sortUnique :: Ord a => [a] -> [a]
+sortUnique = S.toList . S.fromList
+
+startModule :: [String] -> Maybe String -> [String] -> (String -> SI.Handle -> IO ()) -> IO ()
+startModule moduleNameSuffix mbPragma comments action = do
+  let path = modulePathFor moduleNameSuffix
+      moduleName = moduleNameFor moduleNameSuffix
+  D.createDirectoryIfMissing True $ F.takeDirectory path
+  SI.withFile path SI.WriteMode $ \h -> do
+    printModuleHeader h mbPragma moduleName comments
+    action moduleName h
+
+moduleNameFor :: [String] -> String
+moduleNameFor = L.intercalate "." . moduleNameParts
+
+modulePathFor :: [String] -> FilePath
+modulePathFor moduleNameSuffix = F.joinPath (moduleNameParts moduleNameSuffix) `F.addExtension` "hs"
+
+moduleNameParts :: [String] -> [String]
+moduleNameParts = (["Graphics", "Rendering", "OpenGL", "Raw"] ++)
+
 printModuleHeader :: SI.Handle -> Maybe String -> String -> [String] -> IO ()
 printModuleHeader h mbPragma moduleName comments = do
   maybe (return ()) (SI.hPutStrLn h) mbPragma
@@ -262,12 +376,12 @@
 -- Annoyingly enough, the OpenGL registry doesn't contain any enums for
 -- OpenGL 1.0, so let's just use the OpenGL 1.1 ones. Furthermore, features
 -- don't explicitly list the types referenced by commands, so we add them.
-fixedReplay :: API -> Version -> ProfileName -> Registry -> ([TypeName], [Enum'], [Command])
-fixedReplay api version profile registry
+fixedReplay :: API -> Version -> Maybe ProfileName -> Registry -> ([TypeName], [Enum'], [Command])
+fixedReplay api version mbProfile registry
   | api == API "gl" && version == read "1.0" = (ts', es11, cs)
   | otherwise = (ts', es, cs)
-  where (ts, es, cs) = replay api version profile registry
-        (_, es11, _) = replay api (read "1.1") profile registry
+  where (ts, es, cs) = replay api version mbProfile registry
+        (_, es11, _) = replay api (read "1.1") mbProfile registry
         ts' = S.toList . addFuncsAndMakes . S.unions  $ S.fromList ts : map referencedTypes cs
 
 -- For debug callbacks, we want to export the Haskell types and their creators, too.
@@ -285,32 +399,31 @@
 
 -- Here is the heart of the feature construction logic: Chronologically replay
 -- the whole version history for the given API/version/profile triple.
-replay :: API -> Version -> ProfileName -> Registry -> ([TypeName], [Enum'], [Command])
-replay api version profile registry =
-  executeModifications api profile registry modifications
-  where modifications = concatMap modificationsFor history
-        modificationsFor = flip lookup' (features registry)
+replay :: API -> Version -> Maybe ProfileName -> Registry -> ([TypeName], [Enum'], [Command])
+replay api version mbProfile registry =
+  executeModifications api mbProfile registry modifications
+  where modifications = history >>= flip lookup' (features registry)
         history = L.sort [ key
                          | key@(a,v) <- M.keys (features registry)
                          , a == api
                          , v <= version ]
 
-executeModifications :: API -> ProfileName -> Registry -> [Modification] -> ([TypeName], [Enum'], [Command])
-executeModifications api profile registry modifications = (ts, es, cs)
+executeModifications :: API -> Maybe ProfileName -> Registry -> [Modification] -> ([TypeName], [Enum'], [Command])
+executeModifications api mbProfile registry modifications = (ts, es, cs)
   where ts = [ n | TypeElement n <- lst ]
         es = [ e | EnumElement n <- lst
                  , e <- lookup' n (enums registry)
                  , api `matches` enumAPI e ]
         cs = [ lookup' n (commands registry) | CommandElement n <- lst ]
-        lst = S.toList $ interfaceElementsFor profile modifications
+        lst = S.toList $ interfaceElementsFor mbProfile modifications
 
-interfaceElementsFor :: ProfileName -> [Modification] -> S.Set InterfaceElement
-interfaceElementsFor profile modifications =
+interfaceElementsFor :: Maybe ProfileName -> [Modification] -> S.Set InterfaceElement
+interfaceElementsFor mbProfile modifications =
   foldl (flip ($)) S.empty modificationsFor
   where modificationsFor =
           [ op (modificationKind m) ie
           | m <- modifications
-          , profile `matches` modificationProfile m
+          , maybe True (`matches` modificationProfile m) mbProfile
           , ie <- modificationInterfaceElements m ]
         op Require = S.insert
         op Remove = S.delete
@@ -358,7 +471,7 @@
                 [_] ->  "-- | Manual page for "  ++ links
                 _   ->  "-- | Manual pages for " ++ links
         renderURL (u, l) = "<" ++ u ++ " " ++ l ++ ">"
-        args = concat [" v" ++ show i | i <- [1 .. length (paramTypes c)]]
+        args = [1 .. length (paramTypes c)] >>= \i -> " v" ++ show i
 
 makeImportDynamic :: String -> String -> String
 makeImportDynamic compactSignature dyn_name =
@@ -396,9 +509,12 @@
 
         isInteresting = DM.isJust (arrayLength sigElem) || DM.isJust (belongsToGroup sigElem)
 
-        elms | numPointer sigElem > 0 = " pointing to" ++ len ++ " elements"
+        elms | numPointer sigElem > 0 = " pointing to" ++ len ++ " " ++ elements
              | otherwise = ""
 
+        elements | arrayLength sigElem == Just "1" = "element"
+                 | otherwise = "elements"
+
         len = maybe "" (\l -> " " ++ inlineCode l) (arrayLength sigElem)
 
         base = maybeDeref . maybeSetBaseType
@@ -408,3 +524,35 @@
 
 inlineCode :: String -> String
 inlineCode s = "@" ++ s ++ "@"
+
+-- TODO: Use Either instead of error below?
+toEnumType :: ToEnumType
+toEnumType eNamespace eGroup eType suffix = TypeName $
+  case (eNamespace, eGroup, eType, unTypeSuffix `fmap` suffix) of
+    -- glx.xml
+    (Just "GLXStrings", _, _, _) -> "String"
+    (Just ('G':'L':'X':_), _, _, _) -> "CInt"
+
+    -- egl.xml
+    -- TODO: EGLenum for EGL_OPENGL_API, EGL_OPENGL_ES_API, EGL_OPENVG_API, EGL_OPENVG_IMAGE?
+    (Just ('E':'G':'L':_), _, Nothing, Just "ull") -> "EGLTime"
+    (Just ('E':'G':'L':_), _, _, _) -> "EGLint"
+
+    -- wgl.xml
+    (Just "WGLLayerPlaneMask", _, _, _) -> "UINT"
+    (Just "WGLColorBufferMask", _, _, _) -> "UINT"
+    (Just "WGLContextFlagsMask", _, _, _) -> "INT"
+    (Just "WGLContextProfileMask", _, _, _) -> "INT"
+    (Just "WGLImageBufferMaskI3D" , _, _, _) -> "UINT"
+    (Just "WGLDXInteropMaskNV", _, _, _) -> "GLenum"
+    (Just ('W':'G':'L':_), _, _, _) -> "CInt"
+
+    -- gl.xml
+    (Just "OcclusionQueryEventMaskAMD", _, _, _) -> "GLuint"
+    (Just "GL", Just "PathRenderingTokenNV", _, _) -> "GLubyte"
+    (Just "GL", _, Just "bitmask", _) -> "GLbitfield"
+    (Just "GL", _, Nothing, Just "u") -> "GLuint"
+    (Just "GL", _, Nothing, Just "ull") -> "GLuint64"
+    (Just "GL", _, Nothing, Nothing) -> "GLenum"
+
+    (_, _, _, _) -> error "can't determine enum type"
diff --git a/RegistryProcessor/src/ManPages.hs b/RegistryProcessor/src/ManPages.hs
--- a/RegistryProcessor/src/ManPages.hs
+++ b/RegistryProcessor/src/ManPages.hs
@@ -898,38 +898,6 @@
   ("glMultiDrawArrays", "glMultiDrawArrays"),
   ("glMultiDrawElementsBaseVertex", "glMultiDrawElementsBaseVertex"),
   ("glMultiDrawElements", "glMultiDrawElements"),
-  ("glMultiTexCoord1s", "glMultiTexCoord"),
-  ("glMultiTexCoord1i", "glMultiTexCoord"),
-  ("glMultiTexCoord1f", "glMultiTexCoord"),
-  ("glMultiTexCoord1d", "glMultiTexCoord"),
-  ("glMultiTexCoord2s", "glMultiTexCoord"),
-  ("glMultiTexCoord2i", "glMultiTexCoord"),
-  ("glMultiTexCoord2f", "glMultiTexCoord"),
-  ("glMultiTexCoord2d", "glMultiTexCoord"),
-  ("glMultiTexCoord3s", "glMultiTexCoord"),
-  ("glMultiTexCoord3i", "glMultiTexCoord"),
-  ("glMultiTexCoord3f", "glMultiTexCoord"),
-  ("glMultiTexCoord3d", "glMultiTexCoord"),
-  ("glMultiTexCoord4s", "glMultiTexCoord"),
-  ("glMultiTexCoord4i", "glMultiTexCoord"),
-  ("glMultiTexCoord4f", "glMultiTexCoord"),
-  ("glMultiTexCoord4d", "glMultiTexCoord"),
-  ("glMultiTexCoord1sv", "glMultiTexCoord"),
-  ("glMultiTexCoord1iv", "glMultiTexCoord"),
-  ("glMultiTexCoord1fv", "glMultiTexCoord"),
-  ("glMultiTexCoord1dv", "glMultiTexCoord"),
-  ("glMultiTexCoord2sv", "glMultiTexCoord"),
-  ("glMultiTexCoord2iv", "glMultiTexCoord"),
-  ("glMultiTexCoord2fv", "glMultiTexCoord"),
-  ("glMultiTexCoord2dv", "glMultiTexCoord"),
-  ("glMultiTexCoord3sv", "glMultiTexCoord"),
-  ("glMultiTexCoord3iv", "glMultiTexCoord"),
-  ("glMultiTexCoord3fv", "glMultiTexCoord"),
-  ("glMultiTexCoord3dv", "glMultiTexCoord"),
-  ("glMultiTexCoord4sv", "glMultiTexCoord"),
-  ("glMultiTexCoord4iv", "glMultiTexCoord"),
-  ("glMultiTexCoord4fv", "glMultiTexCoord"),
-  ("glMultiTexCoord4dv", "glMultiTexCoord"),
   ("glPixelStoref", "glPixelStore"),
   ("glPixelStorei", "glPixelStore"),
   ("glPointParameterf", "glPointParameter"),
diff --git a/RegistryProcessor/src/MangledRegistry.hs b/RegistryProcessor/src/MangledRegistry.hs
--- a/RegistryProcessor/src/MangledRegistry.hs
+++ b/RegistryProcessor/src/MangledRegistry.hs
@@ -1,10 +1,14 @@
+-- This module is a convenience layer upon the Registry module which knows
+-- nothing about GL/GLX/EGL/WGL-specific things.
 module MangledRegistry (
+  ToEnumType,
   parseRegistry,
   Registry(..),
   Type(..),
   Group(..),
   Enum'(..),
   R.TypeName(..),
+  R.TypeSuffix(..),
   Command(..), commandName,
   SignatureElement(..),
   Modification(..),
@@ -20,7 +24,7 @@
   ExtensionName(..),
   API(..),
   Version(..),
-  splitBy
+  splitWords, joinWords
 ) where
 
 import qualified Data.Char as C
@@ -33,9 +37,11 @@
 import qualified DeclarationParser as D
 import qualified Registry as R
 
-parseRegistry :: String -> Either String Registry
-parseRegistry = fmap toRegistry . R.parseRegistry
+type ToEnumType = Maybe String -> Maybe String -> Maybe String -> Maybe R.TypeSuffix -> R.TypeName
 
+parseRegistry :: ToEnumType -> String -> Either String Registry
+parseRegistry toEnumType str = toRegistry toEnumType `fmap` R.parseRegistry str
+
 data Registry = Registry {
   types :: M.Map R.TypeName Type,
   groups :: M.Map GroupName Group,
@@ -45,8 +51,8 @@
   extensions :: [Extension]
   } deriving (Eq, Ord, Show)
 
-toRegistry :: R.Registry -> Registry
-toRegistry r = Registry {
+toRegistry :: ToEnumType -> R.Registry -> Registry
+toRegistry toEnumType r = Registry {
   types = fromList'
     [ (typeNameOf t, toType t)
     | R.TypesElement te <- rs
@@ -59,7 +65,7 @@
    [ (enumName en, [en])
    | R.EnumsElement ee <- rs
    , Left e <- R.enumsEnumOrUnuseds ee
-   , let en = toEnum' (R.enumsNamespace ee) (R.enumsGroup ee) (R.enumsType ee) e ],
+   , let en = toEnum' (toEnumType (R.enumsNamespace ee) (R.enumsGroup ee) (R.enumsType ee)) e ],
   commands = fromList'
    [ (CommandName . R.protoName . R.commandProto $ c, toCommand c)
    | R.CommandsElement ce <- rs
@@ -113,56 +119,32 @@
   enumName :: EnumName
   } deriving (Eq, Ord, Show)
 
-toEnum' :: Maybe String -> Maybe String -> Maybe String -> R.Enum' -> Enum'
-toEnum' eNamespace eGroup eType  e = Enum {
+toEnum' :: (Maybe R.TypeSuffix -> R.TypeName) -> R.Enum' -> Enum'
+toEnum' toTypeName e = Enum {
   enumValue = EnumValue (R.enumValue e),
   enumAPI = API `fmap` R.enumAPI e,
-  enumType = toEnumType eNamespace eGroup eType (R.enumType e),
+  enumType = toTypeName (R.enumType e),
   enumName = mangleEnumName (R.enumName e) }
 
 mangleEnumName :: String -> EnumName
 mangleEnumName =
-  EnumName . L.intercalate [splitChar] . headToLower . splitBy (== splitChar)
-  where splitChar = '_'
-        headToLower xs = map C.toLower (head xs) : tail xs
+  EnumName . joinWords . headToLower . splitWords
+  where headToLower xs = map C.toLower (head xs) : tail xs
 
+splitChar :: Char
+splitChar = '_'
+
+splitWords :: String -> [String]
+splitWords = splitBy (== splitChar)
+
 splitBy :: (a -> Bool) -> [a] -> [[a]]
 splitBy _ [] = []
 splitBy p xs = case break p xs of
                 (ys, []  ) -> [ys]
                 (ys, _:zs) -> ys : splitBy p zs
 
--- TODO: Use Either instead of error below?
-toEnumType :: Maybe String -> Maybe String -> Maybe String -> Maybe R.TypeSuffix -> R.TypeName
-toEnumType eNamespace eGroup eType suffix = R.TypeName $
-  case (eNamespace, eGroup, eType, R.unTypeSuffix `fmap` suffix) of
-    -- glx.xml
-    (Just "GLXStrings", _, _, _) -> "String"
-    (Just ('G':'L':'X':_), _, _, _) -> "CInt"
-
-    -- egl.xml
-    -- TODO: EGLenum for EGL_OPENGL_API, EGL_OPENGL_ES_API, EGL_OPENVG_API, EGL_OPENVG_IMAGE?
-    (Just ('E':'G':'L':_), _, Nothing, Just "ull") -> "EGLTime"
-    (Just ('E':'G':'L':_), _, _, _) -> "EGLint"
- 
-    -- wgl.xml
-    (Just "WGLLayerPlaneMask", _, _, _) -> "UINT"
-    (Just "WGLColorBufferMask", _, _, _) -> "UINT"
-    (Just "WGLContextFlagsMask", _, _, _) -> "INT"
-    (Just "WGLContextProfileMask", _, _, _) -> "INT"
-    (Just "WGLImageBufferMaskI3D" , _, _, _) -> "UINT"
-    (Just "WGLDXInteropMaskNV", _, _, _) -> "GLenum"
-    (Just ('W':'G':'L':_), _, _, _) -> "CInt"
-
-    -- gl.xml
-    (Just "OcclusionQueryEventMaskAMD", _, _, _) -> "GLuint"
-    (Just "GL", Just "PathRenderingTokenNV", _, _) -> "GLubyte"
-    (Just "GL", _, Just "bitmask", _) -> "GLbitfield"
-    (Just "GL", _, Nothing, Just "u") -> "GLuint"
-    (Just "GL", _, Nothing, Just "ull") -> "GLuint64"
-    (Just "GL", _, Nothing, Nothing) -> "GLenum"
-
-    (_, _, _, _) -> error "can't determine enum type"
+joinWords :: [String] -> String
+joinWords = L.intercalate [splitChar]
 
 data Command = Command {
   resultType :: SignatureElement,
@@ -256,7 +238,7 @@
 
 toExtension :: R.Extension -> Extension
 toExtension e = Extension {
-  extensionName = ExtensionName . R.unName . R.extensionName $ e,
+  extensionName = toExtensionName $ R.extensionName e,
   extensionSupported = supp `fmap` R.extensionSupported e,
   extensionsRequireRemove = map toConditionalModification (R.extensionsRequireRemove e) }
   where supp = map API . splitBy (== '|') . R.unStringGroup
@@ -298,7 +280,19 @@
 
 newtype CommandName = CommandName { unCommandName :: String } deriving (Eq, Ord, Show)
 
-newtype ExtensionName = ExtensionName { unExtensionName :: String } deriving (Eq, Ord, Show)
+-- See https://www.opengl.org/registry/doc/rules.html#spec_naming
+data ExtensionName = ExtensionName {
+  extensionNameAPI :: String,
+  extensionNameCategory :: String,
+  extensionNameName :: String
+  } deriving (Eq, Ord, Show)
+
+toExtensionName :: R.Name -> ExtensionName
+toExtensionName name = ExtensionName {
+   extensionNameAPI = a,
+   extensionNameCategory = c,
+   extensionNameName = joinWords rest }
+   where (a:c:rest) = splitWords (R.unName name)
 
 newtype API = API { unAPI :: String } deriving (Eq, Ord, Show)
 
diff --git a/include/HsOpenGLRaw.h b/include/HsOpenGLRaw.h
deleted file mode 100644
--- a/include/HsOpenGLRaw.h
+++ /dev/null
@@ -1,31 +0,0 @@
-/* -----------------------------------------------------------------------------
- *
- * Module      :  GL extension support for Graphics.Rendering.OpenGL.Raw
- * Copyright   :  (c) Sven Panne 2015
- * License     :  BSD3
- *
- * Maintainer  :  Sven Panne <svenpanne@gmail.com>
- * Stability   :  stable
- * Portability :  portable
- *
- * This header should only define preprocessor macros!
- *
- * -------------------------------------------------------------------------- */
-
-#ifndef HSOPENGLRAW_H
-#define HSOPENGLRAW_H
-
-#define HASH #
-
-/* NOTE: The macro must immediately start with the foreign declaration,
-   otherwise the magic mangler (hack_foreign) in the Hugs build system
-   doesn't recognize it. */
-#define EXTENSION_ENTRY(_dyn_entry,_ptr_entry,_str_entry,_entry,_ty) \
-foreign import CALLCONV unsafe "dynamic" _dyn_entry :: FunPtr (_ty) -> (_ty) ; \
-_entry :: (_ty) ; \
-_entry = _dyn_entry _ptr_entry ; \
-_ptr_entry :: FunPtr a ; \
-_ptr_entry = unsafePerformIO (Graphics.Rendering.OpenGL.Raw.GetProcAddress.getExtensionChecked _str_entry) ; \
-{-HASH NOINLINE _ptr_entry HASH-}
-
-#endif
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/ARB.hs
@@ -17,9 +17,9 @@
   module Graphics.Rendering.OpenGL.Raw.ARB.BindlessTexture,
   module Graphics.Rendering.OpenGL.Raw.ARB.BlendFuncExtended,
   module Graphics.Rendering.OpenGL.Raw.ARB.BufferStorage,
+  module Graphics.Rendering.OpenGL.Raw.ARB.CLEvent,
   module Graphics.Rendering.OpenGL.Raw.ARB.ClearBufferObject,
   module Graphics.Rendering.OpenGL.Raw.ARB.ClearTexture,
-  module Graphics.Rendering.OpenGL.Raw.ARB.CLEvent,
   module Graphics.Rendering.OpenGL.Raw.ARB.ClipControl,
   module Graphics.Rendering.OpenGL.Raw.ARB.ColorBufferFloat,
   module Graphics.Rendering.OpenGL.Raw.ARB.CompressedTexturePixelStorage,
@@ -34,15 +34,15 @@
   module Graphics.Rendering.OpenGL.Raw.ARB.DepthClamp,
   module Graphics.Rendering.OpenGL.Raw.ARB.DepthTexture,
   module Graphics.Rendering.OpenGL.Raw.ARB.DirectStateAccess,
-  module Graphics.Rendering.OpenGL.Raw.ARB.DrawBuffersBlend,
   module Graphics.Rendering.OpenGL.Raw.ARB.DrawBuffers,
+  module Graphics.Rendering.OpenGL.Raw.ARB.DrawBuffersBlend,
   module Graphics.Rendering.OpenGL.Raw.ARB.DrawElementsBaseVertex,
   module Graphics.Rendering.OpenGL.Raw.ARB.DrawIndirect,
   module Graphics.Rendering.OpenGL.Raw.ARB.DrawInstanced,
-  module Graphics.Rendering.OpenGL.Raw.ARB.EnhancedLayouts,
   module Graphics.Rendering.OpenGL.Raw.ARB.ES2Compatibility,
   module Graphics.Rendering.OpenGL.Raw.ARB.ES31Compatibility,
   module Graphics.Rendering.OpenGL.Raw.ARB.ES3Compatibility,
+  module Graphics.Rendering.OpenGL.Raw.ARB.EnhancedLayouts,
   module Graphics.Rendering.OpenGL.Raw.ARB.ExplicitUniformLocation,
   module Graphics.Rendering.OpenGL.Raw.ARB.FragmentProgram,
   module Graphics.Rendering.OpenGL.Raw.ARB.FragmentShader,
@@ -50,19 +50,19 @@
   module Graphics.Rendering.OpenGL.Raw.ARB.FramebufferObjectCompatibility,
   module Graphics.Rendering.OpenGL.Raw.ARB.FramebufferObjectCore,
   module Graphics.Rendering.OpenGL.Raw.ARB.FramebufferSRGB,
+  module Graphics.Rendering.OpenGL.Raw.ARB.GPUShader5,
+  module Graphics.Rendering.OpenGL.Raw.ARB.GPUShaderFP64,
   module Graphics.Rendering.OpenGL.Raw.ARB.GeometryShader4,
   module Graphics.Rendering.OpenGL.Raw.ARB.GetProgramBinary,
   module Graphics.Rendering.OpenGL.Raw.ARB.GetTextureSubImage,
-  module Graphics.Rendering.OpenGL.Raw.ARB.GPUShader5,
-  module Graphics.Rendering.OpenGL.Raw.ARB.GPUShaderFP64,
   module Graphics.Rendering.OpenGL.Raw.ARB.HalfFloatPixel,
   module Graphics.Rendering.OpenGL.Raw.ARB.HalfFloatVertex,
   module Graphics.Rendering.OpenGL.Raw.ARB.ImagingCompatibility,
   module Graphics.Rendering.OpenGL.Raw.ARB.ImagingCore,
   module Graphics.Rendering.OpenGL.Raw.ARB.IndirectParameters,
   module Graphics.Rendering.OpenGL.Raw.ARB.InstancedArrays,
-  module Graphics.Rendering.OpenGL.Raw.ARB.InternalformatQuery2,
   module Graphics.Rendering.OpenGL.Raw.ARB.InternalformatQuery,
+  module Graphics.Rendering.OpenGL.Raw.ARB.InternalformatQuery2,
   module Graphics.Rendering.OpenGL.Raw.ARB.InvalidateSubdata,
   module Graphics.Rendering.OpenGL.Raw.ARB.MapBufferAlignment,
   module Graphics.Rendering.OpenGL.Raw.ARB.MapBufferRange,
@@ -71,8 +71,8 @@
   module Graphics.Rendering.OpenGL.Raw.ARB.MultiDrawIndirect,
   module Graphics.Rendering.OpenGL.Raw.ARB.Multisample,
   module Graphics.Rendering.OpenGL.Raw.ARB.Multitexture,
-  module Graphics.Rendering.OpenGL.Raw.ARB.OcclusionQuery2,
   module Graphics.Rendering.OpenGL.Raw.ARB.OcclusionQuery,
+  module Graphics.Rendering.OpenGL.Raw.ARB.OcclusionQuery2,
   module Graphics.Rendering.OpenGL.Raw.ARB.PipelineStatisticsQuery,
   module Graphics.Rendering.OpenGL.Raw.ARB.PixelBufferObject,
   module Graphics.Rendering.OpenGL.Raw.ARB.PointParameters,
@@ -82,8 +82,8 @@
   module Graphics.Rendering.OpenGL.Raw.ARB.QueryBufferObject,
   module Graphics.Rendering.OpenGL.Raw.ARB.RobustnessCompatibility,
   module Graphics.Rendering.OpenGL.Raw.ARB.RobustnessCore,
-  module Graphics.Rendering.OpenGL.Raw.ARB.SamplerObjects,
   module Graphics.Rendering.OpenGL.Raw.ARB.SampleShading,
+  module Graphics.Rendering.OpenGL.Raw.ARB.SamplerObjects,
   module Graphics.Rendering.OpenGL.Raw.ARB.SeamlessCubeMap,
   module Graphics.Rendering.OpenGL.Raw.ARB.SeamlessCubemapPerTexture,
   module Graphics.Rendering.OpenGL.Raw.ARB.SeparateShaderObjects,
@@ -94,8 +94,8 @@
   module Graphics.Rendering.OpenGL.Raw.ARB.ShaderSubroutine,
   module Graphics.Rendering.OpenGL.Raw.ARB.ShadingLanguage100,
   module Graphics.Rendering.OpenGL.Raw.ARB.ShadingLanguageInclude,
-  module Graphics.Rendering.OpenGL.Raw.ARB.ShadowAmbient,
   module Graphics.Rendering.OpenGL.Raw.ARB.Shadow,
+  module Graphics.Rendering.OpenGL.Raw.ARB.ShadowAmbient,
   module Graphics.Rendering.OpenGL.Raw.ARB.SparseBuffer,
   module Graphics.Rendering.OpenGL.Raw.ARB.SparseTexture,
   module Graphics.Rendering.OpenGL.Raw.ARB.StencilTexturing,
@@ -106,11 +106,11 @@
   module Graphics.Rendering.OpenGL.Raw.ARB.TextureBufferObject,
   module Graphics.Rendering.OpenGL.Raw.ARB.TextureBufferObjectRGB32,
   module Graphics.Rendering.OpenGL.Raw.ARB.TextureBufferRange,
-  module Graphics.Rendering.OpenGL.Raw.ARB.TextureCompressionBPTC,
   module Graphics.Rendering.OpenGL.Raw.ARB.TextureCompression,
+  module Graphics.Rendering.OpenGL.Raw.ARB.TextureCompressionBPTC,
   module Graphics.Rendering.OpenGL.Raw.ARB.TextureCompressionRGTC,
-  module Graphics.Rendering.OpenGL.Raw.ARB.TextureCubeMapArray,
   module Graphics.Rendering.OpenGL.Raw.ARB.TextureCubeMap,
+  module Graphics.Rendering.OpenGL.Raw.ARB.TextureCubeMapArray,
   module Graphics.Rendering.OpenGL.Raw.ARB.TextureEnvCombine,
   module Graphics.Rendering.OpenGL.Raw.ARB.TextureEnvDot3,
   module Graphics.Rendering.OpenGL.Raw.ARB.TextureFloat,
@@ -118,9 +118,9 @@
   module Graphics.Rendering.OpenGL.Raw.ARB.TextureMirrorClampToEdge,
   module Graphics.Rendering.OpenGL.Raw.ARB.TextureMirroredRepeat,
   module Graphics.Rendering.OpenGL.Raw.ARB.TextureMultisample,
-  module Graphics.Rendering.OpenGL.Raw.ARB.TextureRectangle,
-  module Graphics.Rendering.OpenGL.Raw.ARB.TextureRGB10A2UI,
   module Graphics.Rendering.OpenGL.Raw.ARB.TextureRG,
+  module Graphics.Rendering.OpenGL.Raw.ARB.TextureRGB10A2UI,
+  module Graphics.Rendering.OpenGL.Raw.ARB.TextureRectangle,
   module Graphics.Rendering.OpenGL.Raw.ARB.TextureStencil8,
   module Graphics.Rendering.OpenGL.Raw.ARB.TextureStorage,
   module Graphics.Rendering.OpenGL.Raw.ARB.TextureStorageMultisample,
@@ -152,9 +152,9 @@
 import Graphics.Rendering.OpenGL.Raw.ARB.BindlessTexture
 import Graphics.Rendering.OpenGL.Raw.ARB.BlendFuncExtended
 import Graphics.Rendering.OpenGL.Raw.ARB.BufferStorage
+import Graphics.Rendering.OpenGL.Raw.ARB.CLEvent
 import Graphics.Rendering.OpenGL.Raw.ARB.ClearBufferObject
 import Graphics.Rendering.OpenGL.Raw.ARB.ClearTexture
-import Graphics.Rendering.OpenGL.Raw.ARB.CLEvent
 import Graphics.Rendering.OpenGL.Raw.ARB.ClipControl
 import Graphics.Rendering.OpenGL.Raw.ARB.ColorBufferFloat
 import Graphics.Rendering.OpenGL.Raw.ARB.CompressedTexturePixelStorage
@@ -169,15 +169,15 @@
 import Graphics.Rendering.OpenGL.Raw.ARB.DepthClamp
 import Graphics.Rendering.OpenGL.Raw.ARB.DepthTexture
 import Graphics.Rendering.OpenGL.Raw.ARB.DirectStateAccess
-import Graphics.Rendering.OpenGL.Raw.ARB.DrawBuffersBlend
 import Graphics.Rendering.OpenGL.Raw.ARB.DrawBuffers
+import Graphics.Rendering.OpenGL.Raw.ARB.DrawBuffersBlend
 import Graphics.Rendering.OpenGL.Raw.ARB.DrawElementsBaseVertex
 import Graphics.Rendering.OpenGL.Raw.ARB.DrawIndirect
 import Graphics.Rendering.OpenGL.Raw.ARB.DrawInstanced
-import Graphics.Rendering.OpenGL.Raw.ARB.EnhancedLayouts
 import Graphics.Rendering.OpenGL.Raw.ARB.ES2Compatibility
 import Graphics.Rendering.OpenGL.Raw.ARB.ES31Compatibility
 import Graphics.Rendering.OpenGL.Raw.ARB.ES3Compatibility
+import Graphics.Rendering.OpenGL.Raw.ARB.EnhancedLayouts
 import Graphics.Rendering.OpenGL.Raw.ARB.ExplicitUniformLocation
 import Graphics.Rendering.OpenGL.Raw.ARB.FragmentProgram
 import Graphics.Rendering.OpenGL.Raw.ARB.FragmentShader
@@ -185,19 +185,19 @@
 import Graphics.Rendering.OpenGL.Raw.ARB.FramebufferObjectCompatibility
 import Graphics.Rendering.OpenGL.Raw.ARB.FramebufferObjectCore
 import Graphics.Rendering.OpenGL.Raw.ARB.FramebufferSRGB
+import Graphics.Rendering.OpenGL.Raw.ARB.GPUShader5
+import Graphics.Rendering.OpenGL.Raw.ARB.GPUShaderFP64
 import Graphics.Rendering.OpenGL.Raw.ARB.GeometryShader4
 import Graphics.Rendering.OpenGL.Raw.ARB.GetProgramBinary
 import Graphics.Rendering.OpenGL.Raw.ARB.GetTextureSubImage
-import Graphics.Rendering.OpenGL.Raw.ARB.GPUShader5
-import Graphics.Rendering.OpenGL.Raw.ARB.GPUShaderFP64
 import Graphics.Rendering.OpenGL.Raw.ARB.HalfFloatPixel
 import Graphics.Rendering.OpenGL.Raw.ARB.HalfFloatVertex
 import Graphics.Rendering.OpenGL.Raw.ARB.ImagingCompatibility
 import Graphics.Rendering.OpenGL.Raw.ARB.ImagingCore
 import Graphics.Rendering.OpenGL.Raw.ARB.IndirectParameters
 import Graphics.Rendering.OpenGL.Raw.ARB.InstancedArrays
-import Graphics.Rendering.OpenGL.Raw.ARB.InternalformatQuery2
 import Graphics.Rendering.OpenGL.Raw.ARB.InternalformatQuery
+import Graphics.Rendering.OpenGL.Raw.ARB.InternalformatQuery2
 import Graphics.Rendering.OpenGL.Raw.ARB.InvalidateSubdata
 import Graphics.Rendering.OpenGL.Raw.ARB.MapBufferAlignment
 import Graphics.Rendering.OpenGL.Raw.ARB.MapBufferRange
@@ -206,8 +206,8 @@
 import Graphics.Rendering.OpenGL.Raw.ARB.MultiDrawIndirect
 import Graphics.Rendering.OpenGL.Raw.ARB.Multisample
 import Graphics.Rendering.OpenGL.Raw.ARB.Multitexture
-import Graphics.Rendering.OpenGL.Raw.ARB.OcclusionQuery2
 import Graphics.Rendering.OpenGL.Raw.ARB.OcclusionQuery
+import Graphics.Rendering.OpenGL.Raw.ARB.OcclusionQuery2
 import Graphics.Rendering.OpenGL.Raw.ARB.PipelineStatisticsQuery
 import Graphics.Rendering.OpenGL.Raw.ARB.PixelBufferObject
 import Graphics.Rendering.OpenGL.Raw.ARB.PointParameters
@@ -217,8 +217,8 @@
 import Graphics.Rendering.OpenGL.Raw.ARB.QueryBufferObject
 import Graphics.Rendering.OpenGL.Raw.ARB.RobustnessCompatibility
 import Graphics.Rendering.OpenGL.Raw.ARB.RobustnessCore
-import Graphics.Rendering.OpenGL.Raw.ARB.SamplerObjects
 import Graphics.Rendering.OpenGL.Raw.ARB.SampleShading
+import Graphics.Rendering.OpenGL.Raw.ARB.SamplerObjects
 import Graphics.Rendering.OpenGL.Raw.ARB.SeamlessCubeMap
 import Graphics.Rendering.OpenGL.Raw.ARB.SeamlessCubemapPerTexture
 import Graphics.Rendering.OpenGL.Raw.ARB.SeparateShaderObjects
@@ -229,8 +229,8 @@
 import Graphics.Rendering.OpenGL.Raw.ARB.ShaderSubroutine
 import Graphics.Rendering.OpenGL.Raw.ARB.ShadingLanguage100
 import Graphics.Rendering.OpenGL.Raw.ARB.ShadingLanguageInclude
-import Graphics.Rendering.OpenGL.Raw.ARB.ShadowAmbient
 import Graphics.Rendering.OpenGL.Raw.ARB.Shadow
+import Graphics.Rendering.OpenGL.Raw.ARB.ShadowAmbient
 import Graphics.Rendering.OpenGL.Raw.ARB.SparseBuffer
 import Graphics.Rendering.OpenGL.Raw.ARB.SparseTexture
 import Graphics.Rendering.OpenGL.Raw.ARB.StencilTexturing
@@ -241,11 +241,11 @@
 import Graphics.Rendering.OpenGL.Raw.ARB.TextureBufferObject
 import Graphics.Rendering.OpenGL.Raw.ARB.TextureBufferObjectRGB32
 import Graphics.Rendering.OpenGL.Raw.ARB.TextureBufferRange
-import Graphics.Rendering.OpenGL.Raw.ARB.TextureCompressionBPTC
 import Graphics.Rendering.OpenGL.Raw.ARB.TextureCompression
+import Graphics.Rendering.OpenGL.Raw.ARB.TextureCompressionBPTC
 import Graphics.Rendering.OpenGL.Raw.ARB.TextureCompressionRGTC
-import Graphics.Rendering.OpenGL.Raw.ARB.TextureCubeMapArray
 import Graphics.Rendering.OpenGL.Raw.ARB.TextureCubeMap
+import Graphics.Rendering.OpenGL.Raw.ARB.TextureCubeMapArray
 import Graphics.Rendering.OpenGL.Raw.ARB.TextureEnvCombine
 import Graphics.Rendering.OpenGL.Raw.ARB.TextureEnvDot3
 import Graphics.Rendering.OpenGL.Raw.ARB.TextureFloat
@@ -253,9 +253,9 @@
 import Graphics.Rendering.OpenGL.Raw.ARB.TextureMirrorClampToEdge
 import Graphics.Rendering.OpenGL.Raw.ARB.TextureMirroredRepeat
 import Graphics.Rendering.OpenGL.Raw.ARB.TextureMultisample
-import Graphics.Rendering.OpenGL.Raw.ARB.TextureRectangle
-import Graphics.Rendering.OpenGL.Raw.ARB.TextureRGB10A2UI
 import Graphics.Rendering.OpenGL.Raw.ARB.TextureRG
+import Graphics.Rendering.OpenGL.Raw.ARB.TextureRGB10A2UI
+import Graphics.Rendering.OpenGL.Raw.ARB.TextureRectangle
 import Graphics.Rendering.OpenGL.Raw.ARB.TextureStencil8
 import Graphics.Rendering.OpenGL.Raw.ARB.TextureStorage
 import Graphics.Rendering.OpenGL.Raw.ARB.TextureStorageMultisample
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/FramebufferObjectCompatibility.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/FramebufferObjectCompatibility.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/FramebufferObjectCompatibility.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/ARB/FramebufferObjectCompatibility.hs
@@ -8,7 +8,7 @@
 -- Stability   :  stable
 -- Portability :  portable
 --
--- The <https://www.opengl.org/registry/specs/ARB/framebuffer_object_compatibility.txt ARB_framebuffer_object_compatibility> extension.
+-- The <https://www.opengl.org/registry/specs/ARB/framebuffer_object.txt ARB_framebuffer_object> extension.
 --
 --------------------------------------------------------------------------------
 
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/FramebufferObjectCore.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/FramebufferObjectCore.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/FramebufferObjectCore.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/ARB/FramebufferObjectCore.hs
@@ -8,7 +8,7 @@
 -- Stability   :  stable
 -- Portability :  portable
 --
--- The <https://www.opengl.org/registry/specs/ARB/framebuffer_object_core.txt ARB_framebuffer_object_core> extension.
+-- The <https://www.opengl.org/registry/specs/ARB/framebuffer_object.txt ARB_framebuffer_object> extension.
 --
 --------------------------------------------------------------------------------
 
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/ImagingCompatibility.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/ImagingCompatibility.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/ImagingCompatibility.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/ARB/ImagingCompatibility.hs
@@ -8,7 +8,7 @@
 -- Stability   :  stable
 -- Portability :  portable
 --
--- The <https://www.opengl.org/registry/specs/ARB/imaging_compatibility.txt ARB_imaging_compatibility> extension.
+-- The <https://www.opengl.org/registry/specs/ARB/imaging.txt ARB_imaging> extension.
 --
 --------------------------------------------------------------------------------
 
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/ImagingCore.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/ImagingCore.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/ImagingCore.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/ARB/ImagingCore.hs
@@ -8,7 +8,7 @@
 -- Stability   :  stable
 -- Portability :  portable
 --
--- The <https://www.opengl.org/registry/specs/ARB/imaging_core.txt ARB_imaging_core> extension.
+-- The <https://www.opengl.org/registry/specs/ARB/imaging.txt ARB_imaging> extension.
 --
 --------------------------------------------------------------------------------
 
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/RobustnessCompatibility.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/RobustnessCompatibility.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/RobustnessCompatibility.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/ARB/RobustnessCompatibility.hs
@@ -8,7 +8,7 @@
 -- Stability   :  stable
 -- Portability :  portable
 --
--- The <https://www.opengl.org/registry/specs/ARB/robustness_compatibility.txt ARB_robustness_compatibility> extension.
+-- The <https://www.opengl.org/registry/specs/ARB/robustness.txt ARB_robustness> extension.
 --
 --------------------------------------------------------------------------------
 
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/RobustnessCore.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/RobustnessCore.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/RobustnessCore.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/ARB/RobustnessCore.hs
@@ -8,7 +8,7 @@
 -- Stability   :  stable
 -- Portability :  portable
 --
--- The <https://www.opengl.org/registry/specs/ARB/robustness_core.txt ARB_robustness_core> extension.
+-- The <https://www.opengl.org/registry/specs/ARB/robustness.txt ARB_robustness> extension.
 --
 --------------------------------------------------------------------------------
 
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/VertexType2101010RevCompatibility.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/VertexType2101010RevCompatibility.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/VertexType2101010RevCompatibility.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/ARB/VertexType2101010RevCompatibility.hs
@@ -8,7 +8,7 @@
 -- Stability   :  stable
 -- Portability :  portable
 --
--- The <https://www.opengl.org/registry/specs/ARB/vertex_type_2_10_10_10_rev_compatibility.txt ARB_vertex_type_2_10_10_10_rev_compatibility> extension.
+-- The <https://www.opengl.org/registry/specs/ARB/vertex_type_2_10_10_10_rev.txt ARB_vertex_type_2_10_10_10_rev> extension.
 --
 --------------------------------------------------------------------------------
 
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/VertexType2101010RevCore.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/VertexType2101010RevCore.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/VertexType2101010RevCore.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/ARB/VertexType2101010RevCore.hs
@@ -8,7 +8,7 @@
 -- Stability   :  stable
 -- Portability :  portable
 --
--- The <https://www.opengl.org/registry/specs/ARB/vertex_type_2_10_10_10_rev_core.txt ARB_vertex_type_2_10_10_10_rev_core> extension.
+-- The <https://www.opengl.org/registry/specs/ARB/vertex_type_2_10_10_10_rev.txt ARB_vertex_type_2_10_10_10_rev> extension.
 --
 --------------------------------------------------------------------------------
 
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ATI.hs b/src/Graphics/Rendering/OpenGL/Raw/ATI.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/ATI.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/ATI.hs
@@ -19,8 +19,8 @@
   module Graphics.Rendering.OpenGL.Raw.ATI.FragmentShader,
   module Graphics.Rendering.OpenGL.Raw.ATI.MapObjectBuffer,
   module Graphics.Rendering.OpenGL.Raw.ATI.Meminfo,
-  module Graphics.Rendering.OpenGL.Raw.ATI.PixelFormatFloat,
   module Graphics.Rendering.OpenGL.Raw.ATI.PNTriangles,
+  module Graphics.Rendering.OpenGL.Raw.ATI.PixelFormatFloat,
   module Graphics.Rendering.OpenGL.Raw.ATI.SeparateStencil,
   module Graphics.Rendering.OpenGL.Raw.ATI.TextFragmentShader,
   module Graphics.Rendering.OpenGL.Raw.ATI.TextureEnvCombine3,
@@ -37,8 +37,8 @@
 import Graphics.Rendering.OpenGL.Raw.ATI.FragmentShader
 import Graphics.Rendering.OpenGL.Raw.ATI.MapObjectBuffer
 import Graphics.Rendering.OpenGL.Raw.ATI.Meminfo
-import Graphics.Rendering.OpenGL.Raw.ATI.PixelFormatFloat
 import Graphics.Rendering.OpenGL.Raw.ATI.PNTriangles
+import Graphics.Rendering.OpenGL.Raw.ATI.PixelFormatFloat
 import Graphics.Rendering.OpenGL.Raw.ATI.SeparateStencil
 import Graphics.Rendering.OpenGL.Raw.ATI.TextFragmentShader
 import Graphics.Rendering.OpenGL.Raw.ATI.TextureEnvCombine3
diff --git a/src/Graphics/Rendering/OpenGL/Raw/Compatibility30.hs b/src/Graphics/Rendering/OpenGL/Raw/Compatibility30.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/Compatibility30.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/Compatibility30.hs
@@ -168,8 +168,24 @@
   gl_COLOR_ATTACHMENT13,
   gl_COLOR_ATTACHMENT14,
   gl_COLOR_ATTACHMENT15,
+  gl_COLOR_ATTACHMENT16,
+  gl_COLOR_ATTACHMENT17,
+  gl_COLOR_ATTACHMENT18,
+  gl_COLOR_ATTACHMENT19,
   gl_COLOR_ATTACHMENT2,
+  gl_COLOR_ATTACHMENT20,
+  gl_COLOR_ATTACHMENT21,
+  gl_COLOR_ATTACHMENT22,
+  gl_COLOR_ATTACHMENT23,
+  gl_COLOR_ATTACHMENT24,
+  gl_COLOR_ATTACHMENT25,
+  gl_COLOR_ATTACHMENT26,
+  gl_COLOR_ATTACHMENT27,
+  gl_COLOR_ATTACHMENT28,
+  gl_COLOR_ATTACHMENT29,
   gl_COLOR_ATTACHMENT3,
+  gl_COLOR_ATTACHMENT30,
+  gl_COLOR_ATTACHMENT31,
   gl_COLOR_ATTACHMENT4,
   gl_COLOR_ATTACHMENT5,
   gl_COLOR_ATTACHMENT6,
diff --git a/src/Graphics/Rendering/OpenGL/Raw/Compatibility31.hs b/src/Graphics/Rendering/OpenGL/Raw/Compatibility31.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/Compatibility31.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/Compatibility31.hs
@@ -170,8 +170,24 @@
   gl_COLOR_ATTACHMENT13,
   gl_COLOR_ATTACHMENT14,
   gl_COLOR_ATTACHMENT15,
+  gl_COLOR_ATTACHMENT16,
+  gl_COLOR_ATTACHMENT17,
+  gl_COLOR_ATTACHMENT18,
+  gl_COLOR_ATTACHMENT19,
   gl_COLOR_ATTACHMENT2,
+  gl_COLOR_ATTACHMENT20,
+  gl_COLOR_ATTACHMENT21,
+  gl_COLOR_ATTACHMENT22,
+  gl_COLOR_ATTACHMENT23,
+  gl_COLOR_ATTACHMENT24,
+  gl_COLOR_ATTACHMENT25,
+  gl_COLOR_ATTACHMENT26,
+  gl_COLOR_ATTACHMENT27,
+  gl_COLOR_ATTACHMENT28,
+  gl_COLOR_ATTACHMENT29,
   gl_COLOR_ATTACHMENT3,
+  gl_COLOR_ATTACHMENT30,
+  gl_COLOR_ATTACHMENT31,
   gl_COLOR_ATTACHMENT4,
   gl_COLOR_ATTACHMENT5,
   gl_COLOR_ATTACHMENT6,
diff --git a/src/Graphics/Rendering/OpenGL/Raw/Compatibility32.hs b/src/Graphics/Rendering/OpenGL/Raw/Compatibility32.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/Compatibility32.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/Compatibility32.hs
@@ -174,8 +174,24 @@
   gl_COLOR_ATTACHMENT13,
   gl_COLOR_ATTACHMENT14,
   gl_COLOR_ATTACHMENT15,
+  gl_COLOR_ATTACHMENT16,
+  gl_COLOR_ATTACHMENT17,
+  gl_COLOR_ATTACHMENT18,
+  gl_COLOR_ATTACHMENT19,
   gl_COLOR_ATTACHMENT2,
+  gl_COLOR_ATTACHMENT20,
+  gl_COLOR_ATTACHMENT21,
+  gl_COLOR_ATTACHMENT22,
+  gl_COLOR_ATTACHMENT23,
+  gl_COLOR_ATTACHMENT24,
+  gl_COLOR_ATTACHMENT25,
+  gl_COLOR_ATTACHMENT26,
+  gl_COLOR_ATTACHMENT27,
+  gl_COLOR_ATTACHMENT28,
+  gl_COLOR_ATTACHMENT29,
   gl_COLOR_ATTACHMENT3,
+  gl_COLOR_ATTACHMENT30,
+  gl_COLOR_ATTACHMENT31,
   gl_COLOR_ATTACHMENT4,
   gl_COLOR_ATTACHMENT5,
   gl_COLOR_ATTACHMENT6,
diff --git a/src/Graphics/Rendering/OpenGL/Raw/Compatibility33.hs b/src/Graphics/Rendering/OpenGL/Raw/Compatibility33.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/Compatibility33.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/Compatibility33.hs
@@ -175,8 +175,24 @@
   gl_COLOR_ATTACHMENT13,
   gl_COLOR_ATTACHMENT14,
   gl_COLOR_ATTACHMENT15,
+  gl_COLOR_ATTACHMENT16,
+  gl_COLOR_ATTACHMENT17,
+  gl_COLOR_ATTACHMENT18,
+  gl_COLOR_ATTACHMENT19,
   gl_COLOR_ATTACHMENT2,
+  gl_COLOR_ATTACHMENT20,
+  gl_COLOR_ATTACHMENT21,
+  gl_COLOR_ATTACHMENT22,
+  gl_COLOR_ATTACHMENT23,
+  gl_COLOR_ATTACHMENT24,
+  gl_COLOR_ATTACHMENT25,
+  gl_COLOR_ATTACHMENT26,
+  gl_COLOR_ATTACHMENT27,
+  gl_COLOR_ATTACHMENT28,
+  gl_COLOR_ATTACHMENT29,
   gl_COLOR_ATTACHMENT3,
+  gl_COLOR_ATTACHMENT30,
+  gl_COLOR_ATTACHMENT31,
   gl_COLOR_ATTACHMENT4,
   gl_COLOR_ATTACHMENT5,
   gl_COLOR_ATTACHMENT6,
diff --git a/src/Graphics/Rendering/OpenGL/Raw/Compatibility40.hs b/src/Graphics/Rendering/OpenGL/Raw/Compatibility40.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/Compatibility40.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/Compatibility40.hs
@@ -180,8 +180,24 @@
   gl_COLOR_ATTACHMENT13,
   gl_COLOR_ATTACHMENT14,
   gl_COLOR_ATTACHMENT15,
+  gl_COLOR_ATTACHMENT16,
+  gl_COLOR_ATTACHMENT17,
+  gl_COLOR_ATTACHMENT18,
+  gl_COLOR_ATTACHMENT19,
   gl_COLOR_ATTACHMENT2,
+  gl_COLOR_ATTACHMENT20,
+  gl_COLOR_ATTACHMENT21,
+  gl_COLOR_ATTACHMENT22,
+  gl_COLOR_ATTACHMENT23,
+  gl_COLOR_ATTACHMENT24,
+  gl_COLOR_ATTACHMENT25,
+  gl_COLOR_ATTACHMENT26,
+  gl_COLOR_ATTACHMENT27,
+  gl_COLOR_ATTACHMENT28,
+  gl_COLOR_ATTACHMENT29,
   gl_COLOR_ATTACHMENT3,
+  gl_COLOR_ATTACHMENT30,
+  gl_COLOR_ATTACHMENT31,
   gl_COLOR_ATTACHMENT4,
   gl_COLOR_ATTACHMENT5,
   gl_COLOR_ATTACHMENT6,
diff --git a/src/Graphics/Rendering/OpenGL/Raw/Compatibility41.hs b/src/Graphics/Rendering/OpenGL/Raw/Compatibility41.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/Compatibility41.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/Compatibility41.hs
@@ -182,8 +182,24 @@
   gl_COLOR_ATTACHMENT13,
   gl_COLOR_ATTACHMENT14,
   gl_COLOR_ATTACHMENT15,
+  gl_COLOR_ATTACHMENT16,
+  gl_COLOR_ATTACHMENT17,
+  gl_COLOR_ATTACHMENT18,
+  gl_COLOR_ATTACHMENT19,
   gl_COLOR_ATTACHMENT2,
+  gl_COLOR_ATTACHMENT20,
+  gl_COLOR_ATTACHMENT21,
+  gl_COLOR_ATTACHMENT22,
+  gl_COLOR_ATTACHMENT23,
+  gl_COLOR_ATTACHMENT24,
+  gl_COLOR_ATTACHMENT25,
+  gl_COLOR_ATTACHMENT26,
+  gl_COLOR_ATTACHMENT27,
+  gl_COLOR_ATTACHMENT28,
+  gl_COLOR_ATTACHMENT29,
   gl_COLOR_ATTACHMENT3,
+  gl_COLOR_ATTACHMENT30,
+  gl_COLOR_ATTACHMENT31,
   gl_COLOR_ATTACHMENT4,
   gl_COLOR_ATTACHMENT5,
   gl_COLOR_ATTACHMENT6,
diff --git a/src/Graphics/Rendering/OpenGL/Raw/Compatibility42.hs b/src/Graphics/Rendering/OpenGL/Raw/Compatibility42.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/Compatibility42.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/Compatibility42.hs
@@ -198,8 +198,24 @@
   gl_COLOR_ATTACHMENT13,
   gl_COLOR_ATTACHMENT14,
   gl_COLOR_ATTACHMENT15,
+  gl_COLOR_ATTACHMENT16,
+  gl_COLOR_ATTACHMENT17,
+  gl_COLOR_ATTACHMENT18,
+  gl_COLOR_ATTACHMENT19,
   gl_COLOR_ATTACHMENT2,
+  gl_COLOR_ATTACHMENT20,
+  gl_COLOR_ATTACHMENT21,
+  gl_COLOR_ATTACHMENT22,
+  gl_COLOR_ATTACHMENT23,
+  gl_COLOR_ATTACHMENT24,
+  gl_COLOR_ATTACHMENT25,
+  gl_COLOR_ATTACHMENT26,
+  gl_COLOR_ATTACHMENT27,
+  gl_COLOR_ATTACHMENT28,
+  gl_COLOR_ATTACHMENT29,
   gl_COLOR_ATTACHMENT3,
+  gl_COLOR_ATTACHMENT30,
+  gl_COLOR_ATTACHMENT31,
   gl_COLOR_ATTACHMENT4,
   gl_COLOR_ATTACHMENT5,
   gl_COLOR_ATTACHMENT6,
diff --git a/src/Graphics/Rendering/OpenGL/Raw/Compatibility43.hs b/src/Graphics/Rendering/OpenGL/Raw/Compatibility43.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/Compatibility43.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/Compatibility43.hs
@@ -216,8 +216,24 @@
   gl_COLOR_ATTACHMENT13,
   gl_COLOR_ATTACHMENT14,
   gl_COLOR_ATTACHMENT15,
+  gl_COLOR_ATTACHMENT16,
+  gl_COLOR_ATTACHMENT17,
+  gl_COLOR_ATTACHMENT18,
+  gl_COLOR_ATTACHMENT19,
   gl_COLOR_ATTACHMENT2,
+  gl_COLOR_ATTACHMENT20,
+  gl_COLOR_ATTACHMENT21,
+  gl_COLOR_ATTACHMENT22,
+  gl_COLOR_ATTACHMENT23,
+  gl_COLOR_ATTACHMENT24,
+  gl_COLOR_ATTACHMENT25,
+  gl_COLOR_ATTACHMENT26,
+  gl_COLOR_ATTACHMENT27,
+  gl_COLOR_ATTACHMENT28,
+  gl_COLOR_ATTACHMENT29,
   gl_COLOR_ATTACHMENT3,
+  gl_COLOR_ATTACHMENT30,
+  gl_COLOR_ATTACHMENT31,
   gl_COLOR_ATTACHMENT4,
   gl_COLOR_ATTACHMENT5,
   gl_COLOR_ATTACHMENT6,
diff --git a/src/Graphics/Rendering/OpenGL/Raw/Compatibility44.hs b/src/Graphics/Rendering/OpenGL/Raw/Compatibility44.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/Compatibility44.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/Compatibility44.hs
@@ -221,8 +221,24 @@
   gl_COLOR_ATTACHMENT13,
   gl_COLOR_ATTACHMENT14,
   gl_COLOR_ATTACHMENT15,
+  gl_COLOR_ATTACHMENT16,
+  gl_COLOR_ATTACHMENT17,
+  gl_COLOR_ATTACHMENT18,
+  gl_COLOR_ATTACHMENT19,
   gl_COLOR_ATTACHMENT2,
+  gl_COLOR_ATTACHMENT20,
+  gl_COLOR_ATTACHMENT21,
+  gl_COLOR_ATTACHMENT22,
+  gl_COLOR_ATTACHMENT23,
+  gl_COLOR_ATTACHMENT24,
+  gl_COLOR_ATTACHMENT25,
+  gl_COLOR_ATTACHMENT26,
+  gl_COLOR_ATTACHMENT27,
+  gl_COLOR_ATTACHMENT28,
+  gl_COLOR_ATTACHMENT29,
   gl_COLOR_ATTACHMENT3,
+  gl_COLOR_ATTACHMENT30,
+  gl_COLOR_ATTACHMENT31,
   gl_COLOR_ATTACHMENT4,
   gl_COLOR_ATTACHMENT5,
   gl_COLOR_ATTACHMENT6,
diff --git a/src/Graphics/Rendering/OpenGL/Raw/Compatibility45.hs b/src/Graphics/Rendering/OpenGL/Raw/Compatibility45.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/Compatibility45.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/Compatibility45.hs
@@ -223,8 +223,24 @@
   gl_COLOR_ATTACHMENT13,
   gl_COLOR_ATTACHMENT14,
   gl_COLOR_ATTACHMENT15,
+  gl_COLOR_ATTACHMENT16,
+  gl_COLOR_ATTACHMENT17,
+  gl_COLOR_ATTACHMENT18,
+  gl_COLOR_ATTACHMENT19,
   gl_COLOR_ATTACHMENT2,
+  gl_COLOR_ATTACHMENT20,
+  gl_COLOR_ATTACHMENT21,
+  gl_COLOR_ATTACHMENT22,
+  gl_COLOR_ATTACHMENT23,
+  gl_COLOR_ATTACHMENT24,
+  gl_COLOR_ATTACHMENT25,
+  gl_COLOR_ATTACHMENT26,
+  gl_COLOR_ATTACHMENT27,
+  gl_COLOR_ATTACHMENT28,
+  gl_COLOR_ATTACHMENT29,
   gl_COLOR_ATTACHMENT3,
+  gl_COLOR_ATTACHMENT30,
+  gl_COLOR_ATTACHMENT31,
   gl_COLOR_ATTACHMENT4,
   gl_COLOR_ATTACHMENT5,
   gl_COLOR_ATTACHMENT6,
diff --git a/src/Graphics/Rendering/OpenGL/Raw/Core30.hs b/src/Graphics/Rendering/OpenGL/Raw/Core30.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/Core30.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/Core30.hs
@@ -168,8 +168,24 @@
   gl_COLOR_ATTACHMENT13,
   gl_COLOR_ATTACHMENT14,
   gl_COLOR_ATTACHMENT15,
+  gl_COLOR_ATTACHMENT16,
+  gl_COLOR_ATTACHMENT17,
+  gl_COLOR_ATTACHMENT18,
+  gl_COLOR_ATTACHMENT19,
   gl_COLOR_ATTACHMENT2,
+  gl_COLOR_ATTACHMENT20,
+  gl_COLOR_ATTACHMENT21,
+  gl_COLOR_ATTACHMENT22,
+  gl_COLOR_ATTACHMENT23,
+  gl_COLOR_ATTACHMENT24,
+  gl_COLOR_ATTACHMENT25,
+  gl_COLOR_ATTACHMENT26,
+  gl_COLOR_ATTACHMENT27,
+  gl_COLOR_ATTACHMENT28,
+  gl_COLOR_ATTACHMENT29,
   gl_COLOR_ATTACHMENT3,
+  gl_COLOR_ATTACHMENT30,
+  gl_COLOR_ATTACHMENT31,
   gl_COLOR_ATTACHMENT4,
   gl_COLOR_ATTACHMENT5,
   gl_COLOR_ATTACHMENT6,
diff --git a/src/Graphics/Rendering/OpenGL/Raw/Core31.hs b/src/Graphics/Rendering/OpenGL/Raw/Core31.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/Core31.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/Core31.hs
@@ -170,8 +170,24 @@
   gl_COLOR_ATTACHMENT13,
   gl_COLOR_ATTACHMENT14,
   gl_COLOR_ATTACHMENT15,
+  gl_COLOR_ATTACHMENT16,
+  gl_COLOR_ATTACHMENT17,
+  gl_COLOR_ATTACHMENT18,
+  gl_COLOR_ATTACHMENT19,
   gl_COLOR_ATTACHMENT2,
+  gl_COLOR_ATTACHMENT20,
+  gl_COLOR_ATTACHMENT21,
+  gl_COLOR_ATTACHMENT22,
+  gl_COLOR_ATTACHMENT23,
+  gl_COLOR_ATTACHMENT24,
+  gl_COLOR_ATTACHMENT25,
+  gl_COLOR_ATTACHMENT26,
+  gl_COLOR_ATTACHMENT27,
+  gl_COLOR_ATTACHMENT28,
+  gl_COLOR_ATTACHMENT29,
   gl_COLOR_ATTACHMENT3,
+  gl_COLOR_ATTACHMENT30,
+  gl_COLOR_ATTACHMENT31,
   gl_COLOR_ATTACHMENT4,
   gl_COLOR_ATTACHMENT5,
   gl_COLOR_ATTACHMENT6,
diff --git a/src/Graphics/Rendering/OpenGL/Raw/Core32.hs b/src/Graphics/Rendering/OpenGL/Raw/Core32.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/Core32.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/Core32.hs
@@ -105,8 +105,24 @@
   gl_COLOR_ATTACHMENT13,
   gl_COLOR_ATTACHMENT14,
   gl_COLOR_ATTACHMENT15,
+  gl_COLOR_ATTACHMENT16,
+  gl_COLOR_ATTACHMENT17,
+  gl_COLOR_ATTACHMENT18,
+  gl_COLOR_ATTACHMENT19,
   gl_COLOR_ATTACHMENT2,
+  gl_COLOR_ATTACHMENT20,
+  gl_COLOR_ATTACHMENT21,
+  gl_COLOR_ATTACHMENT22,
+  gl_COLOR_ATTACHMENT23,
+  gl_COLOR_ATTACHMENT24,
+  gl_COLOR_ATTACHMENT25,
+  gl_COLOR_ATTACHMENT26,
+  gl_COLOR_ATTACHMENT27,
+  gl_COLOR_ATTACHMENT28,
+  gl_COLOR_ATTACHMENT29,
   gl_COLOR_ATTACHMENT3,
+  gl_COLOR_ATTACHMENT30,
+  gl_COLOR_ATTACHMENT31,
   gl_COLOR_ATTACHMENT4,
   gl_COLOR_ATTACHMENT5,
   gl_COLOR_ATTACHMENT6,
diff --git a/src/Graphics/Rendering/OpenGL/Raw/Core33.hs b/src/Graphics/Rendering/OpenGL/Raw/Core33.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/Core33.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/Core33.hs
@@ -106,8 +106,24 @@
   gl_COLOR_ATTACHMENT13,
   gl_COLOR_ATTACHMENT14,
   gl_COLOR_ATTACHMENT15,
+  gl_COLOR_ATTACHMENT16,
+  gl_COLOR_ATTACHMENT17,
+  gl_COLOR_ATTACHMENT18,
+  gl_COLOR_ATTACHMENT19,
   gl_COLOR_ATTACHMENT2,
+  gl_COLOR_ATTACHMENT20,
+  gl_COLOR_ATTACHMENT21,
+  gl_COLOR_ATTACHMENT22,
+  gl_COLOR_ATTACHMENT23,
+  gl_COLOR_ATTACHMENT24,
+  gl_COLOR_ATTACHMENT25,
+  gl_COLOR_ATTACHMENT26,
+  gl_COLOR_ATTACHMENT27,
+  gl_COLOR_ATTACHMENT28,
+  gl_COLOR_ATTACHMENT29,
   gl_COLOR_ATTACHMENT3,
+  gl_COLOR_ATTACHMENT30,
+  gl_COLOR_ATTACHMENT31,
   gl_COLOR_ATTACHMENT4,
   gl_COLOR_ATTACHMENT5,
   gl_COLOR_ATTACHMENT6,
diff --git a/src/Graphics/Rendering/OpenGL/Raw/Core40.hs b/src/Graphics/Rendering/OpenGL/Raw/Core40.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/Core40.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/Core40.hs
@@ -111,8 +111,24 @@
   gl_COLOR_ATTACHMENT13,
   gl_COLOR_ATTACHMENT14,
   gl_COLOR_ATTACHMENT15,
+  gl_COLOR_ATTACHMENT16,
+  gl_COLOR_ATTACHMENT17,
+  gl_COLOR_ATTACHMENT18,
+  gl_COLOR_ATTACHMENT19,
   gl_COLOR_ATTACHMENT2,
+  gl_COLOR_ATTACHMENT20,
+  gl_COLOR_ATTACHMENT21,
+  gl_COLOR_ATTACHMENT22,
+  gl_COLOR_ATTACHMENT23,
+  gl_COLOR_ATTACHMENT24,
+  gl_COLOR_ATTACHMENT25,
+  gl_COLOR_ATTACHMENT26,
+  gl_COLOR_ATTACHMENT27,
+  gl_COLOR_ATTACHMENT28,
+  gl_COLOR_ATTACHMENT29,
   gl_COLOR_ATTACHMENT3,
+  gl_COLOR_ATTACHMENT30,
+  gl_COLOR_ATTACHMENT31,
   gl_COLOR_ATTACHMENT4,
   gl_COLOR_ATTACHMENT5,
   gl_COLOR_ATTACHMENT6,
diff --git a/src/Graphics/Rendering/OpenGL/Raw/Core41.hs b/src/Graphics/Rendering/OpenGL/Raw/Core41.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/Core41.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/Core41.hs
@@ -113,8 +113,24 @@
   gl_COLOR_ATTACHMENT13,
   gl_COLOR_ATTACHMENT14,
   gl_COLOR_ATTACHMENT15,
+  gl_COLOR_ATTACHMENT16,
+  gl_COLOR_ATTACHMENT17,
+  gl_COLOR_ATTACHMENT18,
+  gl_COLOR_ATTACHMENT19,
   gl_COLOR_ATTACHMENT2,
+  gl_COLOR_ATTACHMENT20,
+  gl_COLOR_ATTACHMENT21,
+  gl_COLOR_ATTACHMENT22,
+  gl_COLOR_ATTACHMENT23,
+  gl_COLOR_ATTACHMENT24,
+  gl_COLOR_ATTACHMENT25,
+  gl_COLOR_ATTACHMENT26,
+  gl_COLOR_ATTACHMENT27,
+  gl_COLOR_ATTACHMENT28,
+  gl_COLOR_ATTACHMENT29,
   gl_COLOR_ATTACHMENT3,
+  gl_COLOR_ATTACHMENT30,
+  gl_COLOR_ATTACHMENT31,
   gl_COLOR_ATTACHMENT4,
   gl_COLOR_ATTACHMENT5,
   gl_COLOR_ATTACHMENT6,
diff --git a/src/Graphics/Rendering/OpenGL/Raw/Core42.hs b/src/Graphics/Rendering/OpenGL/Raw/Core42.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/Core42.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/Core42.hs
@@ -129,8 +129,24 @@
   gl_COLOR_ATTACHMENT13,
   gl_COLOR_ATTACHMENT14,
   gl_COLOR_ATTACHMENT15,
+  gl_COLOR_ATTACHMENT16,
+  gl_COLOR_ATTACHMENT17,
+  gl_COLOR_ATTACHMENT18,
+  gl_COLOR_ATTACHMENT19,
   gl_COLOR_ATTACHMENT2,
+  gl_COLOR_ATTACHMENT20,
+  gl_COLOR_ATTACHMENT21,
+  gl_COLOR_ATTACHMENT22,
+  gl_COLOR_ATTACHMENT23,
+  gl_COLOR_ATTACHMENT24,
+  gl_COLOR_ATTACHMENT25,
+  gl_COLOR_ATTACHMENT26,
+  gl_COLOR_ATTACHMENT27,
+  gl_COLOR_ATTACHMENT28,
+  gl_COLOR_ATTACHMENT29,
   gl_COLOR_ATTACHMENT3,
+  gl_COLOR_ATTACHMENT30,
+  gl_COLOR_ATTACHMENT31,
   gl_COLOR_ATTACHMENT4,
   gl_COLOR_ATTACHMENT5,
   gl_COLOR_ATTACHMENT6,
diff --git a/src/Graphics/Rendering/OpenGL/Raw/Core43.hs b/src/Graphics/Rendering/OpenGL/Raw/Core43.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/Core43.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/Core43.hs
@@ -147,8 +147,24 @@
   gl_COLOR_ATTACHMENT13,
   gl_COLOR_ATTACHMENT14,
   gl_COLOR_ATTACHMENT15,
+  gl_COLOR_ATTACHMENT16,
+  gl_COLOR_ATTACHMENT17,
+  gl_COLOR_ATTACHMENT18,
+  gl_COLOR_ATTACHMENT19,
   gl_COLOR_ATTACHMENT2,
+  gl_COLOR_ATTACHMENT20,
+  gl_COLOR_ATTACHMENT21,
+  gl_COLOR_ATTACHMENT22,
+  gl_COLOR_ATTACHMENT23,
+  gl_COLOR_ATTACHMENT24,
+  gl_COLOR_ATTACHMENT25,
+  gl_COLOR_ATTACHMENT26,
+  gl_COLOR_ATTACHMENT27,
+  gl_COLOR_ATTACHMENT28,
+  gl_COLOR_ATTACHMENT29,
   gl_COLOR_ATTACHMENT3,
+  gl_COLOR_ATTACHMENT30,
+  gl_COLOR_ATTACHMENT31,
   gl_COLOR_ATTACHMENT4,
   gl_COLOR_ATTACHMENT5,
   gl_COLOR_ATTACHMENT6,
diff --git a/src/Graphics/Rendering/OpenGL/Raw/Core44.hs b/src/Graphics/Rendering/OpenGL/Raw/Core44.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/Core44.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/Core44.hs
@@ -152,8 +152,24 @@
   gl_COLOR_ATTACHMENT13,
   gl_COLOR_ATTACHMENT14,
   gl_COLOR_ATTACHMENT15,
+  gl_COLOR_ATTACHMENT16,
+  gl_COLOR_ATTACHMENT17,
+  gl_COLOR_ATTACHMENT18,
+  gl_COLOR_ATTACHMENT19,
   gl_COLOR_ATTACHMENT2,
+  gl_COLOR_ATTACHMENT20,
+  gl_COLOR_ATTACHMENT21,
+  gl_COLOR_ATTACHMENT22,
+  gl_COLOR_ATTACHMENT23,
+  gl_COLOR_ATTACHMENT24,
+  gl_COLOR_ATTACHMENT25,
+  gl_COLOR_ATTACHMENT26,
+  gl_COLOR_ATTACHMENT27,
+  gl_COLOR_ATTACHMENT28,
+  gl_COLOR_ATTACHMENT29,
   gl_COLOR_ATTACHMENT3,
+  gl_COLOR_ATTACHMENT30,
+  gl_COLOR_ATTACHMENT31,
   gl_COLOR_ATTACHMENT4,
   gl_COLOR_ATTACHMENT5,
   gl_COLOR_ATTACHMENT6,
diff --git a/src/Graphics/Rendering/OpenGL/Raw/Core45.hs b/src/Graphics/Rendering/OpenGL/Raw/Core45.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/Core45.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/Core45.hs
@@ -154,8 +154,24 @@
   gl_COLOR_ATTACHMENT13,
   gl_COLOR_ATTACHMENT14,
   gl_COLOR_ATTACHMENT15,
+  gl_COLOR_ATTACHMENT16,
+  gl_COLOR_ATTACHMENT17,
+  gl_COLOR_ATTACHMENT18,
+  gl_COLOR_ATTACHMENT19,
   gl_COLOR_ATTACHMENT2,
+  gl_COLOR_ATTACHMENT20,
+  gl_COLOR_ATTACHMENT21,
+  gl_COLOR_ATTACHMENT22,
+  gl_COLOR_ATTACHMENT23,
+  gl_COLOR_ATTACHMENT24,
+  gl_COLOR_ATTACHMENT25,
+  gl_COLOR_ATTACHMENT26,
+  gl_COLOR_ATTACHMENT27,
+  gl_COLOR_ATTACHMENT28,
+  gl_COLOR_ATTACHMENT29,
   gl_COLOR_ATTACHMENT3,
+  gl_COLOR_ATTACHMENT30,
+  gl_COLOR_ATTACHMENT31,
   gl_COLOR_ATTACHMENT4,
   gl_COLOR_ATTACHMENT5,
   gl_COLOR_ATTACHMENT6,
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/EXT.hs
@@ -21,8 +21,8 @@
   module Graphics.Rendering.OpenGL.Raw.EXT.BlendFuncSeparate,
   module Graphics.Rendering.OpenGL.Raw.EXT.BlendMinmax,
   module Graphics.Rendering.OpenGL.Raw.EXT.BlendSubtract,
-  module Graphics.Rendering.OpenGL.Raw.EXT.ClipVolumeHint,
   module Graphics.Rendering.OpenGL.Raw.EXT.CMYKA,
+  module Graphics.Rendering.OpenGL.Raw.EXT.ClipVolumeHint,
   module Graphics.Rendering.OpenGL.Raw.EXT.ColorSubtable,
   module Graphics.Rendering.OpenGL.Raw.EXT.CompiledVertexArray,
   module Graphics.Rendering.OpenGL.Raw.EXT.Convolution,
@@ -39,13 +39,13 @@
   module Graphics.Rendering.OpenGL.Raw.EXT.FogCoord,
   module Graphics.Rendering.OpenGL.Raw.EXT.FourTwoTwoPixels,
   module Graphics.Rendering.OpenGL.Raw.EXT.FramebufferBlit,
-  module Graphics.Rendering.OpenGL.Raw.EXT.FramebufferMultisampleBlitScaled,
   module Graphics.Rendering.OpenGL.Raw.EXT.FramebufferMultisample,
+  module Graphics.Rendering.OpenGL.Raw.EXT.FramebufferMultisampleBlitScaled,
   module Graphics.Rendering.OpenGL.Raw.EXT.FramebufferObject,
   module Graphics.Rendering.OpenGL.Raw.EXT.FramebufferSRGB,
-  module Graphics.Rendering.OpenGL.Raw.EXT.GeometryShader4,
   module Graphics.Rendering.OpenGL.Raw.EXT.GPUProgramParameters,
   module Graphics.Rendering.OpenGL.Raw.EXT.GPUShader4,
+  module Graphics.Rendering.OpenGL.Raw.EXT.GeometryShader4,
   module Graphics.Rendering.OpenGL.Raw.EXT.Histogram,
   module Graphics.Rendering.OpenGL.Raw.EXT.IndexArrayFormats,
   module Graphics.Rendering.OpenGL.Raw.EXT.IndexFunc,
@@ -60,8 +60,8 @@
   module Graphics.Rendering.OpenGL.Raw.EXT.PixelBufferObject,
   module Graphics.Rendering.OpenGL.Raw.EXT.PixelTransform,
   module Graphics.Rendering.OpenGL.Raw.EXT.PointParameters,
-  module Graphics.Rendering.OpenGL.Raw.EXT.PolygonOffsetClamp,
   module Graphics.Rendering.OpenGL.Raw.EXT.PolygonOffset,
+  module Graphics.Rendering.OpenGL.Raw.EXT.PolygonOffsetClamp,
   module Graphics.Rendering.OpenGL.Raw.EXT.ProvokingVertex,
   module Graphics.Rendering.OpenGL.Raw.EXT.RasterMultisample,
   module Graphics.Rendering.OpenGL.Raw.EXT.RescaleNormal,
@@ -74,6 +74,7 @@
   module Graphics.Rendering.OpenGL.Raw.EXT.StencilTwoSide,
   module Graphics.Rendering.OpenGL.Raw.EXT.StencilWrap,
   module Graphics.Rendering.OpenGL.Raw.EXT.Subtexture,
+  module Graphics.Rendering.OpenGL.Raw.EXT.Texture,
   module Graphics.Rendering.OpenGL.Raw.EXT.Texture3D,
   module Graphics.Rendering.OpenGL.Raw.EXT.TextureArray,
   module Graphics.Rendering.OpenGL.Raw.EXT.TextureBufferObject,
@@ -85,21 +86,20 @@
   module Graphics.Rendering.OpenGL.Raw.EXT.TextureEnvDot3,
   module Graphics.Rendering.OpenGL.Raw.EXT.TextureFilterAnisotropic,
   module Graphics.Rendering.OpenGL.Raw.EXT.TextureFilterMinmax,
-  module Graphics.Rendering.OpenGL.Raw.EXT.Texture,
   module Graphics.Rendering.OpenGL.Raw.EXT.TextureInteger,
   module Graphics.Rendering.OpenGL.Raw.EXT.TextureLODBias,
   module Graphics.Rendering.OpenGL.Raw.EXT.TextureMirrorClamp,
   module Graphics.Rendering.OpenGL.Raw.EXT.TextureObject,
   module Graphics.Rendering.OpenGL.Raw.EXT.TexturePerturbNormal,
-  module Graphics.Rendering.OpenGL.Raw.EXT.TextureSharedExponent,
   module Graphics.Rendering.OpenGL.Raw.EXT.TextureSNorm,
-  module Graphics.Rendering.OpenGL.Raw.EXT.TextureSRGBDecode,
   module Graphics.Rendering.OpenGL.Raw.EXT.TextureSRGB,
+  module Graphics.Rendering.OpenGL.Raw.EXT.TextureSRGBDecode,
+  module Graphics.Rendering.OpenGL.Raw.EXT.TextureSharedExponent,
   module Graphics.Rendering.OpenGL.Raw.EXT.TextureSwizzle,
   module Graphics.Rendering.OpenGL.Raw.EXT.TimerQuery,
   module Graphics.Rendering.OpenGL.Raw.EXT.TransformFeedback,
-  module Graphics.Rendering.OpenGL.Raw.EXT.VertexArrayBGRA,
   module Graphics.Rendering.OpenGL.Raw.EXT.VertexArray,
+  module Graphics.Rendering.OpenGL.Raw.EXT.VertexArrayBGRA,
   module Graphics.Rendering.OpenGL.Raw.EXT.VertexAttrib64Bit,
   module Graphics.Rendering.OpenGL.Raw.EXT.VertexShader,
   module Graphics.Rendering.OpenGL.Raw.EXT.VertexWeighting,
@@ -114,8 +114,8 @@
 import Graphics.Rendering.OpenGL.Raw.EXT.BlendFuncSeparate
 import Graphics.Rendering.OpenGL.Raw.EXT.BlendMinmax
 import Graphics.Rendering.OpenGL.Raw.EXT.BlendSubtract
-import Graphics.Rendering.OpenGL.Raw.EXT.ClipVolumeHint
 import Graphics.Rendering.OpenGL.Raw.EXT.CMYKA
+import Graphics.Rendering.OpenGL.Raw.EXT.ClipVolumeHint
 import Graphics.Rendering.OpenGL.Raw.EXT.ColorSubtable
 import Graphics.Rendering.OpenGL.Raw.EXT.CompiledVertexArray
 import Graphics.Rendering.OpenGL.Raw.EXT.Convolution
@@ -132,13 +132,13 @@
 import Graphics.Rendering.OpenGL.Raw.EXT.FogCoord
 import Graphics.Rendering.OpenGL.Raw.EXT.FourTwoTwoPixels
 import Graphics.Rendering.OpenGL.Raw.EXT.FramebufferBlit
-import Graphics.Rendering.OpenGL.Raw.EXT.FramebufferMultisampleBlitScaled
 import Graphics.Rendering.OpenGL.Raw.EXT.FramebufferMultisample
+import Graphics.Rendering.OpenGL.Raw.EXT.FramebufferMultisampleBlitScaled
 import Graphics.Rendering.OpenGL.Raw.EXT.FramebufferObject
 import Graphics.Rendering.OpenGL.Raw.EXT.FramebufferSRGB
-import Graphics.Rendering.OpenGL.Raw.EXT.GeometryShader4
 import Graphics.Rendering.OpenGL.Raw.EXT.GPUProgramParameters
 import Graphics.Rendering.OpenGL.Raw.EXT.GPUShader4
+import Graphics.Rendering.OpenGL.Raw.EXT.GeometryShader4
 import Graphics.Rendering.OpenGL.Raw.EXT.Histogram
 import Graphics.Rendering.OpenGL.Raw.EXT.IndexArrayFormats
 import Graphics.Rendering.OpenGL.Raw.EXT.IndexFunc
@@ -153,8 +153,8 @@
 import Graphics.Rendering.OpenGL.Raw.EXT.PixelBufferObject
 import Graphics.Rendering.OpenGL.Raw.EXT.PixelTransform
 import Graphics.Rendering.OpenGL.Raw.EXT.PointParameters
-import Graphics.Rendering.OpenGL.Raw.EXT.PolygonOffsetClamp
 import Graphics.Rendering.OpenGL.Raw.EXT.PolygonOffset
+import Graphics.Rendering.OpenGL.Raw.EXT.PolygonOffsetClamp
 import Graphics.Rendering.OpenGL.Raw.EXT.ProvokingVertex
 import Graphics.Rendering.OpenGL.Raw.EXT.RasterMultisample
 import Graphics.Rendering.OpenGL.Raw.EXT.RescaleNormal
@@ -167,6 +167,7 @@
 import Graphics.Rendering.OpenGL.Raw.EXT.StencilTwoSide
 import Graphics.Rendering.OpenGL.Raw.EXT.StencilWrap
 import Graphics.Rendering.OpenGL.Raw.EXT.Subtexture
+import Graphics.Rendering.OpenGL.Raw.EXT.Texture
 import Graphics.Rendering.OpenGL.Raw.EXT.Texture3D
 import Graphics.Rendering.OpenGL.Raw.EXT.TextureArray
 import Graphics.Rendering.OpenGL.Raw.EXT.TextureBufferObject
@@ -178,21 +179,20 @@
 import Graphics.Rendering.OpenGL.Raw.EXT.TextureEnvDot3
 import Graphics.Rendering.OpenGL.Raw.EXT.TextureFilterAnisotropic
 import Graphics.Rendering.OpenGL.Raw.EXT.TextureFilterMinmax
-import Graphics.Rendering.OpenGL.Raw.EXT.Texture
 import Graphics.Rendering.OpenGL.Raw.EXT.TextureInteger
 import Graphics.Rendering.OpenGL.Raw.EXT.TextureLODBias
 import Graphics.Rendering.OpenGL.Raw.EXT.TextureMirrorClamp
 import Graphics.Rendering.OpenGL.Raw.EXT.TextureObject
 import Graphics.Rendering.OpenGL.Raw.EXT.TexturePerturbNormal
-import Graphics.Rendering.OpenGL.Raw.EXT.TextureSharedExponent
 import Graphics.Rendering.OpenGL.Raw.EXT.TextureSNorm
-import Graphics.Rendering.OpenGL.Raw.EXT.TextureSRGBDecode
 import Graphics.Rendering.OpenGL.Raw.EXT.TextureSRGB
+import Graphics.Rendering.OpenGL.Raw.EXT.TextureSRGBDecode
+import Graphics.Rendering.OpenGL.Raw.EXT.TextureSharedExponent
 import Graphics.Rendering.OpenGL.Raw.EXT.TextureSwizzle
 import Graphics.Rendering.OpenGL.Raw.EXT.TimerQuery
 import Graphics.Rendering.OpenGL.Raw.EXT.TransformFeedback
-import Graphics.Rendering.OpenGL.Raw.EXT.VertexArrayBGRA
 import Graphics.Rendering.OpenGL.Raw.EXT.VertexArray
+import Graphics.Rendering.OpenGL.Raw.EXT.VertexArrayBGRA
 import Graphics.Rendering.OpenGL.Raw.EXT.VertexAttrib64Bit
 import Graphics.Rendering.OpenGL.Raw.EXT.VertexShader
 import Graphics.Rendering.OpenGL.Raw.EXT.VertexWeighting
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/DebugLabel.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/DebugLabel.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT/DebugLabel.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/EXT/DebugLabel.hs
@@ -8,7 +8,7 @@
 -- Stability   :  stable
 -- Portability :  portable
 --
--- The <https://www.opengl.org/registry/specs/EXT/debug_label.txt EXT_debug_label> extension.
+-- The <https://www.opengl.org/registry/specs/EXT/EXT_debug_label.txt EXT_debug_label> extension.
 --
 --------------------------------------------------------------------------------
 
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/DebugMarker.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/DebugMarker.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT/DebugMarker.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/EXT/DebugMarker.hs
@@ -8,7 +8,7 @@
 -- Stability   :  stable
 -- Portability :  portable
 --
--- The <https://www.opengl.org/registry/specs/EXT/debug_marker.txt EXT_debug_marker> extension.
+-- The <https://www.opengl.org/registry/specs/EXT/EXT_debug_marker.txt EXT_debug_marker> extension.
 --
 --------------------------------------------------------------------------------
 
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/Multisample.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/Multisample.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT/Multisample.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/EXT/Multisample.hs
@@ -8,7 +8,7 @@
 -- Stability   :  stable
 -- Portability :  portable
 --
--- The <https://www.opengl.org/registry/specs/EXT/multisample.txt EXT_multisample> extension.
+-- The <https://www.opengl.org/registry/specs/EXT/wgl_multisample.txt EXT_multisample> extension.
 --
 --------------------------------------------------------------------------------
 
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/TextureCubeMap.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/TextureCubeMap.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT/TextureCubeMap.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/EXT/TextureCubeMap.hs
@@ -8,7 +8,7 @@
 -- Stability   :  stable
 -- Portability :  portable
 --
--- The <https://www.opengl.org/registry/specs/EXT/texture_cube_map.txt EXT_texture_cube_map> extension.
+-- The <https://www.opengl.org/registry/specs/ARB/texture_cube_map.txt EXT_texture_cube_map> extension.
 --
 --------------------------------------------------------------------------------
 
diff --git a/src/Graphics/Rendering/OpenGL/Raw/Functions.hs b/src/Graphics/Rendering/OpenGL/Raw/Functions.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/Functions.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/Functions.hs
@@ -7097,7 +7097,7 @@
 glColorP3uiv
   :: MonadIO m
   => GLenum -- ^ @type@.
-  -> Ptr GLuint -- ^ @color@ pointing to @1@ elements of type @GLuint@.
+  -> Ptr GLuint -- ^ @color@ pointing to @1@ element of type @GLuint@.
   -> m ()
 glColorP3uiv v1 v2 = liftIO $ dyn124 ptr_glColorP3uiv v1 v2
 
@@ -7123,7 +7123,7 @@
 glColorP4uiv
   :: MonadIO m
   => GLenum -- ^ @type@.
-  -> Ptr GLuint -- ^ @color@ pointing to @1@ elements of type @GLuint@.
+  -> Ptr GLuint -- ^ @color@ pointing to @1@ element of type @GLuint@.
   -> m ()
 glColorP4uiv v1 v2 = liftIO $ dyn124 ptr_glColorP4uiv v1 v2
 
@@ -11951,7 +11951,7 @@
 -- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glEdgeFlag.xml OpenGL 2.x>
 glEdgeFlagv
   :: MonadIO m
-  => Ptr GLboolean -- ^ @flag@ pointing to @1@ elements of type @Boolean@.
+  => Ptr GLboolean -- ^ @flag@ pointing to @1@ element of type @Boolean@.
   -> m ()
 glEdgeFlagv v1 = liftIO $ dyn262 ptr_glEdgeFlagv v1
 
@@ -12447,7 +12447,7 @@
 -- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glEvalCoord.xml OpenGL 2.x>
 glEvalCoord1dv
   :: MonadIO m
-  => Ptr GLdouble -- ^ @u@ pointing to @1@ elements of type @CoordD@.
+  => Ptr GLdouble -- ^ @u@ pointing to @1@ element of type @CoordD@.
   -> m ()
 glEvalCoord1dv v1 = liftIO $ dyn39 ptr_glEvalCoord1dv v1
 
@@ -12473,7 +12473,7 @@
 -- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glEvalCoord.xml OpenGL 2.x>
 glEvalCoord1fv
   :: MonadIO m
-  => Ptr GLfloat -- ^ @u@ pointing to @1@ elements of type @CoordF@.
+  => Ptr GLfloat -- ^ @u@ pointing to @1@ element of type @CoordF@.
   -> m ()
 glEvalCoord1fv v1 = liftIO $ dyn41 ptr_glEvalCoord1fv v1
 
@@ -12497,7 +12497,7 @@
 
 glEvalCoord1xvOES
   :: MonadIO m
-  => Ptr GLfixed -- ^ @coords@ pointing to @1@ elements of type @GLfixed@.
+  => Ptr GLfixed -- ^ @coords@ pointing to @1@ element of type @GLfixed@.
   -> m ()
 glEvalCoord1xvOES v1 = liftIO $ dyn106 ptr_glEvalCoord1xvOES v1
 
@@ -12689,7 +12689,7 @@
   :: MonadIO m
   => Ptr GLuint -- ^ @buffers@ pointing to @maxBuffers@ elements of type @GLuint@.
   -> GLint -- ^ @maxBuffers@.
-  -> Ptr GLint -- ^ @numBuffers@ pointing to @1@ elements of type @GLint@.
+  -> Ptr GLint -- ^ @numBuffers@ pointing to @1@ element of type @GLint@.
   -> m ()
 glExtGetBuffersQCOM v1 v2 v3 = liftIO $ dyn268 ptr_glExtGetBuffersQCOM v1 v2 v3
 
@@ -12703,7 +12703,7 @@
   :: MonadIO m
   => Ptr GLuint -- ^ @framebuffers@ pointing to @maxFramebuffers@ elements of type @GLuint@.
   -> GLint -- ^ @maxFramebuffers@.
-  -> Ptr GLint -- ^ @numFramebuffers@ pointing to @1@ elements of type @GLint@.
+  -> Ptr GLint -- ^ @numFramebuffers@ pointing to @1@ element of type @GLint@.
   -> m ()
 glExtGetFramebuffersQCOM v1 v2 v3 = liftIO $ dyn268 ptr_glExtGetFramebuffersQCOM v1 v2 v3
 
@@ -12732,7 +12732,7 @@
   :: MonadIO m
   => Ptr GLuint -- ^ @programs@ pointing to @maxPrograms@ elements of type @GLuint@.
   -> GLint -- ^ @maxPrograms@.
-  -> Ptr GLint -- ^ @numPrograms@ pointing to @1@ elements of type @GLint@.
+  -> Ptr GLint -- ^ @numPrograms@ pointing to @1@ element of type @GLint@.
   -> m ()
 glExtGetProgramsQCOM v1 v2 v3 = liftIO $ dyn268 ptr_glExtGetProgramsQCOM v1 v2 v3
 
@@ -12746,7 +12746,7 @@
   :: MonadIO m
   => Ptr GLuint -- ^ @renderbuffers@ pointing to @maxRenderbuffers@ elements of type @GLuint@.
   -> GLint -- ^ @maxRenderbuffers@.
-  -> Ptr GLint -- ^ @numRenderbuffers@ pointing to @1@ elements of type @GLint@.
+  -> Ptr GLint -- ^ @numRenderbuffers@ pointing to @1@ element of type @GLint@.
   -> m ()
 glExtGetRenderbuffersQCOM v1 v2 v3 = liftIO $ dyn268 ptr_glExtGetRenderbuffersQCOM v1 v2 v3
 
@@ -12760,7 +12760,7 @@
   :: MonadIO m
   => Ptr GLuint -- ^ @shaders@ pointing to @maxShaders@ elements of type @GLuint@.
   -> GLint -- ^ @maxShaders@.
-  -> Ptr GLint -- ^ @numShaders@ pointing to @1@ elements of type @GLint@.
+  -> Ptr GLint -- ^ @numShaders@ pointing to @1@ element of type @GLint@.
   -> m ()
 glExtGetShadersQCOM v1 v2 v3 = liftIO $ dyn268 ptr_glExtGetShadersQCOM v1 v2 v3
 
@@ -12947,7 +12947,7 @@
 
 glFinishAsyncSGIX
   :: MonadIO m
-  => Ptr GLuint -- ^ @markerp@ pointing to @1@ elements of type @GLuint@.
+  => Ptr GLuint -- ^ @markerp@ pointing to @1@ element of type @GLuint@.
   -> m GLint
 glFinishAsyncSGIX v1 = liftIO $ dyn276 ptr_glFinishAsyncSGIX v1
 
@@ -13233,7 +13233,7 @@
 -- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glFogCoord.xml OpenGL 2.x>
 glFogCoorddv
   :: MonadIO m
-  => Ptr GLdouble -- ^ @coord@ pointing to @1@ elements of type @CoordD@.
+  => Ptr GLdouble -- ^ @coord@ pointing to @1@ element of type @CoordD@.
   -> m ()
 glFogCoorddv v1 = liftIO $ dyn39 ptr_glFogCoorddv v1
 
@@ -13245,7 +13245,7 @@
 
 glFogCoorddvEXT
   :: MonadIO m
-  => Ptr GLdouble -- ^ @coord@ pointing to @1@ elements of type @CoordD@.
+  => Ptr GLdouble -- ^ @coord@ pointing to @1@ element of type @CoordD@.
   -> m ()
 glFogCoorddvEXT v1 = liftIO $ dyn39 ptr_glFogCoorddvEXT v1
 
@@ -13283,7 +13283,7 @@
 -- | 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@ elements of type @CoordF@.
+  => Ptr GLfloat -- ^ @coord@ pointing to @1@ element of type @CoordF@.
   -> m ()
 glFogCoordfv v1 = liftIO $ dyn41 ptr_glFogCoordfv v1
 
@@ -13295,7 +13295,7 @@
 
 glFogCoordfvEXT
   :: MonadIO m
-  => Ptr GLfloat -- ^ @coord@ pointing to @1@ elements of type @CoordF@.
+  => Ptr GLfloat -- ^ @coord@ pointing to @1@ element of type @CoordF@.
   -> m ()
 glFogCoordfvEXT v1 = liftIO $ dyn41 ptr_glFogCoordfvEXT v1
 
@@ -13319,7 +13319,7 @@
 
 glFogCoordhvNV
   :: MonadIO m
-  => Ptr GLhalfNV -- ^ @fog@ pointing to @1@ elements of type @Half16NV@.
+  => Ptr GLhalfNV -- ^ @fog@ pointing to @1@ element of type @Half16NV@.
   -> m ()
 glFogCoordhvNV v1 = liftIO $ dyn98 ptr_glFogCoordhvNV v1
 
@@ -14764,9 +14764,9 @@
   => GLuint -- ^ @program@.
   -> GLuint -- ^ @index@.
   -> GLsizei -- ^ @bufSize@.
-  -> Ptr GLsizei -- ^ @length@ pointing to @1@ elements of type @GLsizei@.
-  -> Ptr GLint -- ^ @size@ pointing to @1@ elements of type @GLint@.
-  -> Ptr GLenum -- ^ @type@ pointing to @1@ elements of type @GLenum@.
+  -> Ptr GLsizei -- ^ @length@ pointing to @1@ element of type @GLsizei@.
+  -> Ptr GLint -- ^ @size@ pointing to @1@ element of type @GLint@.
+  -> Ptr GLenum -- ^ @type@ pointing to @1@ element of type @GLenum@.
   -> Ptr GLchar -- ^ @name@ pointing to @bufSize@ elements of type @GLchar@.
   -> m ()
 glGetActiveAttrib v1 v2 v3 v4 v5 v6 v7 = liftIO $ dyn297 ptr_glGetActiveAttrib v1 v2 v3 v4 v5 v6 v7
@@ -14782,9 +14782,9 @@
   => GLhandleARB -- ^ @programObj@ of type @handleARB@.
   -> GLuint -- ^ @index@.
   -> GLsizei -- ^ @maxLength@.
-  -> Ptr GLsizei -- ^ @length@ pointing to @1@ elements of type @GLsizei@.
-  -> Ptr GLint -- ^ @size@ pointing to @1@ elements of type @GLint@.
-  -> Ptr GLenum -- ^ @type@ pointing to @1@ elements of type @GLenum@.
+  -> Ptr GLsizei -- ^ @length@ pointing to @1@ element of type @GLsizei@.
+  -> Ptr GLint -- ^ @size@ pointing to @1@ element of type @GLint@.
+  -> Ptr GLenum -- ^ @type@ pointing to @1@ element of type @GLenum@.
   -> Ptr GLcharARB -- ^ @name@ pointing to @maxLength@ elements of type @GLcharARB@.
   -> m ()
 glGetActiveAttribARB v1 v2 v3 v4 v5 v6 v7 = liftIO $ dyn298 ptr_glGetActiveAttribARB v1 v2 v3 v4 v5 v6 v7
@@ -14802,7 +14802,7 @@
   -> GLenum -- ^ @shadertype@.
   -> GLuint -- ^ @index@.
   -> GLsizei -- ^ @bufsize@.
-  -> Ptr GLsizei -- ^ @length@ pointing to @1@ elements of type @GLsizei@.
+  -> Ptr GLsizei -- ^ @length@ pointing to @1@ element of type @GLsizei@.
   -> Ptr GLchar -- ^ @name@ pointing to @bufsize@ elements of type @GLchar@.
   -> m ()
 glGetActiveSubroutineName v1 v2 v3 v4 v5 v6 = liftIO $ dyn299 ptr_glGetActiveSubroutineName v1 v2 v3 v4 v5 v6
@@ -14820,7 +14820,7 @@
   -> GLenum -- ^ @shadertype@.
   -> GLuint -- ^ @index@.
   -> GLsizei -- ^ @bufsize@.
-  -> Ptr GLsizei -- ^ @length@ pointing to @1@ elements of type @GLsizei@.
+  -> Ptr GLsizei -- ^ @length@ pointing to @1@ element of type @GLsizei@.
   -> Ptr GLchar -- ^ @name@ pointing to @bufsize@ elements of type @GLchar@.
   -> m ()
 glGetActiveSubroutineUniformName v1 v2 v3 v4 v5 v6 = liftIO $ dyn299 ptr_glGetActiveSubroutineUniformName v1 v2 v3 v4 v5 v6
@@ -14854,9 +14854,9 @@
   => GLuint -- ^ @program@.
   -> GLuint -- ^ @index@.
   -> GLsizei -- ^ @bufSize@.
-  -> Ptr GLsizei -- ^ @length@ pointing to @1@ elements of type @GLsizei@.
-  -> Ptr GLint -- ^ @size@ pointing to @1@ elements of type @GLint@.
-  -> Ptr GLenum -- ^ @type@ pointing to @1@ elements of type @GLenum@.
+  -> Ptr GLsizei -- ^ @length@ pointing to @1@ element of type @GLsizei@.
+  -> Ptr GLint -- ^ @size@ pointing to @1@ element of type @GLint@.
+  -> Ptr GLenum -- ^ @type@ pointing to @1@ element of type @GLenum@.
   -> Ptr GLchar -- ^ @name@ pointing to @bufSize@ elements of type @GLchar@.
   -> m ()
 glGetActiveUniform v1 v2 v3 v4 v5 v6 v7 = liftIO $ dyn297 ptr_glGetActiveUniform v1 v2 v3 v4 v5 v6 v7
@@ -14872,9 +14872,9 @@
   => GLhandleARB -- ^ @programObj@ of type @handleARB@.
   -> GLuint -- ^ @index@.
   -> GLsizei -- ^ @maxLength@.
-  -> Ptr GLsizei -- ^ @length@ pointing to @1@ elements of type @GLsizei@.
-  -> Ptr GLint -- ^ @size@ pointing to @1@ elements of type @GLint@.
-  -> Ptr GLenum -- ^ @type@ pointing to @1@ elements of type @GLenum@.
+  -> Ptr GLsizei -- ^ @length@ pointing to @1@ element of type @GLsizei@.
+  -> Ptr GLint -- ^ @size@ pointing to @1@ element of type @GLint@.
+  -> Ptr GLenum -- ^ @type@ pointing to @1@ element of type @GLenum@.
   -> Ptr GLcharARB -- ^ @name@ pointing to @maxLength@ elements of type @GLcharARB@.
   -> m ()
 glGetActiveUniformARB v1 v2 v3 v4 v5 v6 v7 = liftIO $ dyn298 ptr_glGetActiveUniformARB v1 v2 v3 v4 v5 v6 v7
@@ -14891,7 +14891,7 @@
   => GLuint -- ^ @program@.
   -> GLuint -- ^ @uniformBlockIndex@.
   -> GLsizei -- ^ @bufSize@.
-  -> Ptr GLsizei -- ^ @length@ pointing to @1@ elements of type @GLsizei@.
+  -> Ptr GLsizei -- ^ @length@ pointing to @1@ element of type @GLsizei@.
   -> Ptr GLchar -- ^ @uniformBlockName@ pointing to @bufSize@ elements of type @GLchar@.
   -> m ()
 glGetActiveUniformBlockName v1 v2 v3 v4 v5 = liftIO $ dyn301 ptr_glGetActiveUniformBlockName v1 v2 v3 v4 v5
@@ -14924,7 +14924,7 @@
   => GLuint -- ^ @program@.
   -> GLuint -- ^ @uniformIndex@.
   -> GLsizei -- ^ @bufSize@.
-  -> Ptr GLsizei -- ^ @length@ pointing to @1@ elements of type @GLsizei@.
+  -> Ptr GLsizei -- ^ @length@ pointing to @1@ element of type @GLsizei@.
   -> Ptr GLchar -- ^ @uniformName@ pointing to @bufSize@ elements of type @GLchar@.
   -> m ()
 glGetActiveUniformName v1 v2 v3 v4 v5 = liftIO $ dyn301 ptr_glGetActiveUniformName v1 v2 v3 v4 v5
@@ -14957,9 +14957,9 @@
   => GLuint -- ^ @program@.
   -> GLuint -- ^ @index@.
   -> GLsizei -- ^ @bufSize@.
-  -> Ptr GLsizei -- ^ @length@ pointing to @1@ elements of type @GLsizei@.
-  -> Ptr GLsizei -- ^ @size@ pointing to @1@ elements of type @GLsizei@.
-  -> Ptr GLenum -- ^ @type@ pointing to @1@ elements of type @GLenum@.
+  -> Ptr GLsizei -- ^ @length@ pointing to @1@ element of type @GLsizei@.
+  -> Ptr GLsizei -- ^ @size@ pointing to @1@ element of type @GLsizei@.
+  -> Ptr GLenum -- ^ @type@ pointing to @1@ element of type @GLenum@.
   -> Ptr GLchar -- ^ @name@ pointing to @COMPSIZE(program,index,bufSize)@ elements of type @GLchar@.
   -> m ()
 glGetActiveVaryingNV v1 v2 v3 v4 v5 v6 v7 = liftIO $ dyn303 ptr_glGetActiveVaryingNV v1 v2 v3 v4 v5 v6 v7
@@ -14974,7 +14974,7 @@
   :: MonadIO m
   => GLenum -- ^ @array@ of type @EnableCap@.
   -> GLenum -- ^ @pname@ of type @ArrayObjectPNameATI@.
-  -> Ptr GLfloat -- ^ @params@ pointing to @1@ elements of type @GLfloat@.
+  -> Ptr GLfloat -- ^ @params@ pointing to @1@ element of type @GLfloat@.
   -> m ()
 glGetArrayObjectfvATI v1 v2 v3 = liftIO $ dyn131 ptr_glGetArrayObjectfvATI v1 v2 v3
 
@@ -14988,7 +14988,7 @@
   :: MonadIO m
   => GLenum -- ^ @array@ of type @EnableCap@.
   -> GLenum -- ^ @pname@ of type @ArrayObjectPNameATI@.
-  -> Ptr GLint -- ^ @params@ pointing to @1@ elements of type @GLint@.
+  -> Ptr GLint -- ^ @params@ pointing to @1@ element of type @GLint@.
   -> m ()
 glGetArrayObjectivATI v1 v2 v3 = liftIO $ dyn132 ptr_glGetArrayObjectivATI v1 v2 v3
 
@@ -15002,7 +15002,7 @@
   :: MonadIO m
   => GLhandleARB -- ^ @containerObj@ of type @handleARB@.
   -> GLsizei -- ^ @maxCount@.
-  -> Ptr GLsizei -- ^ @count@ pointing to @1@ elements of type @GLsizei@.
+  -> Ptr GLsizei -- ^ @count@ pointing to @1@ element of type @GLsizei@.
   -> Ptr GLhandleARB -- ^ @obj@ pointing to @maxCount@ elements of type @handleARB@.
   -> m ()
 glGetAttachedObjectsARB v1 v2 v3 v4 = liftIO $ dyn304 ptr_glGetAttachedObjectsARB v1 v2 v3 v4
@@ -15018,7 +15018,7 @@
   :: MonadIO m
   => GLuint -- ^ @program@.
   -> GLsizei -- ^ @maxCount@.
-  -> Ptr GLsizei -- ^ @count@ pointing to @1@ elements of type @GLsizei@.
+  -> Ptr GLsizei -- ^ @count@ pointing to @1@ element of type @GLsizei@.
   -> Ptr GLuint -- ^ @shaders@ pointing to @maxCount@ elements of type @GLuint@.
   -> m ()
 glGetAttachedShaders v1 v2 v3 v4 = liftIO $ dyn305 ptr_glGetAttachedShaders v1 v2 v3 v4
@@ -15162,7 +15162,7 @@
   :: MonadIO m
   => GLenum -- ^ @target@ of type @BufferTargetARB@.
   -> GLenum -- ^ @pname@ of type @BufferPointerNameARB@.
-  -> Ptr (Ptr a) -- ^ @params@ pointing to @1@ elements of type @Ptr a@.
+  -> Ptr (Ptr a) -- ^ @params@ pointing to @1@ element of type @Ptr a@.
   -> m ()
 glGetBufferPointerv v1 v2 v3 = liftIO $ dyn312 ptr_glGetBufferPointerv v1 v2 v3
 
@@ -15176,7 +15176,7 @@
   :: MonadIO m
   => GLenum -- ^ @target@ of type @BufferTargetARB@.
   -> GLenum -- ^ @pname@ of type @BufferPointerNameARB@.
-  -> Ptr (Ptr a) -- ^ @params@ pointing to @1@ elements of type @Ptr a@.
+  -> Ptr (Ptr a) -- ^ @params@ pointing to @1@ element of type @Ptr a@.
   -> m ()
 glGetBufferPointervARB v1 v2 v3 = liftIO $ dyn312 ptr_glGetBufferPointervARB v1 v2 v3
 
@@ -16479,7 +16479,7 @@
   :: MonadIO m
   => GLhandleARB -- ^ @obj@ of type @handleARB@.
   -> GLsizei -- ^ @maxLength@.
-  -> Ptr GLsizei -- ^ @length@ pointing to @1@ elements of type @GLsizei@.
+  -> Ptr GLsizei -- ^ @length@ pointing to @1@ element of type @GLsizei@.
   -> Ptr GLcharARB -- ^ @infoLog@ pointing to @maxLength@ elements of type @GLcharARB@.
   -> m ()
 glGetInfoLogARB v1 v2 v3 v4 = liftIO $ dyn333 ptr_glGetInfoLogARB v1 v2 v3 v4
@@ -17450,7 +17450,7 @@
   :: MonadIO m
   => GLuint -- ^ @buffer@.
   -> GLenum -- ^ @pname@ of type @VertexBufferObjectParameter@.
-  -> Ptr (Ptr a) -- ^ @params@ pointing to @1@ elements of type @Ptr a@.
+  -> Ptr (Ptr a) -- ^ @params@ pointing to @1@ element of type @Ptr a@.
   -> m ()
 glGetNamedBufferPointervEXT v1 v2 v3 = liftIO $ dyn356 ptr_glGetNamedBufferPointervEXT v1 v2 v3
 
@@ -17631,7 +17631,7 @@
   => GLuint -- ^ @program@.
   -> GLenum -- ^ @target@ of type @ProgramTarget@.
   -> GLenum -- ^ @pname@ of type @ProgramProperty@.
-  -> Ptr GLint -- ^ @params@ pointing to @1@ elements of type @GLint@.
+  -> Ptr GLint -- ^ @params@ pointing to @1@ element of type @GLint@.
   -> m ()
 glGetNamedProgramivEXT v1 v2 v3 v4 = liftIO $ dyn358 ptr_glGetNamedProgramivEXT v1 v2 v3 v4
 
@@ -17675,7 +17675,7 @@
   => GLint -- ^ @namelen@.
   -> Ptr GLchar -- ^ @name@ pointing to @namelen@ elements of type @GLchar@.
   -> GLsizei -- ^ @bufSize@.
-  -> Ptr GLint -- ^ @stringlen@ pointing to @1@ elements of type @GLint@.
+  -> Ptr GLint -- ^ @stringlen@ pointing to @1@ element of type @GLint@.
   -> Ptr GLchar -- ^ @string@ pointing to @bufSize@ elements of type @GLchar@.
   -> m ()
 glGetNamedStringARB v1 v2 v3 v4 v5 = liftIO $ dyn364 ptr_glGetNamedStringARB v1 v2 v3 v4 v5
@@ -17718,7 +17718,7 @@
   :: MonadIO m
   => GLuint -- ^ @buffer@.
   -> GLenum -- ^ @pname@ of type @ArrayObjectPNameATI@.
-  -> Ptr GLfloat -- ^ @params@ pointing to @1@ elements of type @GLfloat@.
+  -> Ptr GLfloat -- ^ @params@ pointing to @1@ element of type @GLfloat@.
   -> m ()
 glGetObjectBufferfvATI v1 v2 v3 = liftIO $ dyn344 ptr_glGetObjectBufferfvATI v1 v2 v3
 
@@ -17732,7 +17732,7 @@
   :: MonadIO m
   => GLuint -- ^ @buffer@.
   -> GLenum -- ^ @pname@ of type @ArrayObjectPNameATI@.
-  -> Ptr GLint -- ^ @params@ pointing to @1@ elements of type @GLint@.
+  -> Ptr GLint -- ^ @params@ pointing to @1@ element of type @GLint@.
   -> m ()
 glGetObjectBufferivATI v1 v2 v3 = liftIO $ dyn330 ptr_glGetObjectBufferivATI v1 v2 v3
 
@@ -17748,7 +17748,7 @@
   => GLenum -- ^ @identifier@.
   -> GLuint -- ^ @name@.
   -> GLsizei -- ^ @bufSize@.
-  -> Ptr GLsizei -- ^ @length@ pointing to @1@ elements of type @GLsizei@.
+  -> Ptr GLsizei -- ^ @length@ pointing to @1@ element of type @GLsizei@.
   -> Ptr GLchar -- ^ @label@ pointing to @bufSize@ elements of type @GLchar@.
   -> m ()
 glGetObjectLabel v1 v2 v3 v4 v5 = liftIO $ dyn366 ptr_glGetObjectLabel v1 v2 v3 v4 v5
@@ -17764,7 +17764,7 @@
   => GLenum -- ^ @type@.
   -> GLuint -- ^ @object@.
   -> GLsizei -- ^ @bufSize@.
-  -> Ptr GLsizei -- ^ @length@ pointing to @1@ elements of type @GLsizei@.
+  -> Ptr GLsizei -- ^ @length@ pointing to @1@ element of type @GLsizei@.
   -> Ptr GLchar -- ^ @label@ pointing to @bufSize@ elements of type @GLchar@.
   -> m ()
 glGetObjectLabelEXT v1 v2 v3 v4 v5 = liftIO $ dyn366 ptr_glGetObjectLabelEXT v1 v2 v3 v4 v5
@@ -17839,7 +17839,7 @@
   :: MonadIO m
   => Ptr a -- ^ @ptr@.
   -> GLsizei -- ^ @bufSize@.
-  -> Ptr GLsizei -- ^ @length@ pointing to @1@ elements of type @GLsizei@.
+  -> Ptr GLsizei -- ^ @length@ pointing to @1@ element of type @GLsizei@.
   -> Ptr GLchar -- ^ @label@ pointing to @bufSize@ elements of type @GLchar@.
   -> m ()
 glGetObjectPtrLabel v1 v2 v3 v4 = liftIO $ dyn369 ptr_glGetObjectPtrLabel v1 v2 v3 v4
@@ -17854,7 +17854,7 @@
   :: MonadIO m
   => Ptr a -- ^ @ptr@.
   -> GLsizei -- ^ @bufSize@.
-  -> Ptr GLsizei -- ^ @length@ pointing to @1@ elements of type @GLsizei@.
+  -> Ptr GLsizei -- ^ @length@ pointing to @1@ element of type @GLsizei@.
   -> Ptr GLchar -- ^ @label@ pointing to @bufSize@ elements of type @GLchar@.
   -> m ()
 glGetObjectPtrLabelKHR v1 v2 v3 v4 = liftIO $ dyn369 ptr_glGetObjectPtrLabelKHR v1 v2 v3 v4
@@ -18112,7 +18112,7 @@
   -> GLenum -- ^ @pname@.
   -> GLsizei -- ^ @dataSize@.
   -> Ptr GLuint -- ^ @data@ pointing to @dataSize@ elements of type @GLuint@.
-  -> Ptr GLint -- ^ @bytesWritten@ pointing to @1@ elements of type @GLint@.
+  -> Ptr GLint -- ^ @bytesWritten@ pointing to @1@ element of type @GLint@.
   -> m ()
 glGetPerfMonitorCounterDataAMD v1 v2 v3 v4 v5 = liftIO $ dyn378 ptr_glGetPerfMonitorCounterDataAMD v1 v2 v3 v4 v5
 
@@ -18142,7 +18142,7 @@
   => GLuint -- ^ @group@.
   -> GLuint -- ^ @counter@.
   -> GLsizei -- ^ @bufSize@.
-  -> Ptr GLsizei -- ^ @length@ pointing to @1@ elements of type @GLsizei@.
+  -> Ptr GLsizei -- ^ @length@ pointing to @1@ element of type @GLsizei@.
   -> Ptr GLchar -- ^ @counterString@ pointing to @bufSize@ elements of type @GLchar@.
   -> m ()
 glGetPerfMonitorCounterStringAMD v1 v2 v3 v4 v5 = liftIO $ dyn301 ptr_glGetPerfMonitorCounterStringAMD v1 v2 v3 v4 v5
@@ -18156,8 +18156,8 @@
 glGetPerfMonitorCountersAMD
   :: MonadIO m
   => GLuint -- ^ @group@.
-  -> Ptr GLint -- ^ @numCounters@ pointing to @1@ elements of type @GLint@.
-  -> Ptr GLint -- ^ @maxActiveCounters@ pointing to @1@ elements of type @GLint@.
+  -> Ptr GLint -- ^ @numCounters@ pointing to @1@ element of type @GLint@.
+  -> Ptr GLint -- ^ @maxActiveCounters@ pointing to @1@ element of type @GLint@.
   -> GLsizei -- ^ @counterSize@.
   -> Ptr GLuint -- ^ @counters@ pointing to @counterSize@ elements of type @GLuint@.
   -> m ()
@@ -18173,7 +18173,7 @@
   :: MonadIO m
   => GLuint -- ^ @group@.
   -> GLsizei -- ^ @bufSize@.
-  -> Ptr GLsizei -- ^ @length@ pointing to @1@ elements of type @GLsizei@.
+  -> Ptr GLsizei -- ^ @length@ pointing to @1@ element of type @GLsizei@.
   -> Ptr GLchar -- ^ @groupString@ pointing to @bufSize@ elements of type @GLchar@.
   -> m ()
 glGetPerfMonitorGroupStringAMD v1 v2 v3 v4 = liftIO $ dyn327 ptr_glGetPerfMonitorGroupStringAMD v1 v2 v3 v4
@@ -18186,7 +18186,7 @@
 
 glGetPerfMonitorGroupsAMD
   :: MonadIO m
-  => Ptr GLint -- ^ @numGroups@ pointing to @1@ elements of type @GLint@.
+  => Ptr GLint -- ^ @numGroups@ pointing to @1@ element of type @GLint@.
   -> GLsizei -- ^ @groupsSize@.
   -> Ptr GLuint -- ^ @groups@ pointing to @groupsSize@ elements of type @GLuint@.
   -> m ()
@@ -18359,7 +18359,7 @@
   :: MonadIO m
   => GLenum -- ^ @target@ of type @TypeEnum@.
   -> GLuint -- ^ @index@.
-  -> Ptr (Ptr a) -- ^ @data@ pointing to @1@ elements of type @Ptr a@.
+  -> Ptr (Ptr a) -- ^ @data@ pointing to @1@ element of type @Ptr a@.
   -> m ()
 glGetPointerIndexedvEXT v1 v2 v3 = liftIO $ dyn386 ptr_glGetPointerIndexedvEXT v1 v2 v3
 
@@ -18373,7 +18373,7 @@
   :: MonadIO m
   => GLenum -- ^ @pname@ of type @TypeEnum@.
   -> GLuint -- ^ @index@.
-  -> Ptr (Ptr a) -- ^ @params@ pointing to @1@ elements of type @Ptr a@.
+  -> Ptr (Ptr a) -- ^ @params@ pointing to @1@ element of type @Ptr a@.
   -> m ()
 glGetPointeri_vEXT v1 v2 v3 = liftIO $ dyn386 ptr_glGetPointeri_vEXT v1 v2 v3
 
@@ -18387,7 +18387,7 @@
 glGetPointerv
   :: MonadIO m
   => GLenum -- ^ @pname@ of type @GetPointervPName@.
-  -> Ptr (Ptr a) -- ^ @params@ pointing to @1@ elements of type @Ptr a@.
+  -> Ptr (Ptr a) -- ^ @params@ pointing to @1@ element of type @Ptr a@.
   -> m ()
 glGetPointerv v1 v2 = liftIO $ dyn267 ptr_glGetPointerv v1 v2
 
@@ -18400,7 +18400,7 @@
 glGetPointervEXT
   :: MonadIO m
   => GLenum -- ^ @pname@ of type @GetPointervPName@.
-  -> Ptr (Ptr a) -- ^ @params@ pointing to @1@ elements of type @Ptr a@.
+  -> Ptr (Ptr a) -- ^ @params@ pointing to @1@ element of type @Ptr a@.
   -> m ()
 glGetPointervEXT v1 v2 = liftIO $ dyn267 ptr_glGetPointervEXT v1 v2
 
@@ -18441,8 +18441,8 @@
   :: MonadIO m
   => GLuint -- ^ @program@.
   -> GLsizei -- ^ @bufSize@.
-  -> Ptr GLsizei -- ^ @length@ pointing to @1@ elements of type @GLsizei@.
-  -> Ptr GLenum -- ^ @binaryFormat@ pointing to @1@ elements of type @GLenum@.
+  -> Ptr GLsizei -- ^ @length@ pointing to @1@ element of type @GLsizei@.
+  -> Ptr GLenum -- ^ @binaryFormat@ pointing to @1@ element of type @GLenum@.
   -> Ptr a -- ^ @binary@ pointing to @bufSize@ elements of type @a@.
   -> m ()
 glGetProgramBinary v1 v2 v3 v4 v5 = liftIO $ dyn387 ptr_glGetProgramBinary v1 v2 v3 v4 v5
@@ -18457,8 +18457,8 @@
   :: MonadIO m
   => GLuint -- ^ @program@.
   -> GLsizei -- ^ @bufSize@.
-  -> Ptr GLsizei -- ^ @length@ pointing to @1@ elements of type @GLsizei@.
-  -> Ptr GLenum -- ^ @binaryFormat@ pointing to @1@ elements of type @GLenum@.
+  -> Ptr GLsizei -- ^ @length@ pointing to @1@ element of type @GLsizei@.
+  -> Ptr GLenum -- ^ @binaryFormat@ pointing to @1@ element of type @GLenum@.
   -> Ptr a -- ^ @binary@ pointing to @bufSize@ elements of type @a@.
   -> m ()
 glGetProgramBinaryOES v1 v2 v3 v4 v5 = liftIO $ dyn387 ptr_glGetProgramBinaryOES v1 v2 v3 v4 v5
@@ -18530,7 +18530,7 @@
   :: MonadIO m
   => GLuint -- ^ @program@.
   -> GLsizei -- ^ @bufSize@.
-  -> Ptr GLsizei -- ^ @length@ pointing to @1@ elements of type @GLsizei@.
+  -> Ptr GLsizei -- ^ @length@ pointing to @1@ element of type @GLsizei@.
   -> Ptr GLchar -- ^ @infoLog@ pointing to @bufSize@ elements of type @GLchar@.
   -> m ()
 glGetProgramInfoLog v1 v2 v3 v4 = liftIO $ dyn327 ptr_glGetProgramInfoLog v1 v2 v3 v4
@@ -18617,7 +18617,7 @@
   :: MonadIO m
   => GLuint -- ^ @id@.
   -> GLsizei -- ^ @len@.
-  -> Ptr GLubyte -- ^ @name@ pointing to @1@ elements of type @GLubyte@.
+  -> Ptr GLubyte -- ^ @name@ pointing to @1@ element of type @GLubyte@.
   -> Ptr GLdouble -- ^ @params@ pointing to @4@ elements of type @GLdouble@.
   -> m ()
 glGetProgramNamedParameterdvNV v1 v2 v3 v4 = liftIO $ dyn388 ptr_glGetProgramNamedParameterdvNV v1 v2 v3 v4
@@ -18632,7 +18632,7 @@
   :: MonadIO m
   => GLuint -- ^ @id@.
   -> GLsizei -- ^ @len@.
-  -> Ptr GLubyte -- ^ @name@ pointing to @1@ elements of type @GLubyte@.
+  -> Ptr GLubyte -- ^ @name@ pointing to @1@ element of type @GLubyte@.
   -> Ptr GLfloat -- ^ @params@ pointing to @4@ elements of type @GLfloat@.
   -> m ()
 glGetProgramNamedParameterfvNV v1 v2 v3 v4 = liftIO $ dyn389 ptr_glGetProgramNamedParameterfvNV v1 v2 v3 v4
@@ -18678,7 +18678,7 @@
   :: MonadIO m
   => GLuint -- ^ @pipeline@.
   -> GLsizei -- ^ @bufSize@.
-  -> Ptr GLsizei -- ^ @length@ pointing to @1@ elements of type @GLsizei@.
+  -> Ptr GLsizei -- ^ @length@ pointing to @1@ element of type @GLsizei@.
   -> Ptr GLchar -- ^ @infoLog@ pointing to @bufSize@ elements of type @GLchar@.
   -> m ()
 glGetProgramPipelineInfoLog v1 v2 v3 v4 = liftIO $ dyn327 ptr_glGetProgramPipelineInfoLog v1 v2 v3 v4
@@ -18693,7 +18693,7 @@
   :: MonadIO m
   => GLuint -- ^ @pipeline@.
   -> GLsizei -- ^ @bufSize@.
-  -> Ptr GLsizei -- ^ @length@ pointing to @1@ elements of type @GLsizei@.
+  -> Ptr GLsizei -- ^ @length@ pointing to @1@ element of type @GLsizei@.
   -> Ptr GLchar -- ^ @infoLog@ pointing to @bufSize@ elements of type @GLchar@.
   -> m ()
 glGetProgramPipelineInfoLogEXT v1 v2 v3 v4 = liftIO $ dyn327 ptr_glGetProgramPipelineInfoLogEXT v1 v2 v3 v4
@@ -18785,7 +18785,7 @@
   -> GLenum -- ^ @programInterface@.
   -> GLuint -- ^ @index@.
   -> GLsizei -- ^ @bufSize@.
-  -> Ptr GLsizei -- ^ @length@ pointing to @1@ elements of type @GLsizei@.
+  -> Ptr GLsizei -- ^ @length@ pointing to @1@ element of type @GLsizei@.
   -> Ptr GLchar -- ^ @name@ pointing to @bufSize@ elements of type @GLchar@.
   -> m ()
 glGetProgramResourceName v1 v2 v3 v4 v5 v6 = liftIO $ dyn299 ptr_glGetProgramResourceName v1 v2 v3 v4 v5 v6
@@ -18824,7 +18824,7 @@
   -> GLsizei -- ^ @propCount@.
   -> Ptr GLenum -- ^ @props@ pointing to @propCount@ elements of type @GLenum@.
   -> GLsizei -- ^ @bufSize@.
-  -> Ptr GLsizei -- ^ @length@ pointing to @1@ elements of type @GLsizei@.
+  -> Ptr GLsizei -- ^ @length@ pointing to @1@ element of type @GLsizei@.
   -> Ptr GLint -- ^ @params@ pointing to @bufSize@ elements of type @GLint@.
   -> m ()
 glGetProgramResourceiv v1 v2 v3 v4 v5 v6 v7 v8 = liftIO $ dyn394 ptr_glGetProgramResourceiv v1 v2 v3 v4 v5 v6 v7 v8
@@ -18841,7 +18841,7 @@
   => GLuint -- ^ @program@.
   -> GLenum -- ^ @shadertype@.
   -> GLenum -- ^ @pname@.
-  -> Ptr GLint -- ^ @values@ pointing to @1@ elements of type @GLint@.
+  -> Ptr GLint -- ^ @values@ pointing to @1@ element of type @GLint@.
   -> m ()
 glGetProgramStageiv v1 v2 v3 v4 = liftIO $ dyn358 ptr_glGetProgramStageiv v1 v2 v3 v4
 
@@ -18912,7 +18912,7 @@
   :: MonadIO m
   => GLenum -- ^ @target@ of type @ProgramTargetARB@.
   -> GLenum -- ^ @pname@ of type @ProgramPropertyARB@.
-  -> Ptr GLint -- ^ @params@ pointing to @1@ elements of type @GLint@.
+  -> Ptr GLint -- ^ @params@ pointing to @1@ element of type @GLint@.
   -> m ()
 glGetProgramivARB v1 v2 v3 = liftIO $ dyn132 ptr_glGetProgramivARB v1 v2 v3
 
@@ -19398,7 +19398,7 @@
   :: MonadIO m
   => GLuint -- ^ @shader@.
   -> GLsizei -- ^ @bufSize@.
-  -> Ptr GLsizei -- ^ @length@ pointing to @1@ elements of type @GLsizei@.
+  -> Ptr GLsizei -- ^ @length@ pointing to @1@ element of type @GLsizei@.
   -> Ptr GLchar -- ^ @infoLog@ pointing to @bufSize@ elements of type @GLchar@.
   -> m ()
 glGetShaderInfoLog v1 v2 v3 v4 = liftIO $ dyn327 ptr_glGetShaderInfoLog v1 v2 v3 v4
@@ -19430,7 +19430,7 @@
   :: MonadIO m
   => GLuint -- ^ @shader@.
   -> GLsizei -- ^ @bufSize@.
-  -> Ptr GLsizei -- ^ @length@ pointing to @1@ elements of type @GLsizei@.
+  -> Ptr GLsizei -- ^ @length@ pointing to @1@ element of type @GLsizei@.
   -> Ptr GLchar -- ^ @source@ pointing to @bufSize@ elements of type @GLchar@.
   -> m ()
 glGetShaderSource v1 v2 v3 v4 = liftIO $ dyn327 ptr_glGetShaderSource v1 v2 v3 v4
@@ -19445,7 +19445,7 @@
   :: MonadIO m
   => GLhandleARB -- ^ @obj@ of type @handleARB@.
   -> GLsizei -- ^ @maxLength@.
-  -> Ptr GLsizei -- ^ @length@ pointing to @1@ elements of type @GLsizei@.
+  -> Ptr GLsizei -- ^ @length@ pointing to @1@ element of type @GLsizei@.
   -> Ptr GLcharARB -- ^ @source@ pointing to @maxLength@ elements of type @GLcharARB@.
   -> m ()
 glGetShaderSourceARB v1 v2 v3 v4 = liftIO $ dyn333 ptr_glGetShaderSourceARB v1 v2 v3 v4
@@ -19559,7 +19559,7 @@
   => GLsync -- ^ @sync@ of type @sync@.
   -> GLenum -- ^ @pname@.
   -> GLsizei -- ^ @bufSize@.
-  -> Ptr GLsizei -- ^ @length@ pointing to @1@ elements of type @GLsizei@.
+  -> Ptr GLsizei -- ^ @length@ pointing to @1@ element of type @GLsizei@.
   -> Ptr GLint -- ^ @values@ pointing to @bufSize@ elements of type @GLint@.
   -> m ()
 glGetSynciv v1 v2 v3 v4 v5 = liftIO $ dyn403 ptr_glGetSynciv v1 v2 v3 v4 v5
@@ -19925,7 +19925,7 @@
   :: MonadIO m
   => GLenum -- ^ @target@.
   -> GLenum -- ^ @pname@.
-  -> Ptr (Ptr a) -- ^ @params@ pointing to @1@ elements of type @Ptr a@.
+  -> Ptr (Ptr a) -- ^ @params@ pointing to @1@ element of type @Ptr a@.
   -> m ()
 glGetTexParameterPointervAPPLE v1 v2 v3 = liftIO $ dyn312 ptr_glGetTexParameterPointervAPPLE v1 v2 v3
 
@@ -20291,7 +20291,7 @@
   => GLenum -- ^ @target@ of type @VertexAttribEnumNV@.
   -> GLuint -- ^ @address@.
   -> GLenum -- ^ @pname@ of type @VertexAttribEnumNV@.
-  -> Ptr GLint -- ^ @params@ pointing to @1@ elements of type @GLint@.
+  -> Ptr GLint -- ^ @params@ pointing to @1@ element of type @GLint@.
   -> m ()
 glGetTrackMatrixivNV v1 v2 v3 v4 = liftIO $ dyn346 ptr_glGetTrackMatrixivNV v1 v2 v3 v4
 
@@ -20307,9 +20307,9 @@
   => GLuint -- ^ @program@.
   -> GLuint -- ^ @index@.
   -> GLsizei -- ^ @bufSize@.
-  -> Ptr GLsizei -- ^ @length@ pointing to @1@ elements of type @GLsizei@.
-  -> Ptr GLsizei -- ^ @size@ pointing to @1@ elements of type @GLsizei@.
-  -> Ptr GLenum -- ^ @type@ pointing to @1@ elements of type @GLenum@.
+  -> Ptr GLsizei -- ^ @length@ pointing to @1@ element of type @GLsizei@.
+  -> Ptr GLsizei -- ^ @size@ pointing to @1@ element of type @GLsizei@.
+  -> Ptr GLenum -- ^ @type@ pointing to @1@ element of type @GLenum@.
   -> Ptr GLchar -- ^ @name@ pointing to @bufSize@ elements of type @GLchar@.
   -> m ()
 glGetTransformFeedbackVarying v1 v2 v3 v4 v5 v6 v7 = liftIO $ dyn303 ptr_glGetTransformFeedbackVarying v1 v2 v3 v4 v5 v6 v7
@@ -20325,9 +20325,9 @@
   => GLuint -- ^ @program@.
   -> GLuint -- ^ @index@.
   -> GLsizei -- ^ @bufSize@.
-  -> Ptr GLsizei -- ^ @length@ pointing to @1@ elements of type @GLsizei@.
-  -> Ptr GLsizei -- ^ @size@ pointing to @1@ elements of type @GLsizei@.
-  -> Ptr GLenum -- ^ @type@ pointing to @1@ elements of type @GLenum@.
+  -> Ptr GLsizei -- ^ @length@ pointing to @1@ element of type @GLsizei@.
+  -> Ptr GLsizei -- ^ @size@ pointing to @1@ element of type @GLsizei@.
+  -> Ptr GLenum -- ^ @type@ pointing to @1@ element of type @GLenum@.
   -> Ptr GLchar -- ^ @name@ pointing to @bufSize@ elements of type @GLchar@.
   -> m ()
 glGetTransformFeedbackVaryingEXT v1 v2 v3 v4 v5 v6 v7 = liftIO $ dyn303 ptr_glGetTransformFeedbackVaryingEXT v1 v2 v3 v4 v5 v6 v7
@@ -20342,7 +20342,7 @@
   :: MonadIO m
   => GLuint -- ^ @program@.
   -> GLuint -- ^ @index@.
-  -> Ptr GLint -- ^ @location@ pointing to @1@ elements of type @GLint@.
+  -> Ptr GLint -- ^ @location@ pointing to @1@ element of type @GLint@.
   -> m ()
 glGetTransformFeedbackVaryingNV v1 v2 v3 = liftIO $ dyn419 ptr_glGetTransformFeedbackVaryingNV v1 v2 v3
 
@@ -20403,7 +20403,7 @@
   :: MonadIO m
   => GLuint -- ^ @shader@.
   -> GLsizei -- ^ @bufsize@.
-  -> Ptr GLsizei -- ^ @length@ pointing to @1@ elements of type @GLsizei@.
+  -> Ptr GLsizei -- ^ @length@ pointing to @1@ element of type @GLsizei@.
   -> Ptr GLchar -- ^ @source@.
   -> m ()
 glGetTranslatedShaderSourceANGLE v1 v2 v3 v4 = liftIO $ dyn327 ptr_glGetTranslatedShaderSourceANGLE v1 v2 v3 v4
@@ -20502,7 +20502,7 @@
   :: MonadIO m
   => GLenum -- ^ @shadertype@.
   -> GLint -- ^ @location@.
-  -> Ptr GLuint -- ^ @params@ pointing to @1@ elements of type @GLuint@.
+  -> Ptr GLuint -- ^ @params@ pointing to @1@ element of type @GLuint@.
   -> m ()
 glGetUniformSubroutineuiv v1 v2 v3 = liftIO $ dyn75 ptr_glGetUniformSubroutineuiv v1 v2 v3
 
@@ -20646,7 +20646,7 @@
   :: MonadIO m
   => GLuint -- ^ @id@.
   -> GLenum -- ^ @pname@ of type @ArrayObjectPNameATI@.
-  -> Ptr GLfloat -- ^ @params@ pointing to @1@ elements of type @GLfloat@.
+  -> Ptr GLfloat -- ^ @params@ pointing to @1@ element of type @GLfloat@.
   -> m ()
 glGetVariantArrayObjectfvATI v1 v2 v3 = liftIO $ dyn344 ptr_glGetVariantArrayObjectfvATI v1 v2 v3
 
@@ -20660,7 +20660,7 @@
   :: MonadIO m
   => GLuint -- ^ @id@.
   -> GLenum -- ^ @pname@ of type @ArrayObjectPNameATI@.
-  -> Ptr GLint -- ^ @params@ pointing to @1@ elements of type @GLint@.
+  -> Ptr GLint -- ^ @params@ pointing to @1@ element of type @GLint@.
   -> m ()
 glGetVariantArrayObjectivATI v1 v2 v3 = liftIO $ dyn330 ptr_glGetVariantArrayObjectivATI v1 v2 v3
 
@@ -20819,7 +20819,7 @@
   :: MonadIO m
   => GLuint -- ^ @vaobj@.
   -> GLenum -- ^ @pname@.
-  -> Ptr (Ptr a) -- ^ @param@ pointing to @1@ elements of type @Ptr a@.
+  -> Ptr (Ptr a) -- ^ @param@ pointing to @1@ element of type @Ptr a@.
   -> m ()
 glGetVertexArrayPointervEXT v1 v2 v3 = liftIO $ dyn356 ptr_glGetVertexArrayPointervEXT v1 v2 v3
 
@@ -20877,7 +20877,7 @@
   :: MonadIO m
   => GLuint -- ^ @index@.
   -> GLenum -- ^ @pname@ of type @VertexAttribEnum@.
-  -> Ptr GLint -- ^ @params@ pointing to @1@ elements of type @GLint@.
+  -> Ptr GLint -- ^ @params@ pointing to @1@ element of type @GLint@.
   -> m ()
 glGetVertexAttribIiv v1 v2 v3 = liftIO $ dyn330 ptr_glGetVertexAttribIiv v1 v2 v3
 
@@ -20891,7 +20891,7 @@
   :: MonadIO m
   => GLuint -- ^ @index@.
   -> GLenum -- ^ @pname@ of type @VertexAttribEnum@.
-  -> Ptr GLint -- ^ @params@ pointing to @1@ elements of type @GLint@.
+  -> Ptr GLint -- ^ @params@ pointing to @1@ element of type @GLint@.
   -> m ()
 glGetVertexAttribIivEXT v1 v2 v3 = liftIO $ dyn330 ptr_glGetVertexAttribIivEXT v1 v2 v3
 
@@ -20906,7 +20906,7 @@
   :: MonadIO m
   => GLuint -- ^ @index@.
   -> GLenum -- ^ @pname@ of type @VertexAttribEnum@.
-  -> Ptr GLuint -- ^ @params@ pointing to @1@ elements of type @GLuint@.
+  -> Ptr GLuint -- ^ @params@ pointing to @1@ element of type @GLuint@.
   -> m ()
 glGetVertexAttribIuiv v1 v2 v3 = liftIO $ dyn370 ptr_glGetVertexAttribIuiv v1 v2 v3
 
@@ -20920,7 +20920,7 @@
   :: MonadIO m
   => GLuint -- ^ @index@.
   -> GLenum -- ^ @pname@ of type @VertexAttribEnum@.
-  -> Ptr GLuint -- ^ @params@ pointing to @1@ elements of type @GLuint@.
+  -> Ptr GLuint -- ^ @params@ pointing to @1@ element of type @GLuint@.
   -> m ()
 glGetVertexAttribIuivEXT v1 v2 v3 = liftIO $ dyn370 ptr_glGetVertexAttribIuivEXT v1 v2 v3
 
@@ -21006,7 +21006,7 @@
   :: MonadIO m
   => GLuint -- ^ @index@.
   -> GLenum -- ^ @pname@ of type @VertexAttribPointerPropertyARB@.
-  -> Ptr (Ptr a) -- ^ @pointer@ pointing to @1@ elements of type @Ptr a@.
+  -> Ptr (Ptr a) -- ^ @pointer@ pointing to @1@ element of type @Ptr a@.
   -> m ()
 glGetVertexAttribPointerv v1 v2 v3 = liftIO $ dyn356 ptr_glGetVertexAttribPointerv v1 v2 v3
 
@@ -21020,7 +21020,7 @@
   :: MonadIO m
   => GLuint -- ^ @index@.
   -> GLenum -- ^ @pname@ of type @VertexAttribPointerPropertyARB@.
-  -> Ptr (Ptr a) -- ^ @pointer@ pointing to @1@ elements of type @Ptr a@.
+  -> Ptr (Ptr a) -- ^ @pointer@ pointing to @1@ element of type @Ptr a@.
   -> m ()
 glGetVertexAttribPointervARB v1 v2 v3 = liftIO $ dyn356 ptr_glGetVertexAttribPointervARB v1 v2 v3
 
@@ -21034,7 +21034,7 @@
   :: MonadIO m
   => GLuint -- ^ @index@.
   -> GLenum -- ^ @pname@ of type @VertexAttribEnumNV@.
-  -> Ptr (Ptr a) -- ^ @pointer@ pointing to @1@ elements of type @Ptr a@.
+  -> Ptr (Ptr a) -- ^ @pointer@ pointing to @1@ element of type @Ptr a@.
   -> m ()
 glGetVertexAttribPointervNV v1 v2 v3 = liftIO $ dyn356 ptr_glGetVertexAttribPointervNV v1 v2 v3
 
@@ -21077,7 +21077,7 @@
   :: MonadIO m
   => GLuint -- ^ @index@.
   -> GLenum -- ^ @pname@ of type @VertexAttribEnumNV@.
-  -> Ptr GLdouble -- ^ @params@ pointing to @1@ elements of type @GLdouble@.
+  -> Ptr GLdouble -- ^ @params@ pointing to @1@ element of type @GLdouble@.
   -> m ()
 glGetVertexAttribdvNV v1 v2 v3 = liftIO $ dyn435 ptr_glGetVertexAttribdvNV v1 v2 v3
 
@@ -21120,7 +21120,7 @@
   :: MonadIO m
   => GLuint -- ^ @index@.
   -> GLenum -- ^ @pname@ of type @VertexAttribEnumNV@.
-  -> Ptr GLfloat -- ^ @params@ pointing to @1@ elements of type @GLfloat@.
+  -> Ptr GLfloat -- ^ @params@ pointing to @1@ element of type @GLfloat@.
   -> m ()
 glGetVertexAttribfvNV v1 v2 v3 = liftIO $ dyn344 ptr_glGetVertexAttribfvNV v1 v2 v3
 
@@ -21163,7 +21163,7 @@
   :: MonadIO m
   => GLuint -- ^ @index@.
   -> GLenum -- ^ @pname@ of type @VertexAttribEnumNV@.
-  -> Ptr GLint -- ^ @params@ pointing to @1@ elements of type @GLint@.
+  -> Ptr GLint -- ^ @params@ pointing to @1@ element of type @GLint@.
   -> m ()
 glGetVertexAttribivNV v1 v2 v3 = liftIO $ dyn330 ptr_glGetVertexAttribivNV v1 v2 v3
 
@@ -22273,7 +22273,7 @@
 -- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glIndex.xml OpenGL 2.x>
 glIndexdv
   :: MonadIO m
-  => Ptr GLdouble -- ^ @c@ pointing to @1@ elements of type @ColorIndexValueD@.
+  => Ptr GLdouble -- ^ @c@ pointing to @1@ element of type @ColorIndexValueD@.
   -> m ()
 glIndexdv v1 = liftIO $ dyn39 ptr_glIndexdv v1
 
@@ -22299,7 +22299,7 @@
 -- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glIndex.xml OpenGL 2.x>
 glIndexfv
   :: MonadIO m
-  => Ptr GLfloat -- ^ @c@ pointing to @1@ elements of type @ColorIndexValueF@.
+  => Ptr GLfloat -- ^ @c@ pointing to @1@ element of type @ColorIndexValueF@.
   -> m ()
 glIndexfv v1 = liftIO $ dyn41 ptr_glIndexfv v1
 
@@ -22325,7 +22325,7 @@
 -- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glIndex.xml OpenGL 2.x>
 glIndexiv
   :: MonadIO m
-  => Ptr GLint -- ^ @c@ pointing to @1@ elements of type @ColorIndexValueI@.
+  => Ptr GLint -- ^ @c@ pointing to @1@ element of type @ColorIndexValueI@.
   -> m ()
 glIndexiv v1 = liftIO $ dyn43 ptr_glIndexiv v1
 
@@ -22351,7 +22351,7 @@
 -- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glIndex.xml OpenGL 2.x>
 glIndexsv
   :: MonadIO m
-  => Ptr GLshort -- ^ @c@ pointing to @1@ elements of type @ColorIndexValueS@.
+  => Ptr GLshort -- ^ @c@ pointing to @1@ element of type @ColorIndexValueS@.
   -> m ()
 glIndexsv v1 = liftIO $ dyn45 ptr_glIndexsv v1
 
@@ -22377,7 +22377,7 @@
 -- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glIndex.xml OpenGL 2.x>
 glIndexubv
   :: MonadIO m
-  => Ptr GLubyte -- ^ @c@ pointing to @1@ elements of type @ColorIndexValueUB@.
+  => Ptr GLubyte -- ^ @c@ pointing to @1@ element of type @ColorIndexValueUB@.
   -> m ()
 glIndexubv v1 = liftIO $ dyn100 ptr_glIndexubv v1
 
@@ -22401,7 +22401,7 @@
 
 glIndexxvOES
   :: MonadIO m
-  => Ptr GLfixed -- ^ @component@ pointing to @1@ elements of type @GLfixed@.
+  => Ptr GLfixed -- ^ @component@ pointing to @1@ element of type @GLfixed@.
   -> m ()
 glIndexxvOES v1 = liftIO $ dyn106 ptr_glIndexxvOES v1
 
@@ -24472,8 +24472,8 @@
   => GLuint -- ^ @texture@.
   -> GLint -- ^ @level@.
   -> GLbitfield -- ^ @access@.
-  -> Ptr GLint -- ^ @stride@ pointing to @1@ elements of type @GLint@.
-  -> Ptr GLenum -- ^ @layout@ pointing to @1@ elements of type @GLenum@.
+  -> Ptr GLint -- ^ @stride@ pointing to @1@ element of type @GLint@.
+  -> Ptr GLenum -- ^ @layout@ pointing to @1@ element of type @GLenum@.
   -> m (Ptr a)
 glMapTexture2DINTEL v1 v2 v3 v4 v5 = liftIO $ dyn502 ptr_glMapTexture2DINTEL v1 v2 v3 v4 v5
 
@@ -25731,7 +25731,7 @@
 glMultiTexCoord1bvOES
   :: MonadIO m
   => GLenum -- ^ @texture@.
-  -> Ptr GLbyte -- ^ @coords@ pointing to @1@ elements of type @GLbyte@.
+  -> Ptr GLbyte -- ^ @coords@ pointing to @1@ element of type @GLbyte@.
   -> m ()
 glMultiTexCoord1bvOES v1 v2 = liftIO $ dyn531 ptr_glMultiTexCoord1bvOES v1 v2
 
@@ -25741,7 +25741,7 @@
 
 -- glMultiTexCoord1d -----------------------------------------------------------
 
--- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glMultiTexCoord.xml OpenGL 3.x>
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord.xml OpenGL 2.x>
 glMultiTexCoord1d
   :: MonadIO m
   => GLenum -- ^ @target@ of type @TextureUnit@.
@@ -25768,11 +25768,11 @@
 
 -- glMultiTexCoord1dv ----------------------------------------------------------
 
--- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glMultiTexCoord.xml OpenGL 3.x>
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord.xml OpenGL 2.x>
 glMultiTexCoord1dv
   :: MonadIO m
   => GLenum -- ^ @target@ of type @TextureUnit@.
-  -> Ptr GLdouble -- ^ @v@ pointing to @1@ elements of type @CoordD@.
+  -> Ptr GLdouble -- ^ @v@ pointing to @1@ element of type @CoordD@.
   -> m ()
 glMultiTexCoord1dv v1 v2 = liftIO $ dyn92 ptr_glMultiTexCoord1dv v1 v2
 
@@ -25785,7 +25785,7 @@
 glMultiTexCoord1dvARB
   :: MonadIO m
   => GLenum -- ^ @target@ of type @TextureUnit@.
-  -> Ptr GLdouble -- ^ @v@ pointing to @1@ elements of type @CoordD@.
+  -> Ptr GLdouble -- ^ @v@ pointing to @1@ element of type @CoordD@.
   -> m ()
 glMultiTexCoord1dvARB v1 v2 = liftIO $ dyn92 ptr_glMultiTexCoord1dvARB v1 v2
 
@@ -25795,7 +25795,7 @@
 
 -- glMultiTexCoord1f -----------------------------------------------------------
 
--- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glMultiTexCoord.xml OpenGL 3.x>
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord.xml OpenGL 2.x>
 glMultiTexCoord1f
   :: MonadIO m
   => GLenum -- ^ @target@ of type @TextureUnit@.
@@ -25822,11 +25822,11 @@
 
 -- glMultiTexCoord1fv ----------------------------------------------------------
 
--- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glMultiTexCoord.xml OpenGL 3.x>
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord.xml OpenGL 2.x>
 glMultiTexCoord1fv
   :: MonadIO m
   => GLenum -- ^ @target@ of type @TextureUnit@.
-  -> Ptr GLfloat -- ^ @v@ pointing to @1@ elements of type @CoordF@.
+  -> Ptr GLfloat -- ^ @v@ pointing to @1@ element of type @CoordF@.
   -> m ()
 glMultiTexCoord1fv v1 v2 = liftIO $ dyn93 ptr_glMultiTexCoord1fv v1 v2
 
@@ -25839,7 +25839,7 @@
 glMultiTexCoord1fvARB
   :: MonadIO m
   => GLenum -- ^ @target@ of type @TextureUnit@.
-  -> Ptr GLfloat -- ^ @v@ pointing to @1@ elements of type @CoordF@.
+  -> Ptr GLfloat -- ^ @v@ pointing to @1@ element of type @CoordF@.
   -> m ()
 glMultiTexCoord1fvARB v1 v2 = liftIO $ dyn93 ptr_glMultiTexCoord1fvARB v1 v2
 
@@ -25865,7 +25865,7 @@
 glMultiTexCoord1hvNV
   :: MonadIO m
   => GLenum -- ^ @target@ of type @TextureUnit@.
-  -> Ptr GLhalfNV -- ^ @v@ pointing to @1@ elements of type @Half16NV@.
+  -> Ptr GLhalfNV -- ^ @v@ pointing to @1@ element of type @Half16NV@.
   -> m ()
 glMultiTexCoord1hvNV v1 v2 = liftIO $ dyn534 ptr_glMultiTexCoord1hvNV v1 v2
 
@@ -25875,7 +25875,7 @@
 
 -- glMultiTexCoord1i -----------------------------------------------------------
 
--- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glMultiTexCoord.xml OpenGL 3.x>
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord.xml OpenGL 2.x>
 glMultiTexCoord1i
   :: MonadIO m
   => GLenum -- ^ @target@ of type @TextureUnit@.
@@ -25902,11 +25902,11 @@
 
 -- glMultiTexCoord1iv ----------------------------------------------------------
 
--- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glMultiTexCoord.xml OpenGL 3.x>
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord.xml OpenGL 2.x>
 glMultiTexCoord1iv
   :: MonadIO m
   => GLenum -- ^ @target@ of type @TextureUnit@.
-  -> Ptr GLint -- ^ @v@ pointing to @1@ elements of type @CoordI@.
+  -> Ptr GLint -- ^ @v@ pointing to @1@ element of type @CoordI@.
   -> m ()
 glMultiTexCoord1iv v1 v2 = liftIO $ dyn135 ptr_glMultiTexCoord1iv v1 v2
 
@@ -25919,7 +25919,7 @@
 glMultiTexCoord1ivARB
   :: MonadIO m
   => GLenum -- ^ @target@ of type @TextureUnit@.
-  -> Ptr GLint -- ^ @v@ pointing to @1@ elements of type @CoordI@.
+  -> Ptr GLint -- ^ @v@ pointing to @1@ element of type @CoordI@.
   -> m ()
 glMultiTexCoord1ivARB v1 v2 = liftIO $ dyn135 ptr_glMultiTexCoord1ivARB v1 v2
 
@@ -25929,7 +25929,7 @@
 
 -- glMultiTexCoord1s -----------------------------------------------------------
 
--- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glMultiTexCoord.xml OpenGL 3.x>
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord.xml OpenGL 2.x>
 glMultiTexCoord1s
   :: MonadIO m
   => GLenum -- ^ @target@ of type @TextureUnit@.
@@ -25956,11 +25956,11 @@
 
 -- glMultiTexCoord1sv ----------------------------------------------------------
 
--- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glMultiTexCoord.xml OpenGL 3.x>
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord.xml OpenGL 2.x>
 glMultiTexCoord1sv
   :: MonadIO m
   => GLenum -- ^ @target@ of type @TextureUnit@.
-  -> Ptr GLshort -- ^ @v@ pointing to @1@ elements of type @CoordS@.
+  -> Ptr GLshort -- ^ @v@ pointing to @1@ element of type @CoordS@.
   -> m ()
 glMultiTexCoord1sv v1 v2 = liftIO $ dyn536 ptr_glMultiTexCoord1sv v1 v2
 
@@ -25973,7 +25973,7 @@
 glMultiTexCoord1svARB
   :: MonadIO m
   => GLenum -- ^ @target@ of type @TextureUnit@.
-  -> Ptr GLshort -- ^ @v@ pointing to @1@ elements of type @CoordS@.
+  -> Ptr GLshort -- ^ @v@ pointing to @1@ element of type @CoordS@.
   -> m ()
 glMultiTexCoord1svARB v1 v2 = liftIO $ dyn536 ptr_glMultiTexCoord1svARB v1 v2
 
@@ -25999,7 +25999,7 @@
 glMultiTexCoord1xvOES
   :: MonadIO m
   => GLenum -- ^ @texture@.
-  -> Ptr GLfixed -- ^ @coords@ pointing to @1@ elements of type @GLfixed@.
+  -> Ptr GLfixed -- ^ @coords@ pointing to @1@ element of type @GLfixed@.
   -> m ()
 glMultiTexCoord1xvOES v1 v2 = liftIO $ dyn94 ptr_glMultiTexCoord1xvOES v1 v2
 
@@ -26036,7 +26036,7 @@
 
 -- glMultiTexCoord2d -----------------------------------------------------------
 
--- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glMultiTexCoord.xml OpenGL 3.x>
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord.xml OpenGL 2.x>
 glMultiTexCoord2d
   :: MonadIO m
   => GLenum -- ^ @target@ of type @TextureUnit@.
@@ -26065,7 +26065,7 @@
 
 -- glMultiTexCoord2dv ----------------------------------------------------------
 
--- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glMultiTexCoord.xml OpenGL 3.x>
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord.xml OpenGL 2.x>
 glMultiTexCoord2dv
   :: MonadIO m
   => GLenum -- ^ @target@ of type @TextureUnit@.
@@ -26092,7 +26092,7 @@
 
 -- glMultiTexCoord2f -----------------------------------------------------------
 
--- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glMultiTexCoord.xml OpenGL 3.x>
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord.xml OpenGL 2.x>
 glMultiTexCoord2f
   :: MonadIO m
   => GLenum -- ^ @target@ of type @TextureUnit@.
@@ -26121,7 +26121,7 @@
 
 -- glMultiTexCoord2fv ----------------------------------------------------------
 
--- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glMultiTexCoord.xml OpenGL 3.x>
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord.xml OpenGL 2.x>
 glMultiTexCoord2fv
   :: MonadIO m
   => GLenum -- ^ @target@ of type @TextureUnit@.
@@ -26175,7 +26175,7 @@
 
 -- glMultiTexCoord2i -----------------------------------------------------------
 
--- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glMultiTexCoord.xml OpenGL 3.x>
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord.xml OpenGL 2.x>
 glMultiTexCoord2i
   :: MonadIO m
   => GLenum -- ^ @target@ of type @TextureUnit@.
@@ -26204,7 +26204,7 @@
 
 -- glMultiTexCoord2iv ----------------------------------------------------------
 
--- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glMultiTexCoord.xml OpenGL 3.x>
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord.xml OpenGL 2.x>
 glMultiTexCoord2iv
   :: MonadIO m
   => GLenum -- ^ @target@ of type @TextureUnit@.
@@ -26231,7 +26231,7 @@
 
 -- glMultiTexCoord2s -----------------------------------------------------------
 
--- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glMultiTexCoord.xml OpenGL 3.x>
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord.xml OpenGL 2.x>
 glMultiTexCoord2s
   :: MonadIO m
   => GLenum -- ^ @target@ of type @TextureUnit@.
@@ -26260,7 +26260,7 @@
 
 -- glMultiTexCoord2sv ----------------------------------------------------------
 
--- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glMultiTexCoord.xml OpenGL 3.x>
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord.xml OpenGL 2.x>
 glMultiTexCoord2sv
   :: MonadIO m
   => GLenum -- ^ @target@ of type @TextureUnit@.
@@ -26342,7 +26342,7 @@
 
 -- glMultiTexCoord3d -----------------------------------------------------------
 
--- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glMultiTexCoord.xml OpenGL 3.x>
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord.xml OpenGL 2.x>
 glMultiTexCoord3d
   :: MonadIO m
   => GLenum -- ^ @target@ of type @TextureUnit@.
@@ -26373,7 +26373,7 @@
 
 -- glMultiTexCoord3dv ----------------------------------------------------------
 
--- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glMultiTexCoord.xml OpenGL 3.x>
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord.xml OpenGL 2.x>
 glMultiTexCoord3dv
   :: MonadIO m
   => GLenum -- ^ @target@ of type @TextureUnit@.
@@ -26400,7 +26400,7 @@
 
 -- glMultiTexCoord3f -----------------------------------------------------------
 
--- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glMultiTexCoord.xml OpenGL 3.x>
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord.xml OpenGL 2.x>
 glMultiTexCoord3f
   :: MonadIO m
   => GLenum -- ^ @target@ of type @TextureUnit@.
@@ -26431,7 +26431,7 @@
 
 -- glMultiTexCoord3fv ----------------------------------------------------------
 
--- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glMultiTexCoord.xml OpenGL 3.x>
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord.xml OpenGL 2.x>
 glMultiTexCoord3fv
   :: MonadIO m
   => GLenum -- ^ @target@ of type @TextureUnit@.
@@ -26486,7 +26486,7 @@
 
 -- glMultiTexCoord3i -----------------------------------------------------------
 
--- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glMultiTexCoord.xml OpenGL 3.x>
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord.xml OpenGL 2.x>
 glMultiTexCoord3i
   :: MonadIO m
   => GLenum -- ^ @target@ of type @TextureUnit@.
@@ -26517,7 +26517,7 @@
 
 -- glMultiTexCoord3iv ----------------------------------------------------------
 
--- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glMultiTexCoord.xml OpenGL 3.x>
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord.xml OpenGL 2.x>
 glMultiTexCoord3iv
   :: MonadIO m
   => GLenum -- ^ @target@ of type @TextureUnit@.
@@ -26544,7 +26544,7 @@
 
 -- glMultiTexCoord3s -----------------------------------------------------------
 
--- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glMultiTexCoord.xml OpenGL 3.x>
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord.xml OpenGL 2.x>
 glMultiTexCoord3s
   :: MonadIO m
   => GLenum -- ^ @target@ of type @TextureUnit@.
@@ -26575,7 +26575,7 @@
 
 -- glMultiTexCoord3sv ----------------------------------------------------------
 
--- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glMultiTexCoord.xml OpenGL 3.x>
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord.xml OpenGL 2.x>
 glMultiTexCoord3sv
   :: MonadIO m
   => GLenum -- ^ @target@ of type @TextureUnit@.
@@ -26659,7 +26659,7 @@
 
 -- glMultiTexCoord4d -----------------------------------------------------------
 
--- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glMultiTexCoord.xml OpenGL 3.x>
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord.xml OpenGL 2.x>
 glMultiTexCoord4d
   :: MonadIO m
   => GLenum -- ^ @target@ of type @TextureUnit@.
@@ -26692,7 +26692,7 @@
 
 -- glMultiTexCoord4dv ----------------------------------------------------------
 
--- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glMultiTexCoord.xml OpenGL 3.x>
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord.xml OpenGL 2.x>
 glMultiTexCoord4dv
   :: MonadIO m
   => GLenum -- ^ @target@ of type @TextureUnit@.
@@ -26719,7 +26719,7 @@
 
 -- glMultiTexCoord4f -----------------------------------------------------------
 
--- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glMultiTexCoord.xml OpenGL 3.x>
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord.xml OpenGL 2.x>
 glMultiTexCoord4f
   :: MonadIO m
   => GLenum -- ^ @target@ of type @TextureUnit@.
@@ -26752,7 +26752,7 @@
 
 -- glMultiTexCoord4fv ----------------------------------------------------------
 
--- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glMultiTexCoord.xml OpenGL 3.x>
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord.xml OpenGL 2.x>
 glMultiTexCoord4fv
   :: MonadIO m
   => GLenum -- ^ @target@ of type @TextureUnit@.
@@ -26808,7 +26808,7 @@
 
 -- glMultiTexCoord4i -----------------------------------------------------------
 
--- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glMultiTexCoord.xml OpenGL 3.x>
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord.xml OpenGL 2.x>
 glMultiTexCoord4i
   :: MonadIO m
   => GLenum -- ^ @target@ of type @TextureUnit@.
@@ -26841,7 +26841,7 @@
 
 -- glMultiTexCoord4iv ----------------------------------------------------------
 
--- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glMultiTexCoord.xml OpenGL 3.x>
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord.xml OpenGL 2.x>
 glMultiTexCoord4iv
   :: MonadIO m
   => GLenum -- ^ @target@ of type @TextureUnit@.
@@ -26868,7 +26868,7 @@
 
 -- glMultiTexCoord4s -----------------------------------------------------------
 
--- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glMultiTexCoord.xml OpenGL 3.x>
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord.xml OpenGL 2.x>
 glMultiTexCoord4s
   :: MonadIO m
   => GLenum -- ^ @target@ of type @TextureUnit@.
@@ -26901,7 +26901,7 @@
 
 -- glMultiTexCoord4sv ----------------------------------------------------------
 
--- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glMultiTexCoord.xml OpenGL 3.x>
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord.xml OpenGL 2.x>
 glMultiTexCoord4sv
   :: MonadIO m
   => GLenum -- ^ @target@ of type @TextureUnit@.
@@ -26991,7 +26991,7 @@
   :: MonadIO m
   => GLenum -- ^ @texture@.
   -> GLenum -- ^ @type@.
-  -> Ptr GLuint -- ^ @coords@ pointing to @1@ elements of type @GLuint@.
+  -> Ptr GLuint -- ^ @coords@ pointing to @1@ element of type @GLuint@.
   -> m ()
 glMultiTexCoordP1uiv v1 v2 v3 = liftIO $ dyn408 ptr_glMultiTexCoordP1uiv v1 v2 v3
 
@@ -27019,7 +27019,7 @@
   :: MonadIO m
   => GLenum -- ^ @texture@.
   -> GLenum -- ^ @type@.
-  -> Ptr GLuint -- ^ @coords@ pointing to @1@ elements of type @GLuint@.
+  -> Ptr GLuint -- ^ @coords@ pointing to @1@ element of type @GLuint@.
   -> m ()
 glMultiTexCoordP2uiv v1 v2 v3 = liftIO $ dyn408 ptr_glMultiTexCoordP2uiv v1 v2 v3
 
@@ -27047,7 +27047,7 @@
   :: MonadIO m
   => GLenum -- ^ @texture@.
   -> GLenum -- ^ @type@.
-  -> Ptr GLuint -- ^ @coords@ pointing to @1@ elements of type @GLuint@.
+  -> Ptr GLuint -- ^ @coords@ pointing to @1@ element of type @GLuint@.
   -> m ()
 glMultiTexCoordP3uiv v1 v2 v3 = liftIO $ dyn408 ptr_glMultiTexCoordP3uiv v1 v2 v3
 
@@ -27075,7 +27075,7 @@
   :: MonadIO m
   => GLenum -- ^ @texture@.
   -> GLenum -- ^ @type@.
-  -> Ptr GLuint -- ^ @coords@ pointing to @1@ elements of type @GLuint@.
+  -> Ptr GLuint -- ^ @coords@ pointing to @1@ element of type @GLuint@.
   -> m ()
 glMultiTexCoordP4uiv v1 v2 v3 = liftIO $ dyn408 ptr_glMultiTexCoordP4uiv v1 v2 v3
 
@@ -28453,7 +28453,7 @@
 glNormalP3uiv
   :: MonadIO m
   => GLenum -- ^ @type@.
-  -> Ptr GLuint -- ^ @coords@ pointing to @1@ elements of type @GLuint@.
+  -> Ptr GLuint -- ^ @coords@ pointing to @1@ element of type @GLuint@.
   -> m ()
 glNormalP3uiv v1 v2 = liftIO $ dyn124 ptr_glNormalP3uiv v1 v2
 
@@ -29544,7 +29544,7 @@
   :: MonadIO m
   => GLenum -- ^ @target@ of type @PixelTransformTargetEXT@.
   -> GLenum -- ^ @pname@ of type @PixelTransformPNameEXT@.
-  -> Ptr GLfloat -- ^ @params@ pointing to @1@ elements of type @GLfloat@.
+  -> Ptr GLfloat -- ^ @params@ pointing to @1@ element of type @GLfloat@.
   -> m ()
 glPixelTransformParameterfvEXT v1 v2 v3 = liftIO $ dyn131 ptr_glPixelTransformParameterfvEXT v1 v2 v3
 
@@ -29572,7 +29572,7 @@
   :: MonadIO m
   => GLenum -- ^ @target@ of type @PixelTransformTargetEXT@.
   -> GLenum -- ^ @pname@ of type @PixelTransformPNameEXT@.
-  -> Ptr GLint -- ^ @params@ pointing to @1@ elements of type @GLint@.
+  -> Ptr GLint -- ^ @params@ pointing to @1@ element of type @GLint@.
   -> m ()
 glPixelTransformParameterivEXT v1 v2 v3 = liftIO $ dyn132 ptr_glPixelTransformParameterivEXT v1 v2 v3
 
@@ -29615,10 +29615,10 @@
   -> GLsizei -- ^ @startSegment@.
   -> GLsizei -- ^ @numSegments@.
   -> GLfloat -- ^ @distance@.
-  -> Ptr GLfloat -- ^ @x@ pointing to @1@ elements of type @GLfloat@.
-  -> Ptr GLfloat -- ^ @y@ pointing to @1@ elements of type @GLfloat@.
-  -> Ptr GLfloat -- ^ @tangentX@ pointing to @1@ elements of type @GLfloat@.
-  -> Ptr GLfloat -- ^ @tangentY@ pointing to @1@ elements of type @GLfloat@.
+  -> Ptr GLfloat -- ^ @x@ pointing to @1@ element of type @GLfloat@.
+  -> Ptr GLfloat -- ^ @y@ pointing to @1@ element of type @GLfloat@.
+  -> Ptr GLfloat -- ^ @tangentX@ pointing to @1@ element of type @GLfloat@.
+  -> Ptr GLfloat -- ^ @tangentY@ pointing to @1@ element of type @GLfloat@.
   -> m GLboolean -- ^ of type @Boolean@.
 glPointAlongPathNV v1 v2 v3 v4 v5 v6 v7 v8 = liftIO $ dyn600 ptr_glPointAlongPathNV v1 v2 v3 v4 v5 v6 v7 v8
 
@@ -29893,7 +29893,7 @@
 
 glPollAsyncSGIX
   :: MonadIO m
-  => Ptr GLuint -- ^ @markerp@ pointing to @1@ elements of type @GLuint@.
+  => Ptr GLuint -- ^ @markerp@ pointing to @1@ element of type @GLuint@.
   -> m GLint
 glPollAsyncSGIX v1 = liftIO $ dyn276 ptr_glPollAsyncSGIX v1
 
@@ -29905,7 +29905,7 @@
 
 glPollInstrumentsSGIX
   :: MonadIO m
-  => Ptr GLint -- ^ @marker_p@ pointing to @1@ elements of type @GLint@.
+  => Ptr GLint -- ^ @marker_p@ pointing to @1@ element of type @GLint@.
   -> m GLint
 glPollInstrumentsSGIX v1 = liftIO $ dyn601 ptr_glPollInstrumentsSGIX v1
 
@@ -30688,7 +30688,7 @@
   :: MonadIO m
   => GLuint -- ^ @id@.
   -> GLsizei -- ^ @len@.
-  -> Ptr GLubyte -- ^ @name@ pointing to @1@ elements of type @GLubyte@.
+  -> Ptr GLubyte -- ^ @name@ pointing to @1@ element of type @GLubyte@.
   -> GLdouble -- ^ @x@.
   -> GLdouble -- ^ @y@.
   -> GLdouble -- ^ @z@.
@@ -30706,7 +30706,7 @@
   :: MonadIO m
   => GLuint -- ^ @id@.
   -> GLsizei -- ^ @len@.
-  -> Ptr GLubyte -- ^ @name@ pointing to @1@ elements of type @GLubyte@.
+  -> Ptr GLubyte -- ^ @name@ pointing to @1@ element of type @GLubyte@.
   -> Ptr GLdouble -- ^ @v@ pointing to @4@ elements of type @GLdouble@.
   -> m ()
 glProgramNamedParameter4dvNV v1 v2 v3 v4 = liftIO $ dyn388 ptr_glProgramNamedParameter4dvNV v1 v2 v3 v4
@@ -30721,7 +30721,7 @@
   :: MonadIO m
   => GLuint -- ^ @id@.
   -> GLsizei -- ^ @len@.
-  -> Ptr GLubyte -- ^ @name@ pointing to @1@ elements of type @GLubyte@.
+  -> Ptr GLubyte -- ^ @name@ pointing to @1@ element of type @GLubyte@.
   -> GLfloat -- ^ @x@.
   -> GLfloat -- ^ @y@.
   -> GLfloat -- ^ @z@.
@@ -30739,7 +30739,7 @@
   :: MonadIO m
   => GLuint -- ^ @id@.
   -> GLsizei -- ^ @len@.
-  -> Ptr GLubyte -- ^ @name@ pointing to @1@ elements of type @GLubyte@.
+  -> Ptr GLubyte -- ^ @name@ pointing to @1@ element of type @GLubyte@.
   -> Ptr GLfloat -- ^ @v@ pointing to @4@ elements of type @GLfloat@.
   -> m ()
 glProgramNamedParameter4fvNV v1 v2 v3 v4 = liftIO $ dyn389 ptr_glProgramNamedParameter4fvNV v1 v2 v3 v4
@@ -30963,7 +30963,7 @@
   => GLuint -- ^ @program@.
   -> GLint -- ^ @location@.
   -> GLsizei -- ^ @count@.
-  -> Ptr GLdouble -- ^ @value@ pointing to @1@ elements of type @GLdouble@.
+  -> Ptr GLdouble -- ^ @value@ pointing to @1@ element of type @GLdouble@.
   -> m ()
 glProgramUniform1dv v1 v2 v3 v4 = liftIO $ dyn449 ptr_glProgramUniform1dv v1 v2 v3 v4
 
@@ -31023,7 +31023,7 @@
   => GLuint -- ^ @program@.
   -> GLint -- ^ @location@.
   -> GLsizei -- ^ @count@.
-  -> Ptr GLfloat -- ^ @value@ pointing to @1@ elements of type @GLfloat@.
+  -> Ptr GLfloat -- ^ @value@ pointing to @1@ element of type @GLfloat@.
   -> m ()
 glProgramUniform1fv v1 v2 v3 v4 = liftIO $ dyn450 ptr_glProgramUniform1fv v1 v2 v3 v4
 
@@ -31112,7 +31112,7 @@
   => GLuint -- ^ @program@.
   -> GLint -- ^ @location@.
   -> GLsizei -- ^ @count@.
-  -> Ptr GLint -- ^ @value@ pointing to @1@ elements of type @GLint@.
+  -> Ptr GLint -- ^ @value@ pointing to @1@ element of type @GLint@.
   -> m ()
 glProgramUniform1iv v1 v2 v3 v4 = liftIO $ dyn451 ptr_glProgramUniform1iv v1 v2 v3 v4
 
@@ -31201,7 +31201,7 @@
   => GLuint -- ^ @program@.
   -> GLint -- ^ @location@.
   -> GLsizei -- ^ @count@.
-  -> Ptr GLuint -- ^ @value@ pointing to @1@ elements of type @GLuint@.
+  -> Ptr GLuint -- ^ @value@ pointing to @1@ element of type @GLuint@.
   -> m ()
 glProgramUniform1uiv v1 v2 v3 v4 = liftIO $ dyn452 ptr_glProgramUniform1uiv v1 v2 v3 v4
 
@@ -34022,7 +34022,7 @@
 
 glReplacementCodeuiColor3fVertex3fvSUN
   :: MonadIO m
-  => Ptr GLuint -- ^ @rc@ pointing to @1@ elements of type @ReplacementCodeSUN@.
+  => Ptr GLuint -- ^ @rc@ pointing to @1@ element of type @ReplacementCodeSUN@.
   -> Ptr GLfloat -- ^ @c@ pointing to @3@ elements of type @GLfloat@.
   -> Ptr GLfloat -- ^ @v@ pointing to @3@ elements of type @GLfloat@.
   -> m ()
@@ -34058,7 +34058,7 @@
 
 glReplacementCodeuiColor4fNormal3fVertex3fvSUN
   :: MonadIO m
-  => Ptr GLuint -- ^ @rc@ pointing to @1@ elements of type @ReplacementCodeSUN@.
+  => Ptr GLuint -- ^ @rc@ pointing to @1@ element of type @ReplacementCodeSUN@.
   -> 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 @3@ elements of type @GLfloat@.
@@ -34092,7 +34092,7 @@
 
 glReplacementCodeuiColor4ubVertex3fvSUN
   :: MonadIO m
-  => Ptr GLuint -- ^ @rc@ pointing to @1@ elements of type @ReplacementCodeSUN@.
+  => Ptr GLuint -- ^ @rc@ pointing to @1@ element of type @ReplacementCodeSUN@.
   -> Ptr GLubyte -- ^ @c@ pointing to @4@ elements of type @GLubyte@.
   -> Ptr GLfloat -- ^ @v@ pointing to @3@ elements of type @GLfloat@.
   -> m ()
@@ -34124,7 +34124,7 @@
 
 glReplacementCodeuiNormal3fVertex3fvSUN
   :: MonadIO m
-  => Ptr GLuint -- ^ @rc@ pointing to @1@ elements of type @ReplacementCodeSUN@.
+  => Ptr GLuint -- ^ @rc@ pointing to @1@ element of type @ReplacementCodeSUN@.
   -> Ptr GLfloat -- ^ @n@ pointing to @3@ elements of type @GLfloat@.
   -> Ptr GLfloat -- ^ @v@ pointing to @3@ elements of type @GLfloat@.
   -> m ()
@@ -34174,7 +34174,7 @@
 
 glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN
   :: MonadIO m
-  => Ptr GLuint -- ^ @rc@ pointing to @1@ elements of type @ReplacementCodeSUN@.
+  => Ptr GLuint -- ^ @rc@ pointing to @1@ element of type @ReplacementCodeSUN@.
   -> Ptr GLfloat -- ^ @tc@ pointing to @2@ elements of type @GLfloat@.
   -> Ptr GLfloat -- ^ @c@ pointing to @4@ elements of type @GLfloat@.
   -> Ptr GLfloat -- ^ @n@ pointing to @3@ elements of type @GLfloat@.
@@ -34210,7 +34210,7 @@
 
 glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN
   :: MonadIO m
-  => Ptr GLuint -- ^ @rc@ pointing to @1@ elements of type @ReplacementCodeSUN@.
+  => Ptr GLuint -- ^ @rc@ pointing to @1@ element of type @ReplacementCodeSUN@.
   -> Ptr GLfloat -- ^ @tc@ pointing to @2@ elements of type @GLfloat@.
   -> Ptr GLfloat -- ^ @n@ pointing to @3@ elements of type @GLfloat@.
   -> Ptr GLfloat -- ^ @v@ pointing to @3@ elements of type @GLfloat@.
@@ -34242,7 +34242,7 @@
 
 glReplacementCodeuiTexCoord2fVertex3fvSUN
   :: MonadIO m
-  => Ptr GLuint -- ^ @rc@ pointing to @1@ elements of type @ReplacementCodeSUN@.
+  => Ptr GLuint -- ^ @rc@ pointing to @1@ element of type @ReplacementCodeSUN@.
   -> Ptr GLfloat -- ^ @tc@ pointing to @2@ elements of type @GLfloat@.
   -> Ptr GLfloat -- ^ @v@ pointing to @3@ elements of type @GLfloat@.
   -> m ()
@@ -34271,7 +34271,7 @@
 
 glReplacementCodeuiVertex3fvSUN
   :: MonadIO m
-  => Ptr GLuint -- ^ @rc@ pointing to @1@ elements of type @ReplacementCodeSUN@.
+  => Ptr GLuint -- ^ @rc@ pointing to @1@ element of type @ReplacementCodeSUN@.
   -> Ptr GLfloat -- ^ @v@ pointing to @3@ elements of type @GLfloat@.
   -> m ()
 glReplacementCodeuiVertex3fvSUN v1 v2 = liftIO $ dyn678 ptr_glReplacementCodeuiVertex3fvSUN v1 v2
@@ -35440,7 +35440,7 @@
 glSecondaryColorP3uiv
   :: MonadIO m
   => GLenum -- ^ @type@.
-  -> Ptr GLuint -- ^ @color@ pointing to @1@ elements of type @GLuint@.
+  -> Ptr GLuint -- ^ @color@ pointing to @1@ element of type @GLuint@.
   -> m ()
 glSecondaryColorP3uiv v1 v2 = liftIO $ dyn124 ptr_glSecondaryColorP3uiv v1 v2
 
@@ -36595,7 +36595,7 @@
 
 glTexCoord1bvOES
   :: MonadIO m
-  => Ptr GLbyte -- ^ @coords@ pointing to @1@ elements of type @GLbyte@.
+  => Ptr GLbyte -- ^ @coords@ pointing to @1@ element of type @GLbyte@.
   -> m ()
 glTexCoord1bvOES v1 = liftIO $ dyn37 ptr_glTexCoord1bvOES v1
 
@@ -36621,7 +36621,7 @@
 -- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord.xml OpenGL 2.x>
 glTexCoord1dv
   :: MonadIO m
-  => Ptr GLdouble -- ^ @v@ pointing to @1@ elements of type @CoordD@.
+  => Ptr GLdouble -- ^ @v@ pointing to @1@ element of type @CoordD@.
   -> m ()
 glTexCoord1dv v1 = liftIO $ dyn39 ptr_glTexCoord1dv v1
 
@@ -36647,7 +36647,7 @@
 -- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord.xml OpenGL 2.x>
 glTexCoord1fv
   :: MonadIO m
-  => Ptr GLfloat -- ^ @v@ pointing to @1@ elements of type @CoordF@.
+  => Ptr GLfloat -- ^ @v@ pointing to @1@ element of type @CoordF@.
   -> m ()
 glTexCoord1fv v1 = liftIO $ dyn41 ptr_glTexCoord1fv v1
 
@@ -36671,7 +36671,7 @@
 
 glTexCoord1hvNV
   :: MonadIO m
-  => Ptr GLhalfNV -- ^ @v@ pointing to @1@ elements of type @Half16NV@.
+  => Ptr GLhalfNV -- ^ @v@ pointing to @1@ element of type @Half16NV@.
   -> m ()
 glTexCoord1hvNV v1 = liftIO $ dyn98 ptr_glTexCoord1hvNV v1
 
@@ -36697,7 +36697,7 @@
 -- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord.xml OpenGL 2.x>
 glTexCoord1iv
   :: MonadIO m
-  => Ptr GLint -- ^ @v@ pointing to @1@ elements of type @CoordI@.
+  => Ptr GLint -- ^ @v@ pointing to @1@ element of type @CoordI@.
   -> m ()
 glTexCoord1iv v1 = liftIO $ dyn43 ptr_glTexCoord1iv v1
 
@@ -36723,7 +36723,7 @@
 -- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord.xml OpenGL 2.x>
 glTexCoord1sv
   :: MonadIO m
-  => Ptr GLshort -- ^ @v@ pointing to @1@ elements of type @CoordS@.
+  => Ptr GLshort -- ^ @v@ pointing to @1@ element of type @CoordS@.
   -> m ()
 glTexCoord1sv v1 = liftIO $ dyn45 ptr_glTexCoord1sv v1
 
@@ -36747,7 +36747,7 @@
 
 glTexCoord1xvOES
   :: MonadIO m
-  => Ptr GLfixed -- ^ @coords@ pointing to @1@ elements of type @GLfixed@.
+  => Ptr GLfixed -- ^ @coords@ pointing to @1@ element of type @GLfixed@.
   -> m ()
 glTexCoord1xvOES v1 = liftIO $ dyn106 ptr_glTexCoord1xvOES v1
 
@@ -37597,7 +37597,7 @@
 glTexCoordP1uiv
   :: MonadIO m
   => GLenum -- ^ @type@.
-  -> Ptr GLuint -- ^ @coords@ pointing to @1@ elements of type @GLuint@.
+  -> Ptr GLuint -- ^ @coords@ pointing to @1@ element of type @GLuint@.
   -> m ()
 glTexCoordP1uiv v1 v2 = liftIO $ dyn124 ptr_glTexCoordP1uiv v1 v2
 
@@ -37623,7 +37623,7 @@
 glTexCoordP2uiv
   :: MonadIO m
   => GLenum -- ^ @type@.
-  -> Ptr GLuint -- ^ @coords@ pointing to @1@ elements of type @GLuint@.
+  -> Ptr GLuint -- ^ @coords@ pointing to @1@ element of type @GLuint@.
   -> m ()
 glTexCoordP2uiv v1 v2 = liftIO $ dyn124 ptr_glTexCoordP2uiv v1 v2
 
@@ -37649,7 +37649,7 @@
 glTexCoordP3uiv
   :: MonadIO m
   => GLenum -- ^ @type@.
-  -> Ptr GLuint -- ^ @coords@ pointing to @1@ elements of type @GLuint@.
+  -> Ptr GLuint -- ^ @coords@ pointing to @1@ element of type @GLuint@.
   -> m ()
 glTexCoordP3uiv v1 v2 = liftIO $ dyn124 ptr_glTexCoordP3uiv v1 v2
 
@@ -37675,7 +37675,7 @@
 glTexCoordP4uiv
   :: MonadIO m
   => GLenum -- ^ @type@.
-  -> Ptr GLuint -- ^ @coords@ pointing to @1@ elements of type @GLuint@.
+  -> Ptr GLuint -- ^ @coords@ pointing to @1@ element of type @GLuint@.
   -> m ()
 glTexCoordP4uiv v1 v2 = liftIO $ dyn124 ptr_glTexCoordP4uiv v1 v2
 
@@ -43110,7 +43110,7 @@
 glVertexAttrib1dv
   :: MonadIO m
   => GLuint -- ^ @index@.
-  -> Ptr GLdouble -- ^ @v@ pointing to @1@ elements of type @GLdouble@.
+  -> Ptr GLdouble -- ^ @v@ pointing to @1@ element of type @GLdouble@.
   -> m ()
 glVertexAttrib1dv v1 v2 = liftIO $ dyn805 ptr_glVertexAttrib1dv v1 v2
 
@@ -43123,7 +43123,7 @@
 glVertexAttrib1dvARB
   :: MonadIO m
   => GLuint -- ^ @index@.
-  -> Ptr GLdouble -- ^ @v@ pointing to @1@ elements of type @GLdouble@.
+  -> Ptr GLdouble -- ^ @v@ pointing to @1@ element of type @GLdouble@.
   -> m ()
 glVertexAttrib1dvARB v1 v2 = liftIO $ dyn805 ptr_glVertexAttrib1dvARB v1 v2
 
@@ -43136,7 +43136,7 @@
 glVertexAttrib1dvNV
   :: MonadIO m
   => GLuint -- ^ @index@.
-  -> Ptr GLdouble -- ^ @v@ pointing to @1@ elements of type @GLdouble@.
+  -> Ptr GLdouble -- ^ @v@ pointing to @1@ element of type @GLdouble@.
   -> m ()
 glVertexAttrib1dvNV v1 v2 = liftIO $ dyn805 ptr_glVertexAttrib1dvNV v1 v2
 
@@ -43190,7 +43190,7 @@
 glVertexAttrib1fv
   :: MonadIO m
   => GLuint -- ^ @index@.
-  -> Ptr GLfloat -- ^ @v@ pointing to @1@ elements of type @GLfloat@.
+  -> Ptr GLfloat -- ^ @v@ pointing to @1@ element of type @GLfloat@.
   -> m ()
 glVertexAttrib1fv v1 v2 = liftIO $ dyn372 ptr_glVertexAttrib1fv v1 v2
 
@@ -43203,7 +43203,7 @@
 glVertexAttrib1fvARB
   :: MonadIO m
   => GLuint -- ^ @index@.
-  -> Ptr GLfloat -- ^ @v@ pointing to @1@ elements of type @GLfloat@.
+  -> Ptr GLfloat -- ^ @v@ pointing to @1@ element of type @GLfloat@.
   -> m ()
 glVertexAttrib1fvARB v1 v2 = liftIO $ dyn372 ptr_glVertexAttrib1fvARB v1 v2
 
@@ -43216,7 +43216,7 @@
 glVertexAttrib1fvNV
   :: MonadIO m
   => GLuint -- ^ @index@.
-  -> Ptr GLfloat -- ^ @v@ pointing to @1@ elements of type @GLfloat@.
+  -> Ptr GLfloat -- ^ @v@ pointing to @1@ element of type @GLfloat@.
   -> m ()
 glVertexAttrib1fvNV v1 v2 = liftIO $ dyn372 ptr_glVertexAttrib1fvNV v1 v2
 
@@ -43242,7 +43242,7 @@
 glVertexAttrib1hvNV
   :: MonadIO m
   => GLuint -- ^ @index@.
-  -> Ptr GLhalfNV -- ^ @v@ pointing to @1@ elements of type @Half16NV@.
+  -> Ptr GLhalfNV -- ^ @v@ pointing to @1@ element of type @Half16NV@.
   -> m ()
 glVertexAttrib1hvNV v1 v2 = liftIO $ dyn821 ptr_glVertexAttrib1hvNV v1 v2
 
@@ -43296,7 +43296,7 @@
 glVertexAttrib1sv
   :: MonadIO m
   => GLuint -- ^ @index@.
-  -> Ptr GLshort -- ^ @v@ pointing to @1@ elements of type @GLshort@.
+  -> Ptr GLshort -- ^ @v@ pointing to @1@ element of type @GLshort@.
   -> m ()
 glVertexAttrib1sv v1 v2 = liftIO $ dyn806 ptr_glVertexAttrib1sv v1 v2
 
@@ -43309,7 +43309,7 @@
 glVertexAttrib1svARB
   :: MonadIO m
   => GLuint -- ^ @index@.
-  -> Ptr GLshort -- ^ @v@ pointing to @1@ elements of type @GLshort@.
+  -> Ptr GLshort -- ^ @v@ pointing to @1@ element of type @GLshort@.
   -> m ()
 glVertexAttrib1svARB v1 v2 = liftIO $ dyn806 ptr_glVertexAttrib1svARB v1 v2
 
@@ -43322,7 +43322,7 @@
 glVertexAttrib1svNV
   :: MonadIO m
   => GLuint -- ^ @index@.
-  -> Ptr GLshort -- ^ @v@ pointing to @1@ elements of type @GLshort@.
+  -> Ptr GLshort -- ^ @v@ pointing to @1@ element of type @GLshort@.
   -> m ()
 glVertexAttrib1svNV v1 v2 = liftIO $ dyn806 ptr_glVertexAttrib1svNV v1 v2
 
@@ -44711,7 +44711,7 @@
 glVertexAttribI1iv
   :: MonadIO m
   => GLuint -- ^ @index@.
-  -> Ptr GLint -- ^ @v@ pointing to @1@ elements of type @GLint@.
+  -> Ptr GLint -- ^ @v@ pointing to @1@ element of type @GLint@.
   -> m ()
 glVertexAttribI1iv v1 v2 = liftIO $ dyn686 ptr_glVertexAttribI1iv v1 v2
 
@@ -44724,7 +44724,7 @@
 glVertexAttribI1ivEXT
   :: MonadIO m
   => GLuint -- ^ @index@.
-  -> Ptr GLint -- ^ @v@ pointing to @1@ elements of type @GLint@.
+  -> Ptr GLint -- ^ @v@ pointing to @1@ element of type @GLint@.
   -> m ()
 glVertexAttribI1ivEXT v1 v2 = liftIO $ dyn686 ptr_glVertexAttribI1ivEXT v1 v2
 
@@ -44765,7 +44765,7 @@
 glVertexAttribI1uiv
   :: MonadIO m
   => GLuint -- ^ @index@.
-  -> Ptr GLuint -- ^ @v@ pointing to @1@ elements of type @GLuint@.
+  -> Ptr GLuint -- ^ @v@ pointing to @1@ element of type @GLuint@.
   -> m ()
 glVertexAttribI1uiv v1 v2 = liftIO $ dyn193 ptr_glVertexAttribI1uiv v1 v2
 
@@ -44778,7 +44778,7 @@
 glVertexAttribI1uivEXT
   :: MonadIO m
   => GLuint -- ^ @index@.
-  -> Ptr GLuint -- ^ @v@ pointing to @1@ elements of type @GLuint@.
+  -> Ptr GLuint -- ^ @v@ pointing to @1@ element of type @GLuint@.
   -> m ()
 glVertexAttribI1uivEXT v1 v2 = liftIO $ dyn193 ptr_glVertexAttribI1uivEXT v1 v2
 
@@ -45339,7 +45339,7 @@
 glVertexAttribL1dv
   :: MonadIO m
   => GLuint -- ^ @index@.
-  -> Ptr GLdouble -- ^ @v@ pointing to @1@ elements of type @GLdouble@.
+  -> Ptr GLdouble -- ^ @v@ pointing to @1@ element of type @GLdouble@.
   -> m ()
 glVertexAttribL1dv v1 v2 = liftIO $ dyn805 ptr_glVertexAttribL1dv v1 v2
 
@@ -45352,7 +45352,7 @@
 glVertexAttribL1dvEXT
   :: MonadIO m
   => GLuint -- ^ @index@.
-  -> Ptr GLdouble -- ^ @v@ pointing to @1@ elements of type @GLdouble@.
+  -> Ptr GLdouble -- ^ @v@ pointing to @1@ element of type @GLdouble@.
   -> m ()
 glVertexAttribL1dvEXT v1 v2 = liftIO $ dyn805 ptr_glVertexAttribL1dvEXT v1 v2
 
@@ -45378,7 +45378,7 @@
 glVertexAttribL1i64vNV
   :: MonadIO m
   => GLuint -- ^ @index@.
-  -> Ptr GLint64EXT -- ^ @v@ pointing to @1@ elements of type @GLint64EXT@.
+  -> Ptr GLint64EXT -- ^ @v@ pointing to @1@ element of type @GLint64EXT@.
   -> m ()
 glVertexAttribL1i64vNV v1 v2 = liftIO $ dyn841 ptr_glVertexAttribL1i64vNV v1 v2
 
@@ -45430,7 +45430,7 @@
 glVertexAttribL1ui64vNV
   :: MonadIO m
   => GLuint -- ^ @index@.
-  -> Ptr GLuint64EXT -- ^ @v@ pointing to @1@ elements of type @GLuint64EXT@.
+  -> Ptr GLuint64EXT -- ^ @v@ pointing to @1@ element of type @GLuint64EXT@.
   -> m ()
 glVertexAttribL1ui64vNV v1 v2 = liftIO $ dyn843 ptr_glVertexAttribL1ui64vNV v1 v2
 
@@ -45867,7 +45867,7 @@
   => GLuint -- ^ @index@.
   -> GLenum -- ^ @type@.
   -> GLboolean -- ^ @normalized@ of type @Boolean@.
-  -> Ptr GLuint -- ^ @value@ pointing to @1@ elements of type @GLuint@.
+  -> Ptr GLuint -- ^ @value@ pointing to @1@ element of type @GLuint@.
   -> m ()
 glVertexAttribP1uiv v1 v2 v3 v4 = liftIO $ dyn851 ptr_glVertexAttribP1uiv v1 v2 v3 v4
 
@@ -45898,7 +45898,7 @@
   => GLuint -- ^ @index@.
   -> GLenum -- ^ @type@.
   -> GLboolean -- ^ @normalized@ of type @Boolean@.
-  -> Ptr GLuint -- ^ @value@ pointing to @1@ elements of type @GLuint@.
+  -> Ptr GLuint -- ^ @value@ pointing to @1@ element of type @GLuint@.
   -> m ()
 glVertexAttribP2uiv v1 v2 v3 v4 = liftIO $ dyn851 ptr_glVertexAttribP2uiv v1 v2 v3 v4
 
@@ -45929,7 +45929,7 @@
   => GLuint -- ^ @index@.
   -> GLenum -- ^ @type@.
   -> GLboolean -- ^ @normalized@ of type @Boolean@.
-  -> Ptr GLuint -- ^ @value@ pointing to @1@ elements of type @GLuint@.
+  -> Ptr GLuint -- ^ @value@ pointing to @1@ element of type @GLuint@.
   -> m ()
 glVertexAttribP3uiv v1 v2 v3 v4 = liftIO $ dyn851 ptr_glVertexAttribP3uiv v1 v2 v3 v4
 
@@ -45960,7 +45960,7 @@
   => GLuint -- ^ @index@.
   -> GLenum -- ^ @type@.
   -> GLboolean -- ^ @normalized@ of type @Boolean@.
-  -> Ptr GLuint -- ^ @value@ pointing to @1@ elements of type @GLuint@.
+  -> Ptr GLuint -- ^ @value@ pointing to @1@ element of type @GLuint@.
   -> m ()
 glVertexAttribP4uiv v1 v2 v3 v4 = liftIO $ dyn851 ptr_glVertexAttribP4uiv v1 v2 v3 v4
 
@@ -46355,7 +46355,7 @@
 glVertexP2uiv
   :: MonadIO m
   => GLenum -- ^ @type@.
-  -> Ptr GLuint -- ^ @value@ pointing to @1@ elements of type @GLuint@.
+  -> Ptr GLuint -- ^ @value@ pointing to @1@ element of type @GLuint@.
   -> m ()
 glVertexP2uiv v1 v2 = liftIO $ dyn124 ptr_glVertexP2uiv v1 v2
 
@@ -46381,7 +46381,7 @@
 glVertexP3uiv
   :: MonadIO m
   => GLenum -- ^ @type@.
-  -> Ptr GLuint -- ^ @value@ pointing to @1@ elements of type @GLuint@.
+  -> Ptr GLuint -- ^ @value@ pointing to @1@ element of type @GLuint@.
   -> m ()
 glVertexP3uiv v1 v2 = liftIO $ dyn124 ptr_glVertexP3uiv v1 v2
 
@@ -46407,7 +46407,7 @@
 glVertexP4uiv
   :: MonadIO m
   => GLenum -- ^ @type@.
-  -> Ptr GLuint -- ^ @value@ pointing to @1@ elements of type @GLuint@.
+  -> Ptr GLuint -- ^ @value@ pointing to @1@ element of type @GLuint@.
   -> m ()
 glVertexP4uiv v1 v2 = liftIO $ dyn124 ptr_glVertexP4uiv v1 v2
 
@@ -46495,7 +46495,7 @@
 glVertexStream1dvATI
   :: MonadIO m
   => GLenum -- ^ @stream@ of type @VertexStreamATI@.
-  -> Ptr GLdouble -- ^ @coords@ pointing to @1@ elements of type @GLdouble@.
+  -> Ptr GLdouble -- ^ @coords@ pointing to @1@ element of type @GLdouble@.
   -> m ()
 glVertexStream1dvATI v1 v2 = liftIO $ dyn92 ptr_glVertexStream1dvATI v1 v2
 
@@ -46521,7 +46521,7 @@
 glVertexStream1fvATI
   :: MonadIO m
   => GLenum -- ^ @stream@ of type @VertexStreamATI@.
-  -> Ptr GLfloat -- ^ @coords@ pointing to @1@ elements of type @GLfloat@.
+  -> Ptr GLfloat -- ^ @coords@ pointing to @1@ element of type @GLfloat@.
   -> m ()
 glVertexStream1fvATI v1 v2 = liftIO $ dyn93 ptr_glVertexStream1fvATI v1 v2
 
@@ -46547,7 +46547,7 @@
 glVertexStream1ivATI
   :: MonadIO m
   => GLenum -- ^ @stream@ of type @VertexStreamATI@.
-  -> Ptr GLint -- ^ @coords@ pointing to @1@ elements of type @GLint@.
+  -> Ptr GLint -- ^ @coords@ pointing to @1@ element of type @GLint@.
   -> m ()
 glVertexStream1ivATI v1 v2 = liftIO $ dyn135 ptr_glVertexStream1ivATI v1 v2
 
@@ -46573,7 +46573,7 @@
 glVertexStream1svATI
   :: MonadIO m
   => GLenum -- ^ @stream@ of type @VertexStreamATI@.
-  -> Ptr GLshort -- ^ @coords@ pointing to @1@ elements of type @GLshort@.
+  -> Ptr GLshort -- ^ @coords@ pointing to @1@ element of type @GLshort@.
   -> m ()
 glVertexStream1svATI v1 v2 = liftIO $ dyn536 ptr_glVertexStream1svATI v1 v2
 
@@ -46948,7 +46948,7 @@
 
 glVertexWeightfvEXT
   :: MonadIO m
-  => Ptr GLfloat -- ^ @weight@ pointing to @1@ elements of type @GLfloat@.
+  => Ptr GLfloat -- ^ @weight@ pointing to @1@ element of type @GLfloat@.
   -> m ()
 glVertexWeightfvEXT v1 = liftIO $ dyn41 ptr_glVertexWeightfvEXT v1
 
@@ -46972,7 +46972,7 @@
 
 glVertexWeighthvNV
   :: MonadIO m
-  => Ptr GLhalfNV -- ^ @weight@ pointing to @1@ elements of type @Half16NV@.
+  => Ptr GLhalfNV -- ^ @weight@ pointing to @1@ element of type @Half16NV@.
   -> m ()
 glVertexWeighthvNV v1 = liftIO $ dyn98 ptr_glVertexWeighthvNV v1
 
diff --git a/src/Graphics/Rendering/OpenGL/Raw/GetProcAddress.hs b/src/Graphics/Rendering/OpenGL/Raw/GetProcAddress.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/GetProcAddress.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/GetProcAddress.hs
@@ -1,4 +1,3 @@
-{-# LANGUAGE ForeignFunctionInterface, CPP #-}
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.GetProcAddress
@@ -24,17 +23,12 @@
    getProcAddressChecked,
    getProcAddressWithSuffixesChecked,
    getExtensionChecked
-
 ) where
 
 import Control.Monad.IO.Class ( MonadIO(..) )
 import Foreign.C.String ( withCString, CString )
 import Foreign.Marshal.Error ( throwIf )
 import Foreign.Ptr ( FunPtr, nullFunPtr )
-
-#ifdef __HUGS__
-{-# CFILES cbits/HsOpenGLRaw.c #-}
-#endif
 
 --------------------------------------------------------------------------------
 
diff --git a/src/Graphics/Rendering/OpenGL/Raw/HP.hs b/src/Graphics/Rendering/OpenGL/Raw/HP.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/HP.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/HP.hs
@@ -23,4 +23,3 @@
 import Graphics.Rendering.OpenGL.Raw.HP.ImageTransform
 import Graphics.Rendering.OpenGL.Raw.HP.OcclusionTest
 import Graphics.Rendering.OpenGL.Raw.HP.TextureLighting
-
diff --git a/src/Graphics/Rendering/OpenGL/Raw/INGR/BlendFuncSeparate.hs b/src/Graphics/Rendering/OpenGL/Raw/INGR/BlendFuncSeparate.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/INGR/BlendFuncSeparate.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/INGR/BlendFuncSeparate.hs
@@ -8,7 +8,7 @@
 -- Stability   :  stable
 -- Portability :  portable
 --
--- The <https://www.opengl.org/registry/specs/INGR/blend_func_separate.txt INGR_blend_func_separate> extension.
+-- The <https://www.opengl.org/registry/specs/EXT/blend_func_separate.txt INGR_blend_func_separate> extension.
 --
 --------------------------------------------------------------------------------
 
diff --git a/src/Graphics/Rendering/OpenGL/Raw/KHR.hs b/src/Graphics/Rendering/OpenGL/Raw/KHR.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/KHR.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/KHR.hs
@@ -13,21 +13,23 @@
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.KHR (
-  module Graphics.Rendering.OpenGL.Raw.KHR.BlendEquationAdvancedCoherent,
   module Graphics.Rendering.OpenGL.Raw.KHR.BlendEquationAdvanced,
+  module Graphics.Rendering.OpenGL.Raw.KHR.BlendEquationAdvancedCoherent,
   module Graphics.Rendering.OpenGL.Raw.KHR.ContextFlushControl,
   module Graphics.Rendering.OpenGL.Raw.KHR.DebugCompatibility,
   module Graphics.Rendering.OpenGL.Raw.KHR.DebugCore,
+  module Graphics.Rendering.OpenGL.Raw.KHR.NoError,
   module Graphics.Rendering.OpenGL.Raw.KHR.Robustness,
   module Graphics.Rendering.OpenGL.Raw.KHR.TextureCompressionASTCHDR,
   module Graphics.Rendering.OpenGL.Raw.KHR.TextureCompressionASTCLDR
 ) where
 
-import Graphics.Rendering.OpenGL.Raw.KHR.BlendEquationAdvancedCoherent
 import Graphics.Rendering.OpenGL.Raw.KHR.BlendEquationAdvanced
+import Graphics.Rendering.OpenGL.Raw.KHR.BlendEquationAdvancedCoherent
 import Graphics.Rendering.OpenGL.Raw.KHR.ContextFlushControl
 import Graphics.Rendering.OpenGL.Raw.KHR.DebugCompatibility
 import Graphics.Rendering.OpenGL.Raw.KHR.DebugCore
+import Graphics.Rendering.OpenGL.Raw.KHR.NoError
 import Graphics.Rendering.OpenGL.Raw.KHR.Robustness
 import Graphics.Rendering.OpenGL.Raw.KHR.TextureCompressionASTCHDR
 import Graphics.Rendering.OpenGL.Raw.KHR.TextureCompressionASTCLDR
diff --git a/src/Graphics/Rendering/OpenGL/Raw/KHR/BlendEquationAdvancedCoherent.hs b/src/Graphics/Rendering/OpenGL/Raw/KHR/BlendEquationAdvancedCoherent.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/KHR/BlendEquationAdvancedCoherent.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/KHR/BlendEquationAdvancedCoherent.hs
@@ -8,7 +8,7 @@
 -- Stability   :  stable
 -- Portability :  portable
 --
--- The <https://www.opengl.org/registry/specs/KHR/blend_equation_advanced_coherent.txt KHR_blend_equation_advanced_coherent> extension.
+-- The <https://www.opengl.org/registry/specs/KHR/blend_equation_advanced.txt KHR_blend_equation_advanced_coherent> extension.
 --
 --------------------------------------------------------------------------------
 
diff --git a/src/Graphics/Rendering/OpenGL/Raw/KHR/DebugCompatibility.hs b/src/Graphics/Rendering/OpenGL/Raw/KHR/DebugCompatibility.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/KHR/DebugCompatibility.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/KHR/DebugCompatibility.hs
@@ -8,7 +8,7 @@
 -- Stability   :  stable
 -- Portability :  portable
 --
--- The <https://www.opengl.org/registry/specs/KHR/debug_compatibility.txt KHR_debug_compatibility> extension.
+-- The <https://www.opengl.org/registry/specs/KHR/debug.txt KHR_debug> extension.
 --
 --------------------------------------------------------------------------------
 
diff --git a/src/Graphics/Rendering/OpenGL/Raw/KHR/DebugCore.hs b/src/Graphics/Rendering/OpenGL/Raw/KHR/DebugCore.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/KHR/DebugCore.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/KHR/DebugCore.hs
@@ -8,7 +8,7 @@
 -- Stability   :  stable
 -- Portability :  portable
 --
--- The <https://www.opengl.org/registry/specs/KHR/debug_core.txt KHR_debug_core> extension.
+-- The <https://www.opengl.org/registry/specs/KHR/debug.txt KHR_debug> extension.
 --
 --------------------------------------------------------------------------------
 
diff --git a/src/Graphics/Rendering/OpenGL/Raw/KHR/NoError.hs b/src/Graphics/Rendering/OpenGL/Raw/KHR/NoError.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/KHR/NoError.hs
@@ -0,0 +1,20 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.KHR.NoError
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/KHR/no_error.txt KHR_no_error> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.KHR.NoError (
+  -- * Enums
+  gl_CONTEXT_FLAG_NO_ERROR_BIT_KHR
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/KHR/TextureCompressionASTCLDR.hs b/src/Graphics/Rendering/OpenGL/Raw/KHR/TextureCompressionASTCLDR.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/KHR/TextureCompressionASTCLDR.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/KHR/TextureCompressionASTCLDR.hs
@@ -8,7 +8,7 @@
 -- Stability   :  stable
 -- Portability :  portable
 --
--- The <https://www.opengl.org/registry/specs/KHR/texture_compression_astc_ldr.txt KHR_texture_compression_astc_ldr> extension.
+-- The <https://www.opengl.org/registry/specs/KHR/texture_compression_astc_hdr.txt KHR_texture_compression_astc_ldr> extension.
 --
 --------------------------------------------------------------------------------
 
diff --git a/src/Graphics/Rendering/OpenGL/Raw/NV.hs b/src/Graphics/Rendering/OpenGL/Raw/NV.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/NV.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/NV.hs
@@ -13,11 +13,11 @@
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.NV (
-  module Graphics.Rendering.OpenGL.Raw.NV.BindlessMultiDrawIndirectCount,
   module Graphics.Rendering.OpenGL.Raw.NV.BindlessMultiDrawIndirect,
+  module Graphics.Rendering.OpenGL.Raw.NV.BindlessMultiDrawIndirectCount,
   module Graphics.Rendering.OpenGL.Raw.NV.BindlessTexture,
-  module Graphics.Rendering.OpenGL.Raw.NV.BlendEquationAdvancedCoherent,
   module Graphics.Rendering.OpenGL.Raw.NV.BlendEquationAdvanced,
+  module Graphics.Rendering.OpenGL.Raw.NV.BlendEquationAdvancedCoherent,
   module Graphics.Rendering.OpenGL.Raw.NV.CommandList,
   module Graphics.Rendering.OpenGL.Raw.NV.ComputeProgram5,
   module Graphics.Rendering.OpenGL.Raw.NV.ConditionalRender,
@@ -35,14 +35,14 @@
   module Graphics.Rendering.OpenGL.Raw.NV.FloatBuffer,
   module Graphics.Rendering.OpenGL.Raw.NV.FogDistance,
   module Graphics.Rendering.OpenGL.Raw.NV.FragmentCoverageToColor,
-  module Graphics.Rendering.OpenGL.Raw.NV.FragmentProgram2,
   module Graphics.Rendering.OpenGL.Raw.NV.FragmentProgram,
+  module Graphics.Rendering.OpenGL.Raw.NV.FragmentProgram2,
   module Graphics.Rendering.OpenGL.Raw.NV.FramebufferMixedSamples,
   module Graphics.Rendering.OpenGL.Raw.NV.FramebufferMultisampleCoverage,
-  module Graphics.Rendering.OpenGL.Raw.NV.GeometryProgram4,
   module Graphics.Rendering.OpenGL.Raw.NV.GPUProgram4,
   module Graphics.Rendering.OpenGL.Raw.NV.GPUProgram5,
   module Graphics.Rendering.OpenGL.Raw.NV.GPUShader5,
+  module Graphics.Rendering.OpenGL.Raw.NV.GeometryProgram4,
   module Graphics.Rendering.OpenGL.Raw.NV.HalfFloat,
   module Graphics.Rendering.OpenGL.Raw.NV.InternalformatSampleQuery,
   module Graphics.Rendering.OpenGL.Raw.NV.LightMaxExponent,
@@ -58,8 +58,8 @@
   module Graphics.Rendering.OpenGL.Raw.NV.PointSprite,
   module Graphics.Rendering.OpenGL.Raw.NV.PresentVideo,
   module Graphics.Rendering.OpenGL.Raw.NV.PrimitiveRestart,
-  module Graphics.Rendering.OpenGL.Raw.NV.RegisterCombiners2,
   module Graphics.Rendering.OpenGL.Raw.NV.RegisterCombiners,
+  module Graphics.Rendering.OpenGL.Raw.NV.RegisterCombiners2,
   module Graphics.Rendering.OpenGL.Raw.NV.SampleLocations,
   module Graphics.Rendering.OpenGL.Raw.NV.ShaderBufferLoad,
   module Graphics.Rendering.OpenGL.Raw.NV.ShaderBufferStore,
@@ -72,29 +72,29 @@
   module Graphics.Rendering.OpenGL.Raw.NV.TextureExpandNormal,
   module Graphics.Rendering.OpenGL.Raw.NV.TextureMultisample,
   module Graphics.Rendering.OpenGL.Raw.NV.TextureRectangle,
+  module Graphics.Rendering.OpenGL.Raw.NV.TextureShader,
   module Graphics.Rendering.OpenGL.Raw.NV.TextureShader2,
   module Graphics.Rendering.OpenGL.Raw.NV.TextureShader3,
-  module Graphics.Rendering.OpenGL.Raw.NV.TextureShader,
-  module Graphics.Rendering.OpenGL.Raw.NV.TransformFeedback2,
   module Graphics.Rendering.OpenGL.Raw.NV.TransformFeedback,
+  module Graphics.Rendering.OpenGL.Raw.NV.TransformFeedback2,
   module Graphics.Rendering.OpenGL.Raw.NV.UniformBufferUnifiedMemory,
   module Graphics.Rendering.OpenGL.Raw.NV.VDPAUInterop,
-  module Graphics.Rendering.OpenGL.Raw.NV.VertexArrayRange2,
   module Graphics.Rendering.OpenGL.Raw.NV.VertexArrayRange,
+  module Graphics.Rendering.OpenGL.Raw.NV.VertexArrayRange2,
   module Graphics.Rendering.OpenGL.Raw.NV.VertexAttribInteger64Bit,
   module Graphics.Rendering.OpenGL.Raw.NV.VertexBufferUnifiedMemory,
+  module Graphics.Rendering.OpenGL.Raw.NV.VertexProgram,
   module Graphics.Rendering.OpenGL.Raw.NV.VertexProgram2Option,
   module Graphics.Rendering.OpenGL.Raw.NV.VertexProgram3,
   module Graphics.Rendering.OpenGL.Raw.NV.VertexProgram4,
-  module Graphics.Rendering.OpenGL.Raw.NV.VertexProgram,
   module Graphics.Rendering.OpenGL.Raw.NV.VideoCapture
 ) where
 
-import Graphics.Rendering.OpenGL.Raw.NV.BindlessMultiDrawIndirectCount
 import Graphics.Rendering.OpenGL.Raw.NV.BindlessMultiDrawIndirect
+import Graphics.Rendering.OpenGL.Raw.NV.BindlessMultiDrawIndirectCount
 import Graphics.Rendering.OpenGL.Raw.NV.BindlessTexture
-import Graphics.Rendering.OpenGL.Raw.NV.BlendEquationAdvancedCoherent
 import Graphics.Rendering.OpenGL.Raw.NV.BlendEquationAdvanced
+import Graphics.Rendering.OpenGL.Raw.NV.BlendEquationAdvancedCoherent
 import Graphics.Rendering.OpenGL.Raw.NV.CommandList
 import Graphics.Rendering.OpenGL.Raw.NV.ComputeProgram5
 import Graphics.Rendering.OpenGL.Raw.NV.ConditionalRender
@@ -112,14 +112,14 @@
 import Graphics.Rendering.OpenGL.Raw.NV.FloatBuffer
 import Graphics.Rendering.OpenGL.Raw.NV.FogDistance
 import Graphics.Rendering.OpenGL.Raw.NV.FragmentCoverageToColor
-import Graphics.Rendering.OpenGL.Raw.NV.FragmentProgram2
 import Graphics.Rendering.OpenGL.Raw.NV.FragmentProgram
+import Graphics.Rendering.OpenGL.Raw.NV.FragmentProgram2
 import Graphics.Rendering.OpenGL.Raw.NV.FramebufferMixedSamples
 import Graphics.Rendering.OpenGL.Raw.NV.FramebufferMultisampleCoverage
-import Graphics.Rendering.OpenGL.Raw.NV.GeometryProgram4
 import Graphics.Rendering.OpenGL.Raw.NV.GPUProgram4
 import Graphics.Rendering.OpenGL.Raw.NV.GPUProgram5
 import Graphics.Rendering.OpenGL.Raw.NV.GPUShader5
+import Graphics.Rendering.OpenGL.Raw.NV.GeometryProgram4
 import Graphics.Rendering.OpenGL.Raw.NV.HalfFloat
 import Graphics.Rendering.OpenGL.Raw.NV.InternalformatSampleQuery
 import Graphics.Rendering.OpenGL.Raw.NV.LightMaxExponent
@@ -135,8 +135,8 @@
 import Graphics.Rendering.OpenGL.Raw.NV.PointSprite
 import Graphics.Rendering.OpenGL.Raw.NV.PresentVideo
 import Graphics.Rendering.OpenGL.Raw.NV.PrimitiveRestart
-import Graphics.Rendering.OpenGL.Raw.NV.RegisterCombiners2
 import Graphics.Rendering.OpenGL.Raw.NV.RegisterCombiners
+import Graphics.Rendering.OpenGL.Raw.NV.RegisterCombiners2
 import Graphics.Rendering.OpenGL.Raw.NV.SampleLocations
 import Graphics.Rendering.OpenGL.Raw.NV.ShaderBufferLoad
 import Graphics.Rendering.OpenGL.Raw.NV.ShaderBufferStore
@@ -149,19 +149,19 @@
 import Graphics.Rendering.OpenGL.Raw.NV.TextureExpandNormal
 import Graphics.Rendering.OpenGL.Raw.NV.TextureMultisample
 import Graphics.Rendering.OpenGL.Raw.NV.TextureRectangle
+import Graphics.Rendering.OpenGL.Raw.NV.TextureShader
 import Graphics.Rendering.OpenGL.Raw.NV.TextureShader2
 import Graphics.Rendering.OpenGL.Raw.NV.TextureShader3
-import Graphics.Rendering.OpenGL.Raw.NV.TextureShader
-import Graphics.Rendering.OpenGL.Raw.NV.TransformFeedback2
 import Graphics.Rendering.OpenGL.Raw.NV.TransformFeedback
+import Graphics.Rendering.OpenGL.Raw.NV.TransformFeedback2
 import Graphics.Rendering.OpenGL.Raw.NV.UniformBufferUnifiedMemory
 import Graphics.Rendering.OpenGL.Raw.NV.VDPAUInterop
-import Graphics.Rendering.OpenGL.Raw.NV.VertexArrayRange2
 import Graphics.Rendering.OpenGL.Raw.NV.VertexArrayRange
+import Graphics.Rendering.OpenGL.Raw.NV.VertexArrayRange2
 import Graphics.Rendering.OpenGL.Raw.NV.VertexAttribInteger64Bit
 import Graphics.Rendering.OpenGL.Raw.NV.VertexBufferUnifiedMemory
+import Graphics.Rendering.OpenGL.Raw.NV.VertexProgram
 import Graphics.Rendering.OpenGL.Raw.NV.VertexProgram2Option
 import Graphics.Rendering.OpenGL.Raw.NV.VertexProgram3
 import Graphics.Rendering.OpenGL.Raw.NV.VertexProgram4
-import Graphics.Rendering.OpenGL.Raw.NV.VertexProgram
 import Graphics.Rendering.OpenGL.Raw.NV.VideoCapture
diff --git a/src/Graphics/Rendering/OpenGL/Raw/NV/BlendEquationAdvancedCoherent.hs b/src/Graphics/Rendering/OpenGL/Raw/NV/BlendEquationAdvancedCoherent.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/NV/BlendEquationAdvancedCoherent.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/NV/BlendEquationAdvancedCoherent.hs
@@ -8,7 +8,7 @@
 -- Stability   :  stable
 -- Portability :  portable
 --
--- The <https://www.opengl.org/registry/specs/NV/blend_equation_advanced_coherent.txt NV_blend_equation_advanced_coherent> extension.
+-- The <https://www.opengl.org/registry/specs/NV/blend_equation_advanced.txt NV_blend_equation_advanced_coherent> extension.
 --
 --------------------------------------------------------------------------------
 
diff --git a/src/Graphics/Rendering/OpenGL/Raw/NV/PathRenderingCompatibility.hs b/src/Graphics/Rendering/OpenGL/Raw/NV/PathRenderingCompatibility.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/NV/PathRenderingCompatibility.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/NV/PathRenderingCompatibility.hs
@@ -8,7 +8,7 @@
 -- Stability   :  stable
 -- Portability :  portable
 --
--- The <https://www.opengl.org/registry/specs/NV/path_rendering_compatibility.txt NV_path_rendering_compatibility> extension.
+-- The <https://www.opengl.org/registry/specs/NV/path_rendering.txt NV_path_rendering> extension.
 --
 --------------------------------------------------------------------------------
 
diff --git a/src/Graphics/Rendering/OpenGL/Raw/NV/PathRenderingCore.hs b/src/Graphics/Rendering/OpenGL/Raw/NV/PathRenderingCore.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/NV/PathRenderingCore.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/NV/PathRenderingCore.hs
@@ -8,7 +8,7 @@
 -- Stability   :  stable
 -- Portability :  portable
 --
--- The <https://www.opengl.org/registry/specs/NV/path_rendering_core.txt NV_path_rendering_core> extension.
+-- The <https://www.opengl.org/registry/specs/NV/path_rendering.txt NV_path_rendering> extension.
 --
 --------------------------------------------------------------------------------
 
diff --git a/src/Graphics/Rendering/OpenGL/Raw/NVX/ConditionalRender.hs b/src/Graphics/Rendering/OpenGL/Raw/NVX/ConditionalRender.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/NVX/ConditionalRender.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/NVX/ConditionalRender.hs
@@ -8,7 +8,7 @@
 -- Stability   :  stable
 -- Portability :  portable
 --
--- The <https://www.opengl.org/registry/specs/NVX/conditional_render.txt NVX_conditional_render> extension.
+-- The <https://www.opengl.org/registry/specs/NVX/nvx_conditional_render.txt NVX_conditional_render> extension.
 --
 --------------------------------------------------------------------------------
 
diff --git a/src/Graphics/Rendering/OpenGL/Raw/OES/ByteCoordinates.hs b/src/Graphics/Rendering/OpenGL/Raw/OES/ByteCoordinates.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/OES/ByteCoordinates.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/OES/ByteCoordinates.hs
@@ -8,7 +8,7 @@
 -- Stability   :  stable
 -- Portability :  portable
 --
--- The <https://www.opengl.org/registry/specs/OES/byte_coordinates.txt OES_byte_coordinates> extension.
+-- The <https://www.opengl.org/registry/specs/OES/OES_byte_coordinates.txt OES_byte_coordinates> extension.
 --
 --------------------------------------------------------------------------------
 
diff --git a/src/Graphics/Rendering/OpenGL/Raw/OES/CompressedPalettedTexture.hs b/src/Graphics/Rendering/OpenGL/Raw/OES/CompressedPalettedTexture.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/OES/CompressedPalettedTexture.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/OES/CompressedPalettedTexture.hs
@@ -8,7 +8,7 @@
 -- Stability   :  stable
 -- Portability :  portable
 --
--- The <https://www.opengl.org/registry/specs/OES/compressed_paletted_texture.txt OES_compressed_paletted_texture> extension.
+-- The <https://www.opengl.org/registry/specs/OES/OES_compressed_paletted_texture.txt OES_compressed_paletted_texture> extension.
 --
 --------------------------------------------------------------------------------
 
diff --git a/src/Graphics/Rendering/OpenGL/Raw/OES/FixedPoint.hs b/src/Graphics/Rendering/OpenGL/Raw/OES/FixedPoint.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/OES/FixedPoint.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/OES/FixedPoint.hs
@@ -8,7 +8,7 @@
 -- Stability   :  stable
 -- Portability :  portable
 --
--- The <https://www.opengl.org/registry/specs/OES/fixed_point.txt OES_fixed_point> extension.
+-- The <https://www.opengl.org/registry/specs/OES/OES_fixed_point.txt OES_fixed_point> extension.
 --
 --------------------------------------------------------------------------------
 
diff --git a/src/Graphics/Rendering/OpenGL/Raw/OES/QueryMatrix.hs b/src/Graphics/Rendering/OpenGL/Raw/OES/QueryMatrix.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/OES/QueryMatrix.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/OES/QueryMatrix.hs
@@ -8,7 +8,7 @@
 -- Stability   :  stable
 -- Portability :  portable
 --
--- The <https://www.opengl.org/registry/specs/OES/query_matrix.txt OES_query_matrix> extension.
+-- The <https://www.opengl.org/registry/specs/OES/OES_query_matrix.txt OES_query_matrix> extension.
 --
 --------------------------------------------------------------------------------
 
diff --git a/src/Graphics/Rendering/OpenGL/Raw/OES/ReadFormat.hs b/src/Graphics/Rendering/OpenGL/Raw/OES/ReadFormat.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/OES/ReadFormat.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/OES/ReadFormat.hs
@@ -8,7 +8,7 @@
 -- Stability   :  stable
 -- Portability :  portable
 --
--- The <https://www.opengl.org/registry/specs/OES/read_format.txt OES_read_format> extension.
+-- The <https://www.opengl.org/registry/specs/OES/OES_read_format.txt OES_read_format> extension.
 --
 --------------------------------------------------------------------------------
 
diff --git a/src/Graphics/Rendering/OpenGL/Raw/OES/SinglePrecision.hs b/src/Graphics/Rendering/OpenGL/Raw/OES/SinglePrecision.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/OES/SinglePrecision.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/OES/SinglePrecision.hs
@@ -8,7 +8,7 @@
 -- Stability   :  stable
 -- Portability :  portable
 --
--- The <https://www.opengl.org/registry/specs/OES/single_precision.txt OES_single_precision> extension.
+-- The <https://www.opengl.org/registry/specs/OES/OES_single_precision.txt OES_single_precision> extension.
 --
 --------------------------------------------------------------------------------
 
diff --git a/src/Graphics/Rendering/OpenGL/Raw/SGIS/FogFunction.hs b/src/Graphics/Rendering/OpenGL/Raw/SGIS/FogFunction.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/SGIS/FogFunction.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/SGIS/FogFunction.hs
@@ -8,7 +8,7 @@
 -- Stability   :  stable
 -- Portability :  portable
 --
--- The <https://www.opengl.org/registry/specs/SGIS/fog_function.txt SGIS_fog_function> extension.
+-- The <https://www.opengl.org/registry/specs/SGIS/fog_func.txt SGIS_fog_function> extension.
 --
 --------------------------------------------------------------------------------
 
diff --git a/src/Graphics/Rendering/OpenGL/Raw/SGIS/PointParameters.hs b/src/Graphics/Rendering/OpenGL/Raw/SGIS/PointParameters.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/SGIS/PointParameters.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/SGIS/PointParameters.hs
@@ -8,7 +8,7 @@
 -- Stability   :  stable
 -- Portability :  portable
 --
--- The <https://www.opengl.org/registry/specs/SGIS/point_parameters.txt SGIS_point_parameters> extension.
+-- The <https://www.opengl.org/registry/specs/EXT/point_parameters.txt SGIS_point_parameters> extension.
 --
 --------------------------------------------------------------------------------
 
diff --git a/src/Graphics/Rendering/OpenGL/Raw/SGIX.hs b/src/Graphics/Rendering/OpenGL/Raw/SGIX.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/SGIX.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/SGIX.hs
@@ -13,8 +13,8 @@
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.SGIX (
-  module Graphics.Rendering.OpenGL.Raw.SGIX.AsyncHistogram,
   module Graphics.Rendering.OpenGL.Raw.SGIX.Async,
+  module Graphics.Rendering.OpenGL.Raw.SGIX.AsyncHistogram,
   module Graphics.Rendering.OpenGL.Raw.SGIX.AsyncPixel,
   module Graphics.Rendering.OpenGL.Raw.SGIX.BlendAlphaMinmax,
   module Graphics.Rendering.OpenGL.Raw.SGIX.CalligraphicFragment,
@@ -36,8 +36,8 @@
   module Graphics.Rendering.OpenGL.Raw.SGIX.ReferencePlane,
   module Graphics.Rendering.OpenGL.Raw.SGIX.Resample,
   module Graphics.Rendering.OpenGL.Raw.SGIX.ScalebiasHint,
-  module Graphics.Rendering.OpenGL.Raw.SGIX.ShadowAmbient,
   module Graphics.Rendering.OpenGL.Raw.SGIX.Shadow,
+  module Graphics.Rendering.OpenGL.Raw.SGIX.ShadowAmbient,
   module Graphics.Rendering.OpenGL.Raw.SGIX.Sprite,
   module Graphics.Rendering.OpenGL.Raw.SGIX.Subsample,
   module Graphics.Rendering.OpenGL.Raw.SGIX.TagSampleBuffer,
@@ -47,12 +47,12 @@
   module Graphics.Rendering.OpenGL.Raw.SGIX.TextureMultiBuffer,
   module Graphics.Rendering.OpenGL.Raw.SGIX.TextureScaleBias,
   module Graphics.Rendering.OpenGL.Raw.SGIX.VertexPreclip,
-  module Graphics.Rendering.OpenGL.Raw.SGIX.YCrCbA,
-  module Graphics.Rendering.OpenGL.Raw.SGIX.YCrCb
+  module Graphics.Rendering.OpenGL.Raw.SGIX.YCrCb,
+  module Graphics.Rendering.OpenGL.Raw.SGIX.YCrCbA
 ) where
 
-import Graphics.Rendering.OpenGL.Raw.SGIX.AsyncHistogram
 import Graphics.Rendering.OpenGL.Raw.SGIX.Async
+import Graphics.Rendering.OpenGL.Raw.SGIX.AsyncHistogram
 import Graphics.Rendering.OpenGL.Raw.SGIX.AsyncPixel
 import Graphics.Rendering.OpenGL.Raw.SGIX.BlendAlphaMinmax
 import Graphics.Rendering.OpenGL.Raw.SGIX.CalligraphicFragment
@@ -74,8 +74,8 @@
 import Graphics.Rendering.OpenGL.Raw.SGIX.ReferencePlane
 import Graphics.Rendering.OpenGL.Raw.SGIX.Resample
 import Graphics.Rendering.OpenGL.Raw.SGIX.ScalebiasHint
-import Graphics.Rendering.OpenGL.Raw.SGIX.ShadowAmbient
 import Graphics.Rendering.OpenGL.Raw.SGIX.Shadow
+import Graphics.Rendering.OpenGL.Raw.SGIX.ShadowAmbient
 import Graphics.Rendering.OpenGL.Raw.SGIX.Sprite
 import Graphics.Rendering.OpenGL.Raw.SGIX.Subsample
 import Graphics.Rendering.OpenGL.Raw.SGIX.TagSampleBuffer
@@ -85,5 +85,5 @@
 import Graphics.Rendering.OpenGL.Raw.SGIX.TextureMultiBuffer
 import Graphics.Rendering.OpenGL.Raw.SGIX.TextureScaleBias
 import Graphics.Rendering.OpenGL.Raw.SGIX.VertexPreclip
-import Graphics.Rendering.OpenGL.Raw.SGIX.YCrCbA
 import Graphics.Rendering.OpenGL.Raw.SGIX.YCrCb
+import Graphics.Rendering.OpenGL.Raw.SGIX.YCrCbA
diff --git a/src/Graphics/Rendering/OpenGL/Raw/SGIX/FragmentLighting.hs b/src/Graphics/Rendering/OpenGL/Raw/SGIX/FragmentLighting.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/SGIX/FragmentLighting.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/SGIX/FragmentLighting.hs
@@ -8,7 +8,7 @@
 -- Stability   :  stable
 -- Portability :  portable
 --
--- The <https://www.opengl.org/registry/specs/SGIX/fragment_lighting.txt SGIX_fragment_lighting> extension.
+-- The <https://www.opengl.org/registry/specs/EXT/fragment_lighting.txt SGIX_fragment_lighting> extension.
 --
 --------------------------------------------------------------------------------
 
diff --git a/src/Graphics/Rendering/OpenGL/Raw/SGIX/PixelTexture.hs b/src/Graphics/Rendering/OpenGL/Raw/SGIX/PixelTexture.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/SGIX/PixelTexture.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/SGIX/PixelTexture.hs
@@ -8,7 +8,7 @@
 -- Stability   :  stable
 -- Portability :  portable
 --
--- The <https://www.opengl.org/registry/specs/SGIX/pixel_texture.txt SGIX_pixel_texture> extension.
+-- The <https://www.opengl.org/registry/specs/SGIX/sgix_pixel_texture.txt SGIX_pixel_texture> extension.
 --
 --------------------------------------------------------------------------------
 
diff --git a/src/Graphics/Rendering/OpenGL/Raw/SGIX/TextureAddEnv.hs b/src/Graphics/Rendering/OpenGL/Raw/SGIX/TextureAddEnv.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/SGIX/TextureAddEnv.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/SGIX/TextureAddEnv.hs
@@ -8,7 +8,7 @@
 -- Stability   :  stable
 -- Portability :  portable
 --
--- The <https://www.opengl.org/registry/specs/SGIX/texture_add_env.txt SGIX_texture_add_env> extension.
+-- The <https://www.opengl.org/registry/specs/SGIX/texture_env_add.txt SGIX_texture_add_env> extension.
 --
 --------------------------------------------------------------------------------
 
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ThreeDFX/Multisample.hs b/src/Graphics/Rendering/OpenGL/Raw/ThreeDFX/Multisample.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/ThreeDFX/Multisample.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/ThreeDFX/Multisample.hs
@@ -8,7 +8,7 @@
 -- Stability   :  stable
 -- Portability :  portable
 --
--- The <https://www.opengl.org/registry/specs/3DFX/multisample.txt 3DFX_multisample> extension.
+-- The <https://www.opengl.org/registry/specs/3DFX/3dfx_multisample.txt 3DFX_multisample> extension.
 --
 --------------------------------------------------------------------------------
 
diff --git a/src/Graphics/Rendering/OpenGL/Raw/Tokens.hs b/src/Graphics/Rendering/OpenGL/Raw/Tokens.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/Tokens.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/Tokens.hs
@@ -1352,6 +1352,18 @@
 gl_COLOR_ATTACHMENT15_NV :: GLenum
 gl_COLOR_ATTACHMENT15_NV = 0x8CEF
 
+gl_COLOR_ATTACHMENT16 :: GLenum
+gl_COLOR_ATTACHMENT16 = 0x8CF0
+
+gl_COLOR_ATTACHMENT17 :: GLenum
+gl_COLOR_ATTACHMENT17 = 0x8CF1
+
+gl_COLOR_ATTACHMENT18 :: GLenum
+gl_COLOR_ATTACHMENT18 = 0x8CF2
+
+gl_COLOR_ATTACHMENT19 :: GLenum
+gl_COLOR_ATTACHMENT19 = 0x8CF3
+
 gl_COLOR_ATTACHMENT1_EXT :: GLenum
 gl_COLOR_ATTACHMENT1_EXT = 0x8CE1
 
@@ -1361,6 +1373,36 @@
 gl_COLOR_ATTACHMENT2 :: GLenum
 gl_COLOR_ATTACHMENT2 = 0x8CE2
 
+gl_COLOR_ATTACHMENT20 :: GLenum
+gl_COLOR_ATTACHMENT20 = 0x8CF4
+
+gl_COLOR_ATTACHMENT21 :: GLenum
+gl_COLOR_ATTACHMENT21 = 0x8CF5
+
+gl_COLOR_ATTACHMENT22 :: GLenum
+gl_COLOR_ATTACHMENT22 = 0x8CF6
+
+gl_COLOR_ATTACHMENT23 :: GLenum
+gl_COLOR_ATTACHMENT23 = 0x8CF7
+
+gl_COLOR_ATTACHMENT24 :: GLenum
+gl_COLOR_ATTACHMENT24 = 0x8CF8
+
+gl_COLOR_ATTACHMENT25 :: GLenum
+gl_COLOR_ATTACHMENT25 = 0x8CF9
+
+gl_COLOR_ATTACHMENT26 :: GLenum
+gl_COLOR_ATTACHMENT26 = 0x8CFA
+
+gl_COLOR_ATTACHMENT27 :: GLenum
+gl_COLOR_ATTACHMENT27 = 0x8CFB
+
+gl_COLOR_ATTACHMENT28 :: GLenum
+gl_COLOR_ATTACHMENT28 = 0x8CFC
+
+gl_COLOR_ATTACHMENT29 :: GLenum
+gl_COLOR_ATTACHMENT29 = 0x8CFD
+
 gl_COLOR_ATTACHMENT2_EXT :: GLenum
 gl_COLOR_ATTACHMENT2_EXT = 0x8CE2
 
@@ -1370,6 +1412,12 @@
 gl_COLOR_ATTACHMENT3 :: GLenum
 gl_COLOR_ATTACHMENT3 = 0x8CE3
 
+gl_COLOR_ATTACHMENT30 :: GLenum
+gl_COLOR_ATTACHMENT30 = 0x8CFE
+
+gl_COLOR_ATTACHMENT31 :: GLenum
+gl_COLOR_ATTACHMENT31 = 0x8CFF
+
 gl_COLOR_ATTACHMENT3_EXT :: GLenum
 gl_COLOR_ATTACHMENT3_EXT = 0x8CE3
 
@@ -2266,6 +2314,9 @@
 
 gl_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT :: GLbitfield
 gl_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT = 0x00000001
+
+gl_CONTEXT_FLAG_NO_ERROR_BIT_KHR :: GLbitfield
+gl_CONTEXT_FLAG_NO_ERROR_BIT_KHR = 0x00000008
 
 gl_CONTEXT_FLAG_ROBUST_ACCESS_BIT :: GLbitfield
 gl_CONTEXT_FLAG_ROBUST_ACCESS_BIT = 0x00000004
