diff --git a/CHANGELOG.markdown b/CHANGELOG.markdown
--- a/CHANGELOG.markdown
+++ b/CHANGELOG.markdown
@@ -1,3 +1,12 @@
+0.3
+---
+* Switched to non-C style types for the most part. `Word32`, etc. have better understood support within the Haskell ecosystem. `CPtrdiff` remains as it varies across viable target platforms.
+* Added a dependency on `Numeric.Fixed` from the `fixed` package for `GLfixed`.
+
+0.2
+---
+* Support `Half` from the `half` package for `GLhalfNV`, so you can compute with the results.
+
 0.1
 ---
 * Initial release
diff --git a/Generator.hs b/Generator.hs
--- a/Generator.hs
+++ b/Generator.hs
@@ -1,3 +1,4 @@
+{-# OPTIONS_GHC -Wall #-}
 -----------------------------------------------------------------------------
 -- |
 -- Copyright   :  (C) 2014 Edward Kmett and Gabríel Arthúr Pétursson
@@ -20,11 +21,8 @@
 import Data.Map (Map)
 import qualified Data.Set as Set
 import Data.Set (Set)
-import Data.Tuple
-import System.FilePath 
 import Text.Printf
 import Module
-import Parser
 import Registry
 import Utils
 
@@ -44,7 +42,7 @@
   deriving (Eq, Ord, Show)
 
 saneEnum :: Name -> Name
-saneEnum = ("GL_"++) . joinOn "_" . tail . splitOn "_"
+saneEnum = ("GL_"++) . intercalate "_" . tail . splitOn "_"
 
 saneModule :: Name -> Name
 saneModule "422Pixels" = "FourTwoTwoPixels"
@@ -55,19 +53,17 @@
 sanePrefix x = x
 
 wrap :: Maybe String -> String -> String
-wrap (Just w) s 
+wrap (Just w) s
   | any isSpace s = printf "%s (%s)" w s
   | otherwise = printf "%s %s" w s
 wrap Nothing s = s
 
 commandSignature :: Maybe Name -> Command -> Signature
 commandSignature monad command =
-  joinOn " -> " $
-    (parameterSignature $ commandParameters command) ++
-    [returnSignature $ commandType command]
+  intercalate " -> " $ parameterSignature (commandParameters command) ++ [returnSignature $ commandType command]
   where
     parameterSignature :: [(Type, String)] -> [String]
-    parameterSignature params = map (typeSignature . fst) params
+    parameterSignature = map (typeSignature . fst)
 
     returnSignature :: Type -> String
     returnSignature t = wrap monad . wrap (ptr t) $
@@ -90,11 +86,9 @@
 
 commonName :: Signature -> Name
 commonName
-  = joinOn ""
+  = concat
   . splitOn "GL"
-  . joinOn ""
-  . map (filter isAlphaNum)
-  . map (replace "()" "V")
+  . concatMap (filter isAlphaNum . replace "()" "V")
   . splitOn " -> "
   . ioish
 
@@ -107,19 +101,16 @@
 extensionModuleName :: ExtensionName -> ModuleName
 extensionModuleName name =
   printf "Graphics.GL.Raw.Extension.%s.%s"
-    (sanePrefix prefix) (saneModule $ camelCase (joinOn "_" rest))
+    (sanePrefix prefix) (saneModule $ camelCase (intercalate "_" rest))
   where
-    (gl:prefix:rest) = splitOn "_" name
+    (_:prefix:rest) = splitOn "_" name
 
     camelCase :: String -> String
-    camelCase str = concat . map (\(x:xs) -> toUpper x : xs) $
-      splitOn "_" str
+    camelCase str = concatMap (\(x:xs) -> toUpper x : xs) $ splitOn "_" str
 
 profileModuleName :: String -> String -> (ModuleName, Maybe ModuleName)
 profileModuleName feature profile =
-  ( printf "Graphics.GL.Raw.Profile.%s" $ fst submodule
-  , snd submodule >>= return . printf "Graphics.GL.Raw.Profile.%s"
-  )
+  (printf "Graphics.GL.Raw.Profile.%s" *** liftM (printf "Graphics.GL.Raw.Profile.%s")) submodule
   where
     submodule = case (feature, profile) of
       ("GL_VERSION_1_0", _) -> ("Standard10", Nothing)
@@ -299,7 +290,7 @@
       let name = fst . profileModuleName feature $ requireProfile req
       requires name req
 
-      when (isPrefixOf "Graphics.GL.Raw.Profile.Standard" name) $
+      when ("Graphics.GL.Raw.Profile.Standard" `isPrefixOf` name) $
         requires "Graphics.GL.Raw.Profile.Core32" req
 
     forM_ (featureRemoves fe) $ \rm -> do
@@ -378,22 +369,20 @@
       ]
 
 data FunMap = FunMap
-  { funSignatures   :: Map Name Signature           -- signatures by method name
+  { funSignatures :: Map Name Signature           -- signatures by method name
   , funExtensions :: Map ModuleName ExtensionName -- module name to extension name
   } deriving (Eq, Show)
 
+ioish :: Signature -> Signature
 ioish = replace "m (" "IO (" . replace "m GL" "IO GL"
 
 funMap :: Registry -> [(Bool, Entry, String)] -> FunMap
-funMap registry entries = FunMap
-  (Map.fromList [ (n, s) | (_, F n, s) <- entries ])
+funMap registry es = FunMap
+  (Map.fromList [ (n, s) | (_, F n, s) <- es ])
   (Map.fromList $ map ((extensionModuleName&&&id).extensionName) $ registryExtensions registry)
 
-funMapSignature :: String -> FunMap -> String
-funMapSignature i (FunMap m _) = Map.findWithDefault undefined i m
-
-funBody :: FunMap -> Name -> Signature -> [Body]
-funBody fm n v =
+funBody :: Name -> Signature -> [Body]
+funBody n v =
   [ Function n ("MonadIO m => " ++ v) $ strip $ printf "= %s %s" (invokerName v) np
   , Function np ("FunPtr (" ++ v' ++ ")") $ strip $ printf "= unsafePerformIO (getProcAddress %s)" (show n)
   , Code $ printf "{-# NOINLINE %s #-}" np
@@ -404,15 +393,14 @@
 mkFFI :: FunMap -> Module
 mkFFI fm = Module "Graphics.GL.Raw.Internal.FFI" export body where
   export = [ Section "Invokers" (nub $ invokerName <$> Foldable.toList (funSignatures fm)) ]
-  body = 
-    [ Import
-      [ "Control.Monad.IO.Class"
-      , "Foreign.C.Types"
-      , "Foreign.Ptr"
-      , "Graphics.GL.Raw.Types"
-      , "Numeric.Half"
-      ]
-    ] ++ nub (Foldable.concatMap invokers (funSignatures fm))
+  body = Import
+    [ "Control.Monad.IO.Class"
+    , "Foreign.C.Types"
+    , "Foreign.Ptr"
+    , "Graphics.GL.Raw.Types"
+    , "Numeric.Fixed"
+    , "Numeric.Half"
+    ] : nub (Foldable.concatMap invokers $ funSignatures fm)
 
 invokers :: Signature -> [Body]
 invokers v =
@@ -422,13 +410,13 @@
   ] where
   parts = splitOn " -> " v
   numArgs = subtract 2 $ length parts
-  params = joinOn " " $ map (\x -> "v" ++ show x) [0..numArgs]
+  params = unwords $ map (\x -> "v" ++ show x) [0..numArgs]
   v' = ioish v
   nd = dynamicName v
   ni = invokerName v
-  
-mkShared :: FunMap -> [(Bool, Entry, String)] -> Module
-mkShared fm entr = Module "Graphics.GL.Raw.Internal.Shared" [] body
+
+mkShared :: [(Bool, Entry, String)] -> Module
+mkShared entr = Module "Graphics.GL.Raw.Internal.Shared" [] body
   where
     imp =
       [ Import
@@ -441,10 +429,10 @@
         ]
       ]
 
-    body = imp ++ (concat . map bodyF $ nub entr)
+    body = imp ++ concatMap bodyF (nub entr)
     bodyF (False, _, _) = []
-    bodyF (_, E n, v) = [Pattern n "GLenum" ("= " ++ v)]
-    bodyF (_, F n, v) = funBody fm n v
+    bodyF (_, E n, v) = [Pattern n Nothing ("= " ++ v)]
+    bodyF (_, F n, v) = funBody n v
 
 mkModule :: FunMap -> String -> [(Bool, Entry, String)] -> Module
 mkModule fm m entr = Module m export body
@@ -453,32 +441,31 @@
     entryName (F n) = n
 
     (ie, ib) = implicitPrelude m
-    hasUnshared = any (\(s, _, _) -> not s) entr
     hasUnsharedFunctions = any (\(s, e, _) -> not s && case e of F _ -> True; _ -> False) entr
     hasExt = Map.member m (funExtensions fm)
 
     export = case Map.lookup m (funExtensions fm) of
       Just en ->
-        [ Section "Extension Support" $
-          [ "gl_" ++ (joinOn "_" . tail $ splitOn "_" en)
+        [ Section "Extension Support"
+          [ "gl_" ++ (intercalate "_" . tail $ splitOn "_" en)
           ]
-        , Section en $ ie ++ map (\(s, e, _) -> entryName e) entr
+        , Section en $ ie ++ map (\(_, e, _) -> entryName e) entr
         ]
       Nothing ->
-        [ Section m $ ie ++ map (\(s, e, _) -> entryName e) entr
+        [ Section m $ ie ++ map (\(_, e, _) -> entryName e) entr
         ]
 
     needsTypes (True, _, _) = False
-    needsTypes (_ , E _, _) = True
-    needsTypes (_ , F _, t) = isInfixOf "GL" t
+    needsTypes (_ , E _, _) = False
+    needsTypes (_ , F _, t) = "GL" `isInfixOf` t
 
     body =
-      [ Import $ sort $ concat 
+      [ Import $ sort $ concat
         [ [ "Graphics.GL.Raw.Internal.Shared" | any (\(s, _, _) -> s) entr ]
         , [ "Graphics.GL.Raw.Types"           | any needsTypes entr ]
         , [ "Data.Set"                        | hasExt ]
         , [ "Graphics.GL.Raw.Internal.Proc"   | hasExt || hasUnsharedFunctions ]
-        , guard hasUnsharedFunctions >> 
+        , guard hasUnsharedFunctions >>
           [ "Control.Monad.IO.Class"
           , "Foreign.Ptr"
           , "Graphics.GL.Raw.Internal.FFI"
@@ -493,15 +480,15 @@
     extCheck = case Map.lookup m (funExtensions fm) of
       Just en ->
         [ Function
-          ("gl_" ++ (joinOn "_" . tail $ splitOn "_" en))
+          ("gl_" ++ (intercalate "_" . tail $ splitOn "_" en))
           "Bool"
           ("= member " ++ show en ++ " extensions")
         ]
       Nothing -> []
 
     bodyF (True, _, _) = []
-    bodyF (_, E n, v) = [Pattern n "GLenum" ("= " ++ v)]
-    bodyF (_, F n, v) = funBody fm n v
+    bodyF (_, E n, v) = [Pattern n Nothing ("= " ++ v)]
+    bodyF (_, F n, v) = funBody n v
 
 mkExtensionGather :: FunMap -> [Module]
 mkExtensionGather fm = flip map extensionGroups $
@@ -535,7 +522,7 @@
   let fm' = Foldable.concat m
   let fm = funMap registry fm'
   saveModule fp $ mkFFI fm
-  saveModule fp $ mkShared fm fm'
+  saveModule fp $ mkShared fm'
   forM_ (Map.toList m) $ saveModule fp . uncurry (mkModule fm)
   let exts = mkExtensionGather fm
   forM_ exts $ saveModule fp
diff --git a/Module.hs b/Module.hs
--- a/Module.hs
+++ b/Module.hs
@@ -1,3 +1,4 @@
+{-# OPTIONS_GHC -Wall #-}
 -----------------------------------------------------------------------------
 -- |
 -- Copyright   :  (C) 2014 Edward Kmett and Gabríel Arthúr Pétursson
@@ -15,11 +16,11 @@
   , saveModule
   ) where
 
-import Utils
+import Data.List
 import System.Directory
 import System.FilePath
-import System.IO
 import Text.Printf
+import Utils
 
 data Module = Module
   { moduleName :: String
@@ -37,10 +38,10 @@
     , sectionExport :: [String]
     } deriving (Eq, Show)
 
-data Body 
+data Body
   = Import [String]
   | Function String String String
-  | Pattern String String String
+  | Pattern String (Maybe String) String
   | Code String
   deriving (Eq, Show)
 
@@ -50,15 +51,15 @@
     ("-- This file was automatically generated.\n" ++
     "{-# LANGUAGE ScopedTypeVariables, PatternSynonyms #-}\n" ++
     "module %s%s where\n\n%s")
-     (moduleName m) (renderExports $ moduleExport m) (joinOn "\n\n" . map renderBody $ moduleBody m)
+     (moduleName m) (renderExports $ moduleExport m) (intercalate "\n\n" . map renderBody $ moduleBody m)
 
 
 renderExports :: [Export] -> String
 renderExports [] = ""
 renderExports exports =
     printf " (\n%s)"
-  . joinOn "\n" . map (uncurry renderExport)
-  . zip (True : repeat False)
+  . intercalate "\n"
+  . zipWith renderExport (True : repeat False)
   $ filter nonEmpty exports
   where
     renderExport :: Bool -> Export -> String
@@ -66,12 +67,12 @@
       printf "  -- * %s\n  %s %s"
         heading
         (if first then " " else ",")
-        ((++"\n") . joinOn "\n  , " $ export)
+        ((++"\n") . intercalate "\n  , " $ export)
     renderExport first (Subsection heading export) =
       printf "  -- ** %s\n  %s %s"
         heading
         (if first then " " else ",")
-        ((++"\n") . joinOn "\n  , " $ export)
+        ((++"\n") . intercalate "\n  , " $ export)
     nonEmpty :: Export -> Bool
     nonEmpty (Section _ []) = False
     nonEmpty (Subsection _ []) = False
@@ -79,9 +80,10 @@
 
 renderBody :: Body -> String
 renderBody body = case body of
-  Import m -> joinOn "\n" $ map (printf "import %s") m
-  Function name signature body -> printf "%s :: %s\n%s %s" name signature name body
-  Pattern name signature body -> printf "pattern %s %s :: %s" name body signature
+  Import m -> intercalate "\n" $ map (printf "import %s") m
+  Function name signature b -> printf "%s :: %s\n%s %s" name signature name b
+  Pattern name (Just signature) b -> printf "pattern %s %s :: %s" name b signature
+  Pattern name Nothing b -> printf "pattern %s %s" name b
   Code code -> code
 
 saveModule :: FilePath -> Module -> IO ()
@@ -90,4 +92,4 @@
   writeFile filePath $ renderModule m
   where
     filePath = fp </> replace "." [pathSeparator] (moduleName m) <.> "hs"
-    folderPath = (joinOn [pathSeparator] . init $ splitOn [pathSeparator] filePath)
+    folderPath = intercalate [pathSeparator] . init $ splitOn [pathSeparator] filePath
diff --git a/Parser.hs b/Parser.hs
--- a/Parser.hs
+++ b/Parser.hs
@@ -1,4 +1,6 @@
+{-# LANGUAGE CPP #-}
 {-# LANGUAGE Arrows #-}
+{-# OPTIONS_GHC -Wall #-}
 -----------------------------------------------------------------------------
 -- |
 -- Copyright   :  (C) 2014 Edward Kmett and Gabríel Arthúr Pétursson
@@ -12,10 +14,13 @@
   ( parseFile
   ) where
 
-import Control.Applicative
 import Registry
 import Text.XML.HXT.Core
 
+#ifdef HLINT
+{-# ANN module "HLint: ignore Reduce duplication" #-}
+#endif
+
 to :: ArrowXml a => String -> a XmlTree XmlTree
 to name = hasName name <<< isElem <<< getChildren
 
@@ -85,6 +90,7 @@
     , typePointer = pointer
     }
 
+parse :: IOSLA (XIOState ()) XmlTree Registry
 parse = proc x -> do
   registry <- to "registry" -< x
   groups <- listA $ parseGroup <<< to "groups" -< registry
diff --git a/Registry.hs b/Registry.hs
--- a/Registry.hs
+++ b/Registry.hs
@@ -1,3 +1,4 @@
+{-# OPTIONS_GHC -Wall #-}
 -----------------------------------------------------------------------------
 -- |
 -- Copyright   :  (C) 2014 Edward Kmett and Gabríel Arthúr Pétursson
@@ -100,10 +101,10 @@
 
 clean44require :: Require -> Require
 clean44require require = require
-  { requireEnums = filter (\e -> not $ e `elem` removeEnums) $
+  { requireEnums = filter (`notElem` removed) $
     requireEnums require
   } where
-  removeEnums =
+  removed =
     [ "GL_MAP_READ_BIT"
     , "GL_MAP_WRITE_BIT"
     , "GL_STENCIL_INDEX"
@@ -119,10 +120,10 @@
 
 clean45require :: Require -> Require
 clean45require require = require
-  { requireEnums = filter (\e -> not $ e `elem` removeEnums) $
+  { requireEnums = filter (`notElem` removed) $
     requireEnums require
   } where
-  removeEnums =
+  removed =
     [ "GL_BACK"
     , "GL_LOWER_LEFT"
     , "GL_NONE"
diff --git a/Utils.hs b/Utils.hs
--- a/Utils.hs
+++ b/Utils.hs
@@ -1,3 +1,4 @@
+{-# OPTIONS_GHC -Wall #-}
 -----------------------------------------------------------------------------
 -- |
 -- Copyright   :  (C) 2014 Edward Kmett
@@ -8,17 +9,14 @@
 --
 -- Simple string munging utilities
 ----------------------------------------------------------------------------
-module Utils (joinOn, splitOn, strip, replace) where
+module Utils (splitOn, strip, replace) where
 
 import Data.Char (isSpace)
-import Data.List (intersperse)
+import Data.List (intercalate)
 import Data.List.Split (splitOn)
 
-joinOn :: [a] -> [[a]] -> [a]
-joinOn x = concat . intersperse x
-
 strip :: String -> String
 strip = dropWhile isSpace . reverse . dropWhile isSpace . reverse
 
 replace :: Eq a => [a] -> [a] -> [a] -> [a]
-replace a b = joinOn b . splitOn a
+replace a b = intercalate b . splitOn a
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/BlendMinmaxFactor.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/BlendMinmaxFactor.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/BlendMinmaxFactor.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/BlendMinmaxFactor.hs
@@ -11,11 +11,10 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_AMD_blend_minmax_factor :: Bool
 gl_AMD_blend_minmax_factor = member "GL_AMD_blend_minmax_factor" extensions
 
-pattern GL_FACTOR_MAX_AMD = 0x901D :: GLenum
+pattern GL_FACTOR_MAX_AMD = 0x901D
 
-pattern GL_FACTOR_MIN_AMD = 0x901C :: GLenum
+pattern GL_FACTOR_MIN_AMD = 0x901C
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/Compressed3DCTexture.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/Compressed3DCTexture.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/Compressed3DCTexture.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/Compressed3DCTexture.hs
@@ -11,11 +11,10 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_AMD_compressed_3DC_texture :: Bool
 gl_AMD_compressed_3DC_texture = member "GL_AMD_compressed_3DC_texture" extensions
 
-pattern GL_3DC_XY_AMD = 0x87FA :: GLenum
+pattern GL_3DC_XY_AMD = 0x87FA
 
-pattern GL_3DC_X_AMD = 0x87F9 :: GLenum
+pattern GL_3DC_X_AMD = 0x87F9
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/CompressedATCTexture.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/CompressedATCTexture.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/CompressedATCTexture.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/CompressedATCTexture.hs
@@ -12,13 +12,12 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_AMD_compressed_ATC_texture :: Bool
 gl_AMD_compressed_ATC_texture = member "GL_AMD_compressed_ATC_texture" extensions
 
-pattern GL_ATC_RGBA_EXPLICIT_ALPHA_AMD = 0x8C93 :: GLenum
+pattern GL_ATC_RGBA_EXPLICIT_ALPHA_AMD = 0x8C93
 
-pattern GL_ATC_RGBA_INTERPOLATED_ALPHA_AMD = 0x87EE :: GLenum
+pattern GL_ATC_RGBA_INTERPOLATED_ALPHA_AMD = 0x87EE
 
-pattern GL_ATC_RGB_AMD = 0x8C92 :: GLenum
+pattern GL_ATC_RGB_AMD = 0x8C92
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/DebugOutput.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/DebugOutput.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/DebugOutput.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/DebugOutput.hs
@@ -68,30 +68,30 @@
 
 {-# NOINLINE glGetDebugMessageLogAMDFunPtr #-}
 
-pattern GL_DEBUG_CATEGORY_API_ERROR_AMD = 0x9149 :: GLenum
+pattern GL_DEBUG_CATEGORY_API_ERROR_AMD = 0x9149
 
-pattern GL_DEBUG_CATEGORY_APPLICATION_AMD = 0x914F :: GLenum
+pattern GL_DEBUG_CATEGORY_APPLICATION_AMD = 0x914F
 
-pattern GL_DEBUG_CATEGORY_DEPRECATION_AMD = 0x914B :: GLenum
+pattern GL_DEBUG_CATEGORY_DEPRECATION_AMD = 0x914B
 
-pattern GL_DEBUG_CATEGORY_OTHER_AMD = 0x9150 :: GLenum
+pattern GL_DEBUG_CATEGORY_OTHER_AMD = 0x9150
 
-pattern GL_DEBUG_CATEGORY_PERFORMANCE_AMD = 0x914D :: GLenum
+pattern GL_DEBUG_CATEGORY_PERFORMANCE_AMD = 0x914D
 
-pattern GL_DEBUG_CATEGORY_SHADER_COMPILER_AMD = 0x914E :: GLenum
+pattern GL_DEBUG_CATEGORY_SHADER_COMPILER_AMD = 0x914E
 
-pattern GL_DEBUG_CATEGORY_UNDEFINED_BEHAVIOR_AMD = 0x914C :: GLenum
+pattern GL_DEBUG_CATEGORY_UNDEFINED_BEHAVIOR_AMD = 0x914C
 
-pattern GL_DEBUG_CATEGORY_WINDOW_SYSTEM_AMD = 0x914A :: GLenum
+pattern GL_DEBUG_CATEGORY_WINDOW_SYSTEM_AMD = 0x914A
 
-pattern GL_DEBUG_LOGGED_MESSAGES_AMD = 0x9145 :: GLenum
+pattern GL_DEBUG_LOGGED_MESSAGES_AMD = 0x9145
 
-pattern GL_DEBUG_SEVERITY_HIGH_AMD = 0x9146 :: GLenum
+pattern GL_DEBUG_SEVERITY_HIGH_AMD = 0x9146
 
-pattern GL_DEBUG_SEVERITY_LOW_AMD = 0x9148 :: GLenum
+pattern GL_DEBUG_SEVERITY_LOW_AMD = 0x9148
 
-pattern GL_DEBUG_SEVERITY_MEDIUM_AMD = 0x9147 :: GLenum
+pattern GL_DEBUG_SEVERITY_MEDIUM_AMD = 0x9147
 
-pattern GL_MAX_DEBUG_LOGGED_MESSAGES_AMD = 0x9144 :: GLenum
+pattern GL_MAX_DEBUG_LOGGED_MESSAGES_AMD = 0x9144
 
-pattern GL_MAX_DEBUG_MESSAGE_LENGTH_AMD = 0x9143 :: GLenum
+pattern GL_MAX_DEBUG_MESSAGE_LENGTH_AMD = 0x9143
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/DepthClampSeparate.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/DepthClampSeparate.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/DepthClampSeparate.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/DepthClampSeparate.hs
@@ -11,11 +11,10 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_AMD_depth_clamp_separate :: Bool
 gl_AMD_depth_clamp_separate = member "GL_AMD_depth_clamp_separate" extensions
 
-pattern GL_DEPTH_CLAMP_FAR_AMD = 0x901F :: GLenum
+pattern GL_DEPTH_CLAMP_FAR_AMD = 0x901F
 
-pattern GL_DEPTH_CLAMP_NEAR_AMD = 0x901E :: GLenum
+pattern GL_DEPTH_CLAMP_NEAR_AMD = 0x901E
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/InterleavedElements.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/InterleavedElements.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/InterleavedElements.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/InterleavedElements.hs
@@ -37,6 +37,6 @@
 
 {-# NOINLINE glVertexAttribParameteriAMDFunPtr #-}
 
-pattern GL_VERTEX_ELEMENT_SWIZZLE_AMD = 0x91A4 :: GLenum
+pattern GL_VERTEX_ELEMENT_SWIZZLE_AMD = 0x91A4
 
-pattern GL_VERTEX_ID_SWIZZLE_AMD = 0x91A5 :: GLenum
+pattern GL_VERTEX_ID_SWIZZLE_AMD = 0x91A5
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/NameGenDelete.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/NameGenDelete.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/NameGenDelete.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/NameGenDelete.hs
@@ -50,12 +50,12 @@
 
 {-# NOINLINE glIsNameAMDFunPtr #-}
 
-pattern GL_DATA_BUFFER_AMD = 0x9151 :: GLenum
+pattern GL_DATA_BUFFER_AMD = 0x9151
 
-pattern GL_PERFORMANCE_MONITOR_AMD = 0x9152 :: GLenum
+pattern GL_PERFORMANCE_MONITOR_AMD = 0x9152
 
-pattern GL_QUERY_OBJECT_AMD = 0x9153 :: GLenum
+pattern GL_QUERY_OBJECT_AMD = 0x9153
 
-pattern GL_SAMPLER_OBJECT_AMD = 0x9155 :: GLenum
+pattern GL_SAMPLER_OBJECT_AMD = 0x9155
 
-pattern GL_VERTEX_ARRAY_OBJECT_AMD = 0x9154 :: GLenum
+pattern GL_VERTEX_ARRAY_OBJECT_AMD = 0x9154
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/OcclusionQueryEvent.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/OcclusionQueryEvent.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/OcclusionQueryEvent.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/OcclusionQueryEvent.hs
@@ -33,14 +33,14 @@
 
 {-# NOINLINE glQueryObjectParameteruiAMDFunPtr #-}
 
-pattern GL_OCCLUSION_QUERY_EVENT_MASK_AMD = 0x874F :: GLenum
+pattern GL_OCCLUSION_QUERY_EVENT_MASK_AMD = 0x874F
 
-pattern GL_QUERY_ALL_EVENT_BITS_AMD = 0xFFFFFFFF :: GLenum
+pattern GL_QUERY_ALL_EVENT_BITS_AMD = 0xFFFFFFFF
 
-pattern GL_QUERY_DEPTH_BOUNDS_FAIL_EVENT_BIT_AMD = 0x00000008 :: GLenum
+pattern GL_QUERY_DEPTH_BOUNDS_FAIL_EVENT_BIT_AMD = 0x00000008
 
-pattern GL_QUERY_DEPTH_FAIL_EVENT_BIT_AMD = 0x00000002 :: GLenum
+pattern GL_QUERY_DEPTH_FAIL_EVENT_BIT_AMD = 0x00000002
 
-pattern GL_QUERY_DEPTH_PASS_EVENT_BIT_AMD = 0x00000001 :: GLenum
+pattern GL_QUERY_DEPTH_PASS_EVENT_BIT_AMD = 0x00000001
 
-pattern GL_QUERY_STENCIL_FAIL_EVENT_BIT_AMD = 0x00000004 :: GLenum
+pattern GL_QUERY_STENCIL_FAIL_EVENT_BIT_AMD = 0x00000004
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/PerformanceMonitor.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/PerformanceMonitor.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/PerformanceMonitor.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/PerformanceMonitor.hs
@@ -124,16 +124,16 @@
 
 {-# NOINLINE glSelectPerfMonitorCountersAMDFunPtr #-}
 
-pattern GL_COUNTER_RANGE_AMD = 0x8BC1 :: GLenum
+pattern GL_COUNTER_RANGE_AMD = 0x8BC1
 
-pattern GL_COUNTER_TYPE_AMD = 0x8BC0 :: GLenum
+pattern GL_COUNTER_TYPE_AMD = 0x8BC0
 
-pattern GL_PERCENTAGE_AMD = 0x8BC3 :: GLenum
+pattern GL_PERCENTAGE_AMD = 0x8BC3
 
-pattern GL_PERFMON_RESULT_AMD = 0x8BC6 :: GLenum
+pattern GL_PERFMON_RESULT_AMD = 0x8BC6
 
-pattern GL_PERFMON_RESULT_AVAILABLE_AMD = 0x8BC4 :: GLenum
+pattern GL_PERFMON_RESULT_AVAILABLE_AMD = 0x8BC4
 
-pattern GL_PERFMON_RESULT_SIZE_AMD = 0x8BC5 :: GLenum
+pattern GL_PERFMON_RESULT_SIZE_AMD = 0x8BC5
 
-pattern GL_UNSIGNED_INT64_AMD = 0x8BC2 :: GLenum
+pattern GL_UNSIGNED_INT64_AMD = 0x8BC2
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/PinnedMemory.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/PinnedMemory.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/PinnedMemory.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/PinnedMemory.hs
@@ -10,9 +10,8 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_AMD_pinned_memory :: Bool
 gl_AMD_pinned_memory = member "GL_AMD_pinned_memory" extensions
 
-pattern GL_EXTERNAL_VIRTUAL_MEMORY_BUFFER_AMD = 0x9160 :: GLenum
+pattern GL_EXTERNAL_VIRTUAL_MEMORY_BUFFER_AMD = 0x9160
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/ProgramBinaryZ400.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/ProgramBinaryZ400.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/ProgramBinaryZ400.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/ProgramBinaryZ400.hs
@@ -10,9 +10,8 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_AMD_program_binary_Z400 :: Bool
 gl_AMD_program_binary_Z400 = member "GL_AMD_program_binary_Z400" extensions
 
-pattern GL_Z400_BINARY_AMD = 0x8740 :: GLenum
+pattern GL_Z400_BINARY_AMD = 0x8740
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/QueryBufferObject.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/QueryBufferObject.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/QueryBufferObject.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/QueryBufferObject.hs
@@ -12,13 +12,12 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_AMD_query_buffer_object :: Bool
 gl_AMD_query_buffer_object = member "GL_AMD_query_buffer_object" extensions
 
-pattern GL_QUERY_BUFFER_AMD = 0x9192 :: GLenum
+pattern GL_QUERY_BUFFER_AMD = 0x9192
 
-pattern GL_QUERY_BUFFER_BINDING_AMD = 0x9193 :: GLenum
+pattern GL_QUERY_BUFFER_BINDING_AMD = 0x9193
 
-pattern GL_QUERY_RESULT_NO_WAIT_AMD = 0x9194 :: GLenum
+pattern GL_QUERY_RESULT_NO_WAIT_AMD = 0x9194
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/SamplePositions.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/SamplePositions.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/SamplePositions.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/SamplePositions.hs
@@ -28,4 +28,4 @@
 
 {-# NOINLINE glSetMultisamplefvAMDFunPtr #-}
 
-pattern GL_SUBSAMPLE_DISTANCE_AMD = 0x883F :: GLenum
+pattern GL_SUBSAMPLE_DISTANCE_AMD = 0x883F
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/SparseTexture.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/SparseTexture.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/SparseTexture.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/SparseTexture.hs
@@ -45,20 +45,20 @@
 
 {-# NOINLINE glTextureStorageSparseAMDFunPtr #-}
 
-pattern GL_MAX_SPARSE_3D_TEXTURE_SIZE_AMD = 0x9199 :: GLenum
+pattern GL_MAX_SPARSE_3D_TEXTURE_SIZE_AMD = 0x9199
 
-pattern GL_MAX_SPARSE_ARRAY_TEXTURE_LAYERS = 0x919A :: GLenum
+pattern GL_MAX_SPARSE_ARRAY_TEXTURE_LAYERS = 0x919A
 
-pattern GL_MAX_SPARSE_TEXTURE_SIZE_AMD = 0x9198 :: GLenum
+pattern GL_MAX_SPARSE_TEXTURE_SIZE_AMD = 0x9198
 
-pattern GL_MIN_LOD_WARNING_AMD = 0x919C :: GLenum
+pattern GL_MIN_LOD_WARNING_AMD = 0x919C
 
-pattern GL_MIN_SPARSE_LEVEL_AMD = 0x919B :: GLenum
+pattern GL_MIN_SPARSE_LEVEL_AMD = 0x919B
 
-pattern GL_TEXTURE_STORAGE_SPARSE_BIT_AMD = 0x00000001 :: GLenum
+pattern GL_TEXTURE_STORAGE_SPARSE_BIT_AMD = 0x00000001
 
-pattern GL_VIRTUAL_PAGE_SIZE_X_AMD = 0x9195 :: GLenum
+pattern GL_VIRTUAL_PAGE_SIZE_X_AMD = 0x9195
 
-pattern GL_VIRTUAL_PAGE_SIZE_Y_AMD = 0x9196 :: GLenum
+pattern GL_VIRTUAL_PAGE_SIZE_Y_AMD = 0x9196
 
-pattern GL_VIRTUAL_PAGE_SIZE_Z_AMD = 0x9197 :: GLenum
+pattern GL_VIRTUAL_PAGE_SIZE_Z_AMD = 0x9197
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/StencilOperationExtended.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/StencilOperationExtended.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/StencilOperationExtended.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/StencilOperationExtended.hs
@@ -31,10 +31,10 @@
 
 {-# NOINLINE glStencilOpValueAMDFunPtr #-}
 
-pattern GL_REPLACE_VALUE_AMD = 0x874B :: GLenum
+pattern GL_REPLACE_VALUE_AMD = 0x874B
 
-pattern GL_SET_AMD = 0x874A :: GLenum
+pattern GL_SET_AMD = 0x874A
 
-pattern GL_STENCIL_BACK_OP_VALUE_AMD = 0x874D :: GLenum
+pattern GL_STENCIL_BACK_OP_VALUE_AMD = 0x874D
 
-pattern GL_STENCIL_OP_VALUE_AMD = 0x874C :: GLenum
+pattern GL_STENCIL_OP_VALUE_AMD = 0x874C
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/TransformFeedback4.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/TransformFeedback4.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/TransformFeedback4.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/TransformFeedback4.hs
@@ -10,9 +10,8 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_AMD_transform_feedback4 :: Bool
 gl_AMD_transform_feedback4 = member "GL_AMD_transform_feedback4" extensions
 
-pattern GL_STREAM_RASTERIZATION_AMD = 0x91A0 :: GLenum
+pattern GL_STREAM_RASTERIZATION_AMD = 0x91A0
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/VertexShaderTessellator.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/VertexShaderTessellator.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/VertexShaderTessellator.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/AMD/VertexShaderTessellator.hs
@@ -43,16 +43,16 @@
 
 {-# NOINLINE glTessellationModeAMDFunPtr #-}
 
-pattern GL_CONTINUOUS_AMD = 0x9007 :: GLenum
+pattern GL_CONTINUOUS_AMD = 0x9007
 
-pattern GL_DISCRETE_AMD = 0x9006 :: GLenum
+pattern GL_DISCRETE_AMD = 0x9006
 
-pattern GL_INT_SAMPLER_BUFFER_AMD = 0x9002 :: GLenum
+pattern GL_INT_SAMPLER_BUFFER_AMD = 0x9002
 
-pattern GL_SAMPLER_BUFFER_AMD = 0x9001 :: GLenum
+pattern GL_SAMPLER_BUFFER_AMD = 0x9001
 
-pattern GL_TESSELLATION_FACTOR_AMD = 0x9005 :: GLenum
+pattern GL_TESSELLATION_FACTOR_AMD = 0x9005
 
-pattern GL_TESSELLATION_MODE_AMD = 0x9004 :: GLenum
+pattern GL_TESSELLATION_MODE_AMD = 0x9004
 
-pattern GL_UNSIGNED_INT_SAMPLER_BUFFER_AMD = 0x9003 :: GLenum
+pattern GL_UNSIGNED_INT_SAMPLER_BUFFER_AMD = 0x9003
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ANGLE/FramebufferBlit.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ANGLE/FramebufferBlit.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ANGLE/FramebufferBlit.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ANGLE/FramebufferBlit.hs
@@ -31,10 +31,10 @@
 
 {-# NOINLINE glBlitFramebufferANGLEFunPtr #-}
 
-pattern GL_DRAW_FRAMEBUFFER_ANGLE = 0x8CA9 :: GLenum
+pattern GL_DRAW_FRAMEBUFFER_ANGLE = 0x8CA9
 
-pattern GL_DRAW_FRAMEBUFFER_BINDING_ANGLE = 0x8CA6 :: GLenum
+pattern GL_DRAW_FRAMEBUFFER_BINDING_ANGLE = 0x8CA6
 
-pattern GL_READ_FRAMEBUFFER_ANGLE = 0x8CA8 :: GLenum
+pattern GL_READ_FRAMEBUFFER_ANGLE = 0x8CA8
 
-pattern GL_READ_FRAMEBUFFER_BINDING_ANGLE = 0x8CAA :: GLenum
+pattern GL_READ_FRAMEBUFFER_BINDING_ANGLE = 0x8CAA
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ANGLE/FramebufferMultisample.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ANGLE/FramebufferMultisample.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ANGLE/FramebufferMultisample.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ANGLE/FramebufferMultisample.hs
@@ -30,8 +30,8 @@
 
 {-# NOINLINE glRenderbufferStorageMultisampleANGLEFunPtr #-}
 
-pattern GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_ANGLE = 0x8D56 :: GLenum
+pattern GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_ANGLE = 0x8D56
 
-pattern GL_MAX_SAMPLES_ANGLE = 0x8D57 :: GLenum
+pattern GL_MAX_SAMPLES_ANGLE = 0x8D57
 
-pattern GL_RENDERBUFFER_SAMPLES_ANGLE = 0x8CAB :: GLenum
+pattern GL_RENDERBUFFER_SAMPLES_ANGLE = 0x8CAB
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ANGLE/InstancedArrays.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ANGLE/InstancedArrays.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ANGLE/InstancedArrays.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ANGLE/InstancedArrays.hs
@@ -46,4 +46,4 @@
 
 {-# NOINLINE glVertexAttribDivisorANGLEFunPtr #-}
 
-pattern GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE = 0x88FE :: GLenum
+pattern GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE = 0x88FE
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ANGLE/PackReverseRowOrder.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ANGLE/PackReverseRowOrder.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ANGLE/PackReverseRowOrder.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ANGLE/PackReverseRowOrder.hs
@@ -10,9 +10,8 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_ANGLE_pack_reverse_row_order :: Bool
 gl_ANGLE_pack_reverse_row_order = member "GL_ANGLE_pack_reverse_row_order" extensions
 
-pattern GL_PACK_REVERSE_ROW_ORDER_ANGLE = 0x93A4 :: GLenum
+pattern GL_PACK_REVERSE_ROW_ORDER_ANGLE = 0x93A4
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ANGLE/ProgramBinary.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ANGLE/ProgramBinary.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ANGLE/ProgramBinary.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ANGLE/ProgramBinary.hs
@@ -10,9 +10,8 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_ANGLE_program_binary :: Bool
 gl_ANGLE_program_binary = member "GL_ANGLE_program_binary" extensions
 
-pattern GL_PROGRAM_BINARY_ANGLE = 0x93A6 :: GLenum
+pattern GL_PROGRAM_BINARY_ANGLE = 0x93A6
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ANGLE/TextureCompressionDxt3.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ANGLE/TextureCompressionDxt3.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ANGLE/TextureCompressionDxt3.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ANGLE/TextureCompressionDxt3.hs
@@ -10,9 +10,8 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_ANGLE_texture_compression_dxt3 :: Bool
 gl_ANGLE_texture_compression_dxt3 = member "GL_ANGLE_texture_compression_dxt3" extensions
 
-pattern GL_COMPRESSED_RGBA_S3TC_DXT3_ANGLE = 0x83F2 :: GLenum
+pattern GL_COMPRESSED_RGBA_S3TC_DXT3_ANGLE = 0x83F2
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ANGLE/TextureCompressionDxt5.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ANGLE/TextureCompressionDxt5.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ANGLE/TextureCompressionDxt5.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ANGLE/TextureCompressionDxt5.hs
@@ -10,9 +10,8 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_ANGLE_texture_compression_dxt5 :: Bool
 gl_ANGLE_texture_compression_dxt5 = member "GL_ANGLE_texture_compression_dxt5" extensions
 
-pattern GL_COMPRESSED_RGBA_S3TC_DXT5_ANGLE = 0x83F3 :: GLenum
+pattern GL_COMPRESSED_RGBA_S3TC_DXT5_ANGLE = 0x83F3
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ANGLE/TextureUsage.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ANGLE/TextureUsage.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ANGLE/TextureUsage.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ANGLE/TextureUsage.hs
@@ -11,11 +11,10 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_ANGLE_texture_usage :: Bool
 gl_ANGLE_texture_usage = member "GL_ANGLE_texture_usage" extensions
 
-pattern GL_FRAMEBUFFER_ATTACHMENT_ANGLE = 0x93A3 :: GLenum
+pattern GL_FRAMEBUFFER_ATTACHMENT_ANGLE = 0x93A3
 
-pattern GL_TEXTURE_USAGE_ANGLE = 0x93A2 :: GLenum
+pattern GL_TEXTURE_USAGE_ANGLE = 0x93A2
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ANGLE/TranslatedShaderSource.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ANGLE/TranslatedShaderSource.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ANGLE/TranslatedShaderSource.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ANGLE/TranslatedShaderSource.hs
@@ -28,4 +28,4 @@
 
 {-# NOINLINE glGetTranslatedShaderSourceANGLEFunPtr #-}
 
-pattern GL_TRANSLATED_SHADER_SOURCE_LENGTH_ANGLE = 0x93A0 :: GLenum
+pattern GL_TRANSLATED_SHADER_SOURCE_LENGTH_ANGLE = 0x93A0
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/AuxDepthStencil.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/AuxDepthStencil.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/AuxDepthStencil.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/AuxDepthStencil.hs
@@ -10,9 +10,8 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_APPLE_aux_depth_stencil :: Bool
 gl_APPLE_aux_depth_stencil = member "GL_APPLE_aux_depth_stencil" extensions
 
-pattern GL_AUX_DEPTH_STENCIL_APPLE = 0x8A14 :: GLenum
+pattern GL_AUX_DEPTH_STENCIL_APPLE = 0x8A14
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/ClientStorage.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/ClientStorage.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/ClientStorage.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/ClientStorage.hs
@@ -10,9 +10,8 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_APPLE_client_storage :: Bool
 gl_APPLE_client_storage = member "GL_APPLE_client_storage" extensions
 
-pattern GL_UNPACK_CLIENT_STORAGE_APPLE = 0x85B2 :: GLenum
+pattern GL_UNPACK_CLIENT_STORAGE_APPLE = 0x85B2
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/ClipDistance.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/ClipDistance.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/ClipDistance.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/ClipDistance.hs
@@ -18,25 +18,24 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_APPLE_clip_distance :: Bool
 gl_APPLE_clip_distance = member "GL_APPLE_clip_distance" extensions
 
-pattern GL_CLIP_DISTANCE0_APPLE = 0x3000 :: GLenum
+pattern GL_CLIP_DISTANCE0_APPLE = 0x3000
 
-pattern GL_CLIP_DISTANCE1_APPLE = 0x3001 :: GLenum
+pattern GL_CLIP_DISTANCE1_APPLE = 0x3001
 
-pattern GL_CLIP_DISTANCE2_APPLE = 0x3002 :: GLenum
+pattern GL_CLIP_DISTANCE2_APPLE = 0x3002
 
-pattern GL_CLIP_DISTANCE3_APPLE = 0x3003 :: GLenum
+pattern GL_CLIP_DISTANCE3_APPLE = 0x3003
 
-pattern GL_CLIP_DISTANCE4_APPLE = 0x3004 :: GLenum
+pattern GL_CLIP_DISTANCE4_APPLE = 0x3004
 
-pattern GL_CLIP_DISTANCE5_APPLE = 0x3005 :: GLenum
+pattern GL_CLIP_DISTANCE5_APPLE = 0x3005
 
-pattern GL_CLIP_DISTANCE6_APPLE = 0x3006 :: GLenum
+pattern GL_CLIP_DISTANCE6_APPLE = 0x3006
 
-pattern GL_CLIP_DISTANCE7_APPLE = 0x3007 :: GLenum
+pattern GL_CLIP_DISTANCE7_APPLE = 0x3007
 
-pattern GL_MAX_CLIP_DISTANCES_APPLE = 0x0D32 :: GLenum
+pattern GL_MAX_CLIP_DISTANCES_APPLE = 0x0D32
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/ElementArray.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/ElementArray.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/ElementArray.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/ElementArray.hs
@@ -66,8 +66,8 @@
 
 {-# NOINLINE glMultiDrawRangeElementArrayAPPLEFunPtr #-}
 
-pattern GL_ELEMENT_ARRAY_APPLE = 0x8A0C :: GLenum
+pattern GL_ELEMENT_ARRAY_APPLE = 0x8A0C
 
-pattern GL_ELEMENT_ARRAY_POINTER_APPLE = 0x8A0E :: GLenum
+pattern GL_ELEMENT_ARRAY_POINTER_APPLE = 0x8A0E
 
-pattern GL_ELEMENT_ARRAY_TYPE_APPLE = 0x8A0D :: GLenum
+pattern GL_ELEMENT_ARRAY_TYPE_APPLE = 0x8A0D
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/Fence.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/Fence.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/Fence.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/Fence.hs
@@ -92,6 +92,6 @@
 
 {-# NOINLINE glTestObjectAPPLEFunPtr #-}
 
-pattern GL_DRAW_PIXELS_APPLE = 0x8A0A :: GLenum
+pattern GL_DRAW_PIXELS_APPLE = 0x8A0A
 
-pattern GL_FENCE_APPLE = 0x8A0B :: GLenum
+pattern GL_FENCE_APPLE = 0x8A0B
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/FloatPixels.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/FloatPixels.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/FloatPixels.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/FloatPixels.hs
@@ -23,35 +23,34 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_APPLE_float_pixels :: Bool
 gl_APPLE_float_pixels = member "GL_APPLE_float_pixels" extensions
 
-pattern GL_ALPHA_FLOAT16_APPLE = 0x881C :: GLenum
+pattern GL_ALPHA_FLOAT16_APPLE = 0x881C
 
-pattern GL_ALPHA_FLOAT32_APPLE = 0x8816 :: GLenum
+pattern GL_ALPHA_FLOAT32_APPLE = 0x8816
 
-pattern GL_COLOR_FLOAT_APPLE = 0x8A0F :: GLenum
+pattern GL_COLOR_FLOAT_APPLE = 0x8A0F
 
-pattern GL_HALF_APPLE = 0x140B :: GLenum
+pattern GL_HALF_APPLE = 0x140B
 
-pattern GL_INTENSITY_FLOAT16_APPLE = 0x881D :: GLenum
+pattern GL_INTENSITY_FLOAT16_APPLE = 0x881D
 
-pattern GL_INTENSITY_FLOAT32_APPLE = 0x8817 :: GLenum
+pattern GL_INTENSITY_FLOAT32_APPLE = 0x8817
 
-pattern GL_LUMINANCE_ALPHA_FLOAT16_APPLE = 0x881F :: GLenum
+pattern GL_LUMINANCE_ALPHA_FLOAT16_APPLE = 0x881F
 
-pattern GL_LUMINANCE_ALPHA_FLOAT32_APPLE = 0x8819 :: GLenum
+pattern GL_LUMINANCE_ALPHA_FLOAT32_APPLE = 0x8819
 
-pattern GL_LUMINANCE_FLOAT16_APPLE = 0x881E :: GLenum
+pattern GL_LUMINANCE_FLOAT16_APPLE = 0x881E
 
-pattern GL_LUMINANCE_FLOAT32_APPLE = 0x8818 :: GLenum
+pattern GL_LUMINANCE_FLOAT32_APPLE = 0x8818
 
-pattern GL_RGBA_FLOAT16_APPLE = 0x881A :: GLenum
+pattern GL_RGBA_FLOAT16_APPLE = 0x881A
 
-pattern GL_RGBA_FLOAT32_APPLE = 0x8814 :: GLenum
+pattern GL_RGBA_FLOAT32_APPLE = 0x8814
 
-pattern GL_RGB_FLOAT16_APPLE = 0x881B :: GLenum
+pattern GL_RGB_FLOAT16_APPLE = 0x881B
 
-pattern GL_RGB_FLOAT32_APPLE = 0x8815 :: GLenum
+pattern GL_RGB_FLOAT32_APPLE = 0x8815
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/FlushBufferRange.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/FlushBufferRange.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/FlushBufferRange.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/FlushBufferRange.hs
@@ -38,6 +38,6 @@
 
 {-# NOINLINE glFlushMappedBufferRangeAPPLEFunPtr #-}
 
-pattern GL_BUFFER_FLUSHING_UNMAP_APPLE = 0x8A13 :: GLenum
+pattern GL_BUFFER_FLUSHING_UNMAP_APPLE = 0x8A13
 
-pattern GL_BUFFER_SERIALIZED_MODIFY_APPLE = 0x8A12 :: GLenum
+pattern GL_BUFFER_SERIALIZED_MODIFY_APPLE = 0x8A12
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/FramebufferMultisample.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/FramebufferMultisample.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/FramebufferMultisample.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/FramebufferMultisample.hs
@@ -43,16 +43,16 @@
 
 {-# NOINLINE glResolveMultisampleFramebufferAPPLEFunPtr #-}
 
-pattern GL_DRAW_FRAMEBUFFER_APPLE = 0x8CA9 :: GLenum
+pattern GL_DRAW_FRAMEBUFFER_APPLE = 0x8CA9
 
-pattern GL_DRAW_FRAMEBUFFER_BINDING_APPLE = 0x8CA6 :: GLenum
+pattern GL_DRAW_FRAMEBUFFER_BINDING_APPLE = 0x8CA6
 
-pattern GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_APPLE = 0x8D56 :: GLenum
+pattern GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_APPLE = 0x8D56
 
-pattern GL_MAX_SAMPLES_APPLE = 0x8D57 :: GLenum
+pattern GL_MAX_SAMPLES_APPLE = 0x8D57
 
-pattern GL_READ_FRAMEBUFFER_APPLE = 0x8CA8 :: GLenum
+pattern GL_READ_FRAMEBUFFER_APPLE = 0x8CA8
 
-pattern GL_READ_FRAMEBUFFER_BINDING_APPLE = 0x8CAA :: GLenum
+pattern GL_READ_FRAMEBUFFER_BINDING_APPLE = 0x8CAA
 
-pattern GL_RENDERBUFFER_SAMPLES_APPLE = 0x8CAB :: GLenum
+pattern GL_RENDERBUFFER_SAMPLES_APPLE = 0x8CAB
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/ObjectPurgeable.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/ObjectPurgeable.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/ObjectPurgeable.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/ObjectPurgeable.hs
@@ -51,14 +51,14 @@
 
 {-# NOINLINE glObjectUnpurgeableAPPLEFunPtr #-}
 
-pattern GL_BUFFER_OBJECT_APPLE = 0x85B3 :: GLenum
+pattern GL_BUFFER_OBJECT_APPLE = 0x85B3
 
-pattern GL_PURGEABLE_APPLE = 0x8A1D :: GLenum
+pattern GL_PURGEABLE_APPLE = 0x8A1D
 
-pattern GL_RELEASED_APPLE = 0x8A19 :: GLenum
+pattern GL_RELEASED_APPLE = 0x8A19
 
-pattern GL_RETAINED_APPLE = 0x8A1B :: GLenum
+pattern GL_RETAINED_APPLE = 0x8A1B
 
-pattern GL_UNDEFINED_APPLE = 0x8A1C :: GLenum
+pattern GL_UNDEFINED_APPLE = 0x8A1C
 
-pattern GL_VOLATILE_APPLE = 0x8A1A :: GLenum
+pattern GL_VOLATILE_APPLE = 0x8A1A
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/Rgb422.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/Rgb422.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/Rgb422.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/Rgb422.hs
@@ -14,11 +14,10 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
-import Graphics.GL.Raw.Types
 
 gl_APPLE_rgb_422 :: Bool
 gl_APPLE_rgb_422 = member "GL_APPLE_rgb_422" extensions
 
-pattern GL_RGB_422_APPLE = 0x8A1F :: GLenum
+pattern GL_RGB_422_APPLE = 0x8A1F
 
-pattern GL_RGB_RAW_422_APPLE = 0x8A51 :: GLenum
+pattern GL_RGB_RAW_422_APPLE = 0x8A51
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/RowBytes.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/RowBytes.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/RowBytes.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/RowBytes.hs
@@ -11,11 +11,10 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_APPLE_row_bytes :: Bool
 gl_APPLE_row_bytes = member "GL_APPLE_row_bytes" extensions
 
-pattern GL_PACK_ROW_BYTES_APPLE = 0x8A15 :: GLenum
+pattern GL_PACK_ROW_BYTES_APPLE = 0x8A15
 
-pattern GL_UNPACK_ROW_BYTES_APPLE = 0x8A16 :: GLenum
+pattern GL_UNPACK_ROW_BYTES_APPLE = 0x8A16
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/SpecularVector.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/SpecularVector.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/SpecularVector.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/SpecularVector.hs
@@ -10,9 +10,8 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_APPLE_specular_vector :: Bool
 gl_APPLE_specular_vector = member "GL_APPLE_specular_vector" extensions
 
-pattern GL_LIGHT_MODEL_SPECULAR_VECTOR_APPLE = 0x85B0 :: GLenum
+pattern GL_LIGHT_MODEL_SPECULAR_VECTOR_APPLE = 0x85B0
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/Sync.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/Sync.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/Sync.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/Sync.hs
@@ -97,34 +97,34 @@
 
 {-# NOINLINE glWaitSyncAPPLEFunPtr #-}
 
-pattern GL_ALREADY_SIGNALED_APPLE = 0x911A :: GLenum
+pattern GL_ALREADY_SIGNALED_APPLE = 0x911A
 
-pattern GL_CONDITION_SATISFIED_APPLE = 0x911C :: GLenum
+pattern GL_CONDITION_SATISFIED_APPLE = 0x911C
 
-pattern GL_MAX_SERVER_WAIT_TIMEOUT_APPLE = 0x9111 :: GLenum
+pattern GL_MAX_SERVER_WAIT_TIMEOUT_APPLE = 0x9111
 
-pattern GL_OBJECT_TYPE_APPLE = 0x9112 :: GLenum
+pattern GL_OBJECT_TYPE_APPLE = 0x9112
 
-pattern GL_SIGNALED_APPLE = 0x9119 :: GLenum
+pattern GL_SIGNALED_APPLE = 0x9119
 
-pattern GL_SYNC_CONDITION_APPLE = 0x9113 :: GLenum
+pattern GL_SYNC_CONDITION_APPLE = 0x9113
 
-pattern GL_SYNC_FENCE_APPLE = 0x9116 :: GLenum
+pattern GL_SYNC_FENCE_APPLE = 0x9116
 
-pattern GL_SYNC_FLAGS_APPLE = 0x9115 :: GLenum
+pattern GL_SYNC_FLAGS_APPLE = 0x9115
 
-pattern GL_SYNC_FLUSH_COMMANDS_BIT_APPLE = 0x00000001 :: GLenum
+pattern GL_SYNC_FLUSH_COMMANDS_BIT_APPLE = 0x00000001
 
-pattern GL_SYNC_GPU_COMMANDS_COMPLETE_APPLE = 0x9117 :: GLenum
+pattern GL_SYNC_GPU_COMMANDS_COMPLETE_APPLE = 0x9117
 
-pattern GL_SYNC_OBJECT_APPLE = 0x8A53 :: GLenum
+pattern GL_SYNC_OBJECT_APPLE = 0x8A53
 
-pattern GL_SYNC_STATUS_APPLE = 0x9114 :: GLenum
+pattern GL_SYNC_STATUS_APPLE = 0x9114
 
-pattern GL_TIMEOUT_EXPIRED_APPLE = 0x911B :: GLenum
+pattern GL_TIMEOUT_EXPIRED_APPLE = 0x911B
 
-pattern GL_TIMEOUT_IGNORED_APPLE = 0xFFFFFFFFFFFFFFFF :: GLenum
+pattern GL_TIMEOUT_IGNORED_APPLE = 0xFFFFFFFFFFFFFFFF
 
-pattern GL_UNSIGNALED_APPLE = 0x9118 :: GLenum
+pattern GL_UNSIGNALED_APPLE = 0x9118
 
-pattern GL_WAIT_FAILED_APPLE = 0x911D :: GLenum
+pattern GL_WAIT_FAILED_APPLE = 0x911D
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/TextureMaxLevel.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/TextureMaxLevel.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/TextureMaxLevel.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/TextureMaxLevel.hs
@@ -10,9 +10,8 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_APPLE_texture_max_level :: Bool
 gl_APPLE_texture_max_level = member "GL_APPLE_texture_max_level" extensions
 
-pattern GL_TEXTURE_MAX_LEVEL_APPLE = 0x813D :: GLenum
+pattern GL_TEXTURE_MAX_LEVEL_APPLE = 0x813D
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/TexturePackedFloat.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/TexturePackedFloat.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/TexturePackedFloat.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/TexturePackedFloat.hs
@@ -13,15 +13,14 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_APPLE_texture_packed_float :: Bool
 gl_APPLE_texture_packed_float = member "GL_APPLE_texture_packed_float" extensions
 
-pattern GL_R11F_G11F_B10F_APPLE = 0x8C3A :: GLenum
+pattern GL_R11F_G11F_B10F_APPLE = 0x8C3A
 
-pattern GL_RGB9_E5_APPLE = 0x8C3D :: GLenum
+pattern GL_RGB9_E5_APPLE = 0x8C3D
 
-pattern GL_UNSIGNED_INT_10F_11F_11F_REV_APPLE = 0x8C3B :: GLenum
+pattern GL_UNSIGNED_INT_10F_11F_11F_REV_APPLE = 0x8C3B
 
-pattern GL_UNSIGNED_INT_5_9_9_9_REV_APPLE = 0x8C3E :: GLenum
+pattern GL_UNSIGNED_INT_5_9_9_9_REV_APPLE = 0x8C3E
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/TextureRange.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/TextureRange.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/TextureRange.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/TextureRange.hs
@@ -43,10 +43,10 @@
 
 {-# NOINLINE glTextureRangeAPPLEFunPtr #-}
 
-pattern GL_STORAGE_PRIVATE_APPLE = 0x85BD :: GLenum
+pattern GL_STORAGE_PRIVATE_APPLE = 0x85BD
 
-pattern GL_TEXTURE_RANGE_LENGTH_APPLE = 0x85B7 :: GLenum
+pattern GL_TEXTURE_RANGE_LENGTH_APPLE = 0x85B7
 
-pattern GL_TEXTURE_RANGE_POINTER_APPLE = 0x85B8 :: GLenum
+pattern GL_TEXTURE_RANGE_POINTER_APPLE = 0x85B8
 
-pattern GL_TEXTURE_STORAGE_HINT_APPLE = 0x85BC :: GLenum
+pattern GL_TEXTURE_STORAGE_HINT_APPLE = 0x85BC
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/TransformHint.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/TransformHint.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/TransformHint.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/TransformHint.hs
@@ -10,9 +10,8 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_APPLE_transform_hint :: Bool
 gl_APPLE_transform_hint = member "GL_APPLE_transform_hint" extensions
 
-pattern GL_TRANSFORM_HINT_APPLE = 0x85B1 :: GLenum
+pattern GL_TRANSFORM_HINT_APPLE = 0x85B1
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/VertexArrayObject.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/VertexArrayObject.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/VertexArrayObject.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/VertexArrayObject.hs
@@ -55,4 +55,4 @@
 
 {-# NOINLINE glIsVertexArrayAPPLEFunPtr #-}
 
-pattern GL_VERTEX_ARRAY_BINDING_APPLE = 0x85B5 :: GLenum
+pattern GL_VERTEX_ARRAY_BINDING_APPLE = 0x85B5
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/VertexArrayRange.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/VertexArrayRange.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/VertexArrayRange.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/VertexArrayRange.hs
@@ -53,12 +53,12 @@
 
 {-# NOINLINE glVertexArrayRangeAPPLEFunPtr #-}
 
-pattern GL_STORAGE_CLIENT_APPLE = 0x85B4 :: GLenum
+pattern GL_STORAGE_CLIENT_APPLE = 0x85B4
 
-pattern GL_VERTEX_ARRAY_RANGE_APPLE = 0x851D :: GLenum
+pattern GL_VERTEX_ARRAY_RANGE_APPLE = 0x851D
 
-pattern GL_VERTEX_ARRAY_RANGE_LENGTH_APPLE = 0x851E :: GLenum
+pattern GL_VERTEX_ARRAY_RANGE_LENGTH_APPLE = 0x851E
 
-pattern GL_VERTEX_ARRAY_RANGE_POINTER_APPLE = 0x8521 :: GLenum
+pattern GL_VERTEX_ARRAY_RANGE_POINTER_APPLE = 0x8521
 
-pattern GL_VERTEX_ARRAY_STORAGE_HINT_APPLE = 0x851F :: GLenum
+pattern GL_VERTEX_ARRAY_STORAGE_HINT_APPLE = 0x851F
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/VertexProgramEvaluators.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/VertexProgramEvaluators.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/VertexProgramEvaluators.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/VertexProgramEvaluators.hs
@@ -91,22 +91,22 @@
 
 {-# NOINLINE glMapVertexAttrib2fAPPLEFunPtr #-}
 
-pattern GL_VERTEX_ATTRIB_MAP1_APPLE = 0x8A00 :: GLenum
+pattern GL_VERTEX_ATTRIB_MAP1_APPLE = 0x8A00
 
-pattern GL_VERTEX_ATTRIB_MAP1_COEFF_APPLE = 0x8A03 :: GLenum
+pattern GL_VERTEX_ATTRIB_MAP1_COEFF_APPLE = 0x8A03
 
-pattern GL_VERTEX_ATTRIB_MAP1_DOMAIN_APPLE = 0x8A05 :: GLenum
+pattern GL_VERTEX_ATTRIB_MAP1_DOMAIN_APPLE = 0x8A05
 
-pattern GL_VERTEX_ATTRIB_MAP1_ORDER_APPLE = 0x8A04 :: GLenum
+pattern GL_VERTEX_ATTRIB_MAP1_ORDER_APPLE = 0x8A04
 
-pattern GL_VERTEX_ATTRIB_MAP1_SIZE_APPLE = 0x8A02 :: GLenum
+pattern GL_VERTEX_ATTRIB_MAP1_SIZE_APPLE = 0x8A02
 
-pattern GL_VERTEX_ATTRIB_MAP2_APPLE = 0x8A01 :: GLenum
+pattern GL_VERTEX_ATTRIB_MAP2_APPLE = 0x8A01
 
-pattern GL_VERTEX_ATTRIB_MAP2_COEFF_APPLE = 0x8A07 :: GLenum
+pattern GL_VERTEX_ATTRIB_MAP2_COEFF_APPLE = 0x8A07
 
-pattern GL_VERTEX_ATTRIB_MAP2_DOMAIN_APPLE = 0x8A09 :: GLenum
+pattern GL_VERTEX_ATTRIB_MAP2_DOMAIN_APPLE = 0x8A09
 
-pattern GL_VERTEX_ATTRIB_MAP2_ORDER_APPLE = 0x8A08 :: GLenum
+pattern GL_VERTEX_ATTRIB_MAP2_ORDER_APPLE = 0x8A08
 
-pattern GL_VERTEX_ATTRIB_MAP2_SIZE_APPLE = 0x8A06 :: GLenum
+pattern GL_VERTEX_ATTRIB_MAP2_SIZE_APPLE = 0x8A06
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/Ycbcr422.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/Ycbcr422.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/Ycbcr422.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/APPLE/Ycbcr422.hs
@@ -13,9 +13,8 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
-import Graphics.GL.Raw.Types
 
 gl_APPLE_ycbcr_422 :: Bool
 gl_APPLE_ycbcr_422 = member "GL_APPLE_ycbcr_422" extensions
 
-pattern GL_YCBCR_422_APPLE = 0x85B9 :: GLenum
+pattern GL_YCBCR_422_APPLE = 0x85B9
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/BindlessTexture.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/BindlessTexture.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/BindlessTexture.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/BindlessTexture.hs
@@ -163,4 +163,4 @@
 
 {-# NOINLINE glVertexAttribL1ui64vARBFunPtr #-}
 
-pattern GL_UNSIGNED_INT64_ARB = 0x140F :: GLenum
+pattern GL_UNSIGNED_INT64_ARB = 0x140F
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ClEvent.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ClEvent.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ClEvent.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ClEvent.hs
@@ -29,6 +29,6 @@
 
 {-# NOINLINE glCreateSyncFromCLeventARBFunPtr #-}
 
-pattern GL_SYNC_CL_EVENT_ARB = 0x8240 :: GLenum
+pattern GL_SYNC_CL_EVENT_ARB = 0x8240
 
-pattern GL_SYNC_CL_EVENT_COMPLETE_ARB = 0x8241 :: GLenum
+pattern GL_SYNC_CL_EVENT_COMPLETE_ARB = 0x8241
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ColorBufferFloat.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ColorBufferFloat.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ColorBufferFloat.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ColorBufferFloat.hs
@@ -32,12 +32,12 @@
 
 {-# NOINLINE glClampColorARBFunPtr #-}
 
-pattern GL_CLAMP_FRAGMENT_COLOR_ARB = 0x891B :: GLenum
+pattern GL_CLAMP_FRAGMENT_COLOR_ARB = 0x891B
 
-pattern GL_CLAMP_READ_COLOR_ARB = 0x891C :: GLenum
+pattern GL_CLAMP_READ_COLOR_ARB = 0x891C
 
-pattern GL_CLAMP_VERTEX_COLOR_ARB = 0x891A :: GLenum
+pattern GL_CLAMP_VERTEX_COLOR_ARB = 0x891A
 
-pattern GL_FIXED_ONLY_ARB = 0x891D :: GLenum
+pattern GL_FIXED_ONLY_ARB = 0x891D
 
-pattern GL_RGBA_FLOAT_MODE_ARB = 0x8820 :: GLenum
+pattern GL_RGBA_FLOAT_MODE_ARB = 0x8820
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ComputeVariableGroupSize.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ComputeVariableGroupSize.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ComputeVariableGroupSize.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ComputeVariableGroupSize.hs
@@ -31,10 +31,10 @@
 
 {-# NOINLINE glDispatchComputeGroupSizeARBFunPtr #-}
 
-pattern GL_MAX_COMPUTE_FIXED_GROUP_INVOCATIONS_ARB = 0x90EB :: GLenum
+pattern GL_MAX_COMPUTE_FIXED_GROUP_INVOCATIONS_ARB = 0x90EB
 
-pattern GL_MAX_COMPUTE_FIXED_GROUP_SIZE_ARB = 0x91BF :: GLenum
+pattern GL_MAX_COMPUTE_FIXED_GROUP_SIZE_ARB = 0x91BF
 
-pattern GL_MAX_COMPUTE_VARIABLE_GROUP_INVOCATIONS_ARB = 0x9344 :: GLenum
+pattern GL_MAX_COMPUTE_VARIABLE_GROUP_INVOCATIONS_ARB = 0x9344
 
-pattern GL_MAX_COMPUTE_VARIABLE_GROUP_SIZE_ARB = 0x9345 :: GLenum
+pattern GL_MAX_COMPUTE_VARIABLE_GROUP_SIZE_ARB = 0x9345
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/DebugOutput.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/DebugOutput.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/DebugOutput.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/DebugOutput.hs
@@ -76,46 +76,46 @@
 
 {-# NOINLINE glGetDebugMessageLogARBFunPtr #-}
 
-pattern GL_DEBUG_CALLBACK_FUNCTION_ARB = 0x8244 :: GLenum
+pattern GL_DEBUG_CALLBACK_FUNCTION_ARB = 0x8244
 
-pattern GL_DEBUG_CALLBACK_USER_PARAM_ARB = 0x8245 :: GLenum
+pattern GL_DEBUG_CALLBACK_USER_PARAM_ARB = 0x8245
 
-pattern GL_DEBUG_LOGGED_MESSAGES_ARB = 0x9145 :: GLenum
+pattern GL_DEBUG_LOGGED_MESSAGES_ARB = 0x9145
 
-pattern GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_ARB = 0x8243 :: GLenum
+pattern GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_ARB = 0x8243
 
-pattern GL_DEBUG_OUTPUT_SYNCHRONOUS_ARB = 0x8242 :: GLenum
+pattern GL_DEBUG_OUTPUT_SYNCHRONOUS_ARB = 0x8242
 
-pattern GL_DEBUG_SEVERITY_HIGH_ARB = 0x9146 :: GLenum
+pattern GL_DEBUG_SEVERITY_HIGH_ARB = 0x9146
 
-pattern GL_DEBUG_SEVERITY_LOW_ARB = 0x9148 :: GLenum
+pattern GL_DEBUG_SEVERITY_LOW_ARB = 0x9148
 
-pattern GL_DEBUG_SEVERITY_MEDIUM_ARB = 0x9147 :: GLenum
+pattern GL_DEBUG_SEVERITY_MEDIUM_ARB = 0x9147
 
-pattern GL_DEBUG_SOURCE_API_ARB = 0x8246 :: GLenum
+pattern GL_DEBUG_SOURCE_API_ARB = 0x8246
 
-pattern GL_DEBUG_SOURCE_APPLICATION_ARB = 0x824A :: GLenum
+pattern GL_DEBUG_SOURCE_APPLICATION_ARB = 0x824A
 
-pattern GL_DEBUG_SOURCE_OTHER_ARB = 0x824B :: GLenum
+pattern GL_DEBUG_SOURCE_OTHER_ARB = 0x824B
 
-pattern GL_DEBUG_SOURCE_SHADER_COMPILER_ARB = 0x8248 :: GLenum
+pattern GL_DEBUG_SOURCE_SHADER_COMPILER_ARB = 0x8248
 
-pattern GL_DEBUG_SOURCE_THIRD_PARTY_ARB = 0x8249 :: GLenum
+pattern GL_DEBUG_SOURCE_THIRD_PARTY_ARB = 0x8249
 
-pattern GL_DEBUG_SOURCE_WINDOW_SYSTEM_ARB = 0x8247 :: GLenum
+pattern GL_DEBUG_SOURCE_WINDOW_SYSTEM_ARB = 0x8247
 
-pattern GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR_ARB = 0x824D :: GLenum
+pattern GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR_ARB = 0x824D
 
-pattern GL_DEBUG_TYPE_ERROR_ARB = 0x824C :: GLenum
+pattern GL_DEBUG_TYPE_ERROR_ARB = 0x824C
 
-pattern GL_DEBUG_TYPE_OTHER_ARB = 0x8251 :: GLenum
+pattern GL_DEBUG_TYPE_OTHER_ARB = 0x8251
 
-pattern GL_DEBUG_TYPE_PERFORMANCE_ARB = 0x8250 :: GLenum
+pattern GL_DEBUG_TYPE_PERFORMANCE_ARB = 0x8250
 
-pattern GL_DEBUG_TYPE_PORTABILITY_ARB = 0x824F :: GLenum
+pattern GL_DEBUG_TYPE_PORTABILITY_ARB = 0x824F
 
-pattern GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR_ARB = 0x824E :: GLenum
+pattern GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR_ARB = 0x824E
 
-pattern GL_MAX_DEBUG_LOGGED_MESSAGES_ARB = 0x9144 :: GLenum
+pattern GL_MAX_DEBUG_LOGGED_MESSAGES_ARB = 0x9144
 
-pattern GL_MAX_DEBUG_MESSAGE_LENGTH_ARB = 0x9143 :: GLenum
+pattern GL_MAX_DEBUG_MESSAGE_LENGTH_ARB = 0x9143
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/DepthTexture.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/DepthTexture.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/DepthTexture.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/DepthTexture.hs
@@ -14,17 +14,16 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_ARB_depth_texture :: Bool
 gl_ARB_depth_texture = member "GL_ARB_depth_texture" extensions
 
-pattern GL_DEPTH_COMPONENT16_ARB = 0x81A5 :: GLenum
+pattern GL_DEPTH_COMPONENT16_ARB = 0x81A5
 
-pattern GL_DEPTH_COMPONENT24_ARB = 0x81A6 :: GLenum
+pattern GL_DEPTH_COMPONENT24_ARB = 0x81A6
 
-pattern GL_DEPTH_COMPONENT32_ARB = 0x81A7 :: GLenum
+pattern GL_DEPTH_COMPONENT32_ARB = 0x81A7
 
-pattern GL_DEPTH_TEXTURE_MODE_ARB = 0x884B :: GLenum
+pattern GL_DEPTH_TEXTURE_MODE_ARB = 0x884B
 
-pattern GL_TEXTURE_DEPTH_SIZE_ARB = 0x884A :: GLenum
+pattern GL_TEXTURE_DEPTH_SIZE_ARB = 0x884A
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/DrawBuffers.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/DrawBuffers.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/DrawBuffers.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/DrawBuffers.hs
@@ -44,36 +44,36 @@
 
 {-# NOINLINE glDrawBuffersARBFunPtr #-}
 
-pattern GL_DRAW_BUFFER0_ARB = 0x8825 :: GLenum
+pattern GL_DRAW_BUFFER0_ARB = 0x8825
 
-pattern GL_DRAW_BUFFER10_ARB = 0x882F :: GLenum
+pattern GL_DRAW_BUFFER10_ARB = 0x882F
 
-pattern GL_DRAW_BUFFER11_ARB = 0x8830 :: GLenum
+pattern GL_DRAW_BUFFER11_ARB = 0x8830
 
-pattern GL_DRAW_BUFFER12_ARB = 0x8831 :: GLenum
+pattern GL_DRAW_BUFFER12_ARB = 0x8831
 
-pattern GL_DRAW_BUFFER13_ARB = 0x8832 :: GLenum
+pattern GL_DRAW_BUFFER13_ARB = 0x8832
 
-pattern GL_DRAW_BUFFER14_ARB = 0x8833 :: GLenum
+pattern GL_DRAW_BUFFER14_ARB = 0x8833
 
-pattern GL_DRAW_BUFFER15_ARB = 0x8834 :: GLenum
+pattern GL_DRAW_BUFFER15_ARB = 0x8834
 
-pattern GL_DRAW_BUFFER1_ARB = 0x8826 :: GLenum
+pattern GL_DRAW_BUFFER1_ARB = 0x8826
 
-pattern GL_DRAW_BUFFER2_ARB = 0x8827 :: GLenum
+pattern GL_DRAW_BUFFER2_ARB = 0x8827
 
-pattern GL_DRAW_BUFFER3_ARB = 0x8828 :: GLenum
+pattern GL_DRAW_BUFFER3_ARB = 0x8828
 
-pattern GL_DRAW_BUFFER4_ARB = 0x8829 :: GLenum
+pattern GL_DRAW_BUFFER4_ARB = 0x8829
 
-pattern GL_DRAW_BUFFER5_ARB = 0x882A :: GLenum
+pattern GL_DRAW_BUFFER5_ARB = 0x882A
 
-pattern GL_DRAW_BUFFER6_ARB = 0x882B :: GLenum
+pattern GL_DRAW_BUFFER6_ARB = 0x882B
 
-pattern GL_DRAW_BUFFER7_ARB = 0x882C :: GLenum
+pattern GL_DRAW_BUFFER7_ARB = 0x882C
 
-pattern GL_DRAW_BUFFER8_ARB = 0x882D :: GLenum
+pattern GL_DRAW_BUFFER8_ARB = 0x882D
 
-pattern GL_DRAW_BUFFER9_ARB = 0x882E :: GLenum
+pattern GL_DRAW_BUFFER9_ARB = 0x882E
 
-pattern GL_MAX_DRAW_BUFFERS_ARB = 0x8824 :: GLenum
+pattern GL_MAX_DRAW_BUFFERS_ARB = 0x8824
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/FragmentProgram.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/FragmentProgram.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/FragmentProgram.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/FragmentProgram.hs
@@ -107,33 +107,32 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
-import Graphics.GL.Raw.Types
 
 gl_ARB_fragment_program :: Bool
 gl_ARB_fragment_program = member "GL_ARB_fragment_program" extensions
 
-pattern GL_FRAGMENT_PROGRAM_ARB = 0x8804 :: GLenum
+pattern GL_FRAGMENT_PROGRAM_ARB = 0x8804
 
-pattern GL_MAX_PROGRAM_ALU_INSTRUCTIONS_ARB = 0x880B :: GLenum
+pattern GL_MAX_PROGRAM_ALU_INSTRUCTIONS_ARB = 0x880B
 
-pattern GL_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB = 0x880E :: GLenum
+pattern GL_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB = 0x880E
 
-pattern GL_MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB = 0x8810 :: GLenum
+pattern GL_MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB = 0x8810
 
-pattern GL_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB = 0x880F :: GLenum
+pattern GL_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB = 0x880F
 
-pattern GL_MAX_PROGRAM_TEX_INDIRECTIONS_ARB = 0x880D :: GLenum
+pattern GL_MAX_PROGRAM_TEX_INDIRECTIONS_ARB = 0x880D
 
-pattern GL_MAX_PROGRAM_TEX_INSTRUCTIONS_ARB = 0x880C :: GLenum
+pattern GL_MAX_PROGRAM_TEX_INSTRUCTIONS_ARB = 0x880C
 
-pattern GL_PROGRAM_ALU_INSTRUCTIONS_ARB = 0x8805 :: GLenum
+pattern GL_PROGRAM_ALU_INSTRUCTIONS_ARB = 0x8805
 
-pattern GL_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB = 0x8808 :: GLenum
+pattern GL_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB = 0x8808
 
-pattern GL_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB = 0x880A :: GLenum
+pattern GL_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB = 0x880A
 
-pattern GL_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB = 0x8809 :: GLenum
+pattern GL_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB = 0x8809
 
-pattern GL_PROGRAM_TEX_INDIRECTIONS_ARB = 0x8807 :: GLenum
+pattern GL_PROGRAM_TEX_INDIRECTIONS_ARB = 0x8807
 
-pattern GL_PROGRAM_TEX_INSTRUCTIONS_ARB = 0x8806 :: GLenum
+pattern GL_PROGRAM_TEX_INSTRUCTIONS_ARB = 0x8806
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/FragmentShader.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/FragmentShader.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/FragmentShader.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/FragmentShader.hs
@@ -12,13 +12,12 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_ARB_fragment_shader :: Bool
 gl_ARB_fragment_shader = member "GL_ARB_fragment_shader" extensions
 
-pattern GL_FRAGMENT_SHADER_ARB = 0x8B30 :: GLenum
+pattern GL_FRAGMENT_SHADER_ARB = 0x8B30
 
-pattern GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB = 0x8B8B :: GLenum
+pattern GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB = 0x8B8B
 
-pattern GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB = 0x8B49 :: GLenum
+pattern GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB = 0x8B49
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/GeometryShader4.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/GeometryShader4.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/GeometryShader4.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/GeometryShader4.hs
@@ -75,38 +75,38 @@
 
 {-# NOINLINE glProgramParameteriARBFunPtr #-}
 
-pattern GL_FRAMEBUFFER_ATTACHMENT_LAYERED_ARB = 0x8DA7 :: GLenum
+pattern GL_FRAMEBUFFER_ATTACHMENT_LAYERED_ARB = 0x8DA7
 
-pattern GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_ARB = 0x8DA9 :: GLenum
+pattern GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_ARB = 0x8DA9
 
-pattern GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_ARB = 0x8DA8 :: GLenum
+pattern GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_ARB = 0x8DA8
 
-pattern GL_GEOMETRY_INPUT_TYPE_ARB = 0x8DDB :: GLenum
+pattern GL_GEOMETRY_INPUT_TYPE_ARB = 0x8DDB
 
-pattern GL_GEOMETRY_OUTPUT_TYPE_ARB = 0x8DDC :: GLenum
+pattern GL_GEOMETRY_OUTPUT_TYPE_ARB = 0x8DDC
 
-pattern GL_GEOMETRY_SHADER_ARB = 0x8DD9 :: GLenum
+pattern GL_GEOMETRY_SHADER_ARB = 0x8DD9
 
-pattern GL_GEOMETRY_VERTICES_OUT_ARB = 0x8DDA :: GLenum
+pattern GL_GEOMETRY_VERTICES_OUT_ARB = 0x8DDA
 
-pattern GL_LINES_ADJACENCY_ARB = 0x000A :: GLenum
+pattern GL_LINES_ADJACENCY_ARB = 0x000A
 
-pattern GL_LINE_STRIP_ADJACENCY_ARB = 0x000B :: GLenum
+pattern GL_LINE_STRIP_ADJACENCY_ARB = 0x000B
 
-pattern GL_MAX_GEOMETRY_OUTPUT_VERTICES_ARB = 0x8DE0 :: GLenum
+pattern GL_MAX_GEOMETRY_OUTPUT_VERTICES_ARB = 0x8DE0
 
-pattern GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_ARB = 0x8C29 :: GLenum
+pattern GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_ARB = 0x8C29
 
-pattern GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_ARB = 0x8DE1 :: GLenum
+pattern GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_ARB = 0x8DE1
 
-pattern GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_ARB = 0x8DDF :: GLenum
+pattern GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_ARB = 0x8DDF
 
-pattern GL_MAX_GEOMETRY_VARYING_COMPONENTS_ARB = 0x8DDD :: GLenum
+pattern GL_MAX_GEOMETRY_VARYING_COMPONENTS_ARB = 0x8DDD
 
-pattern GL_MAX_VERTEX_VARYING_COMPONENTS_ARB = 0x8DDE :: GLenum
+pattern GL_MAX_VERTEX_VARYING_COMPONENTS_ARB = 0x8DDE
 
-pattern GL_PROGRAM_POINT_SIZE_ARB = 0x8642 :: GLenum
+pattern GL_PROGRAM_POINT_SIZE_ARB = 0x8642
 
-pattern GL_TRIANGLES_ADJACENCY_ARB = 0x000C :: GLenum
+pattern GL_TRIANGLES_ADJACENCY_ARB = 0x000C
 
-pattern GL_TRIANGLE_STRIP_ADJACENCY_ARB = 0x000D :: GLenum
+pattern GL_TRIANGLE_STRIP_ADJACENCY_ARB = 0x000D
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/HalfFloatPixel.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/HalfFloatPixel.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/HalfFloatPixel.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/HalfFloatPixel.hs
@@ -10,9 +10,8 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_ARB_half_float_pixel :: Bool
 gl_ARB_half_float_pixel = member "GL_ARB_half_float_pixel" extensions
 
-pattern GL_HALF_FLOAT_ARB = 0x140B :: GLenum
+pattern GL_HALF_FLOAT_ARB = 0x140B
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/Imaging.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/Imaging.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/Imaging.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/Imaging.hs
@@ -384,130 +384,130 @@
 
 {-# NOINLINE glSeparableFilter2DFunPtr #-}
 
-pattern GL_COLOR_MATRIX = 0x80B1 :: GLenum
+pattern GL_COLOR_MATRIX = 0x80B1
 
-pattern GL_COLOR_MATRIX_STACK_DEPTH = 0x80B2 :: GLenum
+pattern GL_COLOR_MATRIX_STACK_DEPTH = 0x80B2
 
-pattern GL_COLOR_TABLE = 0x80D0 :: GLenum
+pattern GL_COLOR_TABLE = 0x80D0
 
-pattern GL_COLOR_TABLE_ALPHA_SIZE = 0x80DD :: GLenum
+pattern GL_COLOR_TABLE_ALPHA_SIZE = 0x80DD
 
-pattern GL_COLOR_TABLE_BIAS = 0x80D7 :: GLenum
+pattern GL_COLOR_TABLE_BIAS = 0x80D7
 
-pattern GL_COLOR_TABLE_BLUE_SIZE = 0x80DC :: GLenum
+pattern GL_COLOR_TABLE_BLUE_SIZE = 0x80DC
 
-pattern GL_COLOR_TABLE_FORMAT = 0x80D8 :: GLenum
+pattern GL_COLOR_TABLE_FORMAT = 0x80D8
 
-pattern GL_COLOR_TABLE_GREEN_SIZE = 0x80DB :: GLenum
+pattern GL_COLOR_TABLE_GREEN_SIZE = 0x80DB
 
-pattern GL_COLOR_TABLE_INTENSITY_SIZE = 0x80DF :: GLenum
+pattern GL_COLOR_TABLE_INTENSITY_SIZE = 0x80DF
 
-pattern GL_COLOR_TABLE_LUMINANCE_SIZE = 0x80DE :: GLenum
+pattern GL_COLOR_TABLE_LUMINANCE_SIZE = 0x80DE
 
-pattern GL_COLOR_TABLE_RED_SIZE = 0x80DA :: GLenum
+pattern GL_COLOR_TABLE_RED_SIZE = 0x80DA
 
-pattern GL_COLOR_TABLE_SCALE = 0x80D6 :: GLenum
+pattern GL_COLOR_TABLE_SCALE = 0x80D6
 
-pattern GL_COLOR_TABLE_WIDTH = 0x80D9 :: GLenum
+pattern GL_COLOR_TABLE_WIDTH = 0x80D9
 
-pattern GL_CONSTANT_BORDER = 0x8151 :: GLenum
+pattern GL_CONSTANT_BORDER = 0x8151
 
-pattern GL_CONVOLUTION_1D = 0x8010 :: GLenum
+pattern GL_CONVOLUTION_1D = 0x8010
 
-pattern GL_CONVOLUTION_2D = 0x8011 :: GLenum
+pattern GL_CONVOLUTION_2D = 0x8011
 
-pattern GL_CONVOLUTION_BORDER_COLOR = 0x8154 :: GLenum
+pattern GL_CONVOLUTION_BORDER_COLOR = 0x8154
 
-pattern GL_CONVOLUTION_BORDER_MODE = 0x8013 :: GLenum
+pattern GL_CONVOLUTION_BORDER_MODE = 0x8013
 
-pattern GL_CONVOLUTION_FILTER_BIAS = 0x8015 :: GLenum
+pattern GL_CONVOLUTION_FILTER_BIAS = 0x8015
 
-pattern GL_CONVOLUTION_FILTER_SCALE = 0x8014 :: GLenum
+pattern GL_CONVOLUTION_FILTER_SCALE = 0x8014
 
-pattern GL_CONVOLUTION_FORMAT = 0x8017 :: GLenum
+pattern GL_CONVOLUTION_FORMAT = 0x8017
 
-pattern GL_CONVOLUTION_HEIGHT = 0x8019 :: GLenum
+pattern GL_CONVOLUTION_HEIGHT = 0x8019
 
-pattern GL_CONVOLUTION_WIDTH = 0x8018 :: GLenum
+pattern GL_CONVOLUTION_WIDTH = 0x8018
 
-pattern GL_HISTOGRAM = 0x8024 :: GLenum
+pattern GL_HISTOGRAM = 0x8024
 
-pattern GL_HISTOGRAM_ALPHA_SIZE = 0x802B :: GLenum
+pattern GL_HISTOGRAM_ALPHA_SIZE = 0x802B
 
-pattern GL_HISTOGRAM_BLUE_SIZE = 0x802A :: GLenum
+pattern GL_HISTOGRAM_BLUE_SIZE = 0x802A
 
-pattern GL_HISTOGRAM_FORMAT = 0x8027 :: GLenum
+pattern GL_HISTOGRAM_FORMAT = 0x8027
 
-pattern GL_HISTOGRAM_GREEN_SIZE = 0x8029 :: GLenum
+pattern GL_HISTOGRAM_GREEN_SIZE = 0x8029
 
-pattern GL_HISTOGRAM_LUMINANCE_SIZE = 0x802C :: GLenum
+pattern GL_HISTOGRAM_LUMINANCE_SIZE = 0x802C
 
-pattern GL_HISTOGRAM_RED_SIZE = 0x8028 :: GLenum
+pattern GL_HISTOGRAM_RED_SIZE = 0x8028
 
-pattern GL_HISTOGRAM_SINK = 0x802D :: GLenum
+pattern GL_HISTOGRAM_SINK = 0x802D
 
-pattern GL_HISTOGRAM_WIDTH = 0x8026 :: GLenum
+pattern GL_HISTOGRAM_WIDTH = 0x8026
 
-pattern GL_MAX_COLOR_MATRIX_STACK_DEPTH = 0x80B3 :: GLenum
+pattern GL_MAX_COLOR_MATRIX_STACK_DEPTH = 0x80B3
 
-pattern GL_MAX_CONVOLUTION_HEIGHT = 0x801B :: GLenum
+pattern GL_MAX_CONVOLUTION_HEIGHT = 0x801B
 
-pattern GL_MAX_CONVOLUTION_WIDTH = 0x801A :: GLenum
+pattern GL_MAX_CONVOLUTION_WIDTH = 0x801A
 
-pattern GL_MINMAX = 0x802E :: GLenum
+pattern GL_MINMAX = 0x802E
 
-pattern GL_MINMAX_FORMAT = 0x802F :: GLenum
+pattern GL_MINMAX_FORMAT = 0x802F
 
-pattern GL_MINMAX_SINK = 0x8030 :: GLenum
+pattern GL_MINMAX_SINK = 0x8030
 
-pattern GL_POST_COLOR_MATRIX_ALPHA_BIAS = 0x80BB :: GLenum
+pattern GL_POST_COLOR_MATRIX_ALPHA_BIAS = 0x80BB
 
-pattern GL_POST_COLOR_MATRIX_ALPHA_SCALE = 0x80B7 :: GLenum
+pattern GL_POST_COLOR_MATRIX_ALPHA_SCALE = 0x80B7
 
-pattern GL_POST_COLOR_MATRIX_BLUE_BIAS = 0x80BA :: GLenum
+pattern GL_POST_COLOR_MATRIX_BLUE_BIAS = 0x80BA
 
-pattern GL_POST_COLOR_MATRIX_BLUE_SCALE = 0x80B6 :: GLenum
+pattern GL_POST_COLOR_MATRIX_BLUE_SCALE = 0x80B6
 
-pattern GL_POST_COLOR_MATRIX_COLOR_TABLE = 0x80D2 :: GLenum
+pattern GL_POST_COLOR_MATRIX_COLOR_TABLE = 0x80D2
 
-pattern GL_POST_COLOR_MATRIX_GREEN_BIAS = 0x80B9 :: GLenum
+pattern GL_POST_COLOR_MATRIX_GREEN_BIAS = 0x80B9
 
-pattern GL_POST_COLOR_MATRIX_GREEN_SCALE = 0x80B5 :: GLenum
+pattern GL_POST_COLOR_MATRIX_GREEN_SCALE = 0x80B5
 
-pattern GL_POST_COLOR_MATRIX_RED_BIAS = 0x80B8 :: GLenum
+pattern GL_POST_COLOR_MATRIX_RED_BIAS = 0x80B8
 
-pattern GL_POST_COLOR_MATRIX_RED_SCALE = 0x80B4 :: GLenum
+pattern GL_POST_COLOR_MATRIX_RED_SCALE = 0x80B4
 
-pattern GL_POST_CONVOLUTION_ALPHA_BIAS = 0x8023 :: GLenum
+pattern GL_POST_CONVOLUTION_ALPHA_BIAS = 0x8023
 
-pattern GL_POST_CONVOLUTION_ALPHA_SCALE = 0x801F :: GLenum
+pattern GL_POST_CONVOLUTION_ALPHA_SCALE = 0x801F
 
-pattern GL_POST_CONVOLUTION_BLUE_BIAS = 0x8022 :: GLenum
+pattern GL_POST_CONVOLUTION_BLUE_BIAS = 0x8022
 
-pattern GL_POST_CONVOLUTION_BLUE_SCALE = 0x801E :: GLenum
+pattern GL_POST_CONVOLUTION_BLUE_SCALE = 0x801E
 
-pattern GL_POST_CONVOLUTION_COLOR_TABLE = 0x80D1 :: GLenum
+pattern GL_POST_CONVOLUTION_COLOR_TABLE = 0x80D1
 
-pattern GL_POST_CONVOLUTION_GREEN_BIAS = 0x8021 :: GLenum
+pattern GL_POST_CONVOLUTION_GREEN_BIAS = 0x8021
 
-pattern GL_POST_CONVOLUTION_GREEN_SCALE = 0x801D :: GLenum
+pattern GL_POST_CONVOLUTION_GREEN_SCALE = 0x801D
 
-pattern GL_POST_CONVOLUTION_RED_BIAS = 0x8020 :: GLenum
+pattern GL_POST_CONVOLUTION_RED_BIAS = 0x8020
 
-pattern GL_POST_CONVOLUTION_RED_SCALE = 0x801C :: GLenum
+pattern GL_POST_CONVOLUTION_RED_SCALE = 0x801C
 
-pattern GL_PROXY_COLOR_TABLE = 0x80D3 :: GLenum
+pattern GL_PROXY_COLOR_TABLE = 0x80D3
 
-pattern GL_PROXY_HISTOGRAM = 0x8025 :: GLenum
+pattern GL_PROXY_HISTOGRAM = 0x8025
 
-pattern GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE = 0x80D5 :: GLenum
+pattern GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE = 0x80D5
 
-pattern GL_PROXY_POST_CONVOLUTION_COLOR_TABLE = 0x80D4 :: GLenum
+pattern GL_PROXY_POST_CONVOLUTION_COLOR_TABLE = 0x80D4
 
-pattern GL_REDUCE = 0x8016 :: GLenum
+pattern GL_REDUCE = 0x8016
 
-pattern GL_REPLICATE_BORDER = 0x8153 :: GLenum
+pattern GL_REPLICATE_BORDER = 0x8153
 
-pattern GL_SEPARABLE_2D = 0x8012 :: GLenum
+pattern GL_SEPARABLE_2D = 0x8012
 
-pattern GL_TABLE_TOO_LARGE = 0x8031 :: GLenum
+pattern GL_TABLE_TOO_LARGE = 0x8031
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/IndirectParameters.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/IndirectParameters.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/IndirectParameters.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/IndirectParameters.hs
@@ -38,6 +38,6 @@
 
 {-# NOINLINE glMultiDrawElementsIndirectCountARBFunPtr #-}
 
-pattern GL_PARAMETER_BUFFER_ARB = 0x80EE :: GLenum
+pattern GL_PARAMETER_BUFFER_ARB = 0x80EE
 
-pattern GL_PARAMETER_BUFFER_BINDING_ARB = 0x80EF :: GLenum
+pattern GL_PARAMETER_BUFFER_BINDING_ARB = 0x80EF
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/InstancedArrays.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/InstancedArrays.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/InstancedArrays.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/InstancedArrays.hs
@@ -28,4 +28,4 @@
 
 {-# NOINLINE glVertexAttribDivisorARBFunPtr #-}
 
-pattern GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ARB = 0x88FE :: GLenum
+pattern GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ARB = 0x88FE
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/InternalformatQuery2.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/InternalformatQuery2.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/InternalformatQuery2.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/InternalformatQuery2.hs
@@ -126,9 +126,8 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
-import Graphics.GL.Raw.Types
 
 gl_ARB_internalformat_query2 :: Bool
 gl_ARB_internalformat_query2 = member "GL_ARB_internalformat_query2" extensions
 
-pattern GL_SRGB_DECODE_ARB = 0x8299 :: GLenum
+pattern GL_SRGB_DECODE_ARB = 0x8299
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/MatrixPalette.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/MatrixPalette.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/MatrixPalette.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/MatrixPalette.hs
@@ -73,22 +73,22 @@
 
 {-# NOINLINE glMatrixIndexusvARBFunPtr #-}
 
-pattern GL_CURRENT_MATRIX_INDEX_ARB = 0x8845 :: GLenum
+pattern GL_CURRENT_MATRIX_INDEX_ARB = 0x8845
 
-pattern GL_CURRENT_PALETTE_MATRIX_ARB = 0x8843 :: GLenum
+pattern GL_CURRENT_PALETTE_MATRIX_ARB = 0x8843
 
-pattern GL_MATRIX_INDEX_ARRAY_ARB = 0x8844 :: GLenum
+pattern GL_MATRIX_INDEX_ARRAY_ARB = 0x8844
 
-pattern GL_MATRIX_INDEX_ARRAY_POINTER_ARB = 0x8849 :: GLenum
+pattern GL_MATRIX_INDEX_ARRAY_POINTER_ARB = 0x8849
 
-pattern GL_MATRIX_INDEX_ARRAY_SIZE_ARB = 0x8846 :: GLenum
+pattern GL_MATRIX_INDEX_ARRAY_SIZE_ARB = 0x8846
 
-pattern GL_MATRIX_INDEX_ARRAY_STRIDE_ARB = 0x8848 :: GLenum
+pattern GL_MATRIX_INDEX_ARRAY_STRIDE_ARB = 0x8848
 
-pattern GL_MATRIX_INDEX_ARRAY_TYPE_ARB = 0x8847 :: GLenum
+pattern GL_MATRIX_INDEX_ARRAY_TYPE_ARB = 0x8847
 
-pattern GL_MATRIX_PALETTE_ARB = 0x8840 :: GLenum
+pattern GL_MATRIX_PALETTE_ARB = 0x8840
 
-pattern GL_MAX_MATRIX_PALETTE_STACK_DEPTH_ARB = 0x8841 :: GLenum
+pattern GL_MAX_MATRIX_PALETTE_STACK_DEPTH_ARB = 0x8841
 
-pattern GL_MAX_PALETTE_MATRICES_ARB = 0x8842 :: GLenum
+pattern GL_MAX_PALETTE_MATRICES_ARB = 0x8842
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/Multisample.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/Multisample.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/Multisample.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/Multisample.hs
@@ -37,18 +37,18 @@
 
 {-# NOINLINE glSampleCoverageARBFunPtr #-}
 
-pattern GL_MULTISAMPLE_ARB = 0x809D :: GLenum
+pattern GL_MULTISAMPLE_ARB = 0x809D
 
-pattern GL_MULTISAMPLE_BIT_ARB = 0x20000000 :: GLenum
+pattern GL_MULTISAMPLE_BIT_ARB = 0x20000000
 
-pattern GL_SAMPLE_ALPHA_TO_COVERAGE_ARB = 0x809E :: GLenum
+pattern GL_SAMPLE_ALPHA_TO_COVERAGE_ARB = 0x809E
 
-pattern GL_SAMPLE_ALPHA_TO_ONE_ARB = 0x809F :: GLenum
+pattern GL_SAMPLE_ALPHA_TO_ONE_ARB = 0x809F
 
-pattern GL_SAMPLE_BUFFERS_ARB = 0x80A8 :: GLenum
+pattern GL_SAMPLE_BUFFERS_ARB = 0x80A8
 
-pattern GL_SAMPLE_COVERAGE_ARB = 0x80A0 :: GLenum
+pattern GL_SAMPLE_COVERAGE_ARB = 0x80A0
 
-pattern GL_SAMPLE_COVERAGE_INVERT_ARB = 0x80AB :: GLenum
+pattern GL_SAMPLE_COVERAGE_INVERT_ARB = 0x80AB
 
-pattern GL_SAMPLE_COVERAGE_VALUE_ARB = 0x80AA :: GLenum
+pattern GL_SAMPLE_COVERAGE_VALUE_ARB = 0x80AA
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/Multitexture.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/Multitexture.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/Multitexture.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/Multitexture.hs
@@ -360,68 +360,68 @@
 
 {-# NOINLINE glMultiTexCoord4svARBFunPtr #-}
 
-pattern GL_ACTIVE_TEXTURE_ARB = 0x84E0 :: GLenum
+pattern GL_ACTIVE_TEXTURE_ARB = 0x84E0
 
-pattern GL_CLIENT_ACTIVE_TEXTURE_ARB = 0x84E1 :: GLenum
+pattern GL_CLIENT_ACTIVE_TEXTURE_ARB = 0x84E1
 
-pattern GL_MAX_TEXTURE_UNITS_ARB = 0x84E2 :: GLenum
+pattern GL_MAX_TEXTURE_UNITS_ARB = 0x84E2
 
-pattern GL_TEXTURE10_ARB = 0x84CA :: GLenum
+pattern GL_TEXTURE10_ARB = 0x84CA
 
-pattern GL_TEXTURE11_ARB = 0x84CB :: GLenum
+pattern GL_TEXTURE11_ARB = 0x84CB
 
-pattern GL_TEXTURE12_ARB = 0x84CC :: GLenum
+pattern GL_TEXTURE12_ARB = 0x84CC
 
-pattern GL_TEXTURE13_ARB = 0x84CD :: GLenum
+pattern GL_TEXTURE13_ARB = 0x84CD
 
-pattern GL_TEXTURE14_ARB = 0x84CE :: GLenum
+pattern GL_TEXTURE14_ARB = 0x84CE
 
-pattern GL_TEXTURE15_ARB = 0x84CF :: GLenum
+pattern GL_TEXTURE15_ARB = 0x84CF
 
-pattern GL_TEXTURE16_ARB = 0x84D0 :: GLenum
+pattern GL_TEXTURE16_ARB = 0x84D0
 
-pattern GL_TEXTURE17_ARB = 0x84D1 :: GLenum
+pattern GL_TEXTURE17_ARB = 0x84D1
 
-pattern GL_TEXTURE18_ARB = 0x84D2 :: GLenum
+pattern GL_TEXTURE18_ARB = 0x84D2
 
-pattern GL_TEXTURE19_ARB = 0x84D3 :: GLenum
+pattern GL_TEXTURE19_ARB = 0x84D3
 
-pattern GL_TEXTURE20_ARB = 0x84D4 :: GLenum
+pattern GL_TEXTURE20_ARB = 0x84D4
 
-pattern GL_TEXTURE21_ARB = 0x84D5 :: GLenum
+pattern GL_TEXTURE21_ARB = 0x84D5
 
-pattern GL_TEXTURE22_ARB = 0x84D6 :: GLenum
+pattern GL_TEXTURE22_ARB = 0x84D6
 
-pattern GL_TEXTURE23_ARB = 0x84D7 :: GLenum
+pattern GL_TEXTURE23_ARB = 0x84D7
 
-pattern GL_TEXTURE24_ARB = 0x84D8 :: GLenum
+pattern GL_TEXTURE24_ARB = 0x84D8
 
-pattern GL_TEXTURE25_ARB = 0x84D9 :: GLenum
+pattern GL_TEXTURE25_ARB = 0x84D9
 
-pattern GL_TEXTURE26_ARB = 0x84DA :: GLenum
+pattern GL_TEXTURE26_ARB = 0x84DA
 
-pattern GL_TEXTURE27_ARB = 0x84DB :: GLenum
+pattern GL_TEXTURE27_ARB = 0x84DB
 
-pattern GL_TEXTURE28_ARB = 0x84DC :: GLenum
+pattern GL_TEXTURE28_ARB = 0x84DC
 
-pattern GL_TEXTURE29_ARB = 0x84DD :: GLenum
+pattern GL_TEXTURE29_ARB = 0x84DD
 
-pattern GL_TEXTURE2_ARB = 0x84C2 :: GLenum
+pattern GL_TEXTURE2_ARB = 0x84C2
 
-pattern GL_TEXTURE30_ARB = 0x84DE :: GLenum
+pattern GL_TEXTURE30_ARB = 0x84DE
 
-pattern GL_TEXTURE31_ARB = 0x84DF :: GLenum
+pattern GL_TEXTURE31_ARB = 0x84DF
 
-pattern GL_TEXTURE3_ARB = 0x84C3 :: GLenum
+pattern GL_TEXTURE3_ARB = 0x84C3
 
-pattern GL_TEXTURE4_ARB = 0x84C4 :: GLenum
+pattern GL_TEXTURE4_ARB = 0x84C4
 
-pattern GL_TEXTURE5_ARB = 0x84C5 :: GLenum
+pattern GL_TEXTURE5_ARB = 0x84C5
 
-pattern GL_TEXTURE6_ARB = 0x84C6 :: GLenum
+pattern GL_TEXTURE6_ARB = 0x84C6
 
-pattern GL_TEXTURE7_ARB = 0x84C7 :: GLenum
+pattern GL_TEXTURE7_ARB = 0x84C7
 
-pattern GL_TEXTURE8_ARB = 0x84C8 :: GLenum
+pattern GL_TEXTURE8_ARB = 0x84C8
 
-pattern GL_TEXTURE9_ARB = 0x84C9 :: GLenum
+pattern GL_TEXTURE9_ARB = 0x84C9
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/OcclusionQuery.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/OcclusionQuery.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/OcclusionQuery.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/OcclusionQuery.hs
@@ -95,12 +95,12 @@
 
 {-# NOINLINE glIsQueryARBFunPtr #-}
 
-pattern GL_CURRENT_QUERY_ARB = 0x8865 :: GLenum
+pattern GL_CURRENT_QUERY_ARB = 0x8865
 
-pattern GL_QUERY_COUNTER_BITS_ARB = 0x8864 :: GLenum
+pattern GL_QUERY_COUNTER_BITS_ARB = 0x8864
 
-pattern GL_QUERY_RESULT_ARB = 0x8866 :: GLenum
+pattern GL_QUERY_RESULT_ARB = 0x8866
 
-pattern GL_QUERY_RESULT_AVAILABLE_ARB = 0x8867 :: GLenum
+pattern GL_QUERY_RESULT_AVAILABLE_ARB = 0x8867
 
-pattern GL_SAMPLES_PASSED_ARB = 0x8914 :: GLenum
+pattern GL_SAMPLES_PASSED_ARB = 0x8914
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/PipelineStatisticsQuery.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/PipelineStatisticsQuery.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/PipelineStatisticsQuery.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/PipelineStatisticsQuery.hs
@@ -21,27 +21,26 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
-import Graphics.GL.Raw.Types
 
 gl_ARB_pipeline_statistics_query :: Bool
 gl_ARB_pipeline_statistics_query = member "GL_ARB_pipeline_statistics_query" extensions
 
-pattern GL_CLIPPING_INPUT_PRIMITIVES_ARB = 0x82F6 :: GLenum
+pattern GL_CLIPPING_INPUT_PRIMITIVES_ARB = 0x82F6
 
-pattern GL_CLIPPING_OUTPUT_PRIMITIVES_ARB = 0x82F7 :: GLenum
+pattern GL_CLIPPING_OUTPUT_PRIMITIVES_ARB = 0x82F7
 
-pattern GL_COMPUTE_SHADER_INVOCATIONS_ARB = 0x82F5 :: GLenum
+pattern GL_COMPUTE_SHADER_INVOCATIONS_ARB = 0x82F5
 
-pattern GL_FRAGMENT_SHADER_INVOCATIONS_ARB = 0x82F4 :: GLenum
+pattern GL_FRAGMENT_SHADER_INVOCATIONS_ARB = 0x82F4
 
-pattern GL_GEOMETRY_SHADER_PRIMITIVES_EMITTED_ARB = 0x82F3 :: GLenum
+pattern GL_GEOMETRY_SHADER_PRIMITIVES_EMITTED_ARB = 0x82F3
 
-pattern GL_PRIMITIVES_SUBMITTED_ARB = 0x82EF :: GLenum
+pattern GL_PRIMITIVES_SUBMITTED_ARB = 0x82EF
 
-pattern GL_TESS_CONTROL_SHADER_PATCHES_ARB = 0x82F1 :: GLenum
+pattern GL_TESS_CONTROL_SHADER_PATCHES_ARB = 0x82F1
 
-pattern GL_TESS_EVALUATION_SHADER_INVOCATIONS_ARB = 0x82F2 :: GLenum
+pattern GL_TESS_EVALUATION_SHADER_INVOCATIONS_ARB = 0x82F2
 
-pattern GL_VERTEX_SHADER_INVOCATIONS_ARB = 0x82F0 :: GLenum
+pattern GL_VERTEX_SHADER_INVOCATIONS_ARB = 0x82F0
 
-pattern GL_VERTICES_SUBMITTED_ARB = 0x82EE :: GLenum
+pattern GL_VERTICES_SUBMITTED_ARB = 0x82EE
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/PixelBufferObject.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/PixelBufferObject.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/PixelBufferObject.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/PixelBufferObject.hs
@@ -13,15 +13,14 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_ARB_pixel_buffer_object :: Bool
 gl_ARB_pixel_buffer_object = member "GL_ARB_pixel_buffer_object" extensions
 
-pattern GL_PIXEL_PACK_BUFFER_ARB = 0x88EB :: GLenum
+pattern GL_PIXEL_PACK_BUFFER_ARB = 0x88EB
 
-pattern GL_PIXEL_PACK_BUFFER_BINDING_ARB = 0x88ED :: GLenum
+pattern GL_PIXEL_PACK_BUFFER_BINDING_ARB = 0x88ED
 
-pattern GL_PIXEL_UNPACK_BUFFER_ARB = 0x88EC :: GLenum
+pattern GL_PIXEL_UNPACK_BUFFER_ARB = 0x88EC
 
-pattern GL_PIXEL_UNPACK_BUFFER_BINDING_ARB = 0x88EF :: GLenum
+pattern GL_PIXEL_UNPACK_BUFFER_BINDING_ARB = 0x88EF
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/PointParameters.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/PointParameters.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/PointParameters.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/PointParameters.hs
@@ -40,10 +40,10 @@
 
 {-# NOINLINE glPointParameterfvARBFunPtr #-}
 
-pattern GL_POINT_DISTANCE_ATTENUATION_ARB = 0x8129 :: GLenum
+pattern GL_POINT_DISTANCE_ATTENUATION_ARB = 0x8129
 
-pattern GL_POINT_FADE_THRESHOLD_SIZE_ARB = 0x8128 :: GLenum
+pattern GL_POINT_FADE_THRESHOLD_SIZE_ARB = 0x8128
 
-pattern GL_POINT_SIZE_MAX_ARB = 0x8127 :: GLenum
+pattern GL_POINT_SIZE_MAX_ARB = 0x8127
 
-pattern GL_POINT_SIZE_MIN_ARB = 0x8126 :: GLenum
+pattern GL_POINT_SIZE_MIN_ARB = 0x8126
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/PointSprite.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/PointSprite.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/PointSprite.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/PointSprite.hs
@@ -11,11 +11,10 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_ARB_point_sprite :: Bool
 gl_ARB_point_sprite = member "GL_ARB_point_sprite" extensions
 
-pattern GL_COORD_REPLACE_ARB = 0x8862 :: GLenum
+pattern GL_COORD_REPLACE_ARB = 0x8862
 
-pattern GL_POINT_SPRITE_ARB = 0x8861 :: GLenum
+pattern GL_POINT_SPRITE_ARB = 0x8861
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/Robustness.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/Robustness.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/Robustness.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/Robustness.hs
@@ -207,16 +207,16 @@
 
 {-# NOINLINE glReadnPixelsARBFunPtr #-}
 
-pattern GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT_ARB = 0x00000004 :: GLenum
+pattern GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT_ARB = 0x00000004
 
-pattern GL_GUILTY_CONTEXT_RESET_ARB = 0x8253 :: GLenum
+pattern GL_GUILTY_CONTEXT_RESET_ARB = 0x8253
 
-pattern GL_INNOCENT_CONTEXT_RESET_ARB = 0x8254 :: GLenum
+pattern GL_INNOCENT_CONTEXT_RESET_ARB = 0x8254
 
-pattern GL_LOSE_CONTEXT_ON_RESET_ARB = 0x8252 :: GLenum
+pattern GL_LOSE_CONTEXT_ON_RESET_ARB = 0x8252
 
-pattern GL_NO_RESET_NOTIFICATION_ARB = 0x8261 :: GLenum
+pattern GL_NO_RESET_NOTIFICATION_ARB = 0x8261
 
-pattern GL_RESET_NOTIFICATION_STRATEGY_ARB = 0x8256 :: GLenum
+pattern GL_RESET_NOTIFICATION_STRATEGY_ARB = 0x8256
 
-pattern GL_UNKNOWN_CONTEXT_RESET_ARB = 0x8255 :: GLenum
+pattern GL_UNKNOWN_CONTEXT_RESET_ARB = 0x8255
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/SampleShading.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/SampleShading.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/SampleShading.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/SampleShading.hs
@@ -29,6 +29,6 @@
 
 {-# NOINLINE glMinSampleShadingARBFunPtr #-}
 
-pattern GL_MIN_SAMPLE_SHADING_VALUE_ARB = 0x8C37 :: GLenum
+pattern GL_MIN_SAMPLE_SHADING_VALUE_ARB = 0x8C37
 
-pattern GL_SAMPLE_SHADING_ARB = 0x8C36 :: GLenum
+pattern GL_SAMPLE_SHADING_ARB = 0x8C36
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ShaderObjects.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ShaderObjects.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ShaderObjects.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ShaderObjects.hs
@@ -404,58 +404,58 @@
 
 {-# NOINLINE glValidateProgramARBFunPtr #-}
 
-pattern GL_BOOL_ARB = 0x8B56 :: GLenum
+pattern GL_BOOL_ARB = 0x8B56
 
-pattern GL_BOOL_VEC2_ARB = 0x8B57 :: GLenum
+pattern GL_BOOL_VEC2_ARB = 0x8B57
 
-pattern GL_BOOL_VEC3_ARB = 0x8B58 :: GLenum
+pattern GL_BOOL_VEC3_ARB = 0x8B58
 
-pattern GL_BOOL_VEC4_ARB = 0x8B59 :: GLenum
+pattern GL_BOOL_VEC4_ARB = 0x8B59
 
-pattern GL_INT_VEC2_ARB = 0x8B53 :: GLenum
+pattern GL_INT_VEC2_ARB = 0x8B53
 
-pattern GL_INT_VEC3_ARB = 0x8B54 :: GLenum
+pattern GL_INT_VEC3_ARB = 0x8B54
 
-pattern GL_INT_VEC4_ARB = 0x8B55 :: GLenum
+pattern GL_INT_VEC4_ARB = 0x8B55
 
-pattern GL_OBJECT_ACTIVE_UNIFORMS_ARB = 0x8B86 :: GLenum
+pattern GL_OBJECT_ACTIVE_UNIFORMS_ARB = 0x8B86
 
-pattern GL_OBJECT_ACTIVE_UNIFORM_MAX_LENGTH_ARB = 0x8B87 :: GLenum
+pattern GL_OBJECT_ACTIVE_UNIFORM_MAX_LENGTH_ARB = 0x8B87
 
-pattern GL_OBJECT_ATTACHED_OBJECTS_ARB = 0x8B85 :: GLenum
+pattern GL_OBJECT_ATTACHED_OBJECTS_ARB = 0x8B85
 
-pattern GL_OBJECT_COMPILE_STATUS_ARB = 0x8B81 :: GLenum
+pattern GL_OBJECT_COMPILE_STATUS_ARB = 0x8B81
 
-pattern GL_OBJECT_DELETE_STATUS_ARB = 0x8B80 :: GLenum
+pattern GL_OBJECT_DELETE_STATUS_ARB = 0x8B80
 
-pattern GL_OBJECT_INFO_LOG_LENGTH_ARB = 0x8B84 :: GLenum
+pattern GL_OBJECT_INFO_LOG_LENGTH_ARB = 0x8B84
 
-pattern GL_OBJECT_LINK_STATUS_ARB = 0x8B82 :: GLenum
+pattern GL_OBJECT_LINK_STATUS_ARB = 0x8B82
 
-pattern GL_OBJECT_SHADER_SOURCE_LENGTH_ARB = 0x8B88 :: GLenum
+pattern GL_OBJECT_SHADER_SOURCE_LENGTH_ARB = 0x8B88
 
-pattern GL_OBJECT_SUBTYPE_ARB = 0x8B4F :: GLenum
+pattern GL_OBJECT_SUBTYPE_ARB = 0x8B4F
 
-pattern GL_OBJECT_TYPE_ARB = 0x8B4E :: GLenum
+pattern GL_OBJECT_TYPE_ARB = 0x8B4E
 
-pattern GL_OBJECT_VALIDATE_STATUS_ARB = 0x8B83 :: GLenum
+pattern GL_OBJECT_VALIDATE_STATUS_ARB = 0x8B83
 
-pattern GL_PROGRAM_OBJECT_ARB = 0x8B40 :: GLenum
+pattern GL_PROGRAM_OBJECT_ARB = 0x8B40
 
-pattern GL_SAMPLER_1D_ARB = 0x8B5D :: GLenum
+pattern GL_SAMPLER_1D_ARB = 0x8B5D
 
-pattern GL_SAMPLER_1D_SHADOW_ARB = 0x8B61 :: GLenum
+pattern GL_SAMPLER_1D_SHADOW_ARB = 0x8B61
 
-pattern GL_SAMPLER_2D_ARB = 0x8B5E :: GLenum
+pattern GL_SAMPLER_2D_ARB = 0x8B5E
 
-pattern GL_SAMPLER_2D_RECT_ARB = 0x8B63 :: GLenum
+pattern GL_SAMPLER_2D_RECT_ARB = 0x8B63
 
-pattern GL_SAMPLER_2D_RECT_SHADOW_ARB = 0x8B64 :: GLenum
+pattern GL_SAMPLER_2D_RECT_SHADOW_ARB = 0x8B64
 
-pattern GL_SAMPLER_2D_SHADOW_ARB = 0x8B62 :: GLenum
+pattern GL_SAMPLER_2D_SHADOW_ARB = 0x8B62
 
-pattern GL_SAMPLER_3D_ARB = 0x8B5F :: GLenum
+pattern GL_SAMPLER_3D_ARB = 0x8B5F
 
-pattern GL_SAMPLER_CUBE_ARB = 0x8B60 :: GLenum
+pattern GL_SAMPLER_CUBE_ARB = 0x8B60
 
-pattern GL_SHADER_OBJECT_ARB = 0x8B48 :: GLenum
+pattern GL_SHADER_OBJECT_ARB = 0x8B48
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ShadingLanguage100.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ShadingLanguage100.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ShadingLanguage100.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ShadingLanguage100.hs
@@ -10,9 +10,8 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_ARB_shading_language_100 :: Bool
 gl_ARB_shading_language_100 = member "GL_ARB_shading_language_100" extensions
 
-pattern GL_SHADING_LANGUAGE_VERSION_ARB = 0x8B8C :: GLenum
+pattern GL_SHADING_LANGUAGE_VERSION_ARB = 0x8B8C
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ShadingLanguageInclude.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ShadingLanguageInclude.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ShadingLanguageInclude.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ShadingLanguageInclude.hs
@@ -75,8 +75,8 @@
 
 {-# NOINLINE glNamedStringARBFunPtr #-}
 
-pattern GL_NAMED_STRING_LENGTH_ARB = 0x8DE9 :: GLenum
+pattern GL_NAMED_STRING_LENGTH_ARB = 0x8DE9
 
-pattern GL_NAMED_STRING_TYPE_ARB = 0x8DEA :: GLenum
+pattern GL_NAMED_STRING_TYPE_ARB = 0x8DEA
 
-pattern GL_SHADER_INCLUDE_ARB = 0x8DAE :: GLenum
+pattern GL_SHADER_INCLUDE_ARB = 0x8DAE
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/Shadow.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/Shadow.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/Shadow.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/Shadow.hs
@@ -12,13 +12,12 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_ARB_shadow :: Bool
 gl_ARB_shadow = member "GL_ARB_shadow" extensions
 
-pattern GL_COMPARE_R_TO_TEXTURE_ARB = 0x884E :: GLenum
+pattern GL_COMPARE_R_TO_TEXTURE_ARB = 0x884E
 
-pattern GL_TEXTURE_COMPARE_FUNC_ARB = 0x884D :: GLenum
+pattern GL_TEXTURE_COMPARE_FUNC_ARB = 0x884D
 
-pattern GL_TEXTURE_COMPARE_MODE_ARB = 0x884C :: GLenum
+pattern GL_TEXTURE_COMPARE_MODE_ARB = 0x884C
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ShadowAmbient.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ShadowAmbient.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ShadowAmbient.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/ShadowAmbient.hs
@@ -10,9 +10,8 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_ARB_shadow_ambient :: Bool
 gl_ARB_shadow_ambient = member "GL_ARB_shadow_ambient" extensions
 
-pattern GL_TEXTURE_COMPARE_FAIL_VALUE_ARB = 0x80BF :: GLenum
+pattern GL_TEXTURE_COMPARE_FAIL_VALUE_ARB = 0x80BF
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/SparseBuffer.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/SparseBuffer.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/SparseBuffer.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/SparseBuffer.hs
@@ -47,6 +47,6 @@
 
 {-# NOINLINE glNamedBufferPageCommitmentEXTFunPtr #-}
 
-pattern GL_SPARSE_BUFFER_PAGE_SIZE_ARB = 0x82F8 :: GLenum
+pattern GL_SPARSE_BUFFER_PAGE_SIZE_ARB = 0x82F8
 
-pattern GL_SPARSE_STORAGE_BIT_ARB = 0x0400 :: GLenum
+pattern GL_SPARSE_STORAGE_BIT_ARB = 0x0400
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/SparseTexture.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/SparseTexture.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/SparseTexture.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/SparseTexture.hs
@@ -38,24 +38,24 @@
 
 {-# NOINLINE glTexPageCommitmentARBFunPtr #-}
 
-pattern GL_MAX_SPARSE_3D_TEXTURE_SIZE_ARB = 0x9199 :: GLenum
+pattern GL_MAX_SPARSE_3D_TEXTURE_SIZE_ARB = 0x9199
 
-pattern GL_MAX_SPARSE_ARRAY_TEXTURE_LAYERS_ARB = 0x919A :: GLenum
+pattern GL_MAX_SPARSE_ARRAY_TEXTURE_LAYERS_ARB = 0x919A
 
-pattern GL_MAX_SPARSE_TEXTURE_SIZE_ARB = 0x9198 :: GLenum
+pattern GL_MAX_SPARSE_TEXTURE_SIZE_ARB = 0x9198
 
-pattern GL_NUM_SPARSE_LEVELS_ARB = 0x91AA :: GLenum
+pattern GL_NUM_SPARSE_LEVELS_ARB = 0x91AA
 
-pattern GL_NUM_VIRTUAL_PAGE_SIZES_ARB = 0x91A8 :: GLenum
+pattern GL_NUM_VIRTUAL_PAGE_SIZES_ARB = 0x91A8
 
-pattern GL_SPARSE_TEXTURE_FULL_ARRAY_CUBE_MIPMAPS_ARB = 0x91A9 :: GLenum
+pattern GL_SPARSE_TEXTURE_FULL_ARRAY_CUBE_MIPMAPS_ARB = 0x91A9
 
-pattern GL_TEXTURE_SPARSE_ARB = 0x91A6 :: GLenum
+pattern GL_TEXTURE_SPARSE_ARB = 0x91A6
 
-pattern GL_VIRTUAL_PAGE_SIZE_INDEX_ARB = 0x91A7 :: GLenum
+pattern GL_VIRTUAL_PAGE_SIZE_INDEX_ARB = 0x91A7
 
-pattern GL_VIRTUAL_PAGE_SIZE_X_ARB = 0x9195 :: GLenum
+pattern GL_VIRTUAL_PAGE_SIZE_X_ARB = 0x9195
 
-pattern GL_VIRTUAL_PAGE_SIZE_Y_ARB = 0x9196 :: GLenum
+pattern GL_VIRTUAL_PAGE_SIZE_Y_ARB = 0x9196
 
-pattern GL_VIRTUAL_PAGE_SIZE_Z_ARB = 0x9197 :: GLenum
+pattern GL_VIRTUAL_PAGE_SIZE_Z_ARB = 0x9197
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureBorderClamp.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureBorderClamp.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureBorderClamp.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureBorderClamp.hs
@@ -10,9 +10,8 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_ARB_texture_border_clamp :: Bool
 gl_ARB_texture_border_clamp = member "GL_ARB_texture_border_clamp" extensions
 
-pattern GL_CLAMP_TO_BORDER_ARB = 0x812D :: GLenum
+pattern GL_CLAMP_TO_BORDER_ARB = 0x812D
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureBufferObject.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureBufferObject.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureBufferObject.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureBufferObject.hs
@@ -32,12 +32,12 @@
 
 {-# NOINLINE glTexBufferARBFunPtr #-}
 
-pattern GL_MAX_TEXTURE_BUFFER_SIZE_ARB = 0x8C2B :: GLenum
+pattern GL_MAX_TEXTURE_BUFFER_SIZE_ARB = 0x8C2B
 
-pattern GL_TEXTURE_BINDING_BUFFER_ARB = 0x8C2C :: GLenum
+pattern GL_TEXTURE_BINDING_BUFFER_ARB = 0x8C2C
 
-pattern GL_TEXTURE_BUFFER_ARB = 0x8C2A :: GLenum
+pattern GL_TEXTURE_BUFFER_ARB = 0x8C2A
 
-pattern GL_TEXTURE_BUFFER_DATA_STORE_BINDING_ARB = 0x8C2D :: GLenum
+pattern GL_TEXTURE_BUFFER_DATA_STORE_BINDING_ARB = 0x8C2D
 
-pattern GL_TEXTURE_BUFFER_FORMAT_ARB = 0x8C2E :: GLenum
+pattern GL_TEXTURE_BUFFER_FORMAT_ARB = 0x8C2E
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureCompression.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureCompression.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureCompression.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureCompression.hs
@@ -92,24 +92,24 @@
 
 {-# NOINLINE glGetCompressedTexImageARBFunPtr #-}
 
-pattern GL_COMPRESSED_ALPHA_ARB = 0x84E9 :: GLenum
+pattern GL_COMPRESSED_ALPHA_ARB = 0x84E9
 
-pattern GL_COMPRESSED_INTENSITY_ARB = 0x84EC :: GLenum
+pattern GL_COMPRESSED_INTENSITY_ARB = 0x84EC
 
-pattern GL_COMPRESSED_LUMINANCE_ALPHA_ARB = 0x84EB :: GLenum
+pattern GL_COMPRESSED_LUMINANCE_ALPHA_ARB = 0x84EB
 
-pattern GL_COMPRESSED_LUMINANCE_ARB = 0x84EA :: GLenum
+pattern GL_COMPRESSED_LUMINANCE_ARB = 0x84EA
 
-pattern GL_COMPRESSED_RGBA_ARB = 0x84EE :: GLenum
+pattern GL_COMPRESSED_RGBA_ARB = 0x84EE
 
-pattern GL_COMPRESSED_RGB_ARB = 0x84ED :: GLenum
+pattern GL_COMPRESSED_RGB_ARB = 0x84ED
 
-pattern GL_COMPRESSED_TEXTURE_FORMATS_ARB = 0x86A3 :: GLenum
+pattern GL_COMPRESSED_TEXTURE_FORMATS_ARB = 0x86A3
 
-pattern GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB = 0x86A2 :: GLenum
+pattern GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB = 0x86A2
 
-pattern GL_TEXTURE_COMPRESSED_ARB = 0x86A1 :: GLenum
+pattern GL_TEXTURE_COMPRESSED_ARB = 0x86A1
 
-pattern GL_TEXTURE_COMPRESSED_IMAGE_SIZE_ARB = 0x86A0 :: GLenum
+pattern GL_TEXTURE_COMPRESSED_IMAGE_SIZE_ARB = 0x86A0
 
-pattern GL_TEXTURE_COMPRESSION_HINT_ARB = 0x84EF :: GLenum
+pattern GL_TEXTURE_COMPRESSION_HINT_ARB = 0x84EF
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureCompressionBptc.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureCompressionBptc.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureCompressionBptc.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureCompressionBptc.hs
@@ -13,15 +13,14 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_ARB_texture_compression_bptc :: Bool
 gl_ARB_texture_compression_bptc = member "GL_ARB_texture_compression_bptc" extensions
 
-pattern GL_COMPRESSED_RGBA_BPTC_UNORM_ARB = 0x8E8C :: GLenum
+pattern GL_COMPRESSED_RGBA_BPTC_UNORM_ARB = 0x8E8C
 
-pattern GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT_ARB = 0x8E8E :: GLenum
+pattern GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT_ARB = 0x8E8E
 
-pattern GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_ARB = 0x8E8F :: GLenum
+pattern GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_ARB = 0x8E8F
 
-pattern GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM_ARB = 0x8E8D :: GLenum
+pattern GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM_ARB = 0x8E8D
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureCubeMap.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureCubeMap.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureCubeMap.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureCubeMap.hs
@@ -21,31 +21,30 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_ARB_texture_cube_map :: Bool
 gl_ARB_texture_cube_map = member "GL_ARB_texture_cube_map" extensions
 
-pattern GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB = 0x851C :: GLenum
+pattern GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB = 0x851C
 
-pattern GL_NORMAL_MAP_ARB = 0x8511 :: GLenum
+pattern GL_NORMAL_MAP_ARB = 0x8511
 
-pattern GL_PROXY_TEXTURE_CUBE_MAP_ARB = 0x851B :: GLenum
+pattern GL_PROXY_TEXTURE_CUBE_MAP_ARB = 0x851B
 
-pattern GL_REFLECTION_MAP_ARB = 0x8512 :: GLenum
+pattern GL_REFLECTION_MAP_ARB = 0x8512
 
-pattern GL_TEXTURE_BINDING_CUBE_MAP_ARB = 0x8514 :: GLenum
+pattern GL_TEXTURE_BINDING_CUBE_MAP_ARB = 0x8514
 
-pattern GL_TEXTURE_CUBE_MAP_ARB = 0x8513 :: GLenum
+pattern GL_TEXTURE_CUBE_MAP_ARB = 0x8513
 
-pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB = 0x8516 :: GLenum
+pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB = 0x8516
 
-pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB = 0x8518 :: GLenum
+pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB = 0x8518
 
-pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB = 0x851A :: GLenum
+pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB = 0x851A
 
-pattern GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB = 0x8515 :: GLenum
+pattern GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB = 0x8515
 
-pattern GL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB = 0x8517 :: GLenum
+pattern GL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB = 0x8517
 
-pattern GL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB = 0x8519 :: GLenum
+pattern GL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB = 0x8519
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureCubeMapArray.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureCubeMapArray.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureCubeMapArray.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureCubeMapArray.hs
@@ -16,21 +16,20 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_ARB_texture_cube_map_array :: Bool
 gl_ARB_texture_cube_map_array = member "GL_ARB_texture_cube_map_array" extensions
 
-pattern GL_INT_SAMPLER_CUBE_MAP_ARRAY_ARB = 0x900E :: GLenum
+pattern GL_INT_SAMPLER_CUBE_MAP_ARRAY_ARB = 0x900E
 
-pattern GL_PROXY_TEXTURE_CUBE_MAP_ARRAY_ARB = 0x900B :: GLenum
+pattern GL_PROXY_TEXTURE_CUBE_MAP_ARRAY_ARB = 0x900B
 
-pattern GL_SAMPLER_CUBE_MAP_ARRAY_ARB = 0x900C :: GLenum
+pattern GL_SAMPLER_CUBE_MAP_ARRAY_ARB = 0x900C
 
-pattern GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW_ARB = 0x900D :: GLenum
+pattern GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW_ARB = 0x900D
 
-pattern GL_TEXTURE_BINDING_CUBE_MAP_ARRAY_ARB = 0x900A :: GLenum
+pattern GL_TEXTURE_BINDING_CUBE_MAP_ARRAY_ARB = 0x900A
 
-pattern GL_TEXTURE_CUBE_MAP_ARRAY_ARB = 0x9009 :: GLenum
+pattern GL_TEXTURE_CUBE_MAP_ARRAY_ARB = 0x9009
 
-pattern GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY_ARB = 0x900F :: GLenum
+pattern GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY_ARB = 0x900F
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureEnvCombine.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureEnvCombine.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureEnvCombine.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureEnvCombine.hs
@@ -31,51 +31,50 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_ARB_texture_env_combine :: Bool
 gl_ARB_texture_env_combine = member "GL_ARB_texture_env_combine" extensions
 
-pattern GL_ADD_SIGNED_ARB = 0x8574 :: GLenum
+pattern GL_ADD_SIGNED_ARB = 0x8574
 
-pattern GL_COMBINE_ALPHA_ARB = 0x8572 :: GLenum
+pattern GL_COMBINE_ALPHA_ARB = 0x8572
 
-pattern GL_COMBINE_ARB = 0x8570 :: GLenum
+pattern GL_COMBINE_ARB = 0x8570
 
-pattern GL_COMBINE_RGB_ARB = 0x8571 :: GLenum
+pattern GL_COMBINE_RGB_ARB = 0x8571
 
-pattern GL_CONSTANT_ARB = 0x8576 :: GLenum
+pattern GL_CONSTANT_ARB = 0x8576
 
-pattern GL_INTERPOLATE_ARB = 0x8575 :: GLenum
+pattern GL_INTERPOLATE_ARB = 0x8575
 
-pattern GL_OPERAND0_ALPHA_ARB = 0x8598 :: GLenum
+pattern GL_OPERAND0_ALPHA_ARB = 0x8598
 
-pattern GL_OPERAND0_RGB_ARB = 0x8590 :: GLenum
+pattern GL_OPERAND0_RGB_ARB = 0x8590
 
-pattern GL_OPERAND1_ALPHA_ARB = 0x8599 :: GLenum
+pattern GL_OPERAND1_ALPHA_ARB = 0x8599
 
-pattern GL_OPERAND1_RGB_ARB = 0x8591 :: GLenum
+pattern GL_OPERAND1_RGB_ARB = 0x8591
 
-pattern GL_OPERAND2_ALPHA_ARB = 0x859A :: GLenum
+pattern GL_OPERAND2_ALPHA_ARB = 0x859A
 
-pattern GL_OPERAND2_RGB_ARB = 0x8592 :: GLenum
+pattern GL_OPERAND2_RGB_ARB = 0x8592
 
-pattern GL_PREVIOUS_ARB = 0x8578 :: GLenum
+pattern GL_PREVIOUS_ARB = 0x8578
 
-pattern GL_PRIMARY_COLOR_ARB = 0x8577 :: GLenum
+pattern GL_PRIMARY_COLOR_ARB = 0x8577
 
-pattern GL_RGB_SCALE_ARB = 0x8573 :: GLenum
+pattern GL_RGB_SCALE_ARB = 0x8573
 
-pattern GL_SOURCE0_ALPHA_ARB = 0x8588 :: GLenum
+pattern GL_SOURCE0_ALPHA_ARB = 0x8588
 
-pattern GL_SOURCE0_RGB_ARB = 0x8580 :: GLenum
+pattern GL_SOURCE0_RGB_ARB = 0x8580
 
-pattern GL_SOURCE1_ALPHA_ARB = 0x8589 :: GLenum
+pattern GL_SOURCE1_ALPHA_ARB = 0x8589
 
-pattern GL_SOURCE1_RGB_ARB = 0x8581 :: GLenum
+pattern GL_SOURCE1_RGB_ARB = 0x8581
 
-pattern GL_SOURCE2_ALPHA_ARB = 0x858A :: GLenum
+pattern GL_SOURCE2_ALPHA_ARB = 0x858A
 
-pattern GL_SOURCE2_RGB_ARB = 0x8582 :: GLenum
+pattern GL_SOURCE2_RGB_ARB = 0x8582
 
-pattern GL_SUBTRACT_ARB = 0x84E7 :: GLenum
+pattern GL_SUBTRACT_ARB = 0x84E7
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureEnvDot3.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureEnvDot3.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureEnvDot3.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureEnvDot3.hs
@@ -11,11 +11,10 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_ARB_texture_env_dot3 :: Bool
 gl_ARB_texture_env_dot3 = member "GL_ARB_texture_env_dot3" extensions
 
-pattern GL_DOT3_RGBA_ARB = 0x86AF :: GLenum
+pattern GL_DOT3_RGBA_ARB = 0x86AF
 
-pattern GL_DOT3_RGB_ARB = 0x86AE :: GLenum
+pattern GL_DOT3_RGB_ARB = 0x86AE
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureFloat.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureFloat.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureFloat.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureFloat.hs
@@ -29,47 +29,46 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_ARB_texture_float :: Bool
 gl_ARB_texture_float = member "GL_ARB_texture_float" extensions
 
-pattern GL_ALPHA16F_ARB = 0x881C :: GLenum
+pattern GL_ALPHA16F_ARB = 0x881C
 
-pattern GL_ALPHA32F_ARB = 0x8816 :: GLenum
+pattern GL_ALPHA32F_ARB = 0x8816
 
-pattern GL_INTENSITY16F_ARB = 0x881D :: GLenum
+pattern GL_INTENSITY16F_ARB = 0x881D
 
-pattern GL_INTENSITY32F_ARB = 0x8817 :: GLenum
+pattern GL_INTENSITY32F_ARB = 0x8817
 
-pattern GL_LUMINANCE16F_ARB = 0x881E :: GLenum
+pattern GL_LUMINANCE16F_ARB = 0x881E
 
-pattern GL_LUMINANCE32F_ARB = 0x8818 :: GLenum
+pattern GL_LUMINANCE32F_ARB = 0x8818
 
-pattern GL_LUMINANCE_ALPHA16F_ARB = 0x881F :: GLenum
+pattern GL_LUMINANCE_ALPHA16F_ARB = 0x881F
 
-pattern GL_LUMINANCE_ALPHA32F_ARB = 0x8819 :: GLenum
+pattern GL_LUMINANCE_ALPHA32F_ARB = 0x8819
 
-pattern GL_RGB16F_ARB = 0x881B :: GLenum
+pattern GL_RGB16F_ARB = 0x881B
 
-pattern GL_RGB32F_ARB = 0x8815 :: GLenum
+pattern GL_RGB32F_ARB = 0x8815
 
-pattern GL_RGBA16F_ARB = 0x881A :: GLenum
+pattern GL_RGBA16F_ARB = 0x881A
 
-pattern GL_RGBA32F_ARB = 0x8814 :: GLenum
+pattern GL_RGBA32F_ARB = 0x8814
 
-pattern GL_TEXTURE_ALPHA_TYPE_ARB = 0x8C13 :: GLenum
+pattern GL_TEXTURE_ALPHA_TYPE_ARB = 0x8C13
 
-pattern GL_TEXTURE_BLUE_TYPE_ARB = 0x8C12 :: GLenum
+pattern GL_TEXTURE_BLUE_TYPE_ARB = 0x8C12
 
-pattern GL_TEXTURE_DEPTH_TYPE_ARB = 0x8C16 :: GLenum
+pattern GL_TEXTURE_DEPTH_TYPE_ARB = 0x8C16
 
-pattern GL_TEXTURE_GREEN_TYPE_ARB = 0x8C11 :: GLenum
+pattern GL_TEXTURE_GREEN_TYPE_ARB = 0x8C11
 
-pattern GL_TEXTURE_INTENSITY_TYPE_ARB = 0x8C15 :: GLenum
+pattern GL_TEXTURE_INTENSITY_TYPE_ARB = 0x8C15
 
-pattern GL_TEXTURE_LUMINANCE_TYPE_ARB = 0x8C14 :: GLenum
+pattern GL_TEXTURE_LUMINANCE_TYPE_ARB = 0x8C14
 
-pattern GL_TEXTURE_RED_TYPE_ARB = 0x8C10 :: GLenum
+pattern GL_TEXTURE_RED_TYPE_ARB = 0x8C10
 
-pattern GL_UNSIGNED_NORMALIZED_ARB = 0x8C17 :: GLenum
+pattern GL_UNSIGNED_NORMALIZED_ARB = 0x8C17
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureGather.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureGather.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureGather.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureGather.hs
@@ -12,13 +12,12 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_ARB_texture_gather :: Bool
 gl_ARB_texture_gather = member "GL_ARB_texture_gather" extensions
 
-pattern GL_MAX_PROGRAM_TEXTURE_GATHER_COMPONENTS_ARB = 0x8F9F :: GLenum
+pattern GL_MAX_PROGRAM_TEXTURE_GATHER_COMPONENTS_ARB = 0x8F9F
 
-pattern GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET_ARB = 0x8E5F :: GLenum
+pattern GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET_ARB = 0x8E5F
 
-pattern GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET_ARB = 0x8E5E :: GLenum
+pattern GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET_ARB = 0x8E5E
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureMirroredRepeat.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureMirroredRepeat.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureMirroredRepeat.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureMirroredRepeat.hs
@@ -10,9 +10,8 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_ARB_texture_mirrored_repeat :: Bool
 gl_ARB_texture_mirrored_repeat = member "GL_ARB_texture_mirrored_repeat" extensions
 
-pattern GL_MIRRORED_REPEAT_ARB = 0x8370 :: GLenum
+pattern GL_MIRRORED_REPEAT_ARB = 0x8370
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureRectangle.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureRectangle.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureRectangle.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TextureRectangle.hs
@@ -13,15 +13,14 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_ARB_texture_rectangle :: Bool
 gl_ARB_texture_rectangle = member "GL_ARB_texture_rectangle" extensions
 
-pattern GL_MAX_RECTANGLE_TEXTURE_SIZE_ARB = 0x84F8 :: GLenum
+pattern GL_MAX_RECTANGLE_TEXTURE_SIZE_ARB = 0x84F8
 
-pattern GL_PROXY_TEXTURE_RECTANGLE_ARB = 0x84F7 :: GLenum
+pattern GL_PROXY_TEXTURE_RECTANGLE_ARB = 0x84F7
 
-pattern GL_TEXTURE_BINDING_RECTANGLE_ARB = 0x84F6 :: GLenum
+pattern GL_TEXTURE_BINDING_RECTANGLE_ARB = 0x84F6
 
-pattern GL_TEXTURE_RECTANGLE_ARB = 0x84F5 :: GLenum
+pattern GL_TEXTURE_RECTANGLE_ARB = 0x84F5
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TransformFeedbackOverflowQuery.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TransformFeedbackOverflowQuery.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TransformFeedbackOverflowQuery.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TransformFeedbackOverflowQuery.hs
@@ -11,11 +11,10 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_ARB_transform_feedback_overflow_query :: Bool
 gl_ARB_transform_feedback_overflow_query = member "GL_ARB_transform_feedback_overflow_query" extensions
 
-pattern GL_TRANSFORM_FEEDBACK_OVERFLOW_ARB = 0x82EC :: GLenum
+pattern GL_TRANSFORM_FEEDBACK_OVERFLOW_ARB = 0x82EC
 
-pattern GL_TRANSFORM_FEEDBACK_STREAM_OVERFLOW_ARB = 0x82ED :: GLenum
+pattern GL_TRANSFORM_FEEDBACK_STREAM_OVERFLOW_ARB = 0x82ED
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TransposeMatrix.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TransposeMatrix.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TransposeMatrix.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/TransposeMatrix.hs
@@ -58,10 +58,10 @@
 
 {-# NOINLINE glMultTransposeMatrixfARBFunPtr #-}
 
-pattern GL_TRANSPOSE_COLOR_MATRIX_ARB = 0x84E6 :: GLenum
+pattern GL_TRANSPOSE_COLOR_MATRIX_ARB = 0x84E6
 
-pattern GL_TRANSPOSE_MODELVIEW_MATRIX_ARB = 0x84E3 :: GLenum
+pattern GL_TRANSPOSE_MODELVIEW_MATRIX_ARB = 0x84E3
 
-pattern GL_TRANSPOSE_PROJECTION_MATRIX_ARB = 0x84E4 :: GLenum
+pattern GL_TRANSPOSE_PROJECTION_MATRIX_ARB = 0x84E4
 
-pattern GL_TRANSPOSE_TEXTURE_MATRIX_ARB = 0x84E5 :: GLenum
+pattern GL_TRANSPOSE_TEXTURE_MATRIX_ARB = 0x84E5
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/VertexBlend.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/VertexBlend.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/VertexBlend.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/VertexBlend.hs
@@ -150,86 +150,86 @@
 
 {-# NOINLINE glWeightusvARBFunPtr #-}
 
-pattern GL_ACTIVE_VERTEX_UNITS_ARB = 0x86A5 :: GLenum
+pattern GL_ACTIVE_VERTEX_UNITS_ARB = 0x86A5
 
-pattern GL_CURRENT_WEIGHT_ARB = 0x86A8 :: GLenum
+pattern GL_CURRENT_WEIGHT_ARB = 0x86A8
 
-pattern GL_MAX_VERTEX_UNITS_ARB = 0x86A4 :: GLenum
+pattern GL_MAX_VERTEX_UNITS_ARB = 0x86A4
 
-pattern GL_MODELVIEW0_ARB = 0x1700 :: GLenum
+pattern GL_MODELVIEW0_ARB = 0x1700
 
-pattern GL_MODELVIEW10_ARB = 0x872A :: GLenum
+pattern GL_MODELVIEW10_ARB = 0x872A
 
-pattern GL_MODELVIEW11_ARB = 0x872B :: GLenum
+pattern GL_MODELVIEW11_ARB = 0x872B
 
-pattern GL_MODELVIEW12_ARB = 0x872C :: GLenum
+pattern GL_MODELVIEW12_ARB = 0x872C
 
-pattern GL_MODELVIEW13_ARB = 0x872D :: GLenum
+pattern GL_MODELVIEW13_ARB = 0x872D
 
-pattern GL_MODELVIEW14_ARB = 0x872E :: GLenum
+pattern GL_MODELVIEW14_ARB = 0x872E
 
-pattern GL_MODELVIEW15_ARB = 0x872F :: GLenum
+pattern GL_MODELVIEW15_ARB = 0x872F
 
-pattern GL_MODELVIEW16_ARB = 0x8730 :: GLenum
+pattern GL_MODELVIEW16_ARB = 0x8730
 
-pattern GL_MODELVIEW17_ARB = 0x8731 :: GLenum
+pattern GL_MODELVIEW17_ARB = 0x8731
 
-pattern GL_MODELVIEW18_ARB = 0x8732 :: GLenum
+pattern GL_MODELVIEW18_ARB = 0x8732
 
-pattern GL_MODELVIEW19_ARB = 0x8733 :: GLenum
+pattern GL_MODELVIEW19_ARB = 0x8733
 
-pattern GL_MODELVIEW1_ARB = 0x850A :: GLenum
+pattern GL_MODELVIEW1_ARB = 0x850A
 
-pattern GL_MODELVIEW20_ARB = 0x8734 :: GLenum
+pattern GL_MODELVIEW20_ARB = 0x8734
 
-pattern GL_MODELVIEW21_ARB = 0x8735 :: GLenum
+pattern GL_MODELVIEW21_ARB = 0x8735
 
-pattern GL_MODELVIEW22_ARB = 0x8736 :: GLenum
+pattern GL_MODELVIEW22_ARB = 0x8736
 
-pattern GL_MODELVIEW23_ARB = 0x8737 :: GLenum
+pattern GL_MODELVIEW23_ARB = 0x8737
 
-pattern GL_MODELVIEW24_ARB = 0x8738 :: GLenum
+pattern GL_MODELVIEW24_ARB = 0x8738
 
-pattern GL_MODELVIEW25_ARB = 0x8739 :: GLenum
+pattern GL_MODELVIEW25_ARB = 0x8739
 
-pattern GL_MODELVIEW26_ARB = 0x873A :: GLenum
+pattern GL_MODELVIEW26_ARB = 0x873A
 
-pattern GL_MODELVIEW27_ARB = 0x873B :: GLenum
+pattern GL_MODELVIEW27_ARB = 0x873B
 
-pattern GL_MODELVIEW28_ARB = 0x873C :: GLenum
+pattern GL_MODELVIEW28_ARB = 0x873C
 
-pattern GL_MODELVIEW29_ARB = 0x873D :: GLenum
+pattern GL_MODELVIEW29_ARB = 0x873D
 
-pattern GL_MODELVIEW2_ARB = 0x8722 :: GLenum
+pattern GL_MODELVIEW2_ARB = 0x8722
 
-pattern GL_MODELVIEW30_ARB = 0x873E :: GLenum
+pattern GL_MODELVIEW30_ARB = 0x873E
 
-pattern GL_MODELVIEW31_ARB = 0x873F :: GLenum
+pattern GL_MODELVIEW31_ARB = 0x873F
 
-pattern GL_MODELVIEW3_ARB = 0x8723 :: GLenum
+pattern GL_MODELVIEW3_ARB = 0x8723
 
-pattern GL_MODELVIEW4_ARB = 0x8724 :: GLenum
+pattern GL_MODELVIEW4_ARB = 0x8724
 
-pattern GL_MODELVIEW5_ARB = 0x8725 :: GLenum
+pattern GL_MODELVIEW5_ARB = 0x8725
 
-pattern GL_MODELVIEW6_ARB = 0x8726 :: GLenum
+pattern GL_MODELVIEW6_ARB = 0x8726
 
-pattern GL_MODELVIEW7_ARB = 0x8727 :: GLenum
+pattern GL_MODELVIEW7_ARB = 0x8727
 
-pattern GL_MODELVIEW8_ARB = 0x8728 :: GLenum
+pattern GL_MODELVIEW8_ARB = 0x8728
 
-pattern GL_MODELVIEW9_ARB = 0x8729 :: GLenum
+pattern GL_MODELVIEW9_ARB = 0x8729
 
-pattern GL_VERTEX_BLEND_ARB = 0x86A7 :: GLenum
+pattern GL_VERTEX_BLEND_ARB = 0x86A7
 
-pattern GL_WEIGHT_ARRAY_ARB = 0x86AD :: GLenum
+pattern GL_WEIGHT_ARRAY_ARB = 0x86AD
 
-pattern GL_WEIGHT_ARRAY_POINTER_ARB = 0x86AC :: GLenum
+pattern GL_WEIGHT_ARRAY_POINTER_ARB = 0x86AC
 
-pattern GL_WEIGHT_ARRAY_SIZE_ARB = 0x86AB :: GLenum
+pattern GL_WEIGHT_ARRAY_SIZE_ARB = 0x86AB
 
-pattern GL_WEIGHT_ARRAY_STRIDE_ARB = 0x86AA :: GLenum
+pattern GL_WEIGHT_ARRAY_STRIDE_ARB = 0x86AA
 
-pattern GL_WEIGHT_ARRAY_TYPE_ARB = 0x86A9 :: GLenum
+pattern GL_WEIGHT_ARRAY_TYPE_ARB = 0x86A9
 
-pattern GL_WEIGHT_SUM_UNITY_ARB = 0x86A6 :: GLenum
+pattern GL_WEIGHT_SUM_UNITY_ARB = 0x86A6
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/VertexBufferObject.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/VertexBufferObject.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/VertexBufferObject.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/VertexBufferObject.hs
@@ -148,64 +148,64 @@
 
 {-# NOINLINE glUnmapBufferARBFunPtr #-}
 
-pattern GL_ARRAY_BUFFER_ARB = 0x8892 :: GLenum
+pattern GL_ARRAY_BUFFER_ARB = 0x8892
 
-pattern GL_ARRAY_BUFFER_BINDING_ARB = 0x8894 :: GLenum
+pattern GL_ARRAY_BUFFER_BINDING_ARB = 0x8894
 
-pattern GL_BUFFER_ACCESS_ARB = 0x88BB :: GLenum
+pattern GL_BUFFER_ACCESS_ARB = 0x88BB
 
-pattern GL_BUFFER_MAPPED_ARB = 0x88BC :: GLenum
+pattern GL_BUFFER_MAPPED_ARB = 0x88BC
 
-pattern GL_BUFFER_MAP_POINTER_ARB = 0x88BD :: GLenum
+pattern GL_BUFFER_MAP_POINTER_ARB = 0x88BD
 
-pattern GL_BUFFER_SIZE_ARB = 0x8764 :: GLenum
+pattern GL_BUFFER_SIZE_ARB = 0x8764
 
-pattern GL_BUFFER_USAGE_ARB = 0x8765 :: GLenum
+pattern GL_BUFFER_USAGE_ARB = 0x8765
 
-pattern GL_COLOR_ARRAY_BUFFER_BINDING_ARB = 0x8898 :: GLenum
+pattern GL_COLOR_ARRAY_BUFFER_BINDING_ARB = 0x8898
 
-pattern GL_DYNAMIC_COPY_ARB = 0x88EA :: GLenum
+pattern GL_DYNAMIC_COPY_ARB = 0x88EA
 
-pattern GL_DYNAMIC_DRAW_ARB = 0x88E8 :: GLenum
+pattern GL_DYNAMIC_DRAW_ARB = 0x88E8
 
-pattern GL_DYNAMIC_READ_ARB = 0x88E9 :: GLenum
+pattern GL_DYNAMIC_READ_ARB = 0x88E9
 
-pattern GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB = 0x889B :: GLenum
+pattern GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB = 0x889B
 
-pattern GL_ELEMENT_ARRAY_BUFFER_ARB = 0x8893 :: GLenum
+pattern GL_ELEMENT_ARRAY_BUFFER_ARB = 0x8893
 
-pattern GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB = 0x8895 :: GLenum
+pattern GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB = 0x8895
 
-pattern GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB = 0x889D :: GLenum
+pattern GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB = 0x889D
 
-pattern GL_INDEX_ARRAY_BUFFER_BINDING_ARB = 0x8899 :: GLenum
+pattern GL_INDEX_ARRAY_BUFFER_BINDING_ARB = 0x8899
 
-pattern GL_NORMAL_ARRAY_BUFFER_BINDING_ARB = 0x8897 :: GLenum
+pattern GL_NORMAL_ARRAY_BUFFER_BINDING_ARB = 0x8897
 
-pattern GL_READ_ONLY_ARB = 0x88B8 :: GLenum
+pattern GL_READ_ONLY_ARB = 0x88B8
 
-pattern GL_READ_WRITE_ARB = 0x88BA :: GLenum
+pattern GL_READ_WRITE_ARB = 0x88BA
 
-pattern GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB = 0x889C :: GLenum
+pattern GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB = 0x889C
 
-pattern GL_STATIC_COPY_ARB = 0x88E6 :: GLenum
+pattern GL_STATIC_COPY_ARB = 0x88E6
 
-pattern GL_STATIC_DRAW_ARB = 0x88E4 :: GLenum
+pattern GL_STATIC_DRAW_ARB = 0x88E4
 
-pattern GL_STATIC_READ_ARB = 0x88E5 :: GLenum
+pattern GL_STATIC_READ_ARB = 0x88E5
 
-pattern GL_STREAM_COPY_ARB = 0x88E2 :: GLenum
+pattern GL_STREAM_COPY_ARB = 0x88E2
 
-pattern GL_STREAM_DRAW_ARB = 0x88E0 :: GLenum
+pattern GL_STREAM_DRAW_ARB = 0x88E0
 
-pattern GL_STREAM_READ_ARB = 0x88E1 :: GLenum
+pattern GL_STREAM_READ_ARB = 0x88E1
 
-pattern GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB = 0x889A :: GLenum
+pattern GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB = 0x889A
 
-pattern GL_VERTEX_ARRAY_BUFFER_BINDING_ARB = 0x8896 :: GLenum
+pattern GL_VERTEX_ARRAY_BUFFER_BINDING_ARB = 0x8896
 
-pattern GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB = 0x889F :: GLenum
+pattern GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB = 0x889F
 
-pattern GL_WEIGHT_ARRAY_BUFFER_BINDING_ARB = 0x889E :: GLenum
+pattern GL_WEIGHT_ARRAY_BUFFER_BINDING_ARB = 0x889E
 
-pattern GL_WRITE_ONLY_ARB = 0x88B9 :: GLenum
+pattern GL_WRITE_ONLY_ARB = 0x88B9
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/VertexProgram.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/VertexProgram.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/VertexProgram.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/VertexProgram.hs
@@ -151,19 +151,18 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
-import Graphics.GL.Raw.Types
 
 gl_ARB_vertex_program :: Bool
 gl_ARB_vertex_program = member "GL_ARB_vertex_program" extensions
 
-pattern GL_COLOR_SUM_ARB = 0x8458 :: GLenum
+pattern GL_COLOR_SUM_ARB = 0x8458
 
-pattern GL_MAX_PROGRAM_ADDRESS_REGISTERS_ARB = 0x88B1 :: GLenum
+pattern GL_MAX_PROGRAM_ADDRESS_REGISTERS_ARB = 0x88B1
 
-pattern GL_MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB = 0x88B3 :: GLenum
+pattern GL_MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB = 0x88B3
 
-pattern GL_PROGRAM_ADDRESS_REGISTERS_ARB = 0x88B0 :: GLenum
+pattern GL_PROGRAM_ADDRESS_REGISTERS_ARB = 0x88B0
 
-pattern GL_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB = 0x88B2 :: GLenum
+pattern GL_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB = 0x88B2
 
-pattern GL_VERTEX_PROGRAM_ARB = 0x8620 :: GLenum
+pattern GL_VERTEX_PROGRAM_ARB = 0x8620
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/VertexShader.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/VertexShader.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/VertexShader.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARB/VertexShader.hs
@@ -115,14 +115,14 @@
 
 {-# NOINLINE glGetAttribLocationARBFunPtr #-}
 
-pattern GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB = 0x8B4D :: GLenum
+pattern GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB = 0x8B4D
 
-pattern GL_MAX_VARYING_FLOATS_ARB = 0x8B4B :: GLenum
+pattern GL_MAX_VARYING_FLOATS_ARB = 0x8B4B
 
-pattern GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB = 0x8B4A :: GLenum
+pattern GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB = 0x8B4A
 
-pattern GL_OBJECT_ACTIVE_ATTRIBUTES_ARB = 0x8B89 :: GLenum
+pattern GL_OBJECT_ACTIVE_ATTRIBUTES_ARB = 0x8B89
 
-pattern GL_OBJECT_ACTIVE_ATTRIBUTE_MAX_LENGTH_ARB = 0x8B8A :: GLenum
+pattern GL_OBJECT_ACTIVE_ATTRIBUTE_MAX_LENGTH_ARB = 0x8B8A
 
-pattern GL_VERTEX_SHADER_ARB = 0x8B31 :: GLenum
+pattern GL_VERTEX_SHADER_ARB = 0x8B31
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARM/MaliProgramBinary.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARM/MaliProgramBinary.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARM/MaliProgramBinary.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARM/MaliProgramBinary.hs
@@ -10,9 +10,8 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_ARM_mali_program_binary :: Bool
 gl_ARM_mali_program_binary = member "GL_ARM_mali_program_binary" extensions
 
-pattern GL_MALI_PROGRAM_BINARY_ARM = 0x8F61 :: GLenum
+pattern GL_MALI_PROGRAM_BINARY_ARM = 0x8F61
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARM/MaliShaderBinary.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARM/MaliShaderBinary.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARM/MaliShaderBinary.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARM/MaliShaderBinary.hs
@@ -10,9 +10,8 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_ARM_mali_shader_binary :: Bool
 gl_ARM_mali_shader_binary = member "GL_ARM_mali_shader_binary" extensions
 
-pattern GL_MALI_SHADER_BINARY_ARM = 0x8F60 :: GLenum
+pattern GL_MALI_SHADER_BINARY_ARM = 0x8F60
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ARM/ShaderFramebufferFetch.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ARM/ShaderFramebufferFetch.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ARM/ShaderFramebufferFetch.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ARM/ShaderFramebufferFetch.hs
@@ -11,11 +11,10 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_ARM_shader_framebuffer_fetch :: Bool
 gl_ARM_shader_framebuffer_fetch = member "GL_ARM_shader_framebuffer_fetch" extensions
 
-pattern GL_FETCH_PER_SAMPLE_ARM = 0x8F65 :: GLenum
+pattern GL_FETCH_PER_SAMPLE_ARM = 0x8F65
 
-pattern GL_FRAGMENT_SHADER_FRAMEBUFFER_FETCH_MRT_ARM = 0x8F66 :: GLenum
+pattern GL_FRAGMENT_SHADER_FRAMEBUFFER_FETCH_MRT_ARM = 0x8F66
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ATI/DrawBuffers.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ATI/DrawBuffers.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ATI/DrawBuffers.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ATI/DrawBuffers.hs
@@ -44,36 +44,36 @@
 
 {-# NOINLINE glDrawBuffersATIFunPtr #-}
 
-pattern GL_DRAW_BUFFER0_ATI = 0x8825 :: GLenum
+pattern GL_DRAW_BUFFER0_ATI = 0x8825
 
-pattern GL_DRAW_BUFFER10_ATI = 0x882F :: GLenum
+pattern GL_DRAW_BUFFER10_ATI = 0x882F
 
-pattern GL_DRAW_BUFFER11_ATI = 0x8830 :: GLenum
+pattern GL_DRAW_BUFFER11_ATI = 0x8830
 
-pattern GL_DRAW_BUFFER12_ATI = 0x8831 :: GLenum
+pattern GL_DRAW_BUFFER12_ATI = 0x8831
 
-pattern GL_DRAW_BUFFER13_ATI = 0x8832 :: GLenum
+pattern GL_DRAW_BUFFER13_ATI = 0x8832
 
-pattern GL_DRAW_BUFFER14_ATI = 0x8833 :: GLenum
+pattern GL_DRAW_BUFFER14_ATI = 0x8833
 
-pattern GL_DRAW_BUFFER15_ATI = 0x8834 :: GLenum
+pattern GL_DRAW_BUFFER15_ATI = 0x8834
 
-pattern GL_DRAW_BUFFER1_ATI = 0x8826 :: GLenum
+pattern GL_DRAW_BUFFER1_ATI = 0x8826
 
-pattern GL_DRAW_BUFFER2_ATI = 0x8827 :: GLenum
+pattern GL_DRAW_BUFFER2_ATI = 0x8827
 
-pattern GL_DRAW_BUFFER3_ATI = 0x8828 :: GLenum
+pattern GL_DRAW_BUFFER3_ATI = 0x8828
 
-pattern GL_DRAW_BUFFER4_ATI = 0x8829 :: GLenum
+pattern GL_DRAW_BUFFER4_ATI = 0x8829
 
-pattern GL_DRAW_BUFFER5_ATI = 0x882A :: GLenum
+pattern GL_DRAW_BUFFER5_ATI = 0x882A
 
-pattern GL_DRAW_BUFFER6_ATI = 0x882B :: GLenum
+pattern GL_DRAW_BUFFER6_ATI = 0x882B
 
-pattern GL_DRAW_BUFFER7_ATI = 0x882C :: GLenum
+pattern GL_DRAW_BUFFER7_ATI = 0x882C
 
-pattern GL_DRAW_BUFFER8_ATI = 0x882D :: GLenum
+pattern GL_DRAW_BUFFER8_ATI = 0x882D
 
-pattern GL_DRAW_BUFFER9_ATI = 0x882E :: GLenum
+pattern GL_DRAW_BUFFER9_ATI = 0x882E
 
-pattern GL_MAX_DRAW_BUFFERS_ATI = 0x8824 :: GLenum
+pattern GL_MAX_DRAW_BUFFERS_ATI = 0x8824
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ATI/ElementArray.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ATI/ElementArray.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ATI/ElementArray.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ATI/ElementArray.hs
@@ -48,8 +48,8 @@
 
 {-# NOINLINE glElementPointerATIFunPtr #-}
 
-pattern GL_ELEMENT_ARRAY_ATI = 0x8768 :: GLenum
+pattern GL_ELEMENT_ARRAY_ATI = 0x8768
 
-pattern GL_ELEMENT_ARRAY_POINTER_ATI = 0x876A :: GLenum
+pattern GL_ELEMENT_ARRAY_POINTER_ATI = 0x876A
 
-pattern GL_ELEMENT_ARRAY_TYPE_ATI = 0x8769 :: GLenum
+pattern GL_ELEMENT_ARRAY_TYPE_ATI = 0x8769
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ATI/EnvmapBumpmap.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ATI/EnvmapBumpmap.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ATI/EnvmapBumpmap.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ATI/EnvmapBumpmap.hs
@@ -62,18 +62,18 @@
 
 {-# NOINLINE glTexBumpParameterivATIFunPtr #-}
 
-pattern GL_BUMP_ENVMAP_ATI = 0x877B :: GLenum
+pattern GL_BUMP_ENVMAP_ATI = 0x877B
 
-pattern GL_BUMP_NUM_TEX_UNITS_ATI = 0x8777 :: GLenum
+pattern GL_BUMP_NUM_TEX_UNITS_ATI = 0x8777
 
-pattern GL_BUMP_ROT_MATRIX_ATI = 0x8775 :: GLenum
+pattern GL_BUMP_ROT_MATRIX_ATI = 0x8775
 
-pattern GL_BUMP_ROT_MATRIX_SIZE_ATI = 0x8776 :: GLenum
+pattern GL_BUMP_ROT_MATRIX_SIZE_ATI = 0x8776
 
-pattern GL_BUMP_TARGET_ATI = 0x877C :: GLenum
+pattern GL_BUMP_TARGET_ATI = 0x877C
 
-pattern GL_BUMP_TEX_UNITS_ATI = 0x8778 :: GLenum
+pattern GL_BUMP_TEX_UNITS_ATI = 0x8778
 
-pattern GL_DU8DV8_ATI = 0x877A :: GLenum
+pattern GL_DU8DV8_ATI = 0x877A
 
-pattern GL_DUDV_ATI = 0x8779 :: GLenum
+pattern GL_DUDV_ATI = 0x8779
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ATI/FragmentShader.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ATI/FragmentShader.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ATI/FragmentShader.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ATI/FragmentShader.hs
@@ -248,210 +248,210 @@
 
 {-# NOINLINE glSetFragmentShaderConstantATIFunPtr #-}
 
-pattern GL_2X_BIT_ATI = 0x00000001 :: GLenum
+pattern GL_2X_BIT_ATI = 0x00000001
 
-pattern GL_4X_BIT_ATI = 0x00000002 :: GLenum
+pattern GL_4X_BIT_ATI = 0x00000002
 
-pattern GL_8X_BIT_ATI = 0x00000004 :: GLenum
+pattern GL_8X_BIT_ATI = 0x00000004
 
-pattern GL_ADD_ATI = 0x8963 :: GLenum
+pattern GL_ADD_ATI = 0x8963
 
-pattern GL_BIAS_BIT_ATI = 0x00000008 :: GLenum
+pattern GL_BIAS_BIT_ATI = 0x00000008
 
-pattern GL_BLUE_BIT_ATI = 0x00000004 :: GLenum
+pattern GL_BLUE_BIT_ATI = 0x00000004
 
-pattern GL_CND0_ATI = 0x896B :: GLenum
+pattern GL_CND0_ATI = 0x896B
 
-pattern GL_CND_ATI = 0x896A :: GLenum
+pattern GL_CND_ATI = 0x896A
 
-pattern GL_COLOR_ALPHA_PAIRING_ATI = 0x8975 :: GLenum
+pattern GL_COLOR_ALPHA_PAIRING_ATI = 0x8975
 
-pattern GL_COMP_BIT_ATI = 0x00000002 :: GLenum
+pattern GL_COMP_BIT_ATI = 0x00000002
 
-pattern GL_CON_0_ATI = 0x8941 :: GLenum
+pattern GL_CON_0_ATI = 0x8941
 
-pattern GL_CON_10_ATI = 0x894B :: GLenum
+pattern GL_CON_10_ATI = 0x894B
 
-pattern GL_CON_11_ATI = 0x894C :: GLenum
+pattern GL_CON_11_ATI = 0x894C
 
-pattern GL_CON_12_ATI = 0x894D :: GLenum
+pattern GL_CON_12_ATI = 0x894D
 
-pattern GL_CON_13_ATI = 0x894E :: GLenum
+pattern GL_CON_13_ATI = 0x894E
 
-pattern GL_CON_14_ATI = 0x894F :: GLenum
+pattern GL_CON_14_ATI = 0x894F
 
-pattern GL_CON_15_ATI = 0x8950 :: GLenum
+pattern GL_CON_15_ATI = 0x8950
 
-pattern GL_CON_16_ATI = 0x8951 :: GLenum
+pattern GL_CON_16_ATI = 0x8951
 
-pattern GL_CON_17_ATI = 0x8952 :: GLenum
+pattern GL_CON_17_ATI = 0x8952
 
-pattern GL_CON_18_ATI = 0x8953 :: GLenum
+pattern GL_CON_18_ATI = 0x8953
 
-pattern GL_CON_19_ATI = 0x8954 :: GLenum
+pattern GL_CON_19_ATI = 0x8954
 
-pattern GL_CON_1_ATI = 0x8942 :: GLenum
+pattern GL_CON_1_ATI = 0x8942
 
-pattern GL_CON_20_ATI = 0x8955 :: GLenum
+pattern GL_CON_20_ATI = 0x8955
 
-pattern GL_CON_21_ATI = 0x8956 :: GLenum
+pattern GL_CON_21_ATI = 0x8956
 
-pattern GL_CON_22_ATI = 0x8957 :: GLenum
+pattern GL_CON_22_ATI = 0x8957
 
-pattern GL_CON_23_ATI = 0x8958 :: GLenum
+pattern GL_CON_23_ATI = 0x8958
 
-pattern GL_CON_24_ATI = 0x8959 :: GLenum
+pattern GL_CON_24_ATI = 0x8959
 
-pattern GL_CON_25_ATI = 0x895A :: GLenum
+pattern GL_CON_25_ATI = 0x895A
 
-pattern GL_CON_26_ATI = 0x895B :: GLenum
+pattern GL_CON_26_ATI = 0x895B
 
-pattern GL_CON_27_ATI = 0x895C :: GLenum
+pattern GL_CON_27_ATI = 0x895C
 
-pattern GL_CON_28_ATI = 0x895D :: GLenum
+pattern GL_CON_28_ATI = 0x895D
 
-pattern GL_CON_29_ATI = 0x895E :: GLenum
+pattern GL_CON_29_ATI = 0x895E
 
-pattern GL_CON_2_ATI = 0x8943 :: GLenum
+pattern GL_CON_2_ATI = 0x8943
 
-pattern GL_CON_30_ATI = 0x895F :: GLenum
+pattern GL_CON_30_ATI = 0x895F
 
-pattern GL_CON_31_ATI = 0x8960 :: GLenum
+pattern GL_CON_31_ATI = 0x8960
 
-pattern GL_CON_3_ATI = 0x8944 :: GLenum
+pattern GL_CON_3_ATI = 0x8944
 
-pattern GL_CON_4_ATI = 0x8945 :: GLenum
+pattern GL_CON_4_ATI = 0x8945
 
-pattern GL_CON_5_ATI = 0x8946 :: GLenum
+pattern GL_CON_5_ATI = 0x8946
 
-pattern GL_CON_6_ATI = 0x8947 :: GLenum
+pattern GL_CON_6_ATI = 0x8947
 
-pattern GL_CON_7_ATI = 0x8948 :: GLenum
+pattern GL_CON_7_ATI = 0x8948
 
-pattern GL_CON_8_ATI = 0x8949 :: GLenum
+pattern GL_CON_8_ATI = 0x8949
 
-pattern GL_CON_9_ATI = 0x894A :: GLenum
+pattern GL_CON_9_ATI = 0x894A
 
-pattern GL_DOT2_ADD_ATI = 0x896C :: GLenum
+pattern GL_DOT2_ADD_ATI = 0x896C
 
-pattern GL_DOT3_ATI = 0x8966 :: GLenum
+pattern GL_DOT3_ATI = 0x8966
 
-pattern GL_DOT4_ATI = 0x8967 :: GLenum
+pattern GL_DOT4_ATI = 0x8967
 
-pattern GL_EIGHTH_BIT_ATI = 0x00000020 :: GLenum
+pattern GL_EIGHTH_BIT_ATI = 0x00000020
 
-pattern GL_FRAGMENT_SHADER_ATI = 0x8920 :: GLenum
+pattern GL_FRAGMENT_SHADER_ATI = 0x8920
 
-pattern GL_GREEN_BIT_ATI = 0x00000002 :: GLenum
+pattern GL_GREEN_BIT_ATI = 0x00000002
 
-pattern GL_HALF_BIT_ATI = 0x00000008 :: GLenum
+pattern GL_HALF_BIT_ATI = 0x00000008
 
-pattern GL_LERP_ATI = 0x8969 :: GLenum
+pattern GL_LERP_ATI = 0x8969
 
-pattern GL_MAD_ATI = 0x8968 :: GLenum
+pattern GL_MAD_ATI = 0x8968
 
-pattern GL_MOV_ATI = 0x8961 :: GLenum
+pattern GL_MOV_ATI = 0x8961
 
-pattern GL_MUL_ATI = 0x8964 :: GLenum
+pattern GL_MUL_ATI = 0x8964
 
-pattern GL_NEGATE_BIT_ATI = 0x00000004 :: GLenum
+pattern GL_NEGATE_BIT_ATI = 0x00000004
 
-pattern GL_NUM_FRAGMENT_CONSTANTS_ATI = 0x896F :: GLenum
+pattern GL_NUM_FRAGMENT_CONSTANTS_ATI = 0x896F
 
-pattern GL_NUM_FRAGMENT_REGISTERS_ATI = 0x896E :: GLenum
+pattern GL_NUM_FRAGMENT_REGISTERS_ATI = 0x896E
 
-pattern GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI = 0x8973 :: GLenum
+pattern GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI = 0x8973
 
-pattern GL_NUM_INSTRUCTIONS_PER_PASS_ATI = 0x8971 :: GLenum
+pattern GL_NUM_INSTRUCTIONS_PER_PASS_ATI = 0x8971
 
-pattern GL_NUM_INSTRUCTIONS_TOTAL_ATI = 0x8972 :: GLenum
+pattern GL_NUM_INSTRUCTIONS_TOTAL_ATI = 0x8972
 
-pattern GL_NUM_LOOPBACK_COMPONENTS_ATI = 0x8974 :: GLenum
+pattern GL_NUM_LOOPBACK_COMPONENTS_ATI = 0x8974
 
-pattern GL_NUM_PASSES_ATI = 0x8970 :: GLenum
+pattern GL_NUM_PASSES_ATI = 0x8970
 
-pattern GL_QUARTER_BIT_ATI = 0x00000010 :: GLenum
+pattern GL_QUARTER_BIT_ATI = 0x00000010
 
-pattern GL_RED_BIT_ATI = 0x00000001 :: GLenum
+pattern GL_RED_BIT_ATI = 0x00000001
 
-pattern GL_REG_0_ATI = 0x8921 :: GLenum
+pattern GL_REG_0_ATI = 0x8921
 
-pattern GL_REG_10_ATI = 0x892B :: GLenum
+pattern GL_REG_10_ATI = 0x892B
 
-pattern GL_REG_11_ATI = 0x892C :: GLenum
+pattern GL_REG_11_ATI = 0x892C
 
-pattern GL_REG_12_ATI = 0x892D :: GLenum
+pattern GL_REG_12_ATI = 0x892D
 
-pattern GL_REG_13_ATI = 0x892E :: GLenum
+pattern GL_REG_13_ATI = 0x892E
 
-pattern GL_REG_14_ATI = 0x892F :: GLenum
+pattern GL_REG_14_ATI = 0x892F
 
-pattern GL_REG_15_ATI = 0x8930 :: GLenum
+pattern GL_REG_15_ATI = 0x8930
 
-pattern GL_REG_16_ATI = 0x8931 :: GLenum
+pattern GL_REG_16_ATI = 0x8931
 
-pattern GL_REG_17_ATI = 0x8932 :: GLenum
+pattern GL_REG_17_ATI = 0x8932
 
-pattern GL_REG_18_ATI = 0x8933 :: GLenum
+pattern GL_REG_18_ATI = 0x8933
 
-pattern GL_REG_19_ATI = 0x8934 :: GLenum
+pattern GL_REG_19_ATI = 0x8934
 
-pattern GL_REG_1_ATI = 0x8922 :: GLenum
+pattern GL_REG_1_ATI = 0x8922
 
-pattern GL_REG_20_ATI = 0x8935 :: GLenum
+pattern GL_REG_20_ATI = 0x8935
 
-pattern GL_REG_21_ATI = 0x8936 :: GLenum
+pattern GL_REG_21_ATI = 0x8936
 
-pattern GL_REG_22_ATI = 0x8937 :: GLenum
+pattern GL_REG_22_ATI = 0x8937
 
-pattern GL_REG_23_ATI = 0x8938 :: GLenum
+pattern GL_REG_23_ATI = 0x8938
 
-pattern GL_REG_24_ATI = 0x8939 :: GLenum
+pattern GL_REG_24_ATI = 0x8939
 
-pattern GL_REG_25_ATI = 0x893A :: GLenum
+pattern GL_REG_25_ATI = 0x893A
 
-pattern GL_REG_26_ATI = 0x893B :: GLenum
+pattern GL_REG_26_ATI = 0x893B
 
-pattern GL_REG_27_ATI = 0x893C :: GLenum
+pattern GL_REG_27_ATI = 0x893C
 
-pattern GL_REG_28_ATI = 0x893D :: GLenum
+pattern GL_REG_28_ATI = 0x893D
 
-pattern GL_REG_29_ATI = 0x893E :: GLenum
+pattern GL_REG_29_ATI = 0x893E
 
-pattern GL_REG_2_ATI = 0x8923 :: GLenum
+pattern GL_REG_2_ATI = 0x8923
 
-pattern GL_REG_30_ATI = 0x893F :: GLenum
+pattern GL_REG_30_ATI = 0x893F
 
-pattern GL_REG_31_ATI = 0x8940 :: GLenum
+pattern GL_REG_31_ATI = 0x8940
 
-pattern GL_REG_3_ATI = 0x8924 :: GLenum
+pattern GL_REG_3_ATI = 0x8924
 
-pattern GL_REG_4_ATI = 0x8925 :: GLenum
+pattern GL_REG_4_ATI = 0x8925
 
-pattern GL_REG_5_ATI = 0x8926 :: GLenum
+pattern GL_REG_5_ATI = 0x8926
 
-pattern GL_REG_6_ATI = 0x8927 :: GLenum
+pattern GL_REG_6_ATI = 0x8927
 
-pattern GL_REG_7_ATI = 0x8928 :: GLenum
+pattern GL_REG_7_ATI = 0x8928
 
-pattern GL_REG_8_ATI = 0x8929 :: GLenum
+pattern GL_REG_8_ATI = 0x8929
 
-pattern GL_REG_9_ATI = 0x892A :: GLenum
+pattern GL_REG_9_ATI = 0x892A
 
-pattern GL_SATURATE_BIT_ATI = 0x00000040 :: GLenum
+pattern GL_SATURATE_BIT_ATI = 0x00000040
 
-pattern GL_SECONDARY_INTERPOLATOR_ATI = 0x896D :: GLenum
+pattern GL_SECONDARY_INTERPOLATOR_ATI = 0x896D
 
-pattern GL_SUB_ATI = 0x8965 :: GLenum
+pattern GL_SUB_ATI = 0x8965
 
-pattern GL_SWIZZLE_STQ_ATI = 0x8977 :: GLenum
+pattern GL_SWIZZLE_STQ_ATI = 0x8977
 
-pattern GL_SWIZZLE_STQ_DQ_ATI = 0x8979 :: GLenum
+pattern GL_SWIZZLE_STQ_DQ_ATI = 0x8979
 
-pattern GL_SWIZZLE_STRQ_ATI = 0x897A :: GLenum
+pattern GL_SWIZZLE_STRQ_ATI = 0x897A
 
-pattern GL_SWIZZLE_STRQ_DQ_ATI = 0x897B :: GLenum
+pattern GL_SWIZZLE_STRQ_DQ_ATI = 0x897B
 
-pattern GL_SWIZZLE_STR_ATI = 0x8976 :: GLenum
+pattern GL_SWIZZLE_STR_ATI = 0x8976
 
-pattern GL_SWIZZLE_STR_DR_ATI = 0x8978 :: GLenum
+pattern GL_SWIZZLE_STR_DR_ATI = 0x8978
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ATI/Meminfo.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ATI/Meminfo.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ATI/Meminfo.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ATI/Meminfo.hs
@@ -12,13 +12,12 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_ATI_meminfo :: Bool
 gl_ATI_meminfo = member "GL_ATI_meminfo" extensions
 
-pattern GL_RENDERBUFFER_FREE_MEMORY_ATI = 0x87FD :: GLenum
+pattern GL_RENDERBUFFER_FREE_MEMORY_ATI = 0x87FD
 
-pattern GL_TEXTURE_FREE_MEMORY_ATI = 0x87FC :: GLenum
+pattern GL_TEXTURE_FREE_MEMORY_ATI = 0x87FC
 
-pattern GL_VBO_FREE_MEMORY_ATI = 0x87FB :: GLenum
+pattern GL_VBO_FREE_MEMORY_ATI = 0x87FB
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ATI/PixelFormatFloat.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ATI/PixelFormatFloat.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ATI/PixelFormatFloat.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ATI/PixelFormatFloat.hs
@@ -11,11 +11,10 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_ATI_pixel_format_float :: Bool
 gl_ATI_pixel_format_float = member "GL_ATI_pixel_format_float" extensions
 
-pattern GL_COLOR_CLEAR_UNCLAMPED_VALUE_ATI = 0x8835 :: GLenum
+pattern GL_COLOR_CLEAR_UNCLAMPED_VALUE_ATI = 0x8835
 
-pattern GL_RGBA_FLOAT_MODE_ATI = 0x8820 :: GLenum
+pattern GL_RGBA_FLOAT_MODE_ATI = 0x8820
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ATI/PnTriangles.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ATI/PnTriangles.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ATI/PnTriangles.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ATI/PnTriangles.hs
@@ -45,20 +45,20 @@
 
 {-# NOINLINE glPNTrianglesiATIFunPtr #-}
 
-pattern GL_MAX_PN_TRIANGLES_TESSELATION_LEVEL_ATI = 0x87F1 :: GLenum
+pattern GL_MAX_PN_TRIANGLES_TESSELATION_LEVEL_ATI = 0x87F1
 
-pattern GL_PN_TRIANGLES_ATI = 0x87F0 :: GLenum
+pattern GL_PN_TRIANGLES_ATI = 0x87F0
 
-pattern GL_PN_TRIANGLES_NORMAL_MODE_ATI = 0x87F3 :: GLenum
+pattern GL_PN_TRIANGLES_NORMAL_MODE_ATI = 0x87F3
 
-pattern GL_PN_TRIANGLES_NORMAL_MODE_LINEAR_ATI = 0x87F7 :: GLenum
+pattern GL_PN_TRIANGLES_NORMAL_MODE_LINEAR_ATI = 0x87F7
 
-pattern GL_PN_TRIANGLES_NORMAL_MODE_QUADRATIC_ATI = 0x87F8 :: GLenum
+pattern GL_PN_TRIANGLES_NORMAL_MODE_QUADRATIC_ATI = 0x87F8
 
-pattern GL_PN_TRIANGLES_POINT_MODE_ATI = 0x87F2 :: GLenum
+pattern GL_PN_TRIANGLES_POINT_MODE_ATI = 0x87F2
 
-pattern GL_PN_TRIANGLES_POINT_MODE_CUBIC_ATI = 0x87F6 :: GLenum
+pattern GL_PN_TRIANGLES_POINT_MODE_CUBIC_ATI = 0x87F6
 
-pattern GL_PN_TRIANGLES_POINT_MODE_LINEAR_ATI = 0x87F5 :: GLenum
+pattern GL_PN_TRIANGLES_POINT_MODE_LINEAR_ATI = 0x87F5
 
-pattern GL_PN_TRIANGLES_TESSELATION_LEVEL_ATI = 0x87F4 :: GLenum
+pattern GL_PN_TRIANGLES_TESSELATION_LEVEL_ATI = 0x87F4
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ATI/SeparateStencil.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ATI/SeparateStencil.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ATI/SeparateStencil.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ATI/SeparateStencil.hs
@@ -40,10 +40,10 @@
 
 {-# NOINLINE glStencilOpSeparateATIFunPtr #-}
 
-pattern GL_STENCIL_BACK_FAIL_ATI = 0x8801 :: GLenum
+pattern GL_STENCIL_BACK_FAIL_ATI = 0x8801
 
-pattern GL_STENCIL_BACK_FUNC_ATI = 0x8800 :: GLenum
+pattern GL_STENCIL_BACK_FUNC_ATI = 0x8800
 
-pattern GL_STENCIL_BACK_PASS_DEPTH_FAIL_ATI = 0x8802 :: GLenum
+pattern GL_STENCIL_BACK_PASS_DEPTH_FAIL_ATI = 0x8802
 
-pattern GL_STENCIL_BACK_PASS_DEPTH_PASS_ATI = 0x8803 :: GLenum
+pattern GL_STENCIL_BACK_PASS_DEPTH_PASS_ATI = 0x8803
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ATI/TextFragmentShader.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ATI/TextFragmentShader.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ATI/TextFragmentShader.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ATI/TextFragmentShader.hs
@@ -10,9 +10,8 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_ATI_text_fragment_shader :: Bool
 gl_ATI_text_fragment_shader = member "GL_ATI_text_fragment_shader" extensions
 
-pattern GL_TEXT_FRAGMENT_SHADER_ATI = 0x8200 :: GLenum
+pattern GL_TEXT_FRAGMENT_SHADER_ATI = 0x8200
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ATI/TextureEnvCombine3.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ATI/TextureEnvCombine3.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ATI/TextureEnvCombine3.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ATI/TextureEnvCombine3.hs
@@ -12,13 +12,12 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_ATI_texture_env_combine3 :: Bool
 gl_ATI_texture_env_combine3 = member "GL_ATI_texture_env_combine3" extensions
 
-pattern GL_MODULATE_ADD_ATI = 0x8744 :: GLenum
+pattern GL_MODULATE_ADD_ATI = 0x8744
 
-pattern GL_MODULATE_SIGNED_ADD_ATI = 0x8745 :: GLenum
+pattern GL_MODULATE_SIGNED_ADD_ATI = 0x8745
 
-pattern GL_MODULATE_SUBTRACT_ATI = 0x8746 :: GLenum
+pattern GL_MODULATE_SUBTRACT_ATI = 0x8746
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ATI/TextureFloat.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ATI/TextureFloat.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ATI/TextureFloat.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ATI/TextureFloat.hs
@@ -21,31 +21,30 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_ATI_texture_float :: Bool
 gl_ATI_texture_float = member "GL_ATI_texture_float" extensions
 
-pattern GL_ALPHA_FLOAT16_ATI = 0x881C :: GLenum
+pattern GL_ALPHA_FLOAT16_ATI = 0x881C
 
-pattern GL_ALPHA_FLOAT32_ATI = 0x8816 :: GLenum
+pattern GL_ALPHA_FLOAT32_ATI = 0x8816
 
-pattern GL_INTENSITY_FLOAT16_ATI = 0x881D :: GLenum
+pattern GL_INTENSITY_FLOAT16_ATI = 0x881D
 
-pattern GL_INTENSITY_FLOAT32_ATI = 0x8817 :: GLenum
+pattern GL_INTENSITY_FLOAT32_ATI = 0x8817
 
-pattern GL_LUMINANCE_ALPHA_FLOAT16_ATI = 0x881F :: GLenum
+pattern GL_LUMINANCE_ALPHA_FLOAT16_ATI = 0x881F
 
-pattern GL_LUMINANCE_ALPHA_FLOAT32_ATI = 0x8819 :: GLenum
+pattern GL_LUMINANCE_ALPHA_FLOAT32_ATI = 0x8819
 
-pattern GL_LUMINANCE_FLOAT16_ATI = 0x881E :: GLenum
+pattern GL_LUMINANCE_FLOAT16_ATI = 0x881E
 
-pattern GL_LUMINANCE_FLOAT32_ATI = 0x8818 :: GLenum
+pattern GL_LUMINANCE_FLOAT32_ATI = 0x8818
 
-pattern GL_RGBA_FLOAT16_ATI = 0x881A :: GLenum
+pattern GL_RGBA_FLOAT16_ATI = 0x881A
 
-pattern GL_RGBA_FLOAT32_ATI = 0x8814 :: GLenum
+pattern GL_RGBA_FLOAT32_ATI = 0x8814
 
-pattern GL_RGB_FLOAT16_ATI = 0x881B :: GLenum
+pattern GL_RGB_FLOAT16_ATI = 0x881B
 
-pattern GL_RGB_FLOAT32_ATI = 0x8815 :: GLenum
+pattern GL_RGB_FLOAT32_ATI = 0x8815
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ATI/TextureMirrorOnce.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ATI/TextureMirrorOnce.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ATI/TextureMirrorOnce.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ATI/TextureMirrorOnce.hs
@@ -11,11 +11,10 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_ATI_texture_mirror_once :: Bool
 gl_ATI_texture_mirror_once = member "GL_ATI_texture_mirror_once" extensions
 
-pattern GL_MIRROR_CLAMP_ATI = 0x8742 :: GLenum
+pattern GL_MIRROR_CLAMP_ATI = 0x8742
 
-pattern GL_MIRROR_CLAMP_TO_EDGE_ATI = 0x8743 :: GLenum
+pattern GL_MIRROR_CLAMP_TO_EDGE_ATI = 0x8743
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ATI/VertexArrayObject.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ATI/VertexArrayObject.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ATI/VertexArrayObject.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ATI/VertexArrayObject.hs
@@ -134,18 +134,18 @@
 
 {-# NOINLINE glVariantArrayObjectATIFunPtr #-}
 
-pattern GL_ARRAY_OBJECT_BUFFER_ATI = 0x8766 :: GLenum
+pattern GL_ARRAY_OBJECT_BUFFER_ATI = 0x8766
 
-pattern GL_ARRAY_OBJECT_OFFSET_ATI = 0x8767 :: GLenum
+pattern GL_ARRAY_OBJECT_OFFSET_ATI = 0x8767
 
-pattern GL_DISCARD_ATI = 0x8763 :: GLenum
+pattern GL_DISCARD_ATI = 0x8763
 
-pattern GL_DYNAMIC_ATI = 0x8761 :: GLenum
+pattern GL_DYNAMIC_ATI = 0x8761
 
-pattern GL_OBJECT_BUFFER_SIZE_ATI = 0x8764 :: GLenum
+pattern GL_OBJECT_BUFFER_SIZE_ATI = 0x8764
 
-pattern GL_OBJECT_BUFFER_USAGE_ATI = 0x8765 :: GLenum
+pattern GL_OBJECT_BUFFER_USAGE_ATI = 0x8765
 
-pattern GL_PRESERVE_ATI = 0x8762 :: GLenum
+pattern GL_PRESERVE_ATI = 0x8762
 
-pattern GL_STATIC_ATI = 0x8760 :: GLenum
+pattern GL_STATIC_ATI = 0x8760
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ATI/VertexStreams.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ATI/VertexStreams.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ATI/VertexStreams.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ATI/VertexStreams.hs
@@ -433,22 +433,22 @@
 
 {-# NOINLINE glVertexStream4svATIFunPtr #-}
 
-pattern GL_MAX_VERTEX_STREAMS_ATI = 0x876B :: GLenum
+pattern GL_MAX_VERTEX_STREAMS_ATI = 0x876B
 
-pattern GL_VERTEX_SOURCE_ATI = 0x8774 :: GLenum
+pattern GL_VERTEX_SOURCE_ATI = 0x8774
 
-pattern GL_VERTEX_STREAM0_ATI = 0x876C :: GLenum
+pattern GL_VERTEX_STREAM0_ATI = 0x876C
 
-pattern GL_VERTEX_STREAM1_ATI = 0x876D :: GLenum
+pattern GL_VERTEX_STREAM1_ATI = 0x876D
 
-pattern GL_VERTEX_STREAM2_ATI = 0x876E :: GLenum
+pattern GL_VERTEX_STREAM2_ATI = 0x876E
 
-pattern GL_VERTEX_STREAM3_ATI = 0x876F :: GLenum
+pattern GL_VERTEX_STREAM3_ATI = 0x876F
 
-pattern GL_VERTEX_STREAM4_ATI = 0x8770 :: GLenum
+pattern GL_VERTEX_STREAM4_ATI = 0x8770
 
-pattern GL_VERTEX_STREAM5_ATI = 0x8771 :: GLenum
+pattern GL_VERTEX_STREAM5_ATI = 0x8771
 
-pattern GL_VERTEX_STREAM6_ATI = 0x8772 :: GLenum
+pattern GL_VERTEX_STREAM6_ATI = 0x8772
 
-pattern GL_VERTEX_STREAM7_ATI = 0x8773 :: GLenum
+pattern GL_VERTEX_STREAM7_ATI = 0x8773
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/DMP/ProgramBinary.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/DMP/ProgramBinary.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/DMP/ProgramBinary.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/DMP/ProgramBinary.hs
@@ -12,13 +12,12 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_DMP_program_binary :: Bool
 gl_DMP_program_binary = member "GL_DMP_program_binary" extensions
 
-pattern GL_DMP_PROGRAM_BINARY_DMP = 0x9253 :: GLenum
+pattern GL_DMP_PROGRAM_BINARY_DMP = 0x9253
 
-pattern GL_SMAPHS30_PROGRAM_BINARY_DMP = 0x9251 :: GLenum
+pattern GL_SMAPHS30_PROGRAM_BINARY_DMP = 0x9251
 
-pattern GL_SMAPHS_PROGRAM_BINARY_DMP = 0x9252 :: GLenum
+pattern GL_SMAPHS_PROGRAM_BINARY_DMP = 0x9252
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/DMP/ShaderBinary.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/DMP/ShaderBinary.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/DMP/ShaderBinary.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/DMP/ShaderBinary.hs
@@ -10,9 +10,8 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_DMP_shader_binary :: Bool
 gl_DMP_shader_binary = member "GL_DMP_shader_binary" extensions
 
-pattern GL_SHADER_BINARY_DMP = 0x9250 :: GLenum
+pattern GL_SHADER_BINARY_DMP = 0x9250
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/Abgr.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/Abgr.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/Abgr.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/Abgr.hs
@@ -10,9 +10,8 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_EXT_abgr :: Bool
 gl_EXT_abgr = member "GL_EXT_abgr" extensions
 
-pattern GL_ABGR_EXT = 0x8000 :: GLenum
+pattern GL_ABGR_EXT = 0x8000
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/Bgra.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/Bgra.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/Bgra.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/Bgra.hs
@@ -12,9 +12,8 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
-import Graphics.GL.Raw.Types
 
 gl_EXT_bgra :: Bool
 gl_EXT_bgra = member "GL_EXT_bgra" extensions
 
-pattern GL_BGR_EXT = 0x80E0 :: GLenum
+pattern GL_BGR_EXT = 0x80E0
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/BindableUniform.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/BindableUniform.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/BindableUniform.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/BindableUniform.hs
@@ -51,14 +51,14 @@
 
 {-# NOINLINE glUniformBufferEXTFunPtr #-}
 
-pattern GL_MAX_BINDABLE_UNIFORM_SIZE_EXT = 0x8DED :: GLenum
+pattern GL_MAX_BINDABLE_UNIFORM_SIZE_EXT = 0x8DED
 
-pattern GL_MAX_FRAGMENT_BINDABLE_UNIFORMS_EXT = 0x8DE3 :: GLenum
+pattern GL_MAX_FRAGMENT_BINDABLE_UNIFORMS_EXT = 0x8DE3
 
-pattern GL_MAX_GEOMETRY_BINDABLE_UNIFORMS_EXT = 0x8DE4 :: GLenum
+pattern GL_MAX_GEOMETRY_BINDABLE_UNIFORMS_EXT = 0x8DE4
 
-pattern GL_MAX_VERTEX_BINDABLE_UNIFORMS_EXT = 0x8DE2 :: GLenum
+pattern GL_MAX_VERTEX_BINDABLE_UNIFORMS_EXT = 0x8DE2
 
-pattern GL_UNIFORM_BUFFER_BINDING_EXT = 0x8DEF :: GLenum
+pattern GL_UNIFORM_BUFFER_BINDING_EXT = 0x8DEF
 
-pattern GL_UNIFORM_BUFFER_EXT = 0x8DEE :: GLenum
+pattern GL_UNIFORM_BUFFER_EXT = 0x8DEE
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/BlendColor.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/BlendColor.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/BlendColor.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/BlendColor.hs
@@ -32,12 +32,12 @@
 
 {-# NOINLINE glBlendColorEXTFunPtr #-}
 
-pattern GL_BLEND_COLOR_EXT = 0x8005 :: GLenum
+pattern GL_BLEND_COLOR_EXT = 0x8005
 
-pattern GL_CONSTANT_ALPHA_EXT = 0x8003 :: GLenum
+pattern GL_CONSTANT_ALPHA_EXT = 0x8003
 
-pattern GL_CONSTANT_COLOR_EXT = 0x8001 :: GLenum
+pattern GL_CONSTANT_COLOR_EXT = 0x8001
 
-pattern GL_ONE_MINUS_CONSTANT_ALPHA_EXT = 0x8004 :: GLenum
+pattern GL_ONE_MINUS_CONSTANT_ALPHA_EXT = 0x8004
 
-pattern GL_ONE_MINUS_CONSTANT_COLOR_EXT = 0x8002 :: GLenum
+pattern GL_ONE_MINUS_CONSTANT_COLOR_EXT = 0x8002
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/BlendEquationSeparate.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/BlendEquationSeparate.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/BlendEquationSeparate.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/BlendEquationSeparate.hs
@@ -29,6 +29,6 @@
 
 {-# NOINLINE glBlendEquationSeparateEXTFunPtr #-}
 
-pattern GL_BLEND_EQUATION_ALPHA_EXT = 0x883D :: GLenum
+pattern GL_BLEND_EQUATION_ALPHA_EXT = 0x883D
 
-pattern GL_BLEND_EQUATION_RGB_EXT = 0x8009 :: GLenum
+pattern GL_BLEND_EQUATION_RGB_EXT = 0x8009
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/BlendFuncSeparate.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/BlendFuncSeparate.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/BlendFuncSeparate.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/BlendFuncSeparate.hs
@@ -31,10 +31,10 @@
 
 {-# NOINLINE glBlendFuncSeparateEXTFunPtr #-}
 
-pattern GL_BLEND_DST_ALPHA_EXT = 0x80CA :: GLenum
+pattern GL_BLEND_DST_ALPHA_EXT = 0x80CA
 
-pattern GL_BLEND_DST_RGB_EXT = 0x80C8 :: GLenum
+pattern GL_BLEND_DST_RGB_EXT = 0x80C8
 
-pattern GL_BLEND_SRC_ALPHA_EXT = 0x80CB :: GLenum
+pattern GL_BLEND_SRC_ALPHA_EXT = 0x80CB
 
-pattern GL_BLEND_SRC_RGB_EXT = 0x80C9 :: GLenum
+pattern GL_BLEND_SRC_RGB_EXT = 0x80C9
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/BlendMinmax.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/BlendMinmax.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/BlendMinmax.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/BlendMinmax.hs
@@ -31,10 +31,10 @@
 
 {-# NOINLINE glBlendEquationEXTFunPtr #-}
 
-pattern GL_BLEND_EQUATION_EXT = 0x8009 :: GLenum
+pattern GL_BLEND_EQUATION_EXT = 0x8009
 
-pattern GL_FUNC_ADD_EXT = 0x8006 :: GLenum
+pattern GL_FUNC_ADD_EXT = 0x8006
 
-pattern GL_MAX_EXT = 0x8008 :: GLenum
+pattern GL_MAX_EXT = 0x8008
 
-pattern GL_MIN_EXT = 0x8007 :: GLenum
+pattern GL_MIN_EXT = 0x8007
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/BlendSubtract.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/BlendSubtract.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/BlendSubtract.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/BlendSubtract.hs
@@ -11,11 +11,10 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_EXT_blend_subtract :: Bool
 gl_EXT_blend_subtract = member "GL_EXT_blend_subtract" extensions
 
-pattern GL_FUNC_REVERSE_SUBTRACT_EXT = 0x800B :: GLenum
+pattern GL_FUNC_REVERSE_SUBTRACT_EXT = 0x800B
 
-pattern GL_FUNC_SUBTRACT_EXT = 0x800A :: GLenum
+pattern GL_FUNC_SUBTRACT_EXT = 0x800A
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/ClipVolumeHint.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/ClipVolumeHint.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/ClipVolumeHint.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/ClipVolumeHint.hs
@@ -10,9 +10,8 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_EXT_clip_volume_hint :: Bool
 gl_EXT_clip_volume_hint = member "GL_EXT_clip_volume_hint" extensions
 
-pattern GL_CLIP_VOLUME_CLIPPING_HINT_EXT = 0x80F0 :: GLenum
+pattern GL_CLIP_VOLUME_CLIPPING_HINT_EXT = 0x80F0
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/Cmyka.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/Cmyka.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/Cmyka.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/Cmyka.hs
@@ -13,15 +13,14 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_EXT_cmyka :: Bool
 gl_EXT_cmyka = member "GL_EXT_cmyka" extensions
 
-pattern GL_CMYKA_EXT = 0x800D :: GLenum
+pattern GL_CMYKA_EXT = 0x800D
 
-pattern GL_CMYK_EXT = 0x800C :: GLenum
+pattern GL_CMYK_EXT = 0x800C
 
-pattern GL_PACK_CMYK_HINT_EXT = 0x800E :: GLenum
+pattern GL_PACK_CMYK_HINT_EXT = 0x800E
 
-pattern GL_UNPACK_CMYK_HINT_EXT = 0x800F :: GLenum
+pattern GL_UNPACK_CMYK_HINT_EXT = 0x800F
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/ColorBufferHalfFloat.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/ColorBufferHalfFloat.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/ColorBufferHalfFloat.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/ColorBufferHalfFloat.hs
@@ -16,11 +16,10 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
-import Graphics.GL.Raw.Types
 
 gl_EXT_color_buffer_half_float :: Bool
 gl_EXT_color_buffer_half_float = member "GL_EXT_color_buffer_half_float" extensions
 
-pattern GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE_EXT = 0x8211 :: GLenum
+pattern GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE_EXT = 0x8211
 
-pattern GL_UNSIGNED_NORMALIZED_EXT = 0x8C17 :: GLenum
+pattern GL_UNSIGNED_NORMALIZED_EXT = 0x8C17
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/CompiledVertexArray.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/CompiledVertexArray.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/CompiledVertexArray.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/CompiledVertexArray.hs
@@ -38,6 +38,6 @@
 
 {-# NOINLINE glUnlockArraysEXTFunPtr #-}
 
-pattern GL_ARRAY_ELEMENT_LOCK_COUNT_EXT = 0x81A9 :: GLenum
+pattern GL_ARRAY_ELEMENT_LOCK_COUNT_EXT = 0x81A9
 
-pattern GL_ARRAY_ELEMENT_LOCK_FIRST_EXT = 0x81A8 :: GLenum
+pattern GL_ARRAY_ELEMENT_LOCK_FIRST_EXT = 0x81A8
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/Convolution.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/Convolution.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/Convolution.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/Convolution.hs
@@ -155,42 +155,42 @@
 
 {-# NOINLINE glSeparableFilter2DEXTFunPtr #-}
 
-pattern GL_CONVOLUTION_1D_EXT = 0x8010 :: GLenum
+pattern GL_CONVOLUTION_1D_EXT = 0x8010
 
-pattern GL_CONVOLUTION_2D_EXT = 0x8011 :: GLenum
+pattern GL_CONVOLUTION_2D_EXT = 0x8011
 
-pattern GL_CONVOLUTION_BORDER_MODE_EXT = 0x8013 :: GLenum
+pattern GL_CONVOLUTION_BORDER_MODE_EXT = 0x8013
 
-pattern GL_CONVOLUTION_FILTER_BIAS_EXT = 0x8015 :: GLenum
+pattern GL_CONVOLUTION_FILTER_BIAS_EXT = 0x8015
 
-pattern GL_CONVOLUTION_FILTER_SCALE_EXT = 0x8014 :: GLenum
+pattern GL_CONVOLUTION_FILTER_SCALE_EXT = 0x8014
 
-pattern GL_CONVOLUTION_FORMAT_EXT = 0x8017 :: GLenum
+pattern GL_CONVOLUTION_FORMAT_EXT = 0x8017
 
-pattern GL_CONVOLUTION_HEIGHT_EXT = 0x8019 :: GLenum
+pattern GL_CONVOLUTION_HEIGHT_EXT = 0x8019
 
-pattern GL_CONVOLUTION_WIDTH_EXT = 0x8018 :: GLenum
+pattern GL_CONVOLUTION_WIDTH_EXT = 0x8018
 
-pattern GL_MAX_CONVOLUTION_HEIGHT_EXT = 0x801B :: GLenum
+pattern GL_MAX_CONVOLUTION_HEIGHT_EXT = 0x801B
 
-pattern GL_MAX_CONVOLUTION_WIDTH_EXT = 0x801A :: GLenum
+pattern GL_MAX_CONVOLUTION_WIDTH_EXT = 0x801A
 
-pattern GL_POST_CONVOLUTION_ALPHA_BIAS_EXT = 0x8023 :: GLenum
+pattern GL_POST_CONVOLUTION_ALPHA_BIAS_EXT = 0x8023
 
-pattern GL_POST_CONVOLUTION_ALPHA_SCALE_EXT = 0x801F :: GLenum
+pattern GL_POST_CONVOLUTION_ALPHA_SCALE_EXT = 0x801F
 
-pattern GL_POST_CONVOLUTION_BLUE_BIAS_EXT = 0x8022 :: GLenum
+pattern GL_POST_CONVOLUTION_BLUE_BIAS_EXT = 0x8022
 
-pattern GL_POST_CONVOLUTION_BLUE_SCALE_EXT = 0x801E :: GLenum
+pattern GL_POST_CONVOLUTION_BLUE_SCALE_EXT = 0x801E
 
-pattern GL_POST_CONVOLUTION_GREEN_BIAS_EXT = 0x8021 :: GLenum
+pattern GL_POST_CONVOLUTION_GREEN_BIAS_EXT = 0x8021
 
-pattern GL_POST_CONVOLUTION_GREEN_SCALE_EXT = 0x801D :: GLenum
+pattern GL_POST_CONVOLUTION_GREEN_SCALE_EXT = 0x801D
 
-pattern GL_POST_CONVOLUTION_RED_BIAS_EXT = 0x8020 :: GLenum
+pattern GL_POST_CONVOLUTION_RED_BIAS_EXT = 0x8020
 
-pattern GL_POST_CONVOLUTION_RED_SCALE_EXT = 0x801C :: GLenum
+pattern GL_POST_CONVOLUTION_RED_SCALE_EXT = 0x801C
 
-pattern GL_REDUCE_EXT = 0x8016 :: GLenum
+pattern GL_REDUCE_EXT = 0x8016
 
-pattern GL_SEPARABLE_2D_EXT = 0x8012 :: GLenum
+pattern GL_SEPARABLE_2D_EXT = 0x8012
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/CoordinateFrame.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/CoordinateFrame.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/CoordinateFrame.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/CoordinateFrame.hs
@@ -230,30 +230,30 @@
 
 {-# NOINLINE glTangentPointerEXTFunPtr #-}
 
-pattern GL_BINORMAL_ARRAY_EXT = 0x843A :: GLenum
+pattern GL_BINORMAL_ARRAY_EXT = 0x843A
 
-pattern GL_BINORMAL_ARRAY_POINTER_EXT = 0x8443 :: GLenum
+pattern GL_BINORMAL_ARRAY_POINTER_EXT = 0x8443
 
-pattern GL_BINORMAL_ARRAY_STRIDE_EXT = 0x8441 :: GLenum
+pattern GL_BINORMAL_ARRAY_STRIDE_EXT = 0x8441
 
-pattern GL_BINORMAL_ARRAY_TYPE_EXT = 0x8440 :: GLenum
+pattern GL_BINORMAL_ARRAY_TYPE_EXT = 0x8440
 
-pattern GL_CURRENT_BINORMAL_EXT = 0x843C :: GLenum
+pattern GL_CURRENT_BINORMAL_EXT = 0x843C
 
-pattern GL_CURRENT_TANGENT_EXT = 0x843B :: GLenum
+pattern GL_CURRENT_TANGENT_EXT = 0x843B
 
-pattern GL_MAP1_BINORMAL_EXT = 0x8446 :: GLenum
+pattern GL_MAP1_BINORMAL_EXT = 0x8446
 
-pattern GL_MAP1_TANGENT_EXT = 0x8444 :: GLenum
+pattern GL_MAP1_TANGENT_EXT = 0x8444
 
-pattern GL_MAP2_BINORMAL_EXT = 0x8447 :: GLenum
+pattern GL_MAP2_BINORMAL_EXT = 0x8447
 
-pattern GL_MAP2_TANGENT_EXT = 0x8445 :: GLenum
+pattern GL_MAP2_TANGENT_EXT = 0x8445
 
-pattern GL_TANGENT_ARRAY_EXT = 0x8439 :: GLenum
+pattern GL_TANGENT_ARRAY_EXT = 0x8439
 
-pattern GL_TANGENT_ARRAY_POINTER_EXT = 0x8442 :: GLenum
+pattern GL_TANGENT_ARRAY_POINTER_EXT = 0x8442
 
-pattern GL_TANGENT_ARRAY_STRIDE_EXT = 0x843F :: GLenum
+pattern GL_TANGENT_ARRAY_STRIDE_EXT = 0x843F
 
-pattern GL_TANGENT_ARRAY_TYPE_EXT = 0x843E :: GLenum
+pattern GL_TANGENT_ARRAY_TYPE_EXT = 0x843E
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/CullVertex.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/CullVertex.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/CullVertex.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/CullVertex.hs
@@ -39,8 +39,8 @@
 
 {-# NOINLINE glCullParameterfvEXTFunPtr #-}
 
-pattern GL_CULL_VERTEX_EXT = 0x81AA :: GLenum
+pattern GL_CULL_VERTEX_EXT = 0x81AA
 
-pattern GL_CULL_VERTEX_EYE_POSITION_EXT = 0x81AB :: GLenum
+pattern GL_CULL_VERTEX_EYE_POSITION_EXT = 0x81AB
 
-pattern GL_CULL_VERTEX_OBJECT_POSITION_EXT = 0x81AC :: GLenum
+pattern GL_CULL_VERTEX_OBJECT_POSITION_EXT = 0x81AC
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/DebugLabel.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/DebugLabel.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/DebugLabel.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/DebugLabel.hs
@@ -45,14 +45,14 @@
 
 {-# NOINLINE glLabelObjectEXTFunPtr #-}
 
-pattern GL_BUFFER_OBJECT_EXT = 0x9151 :: GLenum
+pattern GL_BUFFER_OBJECT_EXT = 0x9151
 
-pattern GL_PROGRAM_OBJECT_EXT = 0x8B40 :: GLenum
+pattern GL_PROGRAM_OBJECT_EXT = 0x8B40
 
-pattern GL_PROGRAM_PIPELINE_OBJECT_EXT = 0x8A4F :: GLenum
+pattern GL_PROGRAM_PIPELINE_OBJECT_EXT = 0x8A4F
 
-pattern GL_QUERY_OBJECT_EXT = 0x9153 :: GLenum
+pattern GL_QUERY_OBJECT_EXT = 0x9153
 
-pattern GL_SHADER_OBJECT_EXT = 0x8B48 :: GLenum
+pattern GL_SHADER_OBJECT_EXT = 0x8B48
 
-pattern GL_VERTEX_ARRAY_OBJECT_EXT = 0x9154 :: GLenum
+pattern GL_VERTEX_ARRAY_OBJECT_EXT = 0x9154
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/DepthBoundsTest.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/DepthBoundsTest.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/DepthBoundsTest.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/DepthBoundsTest.hs
@@ -29,6 +29,6 @@
 
 {-# NOINLINE glDepthBoundsEXTFunPtr #-}
 
-pattern GL_DEPTH_BOUNDS_EXT = 0x8891 :: GLenum
+pattern GL_DEPTH_BOUNDS_EXT = 0x8891
 
-pattern GL_DEPTH_BOUNDS_TEST_EXT = 0x8890 :: GLenum
+pattern GL_DEPTH_BOUNDS_TEST_EXT = 0x8890
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/DirectStateAccess.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/DirectStateAccess.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/DirectStateAccess.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/DirectStateAccess.hs
@@ -1989,8 +1989,8 @@
 
 {-# NOINLINE glVertexArrayVertexOffsetEXTFunPtr #-}
 
-pattern GL_PROGRAM_MATRIX_EXT = 0x8E2D :: GLenum
+pattern GL_PROGRAM_MATRIX_EXT = 0x8E2D
 
-pattern GL_PROGRAM_MATRIX_STACK_DEPTH_EXT = 0x8E2F :: GLenum
+pattern GL_PROGRAM_MATRIX_STACK_DEPTH_EXT = 0x8E2F
 
-pattern GL_TRANSPOSE_PROGRAM_MATRIX_EXT = 0x8E2E :: GLenum
+pattern GL_TRANSPOSE_PROGRAM_MATRIX_EXT = 0x8E2E
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/DiscardFramebuffer.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/DiscardFramebuffer.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/DiscardFramebuffer.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/DiscardFramebuffer.hs
@@ -30,8 +30,8 @@
 
 {-# NOINLINE glDiscardFramebufferEXTFunPtr #-}
 
-pattern GL_COLOR_EXT = 0x1800 :: GLenum
+pattern GL_COLOR_EXT = 0x1800
 
-pattern GL_DEPTH_EXT = 0x1801 :: GLenum
+pattern GL_DEPTH_EXT = 0x1801
 
-pattern GL_STENCIL_EXT = 0x1802 :: GLenum
+pattern GL_STENCIL_EXT = 0x1802
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/DisjointTimerQuery.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/DisjointTimerQuery.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/DisjointTimerQuery.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/DisjointTimerQuery.hs
@@ -53,8 +53,8 @@
 
 {-# NOINLINE glQueryCounterEXTFunPtr #-}
 
-pattern GL_GPU_DISJOINT_EXT = 0x8FBB :: GLenum
+pattern GL_GPU_DISJOINT_EXT = 0x8FBB
 
-pattern GL_QUERY_COUNTER_BITS_EXT = 0x8864 :: GLenum
+pattern GL_QUERY_COUNTER_BITS_EXT = 0x8864
 
-pattern GL_TIMESTAMP_EXT = 0x8E28 :: GLenum
+pattern GL_TIMESTAMP_EXT = 0x8E28
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/DrawBuffers.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/DrawBuffers.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/DrawBuffers.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/DrawBuffers.hs
@@ -62,36 +62,36 @@
 
 {-# NOINLINE glDrawBuffersEXTFunPtr #-}
 
-pattern GL_DRAW_BUFFER0_EXT = 0x8825 :: GLenum
+pattern GL_DRAW_BUFFER0_EXT = 0x8825
 
-pattern GL_DRAW_BUFFER10_EXT = 0x882F :: GLenum
+pattern GL_DRAW_BUFFER10_EXT = 0x882F
 
-pattern GL_DRAW_BUFFER11_EXT = 0x8830 :: GLenum
+pattern GL_DRAW_BUFFER11_EXT = 0x8830
 
-pattern GL_DRAW_BUFFER12_EXT = 0x8831 :: GLenum
+pattern GL_DRAW_BUFFER12_EXT = 0x8831
 
-pattern GL_DRAW_BUFFER13_EXT = 0x8832 :: GLenum
+pattern GL_DRAW_BUFFER13_EXT = 0x8832
 
-pattern GL_DRAW_BUFFER14_EXT = 0x8833 :: GLenum
+pattern GL_DRAW_BUFFER14_EXT = 0x8833
 
-pattern GL_DRAW_BUFFER15_EXT = 0x8834 :: GLenum
+pattern GL_DRAW_BUFFER15_EXT = 0x8834
 
-pattern GL_DRAW_BUFFER1_EXT = 0x8826 :: GLenum
+pattern GL_DRAW_BUFFER1_EXT = 0x8826
 
-pattern GL_DRAW_BUFFER2_EXT = 0x8827 :: GLenum
+pattern GL_DRAW_BUFFER2_EXT = 0x8827
 
-pattern GL_DRAW_BUFFER3_EXT = 0x8828 :: GLenum
+pattern GL_DRAW_BUFFER3_EXT = 0x8828
 
-pattern GL_DRAW_BUFFER4_EXT = 0x8829 :: GLenum
+pattern GL_DRAW_BUFFER4_EXT = 0x8829
 
-pattern GL_DRAW_BUFFER5_EXT = 0x882A :: GLenum
+pattern GL_DRAW_BUFFER5_EXT = 0x882A
 
-pattern GL_DRAW_BUFFER6_EXT = 0x882B :: GLenum
+pattern GL_DRAW_BUFFER6_EXT = 0x882B
 
-pattern GL_DRAW_BUFFER7_EXT = 0x882C :: GLenum
+pattern GL_DRAW_BUFFER7_EXT = 0x882C
 
-pattern GL_DRAW_BUFFER8_EXT = 0x882D :: GLenum
+pattern GL_DRAW_BUFFER8_EXT = 0x882D
 
-pattern GL_DRAW_BUFFER9_EXT = 0x882E :: GLenum
+pattern GL_DRAW_BUFFER9_EXT = 0x882E
 
-pattern GL_MAX_DRAW_BUFFERS_EXT = 0x8824 :: GLenum
+pattern GL_MAX_DRAW_BUFFERS_EXT = 0x8824
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/DrawRangeElements.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/DrawRangeElements.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/DrawRangeElements.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/DrawRangeElements.hs
@@ -29,6 +29,6 @@
 
 {-# NOINLINE glDrawRangeElementsEXTFunPtr #-}
 
-pattern GL_MAX_ELEMENTS_INDICES_EXT = 0x80E9 :: GLenum
+pattern GL_MAX_ELEMENTS_INDICES_EXT = 0x80E9
 
-pattern GL_MAX_ELEMENTS_VERTICES_EXT = 0x80E8 :: GLenum
+pattern GL_MAX_ELEMENTS_VERTICES_EXT = 0x80E8
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/FogCoord.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/FogCoord.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/FogCoord.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/FogCoord.hs
@@ -72,16 +72,16 @@
 
 {-# NOINLINE glFogCoordfvEXTFunPtr #-}
 
-pattern GL_CURRENT_FOG_COORDINATE_EXT = 0x8453 :: GLenum
+pattern GL_CURRENT_FOG_COORDINATE_EXT = 0x8453
 
-pattern GL_FOG_COORDINATE_ARRAY_EXT = 0x8457 :: GLenum
+pattern GL_FOG_COORDINATE_ARRAY_EXT = 0x8457
 
-pattern GL_FOG_COORDINATE_ARRAY_POINTER_EXT = 0x8456 :: GLenum
+pattern GL_FOG_COORDINATE_ARRAY_POINTER_EXT = 0x8456
 
-pattern GL_FOG_COORDINATE_ARRAY_STRIDE_EXT = 0x8455 :: GLenum
+pattern GL_FOG_COORDINATE_ARRAY_STRIDE_EXT = 0x8455
 
-pattern GL_FOG_COORDINATE_ARRAY_TYPE_EXT = 0x8454 :: GLenum
+pattern GL_FOG_COORDINATE_ARRAY_TYPE_EXT = 0x8454
 
-pattern GL_FOG_COORDINATE_EXT = 0x8451 :: GLenum
+pattern GL_FOG_COORDINATE_EXT = 0x8451
 
-pattern GL_FOG_COORDINATE_SOURCE_EXT = 0x8450 :: GLenum
+pattern GL_FOG_COORDINATE_SOURCE_EXT = 0x8450
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/FourTwoTwoPixels.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/FourTwoTwoPixels.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/FourTwoTwoPixels.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/FourTwoTwoPixels.hs
@@ -13,15 +13,14 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_EXT_422_pixels :: Bool
 gl_EXT_422_pixels = member "GL_EXT_422_pixels" extensions
 
-pattern GL_422_AVERAGE_EXT = 0x80CE :: GLenum
+pattern GL_422_AVERAGE_EXT = 0x80CE
 
-pattern GL_422_EXT = 0x80CC :: GLenum
+pattern GL_422_EXT = 0x80CC
 
-pattern GL_422_REV_AVERAGE_EXT = 0x80CF :: GLenum
+pattern GL_422_REV_AVERAGE_EXT = 0x80CF
 
-pattern GL_422_REV_EXT = 0x80CD :: GLenum
+pattern GL_422_REV_EXT = 0x80CD
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/FramebufferBlit.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/FramebufferBlit.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/FramebufferBlit.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/FramebufferBlit.hs
@@ -31,10 +31,10 @@
 
 {-# NOINLINE glBlitFramebufferEXTFunPtr #-}
 
-pattern GL_DRAW_FRAMEBUFFER_BINDING_EXT = 0x8CA6 :: GLenum
+pattern GL_DRAW_FRAMEBUFFER_BINDING_EXT = 0x8CA6
 
-pattern GL_DRAW_FRAMEBUFFER_EXT = 0x8CA9 :: GLenum
+pattern GL_DRAW_FRAMEBUFFER_EXT = 0x8CA9
 
-pattern GL_READ_FRAMEBUFFER_BINDING_EXT = 0x8CAA :: GLenum
+pattern GL_READ_FRAMEBUFFER_BINDING_EXT = 0x8CAA
 
-pattern GL_READ_FRAMEBUFFER_EXT = 0x8CA8 :: GLenum
+pattern GL_READ_FRAMEBUFFER_EXT = 0x8CA8
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/FramebufferMultisampleBlitScaled.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/FramebufferMultisampleBlitScaled.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/FramebufferMultisampleBlitScaled.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/FramebufferMultisampleBlitScaled.hs
@@ -11,11 +11,10 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_EXT_framebuffer_multisample_blit_scaled :: Bool
 gl_EXT_framebuffer_multisample_blit_scaled = member "GL_EXT_framebuffer_multisample_blit_scaled" extensions
 
-pattern GL_SCALED_RESOLVE_FASTEST_EXT = 0x90BA :: GLenum
+pattern GL_SCALED_RESOLVE_FASTEST_EXT = 0x90BA
 
-pattern GL_SCALED_RESOLVE_NICEST_EXT = 0x90BB :: GLenum
+pattern GL_SCALED_RESOLVE_NICEST_EXT = 0x90BB
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/FramebufferObject.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/FramebufferObject.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/FramebufferObject.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/FramebufferObject.hs
@@ -223,70 +223,70 @@
 
 {-# NOINLINE glRenderbufferStorageEXTFunPtr #-}
 
-pattern GL_DEPTH_ATTACHMENT_EXT = 0x8D00 :: GLenum
+pattern GL_DEPTH_ATTACHMENT_EXT = 0x8D00
 
-pattern GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_EXT = 0x8CD1 :: GLenum
+pattern GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_EXT = 0x8CD1
 
-pattern GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_EXT = 0x8CD0 :: GLenum
+pattern GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_EXT = 0x8CD0
 
-pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_EXT = 0x8CD4 :: GLenum
+pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_EXT = 0x8CD4
 
-pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_EXT = 0x8CD3 :: GLenum
+pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_EXT = 0x8CD3
 
-pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_EXT = 0x8CD2 :: GLenum
+pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_EXT = 0x8CD2
 
-pattern GL_FRAMEBUFFER_BINDING_EXT = 0x8CA6 :: GLenum
+pattern GL_FRAMEBUFFER_BINDING_EXT = 0x8CA6
 
-pattern GL_FRAMEBUFFER_COMPLETE_EXT = 0x8CD5 :: GLenum
+pattern GL_FRAMEBUFFER_COMPLETE_EXT = 0x8CD5
 
-pattern GL_FRAMEBUFFER_EXT = 0x8D40 :: GLenum
+pattern GL_FRAMEBUFFER_EXT = 0x8D40
 
-pattern GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT = 0x8CD6 :: GLenum
+pattern GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT = 0x8CD6
 
-pattern GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT = 0x8CD9 :: GLenum
+pattern GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT = 0x8CD9
 
-pattern GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT = 0x8CDB :: GLenum
+pattern GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT = 0x8CDB
 
-pattern GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT = 0x8CDA :: GLenum
+pattern GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT = 0x8CDA
 
-pattern GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT = 0x8CD7 :: GLenum
+pattern GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT = 0x8CD7
 
-pattern GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT = 0x8CDC :: GLenum
+pattern GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT = 0x8CDC
 
-pattern GL_FRAMEBUFFER_UNSUPPORTED_EXT = 0x8CDD :: GLenum
+pattern GL_FRAMEBUFFER_UNSUPPORTED_EXT = 0x8CDD
 
-pattern GL_INVALID_FRAMEBUFFER_OPERATION_EXT = 0x0506 :: GLenum
+pattern GL_INVALID_FRAMEBUFFER_OPERATION_EXT = 0x0506
 
-pattern GL_MAX_RENDERBUFFER_SIZE_EXT = 0x84E8 :: GLenum
+pattern GL_MAX_RENDERBUFFER_SIZE_EXT = 0x84E8
 
-pattern GL_RENDERBUFFER_ALPHA_SIZE_EXT = 0x8D53 :: GLenum
+pattern GL_RENDERBUFFER_ALPHA_SIZE_EXT = 0x8D53
 
-pattern GL_RENDERBUFFER_BINDING_EXT = 0x8CA7 :: GLenum
+pattern GL_RENDERBUFFER_BINDING_EXT = 0x8CA7
 
-pattern GL_RENDERBUFFER_BLUE_SIZE_EXT = 0x8D52 :: GLenum
+pattern GL_RENDERBUFFER_BLUE_SIZE_EXT = 0x8D52
 
-pattern GL_RENDERBUFFER_DEPTH_SIZE_EXT = 0x8D54 :: GLenum
+pattern GL_RENDERBUFFER_DEPTH_SIZE_EXT = 0x8D54
 
-pattern GL_RENDERBUFFER_EXT = 0x8D41 :: GLenum
+pattern GL_RENDERBUFFER_EXT = 0x8D41
 
-pattern GL_RENDERBUFFER_GREEN_SIZE_EXT = 0x8D51 :: GLenum
+pattern GL_RENDERBUFFER_GREEN_SIZE_EXT = 0x8D51
 
-pattern GL_RENDERBUFFER_HEIGHT_EXT = 0x8D43 :: GLenum
+pattern GL_RENDERBUFFER_HEIGHT_EXT = 0x8D43
 
-pattern GL_RENDERBUFFER_INTERNAL_FORMAT_EXT = 0x8D44 :: GLenum
+pattern GL_RENDERBUFFER_INTERNAL_FORMAT_EXT = 0x8D44
 
-pattern GL_RENDERBUFFER_RED_SIZE_EXT = 0x8D50 :: GLenum
+pattern GL_RENDERBUFFER_RED_SIZE_EXT = 0x8D50
 
-pattern GL_RENDERBUFFER_STENCIL_SIZE_EXT = 0x8D55 :: GLenum
+pattern GL_RENDERBUFFER_STENCIL_SIZE_EXT = 0x8D55
 
-pattern GL_RENDERBUFFER_WIDTH_EXT = 0x8D42 :: GLenum
+pattern GL_RENDERBUFFER_WIDTH_EXT = 0x8D42
 
-pattern GL_STENCIL_ATTACHMENT_EXT = 0x8D20 :: GLenum
+pattern GL_STENCIL_ATTACHMENT_EXT = 0x8D20
 
-pattern GL_STENCIL_INDEX16_EXT = 0x8D49 :: GLenum
+pattern GL_STENCIL_INDEX16_EXT = 0x8D49
 
-pattern GL_STENCIL_INDEX1_EXT = 0x8D46 :: GLenum
+pattern GL_STENCIL_INDEX1_EXT = 0x8D46
 
-pattern GL_STENCIL_INDEX4_EXT = 0x8D47 :: GLenum
+pattern GL_STENCIL_INDEX4_EXT = 0x8D47
 
-pattern GL_STENCIL_INDEX8_EXT = 0x8D48 :: GLenum
+pattern GL_STENCIL_INDEX8_EXT = 0x8D48
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/FramebufferSRGB.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/FramebufferSRGB.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/FramebufferSRGB.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/FramebufferSRGB.hs
@@ -12,9 +12,8 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
-import Graphics.GL.Raw.Types
 
 gl_EXT_framebuffer_sRGB :: Bool
 gl_EXT_framebuffer_sRGB = member "GL_EXT_framebuffer_sRGB" extensions
 
-pattern GL_FRAMEBUFFER_SRGB_CAPABLE_EXT = 0x8DBA :: GLenum
+pattern GL_FRAMEBUFFER_SRGB_CAPABLE_EXT = 0x8DBA
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/GeometryShader.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/GeometryShader.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/GeometryShader.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/GeometryShader.hs
@@ -44,45 +44,44 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
-import Graphics.GL.Raw.Types
 
 gl_EXT_geometry_shader :: Bool
 gl_EXT_geometry_shader = member "GL_EXT_geometry_shader" extensions
 
-pattern GL_FRAMEBUFFER_DEFAULT_LAYERS_EXT = 0x9312 :: GLenum
+pattern GL_FRAMEBUFFER_DEFAULT_LAYERS_EXT = 0x9312
 
-pattern GL_GEOMETRY_LINKED_INPUT_TYPE_EXT = 0x8917 :: GLenum
+pattern GL_GEOMETRY_LINKED_INPUT_TYPE_EXT = 0x8917
 
-pattern GL_GEOMETRY_LINKED_OUTPUT_TYPE_EXT = 0x8918 :: GLenum
+pattern GL_GEOMETRY_LINKED_OUTPUT_TYPE_EXT = 0x8918
 
-pattern GL_GEOMETRY_LINKED_VERTICES_OUT_EXT = 0x8916 :: GLenum
+pattern GL_GEOMETRY_LINKED_VERTICES_OUT_EXT = 0x8916
 
-pattern GL_GEOMETRY_SHADER_BIT_EXT = 0x00000004 :: GLenum
+pattern GL_GEOMETRY_SHADER_BIT_EXT = 0x00000004
 
-pattern GL_GEOMETRY_SHADER_INVOCATIONS_EXT = 0x887F :: GLenum
+pattern GL_GEOMETRY_SHADER_INVOCATIONS_EXT = 0x887F
 
-pattern GL_LAYER_PROVOKING_VERTEX_EXT = 0x825E :: GLenum
+pattern GL_LAYER_PROVOKING_VERTEX_EXT = 0x825E
 
-pattern GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS_EXT = 0x8A32 :: GLenum
+pattern GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS_EXT = 0x8A32
 
-pattern GL_MAX_FRAMEBUFFER_LAYERS_EXT = 0x9317 :: GLenum
+pattern GL_MAX_FRAMEBUFFER_LAYERS_EXT = 0x9317
 
-pattern GL_MAX_GEOMETRY_ATOMIC_COUNTERS_EXT = 0x92D5 :: GLenum
+pattern GL_MAX_GEOMETRY_ATOMIC_COUNTERS_EXT = 0x92D5
 
-pattern GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS_EXT = 0x92CF :: GLenum
+pattern GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS_EXT = 0x92CF
 
-pattern GL_MAX_GEOMETRY_IMAGE_UNIFORMS_EXT = 0x90CD :: GLenum
+pattern GL_MAX_GEOMETRY_IMAGE_UNIFORMS_EXT = 0x90CD
 
-pattern GL_MAX_GEOMETRY_INPUT_COMPONENTS_EXT = 0x9123 :: GLenum
+pattern GL_MAX_GEOMETRY_INPUT_COMPONENTS_EXT = 0x9123
 
-pattern GL_MAX_GEOMETRY_OUTPUT_COMPONENTS_EXT = 0x9124 :: GLenum
+pattern GL_MAX_GEOMETRY_OUTPUT_COMPONENTS_EXT = 0x9124
 
-pattern GL_MAX_GEOMETRY_SHADER_INVOCATIONS_EXT = 0x8E5A :: GLenum
+pattern GL_MAX_GEOMETRY_SHADER_INVOCATIONS_EXT = 0x8E5A
 
-pattern GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS_EXT = 0x90D7 :: GLenum
+pattern GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS_EXT = 0x90D7
 
-pattern GL_MAX_GEOMETRY_UNIFORM_BLOCKS_EXT = 0x8A2C :: GLenum
+pattern GL_MAX_GEOMETRY_UNIFORM_BLOCKS_EXT = 0x8A2C
 
-pattern GL_REFERENCED_BY_GEOMETRY_SHADER_EXT = 0x9309 :: GLenum
+pattern GL_REFERENCED_BY_GEOMETRY_SHADER_EXT = 0x9309
 
-pattern GL_UNDEFINED_VERTEX_EXT = 0x8260 :: GLenum
+pattern GL_UNDEFINED_VERTEX_EXT = 0x8260
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/GeometryShader4.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/GeometryShader4.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/GeometryShader4.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/GeometryShader4.hs
@@ -31,13 +31,12 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
-import Graphics.GL.Raw.Types
 
 gl_EXT_geometry_shader4 :: Bool
 gl_EXT_geometry_shader4 = member "GL_EXT_geometry_shader4" extensions
 
-pattern GL_MAX_GEOMETRY_VARYING_COMPONENTS_EXT = 0x8DDD :: GLenum
+pattern GL_MAX_GEOMETRY_VARYING_COMPONENTS_EXT = 0x8DDD
 
-pattern GL_MAX_VARYING_COMPONENTS_EXT = 0x8B4B :: GLenum
+pattern GL_MAX_VARYING_COMPONENTS_EXT = 0x8B4B
 
-pattern GL_MAX_VERTEX_VARYING_COMPONENTS_EXT = 0x8DDE :: GLenum
+pattern GL_MAX_VERTEX_VARYING_COMPONENTS_EXT = 0x8DDE
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/GpuShader4.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/GpuShader4.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/GpuShader4.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/GpuShader4.hs
@@ -146,52 +146,52 @@
 
 {-# NOINLINE glUniform4uivEXTFunPtr #-}
 
-pattern GL_INT_SAMPLER_1D_ARRAY_EXT = 0x8DCE :: GLenum
+pattern GL_INT_SAMPLER_1D_ARRAY_EXT = 0x8DCE
 
-pattern GL_INT_SAMPLER_1D_EXT = 0x8DC9 :: GLenum
+pattern GL_INT_SAMPLER_1D_EXT = 0x8DC9
 
-pattern GL_INT_SAMPLER_2D_ARRAY_EXT = 0x8DCF :: GLenum
+pattern GL_INT_SAMPLER_2D_ARRAY_EXT = 0x8DCF
 
-pattern GL_INT_SAMPLER_2D_EXT = 0x8DCA :: GLenum
+pattern GL_INT_SAMPLER_2D_EXT = 0x8DCA
 
-pattern GL_INT_SAMPLER_2D_RECT_EXT = 0x8DCD :: GLenum
+pattern GL_INT_SAMPLER_2D_RECT_EXT = 0x8DCD
 
-pattern GL_INT_SAMPLER_3D_EXT = 0x8DCB :: GLenum
+pattern GL_INT_SAMPLER_3D_EXT = 0x8DCB
 
-pattern GL_INT_SAMPLER_CUBE_EXT = 0x8DCC :: GLenum
+pattern GL_INT_SAMPLER_CUBE_EXT = 0x8DCC
 
-pattern GL_MAX_PROGRAM_TEXEL_OFFSET_EXT = 0x8905 :: GLenum
+pattern GL_MAX_PROGRAM_TEXEL_OFFSET_EXT = 0x8905
 
-pattern GL_MIN_PROGRAM_TEXEL_OFFSET_EXT = 0x8904 :: GLenum
+pattern GL_MIN_PROGRAM_TEXEL_OFFSET_EXT = 0x8904
 
-pattern GL_SAMPLER_1D_ARRAY_EXT = 0x8DC0 :: GLenum
+pattern GL_SAMPLER_1D_ARRAY_EXT = 0x8DC0
 
-pattern GL_SAMPLER_1D_ARRAY_SHADOW_EXT = 0x8DC3 :: GLenum
+pattern GL_SAMPLER_1D_ARRAY_SHADOW_EXT = 0x8DC3
 
-pattern GL_SAMPLER_2D_ARRAY_EXT = 0x8DC1 :: GLenum
+pattern GL_SAMPLER_2D_ARRAY_EXT = 0x8DC1
 
-pattern GL_SAMPLER_2D_ARRAY_SHADOW_EXT = 0x8DC4 :: GLenum
+pattern GL_SAMPLER_2D_ARRAY_SHADOW_EXT = 0x8DC4
 
-pattern GL_SAMPLER_CUBE_SHADOW_EXT = 0x8DC5 :: GLenum
+pattern GL_SAMPLER_CUBE_SHADOW_EXT = 0x8DC5
 
-pattern GL_UNSIGNED_INT_SAMPLER_1D_ARRAY_EXT = 0x8DD6 :: GLenum
+pattern GL_UNSIGNED_INT_SAMPLER_1D_ARRAY_EXT = 0x8DD6
 
-pattern GL_UNSIGNED_INT_SAMPLER_1D_EXT = 0x8DD1 :: GLenum
+pattern GL_UNSIGNED_INT_SAMPLER_1D_EXT = 0x8DD1
 
-pattern GL_UNSIGNED_INT_SAMPLER_2D_ARRAY_EXT = 0x8DD7 :: GLenum
+pattern GL_UNSIGNED_INT_SAMPLER_2D_ARRAY_EXT = 0x8DD7
 
-pattern GL_UNSIGNED_INT_SAMPLER_2D_EXT = 0x8DD2 :: GLenum
+pattern GL_UNSIGNED_INT_SAMPLER_2D_EXT = 0x8DD2
 
-pattern GL_UNSIGNED_INT_SAMPLER_2D_RECT_EXT = 0x8DD5 :: GLenum
+pattern GL_UNSIGNED_INT_SAMPLER_2D_RECT_EXT = 0x8DD5
 
-pattern GL_UNSIGNED_INT_SAMPLER_3D_EXT = 0x8DD3 :: GLenum
+pattern GL_UNSIGNED_INT_SAMPLER_3D_EXT = 0x8DD3
 
-pattern GL_UNSIGNED_INT_SAMPLER_CUBE_EXT = 0x8DD4 :: GLenum
+pattern GL_UNSIGNED_INT_SAMPLER_CUBE_EXT = 0x8DD4
 
-pattern GL_UNSIGNED_INT_VEC2_EXT = 0x8DC6 :: GLenum
+pattern GL_UNSIGNED_INT_VEC2_EXT = 0x8DC6
 
-pattern GL_UNSIGNED_INT_VEC3_EXT = 0x8DC7 :: GLenum
+pattern GL_UNSIGNED_INT_VEC3_EXT = 0x8DC7
 
-pattern GL_UNSIGNED_INT_VEC4_EXT = 0x8DC8 :: GLenum
+pattern GL_UNSIGNED_INT_VEC4_EXT = 0x8DC8
 
-pattern GL_VERTEX_ATTRIB_ARRAY_INTEGER_EXT = 0x88FD :: GLenum
+pattern GL_VERTEX_ATTRIB_ARRAY_INTEGER_EXT = 0x88FD
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/Histogram.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/Histogram.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/Histogram.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/Histogram.hs
@@ -122,30 +122,30 @@
 
 {-# NOINLINE glResetMinmaxEXTFunPtr #-}
 
-pattern GL_HISTOGRAM_ALPHA_SIZE_EXT = 0x802B :: GLenum
+pattern GL_HISTOGRAM_ALPHA_SIZE_EXT = 0x802B
 
-pattern GL_HISTOGRAM_BLUE_SIZE_EXT = 0x802A :: GLenum
+pattern GL_HISTOGRAM_BLUE_SIZE_EXT = 0x802A
 
-pattern GL_HISTOGRAM_EXT = 0x8024 :: GLenum
+pattern GL_HISTOGRAM_EXT = 0x8024
 
-pattern GL_HISTOGRAM_FORMAT_EXT = 0x8027 :: GLenum
+pattern GL_HISTOGRAM_FORMAT_EXT = 0x8027
 
-pattern GL_HISTOGRAM_GREEN_SIZE_EXT = 0x8029 :: GLenum
+pattern GL_HISTOGRAM_GREEN_SIZE_EXT = 0x8029
 
-pattern GL_HISTOGRAM_LUMINANCE_SIZE_EXT = 0x802C :: GLenum
+pattern GL_HISTOGRAM_LUMINANCE_SIZE_EXT = 0x802C
 
-pattern GL_HISTOGRAM_RED_SIZE_EXT = 0x8028 :: GLenum
+pattern GL_HISTOGRAM_RED_SIZE_EXT = 0x8028
 
-pattern GL_HISTOGRAM_SINK_EXT = 0x802D :: GLenum
+pattern GL_HISTOGRAM_SINK_EXT = 0x802D
 
-pattern GL_HISTOGRAM_WIDTH_EXT = 0x8026 :: GLenum
+pattern GL_HISTOGRAM_WIDTH_EXT = 0x8026
 
-pattern GL_MINMAX_EXT = 0x802E :: GLenum
+pattern GL_MINMAX_EXT = 0x802E
 
-pattern GL_MINMAX_FORMAT_EXT = 0x802F :: GLenum
+pattern GL_MINMAX_FORMAT_EXT = 0x802F
 
-pattern GL_MINMAX_SINK_EXT = 0x8030 :: GLenum
+pattern GL_MINMAX_SINK_EXT = 0x8030
 
-pattern GL_PROXY_HISTOGRAM_EXT = 0x8025 :: GLenum
+pattern GL_PROXY_HISTOGRAM_EXT = 0x8025
 
-pattern GL_TABLE_TOO_LARGE_EXT = 0x8031 :: GLenum
+pattern GL_TABLE_TOO_LARGE_EXT = 0x8031
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/IndexArrayFormats.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/IndexArrayFormats.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/IndexArrayFormats.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/IndexArrayFormats.hs
@@ -17,23 +17,22 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_EXT_index_array_formats :: Bool
 gl_EXT_index_array_formats = member "GL_EXT_index_array_formats" extensions
 
-pattern GL_IUI_N3F_V2F_EXT = 0x81AF :: GLenum
+pattern GL_IUI_N3F_V2F_EXT = 0x81AF
 
-pattern GL_IUI_N3F_V3F_EXT = 0x81B0 :: GLenum
+pattern GL_IUI_N3F_V3F_EXT = 0x81B0
 
-pattern GL_IUI_V2F_EXT = 0x81AD :: GLenum
+pattern GL_IUI_V2F_EXT = 0x81AD
 
-pattern GL_IUI_V3F_EXT = 0x81AE :: GLenum
+pattern GL_IUI_V3F_EXT = 0x81AE
 
-pattern GL_T2F_IUI_N3F_V2F_EXT = 0x81B3 :: GLenum
+pattern GL_T2F_IUI_N3F_V2F_EXT = 0x81B3
 
-pattern GL_T2F_IUI_N3F_V3F_EXT = 0x81B4 :: GLenum
+pattern GL_T2F_IUI_N3F_V3F_EXT = 0x81B4
 
-pattern GL_T2F_IUI_V2F_EXT = 0x81B1 :: GLenum
+pattern GL_T2F_IUI_V2F_EXT = 0x81B1
 
-pattern GL_T2F_IUI_V3F_EXT = 0x81B2 :: GLenum
+pattern GL_T2F_IUI_V3F_EXT = 0x81B2
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/IndexFunc.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/IndexFunc.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/IndexFunc.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/IndexFunc.hs
@@ -30,8 +30,8 @@
 
 {-# NOINLINE glIndexFuncEXTFunPtr #-}
 
-pattern GL_INDEX_TEST_EXT = 0x81B5 :: GLenum
+pattern GL_INDEX_TEST_EXT = 0x81B5
 
-pattern GL_INDEX_TEST_FUNC_EXT = 0x81B6 :: GLenum
+pattern GL_INDEX_TEST_FUNC_EXT = 0x81B6
 
-pattern GL_INDEX_TEST_REF_EXT = 0x81B7 :: GLenum
+pattern GL_INDEX_TEST_REF_EXT = 0x81B7
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/IndexMaterial.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/IndexMaterial.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/IndexMaterial.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/IndexMaterial.hs
@@ -30,8 +30,8 @@
 
 {-# NOINLINE glIndexMaterialEXTFunPtr #-}
 
-pattern GL_INDEX_MATERIAL_EXT = 0x81B8 :: GLenum
+pattern GL_INDEX_MATERIAL_EXT = 0x81B8
 
-pattern GL_INDEX_MATERIAL_FACE_EXT = 0x81BA :: GLenum
+pattern GL_INDEX_MATERIAL_FACE_EXT = 0x81BA
 
-pattern GL_INDEX_MATERIAL_PARAMETER_EXT = 0x81B9 :: GLenum
+pattern GL_INDEX_MATERIAL_PARAMETER_EXT = 0x81B9
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/InstancedArrays.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/InstancedArrays.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/InstancedArrays.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/InstancedArrays.hs
@@ -31,4 +31,4 @@
 
 {-# NOINLINE glVertexAttribDivisorEXTFunPtr #-}
 
-pattern GL_VERTEX_ATTRIB_ARRAY_DIVISOR_EXT = 0x88FE :: GLenum
+pattern GL_VERTEX_ATTRIB_ARRAY_DIVISOR_EXT = 0x88FE
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/LightTexture.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/LightTexture.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/LightTexture.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/LightTexture.hs
@@ -56,20 +56,20 @@
 
 {-# NOINLINE glTextureMaterialEXTFunPtr #-}
 
-pattern GL_ATTENUATION_EXT = 0x834D :: GLenum
+pattern GL_ATTENUATION_EXT = 0x834D
 
-pattern GL_FRAGMENT_COLOR_EXT = 0x834C :: GLenum
+pattern GL_FRAGMENT_COLOR_EXT = 0x834C
 
-pattern GL_FRAGMENT_MATERIAL_EXT = 0x8349 :: GLenum
+pattern GL_FRAGMENT_MATERIAL_EXT = 0x8349
 
-pattern GL_FRAGMENT_NORMAL_EXT = 0x834A :: GLenum
+pattern GL_FRAGMENT_NORMAL_EXT = 0x834A
 
-pattern GL_SHADOW_ATTENUATION_EXT = 0x834E :: GLenum
+pattern GL_SHADOW_ATTENUATION_EXT = 0x834E
 
-pattern GL_TEXTURE_APPLICATION_MODE_EXT = 0x834F :: GLenum
+pattern GL_TEXTURE_APPLICATION_MODE_EXT = 0x834F
 
-pattern GL_TEXTURE_LIGHT_EXT = 0x8350 :: GLenum
+pattern GL_TEXTURE_LIGHT_EXT = 0x8350
 
-pattern GL_TEXTURE_MATERIAL_FACE_EXT = 0x8351 :: GLenum
+pattern GL_TEXTURE_MATERIAL_FACE_EXT = 0x8351
 
-pattern GL_TEXTURE_MATERIAL_PARAMETER_EXT = 0x8352 :: GLenum
+pattern GL_TEXTURE_MATERIAL_PARAMETER_EXT = 0x8352
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/MapBufferRange.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/MapBufferRange.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/MapBufferRange.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/MapBufferRange.hs
@@ -42,14 +42,14 @@
 
 {-# NOINLINE glMapBufferRangeEXTFunPtr #-}
 
-pattern GL_MAP_FLUSH_EXPLICIT_BIT_EXT = 0x0010 :: GLenum
+pattern GL_MAP_FLUSH_EXPLICIT_BIT_EXT = 0x0010
 
-pattern GL_MAP_INVALIDATE_BUFFER_BIT_EXT = 0x0008 :: GLenum
+pattern GL_MAP_INVALIDATE_BUFFER_BIT_EXT = 0x0008
 
-pattern GL_MAP_INVALIDATE_RANGE_BIT_EXT = 0x0004 :: GLenum
+pattern GL_MAP_INVALIDATE_RANGE_BIT_EXT = 0x0004
 
-pattern GL_MAP_READ_BIT_EXT = 0x0001 :: GLenum
+pattern GL_MAP_READ_BIT_EXT = 0x0001
 
-pattern GL_MAP_UNSYNCHRONIZED_BIT_EXT = 0x0020 :: GLenum
+pattern GL_MAP_UNSYNCHRONIZED_BIT_EXT = 0x0020
 
-pattern GL_MAP_WRITE_BIT_EXT = 0x0002 :: GLenum
+pattern GL_MAP_WRITE_BIT_EXT = 0x0002
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/Multisample.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/Multisample.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/Multisample.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/Multisample.hs
@@ -53,36 +53,36 @@
 
 {-# NOINLINE glSamplePatternEXTFunPtr #-}
 
-pattern GL_1PASS_EXT = 0x80A1 :: GLenum
+pattern GL_1PASS_EXT = 0x80A1
 
-pattern GL_2PASS_0_EXT = 0x80A2 :: GLenum
+pattern GL_2PASS_0_EXT = 0x80A2
 
-pattern GL_2PASS_1_EXT = 0x80A3 :: GLenum
+pattern GL_2PASS_1_EXT = 0x80A3
 
-pattern GL_4PASS_0_EXT = 0x80A4 :: GLenum
+pattern GL_4PASS_0_EXT = 0x80A4
 
-pattern GL_4PASS_1_EXT = 0x80A5 :: GLenum
+pattern GL_4PASS_1_EXT = 0x80A5
 
-pattern GL_4PASS_2_EXT = 0x80A6 :: GLenum
+pattern GL_4PASS_2_EXT = 0x80A6
 
-pattern GL_4PASS_3_EXT = 0x80A7 :: GLenum
+pattern GL_4PASS_3_EXT = 0x80A7
 
-pattern GL_MULTISAMPLE_BIT_EXT = 0x20000000 :: GLenum
+pattern GL_MULTISAMPLE_BIT_EXT = 0x20000000
 
-pattern GL_MULTISAMPLE_EXT = 0x809D :: GLenum
+pattern GL_MULTISAMPLE_EXT = 0x809D
 
-pattern GL_SAMPLES_EXT = 0x80A9 :: GLenum
+pattern GL_SAMPLES_EXT = 0x80A9
 
-pattern GL_SAMPLE_ALPHA_TO_MASK_EXT = 0x809E :: GLenum
+pattern GL_SAMPLE_ALPHA_TO_MASK_EXT = 0x809E
 
-pattern GL_SAMPLE_ALPHA_TO_ONE_EXT = 0x809F :: GLenum
+pattern GL_SAMPLE_ALPHA_TO_ONE_EXT = 0x809F
 
-pattern GL_SAMPLE_BUFFERS_EXT = 0x80A8 :: GLenum
+pattern GL_SAMPLE_BUFFERS_EXT = 0x80A8
 
-pattern GL_SAMPLE_MASK_EXT = 0x80A0 :: GLenum
+pattern GL_SAMPLE_MASK_EXT = 0x80A0
 
-pattern GL_SAMPLE_MASK_INVERT_EXT = 0x80AB :: GLenum
+pattern GL_SAMPLE_MASK_INVERT_EXT = 0x80AB
 
-pattern GL_SAMPLE_MASK_VALUE_EXT = 0x80AA :: GLenum
+pattern GL_SAMPLE_MASK_VALUE_EXT = 0x80AA
 
-pattern GL_SAMPLE_PATTERN_EXT = 0x80AC :: GLenum
+pattern GL_SAMPLE_PATTERN_EXT = 0x80AC
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/MultisampledRenderToTexture.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/MultisampledRenderToTexture.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/MultisampledRenderToTexture.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/MultisampledRenderToTexture.hs
@@ -33,4 +33,4 @@
 
 {-# NOINLINE glFramebufferTexture2DMultisampleEXTFunPtr #-}
 
-pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_SAMPLES_EXT = 0x8D6C :: GLenum
+pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_SAMPLES_EXT = 0x8D6C
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/MultiviewDrawBuffers.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/MultiviewDrawBuffers.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/MultiviewDrawBuffers.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/MultiviewDrawBuffers.hs
@@ -50,12 +50,12 @@
 
 {-# NOINLINE glReadBufferIndexedEXTFunPtr #-}
 
-pattern GL_COLOR_ATTACHMENT_EXT = 0x90F0 :: GLenum
+pattern GL_COLOR_ATTACHMENT_EXT = 0x90F0
 
-pattern GL_DRAW_BUFFER_EXT = 0x0C01 :: GLenum
+pattern GL_DRAW_BUFFER_EXT = 0x0C01
 
-pattern GL_MAX_MULTIVIEW_BUFFERS_EXT = 0x90F2 :: GLenum
+pattern GL_MAX_MULTIVIEW_BUFFERS_EXT = 0x90F2
 
-pattern GL_MULTIVIEW_EXT = 0x90F1 :: GLenum
+pattern GL_MULTIVIEW_EXT = 0x90F1
 
-pattern GL_READ_BUFFER_EXT = 0x0C02 :: GLenum
+pattern GL_READ_BUFFER_EXT = 0x0C02
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/OcclusionQueryBoolean.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/OcclusionQueryBoolean.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/OcclusionQueryBoolean.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/OcclusionQueryBoolean.hs
@@ -22,11 +22,10 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
-import Graphics.GL.Raw.Types
 
 gl_EXT_occlusion_query_boolean :: Bool
 gl_EXT_occlusion_query_boolean = member "GL_EXT_occlusion_query_boolean" extensions
 
-pattern GL_ANY_SAMPLES_PASSED_CONSERVATIVE_EXT = 0x8D6A :: GLenum
+pattern GL_ANY_SAMPLES_PASSED_CONSERVATIVE_EXT = 0x8D6A
 
-pattern GL_ANY_SAMPLES_PASSED_EXT = 0x8C2F :: GLenum
+pattern GL_ANY_SAMPLES_PASSED_EXT = 0x8C2F
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/PackedDepthStencil.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/PackedDepthStencil.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/PackedDepthStencil.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/PackedDepthStencil.hs
@@ -13,15 +13,14 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_EXT_packed_depth_stencil :: Bool
 gl_EXT_packed_depth_stencil = member "GL_EXT_packed_depth_stencil" extensions
 
-pattern GL_DEPTH24_STENCIL8_EXT = 0x88F0 :: GLenum
+pattern GL_DEPTH24_STENCIL8_EXT = 0x88F0
 
-pattern GL_DEPTH_STENCIL_EXT = 0x84F9 :: GLenum
+pattern GL_DEPTH_STENCIL_EXT = 0x84F9
 
-pattern GL_TEXTURE_STENCIL_SIZE_EXT = 0x88F1 :: GLenum
+pattern GL_TEXTURE_STENCIL_SIZE_EXT = 0x88F1
 
-pattern GL_UNSIGNED_INT_24_8_EXT = 0x84FA :: GLenum
+pattern GL_UNSIGNED_INT_24_8_EXT = 0x84FA
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/PackedFloat.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/PackedFloat.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/PackedFloat.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/PackedFloat.hs
@@ -12,13 +12,12 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_EXT_packed_float :: Bool
 gl_EXT_packed_float = member "GL_EXT_packed_float" extensions
 
-pattern GL_R11F_G11F_B10F_EXT = 0x8C3A :: GLenum
+pattern GL_R11F_G11F_B10F_EXT = 0x8C3A
 
-pattern GL_RGBA_SIGNED_COMPONENTS_EXT = 0x8C3C :: GLenum
+pattern GL_RGBA_SIGNED_COMPONENTS_EXT = 0x8C3C
 
-pattern GL_UNSIGNED_INT_10F_11F_11F_REV_EXT = 0x8C3B :: GLenum
+pattern GL_UNSIGNED_INT_10F_11F_11F_REV_EXT = 0x8C3B
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/PackedPixels.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/PackedPixels.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/PackedPixels.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/PackedPixels.hs
@@ -14,17 +14,16 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_EXT_packed_pixels :: Bool
 gl_EXT_packed_pixels = member "GL_EXT_packed_pixels" extensions
 
-pattern GL_UNSIGNED_BYTE_3_3_2_EXT = 0x8032 :: GLenum
+pattern GL_UNSIGNED_BYTE_3_3_2_EXT = 0x8032
 
-pattern GL_UNSIGNED_INT_10_10_10_2_EXT = 0x8036 :: GLenum
+pattern GL_UNSIGNED_INT_10_10_10_2_EXT = 0x8036
 
-pattern GL_UNSIGNED_INT_8_8_8_8_EXT = 0x8035 :: GLenum
+pattern GL_UNSIGNED_INT_8_8_8_8_EXT = 0x8035
 
-pattern GL_UNSIGNED_SHORT_4_4_4_4_EXT = 0x8033 :: GLenum
+pattern GL_UNSIGNED_SHORT_4_4_4_4_EXT = 0x8033
 
-pattern GL_UNSIGNED_SHORT_5_5_5_1_EXT = 0x8034 :: GLenum
+pattern GL_UNSIGNED_SHORT_5_5_5_1_EXT = 0x8034
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/PalettedTexture.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/PalettedTexture.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/PalettedTexture.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/PalettedTexture.hs
@@ -61,16 +61,16 @@
 
 {-# NOINLINE glGetColorTableParameterivEXTFunPtr #-}
 
-pattern GL_COLOR_INDEX12_EXT = 0x80E6 :: GLenum
+pattern GL_COLOR_INDEX12_EXT = 0x80E6
 
-pattern GL_COLOR_INDEX16_EXT = 0x80E7 :: GLenum
+pattern GL_COLOR_INDEX16_EXT = 0x80E7
 
-pattern GL_COLOR_INDEX1_EXT = 0x80E2 :: GLenum
+pattern GL_COLOR_INDEX1_EXT = 0x80E2
 
-pattern GL_COLOR_INDEX2_EXT = 0x80E3 :: GLenum
+pattern GL_COLOR_INDEX2_EXT = 0x80E3
 
-pattern GL_COLOR_INDEX4_EXT = 0x80E4 :: GLenum
+pattern GL_COLOR_INDEX4_EXT = 0x80E4
 
-pattern GL_COLOR_INDEX8_EXT = 0x80E5 :: GLenum
+pattern GL_COLOR_INDEX8_EXT = 0x80E5
 
-pattern GL_TEXTURE_INDEX_SIZE_EXT = 0x80ED :: GLenum
+pattern GL_TEXTURE_INDEX_SIZE_EXT = 0x80ED
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/PixelBufferObject.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/PixelBufferObject.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/PixelBufferObject.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/PixelBufferObject.hs
@@ -13,15 +13,14 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_EXT_pixel_buffer_object :: Bool
 gl_EXT_pixel_buffer_object = member "GL_EXT_pixel_buffer_object" extensions
 
-pattern GL_PIXEL_PACK_BUFFER_BINDING_EXT = 0x88ED :: GLenum
+pattern GL_PIXEL_PACK_BUFFER_BINDING_EXT = 0x88ED
 
-pattern GL_PIXEL_PACK_BUFFER_EXT = 0x88EB :: GLenum
+pattern GL_PIXEL_PACK_BUFFER_EXT = 0x88EB
 
-pattern GL_PIXEL_UNPACK_BUFFER_BINDING_EXT = 0x88EF :: GLenum
+pattern GL_PIXEL_UNPACK_BUFFER_BINDING_EXT = 0x88EF
 
-pattern GL_PIXEL_UNPACK_BUFFER_EXT = 0x88EC :: GLenum
+pattern GL_PIXEL_UNPACK_BUFFER_EXT = 0x88EC
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/PixelTransform.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/PixelTransform.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/PixelTransform.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/PixelTransform.hs
@@ -81,20 +81,20 @@
 
 {-# NOINLINE glPixelTransformParameterivEXTFunPtr #-}
 
-pattern GL_AVERAGE_EXT = 0x8335 :: GLenum
+pattern GL_AVERAGE_EXT = 0x8335
 
-pattern GL_CUBIC_EXT = 0x8334 :: GLenum
+pattern GL_CUBIC_EXT = 0x8334
 
-pattern GL_MAX_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT = 0x8337 :: GLenum
+pattern GL_MAX_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT = 0x8337
 
-pattern GL_PIXEL_CUBIC_WEIGHT_EXT = 0x8333 :: GLenum
+pattern GL_PIXEL_CUBIC_WEIGHT_EXT = 0x8333
 
-pattern GL_PIXEL_MAG_FILTER_EXT = 0x8331 :: GLenum
+pattern GL_PIXEL_MAG_FILTER_EXT = 0x8331
 
-pattern GL_PIXEL_MIN_FILTER_EXT = 0x8332 :: GLenum
+pattern GL_PIXEL_MIN_FILTER_EXT = 0x8332
 
-pattern GL_PIXEL_TRANSFORM_2D_EXT = 0x8330 :: GLenum
+pattern GL_PIXEL_TRANSFORM_2D_EXT = 0x8330
 
-pattern GL_PIXEL_TRANSFORM_2D_MATRIX_EXT = 0x8338 :: GLenum
+pattern GL_PIXEL_TRANSFORM_2D_MATRIX_EXT = 0x8338
 
-pattern GL_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT = 0x8336 :: GLenum
+pattern GL_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT = 0x8336
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/PointParameters.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/PointParameters.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/PointParameters.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/PointParameters.hs
@@ -40,10 +40,10 @@
 
 {-# NOINLINE glPointParameterfvEXTFunPtr #-}
 
-pattern GL_DISTANCE_ATTENUATION_EXT = 0x8129 :: GLenum
+pattern GL_DISTANCE_ATTENUATION_EXT = 0x8129
 
-pattern GL_POINT_FADE_THRESHOLD_SIZE_EXT = 0x8128 :: GLenum
+pattern GL_POINT_FADE_THRESHOLD_SIZE_EXT = 0x8128
 
-pattern GL_POINT_SIZE_MAX_EXT = 0x8127 :: GLenum
+pattern GL_POINT_SIZE_MAX_EXT = 0x8127
 
-pattern GL_POINT_SIZE_MIN_EXT = 0x8126 :: GLenum
+pattern GL_POINT_SIZE_MIN_EXT = 0x8126
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/PolygonOffset.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/PolygonOffset.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/PolygonOffset.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/PolygonOffset.hs
@@ -30,8 +30,8 @@
 
 {-# NOINLINE glPolygonOffsetEXTFunPtr #-}
 
-pattern GL_POLYGON_OFFSET_BIAS_EXT = 0x8039 :: GLenum
+pattern GL_POLYGON_OFFSET_BIAS_EXT = 0x8039
 
-pattern GL_POLYGON_OFFSET_EXT = 0x8037 :: GLenum
+pattern GL_POLYGON_OFFSET_EXT = 0x8037
 
-pattern GL_POLYGON_OFFSET_FACTOR_EXT = 0x8038 :: GLenum
+pattern GL_POLYGON_OFFSET_FACTOR_EXT = 0x8038
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/PolygonOffsetClamp.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/PolygonOffsetClamp.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/PolygonOffsetClamp.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/PolygonOffsetClamp.hs
@@ -28,4 +28,4 @@
 
 {-# NOINLINE glPolygonOffsetClampEXTFunPtr #-}
 
-pattern GL_POLYGON_OFFSET_CLAMP_EXT = 0x8E1B :: GLenum
+pattern GL_POLYGON_OFFSET_CLAMP_EXT = 0x8E1B
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/PrimitiveBoundingBox.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/PrimitiveBoundingBox.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/PrimitiveBoundingBox.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/PrimitiveBoundingBox.hs
@@ -28,4 +28,4 @@
 
 {-# NOINLINE glPrimitiveBoundingBoxEXTFunPtr #-}
 
-pattern GL_PRIMITIVE_BOUNDING_BOX_EXT = 0x92BE :: GLenum
+pattern GL_PRIMITIVE_BOUNDING_BOX_EXT = 0x92BE
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/ProvokingVertex.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/ProvokingVertex.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/ProvokingVertex.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/ProvokingVertex.hs
@@ -32,6 +32,6 @@
 
 {-# NOINLINE glProvokingVertexEXTFunPtr #-}
 
-pattern GL_PROVOKING_VERTEX_EXT = 0x8E4F :: GLenum
+pattern GL_PROVOKING_VERTEX_EXT = 0x8E4F
 
-pattern GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION_EXT = 0x8E4C :: GLenum
+pattern GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION_EXT = 0x8E4C
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/PvrtcSRGB.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/PvrtcSRGB.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/PvrtcSRGB.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/PvrtcSRGB.hs
@@ -15,19 +15,18 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_EXT_pvrtc_sRGB :: Bool
 gl_EXT_pvrtc_sRGB = member "GL_EXT_pvrtc_sRGB" extensions
 
-pattern GL_COMPRESSED_SRGB_ALPHA_PVRTC_2BPPV1_EXT = 0x8A56 :: GLenum
+pattern GL_COMPRESSED_SRGB_ALPHA_PVRTC_2BPPV1_EXT = 0x8A56
 
-pattern GL_COMPRESSED_SRGB_ALPHA_PVRTC_2BPPV2_IMG = 0x93F0 :: GLenum
+pattern GL_COMPRESSED_SRGB_ALPHA_PVRTC_2BPPV2_IMG = 0x93F0
 
-pattern GL_COMPRESSED_SRGB_ALPHA_PVRTC_4BPPV1_EXT = 0x8A57 :: GLenum
+pattern GL_COMPRESSED_SRGB_ALPHA_PVRTC_4BPPV1_EXT = 0x8A57
 
-pattern GL_COMPRESSED_SRGB_ALPHA_PVRTC_4BPPV2_IMG = 0x93F1 :: GLenum
+pattern GL_COMPRESSED_SRGB_ALPHA_PVRTC_4BPPV2_IMG = 0x93F1
 
-pattern GL_COMPRESSED_SRGB_PVRTC_2BPPV1_EXT = 0x8A54 :: GLenum
+pattern GL_COMPRESSED_SRGB_PVRTC_2BPPV1_EXT = 0x8A54
 
-pattern GL_COMPRESSED_SRGB_PVRTC_4BPPV1_EXT = 0x8A55 :: GLenum
+pattern GL_COMPRESSED_SRGB_PVRTC_4BPPV1_EXT = 0x8A55
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/ReadFormatBgra.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/ReadFormatBgra.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/ReadFormatBgra.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/ReadFormatBgra.hs
@@ -13,11 +13,10 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
-import Graphics.GL.Raw.Types
 
 gl_EXT_read_format_bgra :: Bool
 gl_EXT_read_format_bgra = member "GL_EXT_read_format_bgra" extensions
 
-pattern GL_UNSIGNED_SHORT_1_5_5_5_REV_EXT = 0x8366 :: GLenum
+pattern GL_UNSIGNED_SHORT_1_5_5_5_REV_EXT = 0x8366
 
-pattern GL_UNSIGNED_SHORT_4_4_4_4_REV_EXT = 0x8365 :: GLenum
+pattern GL_UNSIGNED_SHORT_4_4_4_4_REV_EXT = 0x8365
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/RescaleNormal.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/RescaleNormal.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/RescaleNormal.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/RescaleNormal.hs
@@ -10,9 +10,8 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_EXT_rescale_normal :: Bool
 gl_EXT_rescale_normal = member "GL_EXT_rescale_normal" extensions
 
-pattern GL_RESCALE_NORMAL_EXT = 0x803A :: GLenum
+pattern GL_RESCALE_NORMAL_EXT = 0x803A
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/Robustness.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/Robustness.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/Robustness.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/Robustness.hs
@@ -63,16 +63,16 @@
 
 {-# NOINLINE glReadnPixelsEXTFunPtr #-}
 
-pattern GL_CONTEXT_ROBUST_ACCESS_EXT = 0x90F3 :: GLenum
+pattern GL_CONTEXT_ROBUST_ACCESS_EXT = 0x90F3
 
-pattern GL_GUILTY_CONTEXT_RESET_EXT = 0x8253 :: GLenum
+pattern GL_GUILTY_CONTEXT_RESET_EXT = 0x8253
 
-pattern GL_INNOCENT_CONTEXT_RESET_EXT = 0x8254 :: GLenum
+pattern GL_INNOCENT_CONTEXT_RESET_EXT = 0x8254
 
-pattern GL_LOSE_CONTEXT_ON_RESET_EXT = 0x8252 :: GLenum
+pattern GL_LOSE_CONTEXT_ON_RESET_EXT = 0x8252
 
-pattern GL_NO_RESET_NOTIFICATION_EXT = 0x8261 :: GLenum
+pattern GL_NO_RESET_NOTIFICATION_EXT = 0x8261
 
-pattern GL_RESET_NOTIFICATION_STRATEGY_EXT = 0x8256 :: GLenum
+pattern GL_RESET_NOTIFICATION_STRATEGY_EXT = 0x8256
 
-pattern GL_UNKNOWN_CONTEXT_RESET_EXT = 0x8255 :: GLenum
+pattern GL_UNKNOWN_CONTEXT_RESET_EXT = 0x8255
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/SRGB.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/SRGB.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/SRGB.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/SRGB.hs
@@ -14,9 +14,8 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
-import Graphics.GL.Raw.Types
 
 gl_EXT_sRGB :: Bool
 gl_EXT_sRGB = member "GL_EXT_sRGB" extensions
 
-pattern GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT = 0x8210 :: GLenum
+pattern GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT = 0x8210
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/SecondaryColor.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/SecondaryColor.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/SecondaryColor.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/SecondaryColor.hs
@@ -178,16 +178,16 @@
 
 {-# NOINLINE glSecondaryColorPointerEXTFunPtr #-}
 
-pattern GL_COLOR_SUM_EXT = 0x8458 :: GLenum
+pattern GL_COLOR_SUM_EXT = 0x8458
 
-pattern GL_CURRENT_SECONDARY_COLOR_EXT = 0x8459 :: GLenum
+pattern GL_CURRENT_SECONDARY_COLOR_EXT = 0x8459
 
-pattern GL_SECONDARY_COLOR_ARRAY_EXT = 0x845E :: GLenum
+pattern GL_SECONDARY_COLOR_ARRAY_EXT = 0x845E
 
-pattern GL_SECONDARY_COLOR_ARRAY_POINTER_EXT = 0x845D :: GLenum
+pattern GL_SECONDARY_COLOR_ARRAY_POINTER_EXT = 0x845D
 
-pattern GL_SECONDARY_COLOR_ARRAY_SIZE_EXT = 0x845A :: GLenum
+pattern GL_SECONDARY_COLOR_ARRAY_SIZE_EXT = 0x845A
 
-pattern GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT = 0x845C :: GLenum
+pattern GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT = 0x845C
 
-pattern GL_SECONDARY_COLOR_ARRAY_TYPE_EXT = 0x845B :: GLenum
+pattern GL_SECONDARY_COLOR_ARRAY_TYPE_EXT = 0x845B
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/SeparateShaderObjects.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/SeparateShaderObjects.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/SeparateShaderObjects.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/SeparateShaderObjects.hs
@@ -176,14 +176,14 @@
 
 {-# NOINLINE glValidateProgramPipelineEXTFunPtr #-}
 
-pattern GL_ACTIVE_PROGRAM_EXT = 0x8B8D :: GLenum
+pattern GL_ACTIVE_PROGRAM_EXT = 0x8B8D
 
-pattern GL_ALL_SHADER_BITS_EXT = 0xFFFFFFFF :: GLenum
+pattern GL_ALL_SHADER_BITS_EXT = 0xFFFFFFFF
 
-pattern GL_FRAGMENT_SHADER_BIT_EXT = 0x00000002 :: GLenum
+pattern GL_FRAGMENT_SHADER_BIT_EXT = 0x00000002
 
-pattern GL_PROGRAM_PIPELINE_BINDING_EXT = 0x825A :: GLenum
+pattern GL_PROGRAM_PIPELINE_BINDING_EXT = 0x825A
 
-pattern GL_PROGRAM_SEPARABLE_EXT = 0x8258 :: GLenum
+pattern GL_PROGRAM_SEPARABLE_EXT = 0x8258
 
-pattern GL_VERTEX_SHADER_BIT_EXT = 0x00000001 :: GLenum
+pattern GL_VERTEX_SHADER_BIT_EXT = 0x00000001
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/SeparateSpecularColor.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/SeparateSpecularColor.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/SeparateSpecularColor.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/SeparateSpecularColor.hs
@@ -12,13 +12,12 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_EXT_separate_specular_color :: Bool
 gl_EXT_separate_specular_color = member "GL_EXT_separate_specular_color" extensions
 
-pattern GL_LIGHT_MODEL_COLOR_CONTROL_EXT = 0x81F8 :: GLenum
+pattern GL_LIGHT_MODEL_COLOR_CONTROL_EXT = 0x81F8
 
-pattern GL_SEPARATE_SPECULAR_COLOR_EXT = 0x81FA :: GLenum
+pattern GL_SEPARATE_SPECULAR_COLOR_EXT = 0x81FA
 
-pattern GL_SINGLE_COLOR_EXT = 0x81F9 :: GLenum
+pattern GL_SINGLE_COLOR_EXT = 0x81F9
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/ShaderFramebufferFetch.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/ShaderFramebufferFetch.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/ShaderFramebufferFetch.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/ShaderFramebufferFetch.hs
@@ -10,9 +10,8 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_EXT_shader_framebuffer_fetch :: Bool
 gl_EXT_shader_framebuffer_fetch = member "GL_EXT_shader_framebuffer_fetch" extensions
 
-pattern GL_FRAGMENT_SHADER_DISCARDS_SAMPLES_EXT = 0x8A52 :: GLenum
+pattern GL_FRAGMENT_SHADER_DISCARDS_SAMPLES_EXT = 0x8A52
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/ShaderImageLoadStore.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/ShaderImageLoadStore.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/ShaderImageLoadStore.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/ShaderImageLoadStore.hs
@@ -92,100 +92,100 @@
 
 {-# NOINLINE glMemoryBarrierEXTFunPtr #-}
 
-pattern GL_ALL_BARRIER_BITS_EXT = 0xFFFFFFFF :: GLenum
+pattern GL_ALL_BARRIER_BITS_EXT = 0xFFFFFFFF
 
-pattern GL_ATOMIC_COUNTER_BARRIER_BIT_EXT = 0x00001000 :: GLenum
+pattern GL_ATOMIC_COUNTER_BARRIER_BIT_EXT = 0x00001000
 
-pattern GL_BUFFER_UPDATE_BARRIER_BIT_EXT = 0x00000200 :: GLenum
+pattern GL_BUFFER_UPDATE_BARRIER_BIT_EXT = 0x00000200
 
-pattern GL_COMMAND_BARRIER_BIT_EXT = 0x00000040 :: GLenum
+pattern GL_COMMAND_BARRIER_BIT_EXT = 0x00000040
 
-pattern GL_ELEMENT_ARRAY_BARRIER_BIT_EXT = 0x00000002 :: GLenum
+pattern GL_ELEMENT_ARRAY_BARRIER_BIT_EXT = 0x00000002
 
-pattern GL_FRAMEBUFFER_BARRIER_BIT_EXT = 0x00000400 :: GLenum
+pattern GL_FRAMEBUFFER_BARRIER_BIT_EXT = 0x00000400
 
-pattern GL_IMAGE_1D_ARRAY_EXT = 0x9052 :: GLenum
+pattern GL_IMAGE_1D_ARRAY_EXT = 0x9052
 
-pattern GL_IMAGE_1D_EXT = 0x904C :: GLenum
+pattern GL_IMAGE_1D_EXT = 0x904C
 
-pattern GL_IMAGE_2D_ARRAY_EXT = 0x9053 :: GLenum
+pattern GL_IMAGE_2D_ARRAY_EXT = 0x9053
 
-pattern GL_IMAGE_2D_EXT = 0x904D :: GLenum
+pattern GL_IMAGE_2D_EXT = 0x904D
 
-pattern GL_IMAGE_2D_MULTISAMPLE_ARRAY_EXT = 0x9056 :: GLenum
+pattern GL_IMAGE_2D_MULTISAMPLE_ARRAY_EXT = 0x9056
 
-pattern GL_IMAGE_2D_MULTISAMPLE_EXT = 0x9055 :: GLenum
+pattern GL_IMAGE_2D_MULTISAMPLE_EXT = 0x9055
 
-pattern GL_IMAGE_2D_RECT_EXT = 0x904F :: GLenum
+pattern GL_IMAGE_2D_RECT_EXT = 0x904F
 
-pattern GL_IMAGE_3D_EXT = 0x904E :: GLenum
+pattern GL_IMAGE_3D_EXT = 0x904E
 
-pattern GL_IMAGE_BINDING_ACCESS_EXT = 0x8F3E :: GLenum
+pattern GL_IMAGE_BINDING_ACCESS_EXT = 0x8F3E
 
-pattern GL_IMAGE_BINDING_FORMAT_EXT = 0x906E :: GLenum
+pattern GL_IMAGE_BINDING_FORMAT_EXT = 0x906E
 
-pattern GL_IMAGE_BINDING_LAYERED_EXT = 0x8F3C :: GLenum
+pattern GL_IMAGE_BINDING_LAYERED_EXT = 0x8F3C
 
-pattern GL_IMAGE_BINDING_LAYER_EXT = 0x8F3D :: GLenum
+pattern GL_IMAGE_BINDING_LAYER_EXT = 0x8F3D
 
-pattern GL_IMAGE_BINDING_LEVEL_EXT = 0x8F3B :: GLenum
+pattern GL_IMAGE_BINDING_LEVEL_EXT = 0x8F3B
 
-pattern GL_IMAGE_BINDING_NAME_EXT = 0x8F3A :: GLenum
+pattern GL_IMAGE_BINDING_NAME_EXT = 0x8F3A
 
-pattern GL_IMAGE_CUBE_EXT = 0x9050 :: GLenum
+pattern GL_IMAGE_CUBE_EXT = 0x9050
 
-pattern GL_INT_IMAGE_1D_ARRAY_EXT = 0x905D :: GLenum
+pattern GL_INT_IMAGE_1D_ARRAY_EXT = 0x905D
 
-pattern GL_INT_IMAGE_1D_EXT = 0x9057 :: GLenum
+pattern GL_INT_IMAGE_1D_EXT = 0x9057
 
-pattern GL_INT_IMAGE_2D_ARRAY_EXT = 0x905E :: GLenum
+pattern GL_INT_IMAGE_2D_ARRAY_EXT = 0x905E
 
-pattern GL_INT_IMAGE_2D_EXT = 0x9058 :: GLenum
+pattern GL_INT_IMAGE_2D_EXT = 0x9058
 
-pattern GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY_EXT = 0x9061 :: GLenum
+pattern GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY_EXT = 0x9061
 
-pattern GL_INT_IMAGE_2D_MULTISAMPLE_EXT = 0x9060 :: GLenum
+pattern GL_INT_IMAGE_2D_MULTISAMPLE_EXT = 0x9060
 
-pattern GL_INT_IMAGE_2D_RECT_EXT = 0x905A :: GLenum
+pattern GL_INT_IMAGE_2D_RECT_EXT = 0x905A
 
-pattern GL_INT_IMAGE_3D_EXT = 0x9059 :: GLenum
+pattern GL_INT_IMAGE_3D_EXT = 0x9059
 
-pattern GL_INT_IMAGE_CUBE_EXT = 0x905B :: GLenum
+pattern GL_INT_IMAGE_CUBE_EXT = 0x905B
 
-pattern GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS_EXT = 0x8F39 :: GLenum
+pattern GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS_EXT = 0x8F39
 
-pattern GL_MAX_IMAGE_SAMPLES_EXT = 0x906D :: GLenum
+pattern GL_MAX_IMAGE_SAMPLES_EXT = 0x906D
 
-pattern GL_MAX_IMAGE_UNITS_EXT = 0x8F38 :: GLenum
+pattern GL_MAX_IMAGE_UNITS_EXT = 0x8F38
 
-pattern GL_PIXEL_BUFFER_BARRIER_BIT_EXT = 0x00000080 :: GLenum
+pattern GL_PIXEL_BUFFER_BARRIER_BIT_EXT = 0x00000080
 
-pattern GL_SHADER_IMAGE_ACCESS_BARRIER_BIT_EXT = 0x00000020 :: GLenum
+pattern GL_SHADER_IMAGE_ACCESS_BARRIER_BIT_EXT = 0x00000020
 
-pattern GL_TEXTURE_FETCH_BARRIER_BIT_EXT = 0x00000008 :: GLenum
+pattern GL_TEXTURE_FETCH_BARRIER_BIT_EXT = 0x00000008
 
-pattern GL_TEXTURE_UPDATE_BARRIER_BIT_EXT = 0x00000100 :: GLenum
+pattern GL_TEXTURE_UPDATE_BARRIER_BIT_EXT = 0x00000100
 
-pattern GL_TRANSFORM_FEEDBACK_BARRIER_BIT_EXT = 0x00000800 :: GLenum
+pattern GL_TRANSFORM_FEEDBACK_BARRIER_BIT_EXT = 0x00000800
 
-pattern GL_UNIFORM_BARRIER_BIT_EXT = 0x00000004 :: GLenum
+pattern GL_UNIFORM_BARRIER_BIT_EXT = 0x00000004
 
-pattern GL_UNSIGNED_INT_IMAGE_1D_ARRAY_EXT = 0x9068 :: GLenum
+pattern GL_UNSIGNED_INT_IMAGE_1D_ARRAY_EXT = 0x9068
 
-pattern GL_UNSIGNED_INT_IMAGE_1D_EXT = 0x9062 :: GLenum
+pattern GL_UNSIGNED_INT_IMAGE_1D_EXT = 0x9062
 
-pattern GL_UNSIGNED_INT_IMAGE_2D_ARRAY_EXT = 0x9069 :: GLenum
+pattern GL_UNSIGNED_INT_IMAGE_2D_ARRAY_EXT = 0x9069
 
-pattern GL_UNSIGNED_INT_IMAGE_2D_EXT = 0x9063 :: GLenum
+pattern GL_UNSIGNED_INT_IMAGE_2D_EXT = 0x9063
 
-pattern GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY_EXT = 0x906C :: GLenum
+pattern GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY_EXT = 0x906C
 
-pattern GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_EXT = 0x906B :: GLenum
+pattern GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_EXT = 0x906B
 
-pattern GL_UNSIGNED_INT_IMAGE_2D_RECT_EXT = 0x9065 :: GLenum
+pattern GL_UNSIGNED_INT_IMAGE_2D_RECT_EXT = 0x9065
 
-pattern GL_UNSIGNED_INT_IMAGE_3D_EXT = 0x9064 :: GLenum
+pattern GL_UNSIGNED_INT_IMAGE_3D_EXT = 0x9064
 
-pattern GL_UNSIGNED_INT_IMAGE_CUBE_EXT = 0x9066 :: GLenum
+pattern GL_UNSIGNED_INT_IMAGE_CUBE_EXT = 0x9066
 
-pattern GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT_EXT = 0x00000001 :: GLenum
+pattern GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT_EXT = 0x00000001
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/ShaderPixelLocalStorage.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/ShaderPixelLocalStorage.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/ShaderPixelLocalStorage.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/ShaderPixelLocalStorage.hs
@@ -12,13 +12,12 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_EXT_shader_pixel_local_storage :: Bool
 gl_EXT_shader_pixel_local_storage = member "GL_EXT_shader_pixel_local_storage" extensions
 
-pattern GL_MAX_SHADER_PIXEL_LOCAL_STORAGE_FAST_SIZE_EXT = 0x8F63 :: GLenum
+pattern GL_MAX_SHADER_PIXEL_LOCAL_STORAGE_FAST_SIZE_EXT = 0x8F63
 
-pattern GL_MAX_SHADER_PIXEL_LOCAL_STORAGE_SIZE_EXT = 0x8F67 :: GLenum
+pattern GL_MAX_SHADER_PIXEL_LOCAL_STORAGE_SIZE_EXT = 0x8F67
 
-pattern GL_SHADER_PIXEL_LOCAL_STORAGE_EXT = 0x8F64 :: GLenum
+pattern GL_SHADER_PIXEL_LOCAL_STORAGE_EXT = 0x8F64
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/ShadowSamplers.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/ShadowSamplers.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/ShadowSamplers.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/ShadowSamplers.hs
@@ -13,15 +13,14 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_EXT_shadow_samplers :: Bool
 gl_EXT_shadow_samplers = member "GL_EXT_shadow_samplers" extensions
 
-pattern GL_COMPARE_REF_TO_TEXTURE_EXT = 0x884E :: GLenum
+pattern GL_COMPARE_REF_TO_TEXTURE_EXT = 0x884E
 
-pattern GL_SAMPLER_2D_SHADOW_EXT = 0x8B62 :: GLenum
+pattern GL_SAMPLER_2D_SHADOW_EXT = 0x8B62
 
-pattern GL_TEXTURE_COMPARE_FUNC_EXT = 0x884D :: GLenum
+pattern GL_TEXTURE_COMPARE_FUNC_EXT = 0x884D
 
-pattern GL_TEXTURE_COMPARE_MODE_EXT = 0x884C :: GLenum
+pattern GL_TEXTURE_COMPARE_MODE_EXT = 0x884C
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/SharedTexturePalette.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/SharedTexturePalette.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/SharedTexturePalette.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/SharedTexturePalette.hs
@@ -10,9 +10,8 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_EXT_shared_texture_palette :: Bool
 gl_EXT_shared_texture_palette = member "GL_EXT_shared_texture_palette" extensions
 
-pattern GL_SHARED_TEXTURE_PALETTE_EXT = 0x81FB :: GLenum
+pattern GL_SHARED_TEXTURE_PALETTE_EXT = 0x81FB
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/StencilClearTag.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/StencilClearTag.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/StencilClearTag.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/StencilClearTag.hs
@@ -29,6 +29,6 @@
 
 {-# NOINLINE glStencilClearTagEXTFunPtr #-}
 
-pattern GL_STENCIL_CLEAR_TAG_VALUE_EXT = 0x88F3 :: GLenum
+pattern GL_STENCIL_CLEAR_TAG_VALUE_EXT = 0x88F3
 
-pattern GL_STENCIL_TAG_BITS_EXT = 0x88F2 :: GLenum
+pattern GL_STENCIL_TAG_BITS_EXT = 0x88F2
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/StencilTwoSide.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/StencilTwoSide.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/StencilTwoSide.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/StencilTwoSide.hs
@@ -29,6 +29,6 @@
 
 {-# NOINLINE glActiveStencilFaceEXTFunPtr #-}
 
-pattern GL_ACTIVE_STENCIL_FACE_EXT = 0x8911 :: GLenum
+pattern GL_ACTIVE_STENCIL_FACE_EXT = 0x8911
 
-pattern GL_STENCIL_TEST_TWO_SIDE_EXT = 0x8910 :: GLenum
+pattern GL_STENCIL_TEST_TWO_SIDE_EXT = 0x8910
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/StencilWrap.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/StencilWrap.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/StencilWrap.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/StencilWrap.hs
@@ -11,11 +11,10 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_EXT_stencil_wrap :: Bool
 gl_EXT_stencil_wrap = member "GL_EXT_stencil_wrap" extensions
 
-pattern GL_DECR_WRAP_EXT = 0x8508 :: GLenum
+pattern GL_DECR_WRAP_EXT = 0x8508
 
-pattern GL_INCR_WRAP_EXT = 0x8507 :: GLenum
+pattern GL_INCR_WRAP_EXT = 0x8507
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TessellationShader.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TessellationShader.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TessellationShader.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TessellationShader.hs
@@ -75,86 +75,86 @@
 
 {-# NOINLINE glPatchParameteriEXTFunPtr #-}
 
-pattern GL_FRACTIONAL_EVEN_EXT = 0x8E7C :: GLenum
+pattern GL_FRACTIONAL_EVEN_EXT = 0x8E7C
 
-pattern GL_FRACTIONAL_ODD_EXT = 0x8E7B :: GLenum
+pattern GL_FRACTIONAL_ODD_EXT = 0x8E7B
 
-pattern GL_ISOLINES_EXT = 0x8E7A :: GLenum
+pattern GL_ISOLINES_EXT = 0x8E7A
 
-pattern GL_IS_PER_PATCH_EXT = 0x92E7 :: GLenum
+pattern GL_IS_PER_PATCH_EXT = 0x92E7
 
-pattern GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS_EXT = 0x8E1E :: GLenum
+pattern GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS_EXT = 0x8E1E
 
-pattern GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS_EXT = 0x8E1F :: GLenum
+pattern GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS_EXT = 0x8E1F
 
-pattern GL_MAX_PATCH_VERTICES_EXT = 0x8E7D :: GLenum
+pattern GL_MAX_PATCH_VERTICES_EXT = 0x8E7D
 
-pattern GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS_EXT = 0x92D3 :: GLenum
+pattern GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS_EXT = 0x92D3
 
-pattern GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS_EXT = 0x92CD :: GLenum
+pattern GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS_EXT = 0x92CD
 
-pattern GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS_EXT = 0x90CB :: GLenum
+pattern GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS_EXT = 0x90CB
 
-pattern GL_MAX_TESS_CONTROL_INPUT_COMPONENTS_EXT = 0x886C :: GLenum
+pattern GL_MAX_TESS_CONTROL_INPUT_COMPONENTS_EXT = 0x886C
 
-pattern GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS_EXT = 0x8E83 :: GLenum
+pattern GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS_EXT = 0x8E83
 
-pattern GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS_EXT = 0x90D8 :: GLenum
+pattern GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS_EXT = 0x90D8
 
-pattern GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS_EXT = 0x8E81 :: GLenum
+pattern GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS_EXT = 0x8E81
 
-pattern GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS_EXT = 0x8E85 :: GLenum
+pattern GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS_EXT = 0x8E85
 
-pattern GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS_EXT = 0x8E89 :: GLenum
+pattern GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS_EXT = 0x8E89
 
-pattern GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS_EXT = 0x8E7F :: GLenum
+pattern GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS_EXT = 0x8E7F
 
-pattern GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS_EXT = 0x92D4 :: GLenum
+pattern GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS_EXT = 0x92D4
 
-pattern GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS_EXT = 0x92CE :: GLenum
+pattern GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS_EXT = 0x92CE
 
-pattern GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS_EXT = 0x90CC :: GLenum
+pattern GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS_EXT = 0x90CC
 
-pattern GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS_EXT = 0x886D :: GLenum
+pattern GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS_EXT = 0x886D
 
-pattern GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS_EXT = 0x8E86 :: GLenum
+pattern GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS_EXT = 0x8E86
 
-pattern GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS_EXT = 0x90D9 :: GLenum
+pattern GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS_EXT = 0x90D9
 
-pattern GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS_EXT = 0x8E82 :: GLenum
+pattern GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS_EXT = 0x8E82
 
-pattern GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS_EXT = 0x8E8A :: GLenum
+pattern GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS_EXT = 0x8E8A
 
-pattern GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS_EXT = 0x8E80 :: GLenum
+pattern GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS_EXT = 0x8E80
 
-pattern GL_MAX_TESS_GEN_LEVEL_EXT = 0x8E7E :: GLenum
+pattern GL_MAX_TESS_GEN_LEVEL_EXT = 0x8E7E
 
-pattern GL_MAX_TESS_PATCH_COMPONENTS_EXT = 0x8E84 :: GLenum
+pattern GL_MAX_TESS_PATCH_COMPONENTS_EXT = 0x8E84
 
-pattern GL_PATCHES_EXT = 0x000E :: GLenum
+pattern GL_PATCHES_EXT = 0x000E
 
-pattern GL_PATCH_VERTICES_EXT = 0x8E72 :: GLenum
+pattern GL_PATCH_VERTICES_EXT = 0x8E72
 
-pattern GL_QUADS_EXT = 0x0007 :: GLenum
+pattern GL_QUADS_EXT = 0x0007
 
-pattern GL_REFERENCED_BY_TESS_CONTROL_SHADER_EXT = 0x9307 :: GLenum
+pattern GL_REFERENCED_BY_TESS_CONTROL_SHADER_EXT = 0x9307
 
-pattern GL_REFERENCED_BY_TESS_EVALUATION_SHADER_EXT = 0x9308 :: GLenum
+pattern GL_REFERENCED_BY_TESS_EVALUATION_SHADER_EXT = 0x9308
 
-pattern GL_TESS_CONTROL_OUTPUT_VERTICES_EXT = 0x8E75 :: GLenum
+pattern GL_TESS_CONTROL_OUTPUT_VERTICES_EXT = 0x8E75
 
-pattern GL_TESS_CONTROL_SHADER_BIT_EXT = 0x00000008 :: GLenum
+pattern GL_TESS_CONTROL_SHADER_BIT_EXT = 0x00000008
 
-pattern GL_TESS_CONTROL_SHADER_EXT = 0x8E88 :: GLenum
+pattern GL_TESS_CONTROL_SHADER_EXT = 0x8E88
 
-pattern GL_TESS_EVALUATION_SHADER_BIT_EXT = 0x00000010 :: GLenum
+pattern GL_TESS_EVALUATION_SHADER_BIT_EXT = 0x00000010
 
-pattern GL_TESS_EVALUATION_SHADER_EXT = 0x8E87 :: GLenum
+pattern GL_TESS_EVALUATION_SHADER_EXT = 0x8E87
 
-pattern GL_TESS_GEN_MODE_EXT = 0x8E76 :: GLenum
+pattern GL_TESS_GEN_MODE_EXT = 0x8E76
 
-pattern GL_TESS_GEN_POINT_MODE_EXT = 0x8E79 :: GLenum
+pattern GL_TESS_GEN_POINT_MODE_EXT = 0x8E79
 
-pattern GL_TESS_GEN_SPACING_EXT = 0x8E77 :: GLenum
+pattern GL_TESS_GEN_SPACING_EXT = 0x8E77
 
-pattern GL_TESS_GEN_VERTEX_ORDER_EXT = 0x8E78 :: GLenum
+pattern GL_TESS_GEN_VERTEX_ORDER_EXT = 0x8E78
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/Texture.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/Texture.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/Texture.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/Texture.hs
@@ -53,83 +53,82 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
-import Graphics.GL.Raw.Types
 
 gl_EXT_texture :: Bool
 gl_EXT_texture = member "GL_EXT_texture" extensions
 
-pattern GL_ALPHA12_EXT = 0x803D :: GLenum
+pattern GL_ALPHA12_EXT = 0x803D
 
-pattern GL_ALPHA16_EXT = 0x803E :: GLenum
+pattern GL_ALPHA16_EXT = 0x803E
 
-pattern GL_ALPHA4_EXT = 0x803B :: GLenum
+pattern GL_ALPHA4_EXT = 0x803B
 
-pattern GL_INTENSITY12_EXT = 0x804C :: GLenum
+pattern GL_INTENSITY12_EXT = 0x804C
 
-pattern GL_INTENSITY16_EXT = 0x804D :: GLenum
+pattern GL_INTENSITY16_EXT = 0x804D
 
-pattern GL_INTENSITY4_EXT = 0x804A :: GLenum
+pattern GL_INTENSITY4_EXT = 0x804A
 
-pattern GL_INTENSITY8_EXT = 0x804B :: GLenum
+pattern GL_INTENSITY8_EXT = 0x804B
 
-pattern GL_INTENSITY_EXT = 0x8049 :: GLenum
+pattern GL_INTENSITY_EXT = 0x8049
 
-pattern GL_LUMINANCE12_ALPHA12_EXT = 0x8047 :: GLenum
+pattern GL_LUMINANCE12_ALPHA12_EXT = 0x8047
 
-pattern GL_LUMINANCE12_ALPHA4_EXT = 0x8046 :: GLenum
+pattern GL_LUMINANCE12_ALPHA4_EXT = 0x8046
 
-pattern GL_LUMINANCE12_EXT = 0x8041 :: GLenum
+pattern GL_LUMINANCE12_EXT = 0x8041
 
-pattern GL_LUMINANCE16_ALPHA16_EXT = 0x8048 :: GLenum
+pattern GL_LUMINANCE16_ALPHA16_EXT = 0x8048
 
-pattern GL_LUMINANCE16_EXT = 0x8042 :: GLenum
+pattern GL_LUMINANCE16_EXT = 0x8042
 
-pattern GL_LUMINANCE4_ALPHA4_EXT = 0x8043 :: GLenum
+pattern GL_LUMINANCE4_ALPHA4_EXT = 0x8043
 
-pattern GL_LUMINANCE4_EXT = 0x803F :: GLenum
+pattern GL_LUMINANCE4_EXT = 0x803F
 
-pattern GL_LUMINANCE6_ALPHA2_EXT = 0x8044 :: GLenum
+pattern GL_LUMINANCE6_ALPHA2_EXT = 0x8044
 
-pattern GL_PROXY_TEXTURE_1D_EXT = 0x8063 :: GLenum
+pattern GL_PROXY_TEXTURE_1D_EXT = 0x8063
 
-pattern GL_PROXY_TEXTURE_2D_EXT = 0x8064 :: GLenum
+pattern GL_PROXY_TEXTURE_2D_EXT = 0x8064
 
-pattern GL_REPLACE_EXT = 0x8062 :: GLenum
+pattern GL_REPLACE_EXT = 0x8062
 
-pattern GL_RGB12_EXT = 0x8053 :: GLenum
+pattern GL_RGB12_EXT = 0x8053
 
-pattern GL_RGB16_EXT = 0x8054 :: GLenum
+pattern GL_RGB16_EXT = 0x8054
 
-pattern GL_RGB2_EXT = 0x804E :: GLenum
+pattern GL_RGB2_EXT = 0x804E
 
-pattern GL_RGB4_EXT = 0x804F :: GLenum
+pattern GL_RGB4_EXT = 0x804F
 
-pattern GL_RGB5_A1_EXT = 0x8057 :: GLenum
+pattern GL_RGB5_A1_EXT = 0x8057
 
-pattern GL_RGB5_EXT = 0x8050 :: GLenum
+pattern GL_RGB5_EXT = 0x8050
 
-pattern GL_RGB8_EXT = 0x8051 :: GLenum
+pattern GL_RGB8_EXT = 0x8051
 
-pattern GL_RGBA12_EXT = 0x805A :: GLenum
+pattern GL_RGBA12_EXT = 0x805A
 
-pattern GL_RGBA16_EXT = 0x805B :: GLenum
+pattern GL_RGBA16_EXT = 0x805B
 
-pattern GL_RGBA2_EXT = 0x8055 :: GLenum
+pattern GL_RGBA2_EXT = 0x8055
 
-pattern GL_RGBA4_EXT = 0x8056 :: GLenum
+pattern GL_RGBA4_EXT = 0x8056
 
-pattern GL_RGBA8_EXT = 0x8058 :: GLenum
+pattern GL_RGBA8_EXT = 0x8058
 
-pattern GL_TEXTURE_ALPHA_SIZE_EXT = 0x805F :: GLenum
+pattern GL_TEXTURE_ALPHA_SIZE_EXT = 0x805F
 
-pattern GL_TEXTURE_BLUE_SIZE_EXT = 0x805E :: GLenum
+pattern GL_TEXTURE_BLUE_SIZE_EXT = 0x805E
 
-pattern GL_TEXTURE_GREEN_SIZE_EXT = 0x805D :: GLenum
+pattern GL_TEXTURE_GREEN_SIZE_EXT = 0x805D
 
-pattern GL_TEXTURE_INTENSITY_SIZE_EXT = 0x8061 :: GLenum
+pattern GL_TEXTURE_INTENSITY_SIZE_EXT = 0x8061
 
-pattern GL_TEXTURE_LUMINANCE_SIZE_EXT = 0x8060 :: GLenum
+pattern GL_TEXTURE_LUMINANCE_SIZE_EXT = 0x8060
 
-pattern GL_TEXTURE_RED_SIZE_EXT = 0x805C :: GLenum
+pattern GL_TEXTURE_RED_SIZE_EXT = 0x805C
 
-pattern GL_TEXTURE_TOO_LARGE_EXT = 0x8065 :: GLenum
+pattern GL_TEXTURE_TOO_LARGE_EXT = 0x8065
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/Texture3D.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/Texture3D.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/Texture3D.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/Texture3D.hs
@@ -45,20 +45,20 @@
 
 {-# NOINLINE glTexSubImage3DEXTFunPtr #-}
 
-pattern GL_MAX_3D_TEXTURE_SIZE_EXT = 0x8073 :: GLenum
+pattern GL_MAX_3D_TEXTURE_SIZE_EXT = 0x8073
 
-pattern GL_PACK_IMAGE_HEIGHT_EXT = 0x806C :: GLenum
+pattern GL_PACK_IMAGE_HEIGHT_EXT = 0x806C
 
-pattern GL_PACK_SKIP_IMAGES_EXT = 0x806B :: GLenum
+pattern GL_PACK_SKIP_IMAGES_EXT = 0x806B
 
-pattern GL_PROXY_TEXTURE_3D_EXT = 0x8070 :: GLenum
+pattern GL_PROXY_TEXTURE_3D_EXT = 0x8070
 
-pattern GL_TEXTURE_3D_EXT = 0x806F :: GLenum
+pattern GL_TEXTURE_3D_EXT = 0x806F
 
-pattern GL_TEXTURE_DEPTH_EXT = 0x8071 :: GLenum
+pattern GL_TEXTURE_DEPTH_EXT = 0x8071
 
-pattern GL_TEXTURE_WRAP_R_EXT = 0x8072 :: GLenum
+pattern GL_TEXTURE_WRAP_R_EXT = 0x8072
 
-pattern GL_UNPACK_IMAGE_HEIGHT_EXT = 0x806E :: GLenum
+pattern GL_UNPACK_IMAGE_HEIGHT_EXT = 0x806E
 
-pattern GL_UNPACK_SKIP_IMAGES_EXT = 0x806D :: GLenum
+pattern GL_UNPACK_SKIP_IMAGES_EXT = 0x806D
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureArray.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureArray.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureArray.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureArray.hs
@@ -20,23 +20,22 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
-import Graphics.GL.Raw.Types
 
 gl_EXT_texture_array :: Bool
 gl_EXT_texture_array = member "GL_EXT_texture_array" extensions
 
-pattern GL_COMPARE_REF_DEPTH_TO_TEXTURE_EXT = 0x884E :: GLenum
+pattern GL_COMPARE_REF_DEPTH_TO_TEXTURE_EXT = 0x884E
 
-pattern GL_MAX_ARRAY_TEXTURE_LAYERS_EXT = 0x88FF :: GLenum
+pattern GL_MAX_ARRAY_TEXTURE_LAYERS_EXT = 0x88FF
 
-pattern GL_PROXY_TEXTURE_1D_ARRAY_EXT = 0x8C19 :: GLenum
+pattern GL_PROXY_TEXTURE_1D_ARRAY_EXT = 0x8C19
 
-pattern GL_PROXY_TEXTURE_2D_ARRAY_EXT = 0x8C1B :: GLenum
+pattern GL_PROXY_TEXTURE_2D_ARRAY_EXT = 0x8C1B
 
-pattern GL_TEXTURE_1D_ARRAY_EXT = 0x8C18 :: GLenum
+pattern GL_TEXTURE_1D_ARRAY_EXT = 0x8C18
 
-pattern GL_TEXTURE_2D_ARRAY_EXT = 0x8C1A :: GLenum
+pattern GL_TEXTURE_2D_ARRAY_EXT = 0x8C1A
 
-pattern GL_TEXTURE_BINDING_1D_ARRAY_EXT = 0x8C1C :: GLenum
+pattern GL_TEXTURE_BINDING_1D_ARRAY_EXT = 0x8C1C
 
-pattern GL_TEXTURE_BINDING_2D_ARRAY_EXT = 0x8C1D :: GLenum
+pattern GL_TEXTURE_BINDING_2D_ARRAY_EXT = 0x8C1D
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureBorderClamp.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureBorderClamp.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureBorderClamp.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureBorderClamp.hs
@@ -61,6 +61,6 @@
 
 {-# NOINLINE glSamplerParameterIuivEXTFunPtr #-}
 
-pattern GL_CLAMP_TO_BORDER_EXT = 0x812D :: GLenum
+pattern GL_CLAMP_TO_BORDER_EXT = 0x812D
 
-pattern GL_TEXTURE_BORDER_COLOR_EXT = 0x1004 :: GLenum
+pattern GL_TEXTURE_BORDER_COLOR_EXT = 0x1004
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureBuffer.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureBuffer.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureBuffer.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureBuffer.hs
@@ -43,10 +43,10 @@
 
 {-# NOINLINE glTexBufferRangeEXTFunPtr #-}
 
-pattern GL_TEXTURE_BUFFER_BINDING_EXT = 0x8C2A :: GLenum
+pattern GL_TEXTURE_BUFFER_BINDING_EXT = 0x8C2A
 
-pattern GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT_EXT = 0x919F :: GLenum
+pattern GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT_EXT = 0x919F
 
-pattern GL_TEXTURE_BUFFER_OFFSET_EXT = 0x919D :: GLenum
+pattern GL_TEXTURE_BUFFER_OFFSET_EXT = 0x919D
 
-pattern GL_TEXTURE_BUFFER_SIZE_EXT = 0x919E :: GLenum
+pattern GL_TEXTURE_BUFFER_SIZE_EXT = 0x919E
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureBufferObject.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureBufferObject.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureBufferObject.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureBufferObject.hs
@@ -16,9 +16,8 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
-import Graphics.GL.Raw.Types
 
 gl_EXT_texture_buffer_object :: Bool
 gl_EXT_texture_buffer_object = member "GL_EXT_texture_buffer_object" extensions
 
-pattern GL_TEXTURE_BUFFER_FORMAT_EXT = 0x8C2E :: GLenum
+pattern GL_TEXTURE_BUFFER_FORMAT_EXT = 0x8C2E
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureCompressionLatc.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureCompressionLatc.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureCompressionLatc.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureCompressionLatc.hs
@@ -13,15 +13,14 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_EXT_texture_compression_latc :: Bool
 gl_EXT_texture_compression_latc = member "GL_EXT_texture_compression_latc" extensions
 
-pattern GL_COMPRESSED_LUMINANCE_ALPHA_LATC2_EXT = 0x8C72 :: GLenum
+pattern GL_COMPRESSED_LUMINANCE_ALPHA_LATC2_EXT = 0x8C72
 
-pattern GL_COMPRESSED_LUMINANCE_LATC1_EXT = 0x8C70 :: GLenum
+pattern GL_COMPRESSED_LUMINANCE_LATC1_EXT = 0x8C70
 
-pattern GL_COMPRESSED_SIGNED_LUMINANCE_ALPHA_LATC2_EXT = 0x8C73 :: GLenum
+pattern GL_COMPRESSED_SIGNED_LUMINANCE_ALPHA_LATC2_EXT = 0x8C73
 
-pattern GL_COMPRESSED_SIGNED_LUMINANCE_LATC1_EXT = 0x8C71 :: GLenum
+pattern GL_COMPRESSED_SIGNED_LUMINANCE_LATC1_EXT = 0x8C71
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureCompressionRgtc.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureCompressionRgtc.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureCompressionRgtc.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureCompressionRgtc.hs
@@ -13,15 +13,14 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_EXT_texture_compression_rgtc :: Bool
 gl_EXT_texture_compression_rgtc = member "GL_EXT_texture_compression_rgtc" extensions
 
-pattern GL_COMPRESSED_RED_GREEN_RGTC2_EXT = 0x8DBD :: GLenum
+pattern GL_COMPRESSED_RED_GREEN_RGTC2_EXT = 0x8DBD
 
-pattern GL_COMPRESSED_RED_RGTC1_EXT = 0x8DBB :: GLenum
+pattern GL_COMPRESSED_RED_RGTC1_EXT = 0x8DBB
 
-pattern GL_COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT = 0x8DBE :: GLenum
+pattern GL_COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT = 0x8DBE
 
-pattern GL_COMPRESSED_SIGNED_RED_RGTC1_EXT = 0x8DBC :: GLenum
+pattern GL_COMPRESSED_SIGNED_RED_RGTC1_EXT = 0x8DBC
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureCompressionS3tc.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureCompressionS3tc.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureCompressionS3tc.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureCompressionS3tc.hs
@@ -14,11 +14,10 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
-import Graphics.GL.Raw.Types
 
 gl_EXT_texture_compression_s3tc :: Bool
 gl_EXT_texture_compression_s3tc = member "GL_EXT_texture_compression_s3tc" extensions
 
-pattern GL_COMPRESSED_RGBA_S3TC_DXT3_EXT = 0x83F2 :: GLenum
+pattern GL_COMPRESSED_RGBA_S3TC_DXT3_EXT = 0x83F2
 
-pattern GL_COMPRESSED_RGBA_S3TC_DXT5_EXT = 0x83F3 :: GLenum
+pattern GL_COMPRESSED_RGBA_S3TC_DXT5_EXT = 0x83F3
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureCubeMap.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureCubeMap.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureCubeMap.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureCubeMap.hs
@@ -21,31 +21,30 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_EXT_texture_cube_map :: Bool
 gl_EXT_texture_cube_map = member "GL_EXT_texture_cube_map" extensions
 
-pattern GL_MAX_CUBE_MAP_TEXTURE_SIZE_EXT = 0x851C :: GLenum
+pattern GL_MAX_CUBE_MAP_TEXTURE_SIZE_EXT = 0x851C
 
-pattern GL_NORMAL_MAP_EXT = 0x8511 :: GLenum
+pattern GL_NORMAL_MAP_EXT = 0x8511
 
-pattern GL_PROXY_TEXTURE_CUBE_MAP_EXT = 0x851B :: GLenum
+pattern GL_PROXY_TEXTURE_CUBE_MAP_EXT = 0x851B
 
-pattern GL_REFLECTION_MAP_EXT = 0x8512 :: GLenum
+pattern GL_REFLECTION_MAP_EXT = 0x8512
 
-pattern GL_TEXTURE_BINDING_CUBE_MAP_EXT = 0x8514 :: GLenum
+pattern GL_TEXTURE_BINDING_CUBE_MAP_EXT = 0x8514
 
-pattern GL_TEXTURE_CUBE_MAP_EXT = 0x8513 :: GLenum
+pattern GL_TEXTURE_CUBE_MAP_EXT = 0x8513
 
-pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_X_EXT = 0x8516 :: GLenum
+pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_X_EXT = 0x8516
 
-pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_EXT = 0x8518 :: GLenum
+pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_EXT = 0x8518
 
-pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_EXT = 0x851A :: GLenum
+pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_EXT = 0x851A
 
-pattern GL_TEXTURE_CUBE_MAP_POSITIVE_X_EXT = 0x8515 :: GLenum
+pattern GL_TEXTURE_CUBE_MAP_POSITIVE_X_EXT = 0x8515
 
-pattern GL_TEXTURE_CUBE_MAP_POSITIVE_Y_EXT = 0x8517 :: GLenum
+pattern GL_TEXTURE_CUBE_MAP_POSITIVE_Y_EXT = 0x8517
 
-pattern GL_TEXTURE_CUBE_MAP_POSITIVE_Z_EXT = 0x8519 :: GLenum
+pattern GL_TEXTURE_CUBE_MAP_POSITIVE_Z_EXT = 0x8519
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureCubeMapArray.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureCubeMapArray.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureCubeMapArray.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureCubeMapArray.hs
@@ -19,19 +19,18 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
-import Graphics.GL.Raw.Types
 
 gl_EXT_texture_cube_map_array :: Bool
 gl_EXT_texture_cube_map_array = member "GL_EXT_texture_cube_map_array" extensions
 
-pattern GL_INT_SAMPLER_CUBE_MAP_ARRAY_EXT = 0x900E :: GLenum
+pattern GL_INT_SAMPLER_CUBE_MAP_ARRAY_EXT = 0x900E
 
-pattern GL_SAMPLER_CUBE_MAP_ARRAY_EXT = 0x900C :: GLenum
+pattern GL_SAMPLER_CUBE_MAP_ARRAY_EXT = 0x900C
 
-pattern GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW_EXT = 0x900D :: GLenum
+pattern GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW_EXT = 0x900D
 
-pattern GL_TEXTURE_BINDING_CUBE_MAP_ARRAY_EXT = 0x900A :: GLenum
+pattern GL_TEXTURE_BINDING_CUBE_MAP_ARRAY_EXT = 0x900A
 
-pattern GL_TEXTURE_CUBE_MAP_ARRAY_EXT = 0x9009 :: GLenum
+pattern GL_TEXTURE_CUBE_MAP_ARRAY_EXT = 0x9009
 
-pattern GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY_EXT = 0x900F :: GLenum
+pattern GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY_EXT = 0x900F
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureEnvCombine.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureEnvCombine.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureEnvCombine.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureEnvCombine.hs
@@ -30,49 +30,48 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_EXT_texture_env_combine :: Bool
 gl_EXT_texture_env_combine = member "GL_EXT_texture_env_combine" extensions
 
-pattern GL_ADD_SIGNED_EXT = 0x8574 :: GLenum
+pattern GL_ADD_SIGNED_EXT = 0x8574
 
-pattern GL_COMBINE_ALPHA_EXT = 0x8572 :: GLenum
+pattern GL_COMBINE_ALPHA_EXT = 0x8572
 
-pattern GL_COMBINE_EXT = 0x8570 :: GLenum
+pattern GL_COMBINE_EXT = 0x8570
 
-pattern GL_COMBINE_RGB_EXT = 0x8571 :: GLenum
+pattern GL_COMBINE_RGB_EXT = 0x8571
 
-pattern GL_CONSTANT_EXT = 0x8576 :: GLenum
+pattern GL_CONSTANT_EXT = 0x8576
 
-pattern GL_INTERPOLATE_EXT = 0x8575 :: GLenum
+pattern GL_INTERPOLATE_EXT = 0x8575
 
-pattern GL_OPERAND0_ALPHA_EXT = 0x8598 :: GLenum
+pattern GL_OPERAND0_ALPHA_EXT = 0x8598
 
-pattern GL_OPERAND0_RGB_EXT = 0x8590 :: GLenum
+pattern GL_OPERAND0_RGB_EXT = 0x8590
 
-pattern GL_OPERAND1_ALPHA_EXT = 0x8599 :: GLenum
+pattern GL_OPERAND1_ALPHA_EXT = 0x8599
 
-pattern GL_OPERAND1_RGB_EXT = 0x8591 :: GLenum
+pattern GL_OPERAND1_RGB_EXT = 0x8591
 
-pattern GL_OPERAND2_ALPHA_EXT = 0x859A :: GLenum
+pattern GL_OPERAND2_ALPHA_EXT = 0x859A
 
-pattern GL_OPERAND2_RGB_EXT = 0x8592 :: GLenum
+pattern GL_OPERAND2_RGB_EXT = 0x8592
 
-pattern GL_PREVIOUS_EXT = 0x8578 :: GLenum
+pattern GL_PREVIOUS_EXT = 0x8578
 
-pattern GL_PRIMARY_COLOR_EXT = 0x8577 :: GLenum
+pattern GL_PRIMARY_COLOR_EXT = 0x8577
 
-pattern GL_RGB_SCALE_EXT = 0x8573 :: GLenum
+pattern GL_RGB_SCALE_EXT = 0x8573
 
-pattern GL_SOURCE0_ALPHA_EXT = 0x8588 :: GLenum
+pattern GL_SOURCE0_ALPHA_EXT = 0x8588
 
-pattern GL_SOURCE0_RGB_EXT = 0x8580 :: GLenum
+pattern GL_SOURCE0_RGB_EXT = 0x8580
 
-pattern GL_SOURCE1_ALPHA_EXT = 0x8589 :: GLenum
+pattern GL_SOURCE1_ALPHA_EXT = 0x8589
 
-pattern GL_SOURCE1_RGB_EXT = 0x8581 :: GLenum
+pattern GL_SOURCE1_RGB_EXT = 0x8581
 
-pattern GL_SOURCE2_ALPHA_EXT = 0x858A :: GLenum
+pattern GL_SOURCE2_ALPHA_EXT = 0x858A
 
-pattern GL_SOURCE2_RGB_EXT = 0x8582 :: GLenum
+pattern GL_SOURCE2_RGB_EXT = 0x8582
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureEnvDot3.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureEnvDot3.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureEnvDot3.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureEnvDot3.hs
@@ -11,11 +11,10 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_EXT_texture_env_dot3 :: Bool
 gl_EXT_texture_env_dot3 = member "GL_EXT_texture_env_dot3" extensions
 
-pattern GL_DOT3_RGBA_EXT = 0x8741 :: GLenum
+pattern GL_DOT3_RGBA_EXT = 0x8741
 
-pattern GL_DOT3_RGB_EXT = 0x8740 :: GLenum
+pattern GL_DOT3_RGB_EXT = 0x8740
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureFilterAnisotropic.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureFilterAnisotropic.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureFilterAnisotropic.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureFilterAnisotropic.hs
@@ -11,11 +11,10 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_EXT_texture_filter_anisotropic :: Bool
 gl_EXT_texture_filter_anisotropic = member "GL_EXT_texture_filter_anisotropic" extensions
 
-pattern GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT = 0x84FF :: GLenum
+pattern GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT = 0x84FF
 
-pattern GL_TEXTURE_MAX_ANISOTROPY_EXT = 0x84FE :: GLenum
+pattern GL_TEXTURE_MAX_ANISOTROPY_EXT = 0x84FE
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureInteger.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureInteger.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureInteger.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureInteger.hs
@@ -88,96 +88,96 @@
 
 {-# NOINLINE glClearColorIuiEXTFunPtr #-}
 
-pattern GL_ALPHA16I_EXT = 0x8D8A :: GLenum
+pattern GL_ALPHA16I_EXT = 0x8D8A
 
-pattern GL_ALPHA16UI_EXT = 0x8D78 :: GLenum
+pattern GL_ALPHA16UI_EXT = 0x8D78
 
-pattern GL_ALPHA32I_EXT = 0x8D84 :: GLenum
+pattern GL_ALPHA32I_EXT = 0x8D84
 
-pattern GL_ALPHA32UI_EXT = 0x8D72 :: GLenum
+pattern GL_ALPHA32UI_EXT = 0x8D72
 
-pattern GL_ALPHA8I_EXT = 0x8D90 :: GLenum
+pattern GL_ALPHA8I_EXT = 0x8D90
 
-pattern GL_ALPHA8UI_EXT = 0x8D7E :: GLenum
+pattern GL_ALPHA8UI_EXT = 0x8D7E
 
-pattern GL_ALPHA_INTEGER_EXT = 0x8D97 :: GLenum
+pattern GL_ALPHA_INTEGER_EXT = 0x8D97
 
-pattern GL_BGRA_INTEGER_EXT = 0x8D9B :: GLenum
+pattern GL_BGRA_INTEGER_EXT = 0x8D9B
 
-pattern GL_BGR_INTEGER_EXT = 0x8D9A :: GLenum
+pattern GL_BGR_INTEGER_EXT = 0x8D9A
 
-pattern GL_BLUE_INTEGER_EXT = 0x8D96 :: GLenum
+pattern GL_BLUE_INTEGER_EXT = 0x8D96
 
-pattern GL_GREEN_INTEGER_EXT = 0x8D95 :: GLenum
+pattern GL_GREEN_INTEGER_EXT = 0x8D95
 
-pattern GL_INTENSITY16I_EXT = 0x8D8B :: GLenum
+pattern GL_INTENSITY16I_EXT = 0x8D8B
 
-pattern GL_INTENSITY16UI_EXT = 0x8D79 :: GLenum
+pattern GL_INTENSITY16UI_EXT = 0x8D79
 
-pattern GL_INTENSITY32I_EXT = 0x8D85 :: GLenum
+pattern GL_INTENSITY32I_EXT = 0x8D85
 
-pattern GL_INTENSITY32UI_EXT = 0x8D73 :: GLenum
+pattern GL_INTENSITY32UI_EXT = 0x8D73
 
-pattern GL_INTENSITY8I_EXT = 0x8D91 :: GLenum
+pattern GL_INTENSITY8I_EXT = 0x8D91
 
-pattern GL_INTENSITY8UI_EXT = 0x8D7F :: GLenum
+pattern GL_INTENSITY8UI_EXT = 0x8D7F
 
-pattern GL_LUMINANCE16I_EXT = 0x8D8C :: GLenum
+pattern GL_LUMINANCE16I_EXT = 0x8D8C
 
-pattern GL_LUMINANCE16UI_EXT = 0x8D7A :: GLenum
+pattern GL_LUMINANCE16UI_EXT = 0x8D7A
 
-pattern GL_LUMINANCE32I_EXT = 0x8D86 :: GLenum
+pattern GL_LUMINANCE32I_EXT = 0x8D86
 
-pattern GL_LUMINANCE32UI_EXT = 0x8D74 :: GLenum
+pattern GL_LUMINANCE32UI_EXT = 0x8D74
 
-pattern GL_LUMINANCE8I_EXT = 0x8D92 :: GLenum
+pattern GL_LUMINANCE8I_EXT = 0x8D92
 
-pattern GL_LUMINANCE8UI_EXT = 0x8D80 :: GLenum
+pattern GL_LUMINANCE8UI_EXT = 0x8D80
 
-pattern GL_LUMINANCE_ALPHA16I_EXT = 0x8D8D :: GLenum
+pattern GL_LUMINANCE_ALPHA16I_EXT = 0x8D8D
 
-pattern GL_LUMINANCE_ALPHA16UI_EXT = 0x8D7B :: GLenum
+pattern GL_LUMINANCE_ALPHA16UI_EXT = 0x8D7B
 
-pattern GL_LUMINANCE_ALPHA32I_EXT = 0x8D87 :: GLenum
+pattern GL_LUMINANCE_ALPHA32I_EXT = 0x8D87
 
-pattern GL_LUMINANCE_ALPHA32UI_EXT = 0x8D75 :: GLenum
+pattern GL_LUMINANCE_ALPHA32UI_EXT = 0x8D75
 
-pattern GL_LUMINANCE_ALPHA8I_EXT = 0x8D93 :: GLenum
+pattern GL_LUMINANCE_ALPHA8I_EXT = 0x8D93
 
-pattern GL_LUMINANCE_ALPHA8UI_EXT = 0x8D81 :: GLenum
+pattern GL_LUMINANCE_ALPHA8UI_EXT = 0x8D81
 
-pattern GL_LUMINANCE_ALPHA_INTEGER_EXT = 0x8D9D :: GLenum
+pattern GL_LUMINANCE_ALPHA_INTEGER_EXT = 0x8D9D
 
-pattern GL_LUMINANCE_INTEGER_EXT = 0x8D9C :: GLenum
+pattern GL_LUMINANCE_INTEGER_EXT = 0x8D9C
 
-pattern GL_RED_INTEGER_EXT = 0x8D94 :: GLenum
+pattern GL_RED_INTEGER_EXT = 0x8D94
 
-pattern GL_RGB16I_EXT = 0x8D89 :: GLenum
+pattern GL_RGB16I_EXT = 0x8D89
 
-pattern GL_RGB16UI_EXT = 0x8D77 :: GLenum
+pattern GL_RGB16UI_EXT = 0x8D77
 
-pattern GL_RGB32I_EXT = 0x8D83 :: GLenum
+pattern GL_RGB32I_EXT = 0x8D83
 
-pattern GL_RGB32UI_EXT = 0x8D71 :: GLenum
+pattern GL_RGB32UI_EXT = 0x8D71
 
-pattern GL_RGB8I_EXT = 0x8D8F :: GLenum
+pattern GL_RGB8I_EXT = 0x8D8F
 
-pattern GL_RGB8UI_EXT = 0x8D7D :: GLenum
+pattern GL_RGB8UI_EXT = 0x8D7D
 
-pattern GL_RGBA16I_EXT = 0x8D88 :: GLenum
+pattern GL_RGBA16I_EXT = 0x8D88
 
-pattern GL_RGBA16UI_EXT = 0x8D76 :: GLenum
+pattern GL_RGBA16UI_EXT = 0x8D76
 
-pattern GL_RGBA32I_EXT = 0x8D82 :: GLenum
+pattern GL_RGBA32I_EXT = 0x8D82
 
-pattern GL_RGBA32UI_EXT = 0x8D70 :: GLenum
+pattern GL_RGBA32UI_EXT = 0x8D70
 
-pattern GL_RGBA8I_EXT = 0x8D8E :: GLenum
+pattern GL_RGBA8I_EXT = 0x8D8E
 
-pattern GL_RGBA8UI_EXT = 0x8D7C :: GLenum
+pattern GL_RGBA8UI_EXT = 0x8D7C
 
-pattern GL_RGBA_INTEGER_EXT = 0x8D99 :: GLenum
+pattern GL_RGBA_INTEGER_EXT = 0x8D99
 
-pattern GL_RGBA_INTEGER_MODE_EXT = 0x8D9E :: GLenum
+pattern GL_RGBA_INTEGER_MODE_EXT = 0x8D9E
 
-pattern GL_RGB_INTEGER_EXT = 0x8D98 :: GLenum
+pattern GL_RGB_INTEGER_EXT = 0x8D98
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureLodBias.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureLodBias.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureLodBias.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureLodBias.hs
@@ -12,13 +12,12 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_EXT_texture_lod_bias :: Bool
 gl_EXT_texture_lod_bias = member "GL_EXT_texture_lod_bias" extensions
 
-pattern GL_MAX_TEXTURE_LOD_BIAS_EXT = 0x84FD :: GLenum
+pattern GL_MAX_TEXTURE_LOD_BIAS_EXT = 0x84FD
 
-pattern GL_TEXTURE_FILTER_CONTROL_EXT = 0x8500 :: GLenum
+pattern GL_TEXTURE_FILTER_CONTROL_EXT = 0x8500
 
-pattern GL_TEXTURE_LOD_BIAS_EXT = 0x8501 :: GLenum
+pattern GL_TEXTURE_LOD_BIAS_EXT = 0x8501
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureMirrorClamp.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureMirrorClamp.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureMirrorClamp.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureMirrorClamp.hs
@@ -12,13 +12,12 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_EXT_texture_mirror_clamp :: Bool
 gl_EXT_texture_mirror_clamp = member "GL_EXT_texture_mirror_clamp" extensions
 
-pattern GL_MIRROR_CLAMP_EXT = 0x8742 :: GLenum
+pattern GL_MIRROR_CLAMP_EXT = 0x8742
 
-pattern GL_MIRROR_CLAMP_TO_BORDER_EXT = 0x8912 :: GLenum
+pattern GL_MIRROR_CLAMP_TO_BORDER_EXT = 0x8912
 
-pattern GL_MIRROR_CLAMP_TO_EDGE_EXT = 0x8743 :: GLenum
+pattern GL_MIRROR_CLAMP_TO_EDGE_EXT = 0x8743
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureObject.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureObject.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureObject.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureObject.hs
@@ -77,12 +77,12 @@
 
 {-# NOINLINE glPrioritizeTexturesEXTFunPtr #-}
 
-pattern GL_TEXTURE_1D_BINDING_EXT = 0x8068 :: GLenum
+pattern GL_TEXTURE_1D_BINDING_EXT = 0x8068
 
-pattern GL_TEXTURE_2D_BINDING_EXT = 0x8069 :: GLenum
+pattern GL_TEXTURE_2D_BINDING_EXT = 0x8069
 
-pattern GL_TEXTURE_3D_BINDING_EXT = 0x806A :: GLenum
+pattern GL_TEXTURE_3D_BINDING_EXT = 0x806A
 
-pattern GL_TEXTURE_PRIORITY_EXT = 0x8066 :: GLenum
+pattern GL_TEXTURE_PRIORITY_EXT = 0x8066
 
-pattern GL_TEXTURE_RESIDENT_EXT = 0x8067 :: GLenum
+pattern GL_TEXTURE_RESIDENT_EXT = 0x8067
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TexturePerturbNormal.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TexturePerturbNormal.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TexturePerturbNormal.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TexturePerturbNormal.hs
@@ -29,6 +29,6 @@
 
 {-# NOINLINE glTextureNormalEXTFunPtr #-}
 
-pattern GL_PERTURB_EXT = 0x85AE :: GLenum
+pattern GL_PERTURB_EXT = 0x85AE
 
-pattern GL_TEXTURE_NORMAL_EXT = 0x85AF :: GLenum
+pattern GL_TEXTURE_NORMAL_EXT = 0x85AF
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureRg.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureRg.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureRg.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureRg.hs
@@ -14,11 +14,10 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
-import Graphics.GL.Raw.Types
 
 gl_EXT_texture_rg :: Bool
 gl_EXT_texture_rg = member "GL_EXT_texture_rg" extensions
 
-pattern GL_RED_EXT = 0x1903 :: GLenum
+pattern GL_RED_EXT = 0x1903
 
-pattern GL_RG_EXT = 0x8227 :: GLenum
+pattern GL_RG_EXT = 0x8227
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureSRGB.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureSRGB.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureSRGB.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureSRGB.hs
@@ -26,33 +26,32 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
-import Graphics.GL.Raw.Types
 
 gl_EXT_texture_sRGB :: Bool
 gl_EXT_texture_sRGB = member "GL_EXT_texture_sRGB" extensions
 
-pattern GL_COMPRESSED_SLUMINANCE_ALPHA_EXT = 0x8C4B :: GLenum
+pattern GL_COMPRESSED_SLUMINANCE_ALPHA_EXT = 0x8C4B
 
-pattern GL_COMPRESSED_SLUMINANCE_EXT = 0x8C4A :: GLenum
+pattern GL_COMPRESSED_SLUMINANCE_EXT = 0x8C4A
 
-pattern GL_COMPRESSED_SRGB_ALPHA_EXT = 0x8C49 :: GLenum
+pattern GL_COMPRESSED_SRGB_ALPHA_EXT = 0x8C49
 
-pattern GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT = 0x8C4D :: GLenum
+pattern GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT = 0x8C4D
 
-pattern GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT = 0x8C4E :: GLenum
+pattern GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT = 0x8C4E
 
-pattern GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT = 0x8C4F :: GLenum
+pattern GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT = 0x8C4F
 
-pattern GL_COMPRESSED_SRGB_EXT = 0x8C48 :: GLenum
+pattern GL_COMPRESSED_SRGB_EXT = 0x8C48
 
-pattern GL_COMPRESSED_SRGB_S3TC_DXT1_EXT = 0x8C4C :: GLenum
+pattern GL_COMPRESSED_SRGB_S3TC_DXT1_EXT = 0x8C4C
 
-pattern GL_SLUMINANCE8_ALPHA8_EXT = 0x8C45 :: GLenum
+pattern GL_SLUMINANCE8_ALPHA8_EXT = 0x8C45
 
-pattern GL_SLUMINANCE8_EXT = 0x8C47 :: GLenum
+pattern GL_SLUMINANCE8_EXT = 0x8C47
 
-pattern GL_SLUMINANCE_ALPHA_EXT = 0x8C44 :: GLenum
+pattern GL_SLUMINANCE_ALPHA_EXT = 0x8C44
 
-pattern GL_SLUMINANCE_EXT = 0x8C46 :: GLenum
+pattern GL_SLUMINANCE_EXT = 0x8C46
 
-pattern GL_SRGB8_EXT = 0x8C41 :: GLenum
+pattern GL_SRGB8_EXT = 0x8C41
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureSRGBDecode.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureSRGBDecode.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureSRGBDecode.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureSRGBDecode.hs
@@ -12,13 +12,12 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_EXT_texture_sRGB_decode :: Bool
 gl_EXT_texture_sRGB_decode = member "GL_EXT_texture_sRGB_decode" extensions
 
-pattern GL_DECODE_EXT = 0x8A49 :: GLenum
+pattern GL_DECODE_EXT = 0x8A49
 
-pattern GL_SKIP_DECODE_EXT = 0x8A4A :: GLenum
+pattern GL_SKIP_DECODE_EXT = 0x8A4A
 
-pattern GL_TEXTURE_SRGB_DECODE_EXT = 0x8A48 :: GLenum
+pattern GL_TEXTURE_SRGB_DECODE_EXT = 0x8A48
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureSharedExponent.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureSharedExponent.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureSharedExponent.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureSharedExponent.hs
@@ -12,13 +12,12 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_EXT_texture_shared_exponent :: Bool
 gl_EXT_texture_shared_exponent = member "GL_EXT_texture_shared_exponent" extensions
 
-pattern GL_RGB9_E5_EXT = 0x8C3D :: GLenum
+pattern GL_RGB9_E5_EXT = 0x8C3D
 
-pattern GL_TEXTURE_SHARED_SIZE_EXT = 0x8C3F :: GLenum
+pattern GL_TEXTURE_SHARED_SIZE_EXT = 0x8C3F
 
-pattern GL_UNSIGNED_INT_5_9_9_9_REV_EXT = 0x8C3E :: GLenum
+pattern GL_UNSIGNED_INT_5_9_9_9_REV_EXT = 0x8C3E
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureSnorm.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureSnorm.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureSnorm.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureSnorm.hs
@@ -35,39 +35,38 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
-import Graphics.GL.Raw.Types
 
 gl_EXT_texture_snorm :: Bool
 gl_EXT_texture_snorm = member "GL_EXT_texture_snorm" extensions
 
-pattern GL_ALPHA16_SNORM = 0x9018 :: GLenum
+pattern GL_ALPHA16_SNORM = 0x9018
 
-pattern GL_ALPHA8_SNORM = 0x9014 :: GLenum
+pattern GL_ALPHA8_SNORM = 0x9014
 
-pattern GL_ALPHA_SNORM = 0x9010 :: GLenum
+pattern GL_ALPHA_SNORM = 0x9010
 
-pattern GL_INTENSITY16_SNORM = 0x901B :: GLenum
+pattern GL_INTENSITY16_SNORM = 0x901B
 
-pattern GL_INTENSITY8_SNORM = 0x9017 :: GLenum
+pattern GL_INTENSITY8_SNORM = 0x9017
 
-pattern GL_INTENSITY_SNORM = 0x9013 :: GLenum
+pattern GL_INTENSITY_SNORM = 0x9013
 
-pattern GL_LUMINANCE16_ALPHA16_SNORM = 0x901A :: GLenum
+pattern GL_LUMINANCE16_ALPHA16_SNORM = 0x901A
 
-pattern GL_LUMINANCE16_SNORM = 0x9019 :: GLenum
+pattern GL_LUMINANCE16_SNORM = 0x9019
 
-pattern GL_LUMINANCE8_ALPHA8_SNORM = 0x9016 :: GLenum
+pattern GL_LUMINANCE8_ALPHA8_SNORM = 0x9016
 
-pattern GL_LUMINANCE8_SNORM = 0x9015 :: GLenum
+pattern GL_LUMINANCE8_SNORM = 0x9015
 
-pattern GL_LUMINANCE_ALPHA_SNORM = 0x9012 :: GLenum
+pattern GL_LUMINANCE_ALPHA_SNORM = 0x9012
 
-pattern GL_LUMINANCE_SNORM = 0x9011 :: GLenum
+pattern GL_LUMINANCE_SNORM = 0x9011
 
-pattern GL_RED_SNORM = 0x8F90 :: GLenum
+pattern GL_RED_SNORM = 0x8F90
 
-pattern GL_RGBA_SNORM = 0x8F93 :: GLenum
+pattern GL_RGBA_SNORM = 0x8F93
 
-pattern GL_RGB_SNORM = 0x8F92 :: GLenum
+pattern GL_RGB_SNORM = 0x8F92
 
-pattern GL_RG_SNORM = 0x8F91 :: GLenum
+pattern GL_RG_SNORM = 0x8F91
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureStorage.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureStorage.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureStorage.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureStorage.hs
@@ -72,24 +72,24 @@
 
 {-# NOINLINE glTexStorage3DEXTFunPtr #-}
 
-pattern GL_ALPHA16F_EXT = 0x881C :: GLenum
+pattern GL_ALPHA16F_EXT = 0x881C
 
-pattern GL_ALPHA32F_EXT = 0x8816 :: GLenum
+pattern GL_ALPHA32F_EXT = 0x8816
 
-pattern GL_LUMINANCE16F_EXT = 0x881E :: GLenum
+pattern GL_LUMINANCE16F_EXT = 0x881E
 
-pattern GL_LUMINANCE32F_EXT = 0x8818 :: GLenum
+pattern GL_LUMINANCE32F_EXT = 0x8818
 
-pattern GL_LUMINANCE_ALPHA16F_EXT = 0x881F :: GLenum
+pattern GL_LUMINANCE_ALPHA16F_EXT = 0x881F
 
-pattern GL_LUMINANCE_ALPHA32F_EXT = 0x8819 :: GLenum
+pattern GL_LUMINANCE_ALPHA32F_EXT = 0x8819
 
-pattern GL_R32F_EXT = 0x822E :: GLenum
+pattern GL_R32F_EXT = 0x822E
 
-pattern GL_RG32F_EXT = 0x8230 :: GLenum
+pattern GL_RG32F_EXT = 0x8230
 
-pattern GL_RGB32F_EXT = 0x8815 :: GLenum
+pattern GL_RGB32F_EXT = 0x8815
 
-pattern GL_RGBA32F_EXT = 0x8814 :: GLenum
+pattern GL_RGBA32F_EXT = 0x8814
 
-pattern GL_TEXTURE_IMMUTABLE_FORMAT_EXT = 0x912F :: GLenum
+pattern GL_TEXTURE_IMMUTABLE_FORMAT_EXT = 0x912F
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureSwizzle.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureSwizzle.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureSwizzle.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureSwizzle.hs
@@ -14,17 +14,16 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_EXT_texture_swizzle :: Bool
 gl_EXT_texture_swizzle = member "GL_EXT_texture_swizzle" extensions
 
-pattern GL_TEXTURE_SWIZZLE_A_EXT = 0x8E45 :: GLenum
+pattern GL_TEXTURE_SWIZZLE_A_EXT = 0x8E45
 
-pattern GL_TEXTURE_SWIZZLE_B_EXT = 0x8E44 :: GLenum
+pattern GL_TEXTURE_SWIZZLE_B_EXT = 0x8E44
 
-pattern GL_TEXTURE_SWIZZLE_G_EXT = 0x8E43 :: GLenum
+pattern GL_TEXTURE_SWIZZLE_G_EXT = 0x8E43
 
-pattern GL_TEXTURE_SWIZZLE_RGBA_EXT = 0x8E46 :: GLenum
+pattern GL_TEXTURE_SWIZZLE_RGBA_EXT = 0x8E46
 
-pattern GL_TEXTURE_SWIZZLE_R_EXT = 0x8E42 :: GLenum
+pattern GL_TEXTURE_SWIZZLE_R_EXT = 0x8E42
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureType2101010REV.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureType2101010REV.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureType2101010REV.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureType2101010REV.hs
@@ -10,9 +10,8 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_EXT_texture_type_2_10_10_10_REV :: Bool
 gl_EXT_texture_type_2_10_10_10_REV = member "GL_EXT_texture_type_2_10_10_10_REV" extensions
 
-pattern GL_UNSIGNED_INT_2_10_10_10_REV_EXT = 0x8368 :: GLenum
+pattern GL_UNSIGNED_INT_2_10_10_10_REV_EXT = 0x8368
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureView.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureView.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureView.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TextureView.hs
@@ -33,10 +33,10 @@
 
 {-# NOINLINE glTextureViewEXTFunPtr #-}
 
-pattern GL_TEXTURE_VIEW_MIN_LAYER_EXT = 0x82DD :: GLenum
+pattern GL_TEXTURE_VIEW_MIN_LAYER_EXT = 0x82DD
 
-pattern GL_TEXTURE_VIEW_MIN_LEVEL_EXT = 0x82DB :: GLenum
+pattern GL_TEXTURE_VIEW_MIN_LEVEL_EXT = 0x82DB
 
-pattern GL_TEXTURE_VIEW_NUM_LAYERS_EXT = 0x82DE :: GLenum
+pattern GL_TEXTURE_VIEW_NUM_LAYERS_EXT = 0x82DE
 
-pattern GL_TEXTURE_VIEW_NUM_LEVELS_EXT = 0x82DC :: GLenum
+pattern GL_TEXTURE_VIEW_NUM_LEVELS_EXT = 0x82DC
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TransformFeedback.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TransformFeedback.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TransformFeedback.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/TransformFeedback.hs
@@ -97,30 +97,30 @@
 
 {-# NOINLINE glTransformFeedbackVaryingsEXTFunPtr #-}
 
-pattern GL_INTERLEAVED_ATTRIBS_EXT = 0x8C8C :: GLenum
+pattern GL_INTERLEAVED_ATTRIBS_EXT = 0x8C8C
 
-pattern GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_EXT = 0x8C8A :: GLenum
+pattern GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_EXT = 0x8C8A
 
-pattern GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_EXT = 0x8C8B :: GLenum
+pattern GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_EXT = 0x8C8B
 
-pattern GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_EXT = 0x8C80 :: GLenum
+pattern GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_EXT = 0x8C80
 
-pattern GL_RASTERIZER_DISCARD_EXT = 0x8C89 :: GLenum
+pattern GL_RASTERIZER_DISCARD_EXT = 0x8C89
 
-pattern GL_SEPARATE_ATTRIBS_EXT = 0x8C8D :: GLenum
+pattern GL_SEPARATE_ATTRIBS_EXT = 0x8C8D
 
-pattern GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_EXT = 0x8C8F :: GLenum
+pattern GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_EXT = 0x8C8F
 
-pattern GL_TRANSFORM_FEEDBACK_BUFFER_EXT = 0x8C8E :: GLenum
+pattern GL_TRANSFORM_FEEDBACK_BUFFER_EXT = 0x8C8E
 
-pattern GL_TRANSFORM_FEEDBACK_BUFFER_MODE_EXT = 0x8C7F :: GLenum
+pattern GL_TRANSFORM_FEEDBACK_BUFFER_MODE_EXT = 0x8C7F
 
-pattern GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_EXT = 0x8C85 :: GLenum
+pattern GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_EXT = 0x8C85
 
-pattern GL_TRANSFORM_FEEDBACK_BUFFER_START_EXT = 0x8C84 :: GLenum
+pattern GL_TRANSFORM_FEEDBACK_BUFFER_START_EXT = 0x8C84
 
-pattern GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_EXT = 0x8C88 :: GLenum
+pattern GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_EXT = 0x8C88
 
-pattern GL_TRANSFORM_FEEDBACK_VARYINGS_EXT = 0x8C83 :: GLenum
+pattern GL_TRANSFORM_FEEDBACK_VARYINGS_EXT = 0x8C83
 
-pattern GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH_EXT = 0x8C76 :: GLenum
+pattern GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH_EXT = 0x8C76
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/UnpackSubimage.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/UnpackSubimage.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/UnpackSubimage.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/UnpackSubimage.hs
@@ -12,13 +12,12 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_EXT_unpack_subimage :: Bool
 gl_EXT_unpack_subimage = member "GL_EXT_unpack_subimage" extensions
 
-pattern GL_UNPACK_ROW_LENGTH_EXT = 0x0CF2 :: GLenum
+pattern GL_UNPACK_ROW_LENGTH_EXT = 0x0CF2
 
-pattern GL_UNPACK_SKIP_PIXELS_EXT = 0x0CF4 :: GLenum
+pattern GL_UNPACK_SKIP_PIXELS_EXT = 0x0CF4
 
-pattern GL_UNPACK_SKIP_ROWS_EXT = 0x0CF3 :: GLenum
+pattern GL_UNPACK_SKIP_ROWS_EXT = 0x0CF3
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/VertexArray.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/VertexArray.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/VertexArray.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/VertexArray.hs
@@ -131,66 +131,66 @@
 
 {-# NOINLINE glVertexPointerEXTFunPtr #-}
 
-pattern GL_COLOR_ARRAY_COUNT_EXT = 0x8084 :: GLenum
+pattern GL_COLOR_ARRAY_COUNT_EXT = 0x8084
 
-pattern GL_COLOR_ARRAY_EXT = 0x8076 :: GLenum
+pattern GL_COLOR_ARRAY_EXT = 0x8076
 
-pattern GL_COLOR_ARRAY_POINTER_EXT = 0x8090 :: GLenum
+pattern GL_COLOR_ARRAY_POINTER_EXT = 0x8090
 
-pattern GL_COLOR_ARRAY_SIZE_EXT = 0x8081 :: GLenum
+pattern GL_COLOR_ARRAY_SIZE_EXT = 0x8081
 
-pattern GL_COLOR_ARRAY_STRIDE_EXT = 0x8083 :: GLenum
+pattern GL_COLOR_ARRAY_STRIDE_EXT = 0x8083
 
-pattern GL_COLOR_ARRAY_TYPE_EXT = 0x8082 :: GLenum
+pattern GL_COLOR_ARRAY_TYPE_EXT = 0x8082
 
-pattern GL_EDGE_FLAG_ARRAY_COUNT_EXT = 0x808D :: GLenum
+pattern GL_EDGE_FLAG_ARRAY_COUNT_EXT = 0x808D
 
-pattern GL_EDGE_FLAG_ARRAY_EXT = 0x8079 :: GLenum
+pattern GL_EDGE_FLAG_ARRAY_EXT = 0x8079
 
-pattern GL_EDGE_FLAG_ARRAY_POINTER_EXT = 0x8093 :: GLenum
+pattern GL_EDGE_FLAG_ARRAY_POINTER_EXT = 0x8093
 
-pattern GL_EDGE_FLAG_ARRAY_STRIDE_EXT = 0x808C :: GLenum
+pattern GL_EDGE_FLAG_ARRAY_STRIDE_EXT = 0x808C
 
-pattern GL_INDEX_ARRAY_COUNT_EXT = 0x8087 :: GLenum
+pattern GL_INDEX_ARRAY_COUNT_EXT = 0x8087
 
-pattern GL_INDEX_ARRAY_EXT = 0x8077 :: GLenum
+pattern GL_INDEX_ARRAY_EXT = 0x8077
 
-pattern GL_INDEX_ARRAY_POINTER_EXT = 0x8091 :: GLenum
+pattern GL_INDEX_ARRAY_POINTER_EXT = 0x8091
 
-pattern GL_INDEX_ARRAY_STRIDE_EXT = 0x8086 :: GLenum
+pattern GL_INDEX_ARRAY_STRIDE_EXT = 0x8086
 
-pattern GL_INDEX_ARRAY_TYPE_EXT = 0x8085 :: GLenum
+pattern GL_INDEX_ARRAY_TYPE_EXT = 0x8085
 
-pattern GL_NORMAL_ARRAY_COUNT_EXT = 0x8080 :: GLenum
+pattern GL_NORMAL_ARRAY_COUNT_EXT = 0x8080
 
-pattern GL_NORMAL_ARRAY_EXT = 0x8075 :: GLenum
+pattern GL_NORMAL_ARRAY_EXT = 0x8075
 
-pattern GL_NORMAL_ARRAY_POINTER_EXT = 0x808F :: GLenum
+pattern GL_NORMAL_ARRAY_POINTER_EXT = 0x808F
 
-pattern GL_NORMAL_ARRAY_STRIDE_EXT = 0x807F :: GLenum
+pattern GL_NORMAL_ARRAY_STRIDE_EXT = 0x807F
 
-pattern GL_NORMAL_ARRAY_TYPE_EXT = 0x807E :: GLenum
+pattern GL_NORMAL_ARRAY_TYPE_EXT = 0x807E
 
-pattern GL_TEXTURE_COORD_ARRAY_COUNT_EXT = 0x808B :: GLenum
+pattern GL_TEXTURE_COORD_ARRAY_COUNT_EXT = 0x808B
 
-pattern GL_TEXTURE_COORD_ARRAY_EXT = 0x8078 :: GLenum
+pattern GL_TEXTURE_COORD_ARRAY_EXT = 0x8078
 
-pattern GL_TEXTURE_COORD_ARRAY_POINTER_EXT = 0x8092 :: GLenum
+pattern GL_TEXTURE_COORD_ARRAY_POINTER_EXT = 0x8092
 
-pattern GL_TEXTURE_COORD_ARRAY_SIZE_EXT = 0x8088 :: GLenum
+pattern GL_TEXTURE_COORD_ARRAY_SIZE_EXT = 0x8088
 
-pattern GL_TEXTURE_COORD_ARRAY_STRIDE_EXT = 0x808A :: GLenum
+pattern GL_TEXTURE_COORD_ARRAY_STRIDE_EXT = 0x808A
 
-pattern GL_TEXTURE_COORD_ARRAY_TYPE_EXT = 0x8089 :: GLenum
+pattern GL_TEXTURE_COORD_ARRAY_TYPE_EXT = 0x8089
 
-pattern GL_VERTEX_ARRAY_COUNT_EXT = 0x807D :: GLenum
+pattern GL_VERTEX_ARRAY_COUNT_EXT = 0x807D
 
-pattern GL_VERTEX_ARRAY_EXT = 0x8074 :: GLenum
+pattern GL_VERTEX_ARRAY_EXT = 0x8074
 
-pattern GL_VERTEX_ARRAY_POINTER_EXT = 0x808E :: GLenum
+pattern GL_VERTEX_ARRAY_POINTER_EXT = 0x808E
 
-pattern GL_VERTEX_ARRAY_SIZE_EXT = 0x807A :: GLenum
+pattern GL_VERTEX_ARRAY_SIZE_EXT = 0x807A
 
-pattern GL_VERTEX_ARRAY_STRIDE_EXT = 0x807C :: GLenum
+pattern GL_VERTEX_ARRAY_STRIDE_EXT = 0x807C
 
-pattern GL_VERTEX_ARRAY_TYPE_EXT = 0x807B :: GLenum
+pattern GL_VERTEX_ARRAY_TYPE_EXT = 0x807B
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/VertexAttrib64bit.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/VertexAttrib64bit.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/VertexAttrib64bit.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/VertexAttrib64bit.hs
@@ -122,26 +122,26 @@
 
 {-# NOINLINE glVertexAttribLPointerEXTFunPtr #-}
 
-pattern GL_DOUBLE_MAT2_EXT = 0x8F46 :: GLenum
+pattern GL_DOUBLE_MAT2_EXT = 0x8F46
 
-pattern GL_DOUBLE_MAT2x3_EXT = 0x8F49 :: GLenum
+pattern GL_DOUBLE_MAT2x3_EXT = 0x8F49
 
-pattern GL_DOUBLE_MAT2x4_EXT = 0x8F4A :: GLenum
+pattern GL_DOUBLE_MAT2x4_EXT = 0x8F4A
 
-pattern GL_DOUBLE_MAT3_EXT = 0x8F47 :: GLenum
+pattern GL_DOUBLE_MAT3_EXT = 0x8F47
 
-pattern GL_DOUBLE_MAT3x2_EXT = 0x8F4B :: GLenum
+pattern GL_DOUBLE_MAT3x2_EXT = 0x8F4B
 
-pattern GL_DOUBLE_MAT3x4_EXT = 0x8F4C :: GLenum
+pattern GL_DOUBLE_MAT3x4_EXT = 0x8F4C
 
-pattern GL_DOUBLE_MAT4_EXT = 0x8F48 :: GLenum
+pattern GL_DOUBLE_MAT4_EXT = 0x8F48
 
-pattern GL_DOUBLE_MAT4x2_EXT = 0x8F4D :: GLenum
+pattern GL_DOUBLE_MAT4x2_EXT = 0x8F4D
 
-pattern GL_DOUBLE_MAT4x3_EXT = 0x8F4E :: GLenum
+pattern GL_DOUBLE_MAT4x3_EXT = 0x8F4E
 
-pattern GL_DOUBLE_VEC2_EXT = 0x8FFC :: GLenum
+pattern GL_DOUBLE_VEC2_EXT = 0x8FFC
 
-pattern GL_DOUBLE_VEC3_EXT = 0x8FFD :: GLenum
+pattern GL_DOUBLE_VEC3_EXT = 0x8FFD
 
-pattern GL_DOUBLE_VEC4_EXT = 0x8FFE :: GLenum
+pattern GL_DOUBLE_VEC4_EXT = 0x8FFE
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/VertexShader.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/VertexShader.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/VertexShader.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/VertexShader.hs
@@ -506,222 +506,222 @@
 
 {-# NOINLINE glWriteMaskEXTFunPtr #-}
 
-pattern GL_CURRENT_VERTEX_EXT = 0x87E2 :: GLenum
+pattern GL_CURRENT_VERTEX_EXT = 0x87E2
 
-pattern GL_FULL_RANGE_EXT = 0x87E1 :: GLenum
+pattern GL_FULL_RANGE_EXT = 0x87E1
 
-pattern GL_INVARIANT_DATATYPE_EXT = 0x87EB :: GLenum
+pattern GL_INVARIANT_DATATYPE_EXT = 0x87EB
 
-pattern GL_INVARIANT_EXT = 0x87C2 :: GLenum
+pattern GL_INVARIANT_EXT = 0x87C2
 
-pattern GL_INVARIANT_VALUE_EXT = 0x87EA :: GLenum
+pattern GL_INVARIANT_VALUE_EXT = 0x87EA
 
-pattern GL_LOCAL_CONSTANT_DATATYPE_EXT = 0x87ED :: GLenum
+pattern GL_LOCAL_CONSTANT_DATATYPE_EXT = 0x87ED
 
-pattern GL_LOCAL_CONSTANT_EXT = 0x87C3 :: GLenum
+pattern GL_LOCAL_CONSTANT_EXT = 0x87C3
 
-pattern GL_LOCAL_CONSTANT_VALUE_EXT = 0x87EC :: GLenum
+pattern GL_LOCAL_CONSTANT_VALUE_EXT = 0x87EC
 
-pattern GL_LOCAL_EXT = 0x87C4 :: GLenum
+pattern GL_LOCAL_EXT = 0x87C4
 
-pattern GL_MATRIX_EXT = 0x87C0 :: GLenum
+pattern GL_MATRIX_EXT = 0x87C0
 
-pattern GL_MAX_OPTIMIZED_VERTEX_SHADER_INSTRUCTIONS_EXT = 0x87CA :: GLenum
+pattern GL_MAX_OPTIMIZED_VERTEX_SHADER_INSTRUCTIONS_EXT = 0x87CA
 
-pattern GL_MAX_OPTIMIZED_VERTEX_SHADER_INVARIANTS_EXT = 0x87CD :: GLenum
+pattern GL_MAX_OPTIMIZED_VERTEX_SHADER_INVARIANTS_EXT = 0x87CD
 
-pattern GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCALS_EXT = 0x87CE :: GLenum
+pattern GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCALS_EXT = 0x87CE
 
-pattern GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCAL_CONSTANTS_EXT = 0x87CC :: GLenum
+pattern GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCAL_CONSTANTS_EXT = 0x87CC
 
-pattern GL_MAX_OPTIMIZED_VERTEX_SHADER_VARIANTS_EXT = 0x87CB :: GLenum
+pattern GL_MAX_OPTIMIZED_VERTEX_SHADER_VARIANTS_EXT = 0x87CB
 
-pattern GL_MAX_VERTEX_SHADER_INSTRUCTIONS_EXT = 0x87C5 :: GLenum
+pattern GL_MAX_VERTEX_SHADER_INSTRUCTIONS_EXT = 0x87C5
 
-pattern GL_MAX_VERTEX_SHADER_INVARIANTS_EXT = 0x87C7 :: GLenum
+pattern GL_MAX_VERTEX_SHADER_INVARIANTS_EXT = 0x87C7
 
-pattern GL_MAX_VERTEX_SHADER_LOCALS_EXT = 0x87C9 :: GLenum
+pattern GL_MAX_VERTEX_SHADER_LOCALS_EXT = 0x87C9
 
-pattern GL_MAX_VERTEX_SHADER_LOCAL_CONSTANTS_EXT = 0x87C8 :: GLenum
+pattern GL_MAX_VERTEX_SHADER_LOCAL_CONSTANTS_EXT = 0x87C8
 
-pattern GL_MAX_VERTEX_SHADER_VARIANTS_EXT = 0x87C6 :: GLenum
+pattern GL_MAX_VERTEX_SHADER_VARIANTS_EXT = 0x87C6
 
-pattern GL_MVP_MATRIX_EXT = 0x87E3 :: GLenum
+pattern GL_MVP_MATRIX_EXT = 0x87E3
 
-pattern GL_NEGATIVE_ONE_EXT = 0x87DF :: GLenum
+pattern GL_NEGATIVE_ONE_EXT = 0x87DF
 
-pattern GL_NEGATIVE_W_EXT = 0x87DC :: GLenum
+pattern GL_NEGATIVE_W_EXT = 0x87DC
 
-pattern GL_NEGATIVE_X_EXT = 0x87D9 :: GLenum
+pattern GL_NEGATIVE_X_EXT = 0x87D9
 
-pattern GL_NEGATIVE_Y_EXT = 0x87DA :: GLenum
+pattern GL_NEGATIVE_Y_EXT = 0x87DA
 
-pattern GL_NEGATIVE_Z_EXT = 0x87DB :: GLenum
+pattern GL_NEGATIVE_Z_EXT = 0x87DB
 
-pattern GL_NORMALIZED_RANGE_EXT = 0x87E0 :: GLenum
+pattern GL_NORMALIZED_RANGE_EXT = 0x87E0
 
-pattern GL_ONE_EXT = 0x87DE :: GLenum
+pattern GL_ONE_EXT = 0x87DE
 
-pattern GL_OP_ADD_EXT = 0x8787 :: GLenum
+pattern GL_OP_ADD_EXT = 0x8787
 
-pattern GL_OP_CLAMP_EXT = 0x878E :: GLenum
+pattern GL_OP_CLAMP_EXT = 0x878E
 
-pattern GL_OP_CROSS_PRODUCT_EXT = 0x8797 :: GLenum
+pattern GL_OP_CROSS_PRODUCT_EXT = 0x8797
 
-pattern GL_OP_DOT3_EXT = 0x8784 :: GLenum
+pattern GL_OP_DOT3_EXT = 0x8784
 
-pattern GL_OP_DOT4_EXT = 0x8785 :: GLenum
+pattern GL_OP_DOT4_EXT = 0x8785
 
-pattern GL_OP_EXP_BASE_2_EXT = 0x8791 :: GLenum
+pattern GL_OP_EXP_BASE_2_EXT = 0x8791
 
-pattern GL_OP_FLOOR_EXT = 0x878F :: GLenum
+pattern GL_OP_FLOOR_EXT = 0x878F
 
-pattern GL_OP_FRAC_EXT = 0x8789 :: GLenum
+pattern GL_OP_FRAC_EXT = 0x8789
 
-pattern GL_OP_INDEX_EXT = 0x8782 :: GLenum
+pattern GL_OP_INDEX_EXT = 0x8782
 
-pattern GL_OP_LOG_BASE_2_EXT = 0x8792 :: GLenum
+pattern GL_OP_LOG_BASE_2_EXT = 0x8792
 
-pattern GL_OP_MADD_EXT = 0x8788 :: GLenum
+pattern GL_OP_MADD_EXT = 0x8788
 
-pattern GL_OP_MAX_EXT = 0x878A :: GLenum
+pattern GL_OP_MAX_EXT = 0x878A
 
-pattern GL_OP_MIN_EXT = 0x878B :: GLenum
+pattern GL_OP_MIN_EXT = 0x878B
 
-pattern GL_OP_MOV_EXT = 0x8799 :: GLenum
+pattern GL_OP_MOV_EXT = 0x8799
 
-pattern GL_OP_MULTIPLY_MATRIX_EXT = 0x8798 :: GLenum
+pattern GL_OP_MULTIPLY_MATRIX_EXT = 0x8798
 
-pattern GL_OP_MUL_EXT = 0x8786 :: GLenum
+pattern GL_OP_MUL_EXT = 0x8786
 
-pattern GL_OP_NEGATE_EXT = 0x8783 :: GLenum
+pattern GL_OP_NEGATE_EXT = 0x8783
 
-pattern GL_OP_POWER_EXT = 0x8793 :: GLenum
+pattern GL_OP_POWER_EXT = 0x8793
 
-pattern GL_OP_RECIP_EXT = 0x8794 :: GLenum
+pattern GL_OP_RECIP_EXT = 0x8794
 
-pattern GL_OP_RECIP_SQRT_EXT = 0x8795 :: GLenum
+pattern GL_OP_RECIP_SQRT_EXT = 0x8795
 
-pattern GL_OP_ROUND_EXT = 0x8790 :: GLenum
+pattern GL_OP_ROUND_EXT = 0x8790
 
-pattern GL_OP_SET_GE_EXT = 0x878C :: GLenum
+pattern GL_OP_SET_GE_EXT = 0x878C
 
-pattern GL_OP_SET_LT_EXT = 0x878D :: GLenum
+pattern GL_OP_SET_LT_EXT = 0x878D
 
-pattern GL_OP_SUB_EXT = 0x8796 :: GLenum
+pattern GL_OP_SUB_EXT = 0x8796
 
-pattern GL_OUTPUT_COLOR0_EXT = 0x879B :: GLenum
+pattern GL_OUTPUT_COLOR0_EXT = 0x879B
 
-pattern GL_OUTPUT_COLOR1_EXT = 0x879C :: GLenum
+pattern GL_OUTPUT_COLOR1_EXT = 0x879C
 
-pattern GL_OUTPUT_FOG_EXT = 0x87BD :: GLenum
+pattern GL_OUTPUT_FOG_EXT = 0x87BD
 
-pattern GL_OUTPUT_TEXTURE_COORD0_EXT = 0x879D :: GLenum
+pattern GL_OUTPUT_TEXTURE_COORD0_EXT = 0x879D
 
-pattern GL_OUTPUT_TEXTURE_COORD10_EXT = 0x87A7 :: GLenum
+pattern GL_OUTPUT_TEXTURE_COORD10_EXT = 0x87A7
 
-pattern GL_OUTPUT_TEXTURE_COORD11_EXT = 0x87A8 :: GLenum
+pattern GL_OUTPUT_TEXTURE_COORD11_EXT = 0x87A8
 
-pattern GL_OUTPUT_TEXTURE_COORD12_EXT = 0x87A9 :: GLenum
+pattern GL_OUTPUT_TEXTURE_COORD12_EXT = 0x87A9
 
-pattern GL_OUTPUT_TEXTURE_COORD13_EXT = 0x87AA :: GLenum
+pattern GL_OUTPUT_TEXTURE_COORD13_EXT = 0x87AA
 
-pattern GL_OUTPUT_TEXTURE_COORD14_EXT = 0x87AB :: GLenum
+pattern GL_OUTPUT_TEXTURE_COORD14_EXT = 0x87AB
 
-pattern GL_OUTPUT_TEXTURE_COORD15_EXT = 0x87AC :: GLenum
+pattern GL_OUTPUT_TEXTURE_COORD15_EXT = 0x87AC
 
-pattern GL_OUTPUT_TEXTURE_COORD16_EXT = 0x87AD :: GLenum
+pattern GL_OUTPUT_TEXTURE_COORD16_EXT = 0x87AD
 
-pattern GL_OUTPUT_TEXTURE_COORD17_EXT = 0x87AE :: GLenum
+pattern GL_OUTPUT_TEXTURE_COORD17_EXT = 0x87AE
 
-pattern GL_OUTPUT_TEXTURE_COORD18_EXT = 0x87AF :: GLenum
+pattern GL_OUTPUT_TEXTURE_COORD18_EXT = 0x87AF
 
-pattern GL_OUTPUT_TEXTURE_COORD19_EXT = 0x87B0 :: GLenum
+pattern GL_OUTPUT_TEXTURE_COORD19_EXT = 0x87B0
 
-pattern GL_OUTPUT_TEXTURE_COORD1_EXT = 0x879E :: GLenum
+pattern GL_OUTPUT_TEXTURE_COORD1_EXT = 0x879E
 
-pattern GL_OUTPUT_TEXTURE_COORD20_EXT = 0x87B1 :: GLenum
+pattern GL_OUTPUT_TEXTURE_COORD20_EXT = 0x87B1
 
-pattern GL_OUTPUT_TEXTURE_COORD21_EXT = 0x87B2 :: GLenum
+pattern GL_OUTPUT_TEXTURE_COORD21_EXT = 0x87B2
 
-pattern GL_OUTPUT_TEXTURE_COORD22_EXT = 0x87B3 :: GLenum
+pattern GL_OUTPUT_TEXTURE_COORD22_EXT = 0x87B3
 
-pattern GL_OUTPUT_TEXTURE_COORD23_EXT = 0x87B4 :: GLenum
+pattern GL_OUTPUT_TEXTURE_COORD23_EXT = 0x87B4
 
-pattern GL_OUTPUT_TEXTURE_COORD24_EXT = 0x87B5 :: GLenum
+pattern GL_OUTPUT_TEXTURE_COORD24_EXT = 0x87B5
 
-pattern GL_OUTPUT_TEXTURE_COORD25_EXT = 0x87B6 :: GLenum
+pattern GL_OUTPUT_TEXTURE_COORD25_EXT = 0x87B6
 
-pattern GL_OUTPUT_TEXTURE_COORD26_EXT = 0x87B7 :: GLenum
+pattern GL_OUTPUT_TEXTURE_COORD26_EXT = 0x87B7
 
-pattern GL_OUTPUT_TEXTURE_COORD27_EXT = 0x87B8 :: GLenum
+pattern GL_OUTPUT_TEXTURE_COORD27_EXT = 0x87B8
 
-pattern GL_OUTPUT_TEXTURE_COORD28_EXT = 0x87B9 :: GLenum
+pattern GL_OUTPUT_TEXTURE_COORD28_EXT = 0x87B9
 
-pattern GL_OUTPUT_TEXTURE_COORD29_EXT = 0x87BA :: GLenum
+pattern GL_OUTPUT_TEXTURE_COORD29_EXT = 0x87BA
 
-pattern GL_OUTPUT_TEXTURE_COORD2_EXT = 0x879F :: GLenum
+pattern GL_OUTPUT_TEXTURE_COORD2_EXT = 0x879F
 
-pattern GL_OUTPUT_TEXTURE_COORD30_EXT = 0x87BB :: GLenum
+pattern GL_OUTPUT_TEXTURE_COORD30_EXT = 0x87BB
 
-pattern GL_OUTPUT_TEXTURE_COORD31_EXT = 0x87BC :: GLenum
+pattern GL_OUTPUT_TEXTURE_COORD31_EXT = 0x87BC
 
-pattern GL_OUTPUT_TEXTURE_COORD3_EXT = 0x87A0 :: GLenum
+pattern GL_OUTPUT_TEXTURE_COORD3_EXT = 0x87A0
 
-pattern GL_OUTPUT_TEXTURE_COORD4_EXT = 0x87A1 :: GLenum
+pattern GL_OUTPUT_TEXTURE_COORD4_EXT = 0x87A1
 
-pattern GL_OUTPUT_TEXTURE_COORD5_EXT = 0x87A2 :: GLenum
+pattern GL_OUTPUT_TEXTURE_COORD5_EXT = 0x87A2
 
-pattern GL_OUTPUT_TEXTURE_COORD6_EXT = 0x87A3 :: GLenum
+pattern GL_OUTPUT_TEXTURE_COORD6_EXT = 0x87A3
 
-pattern GL_OUTPUT_TEXTURE_COORD7_EXT = 0x87A4 :: GLenum
+pattern GL_OUTPUT_TEXTURE_COORD7_EXT = 0x87A4
 
-pattern GL_OUTPUT_TEXTURE_COORD8_EXT = 0x87A5 :: GLenum
+pattern GL_OUTPUT_TEXTURE_COORD8_EXT = 0x87A5
 
-pattern GL_OUTPUT_TEXTURE_COORD9_EXT = 0x87A6 :: GLenum
+pattern GL_OUTPUT_TEXTURE_COORD9_EXT = 0x87A6
 
-pattern GL_OUTPUT_VERTEX_EXT = 0x879A :: GLenum
+pattern GL_OUTPUT_VERTEX_EXT = 0x879A
 
-pattern GL_SCALAR_EXT = 0x87BE :: GLenum
+pattern GL_SCALAR_EXT = 0x87BE
 
-pattern GL_VARIANT_ARRAY_EXT = 0x87E8 :: GLenum
+pattern GL_VARIANT_ARRAY_EXT = 0x87E8
 
-pattern GL_VARIANT_ARRAY_POINTER_EXT = 0x87E9 :: GLenum
+pattern GL_VARIANT_ARRAY_POINTER_EXT = 0x87E9
 
-pattern GL_VARIANT_ARRAY_STRIDE_EXT = 0x87E6 :: GLenum
+pattern GL_VARIANT_ARRAY_STRIDE_EXT = 0x87E6
 
-pattern GL_VARIANT_ARRAY_TYPE_EXT = 0x87E7 :: GLenum
+pattern GL_VARIANT_ARRAY_TYPE_EXT = 0x87E7
 
-pattern GL_VARIANT_DATATYPE_EXT = 0x87E5 :: GLenum
+pattern GL_VARIANT_DATATYPE_EXT = 0x87E5
 
-pattern GL_VARIANT_EXT = 0x87C1 :: GLenum
+pattern GL_VARIANT_EXT = 0x87C1
 
-pattern GL_VARIANT_VALUE_EXT = 0x87E4 :: GLenum
+pattern GL_VARIANT_VALUE_EXT = 0x87E4
 
-pattern GL_VECTOR_EXT = 0x87BF :: GLenum
+pattern GL_VECTOR_EXT = 0x87BF
 
-pattern GL_VERTEX_SHADER_BINDING_EXT = 0x8781 :: GLenum
+pattern GL_VERTEX_SHADER_BINDING_EXT = 0x8781
 
-pattern GL_VERTEX_SHADER_EXT = 0x8780 :: GLenum
+pattern GL_VERTEX_SHADER_EXT = 0x8780
 
-pattern GL_VERTEX_SHADER_INSTRUCTIONS_EXT = 0x87CF :: GLenum
+pattern GL_VERTEX_SHADER_INSTRUCTIONS_EXT = 0x87CF
 
-pattern GL_VERTEX_SHADER_INVARIANTS_EXT = 0x87D1 :: GLenum
+pattern GL_VERTEX_SHADER_INVARIANTS_EXT = 0x87D1
 
-pattern GL_VERTEX_SHADER_LOCALS_EXT = 0x87D3 :: GLenum
+pattern GL_VERTEX_SHADER_LOCALS_EXT = 0x87D3
 
-pattern GL_VERTEX_SHADER_LOCAL_CONSTANTS_EXT = 0x87D2 :: GLenum
+pattern GL_VERTEX_SHADER_LOCAL_CONSTANTS_EXT = 0x87D2
 
-pattern GL_VERTEX_SHADER_OPTIMIZED_EXT = 0x87D4 :: GLenum
+pattern GL_VERTEX_SHADER_OPTIMIZED_EXT = 0x87D4
 
-pattern GL_VERTEX_SHADER_VARIANTS_EXT = 0x87D0 :: GLenum
+pattern GL_VERTEX_SHADER_VARIANTS_EXT = 0x87D0
 
-pattern GL_W_EXT = 0x87D8 :: GLenum
+pattern GL_W_EXT = 0x87D8
 
-pattern GL_X_EXT = 0x87D5 :: GLenum
+pattern GL_X_EXT = 0x87D5
 
-pattern GL_Y_EXT = 0x87D6 :: GLenum
+pattern GL_Y_EXT = 0x87D6
 
-pattern GL_ZERO_EXT = 0x87DD :: GLenum
+pattern GL_ZERO_EXT = 0x87DD
 
-pattern GL_Z_EXT = 0x87D7 :: GLenum
+pattern GL_Z_EXT = 0x87D7
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/VertexWeighting.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/VertexWeighting.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/VertexWeighting.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/VertexWeighting.hs
@@ -58,28 +58,28 @@
 
 {-# NOINLINE glVertexWeightfvEXTFunPtr #-}
 
-pattern GL_CURRENT_VERTEX_WEIGHT_EXT = 0x850B :: GLenum
+pattern GL_CURRENT_VERTEX_WEIGHT_EXT = 0x850B
 
-pattern GL_MODELVIEW0_EXT = 0x1700 :: GLenum
+pattern GL_MODELVIEW0_EXT = 0x1700
 
-pattern GL_MODELVIEW0_MATRIX_EXT = 0x0BA6 :: GLenum
+pattern GL_MODELVIEW0_MATRIX_EXT = 0x0BA6
 
-pattern GL_MODELVIEW0_STACK_DEPTH_EXT = 0x0BA3 :: GLenum
+pattern GL_MODELVIEW0_STACK_DEPTH_EXT = 0x0BA3
 
-pattern GL_MODELVIEW1_EXT = 0x850A :: GLenum
+pattern GL_MODELVIEW1_EXT = 0x850A
 
-pattern GL_MODELVIEW1_MATRIX_EXT = 0x8506 :: GLenum
+pattern GL_MODELVIEW1_MATRIX_EXT = 0x8506
 
-pattern GL_MODELVIEW1_STACK_DEPTH_EXT = 0x8502 :: GLenum
+pattern GL_MODELVIEW1_STACK_DEPTH_EXT = 0x8502
 
-pattern GL_VERTEX_WEIGHTING_EXT = 0x8509 :: GLenum
+pattern GL_VERTEX_WEIGHTING_EXT = 0x8509
 
-pattern GL_VERTEX_WEIGHT_ARRAY_EXT = 0x850C :: GLenum
+pattern GL_VERTEX_WEIGHT_ARRAY_EXT = 0x850C
 
-pattern GL_VERTEX_WEIGHT_ARRAY_POINTER_EXT = 0x8510 :: GLenum
+pattern GL_VERTEX_WEIGHT_ARRAY_POINTER_EXT = 0x8510
 
-pattern GL_VERTEX_WEIGHT_ARRAY_SIZE_EXT = 0x850D :: GLenum
+pattern GL_VERTEX_WEIGHT_ARRAY_SIZE_EXT = 0x850D
 
-pattern GL_VERTEX_WEIGHT_ARRAY_STRIDE_EXT = 0x850F :: GLenum
+pattern GL_VERTEX_WEIGHT_ARRAY_STRIDE_EXT = 0x850F
 
-pattern GL_VERTEX_WEIGHT_ARRAY_TYPE_EXT = 0x850E :: GLenum
+pattern GL_VERTEX_WEIGHT_ARRAY_TYPE_EXT = 0x850E
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/X11SyncObject.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/X11SyncObject.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/X11SyncObject.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/EXT/X11SyncObject.hs
@@ -28,4 +28,4 @@
 
 {-# NOINLINE glImportSyncEXTFunPtr #-}
 
-pattern GL_SYNC_X11_FENCE_EXT = 0x90E1 :: GLenum
+pattern GL_SYNC_X11_FENCE_EXT = 0x90E1
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/FJ/ShaderBinaryGCCSO.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/FJ/ShaderBinaryGCCSO.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/FJ/ShaderBinaryGCCSO.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/FJ/ShaderBinaryGCCSO.hs
@@ -10,9 +10,8 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_FJ_shader_binary_GCCSO :: Bool
 gl_FJ_shader_binary_GCCSO = member "GL_FJ_shader_binary_GCCSO" extensions
 
-pattern GL_GCCSO_SHADER_BINARY_FJ = 0x9260 :: GLenum
+pattern GL_GCCSO_SHADER_BINARY_FJ = 0x9260
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/HP/ConvolutionBorderModes.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/HP/ConvolutionBorderModes.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/HP/ConvolutionBorderModes.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/HP/ConvolutionBorderModes.hs
@@ -13,15 +13,14 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_HP_convolution_border_modes :: Bool
 gl_HP_convolution_border_modes = member "GL_HP_convolution_border_modes" extensions
 
-pattern GL_CONSTANT_BORDER_HP = 0x8151 :: GLenum
+pattern GL_CONSTANT_BORDER_HP = 0x8151
 
-pattern GL_CONVOLUTION_BORDER_COLOR_HP = 0x8154 :: GLenum
+pattern GL_CONVOLUTION_BORDER_COLOR_HP = 0x8154
 
-pattern GL_IGNORE_BORDER_HP = 0x8150 :: GLenum
+pattern GL_IGNORE_BORDER_HP = 0x8150
 
-pattern GL_REPLICATE_BORDER_HP = 0x8153 :: GLenum
+pattern GL_REPLICATE_BORDER_HP = 0x8153
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/HP/ImageTransform.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/HP/ImageTransform.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/HP/ImageTransform.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/HP/ImageTransform.hs
@@ -87,32 +87,32 @@
 
 {-# NOINLINE glImageTransformParameterivHPFunPtr #-}
 
-pattern GL_AVERAGE_HP = 0x8160 :: GLenum
+pattern GL_AVERAGE_HP = 0x8160
 
-pattern GL_CUBIC_HP = 0x815F :: GLenum
+pattern GL_CUBIC_HP = 0x815F
 
-pattern GL_IMAGE_CUBIC_WEIGHT_HP = 0x815E :: GLenum
+pattern GL_IMAGE_CUBIC_WEIGHT_HP = 0x815E
 
-pattern GL_IMAGE_MAG_FILTER_HP = 0x815C :: GLenum
+pattern GL_IMAGE_MAG_FILTER_HP = 0x815C
 
-pattern GL_IMAGE_MIN_FILTER_HP = 0x815D :: GLenum
+pattern GL_IMAGE_MIN_FILTER_HP = 0x815D
 
-pattern GL_IMAGE_ROTATE_ANGLE_HP = 0x8159 :: GLenum
+pattern GL_IMAGE_ROTATE_ANGLE_HP = 0x8159
 
-pattern GL_IMAGE_ROTATE_ORIGIN_X_HP = 0x815A :: GLenum
+pattern GL_IMAGE_ROTATE_ORIGIN_X_HP = 0x815A
 
-pattern GL_IMAGE_ROTATE_ORIGIN_Y_HP = 0x815B :: GLenum
+pattern GL_IMAGE_ROTATE_ORIGIN_Y_HP = 0x815B
 
-pattern GL_IMAGE_SCALE_X_HP = 0x8155 :: GLenum
+pattern GL_IMAGE_SCALE_X_HP = 0x8155
 
-pattern GL_IMAGE_SCALE_Y_HP = 0x8156 :: GLenum
+pattern GL_IMAGE_SCALE_Y_HP = 0x8156
 
-pattern GL_IMAGE_TRANSFORM_2D_HP = 0x8161 :: GLenum
+pattern GL_IMAGE_TRANSFORM_2D_HP = 0x8161
 
-pattern GL_IMAGE_TRANSLATE_X_HP = 0x8157 :: GLenum
+pattern GL_IMAGE_TRANSLATE_X_HP = 0x8157
 
-pattern GL_IMAGE_TRANSLATE_Y_HP = 0x8158 :: GLenum
+pattern GL_IMAGE_TRANSLATE_Y_HP = 0x8158
 
-pattern GL_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP = 0x8162 :: GLenum
+pattern GL_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP = 0x8162
 
-pattern GL_PROXY_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP = 0x8163 :: GLenum
+pattern GL_PROXY_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP = 0x8163
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/HP/OcclusionTest.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/HP/OcclusionTest.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/HP/OcclusionTest.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/HP/OcclusionTest.hs
@@ -11,11 +11,10 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_HP_occlusion_test :: Bool
 gl_HP_occlusion_test = member "GL_HP_occlusion_test" extensions
 
-pattern GL_OCCLUSION_TEST_HP = 0x8165 :: GLenum
+pattern GL_OCCLUSION_TEST_HP = 0x8165
 
-pattern GL_OCCLUSION_TEST_RESULT_HP = 0x8166 :: GLenum
+pattern GL_OCCLUSION_TEST_RESULT_HP = 0x8166
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/HP/TextureLighting.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/HP/TextureLighting.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/HP/TextureLighting.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/HP/TextureLighting.hs
@@ -12,13 +12,12 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_HP_texture_lighting :: Bool
 gl_HP_texture_lighting = member "GL_HP_texture_lighting" extensions
 
-pattern GL_TEXTURE_LIGHTING_MODE_HP = 0x8167 :: GLenum
+pattern GL_TEXTURE_LIGHTING_MODE_HP = 0x8167
 
-pattern GL_TEXTURE_POST_SPECULAR_HP = 0x8168 :: GLenum
+pattern GL_TEXTURE_POST_SPECULAR_HP = 0x8168
 
-pattern GL_TEXTURE_PRE_SPECULAR_HP = 0x8169 :: GLenum
+pattern GL_TEXTURE_PRE_SPECULAR_HP = 0x8169
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/IBM/CullVertex.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/IBM/CullVertex.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/IBM/CullVertex.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/IBM/CullVertex.hs
@@ -10,9 +10,8 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_IBM_cull_vertex :: Bool
 gl_IBM_cull_vertex = member "GL_IBM_cull_vertex" extensions
 
-pattern GL_CULL_VERTEX_IBM = 103050 :: GLenum
+pattern GL_CULL_VERTEX_IBM = 103050
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/IBM/RasterposClip.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/IBM/RasterposClip.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/IBM/RasterposClip.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/IBM/RasterposClip.hs
@@ -10,9 +10,8 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_IBM_rasterpos_clip :: Bool
 gl_IBM_rasterpos_clip = member "GL_IBM_rasterpos_clip" extensions
 
-pattern GL_RASTER_POSITION_UNCLIPPED_IBM = 0x19262 :: GLenum
+pattern GL_RASTER_POSITION_UNCLIPPED_IBM = 0x19262
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/IBM/StaticData.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/IBM/StaticData.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/IBM/StaticData.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/IBM/StaticData.hs
@@ -29,6 +29,6 @@
 
 {-# NOINLINE glFlushStaticDataIBMFunPtr #-}
 
-pattern GL_ALL_STATIC_DATA_IBM = 103060 :: GLenum
+pattern GL_ALL_STATIC_DATA_IBM = 103060
 
-pattern GL_STATIC_VERTEX_ARRAY_IBM = 103061 :: GLenum
+pattern GL_STATIC_VERTEX_ARRAY_IBM = 103061
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/IBM/TextureMirroredRepeat.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/IBM/TextureMirroredRepeat.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/IBM/TextureMirroredRepeat.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/IBM/TextureMirroredRepeat.hs
@@ -10,9 +10,8 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_IBM_texture_mirrored_repeat :: Bool
 gl_IBM_texture_mirrored_repeat = member "GL_IBM_texture_mirrored_repeat" extensions
 
-pattern GL_MIRRORED_REPEAT_IBM = 0x8370 :: GLenum
+pattern GL_MIRRORED_REPEAT_IBM = 0x8370
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/IBM/VertexArrayLists.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/IBM/VertexArrayLists.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/IBM/VertexArrayLists.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/IBM/VertexArrayLists.hs
@@ -106,34 +106,34 @@
 
 {-# NOINLINE glVertexPointerListIBMFunPtr #-}
 
-pattern GL_COLOR_ARRAY_LIST_IBM = 103072 :: GLenum
+pattern GL_COLOR_ARRAY_LIST_IBM = 103072
 
-pattern GL_COLOR_ARRAY_LIST_STRIDE_IBM = 103082 :: GLenum
+pattern GL_COLOR_ARRAY_LIST_STRIDE_IBM = 103082
 
-pattern GL_EDGE_FLAG_ARRAY_LIST_IBM = 103075 :: GLenum
+pattern GL_EDGE_FLAG_ARRAY_LIST_IBM = 103075
 
-pattern GL_EDGE_FLAG_ARRAY_LIST_STRIDE_IBM = 103085 :: GLenum
+pattern GL_EDGE_FLAG_ARRAY_LIST_STRIDE_IBM = 103085
 
-pattern GL_FOG_COORDINATE_ARRAY_LIST_IBM = 103076 :: GLenum
+pattern GL_FOG_COORDINATE_ARRAY_LIST_IBM = 103076
 
-pattern GL_FOG_COORDINATE_ARRAY_LIST_STRIDE_IBM = 103086 :: GLenum
+pattern GL_FOG_COORDINATE_ARRAY_LIST_STRIDE_IBM = 103086
 
-pattern GL_INDEX_ARRAY_LIST_IBM = 103073 :: GLenum
+pattern GL_INDEX_ARRAY_LIST_IBM = 103073
 
-pattern GL_INDEX_ARRAY_LIST_STRIDE_IBM = 103083 :: GLenum
+pattern GL_INDEX_ARRAY_LIST_STRIDE_IBM = 103083
 
-pattern GL_NORMAL_ARRAY_LIST_IBM = 103071 :: GLenum
+pattern GL_NORMAL_ARRAY_LIST_IBM = 103071
 
-pattern GL_NORMAL_ARRAY_LIST_STRIDE_IBM = 103081 :: GLenum
+pattern GL_NORMAL_ARRAY_LIST_STRIDE_IBM = 103081
 
-pattern GL_SECONDARY_COLOR_ARRAY_LIST_IBM = 103077 :: GLenum
+pattern GL_SECONDARY_COLOR_ARRAY_LIST_IBM = 103077
 
-pattern GL_SECONDARY_COLOR_ARRAY_LIST_STRIDE_IBM = 103087 :: GLenum
+pattern GL_SECONDARY_COLOR_ARRAY_LIST_STRIDE_IBM = 103087
 
-pattern GL_TEXTURE_COORD_ARRAY_LIST_IBM = 103074 :: GLenum
+pattern GL_TEXTURE_COORD_ARRAY_LIST_IBM = 103074
 
-pattern GL_TEXTURE_COORD_ARRAY_LIST_STRIDE_IBM = 103084 :: GLenum
+pattern GL_TEXTURE_COORD_ARRAY_LIST_STRIDE_IBM = 103084
 
-pattern GL_VERTEX_ARRAY_LIST_IBM = 103070 :: GLenum
+pattern GL_VERTEX_ARRAY_LIST_IBM = 103070
 
-pattern GL_VERTEX_ARRAY_LIST_STRIDE_IBM = 103080 :: GLenum
+pattern GL_VERTEX_ARRAY_LIST_STRIDE_IBM = 103080
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/IMG/MultisampledRenderToTexture.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/IMG/MultisampledRenderToTexture.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/IMG/MultisampledRenderToTexture.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/IMG/MultisampledRenderToTexture.hs
@@ -40,10 +40,10 @@
 
 {-# NOINLINE glRenderbufferStorageMultisampleIMGFunPtr #-}
 
-pattern GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_IMG = 0x9134 :: GLenum
+pattern GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_IMG = 0x9134
 
-pattern GL_MAX_SAMPLES_IMG = 0x9135 :: GLenum
+pattern GL_MAX_SAMPLES_IMG = 0x9135
 
-pattern GL_RENDERBUFFER_SAMPLES_IMG = 0x9133 :: GLenum
+pattern GL_RENDERBUFFER_SAMPLES_IMG = 0x9133
 
-pattern GL_TEXTURE_SAMPLES_IMG = 0x9136 :: GLenum
+pattern GL_TEXTURE_SAMPLES_IMG = 0x9136
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/IMG/ProgramBinary.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/IMG/ProgramBinary.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/IMG/ProgramBinary.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/IMG/ProgramBinary.hs
@@ -10,9 +10,8 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_IMG_program_binary :: Bool
 gl_IMG_program_binary = member "GL_IMG_program_binary" extensions
 
-pattern GL_SGX_PROGRAM_BINARY_IMG = 0x9130 :: GLenum
+pattern GL_SGX_PROGRAM_BINARY_IMG = 0x9130
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/IMG/ReadFormat.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/IMG/ReadFormat.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/IMG/ReadFormat.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/IMG/ReadFormat.hs
@@ -11,11 +11,10 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_IMG_read_format :: Bool
 gl_IMG_read_format = member "GL_IMG_read_format" extensions
 
-pattern GL_BGRA_IMG = 0x80E1 :: GLenum
+pattern GL_BGRA_IMG = 0x80E1
 
-pattern GL_UNSIGNED_SHORT_4_4_4_4_REV_IMG = 0x8365 :: GLenum
+pattern GL_UNSIGNED_SHORT_4_4_4_4_REV_IMG = 0x8365
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/IMG/ShaderBinary.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/IMG/ShaderBinary.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/IMG/ShaderBinary.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/IMG/ShaderBinary.hs
@@ -10,9 +10,8 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_IMG_shader_binary :: Bool
 gl_IMG_shader_binary = member "GL_IMG_shader_binary" extensions
 
-pattern GL_SGX_BINARY_IMG = 0x8C0A :: GLenum
+pattern GL_SGX_BINARY_IMG = 0x8C0A
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/IMG/TextureCompressionPvrtc.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/IMG/TextureCompressionPvrtc.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/IMG/TextureCompressionPvrtc.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/IMG/TextureCompressionPvrtc.hs
@@ -13,15 +13,14 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_IMG_texture_compression_pvrtc :: Bool
 gl_IMG_texture_compression_pvrtc = member "GL_IMG_texture_compression_pvrtc" extensions
 
-pattern GL_COMPRESSED_RGBA_PVRTC_2BPPV1_IMG = 0x8C03 :: GLenum
+pattern GL_COMPRESSED_RGBA_PVRTC_2BPPV1_IMG = 0x8C03
 
-pattern GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG = 0x8C02 :: GLenum
+pattern GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG = 0x8C02
 
-pattern GL_COMPRESSED_RGB_PVRTC_2BPPV1_IMG = 0x8C01 :: GLenum
+pattern GL_COMPRESSED_RGB_PVRTC_2BPPV1_IMG = 0x8C01
 
-pattern GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG = 0x8C00 :: GLenum
+pattern GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG = 0x8C00
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/IMG/TextureCompressionPvrtc2.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/IMG/TextureCompressionPvrtc2.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/IMG/TextureCompressionPvrtc2.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/IMG/TextureCompressionPvrtc2.hs
@@ -11,11 +11,10 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_IMG_texture_compression_pvrtc2 :: Bool
 gl_IMG_texture_compression_pvrtc2 = member "GL_IMG_texture_compression_pvrtc2" extensions
 
-pattern GL_COMPRESSED_RGBA_PVRTC_2BPPV2_IMG = 0x9137 :: GLenum
+pattern GL_COMPRESSED_RGBA_PVRTC_2BPPV2_IMG = 0x9137
 
-pattern GL_COMPRESSED_RGBA_PVRTC_4BPPV2_IMG = 0x9138 :: GLenum
+pattern GL_COMPRESSED_RGBA_PVRTC_4BPPV2_IMG = 0x9138
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/IMG/TextureEnvEnhancedFixedFunction.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/IMG/TextureEnvEnhancedFixedFunction.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/IMG/TextureEnvEnhancedFixedFunction.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/IMG/TextureEnvEnhancedFixedFunction.hs
@@ -16,21 +16,20 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_IMG_texture_env_enhanced_fixed_function :: Bool
 gl_IMG_texture_env_enhanced_fixed_function = member "GL_IMG_texture_env_enhanced_fixed_function" extensions
 
-pattern GL_ADD_BLEND_IMG = 0x8C09 :: GLenum
+pattern GL_ADD_BLEND_IMG = 0x8C09
 
-pattern GL_DOT3_RGBA_IMG = 0x86AF :: GLenum
+pattern GL_DOT3_RGBA_IMG = 0x86AF
 
-pattern GL_FACTOR_ALPHA_MODULATE_IMG = 0x8C07 :: GLenum
+pattern GL_FACTOR_ALPHA_MODULATE_IMG = 0x8C07
 
-pattern GL_FRAGMENT_ALPHA_MODULATE_IMG = 0x8C08 :: GLenum
+pattern GL_FRAGMENT_ALPHA_MODULATE_IMG = 0x8C08
 
-pattern GL_MODULATE_COLOR_IMG = 0x8C04 :: GLenum
+pattern GL_MODULATE_COLOR_IMG = 0x8C04
 
-pattern GL_RECIP_ADD_SIGNED_ALPHA_IMG = 0x8C05 :: GLenum
+pattern GL_RECIP_ADD_SIGNED_ALPHA_IMG = 0x8C05
 
-pattern GL_TEXTURE_ALPHA_MODULATE_IMG = 0x8C06 :: GLenum
+pattern GL_TEXTURE_ALPHA_MODULATE_IMG = 0x8C06
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/IMG/UserClipPlane.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/IMG/UserClipPlane.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/IMG/UserClipPlane.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/IMG/UserClipPlane.hs
@@ -43,16 +43,16 @@
 
 {-# NOINLINE glClipPlanexIMGFunPtr #-}
 
-pattern GL_CLIP_PLANE0_IMG = 0x3000 :: GLenum
+pattern GL_CLIP_PLANE0_IMG = 0x3000
 
-pattern GL_CLIP_PLANE1_IMG = 0x3001 :: GLenum
+pattern GL_CLIP_PLANE1_IMG = 0x3001
 
-pattern GL_CLIP_PLANE2_IMG = 0x3002 :: GLenum
+pattern GL_CLIP_PLANE2_IMG = 0x3002
 
-pattern GL_CLIP_PLANE3_IMG = 0x3003 :: GLenum
+pattern GL_CLIP_PLANE3_IMG = 0x3003
 
-pattern GL_CLIP_PLANE4_IMG = 0x3004 :: GLenum
+pattern GL_CLIP_PLANE4_IMG = 0x3004
 
-pattern GL_CLIP_PLANE5_IMG = 0x3005 :: GLenum
+pattern GL_CLIP_PLANE5_IMG = 0x3005
 
-pattern GL_MAX_CLIP_PLANES_IMG = 0x0D32 :: GLenum
+pattern GL_MAX_CLIP_PLANES_IMG = 0x0D32
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/INGR/ColorClamp.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/INGR/ColorClamp.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/INGR/ColorClamp.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/INGR/ColorClamp.hs
@@ -17,23 +17,22 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_INGR_color_clamp :: Bool
 gl_INGR_color_clamp = member "GL_INGR_color_clamp" extensions
 
-pattern GL_ALPHA_MAX_CLAMP_INGR = 0x8567 :: GLenum
+pattern GL_ALPHA_MAX_CLAMP_INGR = 0x8567
 
-pattern GL_ALPHA_MIN_CLAMP_INGR = 0x8563 :: GLenum
+pattern GL_ALPHA_MIN_CLAMP_INGR = 0x8563
 
-pattern GL_BLUE_MAX_CLAMP_INGR = 0x8566 :: GLenum
+pattern GL_BLUE_MAX_CLAMP_INGR = 0x8566
 
-pattern GL_BLUE_MIN_CLAMP_INGR = 0x8562 :: GLenum
+pattern GL_BLUE_MIN_CLAMP_INGR = 0x8562
 
-pattern GL_GREEN_MAX_CLAMP_INGR = 0x8565 :: GLenum
+pattern GL_GREEN_MAX_CLAMP_INGR = 0x8565
 
-pattern GL_GREEN_MIN_CLAMP_INGR = 0x8561 :: GLenum
+pattern GL_GREEN_MIN_CLAMP_INGR = 0x8561
 
-pattern GL_RED_MAX_CLAMP_INGR = 0x8564 :: GLenum
+pattern GL_RED_MAX_CLAMP_INGR = 0x8564
 
-pattern GL_RED_MIN_CLAMP_INGR = 0x8560 :: GLenum
+pattern GL_RED_MIN_CLAMP_INGR = 0x8560
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/INGR/InterlaceRead.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/INGR/InterlaceRead.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/INGR/InterlaceRead.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/INGR/InterlaceRead.hs
@@ -10,9 +10,8 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_INGR_interlace_read :: Bool
 gl_INGR_interlace_read = member "GL_INGR_interlace_read" extensions
 
-pattern GL_INTERLACE_READ_INGR = 0x8568 :: GLenum
+pattern GL_INTERLACE_READ_INGR = 0x8568
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/INTEL/MapTexture.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/INTEL/MapTexture.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/INTEL/MapTexture.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/INTEL/MapTexture.hs
@@ -49,10 +49,10 @@
 
 {-# NOINLINE glUnmapTexture2DINTELFunPtr #-}
 
-pattern GL_LAYOUT_DEFAULT_INTEL = 0 :: GLenum
+pattern GL_LAYOUT_DEFAULT_INTEL = 0
 
-pattern GL_LAYOUT_LINEAR_CPU_CACHED_INTEL = 2 :: GLenum
+pattern GL_LAYOUT_LINEAR_CPU_CACHED_INTEL = 2
 
-pattern GL_LAYOUT_LINEAR_INTEL = 1 :: GLenum
+pattern GL_LAYOUT_LINEAR_INTEL = 1
 
-pattern GL_TEXTURE_MEMORY_LAYOUT_INTEL = 0x83FF :: GLenum
+pattern GL_TEXTURE_MEMORY_LAYOUT_INTEL = 0x83FF
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/INTEL/ParallelArrays.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/INTEL/ParallelArrays.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/INTEL/ParallelArrays.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/INTEL/ParallelArrays.hs
@@ -59,12 +59,12 @@
 
 {-# NOINLINE glVertexPointervINTELFunPtr #-}
 
-pattern GL_COLOR_ARRAY_PARALLEL_POINTERS_INTEL = 0x83F7 :: GLenum
+pattern GL_COLOR_ARRAY_PARALLEL_POINTERS_INTEL = 0x83F7
 
-pattern GL_NORMAL_ARRAY_PARALLEL_POINTERS_INTEL = 0x83F6 :: GLenum
+pattern GL_NORMAL_ARRAY_PARALLEL_POINTERS_INTEL = 0x83F6
 
-pattern GL_PARALLEL_ARRAYS_INTEL = 0x83F4 :: GLenum
+pattern GL_PARALLEL_ARRAYS_INTEL = 0x83F4
 
-pattern GL_TEXTURE_COORD_ARRAY_PARALLEL_POINTERS_INTEL = 0x83F8 :: GLenum
+pattern GL_TEXTURE_COORD_ARRAY_PARALLEL_POINTERS_INTEL = 0x83F8
 
-pattern GL_VERTEX_ARRAY_PARALLEL_POINTERS_INTEL = 0x83F5 :: GLenum
+pattern GL_VERTEX_ARRAY_PARALLEL_POINTERS_INTEL = 0x83F5
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/INTEL/PerformanceQuery.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/INTEL/PerformanceQuery.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/INTEL/PerformanceQuery.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/INTEL/PerformanceQuery.hs
@@ -128,42 +128,42 @@
 
 {-# NOINLINE glGetPerfQueryInfoINTELFunPtr #-}
 
-pattern GL_PERFQUERY_COUNTER_DATA_BOOL32_INTEL = 0x94FC :: GLenum
+pattern GL_PERFQUERY_COUNTER_DATA_BOOL32_INTEL = 0x94FC
 
-pattern GL_PERFQUERY_COUNTER_DATA_DOUBLE_INTEL = 0x94FB :: GLenum
+pattern GL_PERFQUERY_COUNTER_DATA_DOUBLE_INTEL = 0x94FB
 
-pattern GL_PERFQUERY_COUNTER_DATA_FLOAT_INTEL = 0x94FA :: GLenum
+pattern GL_PERFQUERY_COUNTER_DATA_FLOAT_INTEL = 0x94FA
 
-pattern GL_PERFQUERY_COUNTER_DATA_UINT32_INTEL = 0x94F8 :: GLenum
+pattern GL_PERFQUERY_COUNTER_DATA_UINT32_INTEL = 0x94F8
 
-pattern GL_PERFQUERY_COUNTER_DATA_UINT64_INTEL = 0x94F9 :: GLenum
+pattern GL_PERFQUERY_COUNTER_DATA_UINT64_INTEL = 0x94F9
 
-pattern GL_PERFQUERY_COUNTER_DESC_LENGTH_MAX_INTEL = 0x94FF :: GLenum
+pattern GL_PERFQUERY_COUNTER_DESC_LENGTH_MAX_INTEL = 0x94FF
 
-pattern GL_PERFQUERY_COUNTER_DURATION_NORM_INTEL = 0x94F1 :: GLenum
+pattern GL_PERFQUERY_COUNTER_DURATION_NORM_INTEL = 0x94F1
 
-pattern GL_PERFQUERY_COUNTER_DURATION_RAW_INTEL = 0x94F2 :: GLenum
+pattern GL_PERFQUERY_COUNTER_DURATION_RAW_INTEL = 0x94F2
 
-pattern GL_PERFQUERY_COUNTER_EVENT_INTEL = 0x94F0 :: GLenum
+pattern GL_PERFQUERY_COUNTER_EVENT_INTEL = 0x94F0
 
-pattern GL_PERFQUERY_COUNTER_NAME_LENGTH_MAX_INTEL = 0x94FE :: GLenum
+pattern GL_PERFQUERY_COUNTER_NAME_LENGTH_MAX_INTEL = 0x94FE
 
-pattern GL_PERFQUERY_COUNTER_RAW_INTEL = 0x94F4 :: GLenum
+pattern GL_PERFQUERY_COUNTER_RAW_INTEL = 0x94F4
 
-pattern GL_PERFQUERY_COUNTER_THROUGHPUT_INTEL = 0x94F3 :: GLenum
+pattern GL_PERFQUERY_COUNTER_THROUGHPUT_INTEL = 0x94F3
 
-pattern GL_PERFQUERY_COUNTER_TIMESTAMP_INTEL = 0x94F5 :: GLenum
+pattern GL_PERFQUERY_COUNTER_TIMESTAMP_INTEL = 0x94F5
 
-pattern GL_PERFQUERY_DONOT_FLUSH_INTEL = 0x83F9 :: GLenum
+pattern GL_PERFQUERY_DONOT_FLUSH_INTEL = 0x83F9
 
-pattern GL_PERFQUERY_FLUSH_INTEL = 0x83FA :: GLenum
+pattern GL_PERFQUERY_FLUSH_INTEL = 0x83FA
 
-pattern GL_PERFQUERY_GLOBAL_CONTEXT_INTEL = 0x00000001 :: GLenum
+pattern GL_PERFQUERY_GLOBAL_CONTEXT_INTEL = 0x00000001
 
-pattern GL_PERFQUERY_GPA_EXTENDED_COUNTERS_INTEL = 0x9500 :: GLenum
+pattern GL_PERFQUERY_GPA_EXTENDED_COUNTERS_INTEL = 0x9500
 
-pattern GL_PERFQUERY_QUERY_NAME_LENGTH_MAX_INTEL = 0x94FD :: GLenum
+pattern GL_PERFQUERY_QUERY_NAME_LENGTH_MAX_INTEL = 0x94FD
 
-pattern GL_PERFQUERY_SINGLE_CONTEXT_INTEL = 0x00000000 :: GLenum
+pattern GL_PERFQUERY_SINGLE_CONTEXT_INTEL = 0x00000000
 
-pattern GL_PERFQUERY_WAIT_INTEL = 0x83FB :: GLenum
+pattern GL_PERFQUERY_WAIT_INTEL = 0x83FB
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/KHR/BlendEquationAdvanced.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/KHR/BlendEquationAdvanced.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/KHR/BlendEquationAdvanced.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/KHR/BlendEquationAdvanced.hs
@@ -28,7 +28,6 @@
 import Foreign.Ptr
 import Graphics.GL.Raw.Internal.FFI
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
 gl_KHR_blend_equation_advanced :: Bool
@@ -42,32 +41,32 @@
 
 {-# NOINLINE glBlendBarrierKHRFunPtr #-}
 
-pattern GL_COLORBURN_KHR = 0x929A :: GLenum
+pattern GL_COLORBURN_KHR = 0x929A
 
-pattern GL_COLORDODGE_KHR = 0x9299 :: GLenum
+pattern GL_COLORDODGE_KHR = 0x9299
 
-pattern GL_DARKEN_KHR = 0x9297 :: GLenum
+pattern GL_DARKEN_KHR = 0x9297
 
-pattern GL_DIFFERENCE_KHR = 0x929E :: GLenum
+pattern GL_DIFFERENCE_KHR = 0x929E
 
-pattern GL_EXCLUSION_KHR = 0x92A0 :: GLenum
+pattern GL_EXCLUSION_KHR = 0x92A0
 
-pattern GL_HARDLIGHT_KHR = 0x929B :: GLenum
+pattern GL_HARDLIGHT_KHR = 0x929B
 
-pattern GL_HSL_COLOR_KHR = 0x92AF :: GLenum
+pattern GL_HSL_COLOR_KHR = 0x92AF
 
-pattern GL_HSL_HUE_KHR = 0x92AD :: GLenum
+pattern GL_HSL_HUE_KHR = 0x92AD
 
-pattern GL_HSL_LUMINOSITY_KHR = 0x92B0 :: GLenum
+pattern GL_HSL_LUMINOSITY_KHR = 0x92B0
 
-pattern GL_HSL_SATURATION_KHR = 0x92AE :: GLenum
+pattern GL_HSL_SATURATION_KHR = 0x92AE
 
-pattern GL_LIGHTEN_KHR = 0x9298 :: GLenum
+pattern GL_LIGHTEN_KHR = 0x9298
 
-pattern GL_MULTIPLY_KHR = 0x9294 :: GLenum
+pattern GL_MULTIPLY_KHR = 0x9294
 
-pattern GL_OVERLAY_KHR = 0x9296 :: GLenum
+pattern GL_OVERLAY_KHR = 0x9296
 
-pattern GL_SCREEN_KHR = 0x9295 :: GLenum
+pattern GL_SCREEN_KHR = 0x9295
 
-pattern GL_SOFTLIGHT_KHR = 0x929C :: GLenum
+pattern GL_SOFTLIGHT_KHR = 0x929C
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/KHR/BlendEquationAdvancedCoherent.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/KHR/BlendEquationAdvancedCoherent.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/KHR/BlendEquationAdvancedCoherent.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/KHR/BlendEquationAdvancedCoherent.hs
@@ -10,9 +10,8 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_KHR_blend_equation_advanced_coherent :: Bool
 gl_KHR_blend_equation_advanced_coherent = member "GL_KHR_blend_equation_advanced_coherent" extensions
 
-pattern GL_BLEND_ADVANCED_COHERENT_KHR = 0x9285 :: GLenum
+pattern GL_BLEND_ADVANCED_COHERENT_KHR = 0x9285
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/KHR/ContextFlushControl.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/KHR/ContextFlushControl.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/KHR/ContextFlushControl.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/KHR/ContextFlushControl.hs
@@ -15,11 +15,10 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
-import Graphics.GL.Raw.Types
 
 gl_KHR_context_flush_control :: Bool
 gl_KHR_context_flush_control = member "GL_KHR_context_flush_control" extensions
 
-pattern GL_CONTEXT_RELEASE_BEHAVIOR_FLUSH_KHR = 0x82FC :: GLenum
+pattern GL_CONTEXT_RELEASE_BEHAVIOR_FLUSH_KHR = 0x82FC
 
-pattern GL_CONTEXT_RELEASE_BEHAVIOR_KHR = 0x82FB :: GLenum
+pattern GL_CONTEXT_RELEASE_BEHAVIOR_KHR = 0x82FB
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/KHR/Debug.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/KHR/Debug.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/KHR/Debug.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/KHR/Debug.hs
@@ -209,80 +209,80 @@
 
 {-# NOINLINE glPushDebugGroupKHRFunPtr #-}
 
-pattern GL_BUFFER_KHR = 0x82E0 :: GLenum
+pattern GL_BUFFER_KHR = 0x82E0
 
-pattern GL_CONTEXT_FLAG_DEBUG_BIT_KHR = 0x00000002 :: GLenum
+pattern GL_CONTEXT_FLAG_DEBUG_BIT_KHR = 0x00000002
 
-pattern GL_DEBUG_CALLBACK_FUNCTION_KHR = 0x8244 :: GLenum
+pattern GL_DEBUG_CALLBACK_FUNCTION_KHR = 0x8244
 
-pattern GL_DEBUG_CALLBACK_USER_PARAM_KHR = 0x8245 :: GLenum
+pattern GL_DEBUG_CALLBACK_USER_PARAM_KHR = 0x8245
 
-pattern GL_DEBUG_GROUP_STACK_DEPTH_KHR = 0x826D :: GLenum
+pattern GL_DEBUG_GROUP_STACK_DEPTH_KHR = 0x826D
 
-pattern GL_DEBUG_LOGGED_MESSAGES_KHR = 0x9145 :: GLenum
+pattern GL_DEBUG_LOGGED_MESSAGES_KHR = 0x9145
 
-pattern GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_KHR = 0x8243 :: GLenum
+pattern GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_KHR = 0x8243
 
-pattern GL_DEBUG_OUTPUT_KHR = 0x92E0 :: GLenum
+pattern GL_DEBUG_OUTPUT_KHR = 0x92E0
 
-pattern GL_DEBUG_OUTPUT_SYNCHRONOUS_KHR = 0x8242 :: GLenum
+pattern GL_DEBUG_OUTPUT_SYNCHRONOUS_KHR = 0x8242
 
-pattern GL_DEBUG_SEVERITY_HIGH_KHR = 0x9146 :: GLenum
+pattern GL_DEBUG_SEVERITY_HIGH_KHR = 0x9146
 
-pattern GL_DEBUG_SEVERITY_LOW_KHR = 0x9148 :: GLenum
+pattern GL_DEBUG_SEVERITY_LOW_KHR = 0x9148
 
-pattern GL_DEBUG_SEVERITY_MEDIUM_KHR = 0x9147 :: GLenum
+pattern GL_DEBUG_SEVERITY_MEDIUM_KHR = 0x9147
 
-pattern GL_DEBUG_SEVERITY_NOTIFICATION_KHR = 0x826B :: GLenum
+pattern GL_DEBUG_SEVERITY_NOTIFICATION_KHR = 0x826B
 
-pattern GL_DEBUG_SOURCE_API_KHR = 0x8246 :: GLenum
+pattern GL_DEBUG_SOURCE_API_KHR = 0x8246
 
-pattern GL_DEBUG_SOURCE_APPLICATION_KHR = 0x824A :: GLenum
+pattern GL_DEBUG_SOURCE_APPLICATION_KHR = 0x824A
 
-pattern GL_DEBUG_SOURCE_OTHER_KHR = 0x824B :: GLenum
+pattern GL_DEBUG_SOURCE_OTHER_KHR = 0x824B
 
-pattern GL_DEBUG_SOURCE_SHADER_COMPILER_KHR = 0x8248 :: GLenum
+pattern GL_DEBUG_SOURCE_SHADER_COMPILER_KHR = 0x8248
 
-pattern GL_DEBUG_SOURCE_THIRD_PARTY_KHR = 0x8249 :: GLenum
+pattern GL_DEBUG_SOURCE_THIRD_PARTY_KHR = 0x8249
 
-pattern GL_DEBUG_SOURCE_WINDOW_SYSTEM_KHR = 0x8247 :: GLenum
+pattern GL_DEBUG_SOURCE_WINDOW_SYSTEM_KHR = 0x8247
 
-pattern GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR_KHR = 0x824D :: GLenum
+pattern GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR_KHR = 0x824D
 
-pattern GL_DEBUG_TYPE_ERROR_KHR = 0x824C :: GLenum
+pattern GL_DEBUG_TYPE_ERROR_KHR = 0x824C
 
-pattern GL_DEBUG_TYPE_MARKER_KHR = 0x8268 :: GLenum
+pattern GL_DEBUG_TYPE_MARKER_KHR = 0x8268
 
-pattern GL_DEBUG_TYPE_OTHER_KHR = 0x8251 :: GLenum
+pattern GL_DEBUG_TYPE_OTHER_KHR = 0x8251
 
-pattern GL_DEBUG_TYPE_PERFORMANCE_KHR = 0x8250 :: GLenum
+pattern GL_DEBUG_TYPE_PERFORMANCE_KHR = 0x8250
 
-pattern GL_DEBUG_TYPE_POP_GROUP_KHR = 0x826A :: GLenum
+pattern GL_DEBUG_TYPE_POP_GROUP_KHR = 0x826A
 
-pattern GL_DEBUG_TYPE_PORTABILITY_KHR = 0x824F :: GLenum
+pattern GL_DEBUG_TYPE_PORTABILITY_KHR = 0x824F
 
-pattern GL_DEBUG_TYPE_PUSH_GROUP_KHR = 0x8269 :: GLenum
+pattern GL_DEBUG_TYPE_PUSH_GROUP_KHR = 0x8269
 
-pattern GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR_KHR = 0x824E :: GLenum
+pattern GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR_KHR = 0x824E
 
-pattern GL_MAX_DEBUG_GROUP_STACK_DEPTH_KHR = 0x826C :: GLenum
+pattern GL_MAX_DEBUG_GROUP_STACK_DEPTH_KHR = 0x826C
 
-pattern GL_MAX_DEBUG_LOGGED_MESSAGES_KHR = 0x9144 :: GLenum
+pattern GL_MAX_DEBUG_LOGGED_MESSAGES_KHR = 0x9144
 
-pattern GL_MAX_DEBUG_MESSAGE_LENGTH_KHR = 0x9143 :: GLenum
+pattern GL_MAX_DEBUG_MESSAGE_LENGTH_KHR = 0x9143
 
-pattern GL_MAX_LABEL_LENGTH_KHR = 0x82E8 :: GLenum
+pattern GL_MAX_LABEL_LENGTH_KHR = 0x82E8
 
-pattern GL_PROGRAM_KHR = 0x82E2 :: GLenum
+pattern GL_PROGRAM_KHR = 0x82E2
 
-pattern GL_QUERY_KHR = 0x82E3 :: GLenum
+pattern GL_QUERY_KHR = 0x82E3
 
-pattern GL_SAMPLER_KHR = 0x82E6 :: GLenum
+pattern GL_SAMPLER_KHR = 0x82E6
 
-pattern GL_SHADER_KHR = 0x82E1 :: GLenum
+pattern GL_SHADER_KHR = 0x82E1
 
-pattern GL_STACK_OVERFLOW_KHR = 0x0503 :: GLenum
+pattern GL_STACK_OVERFLOW_KHR = 0x0503
 
-pattern GL_STACK_UNDERFLOW_KHR = 0x0504 :: GLenum
+pattern GL_STACK_UNDERFLOW_KHR = 0x0504
 
-pattern GL_VERTEX_ARRAY_KHR = 0x8074 :: GLenum
+pattern GL_VERTEX_ARRAY_KHR = 0x8074
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/KHR/Robustness.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/KHR/Robustness.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/KHR/Robustness.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/KHR/Robustness.hs
@@ -86,20 +86,20 @@
 
 {-# NOINLINE glReadnPixelsKHRFunPtr #-}
 
-pattern GL_CONTEXT_LOST_KHR = 0x0507 :: GLenum
+pattern GL_CONTEXT_LOST_KHR = 0x0507
 
-pattern GL_CONTEXT_ROBUST_ACCESS = 0x90F3 :: GLenum
+pattern GL_CONTEXT_ROBUST_ACCESS = 0x90F3
 
-pattern GL_CONTEXT_ROBUST_ACCESS_KHR = 0x90F3 :: GLenum
+pattern GL_CONTEXT_ROBUST_ACCESS_KHR = 0x90F3
 
-pattern GL_GUILTY_CONTEXT_RESET_KHR = 0x8253 :: GLenum
+pattern GL_GUILTY_CONTEXT_RESET_KHR = 0x8253
 
-pattern GL_INNOCENT_CONTEXT_RESET_KHR = 0x8254 :: GLenum
+pattern GL_INNOCENT_CONTEXT_RESET_KHR = 0x8254
 
-pattern GL_LOSE_CONTEXT_ON_RESET_KHR = 0x8252 :: GLenum
+pattern GL_LOSE_CONTEXT_ON_RESET_KHR = 0x8252
 
-pattern GL_NO_RESET_NOTIFICATION_KHR = 0x8261 :: GLenum
+pattern GL_NO_RESET_NOTIFICATION_KHR = 0x8261
 
-pattern GL_RESET_NOTIFICATION_STRATEGY_KHR = 0x8256 :: GLenum
+pattern GL_RESET_NOTIFICATION_STRATEGY_KHR = 0x8256
 
-pattern GL_UNKNOWN_CONTEXT_RESET_KHR = 0x8255 :: GLenum
+pattern GL_UNKNOWN_CONTEXT_RESET_KHR = 0x8255
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/MESA/PackInvert.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/MESA/PackInvert.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/MESA/PackInvert.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/MESA/PackInvert.hs
@@ -10,9 +10,8 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_MESA_pack_invert :: Bool
 gl_MESA_pack_invert = member "GL_MESA_pack_invert" extensions
 
-pattern GL_PACK_INVERT_MESA = 0x8758 :: GLenum
+pattern GL_PACK_INVERT_MESA = 0x8758
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/MESA/YcbcrTexture.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/MESA/YcbcrTexture.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/MESA/YcbcrTexture.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/MESA/YcbcrTexture.hs
@@ -12,13 +12,12 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_MESA_ycbcr_texture :: Bool
 gl_MESA_ycbcr_texture = member "GL_MESA_ycbcr_texture" extensions
 
-pattern GL_UNSIGNED_SHORT_8_8_MESA = 0x85BA :: GLenum
+pattern GL_UNSIGNED_SHORT_8_8_MESA = 0x85BA
 
-pattern GL_UNSIGNED_SHORT_8_8_REV_MESA = 0x85BB :: GLenum
+pattern GL_UNSIGNED_SHORT_8_8_REV_MESA = 0x85BB
 
-pattern GL_YCBCR_MESA = 0x8757 :: GLenum
+pattern GL_YCBCR_MESA = 0x8757
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/MESAX/TextureStack.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/MESAX/TextureStack.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/MESAX/TextureStack.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/MESAX/TextureStack.hs
@@ -15,19 +15,18 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_MESAX_texture_stack :: Bool
 gl_MESAX_texture_stack = member "GL_MESAX_texture_stack" extensions
 
-pattern GL_PROXY_TEXTURE_1D_STACK_MESAX = 0x875B :: GLenum
+pattern GL_PROXY_TEXTURE_1D_STACK_MESAX = 0x875B
 
-pattern GL_PROXY_TEXTURE_2D_STACK_MESAX = 0x875C :: GLenum
+pattern GL_PROXY_TEXTURE_2D_STACK_MESAX = 0x875C
 
-pattern GL_TEXTURE_1D_STACK_BINDING_MESAX = 0x875D :: GLenum
+pattern GL_TEXTURE_1D_STACK_BINDING_MESAX = 0x875D
 
-pattern GL_TEXTURE_1D_STACK_MESAX = 0x8759 :: GLenum
+pattern GL_TEXTURE_1D_STACK_MESAX = 0x8759
 
-pattern GL_TEXTURE_2D_STACK_BINDING_MESAX = 0x875E :: GLenum
+pattern GL_TEXTURE_2D_STACK_BINDING_MESAX = 0x875E
 
-pattern GL_TEXTURE_2D_STACK_MESAX = 0x875A :: GLenum
+pattern GL_TEXTURE_2D_STACK_MESAX = 0x875A
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/BlendEquationAdvanced.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/BlendEquationAdvanced.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/BlendEquationAdvanced.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/BlendEquationAdvanced.hs
@@ -88,100 +88,100 @@
 
 {-# NOINLINE glBlendParameteriNVFunPtr #-}
 
-pattern GL_BLEND_OVERLAP_NV = 0x9281 :: GLenum
+pattern GL_BLEND_OVERLAP_NV = 0x9281
 
-pattern GL_BLEND_PREMULTIPLIED_SRC_NV = 0x9280 :: GLenum
+pattern GL_BLEND_PREMULTIPLIED_SRC_NV = 0x9280
 
-pattern GL_BLUE_NV = 0x1905 :: GLenum
+pattern GL_BLUE_NV = 0x1905
 
-pattern GL_COLORBURN_NV = 0x929A :: GLenum
+pattern GL_COLORBURN_NV = 0x929A
 
-pattern GL_COLORDODGE_NV = 0x9299 :: GLenum
+pattern GL_COLORDODGE_NV = 0x9299
 
-pattern GL_CONJOINT_NV = 0x9284 :: GLenum
+pattern GL_CONJOINT_NV = 0x9284
 
-pattern GL_CONTRAST_NV = 0x92A1 :: GLenum
+pattern GL_CONTRAST_NV = 0x92A1
 
-pattern GL_DARKEN_NV = 0x9297 :: GLenum
+pattern GL_DARKEN_NV = 0x9297
 
-pattern GL_DIFFERENCE_NV = 0x929E :: GLenum
+pattern GL_DIFFERENCE_NV = 0x929E
 
-pattern GL_DISJOINT_NV = 0x9283 :: GLenum
+pattern GL_DISJOINT_NV = 0x9283
 
-pattern GL_DST_ATOP_NV = 0x928F :: GLenum
+pattern GL_DST_ATOP_NV = 0x928F
 
-pattern GL_DST_IN_NV = 0x928B :: GLenum
+pattern GL_DST_IN_NV = 0x928B
 
-pattern GL_DST_NV = 0x9287 :: GLenum
+pattern GL_DST_NV = 0x9287
 
-pattern GL_DST_OUT_NV = 0x928D :: GLenum
+pattern GL_DST_OUT_NV = 0x928D
 
-pattern GL_DST_OVER_NV = 0x9289 :: GLenum
+pattern GL_DST_OVER_NV = 0x9289
 
-pattern GL_EXCLUSION_NV = 0x92A0 :: GLenum
+pattern GL_EXCLUSION_NV = 0x92A0
 
-pattern GL_GREEN_NV = 0x1904 :: GLenum
+pattern GL_GREEN_NV = 0x1904
 
-pattern GL_HARDLIGHT_NV = 0x929B :: GLenum
+pattern GL_HARDLIGHT_NV = 0x929B
 
-pattern GL_HARDMIX_NV = 0x92A9 :: GLenum
+pattern GL_HARDMIX_NV = 0x92A9
 
-pattern GL_HSL_COLOR_NV = 0x92AF :: GLenum
+pattern GL_HSL_COLOR_NV = 0x92AF
 
-pattern GL_HSL_HUE_NV = 0x92AD :: GLenum
+pattern GL_HSL_HUE_NV = 0x92AD
 
-pattern GL_HSL_LUMINOSITY_NV = 0x92B0 :: GLenum
+pattern GL_HSL_LUMINOSITY_NV = 0x92B0
 
-pattern GL_HSL_SATURATION_NV = 0x92AE :: GLenum
+pattern GL_HSL_SATURATION_NV = 0x92AE
 
-pattern GL_INVERT_OVG_NV = 0x92B4 :: GLenum
+pattern GL_INVERT_OVG_NV = 0x92B4
 
-pattern GL_INVERT_RGB_NV = 0x92A3 :: GLenum
+pattern GL_INVERT_RGB_NV = 0x92A3
 
-pattern GL_LIGHTEN_NV = 0x9298 :: GLenum
+pattern GL_LIGHTEN_NV = 0x9298
 
-pattern GL_LINEARBURN_NV = 0x92A5 :: GLenum
+pattern GL_LINEARBURN_NV = 0x92A5
 
-pattern GL_LINEARDODGE_NV = 0x92A4 :: GLenum
+pattern GL_LINEARDODGE_NV = 0x92A4
 
-pattern GL_LINEARLIGHT_NV = 0x92A7 :: GLenum
+pattern GL_LINEARLIGHT_NV = 0x92A7
 
-pattern GL_MINUS_CLAMPED_NV = 0x92B3 :: GLenum
+pattern GL_MINUS_CLAMPED_NV = 0x92B3
 
-pattern GL_MINUS_NV = 0x929F :: GLenum
+pattern GL_MINUS_NV = 0x929F
 
-pattern GL_MULTIPLY_NV = 0x9294 :: GLenum
+pattern GL_MULTIPLY_NV = 0x9294
 
-pattern GL_OVERLAY_NV = 0x9296 :: GLenum
+pattern GL_OVERLAY_NV = 0x9296
 
-pattern GL_PINLIGHT_NV = 0x92A8 :: GLenum
+pattern GL_PINLIGHT_NV = 0x92A8
 
-pattern GL_PLUS_CLAMPED_ALPHA_NV = 0x92B2 :: GLenum
+pattern GL_PLUS_CLAMPED_ALPHA_NV = 0x92B2
 
-pattern GL_PLUS_CLAMPED_NV = 0x92B1 :: GLenum
+pattern GL_PLUS_CLAMPED_NV = 0x92B1
 
-pattern GL_PLUS_DARKER_NV = 0x9292 :: GLenum
+pattern GL_PLUS_DARKER_NV = 0x9292
 
-pattern GL_PLUS_NV = 0x9291 :: GLenum
+pattern GL_PLUS_NV = 0x9291
 
-pattern GL_RED_NV = 0x1903 :: GLenum
+pattern GL_RED_NV = 0x1903
 
-pattern GL_SCREEN_NV = 0x9295 :: GLenum
+pattern GL_SCREEN_NV = 0x9295
 
-pattern GL_SOFTLIGHT_NV = 0x929C :: GLenum
+pattern GL_SOFTLIGHT_NV = 0x929C
 
-pattern GL_SRC_ATOP_NV = 0x928E :: GLenum
+pattern GL_SRC_ATOP_NV = 0x928E
 
-pattern GL_SRC_IN_NV = 0x928A :: GLenum
+pattern GL_SRC_IN_NV = 0x928A
 
-pattern GL_SRC_NV = 0x9286 :: GLenum
+pattern GL_SRC_NV = 0x9286
 
-pattern GL_SRC_OUT_NV = 0x928C :: GLenum
+pattern GL_SRC_OUT_NV = 0x928C
 
-pattern GL_SRC_OVER_NV = 0x9288 :: GLenum
+pattern GL_SRC_OVER_NV = 0x9288
 
-pattern GL_UNCORRELATED_NV = 0x9282 :: GLenum
+pattern GL_UNCORRELATED_NV = 0x9282
 
-pattern GL_VIVIDLIGHT_NV = 0x92A6 :: GLenum
+pattern GL_VIVIDLIGHT_NV = 0x92A6
 
-pattern GL_XOR_NV = 0x1506 :: GLenum
+pattern GL_XOR_NV = 0x1506
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/BlendEquationAdvancedCoherent.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/BlendEquationAdvancedCoherent.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/BlendEquationAdvancedCoherent.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/BlendEquationAdvancedCoherent.hs
@@ -10,9 +10,8 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_NV_blend_equation_advanced_coherent :: Bool
 gl_NV_blend_equation_advanced_coherent = member "GL_NV_blend_equation_advanced_coherent" extensions
 
-pattern GL_BLEND_ADVANCED_COHERENT_NV = 0x9285 :: GLenum
+pattern GL_BLEND_ADVANCED_COHERENT_NV = 0x9285
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/ComputeProgram5.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/ComputeProgram5.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/ComputeProgram5.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/ComputeProgram5.hs
@@ -11,11 +11,10 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_NV_compute_program5 :: Bool
 gl_NV_compute_program5 = member "GL_NV_compute_program5" extensions
 
-pattern GL_COMPUTE_PROGRAM_NV = 0x90FB :: GLenum
+pattern GL_COMPUTE_PROGRAM_NV = 0x90FB
 
-pattern GL_COMPUTE_PROGRAM_PARAMETER_BUFFER_NV = 0x90FC :: GLenum
+pattern GL_COMPUTE_PROGRAM_PARAMETER_BUFFER_NV = 0x90FC
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/ConditionalRender.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/ConditionalRender.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/ConditionalRender.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/ConditionalRender.hs
@@ -40,10 +40,10 @@
 
 {-# NOINLINE glEndConditionalRenderNVFunPtr #-}
 
-pattern GL_QUERY_BY_REGION_NO_WAIT_NV = 0x8E16 :: GLenum
+pattern GL_QUERY_BY_REGION_NO_WAIT_NV = 0x8E16
 
-pattern GL_QUERY_BY_REGION_WAIT_NV = 0x8E15 :: GLenum
+pattern GL_QUERY_BY_REGION_WAIT_NV = 0x8E15
 
-pattern GL_QUERY_NO_WAIT_NV = 0x8E14 :: GLenum
+pattern GL_QUERY_NO_WAIT_NV = 0x8E14
 
-pattern GL_QUERY_WAIT_NV = 0x8E13 :: GLenum
+pattern GL_QUERY_WAIT_NV = 0x8E13
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/ConservativeRaster.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/ConservativeRaster.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/ConservativeRaster.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/ConservativeRaster.hs
@@ -31,10 +31,10 @@
 
 {-# NOINLINE glSubpixelPrecisionBiasNVFunPtr #-}
 
-pattern GL_CONSERVATIVE_RASTERIZATION_NV = 0x9346 :: GLenum
+pattern GL_CONSERVATIVE_RASTERIZATION_NV = 0x9346
 
-pattern GL_MAX_SUBPIXEL_PRECISION_BIAS_BITS_NV = 0x9349 :: GLenum
+pattern GL_MAX_SUBPIXEL_PRECISION_BIAS_BITS_NV = 0x9349
 
-pattern GL_SUBPIXEL_PRECISION_BIAS_X_BITS_NV = 0x9347 :: GLenum
+pattern GL_SUBPIXEL_PRECISION_BIAS_X_BITS_NV = 0x9347
 
-pattern GL_SUBPIXEL_PRECISION_BIAS_Y_BITS_NV = 0x9348 :: GLenum
+pattern GL_SUBPIXEL_PRECISION_BIAS_Y_BITS_NV = 0x9348
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/CopyBuffer.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/CopyBuffer.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/CopyBuffer.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/CopyBuffer.hs
@@ -29,6 +29,6 @@
 
 {-# NOINLINE glCopyBufferSubDataNVFunPtr #-}
 
-pattern GL_COPY_READ_BUFFER_NV = 0x8F36 :: GLenum
+pattern GL_COPY_READ_BUFFER_NV = 0x8F36
 
-pattern GL_COPY_WRITE_BUFFER_NV = 0x8F37 :: GLenum
+pattern GL_COPY_WRITE_BUFFER_NV = 0x8F37
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/CopyDepthToColor.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/CopyDepthToColor.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/CopyDepthToColor.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/CopyDepthToColor.hs
@@ -11,11 +11,10 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_NV_copy_depth_to_color :: Bool
 gl_NV_copy_depth_to_color = member "GL_NV_copy_depth_to_color" extensions
 
-pattern GL_DEPTH_STENCIL_TO_BGRA_NV = 0x886F :: GLenum
+pattern GL_DEPTH_STENCIL_TO_BGRA_NV = 0x886F
 
-pattern GL_DEPTH_STENCIL_TO_RGBA_NV = 0x886E :: GLenum
+pattern GL_DEPTH_STENCIL_TO_RGBA_NV = 0x886E
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/CoverageSample.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/CoverageSample.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/CoverageSample.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/CoverageSample.hs
@@ -45,20 +45,20 @@
 
 {-# NOINLINE glCoverageOperationNVFunPtr #-}
 
-pattern GL_COVERAGE_ALL_FRAGMENTS_NV = 0x8ED5 :: GLenum
+pattern GL_COVERAGE_ALL_FRAGMENTS_NV = 0x8ED5
 
-pattern GL_COVERAGE_ATTACHMENT_NV = 0x8ED2 :: GLenum
+pattern GL_COVERAGE_ATTACHMENT_NV = 0x8ED2
 
-pattern GL_COVERAGE_AUTOMATIC_NV = 0x8ED7 :: GLenum
+pattern GL_COVERAGE_AUTOMATIC_NV = 0x8ED7
 
-pattern GL_COVERAGE_BUFFERS_NV = 0x8ED3 :: GLenum
+pattern GL_COVERAGE_BUFFERS_NV = 0x8ED3
 
-pattern GL_COVERAGE_BUFFER_BIT_NV = 0x00008000 :: GLenum
+pattern GL_COVERAGE_BUFFER_BIT_NV = 0x00008000
 
-pattern GL_COVERAGE_COMPONENT4_NV = 0x8ED1 :: GLenum
+pattern GL_COVERAGE_COMPONENT4_NV = 0x8ED1
 
-pattern GL_COVERAGE_COMPONENT_NV = 0x8ED0 :: GLenum
+pattern GL_COVERAGE_COMPONENT_NV = 0x8ED0
 
-pattern GL_COVERAGE_EDGE_FRAGMENTS_NV = 0x8ED6 :: GLenum
+pattern GL_COVERAGE_EDGE_FRAGMENTS_NV = 0x8ED6
 
-pattern GL_COVERAGE_SAMPLES_NV = 0x8ED4 :: GLenum
+pattern GL_COVERAGE_SAMPLES_NV = 0x8ED4
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/DeepTexture3D.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/DeepTexture3D.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/DeepTexture3D.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/DeepTexture3D.hs
@@ -11,11 +11,10 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_NV_deep_texture3D :: Bool
 gl_NV_deep_texture3D = member "GL_NV_deep_texture3D" extensions
 
-pattern GL_MAX_DEEP_3D_TEXTURE_DEPTH_NV = 0x90D1 :: GLenum
+pattern GL_MAX_DEEP_3D_TEXTURE_DEPTH_NV = 0x90D1
 
-pattern GL_MAX_DEEP_3D_TEXTURE_WIDTH_HEIGHT_NV = 0x90D0 :: GLenum
+pattern GL_MAX_DEEP_3D_TEXTURE_WIDTH_HEIGHT_NV = 0x90D0
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/DepthBufferFloat.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/DepthBufferFloat.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/DepthBufferFloat.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/DepthBufferFloat.hs
@@ -49,10 +49,10 @@
 
 {-# NOINLINE glDepthRangedNVFunPtr #-}
 
-pattern GL_DEPTH32F_STENCIL8_NV = 0x8DAC :: GLenum
+pattern GL_DEPTH32F_STENCIL8_NV = 0x8DAC
 
-pattern GL_DEPTH_BUFFER_FLOAT_MODE_NV = 0x8DAF :: GLenum
+pattern GL_DEPTH_BUFFER_FLOAT_MODE_NV = 0x8DAF
 
-pattern GL_DEPTH_COMPONENT32F_NV = 0x8DAB :: GLenum
+pattern GL_DEPTH_COMPONENT32F_NV = 0x8DAB
 
-pattern GL_FLOAT_32_UNSIGNED_INT_24_8_REV_NV = 0x8DAD :: GLenum
+pattern GL_FLOAT_32_UNSIGNED_INT_24_8_REV_NV = 0x8DAD
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/DepthClamp.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/DepthClamp.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/DepthClamp.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/DepthClamp.hs
@@ -10,9 +10,8 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_NV_depth_clamp :: Bool
 gl_NV_depth_clamp = member "GL_NV_depth_clamp" extensions
 
-pattern GL_DEPTH_CLAMP_NV = 0x864F :: GLenum
+pattern GL_DEPTH_CLAMP_NV = 0x864F
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/DepthNonlinear.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/DepthNonlinear.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/DepthNonlinear.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/DepthNonlinear.hs
@@ -10,9 +10,8 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_NV_depth_nonlinear :: Bool
 gl_NV_depth_nonlinear = member "GL_NV_depth_nonlinear" extensions
 
-pattern GL_DEPTH_COMPONENT16_NONLINEAR_NV = 0x8E2C :: GLenum
+pattern GL_DEPTH_COMPONENT16_NONLINEAR_NV = 0x8E2C
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/DrawBuffers.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/DrawBuffers.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/DrawBuffers.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/DrawBuffers.hs
@@ -61,36 +61,36 @@
 
 {-# NOINLINE glDrawBuffersNVFunPtr #-}
 
-pattern GL_DRAW_BUFFER0_NV = 0x8825 :: GLenum
+pattern GL_DRAW_BUFFER0_NV = 0x8825
 
-pattern GL_DRAW_BUFFER10_NV = 0x882F :: GLenum
+pattern GL_DRAW_BUFFER10_NV = 0x882F
 
-pattern GL_DRAW_BUFFER11_NV = 0x8830 :: GLenum
+pattern GL_DRAW_BUFFER11_NV = 0x8830
 
-pattern GL_DRAW_BUFFER12_NV = 0x8831 :: GLenum
+pattern GL_DRAW_BUFFER12_NV = 0x8831
 
-pattern GL_DRAW_BUFFER13_NV = 0x8832 :: GLenum
+pattern GL_DRAW_BUFFER13_NV = 0x8832
 
-pattern GL_DRAW_BUFFER14_NV = 0x8833 :: GLenum
+pattern GL_DRAW_BUFFER14_NV = 0x8833
 
-pattern GL_DRAW_BUFFER15_NV = 0x8834 :: GLenum
+pattern GL_DRAW_BUFFER15_NV = 0x8834
 
-pattern GL_DRAW_BUFFER1_NV = 0x8826 :: GLenum
+pattern GL_DRAW_BUFFER1_NV = 0x8826
 
-pattern GL_DRAW_BUFFER2_NV = 0x8827 :: GLenum
+pattern GL_DRAW_BUFFER2_NV = 0x8827
 
-pattern GL_DRAW_BUFFER3_NV = 0x8828 :: GLenum
+pattern GL_DRAW_BUFFER3_NV = 0x8828
 
-pattern GL_DRAW_BUFFER4_NV = 0x8829 :: GLenum
+pattern GL_DRAW_BUFFER4_NV = 0x8829
 
-pattern GL_DRAW_BUFFER5_NV = 0x882A :: GLenum
+pattern GL_DRAW_BUFFER5_NV = 0x882A
 
-pattern GL_DRAW_BUFFER6_NV = 0x882B :: GLenum
+pattern GL_DRAW_BUFFER6_NV = 0x882B
 
-pattern GL_DRAW_BUFFER7_NV = 0x882C :: GLenum
+pattern GL_DRAW_BUFFER7_NV = 0x882C
 
-pattern GL_DRAW_BUFFER8_NV = 0x882D :: GLenum
+pattern GL_DRAW_BUFFER8_NV = 0x882D
 
-pattern GL_DRAW_BUFFER9_NV = 0x882E :: GLenum
+pattern GL_DRAW_BUFFER9_NV = 0x882E
 
-pattern GL_MAX_DRAW_BUFFERS_NV = 0x8824 :: GLenum
+pattern GL_MAX_DRAW_BUFFERS_NV = 0x8824
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/Evaluators.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/Evaluators.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/Evaluators.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/Evaluators.hs
@@ -123,50 +123,50 @@
 
 {-# NOINLINE glMapParameterivNVFunPtr #-}
 
-pattern GL_EVAL_2D_NV = 0x86C0 :: GLenum
+pattern GL_EVAL_2D_NV = 0x86C0
 
-pattern GL_EVAL_FRACTIONAL_TESSELLATION_NV = 0x86C5 :: GLenum
+pattern GL_EVAL_FRACTIONAL_TESSELLATION_NV = 0x86C5
 
-pattern GL_EVAL_TRIANGULAR_2D_NV = 0x86C1 :: GLenum
+pattern GL_EVAL_TRIANGULAR_2D_NV = 0x86C1
 
-pattern GL_EVAL_VERTEX_ATTRIB0_NV = 0x86C6 :: GLenum
+pattern GL_EVAL_VERTEX_ATTRIB0_NV = 0x86C6
 
-pattern GL_EVAL_VERTEX_ATTRIB10_NV = 0x86D0 :: GLenum
+pattern GL_EVAL_VERTEX_ATTRIB10_NV = 0x86D0
 
-pattern GL_EVAL_VERTEX_ATTRIB11_NV = 0x86D1 :: GLenum
+pattern GL_EVAL_VERTEX_ATTRIB11_NV = 0x86D1
 
-pattern GL_EVAL_VERTEX_ATTRIB12_NV = 0x86D2 :: GLenum
+pattern GL_EVAL_VERTEX_ATTRIB12_NV = 0x86D2
 
-pattern GL_EVAL_VERTEX_ATTRIB13_NV = 0x86D3 :: GLenum
+pattern GL_EVAL_VERTEX_ATTRIB13_NV = 0x86D3
 
-pattern GL_EVAL_VERTEX_ATTRIB14_NV = 0x86D4 :: GLenum
+pattern GL_EVAL_VERTEX_ATTRIB14_NV = 0x86D4
 
-pattern GL_EVAL_VERTEX_ATTRIB15_NV = 0x86D5 :: GLenum
+pattern GL_EVAL_VERTEX_ATTRIB15_NV = 0x86D5
 
-pattern GL_EVAL_VERTEX_ATTRIB1_NV = 0x86C7 :: GLenum
+pattern GL_EVAL_VERTEX_ATTRIB1_NV = 0x86C7
 
-pattern GL_EVAL_VERTEX_ATTRIB2_NV = 0x86C8 :: GLenum
+pattern GL_EVAL_VERTEX_ATTRIB2_NV = 0x86C8
 
-pattern GL_EVAL_VERTEX_ATTRIB3_NV = 0x86C9 :: GLenum
+pattern GL_EVAL_VERTEX_ATTRIB3_NV = 0x86C9
 
-pattern GL_EVAL_VERTEX_ATTRIB4_NV = 0x86CA :: GLenum
+pattern GL_EVAL_VERTEX_ATTRIB4_NV = 0x86CA
 
-pattern GL_EVAL_VERTEX_ATTRIB5_NV = 0x86CB :: GLenum
+pattern GL_EVAL_VERTEX_ATTRIB5_NV = 0x86CB
 
-pattern GL_EVAL_VERTEX_ATTRIB6_NV = 0x86CC :: GLenum
+pattern GL_EVAL_VERTEX_ATTRIB6_NV = 0x86CC
 
-pattern GL_EVAL_VERTEX_ATTRIB7_NV = 0x86CD :: GLenum
+pattern GL_EVAL_VERTEX_ATTRIB7_NV = 0x86CD
 
-pattern GL_EVAL_VERTEX_ATTRIB8_NV = 0x86CE :: GLenum
+pattern GL_EVAL_VERTEX_ATTRIB8_NV = 0x86CE
 
-pattern GL_EVAL_VERTEX_ATTRIB9_NV = 0x86CF :: GLenum
+pattern GL_EVAL_VERTEX_ATTRIB9_NV = 0x86CF
 
-pattern GL_MAP_ATTRIB_U_ORDER_NV = 0x86C3 :: GLenum
+pattern GL_MAP_ATTRIB_U_ORDER_NV = 0x86C3
 
-pattern GL_MAP_ATTRIB_V_ORDER_NV = 0x86C4 :: GLenum
+pattern GL_MAP_ATTRIB_V_ORDER_NV = 0x86C4
 
-pattern GL_MAP_TESSELLATION_NV = 0x86C2 :: GLenum
+pattern GL_MAP_TESSELLATION_NV = 0x86C2
 
-pattern GL_MAX_MAP_TESSELLATION_NV = 0x86D6 :: GLenum
+pattern GL_MAX_MAP_TESSELLATION_NV = 0x86D6
 
-pattern GL_MAX_RATIONAL_EVAL_ORDER_NV = 0x86D7 :: GLenum
+pattern GL_MAX_RATIONAL_EVAL_ORDER_NV = 0x86D7
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/ExplicitMultisample.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/ExplicitMultisample.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/ExplicitMultisample.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/ExplicitMultisample.hs
@@ -55,22 +55,22 @@
 
 {-# NOINLINE glTexRenderbufferNVFunPtr #-}
 
-pattern GL_INT_SAMPLER_RENDERBUFFER_NV = 0x8E57 :: GLenum
+pattern GL_INT_SAMPLER_RENDERBUFFER_NV = 0x8E57
 
-pattern GL_MAX_SAMPLE_MASK_WORDS_NV = 0x8E59 :: GLenum
+pattern GL_MAX_SAMPLE_MASK_WORDS_NV = 0x8E59
 
-pattern GL_SAMPLER_RENDERBUFFER_NV = 0x8E56 :: GLenum
+pattern GL_SAMPLER_RENDERBUFFER_NV = 0x8E56
 
-pattern GL_SAMPLE_MASK_NV = 0x8E51 :: GLenum
+pattern GL_SAMPLE_MASK_NV = 0x8E51
 
-pattern GL_SAMPLE_MASK_VALUE_NV = 0x8E52 :: GLenum
+pattern GL_SAMPLE_MASK_VALUE_NV = 0x8E52
 
-pattern GL_SAMPLE_POSITION_NV = 0x8E50 :: GLenum
+pattern GL_SAMPLE_POSITION_NV = 0x8E50
 
-pattern GL_TEXTURE_BINDING_RENDERBUFFER_NV = 0x8E53 :: GLenum
+pattern GL_TEXTURE_BINDING_RENDERBUFFER_NV = 0x8E53
 
-pattern GL_TEXTURE_RENDERBUFFER_DATA_STORE_BINDING_NV = 0x8E54 :: GLenum
+pattern GL_TEXTURE_RENDERBUFFER_DATA_STORE_BINDING_NV = 0x8E54
 
-pattern GL_TEXTURE_RENDERBUFFER_NV = 0x8E55 :: GLenum
+pattern GL_TEXTURE_RENDERBUFFER_NV = 0x8E55
 
-pattern GL_UNSIGNED_INT_SAMPLER_RENDERBUFFER_NV = 0x8E58 :: GLenum
+pattern GL_UNSIGNED_INT_SAMPLER_RENDERBUFFER_NV = 0x8E58
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/FboColorAttachments.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/FboColorAttachments.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/FboColorAttachments.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/FboColorAttachments.hs
@@ -27,9 +27,8 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
-import Graphics.GL.Raw.Types
 
 gl_NV_fbo_color_attachments :: Bool
 gl_NV_fbo_color_attachments = member "GL_NV_fbo_color_attachments" extensions
 
-pattern GL_MAX_COLOR_ATTACHMENTS_NV = 0x8CDF :: GLenum
+pattern GL_MAX_COLOR_ATTACHMENTS_NV = 0x8CDF
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/Fence.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/Fence.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/Fence.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/Fence.hs
@@ -84,8 +84,8 @@
 
 {-# NOINLINE glTestFenceNVFunPtr #-}
 
-pattern GL_ALL_COMPLETED_NV = 0x84F2 :: GLenum
+pattern GL_ALL_COMPLETED_NV = 0x84F2
 
-pattern GL_FENCE_CONDITION_NV = 0x84F4 :: GLenum
+pattern GL_FENCE_CONDITION_NV = 0x84F4
 
-pattern GL_FENCE_STATUS_NV = 0x84F3 :: GLenum
+pattern GL_FENCE_STATUS_NV = 0x84F3
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/FillRectangle.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/FillRectangle.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/FillRectangle.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/FillRectangle.hs
@@ -10,9 +10,8 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_NV_fill_rectangle :: Bool
 gl_NV_fill_rectangle = member "GL_NV_fill_rectangle" extensions
 
-pattern GL_FILL_RECTANGLE_NV = 0x933C :: GLenum
+pattern GL_FILL_RECTANGLE_NV = 0x933C
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/FloatBuffer.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/FloatBuffer.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/FloatBuffer.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/FloatBuffer.hs
@@ -24,37 +24,36 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_NV_float_buffer :: Bool
 gl_NV_float_buffer = member "GL_NV_float_buffer" extensions
 
-pattern GL_FLOAT_CLEAR_COLOR_VALUE_NV = 0x888D :: GLenum
+pattern GL_FLOAT_CLEAR_COLOR_VALUE_NV = 0x888D
 
-pattern GL_FLOAT_R16_NV = 0x8884 :: GLenum
+pattern GL_FLOAT_R16_NV = 0x8884
 
-pattern GL_FLOAT_R32_NV = 0x8885 :: GLenum
+pattern GL_FLOAT_R32_NV = 0x8885
 
-pattern GL_FLOAT_RG16_NV = 0x8886 :: GLenum
+pattern GL_FLOAT_RG16_NV = 0x8886
 
-pattern GL_FLOAT_RG32_NV = 0x8887 :: GLenum
+pattern GL_FLOAT_RG32_NV = 0x8887
 
-pattern GL_FLOAT_RGB16_NV = 0x8888 :: GLenum
+pattern GL_FLOAT_RGB16_NV = 0x8888
 
-pattern GL_FLOAT_RGB32_NV = 0x8889 :: GLenum
+pattern GL_FLOAT_RGB32_NV = 0x8889
 
-pattern GL_FLOAT_RGBA16_NV = 0x888A :: GLenum
+pattern GL_FLOAT_RGBA16_NV = 0x888A
 
-pattern GL_FLOAT_RGBA32_NV = 0x888B :: GLenum
+pattern GL_FLOAT_RGBA32_NV = 0x888B
 
-pattern GL_FLOAT_RGBA_MODE_NV = 0x888E :: GLenum
+pattern GL_FLOAT_RGBA_MODE_NV = 0x888E
 
-pattern GL_FLOAT_RGBA_NV = 0x8883 :: GLenum
+pattern GL_FLOAT_RGBA_NV = 0x8883
 
-pattern GL_FLOAT_RGB_NV = 0x8882 :: GLenum
+pattern GL_FLOAT_RGB_NV = 0x8882
 
-pattern GL_FLOAT_RG_NV = 0x8881 :: GLenum
+pattern GL_FLOAT_RG_NV = 0x8881
 
-pattern GL_FLOAT_R_NV = 0x8880 :: GLenum
+pattern GL_FLOAT_R_NV = 0x8880
 
-pattern GL_TEXTURE_FLOAT_COMPONENTS_NV = 0x888C :: GLenum
+pattern GL_TEXTURE_FLOAT_COMPONENTS_NV = 0x888C
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/FogDistance.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/FogDistance.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/FogDistance.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/FogDistance.hs
@@ -14,13 +14,12 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
-import Graphics.GL.Raw.Types
 
 gl_NV_fog_distance :: Bool
 gl_NV_fog_distance = member "GL_NV_fog_distance" extensions
 
-pattern GL_EYE_PLANE_ABSOLUTE_NV = 0x855C :: GLenum
+pattern GL_EYE_PLANE_ABSOLUTE_NV = 0x855C
 
-pattern GL_EYE_RADIAL_NV = 0x855B :: GLenum
+pattern GL_EYE_RADIAL_NV = 0x855B
 
-pattern GL_FOG_DISTANCE_MODE_NV = 0x855A :: GLenum
+pattern GL_FOG_DISTANCE_MODE_NV = 0x855A
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/FragmentCoverageToColor.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/FragmentCoverageToColor.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/FragmentCoverageToColor.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/FragmentCoverageToColor.hs
@@ -29,6 +29,6 @@
 
 {-# NOINLINE glFragmentCoverageColorNVFunPtr #-}
 
-pattern GL_FRAGMENT_COVERAGE_COLOR_NV = 0x92DE :: GLenum
+pattern GL_FRAGMENT_COVERAGE_COLOR_NV = 0x92DE
 
-pattern GL_FRAGMENT_COVERAGE_TO_COLOR_NV = 0x92DD :: GLenum
+pattern GL_FRAGMENT_COVERAGE_TO_COLOR_NV = 0x92DD
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/FragmentProgram.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/FragmentProgram.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/FragmentProgram.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/FragmentProgram.hs
@@ -78,14 +78,14 @@
 
 {-# NOINLINE glProgramNamedParameter4fvNVFunPtr #-}
 
-pattern GL_FRAGMENT_PROGRAM_BINDING_NV = 0x8873 :: GLenum
+pattern GL_FRAGMENT_PROGRAM_BINDING_NV = 0x8873
 
-pattern GL_FRAGMENT_PROGRAM_NV = 0x8870 :: GLenum
+pattern GL_FRAGMENT_PROGRAM_NV = 0x8870
 
-pattern GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV = 0x8868 :: GLenum
+pattern GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV = 0x8868
 
-pattern GL_MAX_TEXTURE_COORDS_NV = 0x8871 :: GLenum
+pattern GL_MAX_TEXTURE_COORDS_NV = 0x8871
 
-pattern GL_MAX_TEXTURE_IMAGE_UNITS_NV = 0x8872 :: GLenum
+pattern GL_MAX_TEXTURE_IMAGE_UNITS_NV = 0x8872
 
-pattern GL_PROGRAM_ERROR_STRING_NV = 0x8874 :: GLenum
+pattern GL_PROGRAM_ERROR_STRING_NV = 0x8874
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/FragmentProgram2.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/FragmentProgram2.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/FragmentProgram2.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/FragmentProgram2.hs
@@ -15,13 +15,12 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
-import Graphics.GL.Raw.Types
 
 gl_NV_fragment_program2 :: Bool
 gl_NV_fragment_program2 = member "GL_NV_fragment_program2" extensions
 
-pattern GL_MAX_PROGRAM_IF_DEPTH_NV = 0x88F6 :: GLenum
+pattern GL_MAX_PROGRAM_IF_DEPTH_NV = 0x88F6
 
-pattern GL_MAX_PROGRAM_LOOP_COUNT_NV = 0x88F8 :: GLenum
+pattern GL_MAX_PROGRAM_LOOP_COUNT_NV = 0x88F8
 
-pattern GL_MAX_PROGRAM_LOOP_DEPTH_NV = 0x88F7 :: GLenum
+pattern GL_MAX_PROGRAM_LOOP_DEPTH_NV = 0x88F7
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/FramebufferBlit.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/FramebufferBlit.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/FramebufferBlit.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/FramebufferBlit.hs
@@ -31,10 +31,10 @@
 
 {-# NOINLINE glBlitFramebufferNVFunPtr #-}
 
-pattern GL_DRAW_FRAMEBUFFER_BINDING_NV = 0x8CA6 :: GLenum
+pattern GL_DRAW_FRAMEBUFFER_BINDING_NV = 0x8CA6
 
-pattern GL_DRAW_FRAMEBUFFER_NV = 0x8CA9 :: GLenum
+pattern GL_DRAW_FRAMEBUFFER_NV = 0x8CA9
 
-pattern GL_READ_FRAMEBUFFER_BINDING_NV = 0x8CAA :: GLenum
+pattern GL_READ_FRAMEBUFFER_BINDING_NV = 0x8CAA
 
-pattern GL_READ_FRAMEBUFFER_NV = 0x8CA8 :: GLenum
+pattern GL_READ_FRAMEBUFFER_NV = 0x8CA8
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/FramebufferMixedSamples.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/FramebufferMixedSamples.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/FramebufferMixedSamples.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/FramebufferMixedSamples.hs
@@ -61,16 +61,16 @@
 
 {-# NOINLINE glGetCoverageModulationTableNVFunPtr #-}
 
-pattern GL_COVERAGE_MODULATION_NV = 0x9332 :: GLenum
+pattern GL_COVERAGE_MODULATION_NV = 0x9332
 
-pattern GL_COVERAGE_MODULATION_TABLE_NV = 0x9331 :: GLenum
+pattern GL_COVERAGE_MODULATION_TABLE_NV = 0x9331
 
-pattern GL_COVERAGE_MODULATION_TABLE_SIZE_NV = 0x9333 :: GLenum
+pattern GL_COVERAGE_MODULATION_TABLE_SIZE_NV = 0x9333
 
-pattern GL_DEPTH_SAMPLES_NV = 0x932D :: GLenum
+pattern GL_DEPTH_SAMPLES_NV = 0x932D
 
-pattern GL_MIXED_DEPTH_SAMPLES_SUPPORTED_NV = 0x932F :: GLenum
+pattern GL_MIXED_DEPTH_SAMPLES_SUPPORTED_NV = 0x932F
 
-pattern GL_MIXED_STENCIL_SAMPLES_SUPPORTED_NV = 0x9330 :: GLenum
+pattern GL_MIXED_STENCIL_SAMPLES_SUPPORTED_NV = 0x9330
 
-pattern GL_STENCIL_SAMPLES_NV = 0x932E :: GLenum
+pattern GL_STENCIL_SAMPLES_NV = 0x932E
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/FramebufferMultisample.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/FramebufferMultisample.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/FramebufferMultisample.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/FramebufferMultisample.hs
@@ -30,8 +30,8 @@
 
 {-# NOINLINE glRenderbufferStorageMultisampleNVFunPtr #-}
 
-pattern GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_NV = 0x8D56 :: GLenum
+pattern GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_NV = 0x8D56
 
-pattern GL_MAX_SAMPLES_NV = 0x8D57 :: GLenum
+pattern GL_MAX_SAMPLES_NV = 0x8D57
 
-pattern GL_RENDERBUFFER_SAMPLES_NV = 0x8CAB :: GLenum
+pattern GL_RENDERBUFFER_SAMPLES_NV = 0x8CAB
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/FramebufferMultisampleCoverage.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/FramebufferMultisampleCoverage.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/FramebufferMultisampleCoverage.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/FramebufferMultisampleCoverage.hs
@@ -31,10 +31,10 @@
 
 {-# NOINLINE glRenderbufferStorageMultisampleCoverageNVFunPtr #-}
 
-pattern GL_MAX_MULTISAMPLE_COVERAGE_MODES_NV = 0x8E11 :: GLenum
+pattern GL_MAX_MULTISAMPLE_COVERAGE_MODES_NV = 0x8E11
 
-pattern GL_MULTISAMPLE_COVERAGE_MODES_NV = 0x8E12 :: GLenum
+pattern GL_MULTISAMPLE_COVERAGE_MODES_NV = 0x8E12
 
-pattern GL_RENDERBUFFER_COLOR_SAMPLES_NV = 0x8E10 :: GLenum
+pattern GL_RENDERBUFFER_COLOR_SAMPLES_NV = 0x8E10
 
-pattern GL_RENDERBUFFER_COVERAGE_SAMPLES_NV = 0x8CAB :: GLenum
+pattern GL_RENDERBUFFER_COVERAGE_SAMPLES_NV = 0x8CAB
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/GeometryProgram4.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/GeometryProgram4.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/GeometryProgram4.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/GeometryProgram4.hs
@@ -55,8 +55,8 @@
 
 {-# NOINLINE glProgramVertexLimitNVFunPtr #-}
 
-pattern GL_GEOMETRY_PROGRAM_NV = 0x8C26 :: GLenum
+pattern GL_GEOMETRY_PROGRAM_NV = 0x8C26
 
-pattern GL_MAX_PROGRAM_OUTPUT_VERTICES_NV = 0x8C27 :: GLenum
+pattern GL_MAX_PROGRAM_OUTPUT_VERTICES_NV = 0x8C27
 
-pattern GL_MAX_PROGRAM_TOTAL_OUTPUT_COMPONENTS_NV = 0x8C28 :: GLenum
+pattern GL_MAX_PROGRAM_TOTAL_OUTPUT_COMPONENTS_NV = 0x8C28
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/GpuProgram4.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/GpuProgram4.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/GpuProgram4.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/GpuProgram4.hs
@@ -170,18 +170,18 @@
 
 {-# NOINLINE glProgramLocalParametersI4uivNVFunPtr #-}
 
-pattern GL_MAX_PROGRAM_ATTRIB_COMPONENTS_NV = 0x8908 :: GLenum
+pattern GL_MAX_PROGRAM_ATTRIB_COMPONENTS_NV = 0x8908
 
-pattern GL_MAX_PROGRAM_GENERIC_ATTRIBS_NV = 0x8DA5 :: GLenum
+pattern GL_MAX_PROGRAM_GENERIC_ATTRIBS_NV = 0x8DA5
 
-pattern GL_MAX_PROGRAM_GENERIC_RESULTS_NV = 0x8DA6 :: GLenum
+pattern GL_MAX_PROGRAM_GENERIC_RESULTS_NV = 0x8DA6
 
-pattern GL_MAX_PROGRAM_RESULT_COMPONENTS_NV = 0x8909 :: GLenum
+pattern GL_MAX_PROGRAM_RESULT_COMPONENTS_NV = 0x8909
 
-pattern GL_MAX_PROGRAM_TEXEL_OFFSET_NV = 0x8905 :: GLenum
+pattern GL_MAX_PROGRAM_TEXEL_OFFSET_NV = 0x8905
 
-pattern GL_MIN_PROGRAM_TEXEL_OFFSET_NV = 0x8904 :: GLenum
+pattern GL_MIN_PROGRAM_TEXEL_OFFSET_NV = 0x8904
 
-pattern GL_PROGRAM_ATTRIB_COMPONENTS_NV = 0x8906 :: GLenum
+pattern GL_PROGRAM_ATTRIB_COMPONENTS_NV = 0x8906
 
-pattern GL_PROGRAM_RESULT_COMPONENTS_NV = 0x8907 :: GLenum
+pattern GL_PROGRAM_RESULT_COMPONENTS_NV = 0x8907
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/GpuProgram5.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/GpuProgram5.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/GpuProgram5.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/GpuProgram5.hs
@@ -44,18 +44,18 @@
 
 {-# NOINLINE glProgramSubroutineParametersuivNVFunPtr #-}
 
-pattern GL_FRAGMENT_PROGRAM_INTERPOLATION_OFFSET_BITS_NV = 0x8E5D :: GLenum
+pattern GL_FRAGMENT_PROGRAM_INTERPOLATION_OFFSET_BITS_NV = 0x8E5D
 
-pattern GL_MAX_FRAGMENT_INTERPOLATION_OFFSET_NV = 0x8E5C :: GLenum
+pattern GL_MAX_FRAGMENT_INTERPOLATION_OFFSET_NV = 0x8E5C
 
-pattern GL_MAX_GEOMETRY_PROGRAM_INVOCATIONS_NV = 0x8E5A :: GLenum
+pattern GL_MAX_GEOMETRY_PROGRAM_INVOCATIONS_NV = 0x8E5A
 
-pattern GL_MAX_PROGRAM_SUBROUTINE_NUM_NV = 0x8F45 :: GLenum
+pattern GL_MAX_PROGRAM_SUBROUTINE_NUM_NV = 0x8F45
 
-pattern GL_MAX_PROGRAM_SUBROUTINE_PARAMETERS_NV = 0x8F44 :: GLenum
+pattern GL_MAX_PROGRAM_SUBROUTINE_PARAMETERS_NV = 0x8F44
 
-pattern GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET_NV = 0x8E5F :: GLenum
+pattern GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET_NV = 0x8E5F
 
-pattern GL_MIN_FRAGMENT_INTERPOLATION_OFFSET_NV = 0x8E5B :: GLenum
+pattern GL_MIN_FRAGMENT_INTERPOLATION_OFFSET_NV = 0x8E5B
 
-pattern GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET_NV = 0x8E5E :: GLenum
+pattern GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET_NV = 0x8E5E
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/HalfFloat.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/HalfFloat.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/HalfFloat.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/HalfFloat.hs
@@ -433,4 +433,4 @@
 
 {-# NOINLINE glVertexWeighthvNVFunPtr #-}
 
-pattern GL_HALF_FLOAT_NV = 0x140B :: GLenum
+pattern GL_HALF_FLOAT_NV = 0x140B
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/InstancedArrays.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/InstancedArrays.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/InstancedArrays.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/InstancedArrays.hs
@@ -28,4 +28,4 @@
 
 {-# NOINLINE glVertexAttribDivisorNVFunPtr #-}
 
-pattern GL_VERTEX_ATTRIB_ARRAY_DIVISOR_NV = 0x88FE :: GLenum
+pattern GL_VERTEX_ATTRIB_ARRAY_DIVISOR_NV = 0x88FE
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/InternalformatSampleQuery.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/InternalformatSampleQuery.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/InternalformatSampleQuery.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/InternalformatSampleQuery.hs
@@ -35,10 +35,10 @@
 
 {-# NOINLINE glGetInternalformatSampleivNVFunPtr #-}
 
-pattern GL_CONFORMANT_NV = 0x9374 :: GLenum
+pattern GL_CONFORMANT_NV = 0x9374
 
-pattern GL_MULTISAMPLES_NV = 0x9371 :: GLenum
+pattern GL_MULTISAMPLES_NV = 0x9371
 
-pattern GL_SUPERSAMPLE_SCALE_X_NV = 0x9372 :: GLenum
+pattern GL_SUPERSAMPLE_SCALE_X_NV = 0x9372
 
-pattern GL_SUPERSAMPLE_SCALE_Y_NV = 0x9373 :: GLenum
+pattern GL_SUPERSAMPLE_SCALE_Y_NV = 0x9373
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/LightMaxExponent.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/LightMaxExponent.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/LightMaxExponent.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/LightMaxExponent.hs
@@ -11,11 +11,10 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_NV_light_max_exponent :: Bool
 gl_NV_light_max_exponent = member "GL_NV_light_max_exponent" extensions
 
-pattern GL_MAX_SHININESS_NV = 0x8504 :: GLenum
+pattern GL_MAX_SHININESS_NV = 0x8504
 
-pattern GL_MAX_SPOT_EXPONENT_NV = 0x8505 :: GLenum
+pattern GL_MAX_SPOT_EXPONENT_NV = 0x8505
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/MultisampleFilterHint.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/MultisampleFilterHint.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/MultisampleFilterHint.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/MultisampleFilterHint.hs
@@ -10,9 +10,8 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_NV_multisample_filter_hint :: Bool
 gl_NV_multisample_filter_hint = member "GL_NV_multisample_filter_hint" extensions
 
-pattern GL_MULTISAMPLE_FILTER_HINT_NV = 0x8534 :: GLenum
+pattern GL_MULTISAMPLE_FILTER_HINT_NV = 0x8534
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/NonSquareMatrices.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/NonSquareMatrices.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/NonSquareMatrices.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/NonSquareMatrices.hs
@@ -78,14 +78,14 @@
 
 {-# NOINLINE glUniformMatrix4x3fvNVFunPtr #-}
 
-pattern GL_FLOAT_MAT2x3_NV = 0x8B65 :: GLenum
+pattern GL_FLOAT_MAT2x3_NV = 0x8B65
 
-pattern GL_FLOAT_MAT2x4_NV = 0x8B66 :: GLenum
+pattern GL_FLOAT_MAT2x4_NV = 0x8B66
 
-pattern GL_FLOAT_MAT3x2_NV = 0x8B67 :: GLenum
+pattern GL_FLOAT_MAT3x2_NV = 0x8B67
 
-pattern GL_FLOAT_MAT3x4_NV = 0x8B68 :: GLenum
+pattern GL_FLOAT_MAT3x4_NV = 0x8B68
 
-pattern GL_FLOAT_MAT4x2_NV = 0x8B69 :: GLenum
+pattern GL_FLOAT_MAT4x2_NV = 0x8B69
 
-pattern GL_FLOAT_MAT4x3_NV = 0x8B6A :: GLenum
+pattern GL_FLOAT_MAT4x3_NV = 0x8B6A
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/OcclusionQuery.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/OcclusionQuery.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/OcclusionQuery.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/OcclusionQuery.hs
@@ -85,10 +85,10 @@
 
 {-# NOINLINE glIsOcclusionQueryNVFunPtr #-}
 
-pattern GL_CURRENT_OCCLUSION_QUERY_ID_NV = 0x8865 :: GLenum
+pattern GL_CURRENT_OCCLUSION_QUERY_ID_NV = 0x8865
 
-pattern GL_PIXEL_COUNTER_BITS_NV = 0x8864 :: GLenum
+pattern GL_PIXEL_COUNTER_BITS_NV = 0x8864
 
-pattern GL_PIXEL_COUNT_AVAILABLE_NV = 0x8867 :: GLenum
+pattern GL_PIXEL_COUNT_AVAILABLE_NV = 0x8867
 
-pattern GL_PIXEL_COUNT_NV = 0x8866 :: GLenum
+pattern GL_PIXEL_COUNT_NV = 0x8866
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/PackedDepthStencil.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/PackedDepthStencil.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/PackedDepthStencil.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/PackedDepthStencil.hs
@@ -11,11 +11,10 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_NV_packed_depth_stencil :: Bool
 gl_NV_packed_depth_stencil = member "GL_NV_packed_depth_stencil" extensions
 
-pattern GL_DEPTH_STENCIL_NV = 0x84F9 :: GLenum
+pattern GL_DEPTH_STENCIL_NV = 0x84F9
 
-pattern GL_UNSIGNED_INT_24_8_NV = 0x84FA :: GLenum
+pattern GL_UNSIGNED_INT_24_8_NV = 0x84FA
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/ParameterBufferObject.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/ParameterBufferObject.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/ParameterBufferObject.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/ParameterBufferObject.hs
@@ -50,12 +50,12 @@
 
 {-# NOINLINE glProgramBufferParametersfvNVFunPtr #-}
 
-pattern GL_FRAGMENT_PROGRAM_PARAMETER_BUFFER_NV = 0x8DA4 :: GLenum
+pattern GL_FRAGMENT_PROGRAM_PARAMETER_BUFFER_NV = 0x8DA4
 
-pattern GL_GEOMETRY_PROGRAM_PARAMETER_BUFFER_NV = 0x8DA3 :: GLenum
+pattern GL_GEOMETRY_PROGRAM_PARAMETER_BUFFER_NV = 0x8DA3
 
-pattern GL_MAX_PROGRAM_PARAMETER_BUFFER_BINDINGS_NV = 0x8DA0 :: GLenum
+pattern GL_MAX_PROGRAM_PARAMETER_BUFFER_BINDINGS_NV = 0x8DA0
 
-pattern GL_MAX_PROGRAM_PARAMETER_BUFFER_SIZE_NV = 0x8DA1 :: GLenum
+pattern GL_MAX_PROGRAM_PARAMETER_BUFFER_SIZE_NV = 0x8DA1
 
-pattern GL_VERTEX_PROGRAM_PARAMETER_BUFFER_NV = 0x8DA2 :: GLenum
+pattern GL_VERTEX_PROGRAM_PARAMETER_BUFFER_NV = 0x8DA2
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/PathRendering.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/PathRendering.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/PathRendering.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/PathRendering.hs
@@ -759,324 +759,324 @@
 
 {-# NOINLINE glWeightPathsNVFunPtr #-}
 
-pattern GL_2_BYTES_NV = 0x1407 :: GLenum
+pattern GL_2_BYTES_NV = 0x1407
 
-pattern GL_3_BYTES_NV = 0x1408 :: GLenum
+pattern GL_3_BYTES_NV = 0x1408
 
-pattern GL_4_BYTES_NV = 0x1409 :: GLenum
+pattern GL_4_BYTES_NV = 0x1409
 
-pattern GL_ACCUM_ADJACENT_PAIRS_NV = 0x90AD :: GLenum
+pattern GL_ACCUM_ADJACENT_PAIRS_NV = 0x90AD
 
-pattern GL_ADJACENT_PAIRS_NV = 0x90AE :: GLenum
+pattern GL_ADJACENT_PAIRS_NV = 0x90AE
 
-pattern GL_AFFINE_2D_NV = 0x9092 :: GLenum
+pattern GL_AFFINE_2D_NV = 0x9092
 
-pattern GL_AFFINE_3D_NV = 0x9094 :: GLenum
+pattern GL_AFFINE_3D_NV = 0x9094
 
-pattern GL_ARC_TO_NV = 0xFE :: GLenum
+pattern GL_ARC_TO_NV = 0xFE
 
-pattern GL_BEVEL_NV = 0x90A6 :: GLenum
+pattern GL_BEVEL_NV = 0x90A6
 
-pattern GL_BOLD_BIT_NV = 0x01 :: GLenum
+pattern GL_BOLD_BIT_NV = 0x01
 
-pattern GL_BOUNDING_BOX_NV = 0x908D :: GLenum
+pattern GL_BOUNDING_BOX_NV = 0x908D
 
-pattern GL_BOUNDING_BOX_OF_BOUNDING_BOXES_NV = 0x909C :: GLenum
+pattern GL_BOUNDING_BOX_OF_BOUNDING_BOXES_NV = 0x909C
 
-pattern GL_CIRCULAR_CCW_ARC_TO_NV = 0xF8 :: GLenum
+pattern GL_CIRCULAR_CCW_ARC_TO_NV = 0xF8
 
-pattern GL_CIRCULAR_CW_ARC_TO_NV = 0xFA :: GLenum
+pattern GL_CIRCULAR_CW_ARC_TO_NV = 0xFA
 
-pattern GL_CIRCULAR_TANGENT_ARC_TO_NV = 0xFC :: GLenum
+pattern GL_CIRCULAR_TANGENT_ARC_TO_NV = 0xFC
 
-pattern GL_CLOSE_PATH_NV = 0x00 :: GLenum
+pattern GL_CLOSE_PATH_NV = 0x00
 
-pattern GL_CONIC_CURVE_TO_NV = 0x1A :: GLenum
+pattern GL_CONIC_CURVE_TO_NV = 0x1A
 
-pattern GL_CONSTANT_NV = 0x8576 :: GLenum
+pattern GL_CONSTANT_NV = 0x8576
 
-pattern GL_CONVEX_HULL_NV = 0x908B :: GLenum
+pattern GL_CONVEX_HULL_NV = 0x908B
 
-pattern GL_COUNT_DOWN_NV = 0x9089 :: GLenum
+pattern GL_COUNT_DOWN_NV = 0x9089
 
-pattern GL_COUNT_UP_NV = 0x9088 :: GLenum
+pattern GL_COUNT_UP_NV = 0x9088
 
-pattern GL_CUBIC_CURVE_TO_NV = 0x0C :: GLenum
+pattern GL_CUBIC_CURVE_TO_NV = 0x0C
 
-pattern GL_DUP_FIRST_CUBIC_CURVE_TO_NV = 0xF2 :: GLenum
+pattern GL_DUP_FIRST_CUBIC_CURVE_TO_NV = 0xF2
 
-pattern GL_DUP_LAST_CUBIC_CURVE_TO_NV = 0xF4 :: GLenum
+pattern GL_DUP_LAST_CUBIC_CURVE_TO_NV = 0xF4
 
-pattern GL_EYE_LINEAR_NV = 0x2400 :: GLenum
+pattern GL_EYE_LINEAR_NV = 0x2400
 
-pattern GL_FILE_NAME_NV = 0x9074 :: GLenum
+pattern GL_FILE_NAME_NV = 0x9074
 
-pattern GL_FIRST_TO_REST_NV = 0x90AF :: GLenum
+pattern GL_FIRST_TO_REST_NV = 0x90AF
 
-pattern GL_FONT_ASCENDER_BIT_NV = 0x00200000 :: GLenum
+pattern GL_FONT_ASCENDER_BIT_NV = 0x00200000
 
-pattern GL_FONT_DESCENDER_BIT_NV = 0x00400000 :: GLenum
+pattern GL_FONT_DESCENDER_BIT_NV = 0x00400000
 
-pattern GL_FONT_GLYPHS_AVAILABLE_NV = 0x9368 :: GLenum
+pattern GL_FONT_GLYPHS_AVAILABLE_NV = 0x9368
 
-pattern GL_FONT_HAS_KERNING_BIT_NV = 0x10000000 :: GLenum
+pattern GL_FONT_HAS_KERNING_BIT_NV = 0x10000000
 
-pattern GL_FONT_HEIGHT_BIT_NV = 0x00800000 :: GLenum
+pattern GL_FONT_HEIGHT_BIT_NV = 0x00800000
 
-pattern GL_FONT_MAX_ADVANCE_HEIGHT_BIT_NV = 0x02000000 :: GLenum
+pattern GL_FONT_MAX_ADVANCE_HEIGHT_BIT_NV = 0x02000000
 
-pattern GL_FONT_MAX_ADVANCE_WIDTH_BIT_NV = 0x01000000 :: GLenum
+pattern GL_FONT_MAX_ADVANCE_WIDTH_BIT_NV = 0x01000000
 
-pattern GL_FONT_NUM_GLYPH_INDICES_BIT_NV = 0x20000000 :: GLenum
+pattern GL_FONT_NUM_GLYPH_INDICES_BIT_NV = 0x20000000
 
-pattern GL_FONT_TARGET_UNAVAILABLE_NV = 0x9369 :: GLenum
+pattern GL_FONT_TARGET_UNAVAILABLE_NV = 0x9369
 
-pattern GL_FONT_UNAVAILABLE_NV = 0x936A :: GLenum
+pattern GL_FONT_UNAVAILABLE_NV = 0x936A
 
-pattern GL_FONT_UNDERLINE_POSITION_BIT_NV = 0x04000000 :: GLenum
+pattern GL_FONT_UNDERLINE_POSITION_BIT_NV = 0x04000000
 
-pattern GL_FONT_UNDERLINE_THICKNESS_BIT_NV = 0x08000000 :: GLenum
+pattern GL_FONT_UNDERLINE_THICKNESS_BIT_NV = 0x08000000
 
-pattern GL_FONT_UNINTELLIGIBLE_NV = 0x936B :: GLenum
+pattern GL_FONT_UNINTELLIGIBLE_NV = 0x936B
 
-pattern GL_FONT_UNITS_PER_EM_BIT_NV = 0x00100000 :: GLenum
+pattern GL_FONT_UNITS_PER_EM_BIT_NV = 0x00100000
 
-pattern GL_FONT_X_MAX_BOUNDS_BIT_NV = 0x00040000 :: GLenum
+pattern GL_FONT_X_MAX_BOUNDS_BIT_NV = 0x00040000
 
-pattern GL_FONT_X_MIN_BOUNDS_BIT_NV = 0x00010000 :: GLenum
+pattern GL_FONT_X_MIN_BOUNDS_BIT_NV = 0x00010000
 
-pattern GL_FONT_Y_MAX_BOUNDS_BIT_NV = 0x00080000 :: GLenum
+pattern GL_FONT_Y_MAX_BOUNDS_BIT_NV = 0x00080000
 
-pattern GL_FONT_Y_MIN_BOUNDS_BIT_NV = 0x00020000 :: GLenum
+pattern GL_FONT_Y_MIN_BOUNDS_BIT_NV = 0x00020000
 
-pattern GL_FRAGMENT_INPUT_NV = 0x936D :: GLenum
+pattern GL_FRAGMENT_INPUT_NV = 0x936D
 
-pattern GL_GLYPH_HAS_KERNING_BIT_NV = 0x100 :: GLenum
+pattern GL_GLYPH_HAS_KERNING_BIT_NV = 0x100
 
-pattern GL_GLYPH_HEIGHT_BIT_NV = 0x02 :: GLenum
+pattern GL_GLYPH_HEIGHT_BIT_NV = 0x02
 
-pattern GL_GLYPH_HORIZONTAL_BEARING_ADVANCE_BIT_NV = 0x10 :: GLenum
+pattern GL_GLYPH_HORIZONTAL_BEARING_ADVANCE_BIT_NV = 0x10
 
-pattern GL_GLYPH_HORIZONTAL_BEARING_X_BIT_NV = 0x04 :: GLenum
+pattern GL_GLYPH_HORIZONTAL_BEARING_X_BIT_NV = 0x04
 
-pattern GL_GLYPH_HORIZONTAL_BEARING_Y_BIT_NV = 0x08 :: GLenum
+pattern GL_GLYPH_HORIZONTAL_BEARING_Y_BIT_NV = 0x08
 
-pattern GL_GLYPH_VERTICAL_BEARING_ADVANCE_BIT_NV = 0x80 :: GLenum
+pattern GL_GLYPH_VERTICAL_BEARING_ADVANCE_BIT_NV = 0x80
 
-pattern GL_GLYPH_VERTICAL_BEARING_X_BIT_NV = 0x20 :: GLenum
+pattern GL_GLYPH_VERTICAL_BEARING_X_BIT_NV = 0x20
 
-pattern GL_GLYPH_VERTICAL_BEARING_Y_BIT_NV = 0x40 :: GLenum
+pattern GL_GLYPH_VERTICAL_BEARING_Y_BIT_NV = 0x40
 
-pattern GL_GLYPH_WIDTH_BIT_NV = 0x01 :: GLenum
+pattern GL_GLYPH_WIDTH_BIT_NV = 0x01
 
-pattern GL_HORIZONTAL_LINE_TO_NV = 0x06 :: GLenum
+pattern GL_HORIZONTAL_LINE_TO_NV = 0x06
 
-pattern GL_ITALIC_BIT_NV = 0x02 :: GLenum
+pattern GL_ITALIC_BIT_NV = 0x02
 
-pattern GL_LARGE_CCW_ARC_TO_NV = 0x16 :: GLenum
+pattern GL_LARGE_CCW_ARC_TO_NV = 0x16
 
-pattern GL_LARGE_CW_ARC_TO_NV = 0x18 :: GLenum
+pattern GL_LARGE_CW_ARC_TO_NV = 0x18
 
-pattern GL_LINE_TO_NV = 0x04 :: GLenum
+pattern GL_LINE_TO_NV = 0x04
 
-pattern GL_MITER_REVERT_NV = 0x90A7 :: GLenum
+pattern GL_MITER_REVERT_NV = 0x90A7
 
-pattern GL_MITER_TRUNCATE_NV = 0x90A8 :: GLenum
+pattern GL_MITER_TRUNCATE_NV = 0x90A8
 
-pattern GL_MOVE_TO_CONTINUES_NV = 0x90B6 :: GLenum
+pattern GL_MOVE_TO_CONTINUES_NV = 0x90B6
 
-pattern GL_MOVE_TO_NV = 0x02 :: GLenum
+pattern GL_MOVE_TO_NV = 0x02
 
-pattern GL_MOVE_TO_RESETS_NV = 0x90B5 :: GLenum
+pattern GL_MOVE_TO_RESETS_NV = 0x90B5
 
-pattern GL_OBJECT_LINEAR_NV = 0x2401 :: GLenum
+pattern GL_OBJECT_LINEAR_NV = 0x2401
 
-pattern GL_PATH_CLIENT_LENGTH_NV = 0x907F :: GLenum
+pattern GL_PATH_CLIENT_LENGTH_NV = 0x907F
 
-pattern GL_PATH_COMMAND_COUNT_NV = 0x909D :: GLenum
+pattern GL_PATH_COMMAND_COUNT_NV = 0x909D
 
-pattern GL_PATH_COMPUTED_LENGTH_NV = 0x90A0 :: GLenum
+pattern GL_PATH_COMPUTED_LENGTH_NV = 0x90A0
 
-pattern GL_PATH_COORD_COUNT_NV = 0x909E :: GLenum
+pattern GL_PATH_COORD_COUNT_NV = 0x909E
 
-pattern GL_PATH_COVER_DEPTH_FUNC_NV = 0x90BF :: GLenum
+pattern GL_PATH_COVER_DEPTH_FUNC_NV = 0x90BF
 
-pattern GL_PATH_DASH_ARRAY_COUNT_NV = 0x909F :: GLenum
+pattern GL_PATH_DASH_ARRAY_COUNT_NV = 0x909F
 
-pattern GL_PATH_DASH_CAPS_NV = 0x907B :: GLenum
+pattern GL_PATH_DASH_CAPS_NV = 0x907B
 
-pattern GL_PATH_DASH_OFFSET_NV = 0x907E :: GLenum
+pattern GL_PATH_DASH_OFFSET_NV = 0x907E
 
-pattern GL_PATH_DASH_OFFSET_RESET_NV = 0x90B4 :: GLenum
+pattern GL_PATH_DASH_OFFSET_RESET_NV = 0x90B4
 
-pattern GL_PATH_END_CAPS_NV = 0x9076 :: GLenum
+pattern GL_PATH_END_CAPS_NV = 0x9076
 
-pattern GL_PATH_ERROR_POSITION_NV = 0x90AB :: GLenum
+pattern GL_PATH_ERROR_POSITION_NV = 0x90AB
 
-pattern GL_PATH_FILL_BOUNDING_BOX_NV = 0x90A1 :: GLenum
+pattern GL_PATH_FILL_BOUNDING_BOX_NV = 0x90A1
 
-pattern GL_PATH_FILL_COVER_MODE_NV = 0x9082 :: GLenum
+pattern GL_PATH_FILL_COVER_MODE_NV = 0x9082
 
-pattern GL_PATH_FILL_MASK_NV = 0x9081 :: GLenum
+pattern GL_PATH_FILL_MASK_NV = 0x9081
 
-pattern GL_PATH_FILL_MODE_NV = 0x9080 :: GLenum
+pattern GL_PATH_FILL_MODE_NV = 0x9080
 
-pattern GL_PATH_FOG_GEN_MODE_NV = 0x90AC :: GLenum
+pattern GL_PATH_FOG_GEN_MODE_NV = 0x90AC
 
-pattern GL_PATH_FORMAT_PS_NV = 0x9071 :: GLenum
+pattern GL_PATH_FORMAT_PS_NV = 0x9071
 
-pattern GL_PATH_FORMAT_SVG_NV = 0x9070 :: GLenum
+pattern GL_PATH_FORMAT_SVG_NV = 0x9070
 
-pattern GL_PATH_GEN_COEFF_NV = 0x90B1 :: GLenum
+pattern GL_PATH_GEN_COEFF_NV = 0x90B1
 
-pattern GL_PATH_GEN_COLOR_FORMAT_NV = 0x90B2 :: GLenum
+pattern GL_PATH_GEN_COLOR_FORMAT_NV = 0x90B2
 
-pattern GL_PATH_GEN_COMPONENTS_NV = 0x90B3 :: GLenum
+pattern GL_PATH_GEN_COMPONENTS_NV = 0x90B3
 
-pattern GL_PATH_GEN_MODE_NV = 0x90B0 :: GLenum
+pattern GL_PATH_GEN_MODE_NV = 0x90B0
 
-pattern GL_PATH_INITIAL_DASH_CAP_NV = 0x907C :: GLenum
+pattern GL_PATH_INITIAL_DASH_CAP_NV = 0x907C
 
-pattern GL_PATH_INITIAL_END_CAP_NV = 0x9077 :: GLenum
+pattern GL_PATH_INITIAL_END_CAP_NV = 0x9077
 
-pattern GL_PATH_JOIN_STYLE_NV = 0x9079 :: GLenum
+pattern GL_PATH_JOIN_STYLE_NV = 0x9079
 
-pattern GL_PATH_MAX_MODELVIEW_STACK_DEPTH_NV = 0x0D36 :: GLenum
+pattern GL_PATH_MAX_MODELVIEW_STACK_DEPTH_NV = 0x0D36
 
-pattern GL_PATH_MAX_PROJECTION_STACK_DEPTH_NV = 0x0D38 :: GLenum
+pattern GL_PATH_MAX_PROJECTION_STACK_DEPTH_NV = 0x0D38
 
-pattern GL_PATH_MITER_LIMIT_NV = 0x907A :: GLenum
+pattern GL_PATH_MITER_LIMIT_NV = 0x907A
 
-pattern GL_PATH_MODELVIEW_MATRIX_NV = 0x0BA6 :: GLenum
+pattern GL_PATH_MODELVIEW_MATRIX_NV = 0x0BA6
 
-pattern GL_PATH_MODELVIEW_NV = 0x1700 :: GLenum
+pattern GL_PATH_MODELVIEW_NV = 0x1700
 
-pattern GL_PATH_MODELVIEW_STACK_DEPTH_NV = 0x0BA3 :: GLenum
+pattern GL_PATH_MODELVIEW_STACK_DEPTH_NV = 0x0BA3
 
-pattern GL_PATH_OBJECT_BOUNDING_BOX_NV = 0x908A :: GLenum
+pattern GL_PATH_OBJECT_BOUNDING_BOX_NV = 0x908A
 
-pattern GL_PATH_PROJECTION_MATRIX_NV = 0x0BA7 :: GLenum
+pattern GL_PATH_PROJECTION_MATRIX_NV = 0x0BA7
 
-pattern GL_PATH_PROJECTION_NV = 0x1701 :: GLenum
+pattern GL_PATH_PROJECTION_NV = 0x1701
 
-pattern GL_PATH_PROJECTION_STACK_DEPTH_NV = 0x0BA4 :: GLenum
+pattern GL_PATH_PROJECTION_STACK_DEPTH_NV = 0x0BA4
 
-pattern GL_PATH_STENCIL_DEPTH_OFFSET_FACTOR_NV = 0x90BD :: GLenum
+pattern GL_PATH_STENCIL_DEPTH_OFFSET_FACTOR_NV = 0x90BD
 
-pattern GL_PATH_STENCIL_DEPTH_OFFSET_UNITS_NV = 0x90BE :: GLenum
+pattern GL_PATH_STENCIL_DEPTH_OFFSET_UNITS_NV = 0x90BE
 
-pattern GL_PATH_STENCIL_FUNC_NV = 0x90B7 :: GLenum
+pattern GL_PATH_STENCIL_FUNC_NV = 0x90B7
 
-pattern GL_PATH_STENCIL_REF_NV = 0x90B8 :: GLenum
+pattern GL_PATH_STENCIL_REF_NV = 0x90B8
 
-pattern GL_PATH_STENCIL_VALUE_MASK_NV = 0x90B9 :: GLenum
+pattern GL_PATH_STENCIL_VALUE_MASK_NV = 0x90B9
 
-pattern GL_PATH_STROKE_BOUNDING_BOX_NV = 0x90A2 :: GLenum
+pattern GL_PATH_STROKE_BOUNDING_BOX_NV = 0x90A2
 
-pattern GL_PATH_STROKE_COVER_MODE_NV = 0x9083 :: GLenum
+pattern GL_PATH_STROKE_COVER_MODE_NV = 0x9083
 
-pattern GL_PATH_STROKE_MASK_NV = 0x9084 :: GLenum
+pattern GL_PATH_STROKE_MASK_NV = 0x9084
 
-pattern GL_PATH_STROKE_WIDTH_NV = 0x9075 :: GLenum
+pattern GL_PATH_STROKE_WIDTH_NV = 0x9075
 
-pattern GL_PATH_TERMINAL_DASH_CAP_NV = 0x907D :: GLenum
+pattern GL_PATH_TERMINAL_DASH_CAP_NV = 0x907D
 
-pattern GL_PATH_TERMINAL_END_CAP_NV = 0x9078 :: GLenum
+pattern GL_PATH_TERMINAL_END_CAP_NV = 0x9078
 
-pattern GL_PATH_TRANSPOSE_MODELVIEW_MATRIX_NV = 0x84E3 :: GLenum
+pattern GL_PATH_TRANSPOSE_MODELVIEW_MATRIX_NV = 0x84E3
 
-pattern GL_PATH_TRANSPOSE_PROJECTION_MATRIX_NV = 0x84E4 :: GLenum
+pattern GL_PATH_TRANSPOSE_PROJECTION_MATRIX_NV = 0x84E4
 
-pattern GL_QUADRATIC_CURVE_TO_NV = 0x0A :: GLenum
+pattern GL_QUADRATIC_CURVE_TO_NV = 0x0A
 
-pattern GL_RECT_NV = 0xF6 :: GLenum
+pattern GL_RECT_NV = 0xF6
 
-pattern GL_RELATIVE_ARC_TO_NV = 0xFF :: GLenum
+pattern GL_RELATIVE_ARC_TO_NV = 0xFF
 
-pattern GL_RELATIVE_CONIC_CURVE_TO_NV = 0x1B :: GLenum
+pattern GL_RELATIVE_CONIC_CURVE_TO_NV = 0x1B
 
-pattern GL_RELATIVE_CUBIC_CURVE_TO_NV = 0x0D :: GLenum
+pattern GL_RELATIVE_CUBIC_CURVE_TO_NV = 0x0D
 
-pattern GL_RELATIVE_HORIZONTAL_LINE_TO_NV = 0x07 :: GLenum
+pattern GL_RELATIVE_HORIZONTAL_LINE_TO_NV = 0x07
 
-pattern GL_RELATIVE_LARGE_CCW_ARC_TO_NV = 0x17 :: GLenum
+pattern GL_RELATIVE_LARGE_CCW_ARC_TO_NV = 0x17
 
-pattern GL_RELATIVE_LARGE_CW_ARC_TO_NV = 0x19 :: GLenum
+pattern GL_RELATIVE_LARGE_CW_ARC_TO_NV = 0x19
 
-pattern GL_RELATIVE_LINE_TO_NV = 0x05 :: GLenum
+pattern GL_RELATIVE_LINE_TO_NV = 0x05
 
-pattern GL_RELATIVE_MOVE_TO_NV = 0x03 :: GLenum
+pattern GL_RELATIVE_MOVE_TO_NV = 0x03
 
-pattern GL_RELATIVE_QUADRATIC_CURVE_TO_NV = 0x0B :: GLenum
+pattern GL_RELATIVE_QUADRATIC_CURVE_TO_NV = 0x0B
 
-pattern GL_RELATIVE_RECT_NV = 0xF7 :: GLenum
+pattern GL_RELATIVE_RECT_NV = 0xF7
 
-pattern GL_RELATIVE_ROUNDED_RECT2_NV = 0xEB :: GLenum
+pattern GL_RELATIVE_ROUNDED_RECT2_NV = 0xEB
 
-pattern GL_RELATIVE_ROUNDED_RECT4_NV = 0xED :: GLenum
+pattern GL_RELATIVE_ROUNDED_RECT4_NV = 0xED
 
-pattern GL_RELATIVE_ROUNDED_RECT8_NV = 0xEF :: GLenum
+pattern GL_RELATIVE_ROUNDED_RECT8_NV = 0xEF
 
-pattern GL_RELATIVE_ROUNDED_RECT_NV = 0xE9 :: GLenum
+pattern GL_RELATIVE_ROUNDED_RECT_NV = 0xE9
 
-pattern GL_RELATIVE_SMALL_CCW_ARC_TO_NV = 0x13 :: GLenum
+pattern GL_RELATIVE_SMALL_CCW_ARC_TO_NV = 0x13
 
-pattern GL_RELATIVE_SMALL_CW_ARC_TO_NV = 0x15 :: GLenum
+pattern GL_RELATIVE_SMALL_CW_ARC_TO_NV = 0x15
 
-pattern GL_RELATIVE_SMOOTH_CUBIC_CURVE_TO_NV = 0x11 :: GLenum
+pattern GL_RELATIVE_SMOOTH_CUBIC_CURVE_TO_NV = 0x11
 
-pattern GL_RELATIVE_SMOOTH_QUADRATIC_CURVE_TO_NV = 0x0F :: GLenum
+pattern GL_RELATIVE_SMOOTH_QUADRATIC_CURVE_TO_NV = 0x0F
 
-pattern GL_RELATIVE_VERTICAL_LINE_TO_NV = 0x09 :: GLenum
+pattern GL_RELATIVE_VERTICAL_LINE_TO_NV = 0x09
 
-pattern GL_RESTART_PATH_NV = 0xF0 :: GLenum
+pattern GL_RESTART_PATH_NV = 0xF0
 
-pattern GL_ROUNDED_RECT2_NV = 0xEA :: GLenum
+pattern GL_ROUNDED_RECT2_NV = 0xEA
 
-pattern GL_ROUNDED_RECT4_NV = 0xEC :: GLenum
+pattern GL_ROUNDED_RECT4_NV = 0xEC
 
-pattern GL_ROUNDED_RECT8_NV = 0xEE :: GLenum
+pattern GL_ROUNDED_RECT8_NV = 0xEE
 
-pattern GL_ROUNDED_RECT_NV = 0xE8 :: GLenum
+pattern GL_ROUNDED_RECT_NV = 0xE8
 
-pattern GL_ROUND_NV = 0x90A4 :: GLenum
+pattern GL_ROUND_NV = 0x90A4
 
-pattern GL_SKIP_MISSING_GLYPH_NV = 0x90A9 :: GLenum
+pattern GL_SKIP_MISSING_GLYPH_NV = 0x90A9
 
-pattern GL_SMALL_CCW_ARC_TO_NV = 0x12 :: GLenum
+pattern GL_SMALL_CCW_ARC_TO_NV = 0x12
 
-pattern GL_SMALL_CW_ARC_TO_NV = 0x14 :: GLenum
+pattern GL_SMALL_CW_ARC_TO_NV = 0x14
 
-pattern GL_SMOOTH_CUBIC_CURVE_TO_NV = 0x10 :: GLenum
+pattern GL_SMOOTH_CUBIC_CURVE_TO_NV = 0x10
 
-pattern GL_SMOOTH_QUADRATIC_CURVE_TO_NV = 0x0E :: GLenum
+pattern GL_SMOOTH_QUADRATIC_CURVE_TO_NV = 0x0E
 
-pattern GL_SQUARE_NV = 0x90A3 :: GLenum
+pattern GL_SQUARE_NV = 0x90A3
 
-pattern GL_STANDARD_FONT_FORMAT_NV = 0x936C :: GLenum
+pattern GL_STANDARD_FONT_FORMAT_NV = 0x936C
 
-pattern GL_STANDARD_FONT_NAME_NV = 0x9072 :: GLenum
+pattern GL_STANDARD_FONT_NAME_NV = 0x9072
 
-pattern GL_SYSTEM_FONT_NAME_NV = 0x9073 :: GLenum
+pattern GL_SYSTEM_FONT_NAME_NV = 0x9073
 
-pattern GL_TRANSLATE_2D_NV = 0x9090 :: GLenum
+pattern GL_TRANSLATE_2D_NV = 0x9090
 
-pattern GL_TRANSLATE_3D_NV = 0x9091 :: GLenum
+pattern GL_TRANSLATE_3D_NV = 0x9091
 
-pattern GL_TRANSLATE_X_NV = 0x908E :: GLenum
+pattern GL_TRANSLATE_X_NV = 0x908E
 
-pattern GL_TRANSLATE_Y_NV = 0x908F :: GLenum
+pattern GL_TRANSLATE_Y_NV = 0x908F
 
-pattern GL_TRANSPOSE_AFFINE_2D_NV = 0x9096 :: GLenum
+pattern GL_TRANSPOSE_AFFINE_2D_NV = 0x9096
 
-pattern GL_TRANSPOSE_AFFINE_3D_NV = 0x9098 :: GLenum
+pattern GL_TRANSPOSE_AFFINE_3D_NV = 0x9098
 
-pattern GL_TRIANGULAR_NV = 0x90A5 :: GLenum
+pattern GL_TRIANGULAR_NV = 0x90A5
 
-pattern GL_USE_MISSING_GLYPH_NV = 0x90AA :: GLenum
+pattern GL_USE_MISSING_GLYPH_NV = 0x90AA
 
-pattern GL_UTF16_NV = 0x909B :: GLenum
+pattern GL_UTF16_NV = 0x909B
 
-pattern GL_UTF8_NV = 0x909A :: GLenum
+pattern GL_UTF8_NV = 0x909A
 
-pattern GL_VERTICAL_LINE_TO_NV = 0x08 :: GLenum
+pattern GL_VERTICAL_LINE_TO_NV = 0x08
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/PathRenderingSharedEdge.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/PathRenderingSharedEdge.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/PathRenderingSharedEdge.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/PathRenderingSharedEdge.hs
@@ -10,9 +10,8 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_NV_path_rendering_shared_edge :: Bool
 gl_NV_path_rendering_shared_edge = member "GL_NV_path_rendering_shared_edge" extensions
 
-pattern GL_SHARED_EDGE_NV = 0xC0 :: GLenum
+pattern GL_SHARED_EDGE_NV = 0xC0
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/PixelDataRange.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/PixelDataRange.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/PixelDataRange.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/PixelDataRange.hs
@@ -42,14 +42,14 @@
 
 {-# NOINLINE glPixelDataRangeNVFunPtr #-}
 
-pattern GL_READ_PIXEL_DATA_RANGE_LENGTH_NV = 0x887B :: GLenum
+pattern GL_READ_PIXEL_DATA_RANGE_LENGTH_NV = 0x887B
 
-pattern GL_READ_PIXEL_DATA_RANGE_NV = 0x8879 :: GLenum
+pattern GL_READ_PIXEL_DATA_RANGE_NV = 0x8879
 
-pattern GL_READ_PIXEL_DATA_RANGE_POINTER_NV = 0x887D :: GLenum
+pattern GL_READ_PIXEL_DATA_RANGE_POINTER_NV = 0x887D
 
-pattern GL_WRITE_PIXEL_DATA_RANGE_LENGTH_NV = 0x887A :: GLenum
+pattern GL_WRITE_PIXEL_DATA_RANGE_LENGTH_NV = 0x887A
 
-pattern GL_WRITE_PIXEL_DATA_RANGE_NV = 0x8878 :: GLenum
+pattern GL_WRITE_PIXEL_DATA_RANGE_NV = 0x8878
 
-pattern GL_WRITE_PIXEL_DATA_RANGE_POINTER_NV = 0x887C :: GLenum
+pattern GL_WRITE_PIXEL_DATA_RANGE_POINTER_NV = 0x887C
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/PointSprite.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/PointSprite.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/PointSprite.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/PointSprite.hs
@@ -39,8 +39,8 @@
 
 {-# NOINLINE glPointParameterivNVFunPtr #-}
 
-pattern GL_COORD_REPLACE_NV = 0x8862 :: GLenum
+pattern GL_COORD_REPLACE_NV = 0x8862
 
-pattern GL_POINT_SPRITE_NV = 0x8861 :: GLenum
+pattern GL_POINT_SPRITE_NV = 0x8861
 
-pattern GL_POINT_SPRITE_R_MODE_NV = 0x8863 :: GLenum
+pattern GL_POINT_SPRITE_R_MODE_NV = 0x8863
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/PresentVideo.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/PresentVideo.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/PresentVideo.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/PresentVideo.hs
@@ -78,14 +78,14 @@
 
 {-# NOINLINE glPresentFrameKeyedNVFunPtr #-}
 
-pattern GL_CURRENT_TIME_NV = 0x8E28 :: GLenum
+pattern GL_CURRENT_TIME_NV = 0x8E28
 
-pattern GL_FIELDS_NV = 0x8E27 :: GLenum
+pattern GL_FIELDS_NV = 0x8E27
 
-pattern GL_FRAME_NV = 0x8E26 :: GLenum
+pattern GL_FRAME_NV = 0x8E26
 
-pattern GL_NUM_FILL_STREAMS_NV = 0x8E29 :: GLenum
+pattern GL_NUM_FILL_STREAMS_NV = 0x8E29
 
-pattern GL_PRESENT_DURATION_NV = 0x8E2B :: GLenum
+pattern GL_PRESENT_DURATION_NV = 0x8E2B
 
-pattern GL_PRESENT_TIME_NV = 0x8E2A :: GLenum
+pattern GL_PRESENT_TIME_NV = 0x8E2A
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/PrimitiveRestart.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/PrimitiveRestart.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/PrimitiveRestart.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/PrimitiveRestart.hs
@@ -38,6 +38,6 @@
 
 {-# NOINLINE glPrimitiveRestartNVFunPtr #-}
 
-pattern GL_PRIMITIVE_RESTART_INDEX_NV = 0x8559 :: GLenum
+pattern GL_PRIMITIVE_RESTART_INDEX_NV = 0x8559
 
-pattern GL_PRIMITIVE_RESTART_NV = 0x8558 :: GLenum
+pattern GL_PRIMITIVE_RESTART_NV = 0x8558
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/ReadBuffer.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/ReadBuffer.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/ReadBuffer.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/ReadBuffer.hs
@@ -28,4 +28,4 @@
 
 {-# NOINLINE glReadBufferNVFunPtr #-}
 
-pattern GL_READ_BUFFER_NV = 0x0C02 :: GLenum
+pattern GL_READ_BUFFER_NV = 0x0C02
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/RegisterCombiners.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/RegisterCombiners.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/RegisterCombiners.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/RegisterCombiners.hs
@@ -192,100 +192,100 @@
 
 {-# NOINLINE glGetFinalCombinerInputParameterivNVFunPtr #-}
 
-pattern GL_BIAS_BY_NEGATIVE_ONE_HALF_NV = 0x8541 :: GLenum
+pattern GL_BIAS_BY_NEGATIVE_ONE_HALF_NV = 0x8541
 
-pattern GL_COLOR_SUM_CLAMP_NV = 0x854F :: GLenum
+pattern GL_COLOR_SUM_CLAMP_NV = 0x854F
 
-pattern GL_COMBINER0_NV = 0x8550 :: GLenum
+pattern GL_COMBINER0_NV = 0x8550
 
-pattern GL_COMBINER1_NV = 0x8551 :: GLenum
+pattern GL_COMBINER1_NV = 0x8551
 
-pattern GL_COMBINER2_NV = 0x8552 :: GLenum
+pattern GL_COMBINER2_NV = 0x8552
 
-pattern GL_COMBINER3_NV = 0x8553 :: GLenum
+pattern GL_COMBINER3_NV = 0x8553
 
-pattern GL_COMBINER4_NV = 0x8554 :: GLenum
+pattern GL_COMBINER4_NV = 0x8554
 
-pattern GL_COMBINER5_NV = 0x8555 :: GLenum
+pattern GL_COMBINER5_NV = 0x8555
 
-pattern GL_COMBINER6_NV = 0x8556 :: GLenum
+pattern GL_COMBINER6_NV = 0x8556
 
-pattern GL_COMBINER7_NV = 0x8557 :: GLenum
+pattern GL_COMBINER7_NV = 0x8557
 
-pattern GL_COMBINER_AB_DOT_PRODUCT_NV = 0x8545 :: GLenum
+pattern GL_COMBINER_AB_DOT_PRODUCT_NV = 0x8545
 
-pattern GL_COMBINER_AB_OUTPUT_NV = 0x854A :: GLenum
+pattern GL_COMBINER_AB_OUTPUT_NV = 0x854A
 
-pattern GL_COMBINER_BIAS_NV = 0x8549 :: GLenum
+pattern GL_COMBINER_BIAS_NV = 0x8549
 
-pattern GL_COMBINER_CD_DOT_PRODUCT_NV = 0x8546 :: GLenum
+pattern GL_COMBINER_CD_DOT_PRODUCT_NV = 0x8546
 
-pattern GL_COMBINER_CD_OUTPUT_NV = 0x854B :: GLenum
+pattern GL_COMBINER_CD_OUTPUT_NV = 0x854B
 
-pattern GL_COMBINER_COMPONENT_USAGE_NV = 0x8544 :: GLenum
+pattern GL_COMBINER_COMPONENT_USAGE_NV = 0x8544
 
-pattern GL_COMBINER_INPUT_NV = 0x8542 :: GLenum
+pattern GL_COMBINER_INPUT_NV = 0x8542
 
-pattern GL_COMBINER_MAPPING_NV = 0x8543 :: GLenum
+pattern GL_COMBINER_MAPPING_NV = 0x8543
 
-pattern GL_COMBINER_MUX_SUM_NV = 0x8547 :: GLenum
+pattern GL_COMBINER_MUX_SUM_NV = 0x8547
 
-pattern GL_COMBINER_SCALE_NV = 0x8548 :: GLenum
+pattern GL_COMBINER_SCALE_NV = 0x8548
 
-pattern GL_COMBINER_SUM_OUTPUT_NV = 0x854C :: GLenum
+pattern GL_COMBINER_SUM_OUTPUT_NV = 0x854C
 
-pattern GL_CONSTANT_COLOR0_NV = 0x852A :: GLenum
+pattern GL_CONSTANT_COLOR0_NV = 0x852A
 
-pattern GL_CONSTANT_COLOR1_NV = 0x852B :: GLenum
+pattern GL_CONSTANT_COLOR1_NV = 0x852B
 
-pattern GL_DISCARD_NV = 0x8530 :: GLenum
+pattern GL_DISCARD_NV = 0x8530
 
-pattern GL_EXPAND_NEGATE_NV = 0x8539 :: GLenum
+pattern GL_EXPAND_NEGATE_NV = 0x8539
 
-pattern GL_EXPAND_NORMAL_NV = 0x8538 :: GLenum
+pattern GL_EXPAND_NORMAL_NV = 0x8538
 
-pattern GL_E_TIMES_F_NV = 0x8531 :: GLenum
+pattern GL_E_TIMES_F_NV = 0x8531
 
-pattern GL_HALF_BIAS_NEGATE_NV = 0x853B :: GLenum
+pattern GL_HALF_BIAS_NEGATE_NV = 0x853B
 
-pattern GL_HALF_BIAS_NORMAL_NV = 0x853A :: GLenum
+pattern GL_HALF_BIAS_NORMAL_NV = 0x853A
 
-pattern GL_MAX_GENERAL_COMBINERS_NV = 0x854D :: GLenum
+pattern GL_MAX_GENERAL_COMBINERS_NV = 0x854D
 
-pattern GL_NUM_GENERAL_COMBINERS_NV = 0x854E :: GLenum
+pattern GL_NUM_GENERAL_COMBINERS_NV = 0x854E
 
-pattern GL_REGISTER_COMBINERS_NV = 0x8522 :: GLenum
+pattern GL_REGISTER_COMBINERS_NV = 0x8522
 
-pattern GL_SCALE_BY_FOUR_NV = 0x853F :: GLenum
+pattern GL_SCALE_BY_FOUR_NV = 0x853F
 
-pattern GL_SCALE_BY_ONE_HALF_NV = 0x8540 :: GLenum
+pattern GL_SCALE_BY_ONE_HALF_NV = 0x8540
 
-pattern GL_SCALE_BY_TWO_NV = 0x853E :: GLenum
+pattern GL_SCALE_BY_TWO_NV = 0x853E
 
-pattern GL_SIGNED_IDENTITY_NV = 0x853C :: GLenum
+pattern GL_SIGNED_IDENTITY_NV = 0x853C
 
-pattern GL_SIGNED_NEGATE_NV = 0x853D :: GLenum
+pattern GL_SIGNED_NEGATE_NV = 0x853D
 
-pattern GL_SPARE0_NV = 0x852E :: GLenum
+pattern GL_SPARE0_NV = 0x852E
 
-pattern GL_SPARE0_PLUS_SECONDARY_COLOR_NV = 0x8532 :: GLenum
+pattern GL_SPARE0_PLUS_SECONDARY_COLOR_NV = 0x8532
 
-pattern GL_SPARE1_NV = 0x852F :: GLenum
+pattern GL_SPARE1_NV = 0x852F
 
-pattern GL_UNSIGNED_IDENTITY_NV = 0x8536 :: GLenum
+pattern GL_UNSIGNED_IDENTITY_NV = 0x8536
 
-pattern GL_UNSIGNED_INVERT_NV = 0x8537 :: GLenum
+pattern GL_UNSIGNED_INVERT_NV = 0x8537
 
-pattern GL_VARIABLE_A_NV = 0x8523 :: GLenum
+pattern GL_VARIABLE_A_NV = 0x8523
 
-pattern GL_VARIABLE_B_NV = 0x8524 :: GLenum
+pattern GL_VARIABLE_B_NV = 0x8524
 
-pattern GL_VARIABLE_C_NV = 0x8525 :: GLenum
+pattern GL_VARIABLE_C_NV = 0x8525
 
-pattern GL_VARIABLE_D_NV = 0x8526 :: GLenum
+pattern GL_VARIABLE_D_NV = 0x8526
 
-pattern GL_VARIABLE_E_NV = 0x8527 :: GLenum
+pattern GL_VARIABLE_E_NV = 0x8527
 
-pattern GL_VARIABLE_F_NV = 0x8528 :: GLenum
+pattern GL_VARIABLE_F_NV = 0x8528
 
-pattern GL_VARIABLE_G_NV = 0x8529 :: GLenum
+pattern GL_VARIABLE_G_NV = 0x8529
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/RegisterCombiners2.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/RegisterCombiners2.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/RegisterCombiners2.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/RegisterCombiners2.hs
@@ -37,4 +37,4 @@
 
 {-# NOINLINE glGetCombinerStageParameterfvNVFunPtr #-}
 
-pattern GL_PER_STAGE_CONSTANTS_NV = 0x8535 :: GLenum
+pattern GL_PER_STAGE_CONSTANTS_NV = 0x8535
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/SRGBFormats.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/SRGBFormats.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/SRGBFormats.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/SRGBFormats.hs
@@ -19,27 +19,26 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_NV_sRGB_formats :: Bool
 gl_NV_sRGB_formats = member "GL_NV_sRGB_formats" extensions
 
-pattern GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_NV = 0x8C4D :: GLenum
+pattern GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_NV = 0x8C4D
 
-pattern GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_NV = 0x8C4E :: GLenum
+pattern GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_NV = 0x8C4E
 
-pattern GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_NV = 0x8C4F :: GLenum
+pattern GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_NV = 0x8C4F
 
-pattern GL_COMPRESSED_SRGB_S3TC_DXT1_NV = 0x8C4C :: GLenum
+pattern GL_COMPRESSED_SRGB_S3TC_DXT1_NV = 0x8C4C
 
-pattern GL_ETC1_SRGB8_NV = 0x88EE :: GLenum
+pattern GL_ETC1_SRGB8_NV = 0x88EE
 
-pattern GL_SLUMINANCE8_ALPHA8_NV = 0x8C45 :: GLenum
+pattern GL_SLUMINANCE8_ALPHA8_NV = 0x8C45
 
-pattern GL_SLUMINANCE8_NV = 0x8C47 :: GLenum
+pattern GL_SLUMINANCE8_NV = 0x8C47
 
-pattern GL_SLUMINANCE_ALPHA_NV = 0x8C44 :: GLenum
+pattern GL_SLUMINANCE_ALPHA_NV = 0x8C44
 
-pattern GL_SLUMINANCE_NV = 0x8C46 :: GLenum
+pattern GL_SLUMINANCE_NV = 0x8C46
 
-pattern GL_SRGB8_NV = 0x8C41 :: GLenum
+pattern GL_SRGB8_NV = 0x8C41
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/SampleLocations.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/SampleLocations.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/SampleLocations.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/SampleLocations.hs
@@ -53,18 +53,18 @@
 
 {-# NOINLINE glResolveDepthValuesNVFunPtr #-}
 
-pattern GL_FRAMEBUFFER_PROGRAMMABLE_SAMPLE_LOCATIONS_NV = 0x9342 :: GLenum
+pattern GL_FRAMEBUFFER_PROGRAMMABLE_SAMPLE_LOCATIONS_NV = 0x9342
 
-pattern GL_FRAMEBUFFER_SAMPLE_LOCATION_PIXEL_GRID_NV = 0x9343 :: GLenum
+pattern GL_FRAMEBUFFER_SAMPLE_LOCATION_PIXEL_GRID_NV = 0x9343
 
-pattern GL_PROGRAMMABLE_SAMPLE_LOCATION_NV = 0x9341 :: GLenum
+pattern GL_PROGRAMMABLE_SAMPLE_LOCATION_NV = 0x9341
 
-pattern GL_PROGRAMMABLE_SAMPLE_LOCATION_TABLE_SIZE_NV = 0x9340 :: GLenum
+pattern GL_PROGRAMMABLE_SAMPLE_LOCATION_TABLE_SIZE_NV = 0x9340
 
-pattern GL_SAMPLE_LOCATION_NV = 0x8E50 :: GLenum
+pattern GL_SAMPLE_LOCATION_NV = 0x8E50
 
-pattern GL_SAMPLE_LOCATION_PIXEL_GRID_HEIGHT_NV = 0x933F :: GLenum
+pattern GL_SAMPLE_LOCATION_PIXEL_GRID_HEIGHT_NV = 0x933F
 
-pattern GL_SAMPLE_LOCATION_PIXEL_GRID_WIDTH_NV = 0x933E :: GLenum
+pattern GL_SAMPLE_LOCATION_PIXEL_GRID_WIDTH_NV = 0x933E
 
-pattern GL_SAMPLE_LOCATION_SUBPIXEL_BITS_NV = 0x933D :: GLenum
+pattern GL_SAMPLE_LOCATION_SUBPIXEL_BITS_NV = 0x933D
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/ShaderBufferLoad.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/ShaderBufferLoad.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/ShaderBufferLoad.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/ShaderBufferLoad.hs
@@ -140,8 +140,8 @@
 
 {-# NOINLINE glUniformui64vNVFunPtr #-}
 
-pattern GL_BUFFER_GPU_ADDRESS_NV = 0x8F1D :: GLenum
+pattern GL_BUFFER_GPU_ADDRESS_NV = 0x8F1D
 
-pattern GL_GPU_ADDRESS_NV = 0x8F34 :: GLenum
+pattern GL_GPU_ADDRESS_NV = 0x8F34
 
-pattern GL_MAX_SHADER_BUFFER_ADDRESS_NV = 0x8F35 :: GLenum
+pattern GL_MAX_SHADER_BUFFER_ADDRESS_NV = 0x8F35
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/ShaderBufferStore.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/ShaderBufferStore.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/ShaderBufferStore.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/ShaderBufferStore.hs
@@ -13,9 +13,8 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
-import Graphics.GL.Raw.Types
 
 gl_NV_shader_buffer_store :: Bool
 gl_NV_shader_buffer_store = member "GL_NV_shader_buffer_store" extensions
 
-pattern GL_SHADER_GLOBAL_ACCESS_BARRIER_BIT_NV = 0x00000010 :: GLenum
+pattern GL_SHADER_GLOBAL_ACCESS_BARRIER_BIT_NV = 0x00000010
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/ShaderThreadGroup.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/ShaderThreadGroup.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/ShaderThreadGroup.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/ShaderThreadGroup.hs
@@ -12,13 +12,12 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_NV_shader_thread_group :: Bool
 gl_NV_shader_thread_group = member "GL_NV_shader_thread_group" extensions
 
-pattern GL_SM_COUNT_NV = 0x933B :: GLenum
+pattern GL_SM_COUNT_NV = 0x933B
 
-pattern GL_WARPS_PER_SM_NV = 0x933A :: GLenum
+pattern GL_WARPS_PER_SM_NV = 0x933A
 
-pattern GL_WARP_SIZE_NV = 0x9339 :: GLenum
+pattern GL_WARP_SIZE_NV = 0x9339
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/ShadowSamplersArray.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/ShadowSamplersArray.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/ShadowSamplersArray.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/ShadowSamplersArray.hs
@@ -10,9 +10,8 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_NV_shadow_samplers_array :: Bool
 gl_NV_shadow_samplers_array = member "GL_NV_shadow_samplers_array" extensions
 
-pattern GL_SAMPLER_2D_ARRAY_SHADOW_NV = 0x8DC4 :: GLenum
+pattern GL_SAMPLER_2D_ARRAY_SHADOW_NV = 0x8DC4
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/ShadowSamplersCube.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/ShadowSamplersCube.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/ShadowSamplersCube.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/ShadowSamplersCube.hs
@@ -10,9 +10,8 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_NV_shadow_samplers_cube :: Bool
 gl_NV_shadow_samplers_cube = member "GL_NV_shadow_samplers_cube" extensions
 
-pattern GL_SAMPLER_CUBE_SHADOW_NV = 0x8DC5 :: GLenum
+pattern GL_SAMPLER_CUBE_SHADOW_NV = 0x8DC5
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/TessellationProgram5.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/TessellationProgram5.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/TessellationProgram5.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/TessellationProgram5.hs
@@ -14,17 +14,16 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_NV_tessellation_program5 :: Bool
 gl_NV_tessellation_program5 = member "GL_NV_tessellation_program5" extensions
 
-pattern GL_MAX_PROGRAM_PATCH_ATTRIBS_NV = 0x86D8 :: GLenum
+pattern GL_MAX_PROGRAM_PATCH_ATTRIBS_NV = 0x86D8
 
-pattern GL_TESS_CONTROL_PROGRAM_NV = 0x891E :: GLenum
+pattern GL_TESS_CONTROL_PROGRAM_NV = 0x891E
 
-pattern GL_TESS_CONTROL_PROGRAM_PARAMETER_BUFFER_NV = 0x8C74 :: GLenum
+pattern GL_TESS_CONTROL_PROGRAM_PARAMETER_BUFFER_NV = 0x8C74
 
-pattern GL_TESS_EVALUATION_PROGRAM_NV = 0x891F :: GLenum
+pattern GL_TESS_EVALUATION_PROGRAM_NV = 0x891F
 
-pattern GL_TESS_EVALUATION_PROGRAM_PARAMETER_BUFFER_NV = 0x8C75 :: GLenum
+pattern GL_TESS_EVALUATION_PROGRAM_PARAMETER_BUFFER_NV = 0x8C75
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/TexgenEmboss.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/TexgenEmboss.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/TexgenEmboss.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/TexgenEmboss.hs
@@ -12,13 +12,12 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_NV_texgen_emboss :: Bool
 gl_NV_texgen_emboss = member "GL_NV_texgen_emboss" extensions
 
-pattern GL_EMBOSS_CONSTANT_NV = 0x855E :: GLenum
+pattern GL_EMBOSS_CONSTANT_NV = 0x855E
 
-pattern GL_EMBOSS_LIGHT_NV = 0x855D :: GLenum
+pattern GL_EMBOSS_LIGHT_NV = 0x855D
 
-pattern GL_EMBOSS_MAP_NV = 0x855F :: GLenum
+pattern GL_EMBOSS_MAP_NV = 0x855F
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/TexgenReflection.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/TexgenReflection.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/TexgenReflection.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/TexgenReflection.hs
@@ -11,11 +11,10 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_NV_texgen_reflection :: Bool
 gl_NV_texgen_reflection = member "GL_NV_texgen_reflection" extensions
 
-pattern GL_NORMAL_MAP_NV = 0x8511 :: GLenum
+pattern GL_NORMAL_MAP_NV = 0x8511
 
-pattern GL_REFLECTION_MAP_NV = 0x8512 :: GLenum
+pattern GL_REFLECTION_MAP_NV = 0x8512
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/TextureBorderClamp.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/TextureBorderClamp.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/TextureBorderClamp.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/TextureBorderClamp.hs
@@ -11,11 +11,10 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_NV_texture_border_clamp :: Bool
 gl_NV_texture_border_clamp = member "GL_NV_texture_border_clamp" extensions
 
-pattern GL_CLAMP_TO_BORDER_NV = 0x812D :: GLenum
+pattern GL_CLAMP_TO_BORDER_NV = 0x812D
 
-pattern GL_TEXTURE_BORDER_COLOR_NV = 0x1004 :: GLenum
+pattern GL_TEXTURE_BORDER_COLOR_NV = 0x1004
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/TextureEnvCombine4.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/TextureEnvCombine4.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/TextureEnvCombine4.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/TextureEnvCombine4.hs
@@ -14,17 +14,16 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_NV_texture_env_combine4 :: Bool
 gl_NV_texture_env_combine4 = member "GL_NV_texture_env_combine4" extensions
 
-pattern GL_COMBINE4_NV = 0x8503 :: GLenum
+pattern GL_COMBINE4_NV = 0x8503
 
-pattern GL_OPERAND3_ALPHA_NV = 0x859B :: GLenum
+pattern GL_OPERAND3_ALPHA_NV = 0x859B
 
-pattern GL_OPERAND3_RGB_NV = 0x8593 :: GLenum
+pattern GL_OPERAND3_RGB_NV = 0x8593
 
-pattern GL_SOURCE3_ALPHA_NV = 0x858B :: GLenum
+pattern GL_SOURCE3_ALPHA_NV = 0x858B
 
-pattern GL_SOURCE3_RGB_NV = 0x8583 :: GLenum
+pattern GL_SOURCE3_RGB_NV = 0x8583
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/TextureExpandNormal.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/TextureExpandNormal.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/TextureExpandNormal.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/TextureExpandNormal.hs
@@ -10,9 +10,8 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_NV_texture_expand_normal :: Bool
 gl_NV_texture_expand_normal = member "GL_NV_texture_expand_normal" extensions
 
-pattern GL_TEXTURE_UNSIGNED_REMAP_MODE_NV = 0x888F :: GLenum
+pattern GL_TEXTURE_UNSIGNED_REMAP_MODE_NV = 0x888F
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/TextureMultisample.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/TextureMultisample.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/TextureMultisample.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/TextureMultisample.hs
@@ -74,6 +74,6 @@
 
 {-# NOINLINE glTextureImage3DMultisampleNVFunPtr #-}
 
-pattern GL_TEXTURE_COLOR_SAMPLES_NV = 0x9046 :: GLenum
+pattern GL_TEXTURE_COLOR_SAMPLES_NV = 0x9046
 
-pattern GL_TEXTURE_COVERAGE_SAMPLES_NV = 0x9045 :: GLenum
+pattern GL_TEXTURE_COVERAGE_SAMPLES_NV = 0x9045
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/TextureRectangle.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/TextureRectangle.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/TextureRectangle.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/TextureRectangle.hs
@@ -13,15 +13,14 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_NV_texture_rectangle :: Bool
 gl_NV_texture_rectangle = member "GL_NV_texture_rectangle" extensions
 
-pattern GL_MAX_RECTANGLE_TEXTURE_SIZE_NV = 0x84F8 :: GLenum
+pattern GL_MAX_RECTANGLE_TEXTURE_SIZE_NV = 0x84F8
 
-pattern GL_PROXY_TEXTURE_RECTANGLE_NV = 0x84F7 :: GLenum
+pattern GL_PROXY_TEXTURE_RECTANGLE_NV = 0x84F7
 
-pattern GL_TEXTURE_BINDING_RECTANGLE_NV = 0x84F6 :: GLenum
+pattern GL_TEXTURE_BINDING_RECTANGLE_NV = 0x84F6
 
-pattern GL_TEXTURE_RECTANGLE_NV = 0x84F5 :: GLenum
+pattern GL_TEXTURE_RECTANGLE_NV = 0x84F5
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/TextureShader.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/TextureShader.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/TextureShader.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/TextureShader.hs
@@ -82,153 +82,152 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_NV_texture_shader :: Bool
 gl_NV_texture_shader = member "GL_NV_texture_shader" extensions
 
-pattern GL_CONST_EYE_NV = 0x86E5 :: GLenum
+pattern GL_CONST_EYE_NV = 0x86E5
 
-pattern GL_CULL_FRAGMENT_NV = 0x86E7 :: GLenum
+pattern GL_CULL_FRAGMENT_NV = 0x86E7
 
-pattern GL_CULL_MODES_NV = 0x86E0 :: GLenum
+pattern GL_CULL_MODES_NV = 0x86E0
 
-pattern GL_DEPENDENT_AR_TEXTURE_2D_NV = 0x86E9 :: GLenum
+pattern GL_DEPENDENT_AR_TEXTURE_2D_NV = 0x86E9
 
-pattern GL_DEPENDENT_GB_TEXTURE_2D_NV = 0x86EA :: GLenum
+pattern GL_DEPENDENT_GB_TEXTURE_2D_NV = 0x86EA
 
-pattern GL_DOT_PRODUCT_CONST_EYE_REFLECT_CUBE_MAP_NV = 0x86F3 :: GLenum
+pattern GL_DOT_PRODUCT_CONST_EYE_REFLECT_CUBE_MAP_NV = 0x86F3
 
-pattern GL_DOT_PRODUCT_DEPTH_REPLACE_NV = 0x86ED :: GLenum
+pattern GL_DOT_PRODUCT_DEPTH_REPLACE_NV = 0x86ED
 
-pattern GL_DOT_PRODUCT_DIFFUSE_CUBE_MAP_NV = 0x86F1 :: GLenum
+pattern GL_DOT_PRODUCT_DIFFUSE_CUBE_MAP_NV = 0x86F1
 
-pattern GL_DOT_PRODUCT_NV = 0x86EC :: GLenum
+pattern GL_DOT_PRODUCT_NV = 0x86EC
 
-pattern GL_DOT_PRODUCT_REFLECT_CUBE_MAP_NV = 0x86F2 :: GLenum
+pattern GL_DOT_PRODUCT_REFLECT_CUBE_MAP_NV = 0x86F2
 
-pattern GL_DOT_PRODUCT_TEXTURE_2D_NV = 0x86EE :: GLenum
+pattern GL_DOT_PRODUCT_TEXTURE_2D_NV = 0x86EE
 
-pattern GL_DOT_PRODUCT_TEXTURE_CUBE_MAP_NV = 0x86F0 :: GLenum
+pattern GL_DOT_PRODUCT_TEXTURE_CUBE_MAP_NV = 0x86F0
 
-pattern GL_DOT_PRODUCT_TEXTURE_RECTANGLE_NV = 0x864E :: GLenum
+pattern GL_DOT_PRODUCT_TEXTURE_RECTANGLE_NV = 0x864E
 
-pattern GL_DSDT8_MAG8_INTENSITY8_NV = 0x870B :: GLenum
+pattern GL_DSDT8_MAG8_INTENSITY8_NV = 0x870B
 
-pattern GL_DSDT8_MAG8_NV = 0x870A :: GLenum
+pattern GL_DSDT8_MAG8_NV = 0x870A
 
-pattern GL_DSDT8_NV = 0x8709 :: GLenum
+pattern GL_DSDT8_NV = 0x8709
 
-pattern GL_DSDT_MAG_INTENSITY_NV = 0x86DC :: GLenum
+pattern GL_DSDT_MAG_INTENSITY_NV = 0x86DC
 
-pattern GL_DSDT_MAG_NV = 0x86F6 :: GLenum
+pattern GL_DSDT_MAG_NV = 0x86F6
 
-pattern GL_DSDT_MAG_VIB_NV = 0x86F7 :: GLenum
+pattern GL_DSDT_MAG_VIB_NV = 0x86F7
 
-pattern GL_DSDT_NV = 0x86F5 :: GLenum
+pattern GL_DSDT_NV = 0x86F5
 
-pattern GL_DS_BIAS_NV = 0x8716 :: GLenum
+pattern GL_DS_BIAS_NV = 0x8716
 
-pattern GL_DS_SCALE_NV = 0x8710 :: GLenum
+pattern GL_DS_SCALE_NV = 0x8710
 
-pattern GL_DT_BIAS_NV = 0x8717 :: GLenum
+pattern GL_DT_BIAS_NV = 0x8717
 
-pattern GL_DT_SCALE_NV = 0x8711 :: GLenum
+pattern GL_DT_SCALE_NV = 0x8711
 
-pattern GL_HILO16_NV = 0x86F8 :: GLenum
+pattern GL_HILO16_NV = 0x86F8
 
-pattern GL_HILO_NV = 0x86F4 :: GLenum
+pattern GL_HILO_NV = 0x86F4
 
-pattern GL_HI_BIAS_NV = 0x8714 :: GLenum
+pattern GL_HI_BIAS_NV = 0x8714
 
-pattern GL_HI_SCALE_NV = 0x870E :: GLenum
+pattern GL_HI_SCALE_NV = 0x870E
 
-pattern GL_LO_BIAS_NV = 0x8715 :: GLenum
+pattern GL_LO_BIAS_NV = 0x8715
 
-pattern GL_LO_SCALE_NV = 0x870F :: GLenum
+pattern GL_LO_SCALE_NV = 0x870F
 
-pattern GL_MAGNITUDE_BIAS_NV = 0x8718 :: GLenum
+pattern GL_MAGNITUDE_BIAS_NV = 0x8718
 
-pattern GL_MAGNITUDE_SCALE_NV = 0x8712 :: GLenum
+pattern GL_MAGNITUDE_SCALE_NV = 0x8712
 
-pattern GL_OFFSET_TEXTURE_2D_BIAS_NV = 0x86E3 :: GLenum
+pattern GL_OFFSET_TEXTURE_2D_BIAS_NV = 0x86E3
 
-pattern GL_OFFSET_TEXTURE_2D_MATRIX_NV = 0x86E1 :: GLenum
+pattern GL_OFFSET_TEXTURE_2D_MATRIX_NV = 0x86E1
 
-pattern GL_OFFSET_TEXTURE_2D_NV = 0x86E8 :: GLenum
+pattern GL_OFFSET_TEXTURE_2D_NV = 0x86E8
 
-pattern GL_OFFSET_TEXTURE_2D_SCALE_NV = 0x86E2 :: GLenum
+pattern GL_OFFSET_TEXTURE_2D_SCALE_NV = 0x86E2
 
-pattern GL_OFFSET_TEXTURE_BIAS_NV = 0x86E3 :: GLenum
+pattern GL_OFFSET_TEXTURE_BIAS_NV = 0x86E3
 
-pattern GL_OFFSET_TEXTURE_MATRIX_NV = 0x86E1 :: GLenum
+pattern GL_OFFSET_TEXTURE_MATRIX_NV = 0x86E1
 
-pattern GL_OFFSET_TEXTURE_RECTANGLE_NV = 0x864C :: GLenum
+pattern GL_OFFSET_TEXTURE_RECTANGLE_NV = 0x864C
 
-pattern GL_OFFSET_TEXTURE_RECTANGLE_SCALE_NV = 0x864D :: GLenum
+pattern GL_OFFSET_TEXTURE_RECTANGLE_SCALE_NV = 0x864D
 
-pattern GL_OFFSET_TEXTURE_SCALE_NV = 0x86E2 :: GLenum
+pattern GL_OFFSET_TEXTURE_SCALE_NV = 0x86E2
 
-pattern GL_PASS_THROUGH_NV = 0x86E6 :: GLenum
+pattern GL_PASS_THROUGH_NV = 0x86E6
 
-pattern GL_PREVIOUS_TEXTURE_INPUT_NV = 0x86E4 :: GLenum
+pattern GL_PREVIOUS_TEXTURE_INPUT_NV = 0x86E4
 
-pattern GL_RGBA_UNSIGNED_DOT_PRODUCT_MAPPING_NV = 0x86D9 :: GLenum
+pattern GL_RGBA_UNSIGNED_DOT_PRODUCT_MAPPING_NV = 0x86D9
 
-pattern GL_SHADER_CONSISTENT_NV = 0x86DD :: GLenum
+pattern GL_SHADER_CONSISTENT_NV = 0x86DD
 
-pattern GL_SHADER_OPERATION_NV = 0x86DF :: GLenum
+pattern GL_SHADER_OPERATION_NV = 0x86DF
 
-pattern GL_SIGNED_ALPHA8_NV = 0x8706 :: GLenum
+pattern GL_SIGNED_ALPHA8_NV = 0x8706
 
-pattern GL_SIGNED_ALPHA_NV = 0x8705 :: GLenum
+pattern GL_SIGNED_ALPHA_NV = 0x8705
 
-pattern GL_SIGNED_HILO16_NV = 0x86FA :: GLenum
+pattern GL_SIGNED_HILO16_NV = 0x86FA
 
-pattern GL_SIGNED_HILO_NV = 0x86F9 :: GLenum
+pattern GL_SIGNED_HILO_NV = 0x86F9
 
-pattern GL_SIGNED_INTENSITY8_NV = 0x8708 :: GLenum
+pattern GL_SIGNED_INTENSITY8_NV = 0x8708
 
-pattern GL_SIGNED_INTENSITY_NV = 0x8707 :: GLenum
+pattern GL_SIGNED_INTENSITY_NV = 0x8707
 
-pattern GL_SIGNED_LUMINANCE8_ALPHA8_NV = 0x8704 :: GLenum
+pattern GL_SIGNED_LUMINANCE8_ALPHA8_NV = 0x8704
 
-pattern GL_SIGNED_LUMINANCE8_NV = 0x8702 :: GLenum
+pattern GL_SIGNED_LUMINANCE8_NV = 0x8702
 
-pattern GL_SIGNED_LUMINANCE_ALPHA_NV = 0x8703 :: GLenum
+pattern GL_SIGNED_LUMINANCE_ALPHA_NV = 0x8703
 
-pattern GL_SIGNED_LUMINANCE_NV = 0x8701 :: GLenum
+pattern GL_SIGNED_LUMINANCE_NV = 0x8701
 
-pattern GL_SIGNED_RGB8_NV = 0x86FF :: GLenum
+pattern GL_SIGNED_RGB8_NV = 0x86FF
 
-pattern GL_SIGNED_RGB8_UNSIGNED_ALPHA8_NV = 0x870D :: GLenum
+pattern GL_SIGNED_RGB8_UNSIGNED_ALPHA8_NV = 0x870D
 
-pattern GL_SIGNED_RGBA8_NV = 0x86FC :: GLenum
+pattern GL_SIGNED_RGBA8_NV = 0x86FC
 
-pattern GL_SIGNED_RGBA_NV = 0x86FB :: GLenum
+pattern GL_SIGNED_RGBA_NV = 0x86FB
 
-pattern GL_SIGNED_RGB_NV = 0x86FE :: GLenum
+pattern GL_SIGNED_RGB_NV = 0x86FE
 
-pattern GL_SIGNED_RGB_UNSIGNED_ALPHA_NV = 0x870C :: GLenum
+pattern GL_SIGNED_RGB_UNSIGNED_ALPHA_NV = 0x870C
 
-pattern GL_TEXTURE_BORDER_VALUES_NV = 0x871A :: GLenum
+pattern GL_TEXTURE_BORDER_VALUES_NV = 0x871A
 
-pattern GL_TEXTURE_DS_SIZE_NV = 0x871D :: GLenum
+pattern GL_TEXTURE_DS_SIZE_NV = 0x871D
 
-pattern GL_TEXTURE_DT_SIZE_NV = 0x871E :: GLenum
+pattern GL_TEXTURE_DT_SIZE_NV = 0x871E
 
-pattern GL_TEXTURE_HI_SIZE_NV = 0x871B :: GLenum
+pattern GL_TEXTURE_HI_SIZE_NV = 0x871B
 
-pattern GL_TEXTURE_LO_SIZE_NV = 0x871C :: GLenum
+pattern GL_TEXTURE_LO_SIZE_NV = 0x871C
 
-pattern GL_TEXTURE_MAG_SIZE_NV = 0x871F :: GLenum
+pattern GL_TEXTURE_MAG_SIZE_NV = 0x871F
 
-pattern GL_TEXTURE_SHADER_NV = 0x86DE :: GLenum
+pattern GL_TEXTURE_SHADER_NV = 0x86DE
 
-pattern GL_UNSIGNED_INT_8_8_S8_S8_REV_NV = 0x86DB :: GLenum
+pattern GL_UNSIGNED_INT_8_8_S8_S8_REV_NV = 0x86DB
 
-pattern GL_UNSIGNED_INT_S8_S8_8_8_NV = 0x86DA :: GLenum
+pattern GL_UNSIGNED_INT_S8_S8_8_8_NV = 0x86DA
 
-pattern GL_VIBRANCE_BIAS_NV = 0x8719 :: GLenum
+pattern GL_VIBRANCE_BIAS_NV = 0x8719
 
-pattern GL_VIBRANCE_SCALE_NV = 0x8713 :: GLenum
+pattern GL_VIBRANCE_SCALE_NV = 0x8713
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/TextureShader2.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/TextureShader2.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/TextureShader2.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/TextureShader2.hs
@@ -10,9 +10,8 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_NV_texture_shader2 :: Bool
 gl_NV_texture_shader2 = member "GL_NV_texture_shader2" extensions
 
-pattern GL_DOT_PRODUCT_TEXTURE_3D_NV = 0x86EF :: GLenum
+pattern GL_DOT_PRODUCT_TEXTURE_3D_NV = 0x86EF
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/TextureShader3.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/TextureShader3.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/TextureShader3.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/TextureShader3.hs
@@ -26,41 +26,40 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_NV_texture_shader3 :: Bool
 gl_NV_texture_shader3 = member "GL_NV_texture_shader3" extensions
 
-pattern GL_DEPENDENT_HILO_TEXTURE_2D_NV = 0x8858 :: GLenum
+pattern GL_DEPENDENT_HILO_TEXTURE_2D_NV = 0x8858
 
-pattern GL_DEPENDENT_RGB_TEXTURE_3D_NV = 0x8859 :: GLenum
+pattern GL_DEPENDENT_RGB_TEXTURE_3D_NV = 0x8859
 
-pattern GL_DEPENDENT_RGB_TEXTURE_CUBE_MAP_NV = 0x885A :: GLenum
+pattern GL_DEPENDENT_RGB_TEXTURE_CUBE_MAP_NV = 0x885A
 
-pattern GL_DOT_PRODUCT_AFFINE_DEPTH_REPLACE_NV = 0x885D :: GLenum
+pattern GL_DOT_PRODUCT_AFFINE_DEPTH_REPLACE_NV = 0x885D
 
-pattern GL_DOT_PRODUCT_PASS_THROUGH_NV = 0x885B :: GLenum
+pattern GL_DOT_PRODUCT_PASS_THROUGH_NV = 0x885B
 
-pattern GL_DOT_PRODUCT_TEXTURE_1D_NV = 0x885C :: GLenum
+pattern GL_DOT_PRODUCT_TEXTURE_1D_NV = 0x885C
 
-pattern GL_FORCE_BLUE_TO_ONE_NV = 0x8860 :: GLenum
+pattern GL_FORCE_BLUE_TO_ONE_NV = 0x8860
 
-pattern GL_HILO8_NV = 0x885E :: GLenum
+pattern GL_HILO8_NV = 0x885E
 
-pattern GL_OFFSET_HILO_PROJECTIVE_TEXTURE_2D_NV = 0x8856 :: GLenum
+pattern GL_OFFSET_HILO_PROJECTIVE_TEXTURE_2D_NV = 0x8856
 
-pattern GL_OFFSET_HILO_PROJECTIVE_TEXTURE_RECTANGLE_NV = 0x8857 :: GLenum
+pattern GL_OFFSET_HILO_PROJECTIVE_TEXTURE_RECTANGLE_NV = 0x8857
 
-pattern GL_OFFSET_HILO_TEXTURE_2D_NV = 0x8854 :: GLenum
+pattern GL_OFFSET_HILO_TEXTURE_2D_NV = 0x8854
 
-pattern GL_OFFSET_HILO_TEXTURE_RECTANGLE_NV = 0x8855 :: GLenum
+pattern GL_OFFSET_HILO_TEXTURE_RECTANGLE_NV = 0x8855
 
-pattern GL_OFFSET_PROJECTIVE_TEXTURE_2D_NV = 0x8850 :: GLenum
+pattern GL_OFFSET_PROJECTIVE_TEXTURE_2D_NV = 0x8850
 
-pattern GL_OFFSET_PROJECTIVE_TEXTURE_2D_SCALE_NV = 0x8851 :: GLenum
+pattern GL_OFFSET_PROJECTIVE_TEXTURE_2D_SCALE_NV = 0x8851
 
-pattern GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_NV = 0x8852 :: GLenum
+pattern GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_NV = 0x8852
 
-pattern GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_SCALE_NV = 0x8853 :: GLenum
+pattern GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_SCALE_NV = 0x8853
 
-pattern GL_SIGNED_HILO8_NV = 0x885F :: GLenum
+pattern GL_SIGNED_HILO8_NV = 0x885F
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/TransformFeedback.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/TransformFeedback.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/TransformFeedback.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/TransformFeedback.hs
@@ -157,64 +157,64 @@
 
 {-# NOINLINE glTransformFeedbackVaryingsNVFunPtr #-}
 
-pattern GL_ACTIVE_VARYINGS_NV = 0x8C81 :: GLenum
+pattern GL_ACTIVE_VARYINGS_NV = 0x8C81
 
-pattern GL_ACTIVE_VARYING_MAX_LENGTH_NV = 0x8C82 :: GLenum
+pattern GL_ACTIVE_VARYING_MAX_LENGTH_NV = 0x8C82
 
-pattern GL_BACK_PRIMARY_COLOR_NV = 0x8C77 :: GLenum
+pattern GL_BACK_PRIMARY_COLOR_NV = 0x8C77
 
-pattern GL_BACK_SECONDARY_COLOR_NV = 0x8C78 :: GLenum
+pattern GL_BACK_SECONDARY_COLOR_NV = 0x8C78
 
-pattern GL_CLIP_DISTANCE_NV = 0x8C7A :: GLenum
+pattern GL_CLIP_DISTANCE_NV = 0x8C7A
 
-pattern GL_GENERIC_ATTRIB_NV = 0x8C7D :: GLenum
+pattern GL_GENERIC_ATTRIB_NV = 0x8C7D
 
-pattern GL_INTERLEAVED_ATTRIBS_NV = 0x8C8C :: GLenum
+pattern GL_INTERLEAVED_ATTRIBS_NV = 0x8C8C
 
-pattern GL_LAYER_NV = 0x8DAA :: GLenum
+pattern GL_LAYER_NV = 0x8DAA
 
-pattern GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_NV = 0x8C8A :: GLenum
+pattern GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_NV = 0x8C8A
 
-pattern GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_NV = 0x8C8B :: GLenum
+pattern GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_NV = 0x8C8B
 
-pattern GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_NV = 0x8C80 :: GLenum
+pattern GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_NV = 0x8C80
 
-pattern GL_NEXT_BUFFER_NV = -2 :: GLenum
+pattern GL_NEXT_BUFFER_NV = -2
 
-pattern GL_PRIMITIVES_GENERATED_NV = 0x8C87 :: GLenum
+pattern GL_PRIMITIVES_GENERATED_NV = 0x8C87
 
-pattern GL_PRIMITIVE_ID_NV = 0x8C7C :: GLenum
+pattern GL_PRIMITIVE_ID_NV = 0x8C7C
 
-pattern GL_RASTERIZER_DISCARD_NV = 0x8C89 :: GLenum
+pattern GL_RASTERIZER_DISCARD_NV = 0x8C89
 
-pattern GL_SEPARATE_ATTRIBS_NV = 0x8C8D :: GLenum
+pattern GL_SEPARATE_ATTRIBS_NV = 0x8C8D
 
-pattern GL_SKIP_COMPONENTS1_NV = -6 :: GLenum
+pattern GL_SKIP_COMPONENTS1_NV = -6
 
-pattern GL_SKIP_COMPONENTS2_NV = -5 :: GLenum
+pattern GL_SKIP_COMPONENTS2_NV = -5
 
-pattern GL_SKIP_COMPONENTS3_NV = -4 :: GLenum
+pattern GL_SKIP_COMPONENTS3_NV = -4
 
-pattern GL_SKIP_COMPONENTS4_NV = -3 :: GLenum
+pattern GL_SKIP_COMPONENTS4_NV = -3
 
-pattern GL_TEXTURE_COORD_NV = 0x8C79 :: GLenum
+pattern GL_TEXTURE_COORD_NV = 0x8C79
 
-pattern GL_TRANSFORM_FEEDBACK_ATTRIBS_NV = 0x8C7E :: GLenum
+pattern GL_TRANSFORM_FEEDBACK_ATTRIBS_NV = 0x8C7E
 
-pattern GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_NV = 0x8C8F :: GLenum
+pattern GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_NV = 0x8C8F
 
-pattern GL_TRANSFORM_FEEDBACK_BUFFER_MODE_NV = 0x8C7F :: GLenum
+pattern GL_TRANSFORM_FEEDBACK_BUFFER_MODE_NV = 0x8C7F
 
-pattern GL_TRANSFORM_FEEDBACK_BUFFER_NV = 0x8C8E :: GLenum
+pattern GL_TRANSFORM_FEEDBACK_BUFFER_NV = 0x8C8E
 
-pattern GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_NV = 0x8C85 :: GLenum
+pattern GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_NV = 0x8C85
 
-pattern GL_TRANSFORM_FEEDBACK_BUFFER_START_NV = 0x8C84 :: GLenum
+pattern GL_TRANSFORM_FEEDBACK_BUFFER_START_NV = 0x8C84
 
-pattern GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_NV = 0x8C88 :: GLenum
+pattern GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_NV = 0x8C88
 
-pattern GL_TRANSFORM_FEEDBACK_RECORD_NV = 0x8C86 :: GLenum
+pattern GL_TRANSFORM_FEEDBACK_RECORD_NV = 0x8C86
 
-pattern GL_TRANSFORM_FEEDBACK_VARYINGS_NV = 0x8C83 :: GLenum
+pattern GL_TRANSFORM_FEEDBACK_VARYINGS_NV = 0x8C83
 
-pattern GL_VERTEX_ID_NV = 0x8C7B :: GLenum
+pattern GL_VERTEX_ID_NV = 0x8C7B
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/TransformFeedback2.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/TransformFeedback2.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/TransformFeedback2.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/TransformFeedback2.hs
@@ -85,10 +85,10 @@
 
 {-# NOINLINE glResumeTransformFeedbackNVFunPtr #-}
 
-pattern GL_TRANSFORM_FEEDBACK_BINDING_NV = 0x8E25 :: GLenum
+pattern GL_TRANSFORM_FEEDBACK_BINDING_NV = 0x8E25
 
-pattern GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE_NV = 0x8E24 :: GLenum
+pattern GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE_NV = 0x8E24
 
-pattern GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED_NV = 0x8E23 :: GLenum
+pattern GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED_NV = 0x8E23
 
-pattern GL_TRANSFORM_FEEDBACK_NV = 0x8E22 :: GLenum
+pattern GL_TRANSFORM_FEEDBACK_NV = 0x8E22
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/UniformBufferUnifiedMemory.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/UniformBufferUnifiedMemory.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/UniformBufferUnifiedMemory.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/UniformBufferUnifiedMemory.hs
@@ -12,13 +12,12 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_NV_uniform_buffer_unified_memory :: Bool
 gl_NV_uniform_buffer_unified_memory = member "GL_NV_uniform_buffer_unified_memory" extensions
 
-pattern GL_UNIFORM_BUFFER_ADDRESS_NV = 0x936F :: GLenum
+pattern GL_UNIFORM_BUFFER_ADDRESS_NV = 0x936F
 
-pattern GL_UNIFORM_BUFFER_LENGTH_NV = 0x9370 :: GLenum
+pattern GL_UNIFORM_BUFFER_LENGTH_NV = 0x9370
 
-pattern GL_UNIFORM_BUFFER_UNIFIED_NV = 0x936E :: GLenum
+pattern GL_UNIFORM_BUFFER_UNIFIED_NV = 0x936E
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/VdpauInterop.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/VdpauInterop.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/VdpauInterop.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/VdpauInterop.hs
@@ -112,10 +112,10 @@
 
 {-# NOINLINE glVDPAUUnregisterSurfaceNVFunPtr #-}
 
-pattern GL_SURFACE_MAPPED_NV = 0x8700 :: GLenum
+pattern GL_SURFACE_MAPPED_NV = 0x8700
 
-pattern GL_SURFACE_REGISTERED_NV = 0x86FD :: GLenum
+pattern GL_SURFACE_REGISTERED_NV = 0x86FD
 
-pattern GL_SURFACE_STATE_NV = 0x86EB :: GLenum
+pattern GL_SURFACE_STATE_NV = 0x86EB
 
-pattern GL_WRITE_DISCARD_NV = 0x88BE :: GLenum
+pattern GL_WRITE_DISCARD_NV = 0x88BE
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/VertexArrayRange.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/VertexArrayRange.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/VertexArrayRange.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/VertexArrayRange.hs
@@ -41,12 +41,12 @@
 
 {-# NOINLINE glVertexArrayRangeNVFunPtr #-}
 
-pattern GL_MAX_VERTEX_ARRAY_RANGE_ELEMENT_NV = 0x8520 :: GLenum
+pattern GL_MAX_VERTEX_ARRAY_RANGE_ELEMENT_NV = 0x8520
 
-pattern GL_VERTEX_ARRAY_RANGE_LENGTH_NV = 0x851E :: GLenum
+pattern GL_VERTEX_ARRAY_RANGE_LENGTH_NV = 0x851E
 
-pattern GL_VERTEX_ARRAY_RANGE_NV = 0x851D :: GLenum
+pattern GL_VERTEX_ARRAY_RANGE_NV = 0x851D
 
-pattern GL_VERTEX_ARRAY_RANGE_POINTER_NV = 0x8521 :: GLenum
+pattern GL_VERTEX_ARRAY_RANGE_POINTER_NV = 0x8521
 
-pattern GL_VERTEX_ARRAY_RANGE_VALID_NV = 0x851F :: GLenum
+pattern GL_VERTEX_ARRAY_RANGE_VALID_NV = 0x851F
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/VertexArrayRange2.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/VertexArrayRange2.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/VertexArrayRange2.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/VertexArrayRange2.hs
@@ -10,9 +10,8 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_NV_vertex_array_range2 :: Bool
 gl_NV_vertex_array_range2 = member "GL_NV_vertex_array_range2" extensions
 
-pattern GL_VERTEX_ARRAY_RANGE_WITHOUT_FLUSH_NV = 0x8533 :: GLenum
+pattern GL_VERTEX_ARRAY_RANGE_WITHOUT_FLUSH_NV = 0x8533
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/VertexBufferUnifiedMemory.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/VertexBufferUnifiedMemory.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/VertexBufferUnifiedMemory.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/VertexBufferUnifiedMemory.hs
@@ -151,52 +151,52 @@
 
 {-# NOINLINE glVertexFormatNVFunPtr #-}
 
-pattern GL_COLOR_ARRAY_ADDRESS_NV = 0x8F23 :: GLenum
+pattern GL_COLOR_ARRAY_ADDRESS_NV = 0x8F23
 
-pattern GL_COLOR_ARRAY_LENGTH_NV = 0x8F2D :: GLenum
+pattern GL_COLOR_ARRAY_LENGTH_NV = 0x8F2D
 
-pattern GL_DRAW_INDIRECT_ADDRESS_NV = 0x8F41 :: GLenum
+pattern GL_DRAW_INDIRECT_ADDRESS_NV = 0x8F41
 
-pattern GL_DRAW_INDIRECT_LENGTH_NV = 0x8F42 :: GLenum
+pattern GL_DRAW_INDIRECT_LENGTH_NV = 0x8F42
 
-pattern GL_DRAW_INDIRECT_UNIFIED_NV = 0x8F40 :: GLenum
+pattern GL_DRAW_INDIRECT_UNIFIED_NV = 0x8F40
 
-pattern GL_EDGE_FLAG_ARRAY_ADDRESS_NV = 0x8F26 :: GLenum
+pattern GL_EDGE_FLAG_ARRAY_ADDRESS_NV = 0x8F26
 
-pattern GL_EDGE_FLAG_ARRAY_LENGTH_NV = 0x8F30 :: GLenum
+pattern GL_EDGE_FLAG_ARRAY_LENGTH_NV = 0x8F30
 
-pattern GL_ELEMENT_ARRAY_ADDRESS_NV = 0x8F29 :: GLenum
+pattern GL_ELEMENT_ARRAY_ADDRESS_NV = 0x8F29
 
-pattern GL_ELEMENT_ARRAY_LENGTH_NV = 0x8F33 :: GLenum
+pattern GL_ELEMENT_ARRAY_LENGTH_NV = 0x8F33
 
-pattern GL_ELEMENT_ARRAY_UNIFIED_NV = 0x8F1F :: GLenum
+pattern GL_ELEMENT_ARRAY_UNIFIED_NV = 0x8F1F
 
-pattern GL_FOG_COORD_ARRAY_ADDRESS_NV = 0x8F28 :: GLenum
+pattern GL_FOG_COORD_ARRAY_ADDRESS_NV = 0x8F28
 
-pattern GL_FOG_COORD_ARRAY_LENGTH_NV = 0x8F32 :: GLenum
+pattern GL_FOG_COORD_ARRAY_LENGTH_NV = 0x8F32
 
-pattern GL_INDEX_ARRAY_ADDRESS_NV = 0x8F24 :: GLenum
+pattern GL_INDEX_ARRAY_ADDRESS_NV = 0x8F24
 
-pattern GL_INDEX_ARRAY_LENGTH_NV = 0x8F2E :: GLenum
+pattern GL_INDEX_ARRAY_LENGTH_NV = 0x8F2E
 
-pattern GL_NORMAL_ARRAY_ADDRESS_NV = 0x8F22 :: GLenum
+pattern GL_NORMAL_ARRAY_ADDRESS_NV = 0x8F22
 
-pattern GL_NORMAL_ARRAY_LENGTH_NV = 0x8F2C :: GLenum
+pattern GL_NORMAL_ARRAY_LENGTH_NV = 0x8F2C
 
-pattern GL_SECONDARY_COLOR_ARRAY_ADDRESS_NV = 0x8F27 :: GLenum
+pattern GL_SECONDARY_COLOR_ARRAY_ADDRESS_NV = 0x8F27
 
-pattern GL_SECONDARY_COLOR_ARRAY_LENGTH_NV = 0x8F31 :: GLenum
+pattern GL_SECONDARY_COLOR_ARRAY_LENGTH_NV = 0x8F31
 
-pattern GL_TEXTURE_COORD_ARRAY_ADDRESS_NV = 0x8F25 :: GLenum
+pattern GL_TEXTURE_COORD_ARRAY_ADDRESS_NV = 0x8F25
 
-pattern GL_TEXTURE_COORD_ARRAY_LENGTH_NV = 0x8F2F :: GLenum
+pattern GL_TEXTURE_COORD_ARRAY_LENGTH_NV = 0x8F2F
 
-pattern GL_VERTEX_ARRAY_ADDRESS_NV = 0x8F21 :: GLenum
+pattern GL_VERTEX_ARRAY_ADDRESS_NV = 0x8F21
 
-pattern GL_VERTEX_ARRAY_LENGTH_NV = 0x8F2B :: GLenum
+pattern GL_VERTEX_ARRAY_LENGTH_NV = 0x8F2B
 
-pattern GL_VERTEX_ATTRIB_ARRAY_ADDRESS_NV = 0x8F20 :: GLenum
+pattern GL_VERTEX_ATTRIB_ARRAY_ADDRESS_NV = 0x8F20
 
-pattern GL_VERTEX_ATTRIB_ARRAY_LENGTH_NV = 0x8F2A :: GLenum
+pattern GL_VERTEX_ATTRIB_ARRAY_LENGTH_NV = 0x8F2A
 
-pattern GL_VERTEX_ATTRIB_ARRAY_UNIFIED_NV = 0x8F1E :: GLenum
+pattern GL_VERTEX_ATTRIB_ARRAY_UNIFIED_NV = 0x8F1E
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/VertexProgram.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/VertexProgram.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/VertexProgram.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/VertexProgram.hs
@@ -677,168 +677,168 @@
 
 {-# NOINLINE glVertexAttribs4ubvNVFunPtr #-}
 
-pattern GL_ATTRIB_ARRAY_POINTER_NV = 0x8645 :: GLenum
+pattern GL_ATTRIB_ARRAY_POINTER_NV = 0x8645
 
-pattern GL_ATTRIB_ARRAY_SIZE_NV = 0x8623 :: GLenum
+pattern GL_ATTRIB_ARRAY_SIZE_NV = 0x8623
 
-pattern GL_ATTRIB_ARRAY_STRIDE_NV = 0x8624 :: GLenum
+pattern GL_ATTRIB_ARRAY_STRIDE_NV = 0x8624
 
-pattern GL_ATTRIB_ARRAY_TYPE_NV = 0x8625 :: GLenum
+pattern GL_ATTRIB_ARRAY_TYPE_NV = 0x8625
 
-pattern GL_CURRENT_ATTRIB_NV = 0x8626 :: GLenum
+pattern GL_CURRENT_ATTRIB_NV = 0x8626
 
-pattern GL_CURRENT_MATRIX_NV = 0x8641 :: GLenum
+pattern GL_CURRENT_MATRIX_NV = 0x8641
 
-pattern GL_CURRENT_MATRIX_STACK_DEPTH_NV = 0x8640 :: GLenum
+pattern GL_CURRENT_MATRIX_STACK_DEPTH_NV = 0x8640
 
-pattern GL_IDENTITY_NV = 0x862A :: GLenum
+pattern GL_IDENTITY_NV = 0x862A
 
-pattern GL_INVERSE_NV = 0x862B :: GLenum
+pattern GL_INVERSE_NV = 0x862B
 
-pattern GL_INVERSE_TRANSPOSE_NV = 0x862D :: GLenum
+pattern GL_INVERSE_TRANSPOSE_NV = 0x862D
 
-pattern GL_MAP1_VERTEX_ATTRIB0_4_NV = 0x8660 :: GLenum
+pattern GL_MAP1_VERTEX_ATTRIB0_4_NV = 0x8660
 
-pattern GL_MAP1_VERTEX_ATTRIB10_4_NV = 0x866A :: GLenum
+pattern GL_MAP1_VERTEX_ATTRIB10_4_NV = 0x866A
 
-pattern GL_MAP1_VERTEX_ATTRIB11_4_NV = 0x866B :: GLenum
+pattern GL_MAP1_VERTEX_ATTRIB11_4_NV = 0x866B
 
-pattern GL_MAP1_VERTEX_ATTRIB12_4_NV = 0x866C :: GLenum
+pattern GL_MAP1_VERTEX_ATTRIB12_4_NV = 0x866C
 
-pattern GL_MAP1_VERTEX_ATTRIB13_4_NV = 0x866D :: GLenum
+pattern GL_MAP1_VERTEX_ATTRIB13_4_NV = 0x866D
 
-pattern GL_MAP1_VERTEX_ATTRIB14_4_NV = 0x866E :: GLenum
+pattern GL_MAP1_VERTEX_ATTRIB14_4_NV = 0x866E
 
-pattern GL_MAP1_VERTEX_ATTRIB15_4_NV = 0x866F :: GLenum
+pattern GL_MAP1_VERTEX_ATTRIB15_4_NV = 0x866F
 
-pattern GL_MAP1_VERTEX_ATTRIB1_4_NV = 0x8661 :: GLenum
+pattern GL_MAP1_VERTEX_ATTRIB1_4_NV = 0x8661
 
-pattern GL_MAP1_VERTEX_ATTRIB2_4_NV = 0x8662 :: GLenum
+pattern GL_MAP1_VERTEX_ATTRIB2_4_NV = 0x8662
 
-pattern GL_MAP1_VERTEX_ATTRIB3_4_NV = 0x8663 :: GLenum
+pattern GL_MAP1_VERTEX_ATTRIB3_4_NV = 0x8663
 
-pattern GL_MAP1_VERTEX_ATTRIB4_4_NV = 0x8664 :: GLenum
+pattern GL_MAP1_VERTEX_ATTRIB4_4_NV = 0x8664
 
-pattern GL_MAP1_VERTEX_ATTRIB5_4_NV = 0x8665 :: GLenum
+pattern GL_MAP1_VERTEX_ATTRIB5_4_NV = 0x8665
 
-pattern GL_MAP1_VERTEX_ATTRIB6_4_NV = 0x8666 :: GLenum
+pattern GL_MAP1_VERTEX_ATTRIB6_4_NV = 0x8666
 
-pattern GL_MAP1_VERTEX_ATTRIB7_4_NV = 0x8667 :: GLenum
+pattern GL_MAP1_VERTEX_ATTRIB7_4_NV = 0x8667
 
-pattern GL_MAP1_VERTEX_ATTRIB8_4_NV = 0x8668 :: GLenum
+pattern GL_MAP1_VERTEX_ATTRIB8_4_NV = 0x8668
 
-pattern GL_MAP1_VERTEX_ATTRIB9_4_NV = 0x8669 :: GLenum
+pattern GL_MAP1_VERTEX_ATTRIB9_4_NV = 0x8669
 
-pattern GL_MAP2_VERTEX_ATTRIB0_4_NV = 0x8670 :: GLenum
+pattern GL_MAP2_VERTEX_ATTRIB0_4_NV = 0x8670
 
-pattern GL_MAP2_VERTEX_ATTRIB10_4_NV = 0x867A :: GLenum
+pattern GL_MAP2_VERTEX_ATTRIB10_4_NV = 0x867A
 
-pattern GL_MAP2_VERTEX_ATTRIB11_4_NV = 0x867B :: GLenum
+pattern GL_MAP2_VERTEX_ATTRIB11_4_NV = 0x867B
 
-pattern GL_MAP2_VERTEX_ATTRIB12_4_NV = 0x867C :: GLenum
+pattern GL_MAP2_VERTEX_ATTRIB12_4_NV = 0x867C
 
-pattern GL_MAP2_VERTEX_ATTRIB13_4_NV = 0x867D :: GLenum
+pattern GL_MAP2_VERTEX_ATTRIB13_4_NV = 0x867D
 
-pattern GL_MAP2_VERTEX_ATTRIB14_4_NV = 0x867E :: GLenum
+pattern GL_MAP2_VERTEX_ATTRIB14_4_NV = 0x867E
 
-pattern GL_MAP2_VERTEX_ATTRIB15_4_NV = 0x867F :: GLenum
+pattern GL_MAP2_VERTEX_ATTRIB15_4_NV = 0x867F
 
-pattern GL_MAP2_VERTEX_ATTRIB1_4_NV = 0x8671 :: GLenum
+pattern GL_MAP2_VERTEX_ATTRIB1_4_NV = 0x8671
 
-pattern GL_MAP2_VERTEX_ATTRIB2_4_NV = 0x8672 :: GLenum
+pattern GL_MAP2_VERTEX_ATTRIB2_4_NV = 0x8672
 
-pattern GL_MAP2_VERTEX_ATTRIB3_4_NV = 0x8673 :: GLenum
+pattern GL_MAP2_VERTEX_ATTRIB3_4_NV = 0x8673
 
-pattern GL_MAP2_VERTEX_ATTRIB4_4_NV = 0x8674 :: GLenum
+pattern GL_MAP2_VERTEX_ATTRIB4_4_NV = 0x8674
 
-pattern GL_MAP2_VERTEX_ATTRIB5_4_NV = 0x8675 :: GLenum
+pattern GL_MAP2_VERTEX_ATTRIB5_4_NV = 0x8675
 
-pattern GL_MAP2_VERTEX_ATTRIB6_4_NV = 0x8676 :: GLenum
+pattern GL_MAP2_VERTEX_ATTRIB6_4_NV = 0x8676
 
-pattern GL_MAP2_VERTEX_ATTRIB7_4_NV = 0x8677 :: GLenum
+pattern GL_MAP2_VERTEX_ATTRIB7_4_NV = 0x8677
 
-pattern GL_MAP2_VERTEX_ATTRIB8_4_NV = 0x8678 :: GLenum
+pattern GL_MAP2_VERTEX_ATTRIB8_4_NV = 0x8678
 
-pattern GL_MAP2_VERTEX_ATTRIB9_4_NV = 0x8679 :: GLenum
+pattern GL_MAP2_VERTEX_ATTRIB9_4_NV = 0x8679
 
-pattern GL_MATRIX0_NV = 0x8630 :: GLenum
+pattern GL_MATRIX0_NV = 0x8630
 
-pattern GL_MATRIX1_NV = 0x8631 :: GLenum
+pattern GL_MATRIX1_NV = 0x8631
 
-pattern GL_MATRIX2_NV = 0x8632 :: GLenum
+pattern GL_MATRIX2_NV = 0x8632
 
-pattern GL_MATRIX3_NV = 0x8633 :: GLenum
+pattern GL_MATRIX3_NV = 0x8633
 
-pattern GL_MATRIX4_NV = 0x8634 :: GLenum
+pattern GL_MATRIX4_NV = 0x8634
 
-pattern GL_MATRIX5_NV = 0x8635 :: GLenum
+pattern GL_MATRIX5_NV = 0x8635
 
-pattern GL_MATRIX6_NV = 0x8636 :: GLenum
+pattern GL_MATRIX6_NV = 0x8636
 
-pattern GL_MATRIX7_NV = 0x8637 :: GLenum
+pattern GL_MATRIX7_NV = 0x8637
 
-pattern GL_MAX_TRACK_MATRICES_NV = 0x862F :: GLenum
+pattern GL_MAX_TRACK_MATRICES_NV = 0x862F
 
-pattern GL_MAX_TRACK_MATRIX_STACK_DEPTH_NV = 0x862E :: GLenum
+pattern GL_MAX_TRACK_MATRIX_STACK_DEPTH_NV = 0x862E
 
-pattern GL_MODELVIEW_PROJECTION_NV = 0x8629 :: GLenum
+pattern GL_MODELVIEW_PROJECTION_NV = 0x8629
 
-pattern GL_PROGRAM_ERROR_POSITION_NV = 0x864B :: GLenum
+pattern GL_PROGRAM_ERROR_POSITION_NV = 0x864B
 
-pattern GL_PROGRAM_LENGTH_NV = 0x8627 :: GLenum
+pattern GL_PROGRAM_LENGTH_NV = 0x8627
 
-pattern GL_PROGRAM_PARAMETER_NV = 0x8644 :: GLenum
+pattern GL_PROGRAM_PARAMETER_NV = 0x8644
 
-pattern GL_PROGRAM_RESIDENT_NV = 0x8647 :: GLenum
+pattern GL_PROGRAM_RESIDENT_NV = 0x8647
 
-pattern GL_PROGRAM_STRING_NV = 0x8628 :: GLenum
+pattern GL_PROGRAM_STRING_NV = 0x8628
 
-pattern GL_PROGRAM_TARGET_NV = 0x8646 :: GLenum
+pattern GL_PROGRAM_TARGET_NV = 0x8646
 
-pattern GL_TRACK_MATRIX_NV = 0x8648 :: GLenum
+pattern GL_TRACK_MATRIX_NV = 0x8648
 
-pattern GL_TRACK_MATRIX_TRANSFORM_NV = 0x8649 :: GLenum
+pattern GL_TRACK_MATRIX_TRANSFORM_NV = 0x8649
 
-pattern GL_TRANSPOSE_NV = 0x862C :: GLenum
+pattern GL_TRANSPOSE_NV = 0x862C
 
-pattern GL_VERTEX_ATTRIB_ARRAY0_NV = 0x8650 :: GLenum
+pattern GL_VERTEX_ATTRIB_ARRAY0_NV = 0x8650
 
-pattern GL_VERTEX_ATTRIB_ARRAY10_NV = 0x865A :: GLenum
+pattern GL_VERTEX_ATTRIB_ARRAY10_NV = 0x865A
 
-pattern GL_VERTEX_ATTRIB_ARRAY11_NV = 0x865B :: GLenum
+pattern GL_VERTEX_ATTRIB_ARRAY11_NV = 0x865B
 
-pattern GL_VERTEX_ATTRIB_ARRAY12_NV = 0x865C :: GLenum
+pattern GL_VERTEX_ATTRIB_ARRAY12_NV = 0x865C
 
-pattern GL_VERTEX_ATTRIB_ARRAY13_NV = 0x865D :: GLenum
+pattern GL_VERTEX_ATTRIB_ARRAY13_NV = 0x865D
 
-pattern GL_VERTEX_ATTRIB_ARRAY14_NV = 0x865E :: GLenum
+pattern GL_VERTEX_ATTRIB_ARRAY14_NV = 0x865E
 
-pattern GL_VERTEX_ATTRIB_ARRAY15_NV = 0x865F :: GLenum
+pattern GL_VERTEX_ATTRIB_ARRAY15_NV = 0x865F
 
-pattern GL_VERTEX_ATTRIB_ARRAY1_NV = 0x8651 :: GLenum
+pattern GL_VERTEX_ATTRIB_ARRAY1_NV = 0x8651
 
-pattern GL_VERTEX_ATTRIB_ARRAY2_NV = 0x8652 :: GLenum
+pattern GL_VERTEX_ATTRIB_ARRAY2_NV = 0x8652
 
-pattern GL_VERTEX_ATTRIB_ARRAY3_NV = 0x8653 :: GLenum
+pattern GL_VERTEX_ATTRIB_ARRAY3_NV = 0x8653
 
-pattern GL_VERTEX_ATTRIB_ARRAY4_NV = 0x8654 :: GLenum
+pattern GL_VERTEX_ATTRIB_ARRAY4_NV = 0x8654
 
-pattern GL_VERTEX_ATTRIB_ARRAY5_NV = 0x8655 :: GLenum
+pattern GL_VERTEX_ATTRIB_ARRAY5_NV = 0x8655
 
-pattern GL_VERTEX_ATTRIB_ARRAY6_NV = 0x8656 :: GLenum
+pattern GL_VERTEX_ATTRIB_ARRAY6_NV = 0x8656
 
-pattern GL_VERTEX_ATTRIB_ARRAY7_NV = 0x8657 :: GLenum
+pattern GL_VERTEX_ATTRIB_ARRAY7_NV = 0x8657
 
-pattern GL_VERTEX_ATTRIB_ARRAY8_NV = 0x8658 :: GLenum
+pattern GL_VERTEX_ATTRIB_ARRAY8_NV = 0x8658
 
-pattern GL_VERTEX_ATTRIB_ARRAY9_NV = 0x8659 :: GLenum
+pattern GL_VERTEX_ATTRIB_ARRAY9_NV = 0x8659
 
-pattern GL_VERTEX_PROGRAM_BINDING_NV = 0x864A :: GLenum
+pattern GL_VERTEX_PROGRAM_BINDING_NV = 0x864A
 
-pattern GL_VERTEX_PROGRAM_NV = 0x8620 :: GLenum
+pattern GL_VERTEX_PROGRAM_NV = 0x8620
 
-pattern GL_VERTEX_PROGRAM_POINT_SIZE_NV = 0x8642 :: GLenum
+pattern GL_VERTEX_PROGRAM_POINT_SIZE_NV = 0x8642
 
-pattern GL_VERTEX_PROGRAM_TWO_SIDE_NV = 0x8643 :: GLenum
+pattern GL_VERTEX_PROGRAM_TWO_SIDE_NV = 0x8643
 
-pattern GL_VERTEX_STATE_PROGRAM_NV = 0x8621 :: GLenum
+pattern GL_VERTEX_STATE_PROGRAM_NV = 0x8621
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/VertexProgram4.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/VertexProgram4.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/VertexProgram4.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/VertexProgram4.hs
@@ -226,4 +226,4 @@
 
 {-# NOINLINE glVertexAttribIPointerEXTFunPtr #-}
 
-pattern GL_VERTEX_ATTRIB_ARRAY_INTEGER_NV = 0x88FD :: GLenum
+pattern GL_VERTEX_ATTRIB_ARRAY_INTEGER_NV = 0x88FD
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/VideoCapture.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/VideoCapture.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NV/VideoCapture.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NV/VideoCapture.hs
@@ -155,60 +155,60 @@
 
 {-# NOINLINE glVideoCaptureStreamParameterivNVFunPtr #-}
 
-pattern GL_FAILURE_NV = 0x9030 :: GLenum
+pattern GL_FAILURE_NV = 0x9030
 
-pattern GL_FIELD_LOWER_NV = 0x9023 :: GLenum
+pattern GL_FIELD_LOWER_NV = 0x9023
 
-pattern GL_FIELD_UPPER_NV = 0x9022 :: GLenum
+pattern GL_FIELD_UPPER_NV = 0x9022
 
-pattern GL_LAST_VIDEO_CAPTURE_STATUS_NV = 0x9027 :: GLenum
+pattern GL_LAST_VIDEO_CAPTURE_STATUS_NV = 0x9027
 
-pattern GL_NEXT_VIDEO_CAPTURE_BUFFER_STATUS_NV = 0x9025 :: GLenum
+pattern GL_NEXT_VIDEO_CAPTURE_BUFFER_STATUS_NV = 0x9025
 
-pattern GL_NUM_VIDEO_CAPTURE_STREAMS_NV = 0x9024 :: GLenum
+pattern GL_NUM_VIDEO_CAPTURE_STREAMS_NV = 0x9024
 
-pattern GL_PARTIAL_SUCCESS_NV = 0x902E :: GLenum
+pattern GL_PARTIAL_SUCCESS_NV = 0x902E
 
-pattern GL_SUCCESS_NV = 0x902F :: GLenum
+pattern GL_SUCCESS_NV = 0x902F
 
-pattern GL_VIDEO_BUFFER_BINDING_NV = 0x9021 :: GLenum
+pattern GL_VIDEO_BUFFER_BINDING_NV = 0x9021
 
-pattern GL_VIDEO_BUFFER_INTERNAL_FORMAT_NV = 0x902D :: GLenum
+pattern GL_VIDEO_BUFFER_INTERNAL_FORMAT_NV = 0x902D
 
-pattern GL_VIDEO_BUFFER_NV = 0x9020 :: GLenum
+pattern GL_VIDEO_BUFFER_NV = 0x9020
 
-pattern GL_VIDEO_BUFFER_PITCH_NV = 0x9028 :: GLenum
+pattern GL_VIDEO_BUFFER_PITCH_NV = 0x9028
 
-pattern GL_VIDEO_CAPTURE_FIELD_LOWER_HEIGHT_NV = 0x903B :: GLenum
+pattern GL_VIDEO_CAPTURE_FIELD_LOWER_HEIGHT_NV = 0x903B
 
-pattern GL_VIDEO_CAPTURE_FIELD_UPPER_HEIGHT_NV = 0x903A :: GLenum
+pattern GL_VIDEO_CAPTURE_FIELD_UPPER_HEIGHT_NV = 0x903A
 
-pattern GL_VIDEO_CAPTURE_FRAME_HEIGHT_NV = 0x9039 :: GLenum
+pattern GL_VIDEO_CAPTURE_FRAME_HEIGHT_NV = 0x9039
 
-pattern GL_VIDEO_CAPTURE_FRAME_WIDTH_NV = 0x9038 :: GLenum
+pattern GL_VIDEO_CAPTURE_FRAME_WIDTH_NV = 0x9038
 
-pattern GL_VIDEO_CAPTURE_SURFACE_ORIGIN_NV = 0x903C :: GLenum
+pattern GL_VIDEO_CAPTURE_SURFACE_ORIGIN_NV = 0x903C
 
-pattern GL_VIDEO_CAPTURE_TO_422_SUPPORTED_NV = 0x9026 :: GLenum
+pattern GL_VIDEO_CAPTURE_TO_422_SUPPORTED_NV = 0x9026
 
-pattern GL_VIDEO_COLOR_CONVERSION_MATRIX_NV = 0x9029 :: GLenum
+pattern GL_VIDEO_COLOR_CONVERSION_MATRIX_NV = 0x9029
 
-pattern GL_VIDEO_COLOR_CONVERSION_MAX_NV = 0x902A :: GLenum
+pattern GL_VIDEO_COLOR_CONVERSION_MAX_NV = 0x902A
 
-pattern GL_VIDEO_COLOR_CONVERSION_MIN_NV = 0x902B :: GLenum
+pattern GL_VIDEO_COLOR_CONVERSION_MIN_NV = 0x902B
 
-pattern GL_VIDEO_COLOR_CONVERSION_OFFSET_NV = 0x902C :: GLenum
+pattern GL_VIDEO_COLOR_CONVERSION_OFFSET_NV = 0x902C
 
-pattern GL_YCBAYCR8A_4224_NV = 0x9032 :: GLenum
+pattern GL_YCBAYCR8A_4224_NV = 0x9032
 
-pattern GL_YCBYCR8_422_NV = 0x9031 :: GLenum
+pattern GL_YCBYCR8_422_NV = 0x9031
 
-pattern GL_Z4Y12Z4CB12Z4A12Z4Y12Z4CR12Z4A12_4224_NV = 0x9036 :: GLenum
+pattern GL_Z4Y12Z4CB12Z4A12Z4Y12Z4CR12Z4A12_4224_NV = 0x9036
 
-pattern GL_Z4Y12Z4CB12Z4CR12_444_NV = 0x9037 :: GLenum
+pattern GL_Z4Y12Z4CB12Z4CR12_444_NV = 0x9037
 
-pattern GL_Z4Y12Z4CB12Z4Y12Z4CR12_422_NV = 0x9035 :: GLenum
+pattern GL_Z4Y12Z4CB12Z4Y12Z4CR12_422_NV = 0x9035
 
-pattern GL_Z6Y10Z6CB10Z6A10Z6Y10Z6CR10Z6A10_4224_NV = 0x9034 :: GLenum
+pattern GL_Z6Y10Z6CB10Z6A10Z6Y10Z6CR10Z6A10_4224_NV = 0x9034
 
-pattern GL_Z6Y10Z6CB10Z6Y10Z6CR10_422_NV = 0x9033 :: GLenum
+pattern GL_Z6Y10Z6CB10Z6Y10Z6CR10_422_NV = 0x9033
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/NVX/GpuMemoryInfo.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/NVX/GpuMemoryInfo.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/NVX/GpuMemoryInfo.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/NVX/GpuMemoryInfo.hs
@@ -14,17 +14,16 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_NVX_gpu_memory_info :: Bool
 gl_NVX_gpu_memory_info = member "GL_NVX_gpu_memory_info" extensions
 
-pattern GL_GPU_MEMORY_INFO_CURRENT_AVAILABLE_VIDMEM_NVX = 0x9049 :: GLenum
+pattern GL_GPU_MEMORY_INFO_CURRENT_AVAILABLE_VIDMEM_NVX = 0x9049
 
-pattern GL_GPU_MEMORY_INFO_DEDICATED_VIDMEM_NVX = 0x9047 :: GLenum
+pattern GL_GPU_MEMORY_INFO_DEDICATED_VIDMEM_NVX = 0x9047
 
-pattern GL_GPU_MEMORY_INFO_EVICTED_MEMORY_NVX = 0x904B :: GLenum
+pattern GL_GPU_MEMORY_INFO_EVICTED_MEMORY_NVX = 0x904B
 
-pattern GL_GPU_MEMORY_INFO_EVICTION_COUNT_NVX = 0x904A :: GLenum
+pattern GL_GPU_MEMORY_INFO_EVICTION_COUNT_NVX = 0x904A
 
-pattern GL_GPU_MEMORY_INFO_TOTAL_AVAILABLE_MEMORY_NVX = 0x9048 :: GLenum
+pattern GL_GPU_MEMORY_INFO_TOTAL_AVAILABLE_MEMORY_NVX = 0x9048
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/BlendEquationSeparate.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/BlendEquationSeparate.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/BlendEquationSeparate.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/BlendEquationSeparate.hs
@@ -29,6 +29,6 @@
 
 {-# NOINLINE glBlendEquationSeparateOESFunPtr #-}
 
-pattern GL_BLEND_EQUATION_ALPHA_OES = 0x883D :: GLenum
+pattern GL_BLEND_EQUATION_ALPHA_OES = 0x883D
 
-pattern GL_BLEND_EQUATION_RGB_OES = 0x8009 :: GLenum
+pattern GL_BLEND_EQUATION_RGB_OES = 0x8009
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/BlendFuncSeparate.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/BlendFuncSeparate.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/BlendFuncSeparate.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/BlendFuncSeparate.hs
@@ -31,10 +31,10 @@
 
 {-# NOINLINE glBlendFuncSeparateOESFunPtr #-}
 
-pattern GL_BLEND_DST_ALPHA_OES = 0x80CA :: GLenum
+pattern GL_BLEND_DST_ALPHA_OES = 0x80CA
 
-pattern GL_BLEND_DST_RGB_OES = 0x80C8 :: GLenum
+pattern GL_BLEND_DST_RGB_OES = 0x80C8
 
-pattern GL_BLEND_SRC_ALPHA_OES = 0x80CB :: GLenum
+pattern GL_BLEND_SRC_ALPHA_OES = 0x80CB
 
-pattern GL_BLEND_SRC_RGB_OES = 0x80C9 :: GLenum
+pattern GL_BLEND_SRC_RGB_OES = 0x80C9
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/BlendSubtract.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/BlendSubtract.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/BlendSubtract.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/BlendSubtract.hs
@@ -31,10 +31,10 @@
 
 {-# NOINLINE glBlendEquationOESFunPtr #-}
 
-pattern GL_BLEND_EQUATION_OES = 0x8009 :: GLenum
+pattern GL_BLEND_EQUATION_OES = 0x8009
 
-pattern GL_FUNC_ADD_OES = 0x8006 :: GLenum
+pattern GL_FUNC_ADD_OES = 0x8006
 
-pattern GL_FUNC_REVERSE_SUBTRACT_OES = 0x800B :: GLenum
+pattern GL_FUNC_REVERSE_SUBTRACT_OES = 0x800B
 
-pattern GL_FUNC_SUBTRACT_OES = 0x800A :: GLenum
+pattern GL_FUNC_SUBTRACT_OES = 0x800A
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/CompressedETC1RGB8Texture.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/CompressedETC1RGB8Texture.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/CompressedETC1RGB8Texture.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/CompressedETC1RGB8Texture.hs
@@ -10,9 +10,8 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_OES_compressed_ETC1_RGB8_texture :: Bool
 gl_OES_compressed_ETC1_RGB8_texture = member "GL_OES_compressed_ETC1_RGB8_texture" extensions
 
-pattern GL_ETC1_RGB8_OES = 0x8D64 :: GLenum
+pattern GL_ETC1_RGB8_OES = 0x8D64
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/CompressedPalettedTexture.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/CompressedPalettedTexture.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/CompressedPalettedTexture.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/CompressedPalettedTexture.hs
@@ -19,27 +19,26 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_OES_compressed_paletted_texture :: Bool
 gl_OES_compressed_paletted_texture = member "GL_OES_compressed_paletted_texture" extensions
 
-pattern GL_PALETTE4_R5_G6_B5_OES = 0x8B92 :: GLenum
+pattern GL_PALETTE4_R5_G6_B5_OES = 0x8B92
 
-pattern GL_PALETTE4_RGB5_A1_OES = 0x8B94 :: GLenum
+pattern GL_PALETTE4_RGB5_A1_OES = 0x8B94
 
-pattern GL_PALETTE4_RGB8_OES = 0x8B90 :: GLenum
+pattern GL_PALETTE4_RGB8_OES = 0x8B90
 
-pattern GL_PALETTE4_RGBA4_OES = 0x8B93 :: GLenum
+pattern GL_PALETTE4_RGBA4_OES = 0x8B93
 
-pattern GL_PALETTE4_RGBA8_OES = 0x8B91 :: GLenum
+pattern GL_PALETTE4_RGBA8_OES = 0x8B91
 
-pattern GL_PALETTE8_R5_G6_B5_OES = 0x8B97 :: GLenum
+pattern GL_PALETTE8_R5_G6_B5_OES = 0x8B97
 
-pattern GL_PALETTE8_RGB5_A1_OES = 0x8B99 :: GLenum
+pattern GL_PALETTE8_RGB5_A1_OES = 0x8B99
 
-pattern GL_PALETTE8_RGB8_OES = 0x8B95 :: GLenum
+pattern GL_PALETTE8_RGB8_OES = 0x8B95
 
-pattern GL_PALETTE8_RGBA4_OES = 0x8B98 :: GLenum
+pattern GL_PALETTE8_RGBA4_OES = 0x8B98
 
-pattern GL_PALETTE8_RGBA8_OES = 0x8B96 :: GLenum
+pattern GL_PALETTE8_RGBA8_OES = 0x8B96
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/DrawTexture.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/DrawTexture.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/DrawTexture.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/DrawTexture.hs
@@ -91,4 +91,4 @@
 
 {-# NOINLINE glDrawTexxvOESFunPtr #-}
 
-pattern GL_TEXTURE_CROP_RECT_OES = 0x8B9D :: GLenum
+pattern GL_TEXTURE_CROP_RECT_OES = 0x8B9D
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/EGLImageExternal.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/EGLImageExternal.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/EGLImageExternal.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/EGLImageExternal.hs
@@ -13,15 +13,14 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_OES_EGL_image_external :: Bool
 gl_OES_EGL_image_external = member "GL_OES_EGL_image_external" extensions
 
-pattern GL_REQUIRED_TEXTURE_IMAGE_UNITS_OES = 0x8D68 :: GLenum
+pattern GL_REQUIRED_TEXTURE_IMAGE_UNITS_OES = 0x8D68
 
-pattern GL_SAMPLER_EXTERNAL_OES = 0x8D66 :: GLenum
+pattern GL_SAMPLER_EXTERNAL_OES = 0x8D66
 
-pattern GL_TEXTURE_BINDING_EXTERNAL_OES = 0x8D67 :: GLenum
+pattern GL_TEXTURE_BINDING_EXTERNAL_OES = 0x8D67
 
-pattern GL_TEXTURE_EXTERNAL_OES = 0x8D65 :: GLenum
+pattern GL_TEXTURE_EXTERNAL_OES = 0x8D65
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/FixedPoint.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/FixedPoint.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/FixedPoint.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/FixedPoint.hs
@@ -968,4 +968,4 @@
 
 {-# NOINLINE glVertex4xvOESFunPtr #-}
 
-pattern GL_FIXED_OES = 0x140C :: GLenum
+pattern GL_FIXED_OES = 0x140C
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/FramebufferObject.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/FramebufferObject.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/FramebufferObject.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/FramebufferObject.hs
@@ -187,60 +187,60 @@
 
 {-# NOINLINE glRenderbufferStorageOESFunPtr #-}
 
-pattern GL_COLOR_ATTACHMENT0_OES = 0x8CE0 :: GLenum
+pattern GL_COLOR_ATTACHMENT0_OES = 0x8CE0
 
-pattern GL_DEPTH_ATTACHMENT_OES = 0x8D00 :: GLenum
+pattern GL_DEPTH_ATTACHMENT_OES = 0x8D00
 
-pattern GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_OES = 0x8CD1 :: GLenum
+pattern GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_OES = 0x8CD1
 
-pattern GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_OES = 0x8CD0 :: GLenum
+pattern GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_OES = 0x8CD0
 
-pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_OES = 0x8CD3 :: GLenum
+pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_OES = 0x8CD3
 
-pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_OES = 0x8CD2 :: GLenum
+pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_OES = 0x8CD2
 
-pattern GL_FRAMEBUFFER_BINDING_OES = 0x8CA6 :: GLenum
+pattern GL_FRAMEBUFFER_BINDING_OES = 0x8CA6
 
-pattern GL_FRAMEBUFFER_COMPLETE_OES = 0x8CD5 :: GLenum
+pattern GL_FRAMEBUFFER_COMPLETE_OES = 0x8CD5
 
-pattern GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_OES = 0x8CD6 :: GLenum
+pattern GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_OES = 0x8CD6
 
-pattern GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_OES = 0x8CD9 :: GLenum
+pattern GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_OES = 0x8CD9
 
-pattern GL_FRAMEBUFFER_INCOMPLETE_FORMATS_OES = 0x8CDA :: GLenum
+pattern GL_FRAMEBUFFER_INCOMPLETE_FORMATS_OES = 0x8CDA
 
-pattern GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_OES = 0x8CD7 :: GLenum
+pattern GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_OES = 0x8CD7
 
-pattern GL_FRAMEBUFFER_OES = 0x8D40 :: GLenum
+pattern GL_FRAMEBUFFER_OES = 0x8D40
 
-pattern GL_FRAMEBUFFER_UNSUPPORTED_OES = 0x8CDD :: GLenum
+pattern GL_FRAMEBUFFER_UNSUPPORTED_OES = 0x8CDD
 
-pattern GL_INVALID_FRAMEBUFFER_OPERATION_OES = 0x0506 :: GLenum
+pattern GL_INVALID_FRAMEBUFFER_OPERATION_OES = 0x0506
 
-pattern GL_MAX_RENDERBUFFER_SIZE_OES = 0x84E8 :: GLenum
+pattern GL_MAX_RENDERBUFFER_SIZE_OES = 0x84E8
 
-pattern GL_NONE_OES = 0 :: GLenum
+pattern GL_NONE_OES = 0
 
-pattern GL_RENDERBUFFER_ALPHA_SIZE_OES = 0x8D53 :: GLenum
+pattern GL_RENDERBUFFER_ALPHA_SIZE_OES = 0x8D53
 
-pattern GL_RENDERBUFFER_BINDING_OES = 0x8CA7 :: GLenum
+pattern GL_RENDERBUFFER_BINDING_OES = 0x8CA7
 
-pattern GL_RENDERBUFFER_BLUE_SIZE_OES = 0x8D52 :: GLenum
+pattern GL_RENDERBUFFER_BLUE_SIZE_OES = 0x8D52
 
-pattern GL_RENDERBUFFER_DEPTH_SIZE_OES = 0x8D54 :: GLenum
+pattern GL_RENDERBUFFER_DEPTH_SIZE_OES = 0x8D54
 
-pattern GL_RENDERBUFFER_GREEN_SIZE_OES = 0x8D51 :: GLenum
+pattern GL_RENDERBUFFER_GREEN_SIZE_OES = 0x8D51
 
-pattern GL_RENDERBUFFER_HEIGHT_OES = 0x8D43 :: GLenum
+pattern GL_RENDERBUFFER_HEIGHT_OES = 0x8D43
 
-pattern GL_RENDERBUFFER_INTERNAL_FORMAT_OES = 0x8D44 :: GLenum
+pattern GL_RENDERBUFFER_INTERNAL_FORMAT_OES = 0x8D44
 
-pattern GL_RENDERBUFFER_OES = 0x8D41 :: GLenum
+pattern GL_RENDERBUFFER_OES = 0x8D41
 
-pattern GL_RENDERBUFFER_RED_SIZE_OES = 0x8D50 :: GLenum
+pattern GL_RENDERBUFFER_RED_SIZE_OES = 0x8D50
 
-pattern GL_RENDERBUFFER_STENCIL_SIZE_OES = 0x8D55 :: GLenum
+pattern GL_RENDERBUFFER_STENCIL_SIZE_OES = 0x8D55
 
-pattern GL_RENDERBUFFER_WIDTH_OES = 0x8D42 :: GLenum
+pattern GL_RENDERBUFFER_WIDTH_OES = 0x8D42
 
-pattern GL_STENCIL_ATTACHMENT_OES = 0x8D20 :: GLenum
+pattern GL_STENCIL_ATTACHMENT_OES = 0x8D20
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/GetProgramBinary.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/GetProgramBinary.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/GetProgramBinary.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/GetProgramBinary.hs
@@ -39,8 +39,8 @@
 
 {-# NOINLINE glProgramBinaryOESFunPtr #-}
 
-pattern GL_NUM_PROGRAM_BINARY_FORMATS_OES = 0x87FE :: GLenum
+pattern GL_NUM_PROGRAM_BINARY_FORMATS_OES = 0x87FE
 
-pattern GL_PROGRAM_BINARY_FORMATS_OES = 0x87FF :: GLenum
+pattern GL_PROGRAM_BINARY_FORMATS_OES = 0x87FF
 
-pattern GL_PROGRAM_BINARY_LENGTH_OES = 0x8741 :: GLenum
+pattern GL_PROGRAM_BINARY_LENGTH_OES = 0x8741
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/Mapbuffer.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/Mapbuffer.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/Mapbuffer.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/Mapbuffer.hs
@@ -49,10 +49,10 @@
 
 {-# NOINLINE glUnmapBufferOESFunPtr #-}
 
-pattern GL_BUFFER_ACCESS_OES = 0x88BB :: GLenum
+pattern GL_BUFFER_ACCESS_OES = 0x88BB
 
-pattern GL_BUFFER_MAPPED_OES = 0x88BC :: GLenum
+pattern GL_BUFFER_MAPPED_OES = 0x88BC
 
-pattern GL_BUFFER_MAP_POINTER_OES = 0x88BD :: GLenum
+pattern GL_BUFFER_MAP_POINTER_OES = 0x88BD
 
-pattern GL_WRITE_ONLY_OES = 0x88B9 :: GLenum
+pattern GL_WRITE_ONLY_OES = 0x88B9
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/MatrixGet.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/MatrixGet.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/MatrixGet.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/MatrixGet.hs
@@ -12,13 +12,12 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_OES_matrix_get :: Bool
 gl_OES_matrix_get = member "GL_OES_matrix_get" extensions
 
-pattern GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES = 0x898D :: GLenum
+pattern GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES = 0x898D
 
-pattern GL_PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES = 0x898E :: GLenum
+pattern GL_PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES = 0x898E
 
-pattern GL_TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES = 0x898F :: GLenum
+pattern GL_TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES = 0x898F
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/MatrixPalette.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/MatrixPalette.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/MatrixPalette.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/MatrixPalette.hs
@@ -70,34 +70,34 @@
 
 {-# NOINLINE glWeightPointerOESFunPtr #-}
 
-pattern GL_CURRENT_PALETTE_MATRIX_OES = 0x8843 :: GLenum
+pattern GL_CURRENT_PALETTE_MATRIX_OES = 0x8843
 
-pattern GL_MATRIX_INDEX_ARRAY_BUFFER_BINDING_OES = 0x8B9E :: GLenum
+pattern GL_MATRIX_INDEX_ARRAY_BUFFER_BINDING_OES = 0x8B9E
 
-pattern GL_MATRIX_INDEX_ARRAY_OES = 0x8844 :: GLenum
+pattern GL_MATRIX_INDEX_ARRAY_OES = 0x8844
 
-pattern GL_MATRIX_INDEX_ARRAY_POINTER_OES = 0x8849 :: GLenum
+pattern GL_MATRIX_INDEX_ARRAY_POINTER_OES = 0x8849
 
-pattern GL_MATRIX_INDEX_ARRAY_SIZE_OES = 0x8846 :: GLenum
+pattern GL_MATRIX_INDEX_ARRAY_SIZE_OES = 0x8846
 
-pattern GL_MATRIX_INDEX_ARRAY_STRIDE_OES = 0x8848 :: GLenum
+pattern GL_MATRIX_INDEX_ARRAY_STRIDE_OES = 0x8848
 
-pattern GL_MATRIX_INDEX_ARRAY_TYPE_OES = 0x8847 :: GLenum
+pattern GL_MATRIX_INDEX_ARRAY_TYPE_OES = 0x8847
 
-pattern GL_MATRIX_PALETTE_OES = 0x8840 :: GLenum
+pattern GL_MATRIX_PALETTE_OES = 0x8840
 
-pattern GL_MAX_PALETTE_MATRICES_OES = 0x8842 :: GLenum
+pattern GL_MAX_PALETTE_MATRICES_OES = 0x8842
 
-pattern GL_MAX_VERTEX_UNITS_OES = 0x86A4 :: GLenum
+pattern GL_MAX_VERTEX_UNITS_OES = 0x86A4
 
-pattern GL_WEIGHT_ARRAY_BUFFER_BINDING_OES = 0x889E :: GLenum
+pattern GL_WEIGHT_ARRAY_BUFFER_BINDING_OES = 0x889E
 
-pattern GL_WEIGHT_ARRAY_OES = 0x86AD :: GLenum
+pattern GL_WEIGHT_ARRAY_OES = 0x86AD
 
-pattern GL_WEIGHT_ARRAY_POINTER_OES = 0x86AC :: GLenum
+pattern GL_WEIGHT_ARRAY_POINTER_OES = 0x86AC
 
-pattern GL_WEIGHT_ARRAY_SIZE_OES = 0x86AB :: GLenum
+pattern GL_WEIGHT_ARRAY_SIZE_OES = 0x86AB
 
-pattern GL_WEIGHT_ARRAY_STRIDE_OES = 0x86AA :: GLenum
+pattern GL_WEIGHT_ARRAY_STRIDE_OES = 0x86AA
 
-pattern GL_WEIGHT_ARRAY_TYPE_OES = 0x86A9 :: GLenum
+pattern GL_WEIGHT_ARRAY_TYPE_OES = 0x86A9
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/PointSizeArray.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/PointSizeArray.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/PointSizeArray.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/PointSizeArray.hs
@@ -32,12 +32,12 @@
 
 {-# NOINLINE glPointSizePointerOESFunPtr #-}
 
-pattern GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES = 0x8B9F :: GLenum
+pattern GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES = 0x8B9F
 
-pattern GL_POINT_SIZE_ARRAY_OES = 0x8B9C :: GLenum
+pattern GL_POINT_SIZE_ARRAY_OES = 0x8B9C
 
-pattern GL_POINT_SIZE_ARRAY_POINTER_OES = 0x898C :: GLenum
+pattern GL_POINT_SIZE_ARRAY_POINTER_OES = 0x898C
 
-pattern GL_POINT_SIZE_ARRAY_STRIDE_OES = 0x898B :: GLenum
+pattern GL_POINT_SIZE_ARRAY_STRIDE_OES = 0x898B
 
-pattern GL_POINT_SIZE_ARRAY_TYPE_OES = 0x898A :: GLenum
+pattern GL_POINT_SIZE_ARRAY_TYPE_OES = 0x898A
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/PointSprite.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/PointSprite.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/PointSprite.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/PointSprite.hs
@@ -11,11 +11,10 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_OES_point_sprite :: Bool
 gl_OES_point_sprite = member "GL_OES_point_sprite" extensions
 
-pattern GL_COORD_REPLACE_OES = 0x8862 :: GLenum
+pattern GL_COORD_REPLACE_OES = 0x8862
 
-pattern GL_POINT_SPRITE_OES = 0x8861 :: GLenum
+pattern GL_POINT_SPRITE_OES = 0x8861
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/ReadFormat.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/ReadFormat.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/ReadFormat.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/ReadFormat.hs
@@ -11,11 +11,10 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_OES_read_format :: Bool
 gl_OES_read_format = member "GL_OES_read_format" extensions
 
-pattern GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES = 0x8B9B :: GLenum
+pattern GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES = 0x8B9B
 
-pattern GL_IMPLEMENTATION_COLOR_READ_TYPE_OES = 0x8B9A :: GLenum
+pattern GL_IMPLEMENTATION_COLOR_READ_TYPE_OES = 0x8B9A
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/RequiredInternalformat.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/RequiredInternalformat.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/RequiredInternalformat.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/RequiredInternalformat.hs
@@ -25,15 +25,14 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
-import Graphics.GL.Raw.Types
 
 gl_OES_required_internalformat :: Bool
 gl_OES_required_internalformat = member "GL_OES_required_internalformat" extensions
 
-pattern GL_ALPHA8_OES = 0x803C :: GLenum
+pattern GL_ALPHA8_OES = 0x803C
 
-pattern GL_LUMINANCE4_ALPHA4_OES = 0x8043 :: GLenum
+pattern GL_LUMINANCE4_ALPHA4_OES = 0x8043
 
-pattern GL_LUMINANCE8_ALPHA8_OES = 0x8045 :: GLenum
+pattern GL_LUMINANCE8_ALPHA8_OES = 0x8045
 
-pattern GL_LUMINANCE8_OES = 0x8040 :: GLenum
+pattern GL_LUMINANCE8_OES = 0x8040
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/SampleShading.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/SampleShading.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/SampleShading.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/SampleShading.hs
@@ -29,6 +29,6 @@
 
 {-# NOINLINE glMinSampleShadingOESFunPtr #-}
 
-pattern GL_MIN_SAMPLE_SHADING_VALUE_OES = 0x8C37 :: GLenum
+pattern GL_MIN_SAMPLE_SHADING_VALUE_OES = 0x8C37
 
-pattern GL_SAMPLE_SHADING_OES = 0x8C36 :: GLenum
+pattern GL_SAMPLE_SHADING_OES = 0x8C36
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/ShaderMultisampleInterpolation.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/ShaderMultisampleInterpolation.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/ShaderMultisampleInterpolation.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/ShaderMultisampleInterpolation.hs
@@ -12,13 +12,12 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_OES_shader_multisample_interpolation :: Bool
 gl_OES_shader_multisample_interpolation = member "GL_OES_shader_multisample_interpolation" extensions
 
-pattern GL_FRAGMENT_INTERPOLATION_OFFSET_BITS_OES = 0x8E5D :: GLenum
+pattern GL_FRAGMENT_INTERPOLATION_OFFSET_BITS_OES = 0x8E5D
 
-pattern GL_MAX_FRAGMENT_INTERPOLATION_OFFSET_OES = 0x8E5C :: GLenum
+pattern GL_MAX_FRAGMENT_INTERPOLATION_OFFSET_OES = 0x8E5C
 
-pattern GL_MIN_FRAGMENT_INTERPOLATION_OFFSET_OES = 0x8E5B :: GLenum
+pattern GL_MIN_FRAGMENT_INTERPOLATION_OFFSET_OES = 0x8E5B
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/StandardDerivatives.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/StandardDerivatives.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/StandardDerivatives.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/StandardDerivatives.hs
@@ -10,9 +10,8 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_OES_standard_derivatives :: Bool
 gl_OES_standard_derivatives = member "GL_OES_standard_derivatives" extensions
 
-pattern GL_FRAGMENT_SHADER_DERIVATIVE_HINT_OES = 0x8B8B :: GLenum
+pattern GL_FRAGMENT_SHADER_DERIVATIVE_HINT_OES = 0x8B8B
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/Stencil1.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/Stencil1.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/Stencil1.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/Stencil1.hs
@@ -10,9 +10,8 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_OES_stencil1 :: Bool
 gl_OES_stencil1 = member "GL_OES_stencil1" extensions
 
-pattern GL_STENCIL_INDEX1_OES = 0x8D46 :: GLenum
+pattern GL_STENCIL_INDEX1_OES = 0x8D46
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/Stencil4.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/Stencil4.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/Stencil4.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/Stencil4.hs
@@ -10,9 +10,8 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_OES_stencil4 :: Bool
 gl_OES_stencil4 = member "GL_OES_stencil4" extensions
 
-pattern GL_STENCIL_INDEX4_OES = 0x8D47 :: GLenum
+pattern GL_STENCIL_INDEX4_OES = 0x8D47
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/StencilWrap.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/StencilWrap.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/StencilWrap.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/StencilWrap.hs
@@ -11,11 +11,10 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_OES_stencil_wrap :: Bool
 gl_OES_stencil_wrap = member "GL_OES_stencil_wrap" extensions
 
-pattern GL_DECR_WRAP_OES = 0x8508 :: GLenum
+pattern GL_DECR_WRAP_OES = 0x8508
 
-pattern GL_INCR_WRAP_OES = 0x8507 :: GLenum
+pattern GL_INCR_WRAP_OES = 0x8507
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/SurfacelessContext.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/SurfacelessContext.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/SurfacelessContext.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/SurfacelessContext.hs
@@ -10,9 +10,8 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_OES_surfaceless_context :: Bool
 gl_OES_surfaceless_context = member "GL_OES_surfaceless_context" extensions
 
-pattern GL_FRAMEBUFFER_UNDEFINED_OES = 0x8219 :: GLenum
+pattern GL_FRAMEBUFFER_UNDEFINED_OES = 0x8219
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/Texture3D.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/Texture3D.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/Texture3D.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/Texture3D.hs
@@ -78,14 +78,14 @@
 
 {-# NOINLINE glTexSubImage3DOESFunPtr #-}
 
-pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_OES = 0x8CD4 :: GLenum
+pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_OES = 0x8CD4
 
-pattern GL_MAX_3D_TEXTURE_SIZE_OES = 0x8073 :: GLenum
+pattern GL_MAX_3D_TEXTURE_SIZE_OES = 0x8073
 
-pattern GL_SAMPLER_3D_OES = 0x8B5F :: GLenum
+pattern GL_SAMPLER_3D_OES = 0x8B5F
 
-pattern GL_TEXTURE_3D_OES = 0x806F :: GLenum
+pattern GL_TEXTURE_3D_OES = 0x806F
 
-pattern GL_TEXTURE_BINDING_3D_OES = 0x806A :: GLenum
+pattern GL_TEXTURE_BINDING_3D_OES = 0x806A
 
-pattern GL_TEXTURE_WRAP_R_OES = 0x8072 :: GLenum
+pattern GL_TEXTURE_WRAP_R_OES = 0x8072
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/TextureCompressionAstc.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/TextureCompressionAstc.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/TextureCompressionAstc.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/TextureCompressionAstc.hs
@@ -58,47 +58,46 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
-import Graphics.GL.Raw.Types
 
 gl_OES_texture_compression_astc :: Bool
 gl_OES_texture_compression_astc = member "GL_OES_texture_compression_astc" extensions
 
-pattern GL_COMPRESSED_RGBA_ASTC_3x3x3_OES = 0x93C0 :: GLenum
+pattern GL_COMPRESSED_RGBA_ASTC_3x3x3_OES = 0x93C0
 
-pattern GL_COMPRESSED_RGBA_ASTC_4x3x3_OES = 0x93C1 :: GLenum
+pattern GL_COMPRESSED_RGBA_ASTC_4x3x3_OES = 0x93C1
 
-pattern GL_COMPRESSED_RGBA_ASTC_4x4x3_OES = 0x93C2 :: GLenum
+pattern GL_COMPRESSED_RGBA_ASTC_4x4x3_OES = 0x93C2
 
-pattern GL_COMPRESSED_RGBA_ASTC_4x4x4_OES = 0x93C3 :: GLenum
+pattern GL_COMPRESSED_RGBA_ASTC_4x4x4_OES = 0x93C3
 
-pattern GL_COMPRESSED_RGBA_ASTC_5x4x4_OES = 0x93C4 :: GLenum
+pattern GL_COMPRESSED_RGBA_ASTC_5x4x4_OES = 0x93C4
 
-pattern GL_COMPRESSED_RGBA_ASTC_5x5x4_OES = 0x93C5 :: GLenum
+pattern GL_COMPRESSED_RGBA_ASTC_5x5x4_OES = 0x93C5
 
-pattern GL_COMPRESSED_RGBA_ASTC_5x5x5_OES = 0x93C6 :: GLenum
+pattern GL_COMPRESSED_RGBA_ASTC_5x5x5_OES = 0x93C6
 
-pattern GL_COMPRESSED_RGBA_ASTC_6x5x5_OES = 0x93C7 :: GLenum
+pattern GL_COMPRESSED_RGBA_ASTC_6x5x5_OES = 0x93C7
 
-pattern GL_COMPRESSED_RGBA_ASTC_6x6x5_OES = 0x93C8 :: GLenum
+pattern GL_COMPRESSED_RGBA_ASTC_6x6x5_OES = 0x93C8
 
-pattern GL_COMPRESSED_RGBA_ASTC_6x6x6_OES = 0x93C9 :: GLenum
+pattern GL_COMPRESSED_RGBA_ASTC_6x6x6_OES = 0x93C9
 
-pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_3x3x3_OES = 0x93E0 :: GLenum
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_3x3x3_OES = 0x93E0
 
-pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x3x3_OES = 0x93E1 :: GLenum
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x3x3_OES = 0x93E1
 
-pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x3_OES = 0x93E2 :: GLenum
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x3_OES = 0x93E2
 
-pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x4_OES = 0x93E3 :: GLenum
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x4_OES = 0x93E3
 
-pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4x4_OES = 0x93E4 :: GLenum
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4x4_OES = 0x93E4
 
-pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x4_OES = 0x93E5 :: GLenum
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x4_OES = 0x93E5
 
-pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x5_OES = 0x93E6 :: GLenum
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x5_OES = 0x93E6
 
-pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5x5_OES = 0x93E7 :: GLenum
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5x5_OES = 0x93E7
 
-pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x5_OES = 0x93E8 :: GLenum
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x5_OES = 0x93E8
 
-pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x6_OES = 0x93E9 :: GLenum
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x6_OES = 0x93E9
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/TextureCubeMap.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/TextureCubeMap.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/TextureCubeMap.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/TextureCubeMap.hs
@@ -89,28 +89,28 @@
 
 {-# NOINLINE glTexGenivOESFunPtr #-}
 
-pattern GL_MAX_CUBE_MAP_TEXTURE_SIZE_OES = 0x851C :: GLenum
+pattern GL_MAX_CUBE_MAP_TEXTURE_SIZE_OES = 0x851C
 
-pattern GL_NORMAL_MAP_OES = 0x8511 :: GLenum
+pattern GL_NORMAL_MAP_OES = 0x8511
 
-pattern GL_REFLECTION_MAP_OES = 0x8512 :: GLenum
+pattern GL_REFLECTION_MAP_OES = 0x8512
 
-pattern GL_TEXTURE_BINDING_CUBE_MAP_OES = 0x8514 :: GLenum
+pattern GL_TEXTURE_BINDING_CUBE_MAP_OES = 0x8514
 
-pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_X_OES = 0x8516 :: GLenum
+pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_X_OES = 0x8516
 
-pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_OES = 0x8518 :: GLenum
+pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_OES = 0x8518
 
-pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_OES = 0x851A :: GLenum
+pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_OES = 0x851A
 
-pattern GL_TEXTURE_CUBE_MAP_OES = 0x8513 :: GLenum
+pattern GL_TEXTURE_CUBE_MAP_OES = 0x8513
 
-pattern GL_TEXTURE_CUBE_MAP_POSITIVE_X_OES = 0x8515 :: GLenum
+pattern GL_TEXTURE_CUBE_MAP_POSITIVE_X_OES = 0x8515
 
-pattern GL_TEXTURE_CUBE_MAP_POSITIVE_Y_OES = 0x8517 :: GLenum
+pattern GL_TEXTURE_CUBE_MAP_POSITIVE_Y_OES = 0x8517
 
-pattern GL_TEXTURE_CUBE_MAP_POSITIVE_Z_OES = 0x8519 :: GLenum
+pattern GL_TEXTURE_CUBE_MAP_POSITIVE_Z_OES = 0x8519
 
-pattern GL_TEXTURE_GEN_MODE_OES = 0x2500 :: GLenum
+pattern GL_TEXTURE_GEN_MODE_OES = 0x2500
 
-pattern GL_TEXTURE_GEN_STR_OES = 0x8D60 :: GLenum
+pattern GL_TEXTURE_GEN_STR_OES = 0x8D60
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/TextureMirroredRepeat.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/TextureMirroredRepeat.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/TextureMirroredRepeat.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/TextureMirroredRepeat.hs
@@ -10,9 +10,8 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_OES_texture_mirrored_repeat :: Bool
 gl_OES_texture_mirrored_repeat = member "GL_OES_texture_mirrored_repeat" extensions
 
-pattern GL_MIRRORED_REPEAT_OES = 0x8370 :: GLenum
+pattern GL_MIRRORED_REPEAT_OES = 0x8370
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/TextureStencil8.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/TextureStencil8.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/TextureStencil8.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/TextureStencil8.hs
@@ -12,9 +12,8 @@
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
 import Graphics.GL.Raw.Internal.Shared
-import Graphics.GL.Raw.Types
 
 gl_OES_texture_stencil8 :: Bool
 gl_OES_texture_stencil8 = member "GL_OES_texture_stencil8" extensions
 
-pattern GL_STENCIL_INDEX_OES = 0x1901 :: GLenum
+pattern GL_STENCIL_INDEX_OES = 0x1901
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/TextureStorageMultisample2dArray.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/TextureStorageMultisample2dArray.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/TextureStorageMultisample2dArray.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/TextureStorageMultisample2dArray.hs
@@ -32,12 +32,12 @@
 
 {-# NOINLINE glTexStorage3DMultisampleOESFunPtr #-}
 
-pattern GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY_OES = 0x910C :: GLenum
+pattern GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY_OES = 0x910C
 
-pattern GL_SAMPLER_2D_MULTISAMPLE_ARRAY_OES = 0x910B :: GLenum
+pattern GL_SAMPLER_2D_MULTISAMPLE_ARRAY_OES = 0x910B
 
-pattern GL_TEXTURE_2D_MULTISAMPLE_ARRAY_OES = 0x9102 :: GLenum
+pattern GL_TEXTURE_2D_MULTISAMPLE_ARRAY_OES = 0x9102
 
-pattern GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY_OES = 0x9105 :: GLenum
+pattern GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY_OES = 0x9105
 
-pattern GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY_OES = 0x910D :: GLenum
+pattern GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY_OES = 0x910D
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/VertexArrayObject.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/VertexArrayObject.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/VertexArrayObject.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/VertexArrayObject.hs
@@ -55,4 +55,4 @@
 
 {-# NOINLINE glIsVertexArrayOESFunPtr #-}
 
-pattern GL_VERTEX_ARRAY_BINDING_OES = 0x85B5 :: GLenum
+pattern GL_VERTEX_ARRAY_BINDING_OES = 0x85B5
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/VertexType1010102.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/VertexType1010102.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/OES/VertexType1010102.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/OES/VertexType1010102.hs
@@ -11,11 +11,10 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_OES_vertex_type_10_10_10_2 :: Bool
 gl_OES_vertex_type_10_10_10_2 = member "GL_OES_vertex_type_10_10_10_2" extensions
 
-pattern GL_INT_10_10_10_2_OES = 0x8DF7 :: GLenum
+pattern GL_INT_10_10_10_2_OES = 0x8DF7
 
-pattern GL_UNSIGNED_INT_10_10_10_2_OES = 0x8DF6 :: GLenum
+pattern GL_UNSIGNED_INT_10_10_10_2_OES = 0x8DF6
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/OML/Interlace.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/OML/Interlace.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/OML/Interlace.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/OML/Interlace.hs
@@ -11,11 +11,10 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_OML_interlace :: Bool
 gl_OML_interlace = member "GL_OML_interlace" extensions
 
-pattern GL_INTERLACE_OML = 0x8980 :: GLenum
+pattern GL_INTERLACE_OML = 0x8980
 
-pattern GL_INTERLACE_READ_OML = 0x8981 :: GLenum
+pattern GL_INTERLACE_READ_OML = 0x8981
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/OML/Resample.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/OML/Resample.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/OML/Resample.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/OML/Resample.hs
@@ -15,19 +15,18 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_OML_resample :: Bool
 gl_OML_resample = member "GL_OML_resample" extensions
 
-pattern GL_PACK_RESAMPLE_OML = 0x8984 :: GLenum
+pattern GL_PACK_RESAMPLE_OML = 0x8984
 
-pattern GL_RESAMPLE_AVERAGE_OML = 0x8988 :: GLenum
+pattern GL_RESAMPLE_AVERAGE_OML = 0x8988
 
-pattern GL_RESAMPLE_DECIMATE_OML = 0x8989 :: GLenum
+pattern GL_RESAMPLE_DECIMATE_OML = 0x8989
 
-pattern GL_RESAMPLE_REPLICATE_OML = 0x8986 :: GLenum
+pattern GL_RESAMPLE_REPLICATE_OML = 0x8986
 
-pattern GL_RESAMPLE_ZERO_FILL_OML = 0x8987 :: GLenum
+pattern GL_RESAMPLE_ZERO_FILL_OML = 0x8987
 
-pattern GL_UNPACK_RESAMPLE_OML = 0x8985 :: GLenum
+pattern GL_UNPACK_RESAMPLE_OML = 0x8985
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/OML/Subsample.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/OML/Subsample.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/OML/Subsample.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/OML/Subsample.hs
@@ -11,11 +11,10 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_OML_subsample :: Bool
 gl_OML_subsample = member "GL_OML_subsample" extensions
 
-pattern GL_FORMAT_SUBSAMPLE_244_244_OML = 0x8983 :: GLenum
+pattern GL_FORMAT_SUBSAMPLE_244_244_OML = 0x8983
 
-pattern GL_FORMAT_SUBSAMPLE_24_24_OML = 0x8982 :: GLenum
+pattern GL_FORMAT_SUBSAMPLE_24_24_OML = 0x8982
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/PGI/MiscHints.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/PGI/MiscHints.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/PGI/MiscHints.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/PGI/MiscHints.hs
@@ -47,42 +47,42 @@
 
 {-# NOINLINE glHintPGIFunPtr #-}
 
-pattern GL_ALLOW_DRAW_FRG_HINT_PGI = 0x1A210 :: GLenum
+pattern GL_ALLOW_DRAW_FRG_HINT_PGI = 0x1A210
 
-pattern GL_ALLOW_DRAW_MEM_HINT_PGI = 0x1A211 :: GLenum
+pattern GL_ALLOW_DRAW_MEM_HINT_PGI = 0x1A211
 
-pattern GL_ALLOW_DRAW_OBJ_HINT_PGI = 0x1A20E :: GLenum
+pattern GL_ALLOW_DRAW_OBJ_HINT_PGI = 0x1A20E
 
-pattern GL_ALLOW_DRAW_WIN_HINT_PGI = 0x1A20F :: GLenum
+pattern GL_ALLOW_DRAW_WIN_HINT_PGI = 0x1A20F
 
-pattern GL_ALWAYS_FAST_HINT_PGI = 0x1A20C :: GLenum
+pattern GL_ALWAYS_FAST_HINT_PGI = 0x1A20C
 
-pattern GL_ALWAYS_SOFT_HINT_PGI = 0x1A20D :: GLenum
+pattern GL_ALWAYS_SOFT_HINT_PGI = 0x1A20D
 
-pattern GL_BACK_NORMALS_HINT_PGI = 0x1A223 :: GLenum
+pattern GL_BACK_NORMALS_HINT_PGI = 0x1A223
 
-pattern GL_CLIP_FAR_HINT_PGI = 0x1A221 :: GLenum
+pattern GL_CLIP_FAR_HINT_PGI = 0x1A221
 
-pattern GL_CLIP_NEAR_HINT_PGI = 0x1A220 :: GLenum
+pattern GL_CLIP_NEAR_HINT_PGI = 0x1A220
 
-pattern GL_CONSERVE_MEMORY_HINT_PGI = 0x1A1FD :: GLenum
+pattern GL_CONSERVE_MEMORY_HINT_PGI = 0x1A1FD
 
-pattern GL_FULL_STIPPLE_HINT_PGI = 0x1A219 :: GLenum
+pattern GL_FULL_STIPPLE_HINT_PGI = 0x1A219
 
-pattern GL_NATIVE_GRAPHICS_BEGIN_HINT_PGI = 0x1A203 :: GLenum
+pattern GL_NATIVE_GRAPHICS_BEGIN_HINT_PGI = 0x1A203
 
-pattern GL_NATIVE_GRAPHICS_END_HINT_PGI = 0x1A204 :: GLenum
+pattern GL_NATIVE_GRAPHICS_END_HINT_PGI = 0x1A204
 
-pattern GL_NATIVE_GRAPHICS_HANDLE_PGI = 0x1A202 :: GLenum
+pattern GL_NATIVE_GRAPHICS_HANDLE_PGI = 0x1A202
 
-pattern GL_PREFER_DOUBLEBUFFER_HINT_PGI = 0x1A1F8 :: GLenum
+pattern GL_PREFER_DOUBLEBUFFER_HINT_PGI = 0x1A1F8
 
-pattern GL_RECLAIM_MEMORY_HINT_PGI = 0x1A1FE :: GLenum
+pattern GL_RECLAIM_MEMORY_HINT_PGI = 0x1A1FE
 
-pattern GL_STRICT_DEPTHFUNC_HINT_PGI = 0x1A216 :: GLenum
+pattern GL_STRICT_DEPTHFUNC_HINT_PGI = 0x1A216
 
-pattern GL_STRICT_LIGHTING_HINT_PGI = 0x1A217 :: GLenum
+pattern GL_STRICT_LIGHTING_HINT_PGI = 0x1A217
 
-pattern GL_STRICT_SCISSOR_HINT_PGI = 0x1A218 :: GLenum
+pattern GL_STRICT_SCISSOR_HINT_PGI = 0x1A218
 
-pattern GL_WIDE_LINE_HINT_PGI = 0x1A222 :: GLenum
+pattern GL_WIDE_LINE_HINT_PGI = 0x1A222
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/PGI/VertexHints.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/PGI/VertexHints.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/PGI/VertexHints.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/PGI/VertexHints.hs
@@ -31,51 +31,50 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_PGI_vertex_hints :: Bool
 gl_PGI_vertex_hints = member "GL_PGI_vertex_hints" extensions
 
-pattern GL_COLOR3_BIT_PGI = 0x00010000 :: GLenum
+pattern GL_COLOR3_BIT_PGI = 0x00010000
 
-pattern GL_COLOR4_BIT_PGI = 0x00020000 :: GLenum
+pattern GL_COLOR4_BIT_PGI = 0x00020000
 
-pattern GL_EDGEFLAG_BIT_PGI = 0x00040000 :: GLenum
+pattern GL_EDGEFLAG_BIT_PGI = 0x00040000
 
-pattern GL_INDEX_BIT_PGI = 0x00080000 :: GLenum
+pattern GL_INDEX_BIT_PGI = 0x00080000
 
-pattern GL_MATERIAL_SIDE_HINT_PGI = 0x1A22C :: GLenum
+pattern GL_MATERIAL_SIDE_HINT_PGI = 0x1A22C
 
-pattern GL_MAT_AMBIENT_AND_DIFFUSE_BIT_PGI = 0x00200000 :: GLenum
+pattern GL_MAT_AMBIENT_AND_DIFFUSE_BIT_PGI = 0x00200000
 
-pattern GL_MAT_AMBIENT_BIT_PGI = 0x00100000 :: GLenum
+pattern GL_MAT_AMBIENT_BIT_PGI = 0x00100000
 
-pattern GL_MAT_COLOR_INDEXES_BIT_PGI = 0x01000000 :: GLenum
+pattern GL_MAT_COLOR_INDEXES_BIT_PGI = 0x01000000
 
-pattern GL_MAT_DIFFUSE_BIT_PGI = 0x00400000 :: GLenum
+pattern GL_MAT_DIFFUSE_BIT_PGI = 0x00400000
 
-pattern GL_MAT_EMISSION_BIT_PGI = 0x00800000 :: GLenum
+pattern GL_MAT_EMISSION_BIT_PGI = 0x00800000
 
-pattern GL_MAT_SHININESS_BIT_PGI = 0x02000000 :: GLenum
+pattern GL_MAT_SHININESS_BIT_PGI = 0x02000000
 
-pattern GL_MAT_SPECULAR_BIT_PGI = 0x04000000 :: GLenum
+pattern GL_MAT_SPECULAR_BIT_PGI = 0x04000000
 
-pattern GL_MAX_VERTEX_HINT_PGI = 0x1A22D :: GLenum
+pattern GL_MAX_VERTEX_HINT_PGI = 0x1A22D
 
-pattern GL_NORMAL_BIT_PGI = 0x08000000 :: GLenum
+pattern GL_NORMAL_BIT_PGI = 0x08000000
 
-pattern GL_TEXCOORD1_BIT_PGI = 0x10000000 :: GLenum
+pattern GL_TEXCOORD1_BIT_PGI = 0x10000000
 
-pattern GL_TEXCOORD2_BIT_PGI = 0x20000000 :: GLenum
+pattern GL_TEXCOORD2_BIT_PGI = 0x20000000
 
-pattern GL_TEXCOORD3_BIT_PGI = 0x40000000 :: GLenum
+pattern GL_TEXCOORD3_BIT_PGI = 0x40000000
 
-pattern GL_TEXCOORD4_BIT_PGI = 0x80000000 :: GLenum
+pattern GL_TEXCOORD4_BIT_PGI = 0x80000000
 
-pattern GL_VERTEX23_BIT_PGI = 0x00000004 :: GLenum
+pattern GL_VERTEX23_BIT_PGI = 0x00000004
 
-pattern GL_VERTEX4_BIT_PGI = 0x00000008 :: GLenum
+pattern GL_VERTEX4_BIT_PGI = 0x00000008
 
-pattern GL_VERTEX_CONSISTENT_HINT_PGI = 0x1A22B :: GLenum
+pattern GL_VERTEX_CONSISTENT_HINT_PGI = 0x1A22B
 
-pattern GL_VERTEX_DATA_HINT_PGI = 0x1A22A :: GLenum
+pattern GL_VERTEX_DATA_HINT_PGI = 0x1A22A
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/QCOM/AlphaTest.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/QCOM/AlphaTest.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/QCOM/AlphaTest.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/QCOM/AlphaTest.hs
@@ -30,8 +30,8 @@
 
 {-# NOINLINE glAlphaFuncQCOMFunPtr #-}
 
-pattern GL_ALPHA_TEST_FUNC_QCOM = 0x0BC1 :: GLenum
+pattern GL_ALPHA_TEST_FUNC_QCOM = 0x0BC1
 
-pattern GL_ALPHA_TEST_QCOM = 0x0BC0 :: GLenum
+pattern GL_ALPHA_TEST_QCOM = 0x0BC0
 
-pattern GL_ALPHA_TEST_REF_QCOM = 0x0BC2 :: GLenum
+pattern GL_ALPHA_TEST_REF_QCOM = 0x0BC2
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/QCOM/BinningControl.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/QCOM/BinningControl.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/QCOM/BinningControl.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/QCOM/BinningControl.hs
@@ -13,15 +13,14 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_QCOM_binning_control :: Bool
 gl_QCOM_binning_control = member "GL_QCOM_binning_control" extensions
 
-pattern GL_BINNING_CONTROL_HINT_QCOM = 0x8FB0 :: GLenum
+pattern GL_BINNING_CONTROL_HINT_QCOM = 0x8FB0
 
-pattern GL_CPU_OPTIMIZED_QCOM = 0x8FB1 :: GLenum
+pattern GL_CPU_OPTIMIZED_QCOM = 0x8FB1
 
-pattern GL_GPU_OPTIMIZED_QCOM = 0x8FB2 :: GLenum
+pattern GL_GPU_OPTIMIZED_QCOM = 0x8FB2
 
-pattern GL_RENDER_DIRECT_TO_FRAMEBUFFER_QCOM = 0x8FB3 :: GLenum
+pattern GL_RENDER_DIRECT_TO_FRAMEBUFFER_QCOM = 0x8FB3
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/QCOM/ExtendedGet.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/QCOM/ExtendedGet.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/QCOM/ExtendedGet.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/QCOM/ExtendedGet.hs
@@ -101,24 +101,24 @@
 
 {-# NOINLINE glExtTexObjectStateOverrideiQCOMFunPtr #-}
 
-pattern GL_STATE_RESTORE = 0x8BDC :: GLenum
+pattern GL_STATE_RESTORE = 0x8BDC
 
-pattern GL_TEXTURE_DEPTH_QCOM = 0x8BD4 :: GLenum
+pattern GL_TEXTURE_DEPTH_QCOM = 0x8BD4
 
-pattern GL_TEXTURE_FORMAT_QCOM = 0x8BD6 :: GLenum
+pattern GL_TEXTURE_FORMAT_QCOM = 0x8BD6
 
-pattern GL_TEXTURE_HEIGHT_QCOM = 0x8BD3 :: GLenum
+pattern GL_TEXTURE_HEIGHT_QCOM = 0x8BD3
 
-pattern GL_TEXTURE_IMAGE_VALID_QCOM = 0x8BD8 :: GLenum
+pattern GL_TEXTURE_IMAGE_VALID_QCOM = 0x8BD8
 
-pattern GL_TEXTURE_INTERNAL_FORMAT_QCOM = 0x8BD5 :: GLenum
+pattern GL_TEXTURE_INTERNAL_FORMAT_QCOM = 0x8BD5
 
-pattern GL_TEXTURE_NUM_LEVELS_QCOM = 0x8BD9 :: GLenum
+pattern GL_TEXTURE_NUM_LEVELS_QCOM = 0x8BD9
 
-pattern GL_TEXTURE_OBJECT_VALID_QCOM = 0x8BDB :: GLenum
+pattern GL_TEXTURE_OBJECT_VALID_QCOM = 0x8BDB
 
-pattern GL_TEXTURE_TARGET_QCOM = 0x8BDA :: GLenum
+pattern GL_TEXTURE_TARGET_QCOM = 0x8BDA
 
-pattern GL_TEXTURE_TYPE_QCOM = 0x8BD7 :: GLenum
+pattern GL_TEXTURE_TYPE_QCOM = 0x8BD7
 
-pattern GL_TEXTURE_WIDTH_QCOM = 0x8BD2 :: GLenum
+pattern GL_TEXTURE_WIDTH_QCOM = 0x8BD2
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/QCOM/PerfmonGlobalMode.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/QCOM/PerfmonGlobalMode.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/QCOM/PerfmonGlobalMode.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/QCOM/PerfmonGlobalMode.hs
@@ -10,9 +10,8 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_QCOM_perfmon_global_mode :: Bool
 gl_QCOM_perfmon_global_mode = member "GL_QCOM_perfmon_global_mode" extensions
 
-pattern GL_PERFMON_GLOBAL_MODE_QCOM = 0x8FA0 :: GLenum
+pattern GL_PERFMON_GLOBAL_MODE_QCOM = 0x8FA0
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/QCOM/TiledRendering.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/QCOM/TiledRendering.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/QCOM/TiledRendering.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/QCOM/TiledRendering.hs
@@ -68,66 +68,66 @@
 
 {-# NOINLINE glStartTilingQCOMFunPtr #-}
 
-pattern GL_COLOR_BUFFER_BIT0_QCOM = 0x00000001 :: GLenum
+pattern GL_COLOR_BUFFER_BIT0_QCOM = 0x00000001
 
-pattern GL_COLOR_BUFFER_BIT1_QCOM = 0x00000002 :: GLenum
+pattern GL_COLOR_BUFFER_BIT1_QCOM = 0x00000002
 
-pattern GL_COLOR_BUFFER_BIT2_QCOM = 0x00000004 :: GLenum
+pattern GL_COLOR_BUFFER_BIT2_QCOM = 0x00000004
 
-pattern GL_COLOR_BUFFER_BIT3_QCOM = 0x00000008 :: GLenum
+pattern GL_COLOR_BUFFER_BIT3_QCOM = 0x00000008
 
-pattern GL_COLOR_BUFFER_BIT4_QCOM = 0x00000010 :: GLenum
+pattern GL_COLOR_BUFFER_BIT4_QCOM = 0x00000010
 
-pattern GL_COLOR_BUFFER_BIT5_QCOM = 0x00000020 :: GLenum
+pattern GL_COLOR_BUFFER_BIT5_QCOM = 0x00000020
 
-pattern GL_COLOR_BUFFER_BIT6_QCOM = 0x00000040 :: GLenum
+pattern GL_COLOR_BUFFER_BIT6_QCOM = 0x00000040
 
-pattern GL_COLOR_BUFFER_BIT7_QCOM = 0x00000080 :: GLenum
+pattern GL_COLOR_BUFFER_BIT7_QCOM = 0x00000080
 
-pattern GL_DEPTH_BUFFER_BIT0_QCOM = 0x00000100 :: GLenum
+pattern GL_DEPTH_BUFFER_BIT0_QCOM = 0x00000100
 
-pattern GL_DEPTH_BUFFER_BIT1_QCOM = 0x00000200 :: GLenum
+pattern GL_DEPTH_BUFFER_BIT1_QCOM = 0x00000200
 
-pattern GL_DEPTH_BUFFER_BIT2_QCOM = 0x00000400 :: GLenum
+pattern GL_DEPTH_BUFFER_BIT2_QCOM = 0x00000400
 
-pattern GL_DEPTH_BUFFER_BIT3_QCOM = 0x00000800 :: GLenum
+pattern GL_DEPTH_BUFFER_BIT3_QCOM = 0x00000800
 
-pattern GL_DEPTH_BUFFER_BIT4_QCOM = 0x00001000 :: GLenum
+pattern GL_DEPTH_BUFFER_BIT4_QCOM = 0x00001000
 
-pattern GL_DEPTH_BUFFER_BIT5_QCOM = 0x00002000 :: GLenum
+pattern GL_DEPTH_BUFFER_BIT5_QCOM = 0x00002000
 
-pattern GL_DEPTH_BUFFER_BIT6_QCOM = 0x00004000 :: GLenum
+pattern GL_DEPTH_BUFFER_BIT6_QCOM = 0x00004000
 
-pattern GL_DEPTH_BUFFER_BIT7_QCOM = 0x00008000 :: GLenum
+pattern GL_DEPTH_BUFFER_BIT7_QCOM = 0x00008000
 
-pattern GL_MULTISAMPLE_BUFFER_BIT0_QCOM = 0x01000000 :: GLenum
+pattern GL_MULTISAMPLE_BUFFER_BIT0_QCOM = 0x01000000
 
-pattern GL_MULTISAMPLE_BUFFER_BIT1_QCOM = 0x02000000 :: GLenum
+pattern GL_MULTISAMPLE_BUFFER_BIT1_QCOM = 0x02000000
 
-pattern GL_MULTISAMPLE_BUFFER_BIT2_QCOM = 0x04000000 :: GLenum
+pattern GL_MULTISAMPLE_BUFFER_BIT2_QCOM = 0x04000000
 
-pattern GL_MULTISAMPLE_BUFFER_BIT3_QCOM = 0x08000000 :: GLenum
+pattern GL_MULTISAMPLE_BUFFER_BIT3_QCOM = 0x08000000
 
-pattern GL_MULTISAMPLE_BUFFER_BIT4_QCOM = 0x10000000 :: GLenum
+pattern GL_MULTISAMPLE_BUFFER_BIT4_QCOM = 0x10000000
 
-pattern GL_MULTISAMPLE_BUFFER_BIT5_QCOM = 0x20000000 :: GLenum
+pattern GL_MULTISAMPLE_BUFFER_BIT5_QCOM = 0x20000000
 
-pattern GL_MULTISAMPLE_BUFFER_BIT6_QCOM = 0x40000000 :: GLenum
+pattern GL_MULTISAMPLE_BUFFER_BIT6_QCOM = 0x40000000
 
-pattern GL_MULTISAMPLE_BUFFER_BIT7_QCOM = 0x80000000 :: GLenum
+pattern GL_MULTISAMPLE_BUFFER_BIT7_QCOM = 0x80000000
 
-pattern GL_STENCIL_BUFFER_BIT0_QCOM = 0x00010000 :: GLenum
+pattern GL_STENCIL_BUFFER_BIT0_QCOM = 0x00010000
 
-pattern GL_STENCIL_BUFFER_BIT1_QCOM = 0x00020000 :: GLenum
+pattern GL_STENCIL_BUFFER_BIT1_QCOM = 0x00020000
 
-pattern GL_STENCIL_BUFFER_BIT2_QCOM = 0x00040000 :: GLenum
+pattern GL_STENCIL_BUFFER_BIT2_QCOM = 0x00040000
 
-pattern GL_STENCIL_BUFFER_BIT3_QCOM = 0x00080000 :: GLenum
+pattern GL_STENCIL_BUFFER_BIT3_QCOM = 0x00080000
 
-pattern GL_STENCIL_BUFFER_BIT4_QCOM = 0x00100000 :: GLenum
+pattern GL_STENCIL_BUFFER_BIT4_QCOM = 0x00100000
 
-pattern GL_STENCIL_BUFFER_BIT5_QCOM = 0x00200000 :: GLenum
+pattern GL_STENCIL_BUFFER_BIT5_QCOM = 0x00200000
 
-pattern GL_STENCIL_BUFFER_BIT6_QCOM = 0x00400000 :: GLenum
+pattern GL_STENCIL_BUFFER_BIT6_QCOM = 0x00400000
 
-pattern GL_STENCIL_BUFFER_BIT7_QCOM = 0x00800000 :: GLenum
+pattern GL_STENCIL_BUFFER_BIT7_QCOM = 0x00800000
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/QCOM/WriteonlyRendering.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/QCOM/WriteonlyRendering.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/QCOM/WriteonlyRendering.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/QCOM/WriteonlyRendering.hs
@@ -10,9 +10,8 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_QCOM_writeonly_rendering :: Bool
 gl_QCOM_writeonly_rendering = member "GL_QCOM_writeonly_rendering" extensions
 
-pattern GL_WRITEONLY_RENDERING_QCOM = 0x8823 :: GLenum
+pattern GL_WRITEONLY_RENDERING_QCOM = 0x8823
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/REND/ScreenCoordinates.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/REND/ScreenCoordinates.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/REND/ScreenCoordinates.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/REND/ScreenCoordinates.hs
@@ -11,11 +11,10 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_REND_screen_coordinates :: Bool
 gl_REND_screen_coordinates = member "GL_REND_screen_coordinates" extensions
 
-pattern GL_INVERTED_SCREEN_W_REND = 0x8491 :: GLenum
+pattern GL_INVERTED_SCREEN_W_REND = 0x8491
 
-pattern GL_SCREEN_COORDINATES_REND = 0x8490 :: GLenum
+pattern GL_SCREEN_COORDINATES_REND = 0x8490
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/S3/S3tc.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/S3/S3tc.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/S3/S3tc.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/S3/S3tc.hs
@@ -15,19 +15,18 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_S3_s3tc :: Bool
 gl_S3_s3tc = member "GL_S3_s3tc" extensions
 
-pattern GL_RGB4_S3TC = 0x83A1 :: GLenum
+pattern GL_RGB4_S3TC = 0x83A1
 
-pattern GL_RGBA4_DXT5_S3TC = 0x83A5 :: GLenum
+pattern GL_RGBA4_DXT5_S3TC = 0x83A5
 
-pattern GL_RGBA4_S3TC = 0x83A3 :: GLenum
+pattern GL_RGBA4_S3TC = 0x83A3
 
-pattern GL_RGBA_DXT5_S3TC = 0x83A4 :: GLenum
+pattern GL_RGBA_DXT5_S3TC = 0x83A4
 
-pattern GL_RGBA_S3TC = 0x83A2 :: GLenum
+pattern GL_RGBA_S3TC = 0x83A2
 
-pattern GL_RGB_S3TC = 0x83A0 :: GLenum
+pattern GL_RGB_S3TC = 0x83A0
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/SGI/ColorMatrix.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/SGI/ColorMatrix.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/SGI/ColorMatrix.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/SGI/ColorMatrix.hs
@@ -20,29 +20,28 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_SGI_color_matrix :: Bool
 gl_SGI_color_matrix = member "GL_SGI_color_matrix" extensions
 
-pattern GL_COLOR_MATRIX_SGI = 0x80B1 :: GLenum
+pattern GL_COLOR_MATRIX_SGI = 0x80B1
 
-pattern GL_COLOR_MATRIX_STACK_DEPTH_SGI = 0x80B2 :: GLenum
+pattern GL_COLOR_MATRIX_STACK_DEPTH_SGI = 0x80B2
 
-pattern GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI = 0x80B3 :: GLenum
+pattern GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI = 0x80B3
 
-pattern GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI = 0x80BB :: GLenum
+pattern GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI = 0x80BB
 
-pattern GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI = 0x80B7 :: GLenum
+pattern GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI = 0x80B7
 
-pattern GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI = 0x80BA :: GLenum
+pattern GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI = 0x80BA
 
-pattern GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI = 0x80B6 :: GLenum
+pattern GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI = 0x80B6
 
-pattern GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI = 0x80B9 :: GLenum
+pattern GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI = 0x80B9
 
-pattern GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI = 0x80B5 :: GLenum
+pattern GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI = 0x80B5
 
-pattern GL_POST_COLOR_MATRIX_RED_BIAS_SGI = 0x80B8 :: GLenum
+pattern GL_POST_COLOR_MATRIX_RED_BIAS_SGI = 0x80B8
 
-pattern GL_POST_COLOR_MATRIX_RED_SCALE_SGI = 0x80B4 :: GLenum
+pattern GL_POST_COLOR_MATRIX_RED_SCALE_SGI = 0x80B4
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/SGI/ColorTable.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/SGI/ColorTable.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/SGI/ColorTable.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/SGI/ColorTable.hs
@@ -97,34 +97,34 @@
 
 {-# NOINLINE glGetColorTableSGIFunPtr #-}
 
-pattern GL_COLOR_TABLE_ALPHA_SIZE_SGI = 0x80DD :: GLenum
+pattern GL_COLOR_TABLE_ALPHA_SIZE_SGI = 0x80DD
 
-pattern GL_COLOR_TABLE_BIAS_SGI = 0x80D7 :: GLenum
+pattern GL_COLOR_TABLE_BIAS_SGI = 0x80D7
 
-pattern GL_COLOR_TABLE_BLUE_SIZE_SGI = 0x80DC :: GLenum
+pattern GL_COLOR_TABLE_BLUE_SIZE_SGI = 0x80DC
 
-pattern GL_COLOR_TABLE_FORMAT_SGI = 0x80D8 :: GLenum
+pattern GL_COLOR_TABLE_FORMAT_SGI = 0x80D8
 
-pattern GL_COLOR_TABLE_GREEN_SIZE_SGI = 0x80DB :: GLenum
+pattern GL_COLOR_TABLE_GREEN_SIZE_SGI = 0x80DB
 
-pattern GL_COLOR_TABLE_INTENSITY_SIZE_SGI = 0x80DF :: GLenum
+pattern GL_COLOR_TABLE_INTENSITY_SIZE_SGI = 0x80DF
 
-pattern GL_COLOR_TABLE_LUMINANCE_SIZE_SGI = 0x80DE :: GLenum
+pattern GL_COLOR_TABLE_LUMINANCE_SIZE_SGI = 0x80DE
 
-pattern GL_COLOR_TABLE_RED_SIZE_SGI = 0x80DA :: GLenum
+pattern GL_COLOR_TABLE_RED_SIZE_SGI = 0x80DA
 
-pattern GL_COLOR_TABLE_SCALE_SGI = 0x80D6 :: GLenum
+pattern GL_COLOR_TABLE_SCALE_SGI = 0x80D6
 
-pattern GL_COLOR_TABLE_SGI = 0x80D0 :: GLenum
+pattern GL_COLOR_TABLE_SGI = 0x80D0
 
-pattern GL_COLOR_TABLE_WIDTH_SGI = 0x80D9 :: GLenum
+pattern GL_COLOR_TABLE_WIDTH_SGI = 0x80D9
 
-pattern GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI = 0x80D2 :: GLenum
+pattern GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI = 0x80D2
 
-pattern GL_POST_CONVOLUTION_COLOR_TABLE_SGI = 0x80D1 :: GLenum
+pattern GL_POST_CONVOLUTION_COLOR_TABLE_SGI = 0x80D1
 
-pattern GL_PROXY_COLOR_TABLE_SGI = 0x80D3 :: GLenum
+pattern GL_PROXY_COLOR_TABLE_SGI = 0x80D3
 
-pattern GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE_SGI = 0x80D5 :: GLenum
+pattern GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE_SGI = 0x80D5
 
-pattern GL_PROXY_POST_CONVOLUTION_COLOR_TABLE_SGI = 0x80D4 :: GLenum
+pattern GL_PROXY_POST_CONVOLUTION_COLOR_TABLE_SGI = 0x80D4
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/SGI/TextureColorTable.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/SGI/TextureColorTable.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/SGI/TextureColorTable.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/SGI/TextureColorTable.hs
@@ -11,11 +11,10 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_SGI_texture_color_table :: Bool
 gl_SGI_texture_color_table = member "GL_SGI_texture_color_table" extensions
 
-pattern GL_PROXY_TEXTURE_COLOR_TABLE_SGI = 0x80BD :: GLenum
+pattern GL_PROXY_TEXTURE_COLOR_TABLE_SGI = 0x80BD
 
-pattern GL_TEXTURE_COLOR_TABLE_SGI = 0x80BC :: GLenum
+pattern GL_TEXTURE_COLOR_TABLE_SGI = 0x80BC
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIS/DetailTexture.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIS/DetailTexture.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIS/DetailTexture.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIS/DetailTexture.hs
@@ -44,18 +44,18 @@
 
 {-# NOINLINE glGetDetailTexFuncSGISFunPtr #-}
 
-pattern GL_DETAIL_TEXTURE_2D_BINDING_SGIS = 0x8096 :: GLenum
+pattern GL_DETAIL_TEXTURE_2D_BINDING_SGIS = 0x8096
 
-pattern GL_DETAIL_TEXTURE_2D_SGIS = 0x8095 :: GLenum
+pattern GL_DETAIL_TEXTURE_2D_SGIS = 0x8095
 
-pattern GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS = 0x809C :: GLenum
+pattern GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS = 0x809C
 
-pattern GL_DETAIL_TEXTURE_LEVEL_SGIS = 0x809A :: GLenum
+pattern GL_DETAIL_TEXTURE_LEVEL_SGIS = 0x809A
 
-pattern GL_DETAIL_TEXTURE_MODE_SGIS = 0x809B :: GLenum
+pattern GL_DETAIL_TEXTURE_MODE_SGIS = 0x809B
 
-pattern GL_LINEAR_DETAIL_ALPHA_SGIS = 0x8098 :: GLenum
+pattern GL_LINEAR_DETAIL_ALPHA_SGIS = 0x8098
 
-pattern GL_LINEAR_DETAIL_COLOR_SGIS = 0x8099 :: GLenum
+pattern GL_LINEAR_DETAIL_COLOR_SGIS = 0x8099
 
-pattern GL_LINEAR_DETAIL_SGIS = 0x8097 :: GLenum
+pattern GL_LINEAR_DETAIL_SGIS = 0x8097
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIS/FogFunction.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIS/FogFunction.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIS/FogFunction.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIS/FogFunction.hs
@@ -39,8 +39,8 @@
 
 {-# NOINLINE glGetFogFuncSGISFunPtr #-}
 
-pattern GL_FOG_FUNC_POINTS_SGIS = 0x812B :: GLenum
+pattern GL_FOG_FUNC_POINTS_SGIS = 0x812B
 
-pattern GL_FOG_FUNC_SGIS = 0x812A :: GLenum
+pattern GL_FOG_FUNC_SGIS = 0x812A
 
-pattern GL_MAX_FOG_FUNC_POINTS_SGIS = 0x812C :: GLenum
+pattern GL_MAX_FOG_FUNC_POINTS_SGIS = 0x812C
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIS/GenerateMipmap.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIS/GenerateMipmap.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIS/GenerateMipmap.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIS/GenerateMipmap.hs
@@ -11,11 +11,10 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_SGIS_generate_mipmap :: Bool
 gl_SGIS_generate_mipmap = member "GL_SGIS_generate_mipmap" extensions
 
-pattern GL_GENERATE_MIPMAP_HINT_SGIS = 0x8192 :: GLenum
+pattern GL_GENERATE_MIPMAP_HINT_SGIS = 0x8192
 
-pattern GL_GENERATE_MIPMAP_SGIS = 0x8191 :: GLenum
+pattern GL_GENERATE_MIPMAP_SGIS = 0x8191
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIS/Multisample.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIS/Multisample.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIS/Multisample.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIS/Multisample.hs
@@ -52,34 +52,34 @@
 
 {-# NOINLINE glSamplePatternSGISFunPtr #-}
 
-pattern GL_1PASS_SGIS = 0x80A1 :: GLenum
+pattern GL_1PASS_SGIS = 0x80A1
 
-pattern GL_2PASS_0_SGIS = 0x80A2 :: GLenum
+pattern GL_2PASS_0_SGIS = 0x80A2
 
-pattern GL_2PASS_1_SGIS = 0x80A3 :: GLenum
+pattern GL_2PASS_1_SGIS = 0x80A3
 
-pattern GL_4PASS_0_SGIS = 0x80A4 :: GLenum
+pattern GL_4PASS_0_SGIS = 0x80A4
 
-pattern GL_4PASS_1_SGIS = 0x80A5 :: GLenum
+pattern GL_4PASS_1_SGIS = 0x80A5
 
-pattern GL_4PASS_2_SGIS = 0x80A6 :: GLenum
+pattern GL_4PASS_2_SGIS = 0x80A6
 
-pattern GL_4PASS_3_SGIS = 0x80A7 :: GLenum
+pattern GL_4PASS_3_SGIS = 0x80A7
 
-pattern GL_MULTISAMPLE_SGIS = 0x809D :: GLenum
+pattern GL_MULTISAMPLE_SGIS = 0x809D
 
-pattern GL_SAMPLES_SGIS = 0x80A9 :: GLenum
+pattern GL_SAMPLES_SGIS = 0x80A9
 
-pattern GL_SAMPLE_ALPHA_TO_MASK_SGIS = 0x809E :: GLenum
+pattern GL_SAMPLE_ALPHA_TO_MASK_SGIS = 0x809E
 
-pattern GL_SAMPLE_ALPHA_TO_ONE_SGIS = 0x809F :: GLenum
+pattern GL_SAMPLE_ALPHA_TO_ONE_SGIS = 0x809F
 
-pattern GL_SAMPLE_BUFFERS_SGIS = 0x80A8 :: GLenum
+pattern GL_SAMPLE_BUFFERS_SGIS = 0x80A8
 
-pattern GL_SAMPLE_MASK_INVERT_SGIS = 0x80AB :: GLenum
+pattern GL_SAMPLE_MASK_INVERT_SGIS = 0x80AB
 
-pattern GL_SAMPLE_MASK_SGIS = 0x80A0 :: GLenum
+pattern GL_SAMPLE_MASK_SGIS = 0x80A0
 
-pattern GL_SAMPLE_MASK_VALUE_SGIS = 0x80AA :: GLenum
+pattern GL_SAMPLE_MASK_VALUE_SGIS = 0x80AA
 
-pattern GL_SAMPLE_PATTERN_SGIS = 0x80AC :: GLenum
+pattern GL_SAMPLE_PATTERN_SGIS = 0x80AC
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIS/PixelTexture.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIS/PixelTexture.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIS/PixelTexture.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIS/PixelTexture.hs
@@ -76,10 +76,10 @@
 
 {-# NOINLINE glPixelTexGenParameterivSGISFunPtr #-}
 
-pattern GL_PIXEL_FRAGMENT_ALPHA_SOURCE_SGIS = 0x8355 :: GLenum
+pattern GL_PIXEL_FRAGMENT_ALPHA_SOURCE_SGIS = 0x8355
 
-pattern GL_PIXEL_FRAGMENT_RGB_SOURCE_SGIS = 0x8354 :: GLenum
+pattern GL_PIXEL_FRAGMENT_RGB_SOURCE_SGIS = 0x8354
 
-pattern GL_PIXEL_GROUP_COLOR_SGIS = 0x8356 :: GLenum
+pattern GL_PIXEL_GROUP_COLOR_SGIS = 0x8356
 
-pattern GL_PIXEL_TEXTURE_SGIS = 0x8353 :: GLenum
+pattern GL_PIXEL_TEXTURE_SGIS = 0x8353
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIS/PointLineTexgen.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIS/PointLineTexgen.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIS/PointLineTexgen.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIS/PointLineTexgen.hs
@@ -17,23 +17,22 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_SGIS_point_line_texgen :: Bool
 gl_SGIS_point_line_texgen = member "GL_SGIS_point_line_texgen" extensions
 
-pattern GL_EYE_DISTANCE_TO_LINE_SGIS = 0x81F2 :: GLenum
+pattern GL_EYE_DISTANCE_TO_LINE_SGIS = 0x81F2
 
-pattern GL_EYE_DISTANCE_TO_POINT_SGIS = 0x81F0 :: GLenum
+pattern GL_EYE_DISTANCE_TO_POINT_SGIS = 0x81F0
 
-pattern GL_EYE_LINE_SGIS = 0x81F6 :: GLenum
+pattern GL_EYE_LINE_SGIS = 0x81F6
 
-pattern GL_EYE_POINT_SGIS = 0x81F4 :: GLenum
+pattern GL_EYE_POINT_SGIS = 0x81F4
 
-pattern GL_OBJECT_DISTANCE_TO_LINE_SGIS = 0x81F3 :: GLenum
+pattern GL_OBJECT_DISTANCE_TO_LINE_SGIS = 0x81F3
 
-pattern GL_OBJECT_DISTANCE_TO_POINT_SGIS = 0x81F1 :: GLenum
+pattern GL_OBJECT_DISTANCE_TO_POINT_SGIS = 0x81F1
 
-pattern GL_OBJECT_LINE_SGIS = 0x81F7 :: GLenum
+pattern GL_OBJECT_LINE_SGIS = 0x81F7
 
-pattern GL_OBJECT_POINT_SGIS = 0x81F5 :: GLenum
+pattern GL_OBJECT_POINT_SGIS = 0x81F5
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIS/PointParameters.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIS/PointParameters.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIS/PointParameters.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIS/PointParameters.hs
@@ -40,10 +40,10 @@
 
 {-# NOINLINE glPointParameterfvSGISFunPtr #-}
 
-pattern GL_DISTANCE_ATTENUATION_SGIS = 0x8129 :: GLenum
+pattern GL_DISTANCE_ATTENUATION_SGIS = 0x8129
 
-pattern GL_POINT_FADE_THRESHOLD_SIZE_SGIS = 0x8128 :: GLenum
+pattern GL_POINT_FADE_THRESHOLD_SIZE_SGIS = 0x8128
 
-pattern GL_POINT_SIZE_MAX_SGIS = 0x8127 :: GLenum
+pattern GL_POINT_SIZE_MAX_SGIS = 0x8127
 
-pattern GL_POINT_SIZE_MIN_SGIS = 0x8126 :: GLenum
+pattern GL_POINT_SIZE_MIN_SGIS = 0x8126
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIS/SharpenTexture.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIS/SharpenTexture.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIS/SharpenTexture.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIS/SharpenTexture.hs
@@ -40,10 +40,10 @@
 
 {-# NOINLINE glSharpenTexFuncSGISFunPtr #-}
 
-pattern GL_LINEAR_SHARPEN_ALPHA_SGIS = 0x80AE :: GLenum
+pattern GL_LINEAR_SHARPEN_ALPHA_SGIS = 0x80AE
 
-pattern GL_LINEAR_SHARPEN_COLOR_SGIS = 0x80AF :: GLenum
+pattern GL_LINEAR_SHARPEN_COLOR_SGIS = 0x80AF
 
-pattern GL_LINEAR_SHARPEN_SGIS = 0x80AD :: GLenum
+pattern GL_LINEAR_SHARPEN_SGIS = 0x80AD
 
-pattern GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS = 0x80B0 :: GLenum
+pattern GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS = 0x80B0
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIS/Texture4D.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIS/Texture4D.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIS/Texture4D.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIS/Texture4D.hs
@@ -46,22 +46,22 @@
 
 {-# NOINLINE glTexSubImage4DSGISFunPtr #-}
 
-pattern GL_MAX_4D_TEXTURE_SIZE_SGIS = 0x8138 :: GLenum
+pattern GL_MAX_4D_TEXTURE_SIZE_SGIS = 0x8138
 
-pattern GL_PACK_IMAGE_DEPTH_SGIS = 0x8131 :: GLenum
+pattern GL_PACK_IMAGE_DEPTH_SGIS = 0x8131
 
-pattern GL_PACK_SKIP_VOLUMES_SGIS = 0x8130 :: GLenum
+pattern GL_PACK_SKIP_VOLUMES_SGIS = 0x8130
 
-pattern GL_PROXY_TEXTURE_4D_SGIS = 0x8135 :: GLenum
+pattern GL_PROXY_TEXTURE_4D_SGIS = 0x8135
 
-pattern GL_TEXTURE_4DSIZE_SGIS = 0x8136 :: GLenum
+pattern GL_TEXTURE_4DSIZE_SGIS = 0x8136
 
-pattern GL_TEXTURE_4D_BINDING_SGIS = 0x814F :: GLenum
+pattern GL_TEXTURE_4D_BINDING_SGIS = 0x814F
 
-pattern GL_TEXTURE_4D_SGIS = 0x8134 :: GLenum
+pattern GL_TEXTURE_4D_SGIS = 0x8134
 
-pattern GL_TEXTURE_WRAP_Q_SGIS = 0x8137 :: GLenum
+pattern GL_TEXTURE_WRAP_Q_SGIS = 0x8137
 
-pattern GL_UNPACK_IMAGE_DEPTH_SGIS = 0x8133 :: GLenum
+pattern GL_UNPACK_IMAGE_DEPTH_SGIS = 0x8133
 
-pattern GL_UNPACK_SKIP_VOLUMES_SGIS = 0x8132 :: GLenum
+pattern GL_UNPACK_SKIP_VOLUMES_SGIS = 0x8132
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIS/TextureBorderClamp.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIS/TextureBorderClamp.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIS/TextureBorderClamp.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIS/TextureBorderClamp.hs
@@ -10,9 +10,8 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_SGIS_texture_border_clamp :: Bool
 gl_SGIS_texture_border_clamp = member "GL_SGIS_texture_border_clamp" extensions
 
-pattern GL_CLAMP_TO_BORDER_SGIS = 0x812D :: GLenum
+pattern GL_CLAMP_TO_BORDER_SGIS = 0x812D
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIS/TextureColorMask.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIS/TextureColorMask.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIS/TextureColorMask.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIS/TextureColorMask.hs
@@ -28,4 +28,4 @@
 
 {-# NOINLINE glTextureColorMaskSGISFunPtr #-}
 
-pattern GL_TEXTURE_COLOR_WRITEMASK_SGIS = 0x81EF :: GLenum
+pattern GL_TEXTURE_COLOR_WRITEMASK_SGIS = 0x81EF
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIS/TextureEdgeClamp.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIS/TextureEdgeClamp.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIS/TextureEdgeClamp.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIS/TextureEdgeClamp.hs
@@ -10,9 +10,8 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_SGIS_texture_edge_clamp :: Bool
 gl_SGIS_texture_edge_clamp = member "GL_SGIS_texture_edge_clamp" extensions
 
-pattern GL_CLAMP_TO_EDGE_SGIS = 0x812F :: GLenum
+pattern GL_CLAMP_TO_EDGE_SGIS = 0x812F
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIS/TextureFilter4.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIS/TextureFilter4.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIS/TextureFilter4.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIS/TextureFilter4.hs
@@ -38,6 +38,6 @@
 
 {-# NOINLINE glTexFilterFuncSGISFunPtr #-}
 
-pattern GL_FILTER4_SGIS = 0x8146 :: GLenum
+pattern GL_FILTER4_SGIS = 0x8146
 
-pattern GL_TEXTURE_FILTER4_SIZE_SGIS = 0x8147 :: GLenum
+pattern GL_TEXTURE_FILTER4_SIZE_SGIS = 0x8147
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIS/TextureLod.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIS/TextureLod.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIS/TextureLod.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIS/TextureLod.hs
@@ -13,15 +13,14 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_SGIS_texture_lod :: Bool
 gl_SGIS_texture_lod = member "GL_SGIS_texture_lod" extensions
 
-pattern GL_TEXTURE_BASE_LEVEL_SGIS = 0x813C :: GLenum
+pattern GL_TEXTURE_BASE_LEVEL_SGIS = 0x813C
 
-pattern GL_TEXTURE_MAX_LEVEL_SGIS = 0x813D :: GLenum
+pattern GL_TEXTURE_MAX_LEVEL_SGIS = 0x813D
 
-pattern GL_TEXTURE_MAX_LOD_SGIS = 0x813B :: GLenum
+pattern GL_TEXTURE_MAX_LOD_SGIS = 0x813B
 
-pattern GL_TEXTURE_MIN_LOD_SGIS = 0x813A :: GLenum
+pattern GL_TEXTURE_MIN_LOD_SGIS = 0x813A
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIS/TextureSelect.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIS/TextureSelect.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIS/TextureSelect.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIS/TextureSelect.hs
@@ -31,51 +31,50 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_SGIS_texture_select :: Bool
 gl_SGIS_texture_select = member "GL_SGIS_texture_select" extensions
 
-pattern GL_DUAL_ALPHA12_SGIS = 0x8112 :: GLenum
+pattern GL_DUAL_ALPHA12_SGIS = 0x8112
 
-pattern GL_DUAL_ALPHA16_SGIS = 0x8113 :: GLenum
+pattern GL_DUAL_ALPHA16_SGIS = 0x8113
 
-pattern GL_DUAL_ALPHA4_SGIS = 0x8110 :: GLenum
+pattern GL_DUAL_ALPHA4_SGIS = 0x8110
 
-pattern GL_DUAL_ALPHA8_SGIS = 0x8111 :: GLenum
+pattern GL_DUAL_ALPHA8_SGIS = 0x8111
 
-pattern GL_DUAL_INTENSITY12_SGIS = 0x811A :: GLenum
+pattern GL_DUAL_INTENSITY12_SGIS = 0x811A
 
-pattern GL_DUAL_INTENSITY16_SGIS = 0x811B :: GLenum
+pattern GL_DUAL_INTENSITY16_SGIS = 0x811B
 
-pattern GL_DUAL_INTENSITY4_SGIS = 0x8118 :: GLenum
+pattern GL_DUAL_INTENSITY4_SGIS = 0x8118
 
-pattern GL_DUAL_INTENSITY8_SGIS = 0x8119 :: GLenum
+pattern GL_DUAL_INTENSITY8_SGIS = 0x8119
 
-pattern GL_DUAL_LUMINANCE12_SGIS = 0x8116 :: GLenum
+pattern GL_DUAL_LUMINANCE12_SGIS = 0x8116
 
-pattern GL_DUAL_LUMINANCE16_SGIS = 0x8117 :: GLenum
+pattern GL_DUAL_LUMINANCE16_SGIS = 0x8117
 
-pattern GL_DUAL_LUMINANCE4_SGIS = 0x8114 :: GLenum
+pattern GL_DUAL_LUMINANCE4_SGIS = 0x8114
 
-pattern GL_DUAL_LUMINANCE8_SGIS = 0x8115 :: GLenum
+pattern GL_DUAL_LUMINANCE8_SGIS = 0x8115
 
-pattern GL_DUAL_LUMINANCE_ALPHA4_SGIS = 0x811C :: GLenum
+pattern GL_DUAL_LUMINANCE_ALPHA4_SGIS = 0x811C
 
-pattern GL_DUAL_LUMINANCE_ALPHA8_SGIS = 0x811D :: GLenum
+pattern GL_DUAL_LUMINANCE_ALPHA8_SGIS = 0x811D
 
-pattern GL_DUAL_TEXTURE_SELECT_SGIS = 0x8124 :: GLenum
+pattern GL_DUAL_TEXTURE_SELECT_SGIS = 0x8124
 
-pattern GL_QUAD_ALPHA4_SGIS = 0x811E :: GLenum
+pattern GL_QUAD_ALPHA4_SGIS = 0x811E
 
-pattern GL_QUAD_ALPHA8_SGIS = 0x811F :: GLenum
+pattern GL_QUAD_ALPHA8_SGIS = 0x811F
 
-pattern GL_QUAD_INTENSITY4_SGIS = 0x8122 :: GLenum
+pattern GL_QUAD_INTENSITY4_SGIS = 0x8122
 
-pattern GL_QUAD_INTENSITY8_SGIS = 0x8123 :: GLenum
+pattern GL_QUAD_INTENSITY8_SGIS = 0x8123
 
-pattern GL_QUAD_LUMINANCE4_SGIS = 0x8120 :: GLenum
+pattern GL_QUAD_LUMINANCE4_SGIS = 0x8120
 
-pattern GL_QUAD_LUMINANCE8_SGIS = 0x8121 :: GLenum
+pattern GL_QUAD_LUMINANCE8_SGIS = 0x8121
 
-pattern GL_QUAD_TEXTURE_SELECT_SGIS = 0x8125 :: GLenum
+pattern GL_QUAD_TEXTURE_SELECT_SGIS = 0x8125
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/Async.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/Async.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/Async.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/Async.hs
@@ -73,4 +73,4 @@
 
 {-# NOINLINE glPollAsyncSGIXFunPtr #-}
 
-pattern GL_ASYNC_MARKER_SGIX = 0x8329 :: GLenum
+pattern GL_ASYNC_MARKER_SGIX = 0x8329
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/AsyncHistogram.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/AsyncHistogram.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/AsyncHistogram.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/AsyncHistogram.hs
@@ -11,11 +11,10 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_SGIX_async_histogram :: Bool
 gl_SGIX_async_histogram = member "GL_SGIX_async_histogram" extensions
 
-pattern GL_ASYNC_HISTOGRAM_SGIX = 0x832C :: GLenum
+pattern GL_ASYNC_HISTOGRAM_SGIX = 0x832C
 
-pattern GL_MAX_ASYNC_HISTOGRAM_SGIX = 0x832D :: GLenum
+pattern GL_MAX_ASYNC_HISTOGRAM_SGIX = 0x832D
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/AsyncPixel.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/AsyncPixel.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/AsyncPixel.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/AsyncPixel.hs
@@ -15,19 +15,18 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_SGIX_async_pixel :: Bool
 gl_SGIX_async_pixel = member "GL_SGIX_async_pixel" extensions
 
-pattern GL_ASYNC_DRAW_PIXELS_SGIX = 0x835D :: GLenum
+pattern GL_ASYNC_DRAW_PIXELS_SGIX = 0x835D
 
-pattern GL_ASYNC_READ_PIXELS_SGIX = 0x835E :: GLenum
+pattern GL_ASYNC_READ_PIXELS_SGIX = 0x835E
 
-pattern GL_ASYNC_TEX_IMAGE_SGIX = 0x835C :: GLenum
+pattern GL_ASYNC_TEX_IMAGE_SGIX = 0x835C
 
-pattern GL_MAX_ASYNC_DRAW_PIXELS_SGIX = 0x8360 :: GLenum
+pattern GL_MAX_ASYNC_DRAW_PIXELS_SGIX = 0x8360
 
-pattern GL_MAX_ASYNC_READ_PIXELS_SGIX = 0x8361 :: GLenum
+pattern GL_MAX_ASYNC_READ_PIXELS_SGIX = 0x8361
 
-pattern GL_MAX_ASYNC_TEX_IMAGE_SGIX = 0x835F :: GLenum
+pattern GL_MAX_ASYNC_TEX_IMAGE_SGIX = 0x835F
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/BlendAlphaMinmax.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/BlendAlphaMinmax.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/BlendAlphaMinmax.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/BlendAlphaMinmax.hs
@@ -11,11 +11,10 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_SGIX_blend_alpha_minmax :: Bool
 gl_SGIX_blend_alpha_minmax = member "GL_SGIX_blend_alpha_minmax" extensions
 
-pattern GL_ALPHA_MAX_SGIX = 0x8321 :: GLenum
+pattern GL_ALPHA_MAX_SGIX = 0x8321
 
-pattern GL_ALPHA_MIN_SGIX = 0x8320 :: GLenum
+pattern GL_ALPHA_MIN_SGIX = 0x8320
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/CalligraphicFragment.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/CalligraphicFragment.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/CalligraphicFragment.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/CalligraphicFragment.hs
@@ -10,9 +10,8 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_SGIX_calligraphic_fragment :: Bool
 gl_SGIX_calligraphic_fragment = member "GL_SGIX_calligraphic_fragment" extensions
 
-pattern GL_CALLIGRAPHIC_FRAGMENT_SGIX = 0x8183 :: GLenum
+pattern GL_CALLIGRAPHIC_FRAGMENT_SGIX = 0x8183
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/Clipmap.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/Clipmap.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/Clipmap.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/Clipmap.hs
@@ -21,31 +21,30 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_SGIX_clipmap :: Bool
 gl_SGIX_clipmap = member "GL_SGIX_clipmap" extensions
 
-pattern GL_LINEAR_CLIPMAP_LINEAR_SGIX = 0x8170 :: GLenum
+pattern GL_LINEAR_CLIPMAP_LINEAR_SGIX = 0x8170
 
-pattern GL_LINEAR_CLIPMAP_NEAREST_SGIX = 0x844F :: GLenum
+pattern GL_LINEAR_CLIPMAP_NEAREST_SGIX = 0x844F
 
-pattern GL_MAX_CLIPMAP_DEPTH_SGIX = 0x8177 :: GLenum
+pattern GL_MAX_CLIPMAP_DEPTH_SGIX = 0x8177
 
-pattern GL_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX = 0x8178 :: GLenum
+pattern GL_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX = 0x8178
 
-pattern GL_NEAREST_CLIPMAP_LINEAR_SGIX = 0x844E :: GLenum
+pattern GL_NEAREST_CLIPMAP_LINEAR_SGIX = 0x844E
 
-pattern GL_NEAREST_CLIPMAP_NEAREST_SGIX = 0x844D :: GLenum
+pattern GL_NEAREST_CLIPMAP_NEAREST_SGIX = 0x844D
 
-pattern GL_TEXTURE_CLIPMAP_CENTER_SGIX = 0x8171 :: GLenum
+pattern GL_TEXTURE_CLIPMAP_CENTER_SGIX = 0x8171
 
-pattern GL_TEXTURE_CLIPMAP_DEPTH_SGIX = 0x8176 :: GLenum
+pattern GL_TEXTURE_CLIPMAP_DEPTH_SGIX = 0x8176
 
-pattern GL_TEXTURE_CLIPMAP_FRAME_SGIX = 0x8172 :: GLenum
+pattern GL_TEXTURE_CLIPMAP_FRAME_SGIX = 0x8172
 
-pattern GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX = 0x8175 :: GLenum
+pattern GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX = 0x8175
 
-pattern GL_TEXTURE_CLIPMAP_OFFSET_SGIX = 0x8173 :: GLenum
+pattern GL_TEXTURE_CLIPMAP_OFFSET_SGIX = 0x8173
 
-pattern GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX = 0x8174 :: GLenum
+pattern GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX = 0x8174
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/ConvolutionAccuracy.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/ConvolutionAccuracy.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/ConvolutionAccuracy.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/ConvolutionAccuracy.hs
@@ -10,9 +10,8 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_SGIX_convolution_accuracy :: Bool
 gl_SGIX_convolution_accuracy = member "GL_SGIX_convolution_accuracy" extensions
 
-pattern GL_CONVOLUTION_HINT_SGIX = 0x8316 :: GLenum
+pattern GL_CONVOLUTION_HINT_SGIX = 0x8316
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/DepthTexture.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/DepthTexture.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/DepthTexture.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/DepthTexture.hs
@@ -12,13 +12,12 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_SGIX_depth_texture :: Bool
 gl_SGIX_depth_texture = member "GL_SGIX_depth_texture" extensions
 
-pattern GL_DEPTH_COMPONENT16_SGIX = 0x81A5 :: GLenum
+pattern GL_DEPTH_COMPONENT16_SGIX = 0x81A5
 
-pattern GL_DEPTH_COMPONENT24_SGIX = 0x81A6 :: GLenum
+pattern GL_DEPTH_COMPONENT24_SGIX = 0x81A6
 
-pattern GL_DEPTH_COMPONENT32_SGIX = 0x81A7 :: GLenum
+pattern GL_DEPTH_COMPONENT32_SGIX = 0x81A7
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/FogOffset.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/FogOffset.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/FogOffset.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/FogOffset.hs
@@ -11,11 +11,10 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_SGIX_fog_offset :: Bool
 gl_SGIX_fog_offset = member "GL_SGIX_fog_offset" extensions
 
-pattern GL_FOG_OFFSET_SGIX = 0x8198 :: GLenum
+pattern GL_FOG_OFFSET_SGIX = 0x8198
 
-pattern GL_FOG_OFFSET_VALUE_SGIX = 0x8199 :: GLenum
+pattern GL_FOG_OFFSET_VALUE_SGIX = 0x8199
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/FragmentLighting.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/FragmentLighting.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/FragmentLighting.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/FragmentLighting.hs
@@ -200,42 +200,42 @@
 
 {-# NOINLINE glLightEnviSGIXFunPtr #-}
 
-pattern GL_CURRENT_RASTER_NORMAL_SGIX = 0x8406 :: GLenum
+pattern GL_CURRENT_RASTER_NORMAL_SGIX = 0x8406
 
-pattern GL_FRAGMENT_COLOR_MATERIAL_FACE_SGIX = 0x8402 :: GLenum
+pattern GL_FRAGMENT_COLOR_MATERIAL_FACE_SGIX = 0x8402
 
-pattern GL_FRAGMENT_COLOR_MATERIAL_PARAMETER_SGIX = 0x8403 :: GLenum
+pattern GL_FRAGMENT_COLOR_MATERIAL_PARAMETER_SGIX = 0x8403
 
-pattern GL_FRAGMENT_COLOR_MATERIAL_SGIX = 0x8401 :: GLenum
+pattern GL_FRAGMENT_COLOR_MATERIAL_SGIX = 0x8401
 
-pattern GL_FRAGMENT_LIGHT0_SGIX = 0x840C :: GLenum
+pattern GL_FRAGMENT_LIGHT0_SGIX = 0x840C
 
-pattern GL_FRAGMENT_LIGHT1_SGIX = 0x840D :: GLenum
+pattern GL_FRAGMENT_LIGHT1_SGIX = 0x840D
 
-pattern GL_FRAGMENT_LIGHT2_SGIX = 0x840E :: GLenum
+pattern GL_FRAGMENT_LIGHT2_SGIX = 0x840E
 
-pattern GL_FRAGMENT_LIGHT3_SGIX = 0x840F :: GLenum
+pattern GL_FRAGMENT_LIGHT3_SGIX = 0x840F
 
-pattern GL_FRAGMENT_LIGHT4_SGIX = 0x8410 :: GLenum
+pattern GL_FRAGMENT_LIGHT4_SGIX = 0x8410
 
-pattern GL_FRAGMENT_LIGHT5_SGIX = 0x8411 :: GLenum
+pattern GL_FRAGMENT_LIGHT5_SGIX = 0x8411
 
-pattern GL_FRAGMENT_LIGHT6_SGIX = 0x8412 :: GLenum
+pattern GL_FRAGMENT_LIGHT6_SGIX = 0x8412
 
-pattern GL_FRAGMENT_LIGHT7_SGIX = 0x8413 :: GLenum
+pattern GL_FRAGMENT_LIGHT7_SGIX = 0x8413
 
-pattern GL_FRAGMENT_LIGHTING_SGIX = 0x8400 :: GLenum
+pattern GL_FRAGMENT_LIGHTING_SGIX = 0x8400
 
-pattern GL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX = 0x840A :: GLenum
+pattern GL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX = 0x840A
 
-pattern GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX = 0x8408 :: GLenum
+pattern GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX = 0x8408
 
-pattern GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX = 0x840B :: GLenum
+pattern GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX = 0x840B
 
-pattern GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX = 0x8409 :: GLenum
+pattern GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX = 0x8409
 
-pattern GL_LIGHT_ENV_MODE_SGIX = 0x8407 :: GLenum
+pattern GL_LIGHT_ENV_MODE_SGIX = 0x8407
 
-pattern GL_MAX_ACTIVE_LIGHTS_SGIX = 0x8405 :: GLenum
+pattern GL_MAX_ACTIVE_LIGHTS_SGIX = 0x8405
 
-pattern GL_MAX_FRAGMENT_LIGHTS_SGIX = 0x8404 :: GLenum
+pattern GL_MAX_FRAGMENT_LIGHTS_SGIX = 0x8404
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/Framezoom.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/Framezoom.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/Framezoom.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/Framezoom.hs
@@ -30,8 +30,8 @@
 
 {-# NOINLINE glFrameZoomSGIXFunPtr #-}
 
-pattern GL_FRAMEZOOM_FACTOR_SGIX = 0x818C :: GLenum
+pattern GL_FRAMEZOOM_FACTOR_SGIX = 0x818C
 
-pattern GL_FRAMEZOOM_SGIX = 0x818B :: GLenum
+pattern GL_FRAMEZOOM_SGIX = 0x818B
 
-pattern GL_MAX_FRAMEZOOM_FACTOR_SGIX = 0x818D :: GLenum
+pattern GL_MAX_FRAMEZOOM_FACTOR_SGIX = 0x818D
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/Instruments.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/Instruments.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/Instruments.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/Instruments.hs
@@ -74,6 +74,6 @@
 
 {-# NOINLINE glStopInstrumentsSGIXFunPtr #-}
 
-pattern GL_INSTRUMENT_BUFFER_POINTER_SGIX = 0x8180 :: GLenum
+pattern GL_INSTRUMENT_BUFFER_POINTER_SGIX = 0x8180
 
-pattern GL_INSTRUMENT_MEASUREMENTS_SGIX = 0x8181 :: GLenum
+pattern GL_INSTRUMENT_MEASUREMENTS_SGIX = 0x8181
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/Interlace.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/Interlace.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/Interlace.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/Interlace.hs
@@ -10,9 +10,8 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_SGIX_interlace :: Bool
 gl_SGIX_interlace = member "GL_SGIX_interlace" extensions
 
-pattern GL_INTERLACE_SGIX = 0x8094 :: GLenum
+pattern GL_INTERLACE_SGIX = 0x8094
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/IrInstrument1.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/IrInstrument1.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/IrInstrument1.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/IrInstrument1.hs
@@ -10,9 +10,8 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_SGIX_ir_instrument1 :: Bool
 gl_SGIX_ir_instrument1 = member "GL_SGIX_ir_instrument1" extensions
 
-pattern GL_IR_INSTRUMENT1_SGIX = 0x817F :: GLenum
+pattern GL_IR_INSTRUMENT1_SGIX = 0x817F
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/ListPriority.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/ListPriority.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/ListPriority.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/ListPriority.hs
@@ -73,4 +73,4 @@
 
 {-# NOINLINE glListParameterivSGIXFunPtr #-}
 
-pattern GL_LIST_PRIORITY_SGIX = 0x8182 :: GLenum
+pattern GL_LIST_PRIORITY_SGIX = 0x8182
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/PixelTexture.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/PixelTexture.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/PixelTexture.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/PixelTexture.hs
@@ -29,6 +29,6 @@
 
 {-# NOINLINE glPixelTexGenSGIXFunPtr #-}
 
-pattern GL_PIXEL_TEX_GEN_MODE_SGIX = 0x832B :: GLenum
+pattern GL_PIXEL_TEX_GEN_MODE_SGIX = 0x832B
 
-pattern GL_PIXEL_TEX_GEN_SGIX = 0x8139 :: GLenum
+pattern GL_PIXEL_TEX_GEN_SGIX = 0x8139
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/PixelTiles.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/PixelTiles.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/PixelTiles.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/PixelTiles.hs
@@ -17,23 +17,22 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_SGIX_pixel_tiles :: Bool
 gl_SGIX_pixel_tiles = member "GL_SGIX_pixel_tiles" extensions
 
-pattern GL_PIXEL_TILE_BEST_ALIGNMENT_SGIX = 0x813E :: GLenum
+pattern GL_PIXEL_TILE_BEST_ALIGNMENT_SGIX = 0x813E
 
-pattern GL_PIXEL_TILE_CACHE_INCREMENT_SGIX = 0x813F :: GLenum
+pattern GL_PIXEL_TILE_CACHE_INCREMENT_SGIX = 0x813F
 
-pattern GL_PIXEL_TILE_CACHE_SIZE_SGIX = 0x8145 :: GLenum
+pattern GL_PIXEL_TILE_CACHE_SIZE_SGIX = 0x8145
 
-pattern GL_PIXEL_TILE_GRID_DEPTH_SGIX = 0x8144 :: GLenum
+pattern GL_PIXEL_TILE_GRID_DEPTH_SGIX = 0x8144
 
-pattern GL_PIXEL_TILE_GRID_HEIGHT_SGIX = 0x8143 :: GLenum
+pattern GL_PIXEL_TILE_GRID_HEIGHT_SGIX = 0x8143
 
-pattern GL_PIXEL_TILE_GRID_WIDTH_SGIX = 0x8142 :: GLenum
+pattern GL_PIXEL_TILE_GRID_WIDTH_SGIX = 0x8142
 
-pattern GL_PIXEL_TILE_HEIGHT_SGIX = 0x8141 :: GLenum
+pattern GL_PIXEL_TILE_HEIGHT_SGIX = 0x8141
 
-pattern GL_PIXEL_TILE_WIDTH_SGIX = 0x8140 :: GLenum
+pattern GL_PIXEL_TILE_WIDTH_SGIX = 0x8140
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/PolynomialFfd.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/PolynomialFfd.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/PolynomialFfd.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/PolynomialFfd.hs
@@ -60,14 +60,14 @@
 
 {-# NOINLINE glLoadIdentityDeformationMapSGIXFunPtr #-}
 
-pattern GL_DEFORMATIONS_MASK_SGIX = 0x8196 :: GLenum
+pattern GL_DEFORMATIONS_MASK_SGIX = 0x8196
 
-pattern GL_GEOMETRY_DEFORMATION_BIT_SGIX = 0x00000002 :: GLenum
+pattern GL_GEOMETRY_DEFORMATION_BIT_SGIX = 0x00000002
 
-pattern GL_GEOMETRY_DEFORMATION_SGIX = 0x8194 :: GLenum
+pattern GL_GEOMETRY_DEFORMATION_SGIX = 0x8194
 
-pattern GL_MAX_DEFORMATION_ORDER_SGIX = 0x8197 :: GLenum
+pattern GL_MAX_DEFORMATION_ORDER_SGIX = 0x8197
 
-pattern GL_TEXTURE_DEFORMATION_BIT_SGIX = 0x00000001 :: GLenum
+pattern GL_TEXTURE_DEFORMATION_BIT_SGIX = 0x00000001
 
-pattern GL_TEXTURE_DEFORMATION_SGIX = 0x8195 :: GLenum
+pattern GL_TEXTURE_DEFORMATION_SGIX = 0x8195
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/ReferencePlane.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/ReferencePlane.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/ReferencePlane.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/ReferencePlane.hs
@@ -29,6 +29,6 @@
 
 {-# NOINLINE glReferencePlaneSGIXFunPtr #-}
 
-pattern GL_REFERENCE_PLANE_EQUATION_SGIX = 0x817E :: GLenum
+pattern GL_REFERENCE_PLANE_EQUATION_SGIX = 0x817E
 
-pattern GL_REFERENCE_PLANE_SGIX = 0x817D :: GLenum
+pattern GL_REFERENCE_PLANE_SGIX = 0x817D
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/Resample.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/Resample.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/Resample.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/Resample.hs
@@ -14,17 +14,16 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_SGIX_resample :: Bool
 gl_SGIX_resample = member "GL_SGIX_resample" extensions
 
-pattern GL_PACK_RESAMPLE_SGIX = 0x842C :: GLenum
+pattern GL_PACK_RESAMPLE_SGIX = 0x842C
 
-pattern GL_RESAMPLE_DECIMATE_SGIX = 0x8430 :: GLenum
+pattern GL_RESAMPLE_DECIMATE_SGIX = 0x8430
 
-pattern GL_RESAMPLE_REPLICATE_SGIX = 0x842E :: GLenum
+pattern GL_RESAMPLE_REPLICATE_SGIX = 0x842E
 
-pattern GL_RESAMPLE_ZERO_FILL_SGIX = 0x842F :: GLenum
+pattern GL_RESAMPLE_ZERO_FILL_SGIX = 0x842F
 
-pattern GL_UNPACK_RESAMPLE_SGIX = 0x842D :: GLenum
+pattern GL_UNPACK_RESAMPLE_SGIX = 0x842D
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/ScalebiasHint.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/ScalebiasHint.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/ScalebiasHint.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/ScalebiasHint.hs
@@ -10,9 +10,8 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_SGIX_scalebias_hint :: Bool
 gl_SGIX_scalebias_hint = member "GL_SGIX_scalebias_hint" extensions
 
-pattern GL_SCALEBIAS_HINT_SGIX = 0x8322 :: GLenum
+pattern GL_SCALEBIAS_HINT_SGIX = 0x8322
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/Shadow.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/Shadow.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/Shadow.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/Shadow.hs
@@ -13,15 +13,14 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_SGIX_shadow :: Bool
 gl_SGIX_shadow = member "GL_SGIX_shadow" extensions
 
-pattern GL_TEXTURE_COMPARE_OPERATOR_SGIX = 0x819B :: GLenum
+pattern GL_TEXTURE_COMPARE_OPERATOR_SGIX = 0x819B
 
-pattern GL_TEXTURE_COMPARE_SGIX = 0x819A :: GLenum
+pattern GL_TEXTURE_COMPARE_SGIX = 0x819A
 
-pattern GL_TEXTURE_GEQUAL_R_SGIX = 0x819D :: GLenum
+pattern GL_TEXTURE_GEQUAL_R_SGIX = 0x819D
 
-pattern GL_TEXTURE_LEQUAL_R_SGIX = 0x819C :: GLenum
+pattern GL_TEXTURE_LEQUAL_R_SGIX = 0x819C
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/ShadowAmbient.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/ShadowAmbient.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/ShadowAmbient.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/ShadowAmbient.hs
@@ -10,9 +10,8 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_SGIX_shadow_ambient :: Bool
 gl_SGIX_shadow_ambient = member "GL_SGIX_shadow_ambient" extensions
 
-pattern GL_SHADOW_AMBIENT_SGIX = 0x80BF :: GLenum
+pattern GL_SHADOW_AMBIENT_SGIX = 0x80BF
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/Sprite.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/Sprite.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/Sprite.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/Sprite.hs
@@ -61,16 +61,16 @@
 
 {-# NOINLINE glSpriteParameterivSGIXFunPtr #-}
 
-pattern GL_SPRITE_AXIAL_SGIX = 0x814C :: GLenum
+pattern GL_SPRITE_AXIAL_SGIX = 0x814C
 
-pattern GL_SPRITE_AXIS_SGIX = 0x814A :: GLenum
+pattern GL_SPRITE_AXIS_SGIX = 0x814A
 
-pattern GL_SPRITE_EYE_ALIGNED_SGIX = 0x814E :: GLenum
+pattern GL_SPRITE_EYE_ALIGNED_SGIX = 0x814E
 
-pattern GL_SPRITE_MODE_SGIX = 0x8149 :: GLenum
+pattern GL_SPRITE_MODE_SGIX = 0x8149
 
-pattern GL_SPRITE_OBJECT_ALIGNED_SGIX = 0x814D :: GLenum
+pattern GL_SPRITE_OBJECT_ALIGNED_SGIX = 0x814D
 
-pattern GL_SPRITE_SGIX = 0x8148 :: GLenum
+pattern GL_SPRITE_SGIX = 0x8148
 
-pattern GL_SPRITE_TRANSLATION_SGIX = 0x814B :: GLenum
+pattern GL_SPRITE_TRANSLATION_SGIX = 0x814B
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/Subsample.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/Subsample.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/Subsample.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/Subsample.hs
@@ -14,17 +14,16 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_SGIX_subsample :: Bool
 gl_SGIX_subsample = member "GL_SGIX_subsample" extensions
 
-pattern GL_PACK_SUBSAMPLE_RATE_SGIX = 0x85A0 :: GLenum
+pattern GL_PACK_SUBSAMPLE_RATE_SGIX = 0x85A0
 
-pattern GL_PIXEL_SUBSAMPLE_2424_SGIX = 0x85A3 :: GLenum
+pattern GL_PIXEL_SUBSAMPLE_2424_SGIX = 0x85A3
 
-pattern GL_PIXEL_SUBSAMPLE_4242_SGIX = 0x85A4 :: GLenum
+pattern GL_PIXEL_SUBSAMPLE_4242_SGIX = 0x85A4
 
-pattern GL_PIXEL_SUBSAMPLE_4444_SGIX = 0x85A2 :: GLenum
+pattern GL_PIXEL_SUBSAMPLE_4444_SGIX = 0x85A2
 
-pattern GL_UNPACK_SUBSAMPLE_RATE_SGIX = 0x85A1 :: GLenum
+pattern GL_UNPACK_SUBSAMPLE_RATE_SGIX = 0x85A1
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/TextureAddEnv.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/TextureAddEnv.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/TextureAddEnv.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/TextureAddEnv.hs
@@ -10,9 +10,8 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_SGIX_texture_add_env :: Bool
 gl_SGIX_texture_add_env = member "GL_SGIX_texture_add_env" extensions
 
-pattern GL_TEXTURE_ENV_BIAS_SGIX = 0x80BE :: GLenum
+pattern GL_TEXTURE_ENV_BIAS_SGIX = 0x80BE
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/TextureCoordinateClamp.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/TextureCoordinateClamp.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/TextureCoordinateClamp.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/TextureCoordinateClamp.hs
@@ -12,13 +12,12 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_SGIX_texture_coordinate_clamp :: Bool
 gl_SGIX_texture_coordinate_clamp = member "GL_SGIX_texture_coordinate_clamp" extensions
 
-pattern GL_TEXTURE_MAX_CLAMP_R_SGIX = 0x836B :: GLenum
+pattern GL_TEXTURE_MAX_CLAMP_R_SGIX = 0x836B
 
-pattern GL_TEXTURE_MAX_CLAMP_S_SGIX = 0x8369 :: GLenum
+pattern GL_TEXTURE_MAX_CLAMP_S_SGIX = 0x8369
 
-pattern GL_TEXTURE_MAX_CLAMP_T_SGIX = 0x836A :: GLenum
+pattern GL_TEXTURE_MAX_CLAMP_T_SGIX = 0x836A
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/TextureLodBias.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/TextureLodBias.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/TextureLodBias.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/TextureLodBias.hs
@@ -12,13 +12,12 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_SGIX_texture_lod_bias :: Bool
 gl_SGIX_texture_lod_bias = member "GL_SGIX_texture_lod_bias" extensions
 
-pattern GL_TEXTURE_LOD_BIAS_R_SGIX = 0x8190 :: GLenum
+pattern GL_TEXTURE_LOD_BIAS_R_SGIX = 0x8190
 
-pattern GL_TEXTURE_LOD_BIAS_S_SGIX = 0x818E :: GLenum
+pattern GL_TEXTURE_LOD_BIAS_S_SGIX = 0x818E
 
-pattern GL_TEXTURE_LOD_BIAS_T_SGIX = 0x818F :: GLenum
+pattern GL_TEXTURE_LOD_BIAS_T_SGIX = 0x818F
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/TextureMultiBuffer.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/TextureMultiBuffer.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/TextureMultiBuffer.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/TextureMultiBuffer.hs
@@ -10,9 +10,8 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_SGIX_texture_multi_buffer :: Bool
 gl_SGIX_texture_multi_buffer = member "GL_SGIX_texture_multi_buffer" extensions
 
-pattern GL_TEXTURE_MULTI_BUFFER_HINT_SGIX = 0x812E :: GLenum
+pattern GL_TEXTURE_MULTI_BUFFER_HINT_SGIX = 0x812E
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/TextureScaleBias.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/TextureScaleBias.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/TextureScaleBias.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/TextureScaleBias.hs
@@ -13,15 +13,14 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_SGIX_texture_scale_bias :: Bool
 gl_SGIX_texture_scale_bias = member "GL_SGIX_texture_scale_bias" extensions
 
-pattern GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX = 0x817B :: GLenum
+pattern GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX = 0x817B
 
-pattern GL_POST_TEXTURE_FILTER_BIAS_SGIX = 0x8179 :: GLenum
+pattern GL_POST_TEXTURE_FILTER_BIAS_SGIX = 0x8179
 
-pattern GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX = 0x817C :: GLenum
+pattern GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX = 0x817C
 
-pattern GL_POST_TEXTURE_FILTER_SCALE_SGIX = 0x817A :: GLenum
+pattern GL_POST_TEXTURE_FILTER_SCALE_SGIX = 0x817A
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/VertexPreclip.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/VertexPreclip.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/VertexPreclip.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/VertexPreclip.hs
@@ -11,11 +11,10 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_SGIX_vertex_preclip :: Bool
 gl_SGIX_vertex_preclip = member "GL_SGIX_vertex_preclip" extensions
 
-pattern GL_VERTEX_PRECLIP_HINT_SGIX = 0x83EF :: GLenum
+pattern GL_VERTEX_PRECLIP_HINT_SGIX = 0x83EF
 
-pattern GL_VERTEX_PRECLIP_SGIX = 0x83EE :: GLenum
+pattern GL_VERTEX_PRECLIP_SGIX = 0x83EE
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/Ycrcb.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/Ycrcb.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/Ycrcb.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/Ycrcb.hs
@@ -11,11 +11,10 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_SGIX_ycrcb :: Bool
 gl_SGIX_ycrcb = member "GL_SGIX_ycrcb" extensions
 
-pattern GL_YCRCB_422_SGIX = 0x81BB :: GLenum
+pattern GL_YCRCB_422_SGIX = 0x81BB
 
-pattern GL_YCRCB_444_SGIX = 0x81BC :: GLenum
+pattern GL_YCRCB_444_SGIX = 0x81BC
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/Ycrcba.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/Ycrcba.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/Ycrcba.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/SGIX/Ycrcba.hs
@@ -11,11 +11,10 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_SGIX_ycrcba :: Bool
 gl_SGIX_ycrcba = member "GL_SGIX_ycrcba" extensions
 
-pattern GL_YCRCBA_SGIX = 0x8319 :: GLenum
+pattern GL_YCRCBA_SGIX = 0x8319
 
-pattern GL_YCRCB_SGIX = 0x8318 :: GLenum
+pattern GL_YCRCB_SGIX = 0x8318
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/SUN/ConvolutionBorderModes.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/SUN/ConvolutionBorderModes.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/SUN/ConvolutionBorderModes.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/SUN/ConvolutionBorderModes.hs
@@ -10,9 +10,8 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_SUN_convolution_border_modes :: Bool
 gl_SUN_convolution_border_modes = member "GL_SUN_convolution_border_modes" extensions
 
-pattern GL_WRAP_BORDER_SUN = 0x81D4 :: GLenum
+pattern GL_WRAP_BORDER_SUN = 0x81D4
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/SUN/GlobalAlpha.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/SUN/GlobalAlpha.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/SUN/GlobalAlpha.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/SUN/GlobalAlpha.hs
@@ -92,6 +92,6 @@
 
 {-# NOINLINE glGlobalAlphaFactorusSUNFunPtr #-}
 
-pattern GL_GLOBAL_ALPHA_FACTOR_SUN = 0x81DA :: GLenum
+pattern GL_GLOBAL_ALPHA_FACTOR_SUN = 0x81DA
 
-pattern GL_GLOBAL_ALPHA_SUN = 0x81D9 :: GLenum
+pattern GL_GLOBAL_ALPHA_SUN = 0x81D9
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/SUN/MeshArray.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/SUN/MeshArray.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/SUN/MeshArray.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/SUN/MeshArray.hs
@@ -29,6 +29,6 @@
 
 {-# NOINLINE glDrawMeshArraysSUNFunPtr #-}
 
-pattern GL_QUAD_MESH_SUN = 0x8614 :: GLenum
+pattern GL_QUAD_MESH_SUN = 0x8614
 
-pattern GL_TRIANGLE_MESH_SUN = 0x8615 :: GLenum
+pattern GL_TRIANGLE_MESH_SUN = 0x8615
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/SUN/SliceAccum.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/SUN/SliceAccum.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/SUN/SliceAccum.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/SUN/SliceAccum.hs
@@ -10,9 +10,8 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_SUN_slice_accum :: Bool
 gl_SUN_slice_accum = member "GL_SUN_slice_accum" extensions
 
-pattern GL_SLICE_ACCUM_SUN = 0x85CC :: GLenum
+pattern GL_SLICE_ACCUM_SUN = 0x85CC
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/SUN/TriangleList.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/SUN/TriangleList.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/SUN/TriangleList.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/SUN/TriangleList.hs
@@ -98,36 +98,36 @@
 
 {-# NOINLINE glReplacementCodeusvSUNFunPtr #-}
 
-pattern GL_R1UI_C3F_V3F_SUN = 0x85C6 :: GLenum
+pattern GL_R1UI_C3F_V3F_SUN = 0x85C6
 
-pattern GL_R1UI_C4F_N3F_V3F_SUN = 0x85C8 :: GLenum
+pattern GL_R1UI_C4F_N3F_V3F_SUN = 0x85C8
 
-pattern GL_R1UI_C4UB_V3F_SUN = 0x85C5 :: GLenum
+pattern GL_R1UI_C4UB_V3F_SUN = 0x85C5
 
-pattern GL_R1UI_N3F_V3F_SUN = 0x85C7 :: GLenum
+pattern GL_R1UI_N3F_V3F_SUN = 0x85C7
 
-pattern GL_R1UI_T2F_C4F_N3F_V3F_SUN = 0x85CB :: GLenum
+pattern GL_R1UI_T2F_C4F_N3F_V3F_SUN = 0x85CB
 
-pattern GL_R1UI_T2F_N3F_V3F_SUN = 0x85CA :: GLenum
+pattern GL_R1UI_T2F_N3F_V3F_SUN = 0x85CA
 
-pattern GL_R1UI_T2F_V3F_SUN = 0x85C9 :: GLenum
+pattern GL_R1UI_T2F_V3F_SUN = 0x85C9
 
-pattern GL_R1UI_V3F_SUN = 0x85C4 :: GLenum
+pattern GL_R1UI_V3F_SUN = 0x85C4
 
-pattern GL_REPLACEMENT_CODE_ARRAY_POINTER_SUN = 0x85C3 :: GLenum
+pattern GL_REPLACEMENT_CODE_ARRAY_POINTER_SUN = 0x85C3
 
-pattern GL_REPLACEMENT_CODE_ARRAY_STRIDE_SUN = 0x85C2 :: GLenum
+pattern GL_REPLACEMENT_CODE_ARRAY_STRIDE_SUN = 0x85C2
 
-pattern GL_REPLACEMENT_CODE_ARRAY_SUN = 0x85C0 :: GLenum
+pattern GL_REPLACEMENT_CODE_ARRAY_SUN = 0x85C0
 
-pattern GL_REPLACEMENT_CODE_ARRAY_TYPE_SUN = 0x85C1 :: GLenum
+pattern GL_REPLACEMENT_CODE_ARRAY_TYPE_SUN = 0x85C1
 
-pattern GL_REPLACEMENT_CODE_SUN = 0x81D8 :: GLenum
+pattern GL_REPLACEMENT_CODE_SUN = 0x81D8
 
-pattern GL_REPLACE_MIDDLE_SUN = 0x0002 :: GLenum
+pattern GL_REPLACE_MIDDLE_SUN = 0x0002
 
-pattern GL_REPLACE_OLDEST_SUN = 0x0003 :: GLenum
+pattern GL_REPLACE_OLDEST_SUN = 0x0003
 
-pattern GL_RESTART_SUN = 0x0001 :: GLenum
+pattern GL_RESTART_SUN = 0x0001
 
-pattern GL_TRIANGLE_LIST_SUN = 0x81D7 :: GLenum
+pattern GL_TRIANGLE_LIST_SUN = 0x81D7
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/SUNX/ConstantData.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/SUNX/ConstantData.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/SUNX/ConstantData.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/SUNX/ConstantData.hs
@@ -15,7 +15,6 @@
 import Foreign.Ptr
 import Graphics.GL.Raw.Internal.FFI
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 import System.IO.Unsafe
 
 gl_SUNX_constant_data :: Bool
@@ -29,6 +28,6 @@
 
 {-# NOINLINE glFinishTextureSUNXFunPtr #-}
 
-pattern GL_TEXTURE_CONSTANT_DATA_SUNX = 0x81D6 :: GLenum
+pattern GL_TEXTURE_CONSTANT_DATA_SUNX = 0x81D6
 
-pattern GL_UNPACK_CONSTANT_DATA_SUNX = 0x81D5 :: GLenum
+pattern GL_UNPACK_CONSTANT_DATA_SUNX = 0x81D5
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ThreeDFX/Multisample.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ThreeDFX/Multisample.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ThreeDFX/Multisample.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ThreeDFX/Multisample.hs
@@ -13,15 +13,14 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_3DFX_multisample :: Bool
 gl_3DFX_multisample = member "GL_3DFX_multisample" extensions
 
-pattern GL_MULTISAMPLE_3DFX = 0x86B2 :: GLenum
+pattern GL_MULTISAMPLE_3DFX = 0x86B2
 
-pattern GL_MULTISAMPLE_BIT_3DFX = 0x20000000 :: GLenum
+pattern GL_MULTISAMPLE_BIT_3DFX = 0x20000000
 
-pattern GL_SAMPLES_3DFX = 0x86B4 :: GLenum
+pattern GL_SAMPLES_3DFX = 0x86B4
 
-pattern GL_SAMPLE_BUFFERS_3DFX = 0x86B3 :: GLenum
+pattern GL_SAMPLE_BUFFERS_3DFX = 0x86B3
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/ThreeDFX/TextureCompressionFXT1.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/ThreeDFX/TextureCompressionFXT1.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/ThreeDFX/TextureCompressionFXT1.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/ThreeDFX/TextureCompressionFXT1.hs
@@ -11,11 +11,10 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_3DFX_texture_compression_FXT1 :: Bool
 gl_3DFX_texture_compression_FXT1 = member "GL_3DFX_texture_compression_FXT1" extensions
 
-pattern GL_COMPRESSED_RGBA_FXT1_3DFX = 0x86B1 :: GLenum
+pattern GL_COMPRESSED_RGBA_FXT1_3DFX = 0x86B1
 
-pattern GL_COMPRESSED_RGB_FXT1_3DFX = 0x86B0 :: GLenum
+pattern GL_COMPRESSED_RGB_FXT1_3DFX = 0x86B0
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/VIV/ShaderBinary.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/VIV/ShaderBinary.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/VIV/ShaderBinary.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/VIV/ShaderBinary.hs
@@ -10,9 +10,8 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_VIV_shader_binary :: Bool
 gl_VIV_shader_binary = member "GL_VIV_shader_binary" extensions
 
-pattern GL_SHADER_BINARY_VIV = 0x8FC4 :: GLenum
+pattern GL_SHADER_BINARY_VIV = 0x8FC4
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/WIN/PhongShading.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/WIN/PhongShading.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/WIN/PhongShading.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/WIN/PhongShading.hs
@@ -11,11 +11,10 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_WIN_phong_shading :: Bool
 gl_WIN_phong_shading = member "GL_WIN_phong_shading" extensions
 
-pattern GL_PHONG_HINT_WIN = 0x80EB :: GLenum
+pattern GL_PHONG_HINT_WIN = 0x80EB
 
-pattern GL_PHONG_WIN = 0x80EA :: GLenum
+pattern GL_PHONG_WIN = 0x80EA
diff --git a/dist/build/autogen/Graphics/GL/Raw/Extension/WIN/SpecularFog.hs b/dist/build/autogen/Graphics/GL/Raw/Extension/WIN/SpecularFog.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Extension/WIN/SpecularFog.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Extension/WIN/SpecularFog.hs
@@ -10,9 +10,8 @@
 
 import Data.Set
 import Graphics.GL.Raw.Internal.Proc
-import Graphics.GL.Raw.Types
 
 gl_WIN_specular_fog :: Bool
 gl_WIN_specular_fog = member "GL_WIN_specular_fog" extensions
 
-pattern GL_FOG_SPECULAR_TEXTURE_WIN = 0x80EC :: GLenum
+pattern GL_FOG_SPECULAR_TEXTURE_WIN = 0x80EC
diff --git a/dist/build/autogen/Graphics/GL/Raw/Internal/FFI.hs b/dist/build/autogen/Graphics/GL/Raw/Internal/FFI.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Internal/FFI.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Internal/FFI.hs
@@ -865,6 +865,7 @@
 import Foreign.C.Types
 import Foreign.Ptr
 import Graphics.GL.Raw.Types
+import Numeric.Fixed
 import Numeric.Half
 
 foreign import ccall "dynamic" dynenumfloatIOV :: FunPtr (GLenum -> GLfloat -> IO ()) -> GLenum -> GLfloat -> IO ()
diff --git a/dist/build/autogen/Graphics/GL/Raw/Internal/Shared.hs b/dist/build/autogen/Graphics/GL/Raw/Internal/Shared.hs
new file mode 100644
--- /dev/null
+++ b/dist/build/autogen/Graphics/GL/Raw/Internal/Shared.hs
@@ -0,0 +1,13454 @@
+-- This file was automatically generated.
+{-# LANGUAGE ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Raw.Internal.Shared where
+
+import Control.Monad.IO.Class
+import Foreign.Ptr
+import Graphics.GL.Raw.Types
+import Graphics.GL.Raw.Internal.FFI
+import Graphics.GL.Raw.Internal.Proc
+import System.IO.Unsafe
+
+glGetUniformi64vNV :: MonadIO m => GLuint -> GLint -> Ptr GLint64EXT -> m ()
+glGetUniformi64vNV = ffiuintintPtrint64EXTIOV glGetUniformi64vNVFunPtr
+
+glGetUniformi64vNVFunPtr :: FunPtr (GLuint -> GLint -> Ptr GLint64EXT -> IO ())
+glGetUniformi64vNVFunPtr = unsafePerformIO (getProcAddress "glGetUniformi64vNV")
+
+{-# NOINLINE glGetUniformi64vNVFunPtr #-}
+
+glGetUniformui64vNV :: MonadIO m => GLuint -> GLint -> Ptr GLuint64EXT -> m ()
+glGetUniformui64vNV = ffiuintintPtruint64EXTIOV glGetUniformui64vNVFunPtr
+
+glGetUniformui64vNVFunPtr :: FunPtr (GLuint -> GLint -> Ptr GLuint64EXT -> IO ())
+glGetUniformui64vNVFunPtr = unsafePerformIO (getProcAddress "glGetUniformui64vNV")
+
+{-# NOINLINE glGetUniformui64vNVFunPtr #-}
+
+glProgramUniform1i64NV :: MonadIO m => GLuint -> GLint -> GLint64EXT -> m ()
+glProgramUniform1i64NV = ffiuintintint64EXTIOV glProgramUniform1i64NVFunPtr
+
+glProgramUniform1i64NVFunPtr :: FunPtr (GLuint -> GLint -> GLint64EXT -> IO ())
+glProgramUniform1i64NVFunPtr = unsafePerformIO (getProcAddress "glProgramUniform1i64NV")
+
+{-# NOINLINE glProgramUniform1i64NVFunPtr #-}
+
+glProgramUniform1i64vNV :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint64EXT -> m ()
+glProgramUniform1i64vNV = ffiuintintsizeiPtrint64EXTIOV glProgramUniform1i64vNVFunPtr
+
+glProgramUniform1i64vNVFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint64EXT -> IO ())
+glProgramUniform1i64vNVFunPtr = unsafePerformIO (getProcAddress "glProgramUniform1i64vNV")
+
+{-# NOINLINE glProgramUniform1i64vNVFunPtr #-}
+
+glProgramUniform1ui64NV :: MonadIO m => GLuint -> GLint -> GLuint64EXT -> m ()
+glProgramUniform1ui64NV = ffiuintintuint64EXTIOV glProgramUniform1ui64NVFunPtr
+
+glProgramUniform1ui64NVFunPtr :: FunPtr (GLuint -> GLint -> GLuint64EXT -> IO ())
+glProgramUniform1ui64NVFunPtr = unsafePerformIO (getProcAddress "glProgramUniform1ui64NV")
+
+{-# NOINLINE glProgramUniform1ui64NVFunPtr #-}
+
+glProgramUniform1ui64vNV :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint64EXT -> m ()
+glProgramUniform1ui64vNV = ffiuintintsizeiPtruint64EXTIOV glProgramUniform1ui64vNVFunPtr
+
+glProgramUniform1ui64vNVFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint64EXT -> IO ())
+glProgramUniform1ui64vNVFunPtr = unsafePerformIO (getProcAddress "glProgramUniform1ui64vNV")
+
+{-# NOINLINE glProgramUniform1ui64vNVFunPtr #-}
+
+glProgramUniform2i64NV :: MonadIO m => GLuint -> GLint -> GLint64EXT -> GLint64EXT -> m ()
+glProgramUniform2i64NV = ffiuintintint64EXTint64EXTIOV glProgramUniform2i64NVFunPtr
+
+glProgramUniform2i64NVFunPtr :: FunPtr (GLuint -> GLint -> GLint64EXT -> GLint64EXT -> IO ())
+glProgramUniform2i64NVFunPtr = unsafePerformIO (getProcAddress "glProgramUniform2i64NV")
+
+{-# NOINLINE glProgramUniform2i64NVFunPtr #-}
+
+glProgramUniform2i64vNV :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint64EXT -> m ()
+glProgramUniform2i64vNV = ffiuintintsizeiPtrint64EXTIOV glProgramUniform2i64vNVFunPtr
+
+glProgramUniform2i64vNVFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint64EXT -> IO ())
+glProgramUniform2i64vNVFunPtr = unsafePerformIO (getProcAddress "glProgramUniform2i64vNV")
+
+{-# NOINLINE glProgramUniform2i64vNVFunPtr #-}
+
+glProgramUniform2ui64NV :: MonadIO m => GLuint -> GLint -> GLuint64EXT -> GLuint64EXT -> m ()
+glProgramUniform2ui64NV = ffiuintintuint64EXTuint64EXTIOV glProgramUniform2ui64NVFunPtr
+
+glProgramUniform2ui64NVFunPtr :: FunPtr (GLuint -> GLint -> GLuint64EXT -> GLuint64EXT -> IO ())
+glProgramUniform2ui64NVFunPtr = unsafePerformIO (getProcAddress "glProgramUniform2ui64NV")
+
+{-# NOINLINE glProgramUniform2ui64NVFunPtr #-}
+
+glProgramUniform2ui64vNV :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint64EXT -> m ()
+glProgramUniform2ui64vNV = ffiuintintsizeiPtruint64EXTIOV glProgramUniform2ui64vNVFunPtr
+
+glProgramUniform2ui64vNVFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint64EXT -> IO ())
+glProgramUniform2ui64vNVFunPtr = unsafePerformIO (getProcAddress "glProgramUniform2ui64vNV")
+
+{-# NOINLINE glProgramUniform2ui64vNVFunPtr #-}
+
+glProgramUniform3i64NV :: MonadIO m => GLuint -> GLint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> m ()
+glProgramUniform3i64NV = ffiuintintint64EXTint64EXTint64EXTIOV glProgramUniform3i64NVFunPtr
+
+glProgramUniform3i64NVFunPtr :: FunPtr (GLuint -> GLint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> IO ())
+glProgramUniform3i64NVFunPtr = unsafePerformIO (getProcAddress "glProgramUniform3i64NV")
+
+{-# NOINLINE glProgramUniform3i64NVFunPtr #-}
+
+glProgramUniform3i64vNV :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint64EXT -> m ()
+glProgramUniform3i64vNV = ffiuintintsizeiPtrint64EXTIOV glProgramUniform3i64vNVFunPtr
+
+glProgramUniform3i64vNVFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint64EXT -> IO ())
+glProgramUniform3i64vNVFunPtr = unsafePerformIO (getProcAddress "glProgramUniform3i64vNV")
+
+{-# NOINLINE glProgramUniform3i64vNVFunPtr #-}
+
+glProgramUniform3ui64NV :: MonadIO m => GLuint -> GLint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> m ()
+glProgramUniform3ui64NV = ffiuintintuint64EXTuint64EXTuint64EXTIOV glProgramUniform3ui64NVFunPtr
+
+glProgramUniform3ui64NVFunPtr :: FunPtr (GLuint -> GLint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> IO ())
+glProgramUniform3ui64NVFunPtr = unsafePerformIO (getProcAddress "glProgramUniform3ui64NV")
+
+{-# NOINLINE glProgramUniform3ui64NVFunPtr #-}
+
+glProgramUniform3ui64vNV :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint64EXT -> m ()
+glProgramUniform3ui64vNV = ffiuintintsizeiPtruint64EXTIOV glProgramUniform3ui64vNVFunPtr
+
+glProgramUniform3ui64vNVFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint64EXT -> IO ())
+glProgramUniform3ui64vNVFunPtr = unsafePerformIO (getProcAddress "glProgramUniform3ui64vNV")
+
+{-# NOINLINE glProgramUniform3ui64vNVFunPtr #-}
+
+glProgramUniform4i64NV :: MonadIO m => GLuint -> GLint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> GLint64EXT -> m ()
+glProgramUniform4i64NV = ffiuintintint64EXTint64EXTint64EXTint64EXTIOV glProgramUniform4i64NVFunPtr
+
+glProgramUniform4i64NVFunPtr :: FunPtr (GLuint -> GLint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> GLint64EXT -> IO ())
+glProgramUniform4i64NVFunPtr = unsafePerformIO (getProcAddress "glProgramUniform4i64NV")
+
+{-# NOINLINE glProgramUniform4i64NVFunPtr #-}
+
+glProgramUniform4i64vNV :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint64EXT -> m ()
+glProgramUniform4i64vNV = ffiuintintsizeiPtrint64EXTIOV glProgramUniform4i64vNVFunPtr
+
+glProgramUniform4i64vNVFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint64EXT -> IO ())
+glProgramUniform4i64vNVFunPtr = unsafePerformIO (getProcAddress "glProgramUniform4i64vNV")
+
+{-# NOINLINE glProgramUniform4i64vNVFunPtr #-}
+
+glProgramUniform4ui64NV :: MonadIO m => GLuint -> GLint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> m ()
+glProgramUniform4ui64NV = ffiuintintuint64EXTuint64EXTuint64EXTuint64EXTIOV glProgramUniform4ui64NVFunPtr
+
+glProgramUniform4ui64NVFunPtr :: FunPtr (GLuint -> GLint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> IO ())
+glProgramUniform4ui64NVFunPtr = unsafePerformIO (getProcAddress "glProgramUniform4ui64NV")
+
+{-# NOINLINE glProgramUniform4ui64NVFunPtr #-}
+
+glProgramUniform4ui64vNV :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint64EXT -> m ()
+glProgramUniform4ui64vNV = ffiuintintsizeiPtruint64EXTIOV glProgramUniform4ui64vNVFunPtr
+
+glProgramUniform4ui64vNVFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint64EXT -> IO ())
+glProgramUniform4ui64vNVFunPtr = unsafePerformIO (getProcAddress "glProgramUniform4ui64vNV")
+
+{-# NOINLINE glProgramUniform4ui64vNVFunPtr #-}
+
+glUniform1i64NV :: MonadIO m => GLint -> GLint64EXT -> m ()
+glUniform1i64NV = ffiintint64EXTIOV glUniform1i64NVFunPtr
+
+glUniform1i64NVFunPtr :: FunPtr (GLint -> GLint64EXT -> IO ())
+glUniform1i64NVFunPtr = unsafePerformIO (getProcAddress "glUniform1i64NV")
+
+{-# NOINLINE glUniform1i64NVFunPtr #-}
+
+glUniform1i64vNV :: MonadIO m => GLint -> GLsizei -> Ptr GLint64EXT -> m ()
+glUniform1i64vNV = ffiintsizeiPtrint64EXTIOV glUniform1i64vNVFunPtr
+
+glUniform1i64vNVFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLint64EXT -> IO ())
+glUniform1i64vNVFunPtr = unsafePerformIO (getProcAddress "glUniform1i64vNV")
+
+{-# NOINLINE glUniform1i64vNVFunPtr #-}
+
+glUniform1ui64NV :: MonadIO m => GLint -> GLuint64EXT -> m ()
+glUniform1ui64NV = ffiintuint64EXTIOV glUniform1ui64NVFunPtr
+
+glUniform1ui64NVFunPtr :: FunPtr (GLint -> GLuint64EXT -> IO ())
+glUniform1ui64NVFunPtr = unsafePerformIO (getProcAddress "glUniform1ui64NV")
+
+{-# NOINLINE glUniform1ui64NVFunPtr #-}
+
+glUniform1ui64vNV :: MonadIO m => GLint -> GLsizei -> Ptr GLuint64EXT -> m ()
+glUniform1ui64vNV = ffiintsizeiPtruint64EXTIOV glUniform1ui64vNVFunPtr
+
+glUniform1ui64vNVFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLuint64EXT -> IO ())
+glUniform1ui64vNVFunPtr = unsafePerformIO (getProcAddress "glUniform1ui64vNV")
+
+{-# NOINLINE glUniform1ui64vNVFunPtr #-}
+
+glUniform2i64NV :: MonadIO m => GLint -> GLint64EXT -> GLint64EXT -> m ()
+glUniform2i64NV = ffiintint64EXTint64EXTIOV glUniform2i64NVFunPtr
+
+glUniform2i64NVFunPtr :: FunPtr (GLint -> GLint64EXT -> GLint64EXT -> IO ())
+glUniform2i64NVFunPtr = unsafePerformIO (getProcAddress "glUniform2i64NV")
+
+{-# NOINLINE glUniform2i64NVFunPtr #-}
+
+glUniform2i64vNV :: MonadIO m => GLint -> GLsizei -> Ptr GLint64EXT -> m ()
+glUniform2i64vNV = ffiintsizeiPtrint64EXTIOV glUniform2i64vNVFunPtr
+
+glUniform2i64vNVFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLint64EXT -> IO ())
+glUniform2i64vNVFunPtr = unsafePerformIO (getProcAddress "glUniform2i64vNV")
+
+{-# NOINLINE glUniform2i64vNVFunPtr #-}
+
+glUniform2ui64NV :: MonadIO m => GLint -> GLuint64EXT -> GLuint64EXT -> m ()
+glUniform2ui64NV = ffiintuint64EXTuint64EXTIOV glUniform2ui64NVFunPtr
+
+glUniform2ui64NVFunPtr :: FunPtr (GLint -> GLuint64EXT -> GLuint64EXT -> IO ())
+glUniform2ui64NVFunPtr = unsafePerformIO (getProcAddress "glUniform2ui64NV")
+
+{-# NOINLINE glUniform2ui64NVFunPtr #-}
+
+glUniform2ui64vNV :: MonadIO m => GLint -> GLsizei -> Ptr GLuint64EXT -> m ()
+glUniform2ui64vNV = ffiintsizeiPtruint64EXTIOV glUniform2ui64vNVFunPtr
+
+glUniform2ui64vNVFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLuint64EXT -> IO ())
+glUniform2ui64vNVFunPtr = unsafePerformIO (getProcAddress "glUniform2ui64vNV")
+
+{-# NOINLINE glUniform2ui64vNVFunPtr #-}
+
+glUniform3i64NV :: MonadIO m => GLint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> m ()
+glUniform3i64NV = ffiintint64EXTint64EXTint64EXTIOV glUniform3i64NVFunPtr
+
+glUniform3i64NVFunPtr :: FunPtr (GLint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> IO ())
+glUniform3i64NVFunPtr = unsafePerformIO (getProcAddress "glUniform3i64NV")
+
+{-# NOINLINE glUniform3i64NVFunPtr #-}
+
+glUniform3i64vNV :: MonadIO m => GLint -> GLsizei -> Ptr GLint64EXT -> m ()
+glUniform3i64vNV = ffiintsizeiPtrint64EXTIOV glUniform3i64vNVFunPtr
+
+glUniform3i64vNVFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLint64EXT -> IO ())
+glUniform3i64vNVFunPtr = unsafePerformIO (getProcAddress "glUniform3i64vNV")
+
+{-# NOINLINE glUniform3i64vNVFunPtr #-}
+
+glUniform3ui64NV :: MonadIO m => GLint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> m ()
+glUniform3ui64NV = ffiintuint64EXTuint64EXTuint64EXTIOV glUniform3ui64NVFunPtr
+
+glUniform3ui64NVFunPtr :: FunPtr (GLint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> IO ())
+glUniform3ui64NVFunPtr = unsafePerformIO (getProcAddress "glUniform3ui64NV")
+
+{-# NOINLINE glUniform3ui64NVFunPtr #-}
+
+glUniform3ui64vNV :: MonadIO m => GLint -> GLsizei -> Ptr GLuint64EXT -> m ()
+glUniform3ui64vNV = ffiintsizeiPtruint64EXTIOV glUniform3ui64vNVFunPtr
+
+glUniform3ui64vNVFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLuint64EXT -> IO ())
+glUniform3ui64vNVFunPtr = unsafePerformIO (getProcAddress "glUniform3ui64vNV")
+
+{-# NOINLINE glUniform3ui64vNVFunPtr #-}
+
+glUniform4i64NV :: MonadIO m => GLint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> GLint64EXT -> m ()
+glUniform4i64NV = ffiintint64EXTint64EXTint64EXTint64EXTIOV glUniform4i64NVFunPtr
+
+glUniform4i64NVFunPtr :: FunPtr (GLint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> GLint64EXT -> IO ())
+glUniform4i64NVFunPtr = unsafePerformIO (getProcAddress "glUniform4i64NV")
+
+{-# NOINLINE glUniform4i64NVFunPtr #-}
+
+glUniform4i64vNV :: MonadIO m => GLint -> GLsizei -> Ptr GLint64EXT -> m ()
+glUniform4i64vNV = ffiintsizeiPtrint64EXTIOV glUniform4i64vNVFunPtr
+
+glUniform4i64vNVFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLint64EXT -> IO ())
+glUniform4i64vNVFunPtr = unsafePerformIO (getProcAddress "glUniform4i64vNV")
+
+{-# NOINLINE glUniform4i64vNVFunPtr #-}
+
+glUniform4ui64NV :: MonadIO m => GLint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> m ()
+glUniform4ui64NV = ffiintuint64EXTuint64EXTuint64EXTuint64EXTIOV glUniform4ui64NVFunPtr
+
+glUniform4ui64NVFunPtr :: FunPtr (GLint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> IO ())
+glUniform4ui64NVFunPtr = unsafePerformIO (getProcAddress "glUniform4ui64NV")
+
+{-# NOINLINE glUniform4ui64NVFunPtr #-}
+
+glUniform4ui64vNV :: MonadIO m => GLint -> GLsizei -> Ptr GLuint64EXT -> m ()
+glUniform4ui64vNV = ffiintsizeiPtruint64EXTIOV glUniform4ui64vNVFunPtr
+
+glUniform4ui64vNVFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLuint64EXT -> IO ())
+glUniform4ui64vNVFunPtr = unsafePerformIO (getProcAddress "glUniform4ui64vNV")
+
+{-# NOINLINE glUniform4ui64vNVFunPtr #-}
+
+pattern GL_FLOAT16_NV = 0x8FF8
+
+pattern GL_FLOAT16_VEC2_NV = 0x8FF9
+
+pattern GL_FLOAT16_VEC3_NV = 0x8FFA
+
+pattern GL_FLOAT16_VEC4_NV = 0x8FFB
+
+pattern GL_INT16_NV = 0x8FE4
+
+pattern GL_INT16_VEC2_NV = 0x8FE5
+
+pattern GL_INT16_VEC3_NV = 0x8FE6
+
+pattern GL_INT16_VEC4_NV = 0x8FE7
+
+pattern GL_INT64_NV = 0x140E
+
+pattern GL_INT64_VEC2_NV = 0x8FE9
+
+pattern GL_INT64_VEC3_NV = 0x8FEA
+
+pattern GL_INT64_VEC4_NV = 0x8FEB
+
+pattern GL_INT8_NV = 0x8FE0
+
+pattern GL_INT8_VEC2_NV = 0x8FE1
+
+pattern GL_INT8_VEC3_NV = 0x8FE2
+
+pattern GL_INT8_VEC4_NV = 0x8FE3
+
+pattern GL_UNSIGNED_INT16_NV = 0x8FF0
+
+pattern GL_UNSIGNED_INT16_VEC2_NV = 0x8FF1
+
+pattern GL_UNSIGNED_INT16_VEC3_NV = 0x8FF2
+
+pattern GL_UNSIGNED_INT16_VEC4_NV = 0x8FF3
+
+pattern GL_UNSIGNED_INT64_NV = 0x140F
+
+pattern GL_UNSIGNED_INT64_VEC2_NV = 0x8FF5
+
+pattern GL_UNSIGNED_INT64_VEC3_NV = 0x8FF6
+
+pattern GL_UNSIGNED_INT64_VEC4_NV = 0x8FF7
+
+pattern GL_UNSIGNED_INT8_NV = 0x8FEC
+
+pattern GL_UNSIGNED_INT8_VEC2_NV = 0x8FED
+
+pattern GL_UNSIGNED_INT8_VEC3_NV = 0x8FEE
+
+pattern GL_UNSIGNED_INT8_VEC4_NV = 0x8FEF
+
+pattern GL_ALPHA = 0x1906
+
+pattern GL_BLUE = 0x1905
+
+pattern GL_GREEN = 0x1904
+
+pattern GL_RED = 0x1903
+
+pattern GL_RG16UI = 0x823A
+
+pattern GL_RG8UI = 0x8238
+
+pattern GL_RGBA8UI = 0x8D7C
+
+pattern GL_TEXTURE_CUBE_MAP_SEAMLESS = 0x884F
+
+pattern GL_DEPTH24_STENCIL8_OES = 0x88F0
+
+pattern GL_DEPTH_COMPONENT = 0x1902
+
+pattern GL_DEPTH_COMPONENT16 = 0x81A5
+
+pattern GL_DEPTH_COMPONENT32_OES = 0x81A7
+
+pattern GL_DEPTH_STENCIL_OES = 0x84F9
+
+pattern GL_UNSIGNED_INT = 0x1405
+
+pattern GL_UNSIGNED_INT_24_8_OES = 0x84FA
+
+pattern GL_UNSIGNED_SHORT = 0x1403
+
+pattern GL_UNSIGNED_SHORT_8_8_APPLE = 0x85BA
+
+pattern GL_UNSIGNED_SHORT_8_8_REV_APPLE = 0x85BB
+
+pattern GL_BGRA8_EXT = 0x93A1
+
+pattern GL_BGRA_EXT = 0x80E1
+
+pattern GL_STORAGE_CACHED_APPLE = 0x85BE
+
+pattern GL_STORAGE_SHARED_APPLE = 0x85BF
+
+glDrawArraysInstancedBaseInstance :: MonadIO m => GLenum -> GLint -> GLsizei -> GLsizei -> GLuint -> m ()
+glDrawArraysInstancedBaseInstance = ffienumintsizeisizeiuintIOV glDrawArraysInstancedBaseInstanceFunPtr
+
+glDrawArraysInstancedBaseInstanceFunPtr :: FunPtr (GLenum -> GLint -> GLsizei -> GLsizei -> GLuint -> IO ())
+glDrawArraysInstancedBaseInstanceFunPtr = unsafePerformIO (getProcAddress "glDrawArraysInstancedBaseInstance")
+
+{-# NOINLINE glDrawArraysInstancedBaseInstanceFunPtr #-}
+
+glDrawElementsInstancedBaseInstance :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> GLuint -> m ()
+glDrawElementsInstancedBaseInstance = ffienumsizeienumPtrVsizeiuintIOV glDrawElementsInstancedBaseInstanceFunPtr
+
+glDrawElementsInstancedBaseInstanceFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> GLuint -> IO ())
+glDrawElementsInstancedBaseInstanceFunPtr = unsafePerformIO (getProcAddress "glDrawElementsInstancedBaseInstance")
+
+{-# NOINLINE glDrawElementsInstancedBaseInstanceFunPtr #-}
+
+glDrawElementsInstancedBaseVertexBaseInstance :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> GLint -> GLuint -> m ()
+glDrawElementsInstancedBaseVertexBaseInstance = ffienumsizeienumPtrVsizeiintuintIOV glDrawElementsInstancedBaseVertexBaseInstanceFunPtr
+
+glDrawElementsInstancedBaseVertexBaseInstanceFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> GLint -> GLuint -> IO ())
+glDrawElementsInstancedBaseVertexBaseInstanceFunPtr = unsafePerformIO (getProcAddress "glDrawElementsInstancedBaseVertexBaseInstance")
+
+{-# NOINLINE glDrawElementsInstancedBaseVertexBaseInstanceFunPtr #-}
+
+glBindFragDataLocationIndexed :: MonadIO m => GLuint -> GLuint -> GLuint -> Ptr GLchar -> m ()
+glBindFragDataLocationIndexed = ffiuintuintuintPtrcharIOV glBindFragDataLocationIndexedFunPtr
+
+glBindFragDataLocationIndexedFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> Ptr GLchar -> IO ())
+glBindFragDataLocationIndexedFunPtr = unsafePerformIO (getProcAddress "glBindFragDataLocationIndexed")
+
+{-# NOINLINE glBindFragDataLocationIndexedFunPtr #-}
+
+glGetFragDataIndex :: MonadIO m => GLuint -> Ptr GLchar -> m GLint
+glGetFragDataIndex = ffiuintPtrcharIOint glGetFragDataIndexFunPtr
+
+glGetFragDataIndexFunPtr :: FunPtr (GLuint -> Ptr GLchar -> IO GLint)
+glGetFragDataIndexFunPtr = unsafePerformIO (getProcAddress "glGetFragDataIndex")
+
+{-# NOINLINE glGetFragDataIndexFunPtr #-}
+
+pattern GL_MAX_DUAL_SOURCE_DRAW_BUFFERS = 0x88FC
+
+pattern GL_ONE_MINUS_SRC1_ALPHA = 0x88FB
+
+pattern GL_ONE_MINUS_SRC1_COLOR = 0x88FA
+
+pattern GL_SRC1_ALPHA = 0x8589
+
+pattern GL_SRC1_COLOR = 0x88F9
+
+glBufferStorage :: MonadIO m => GLenum -> GLsizeiptr -> Ptr () -> GLbitfield -> m ()
+glBufferStorage = ffienumsizeiptrPtrVbitfieldIOV glBufferStorageFunPtr
+
+glBufferStorageFunPtr :: FunPtr (GLenum -> GLsizeiptr -> Ptr () -> GLbitfield -> IO ())
+glBufferStorageFunPtr = unsafePerformIO (getProcAddress "glBufferStorage")
+
+{-# NOINLINE glBufferStorageFunPtr #-}
+
+pattern GL_BUFFER_IMMUTABLE_STORAGE = 0x821F
+
+pattern GL_BUFFER_STORAGE_FLAGS = 0x8220
+
+pattern GL_CLIENT_MAPPED_BUFFER_BARRIER_BIT = 0x00004000
+
+pattern GL_CLIENT_STORAGE_BIT = 0x0200
+
+pattern GL_DYNAMIC_STORAGE_BIT = 0x0100
+
+pattern GL_MAP_COHERENT_BIT = 0x0080
+
+pattern GL_MAP_PERSISTENT_BIT = 0x0040
+
+pattern GL_MAP_READ_BIT = 0x0001
+
+pattern GL_MAP_WRITE_BIT = 0x0002
+
+glClearBufferData :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> Ptr () -> m ()
+glClearBufferData = ffienumenumenumenumPtrVIOV glClearBufferDataFunPtr
+
+glClearBufferDataFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLenum -> Ptr () -> IO ())
+glClearBufferDataFunPtr = unsafePerformIO (getProcAddress "glClearBufferData")
+
+{-# NOINLINE glClearBufferDataFunPtr #-}
+
+glClearBufferSubData :: MonadIO m => GLenum -> GLenum -> GLintptr -> GLsizeiptr -> GLenum -> GLenum -> Ptr () -> m ()
+glClearBufferSubData = ffienumenumintptrsizeiptrenumenumPtrVIOV glClearBufferSubDataFunPtr
+
+glClearBufferSubDataFunPtr :: FunPtr (GLenum -> GLenum -> GLintptr -> GLsizeiptr -> GLenum -> GLenum -> Ptr () -> IO ())
+glClearBufferSubDataFunPtr = unsafePerformIO (getProcAddress "glClearBufferSubData")
+
+{-# NOINLINE glClearBufferSubDataFunPtr #-}
+
+glClearTexImage :: MonadIO m => GLuint -> GLint -> GLenum -> GLenum -> Ptr () -> m ()
+glClearTexImage = ffiuintintenumenumPtrVIOV glClearTexImageFunPtr
+
+glClearTexImageFunPtr :: FunPtr (GLuint -> GLint -> GLenum -> GLenum -> Ptr () -> IO ())
+glClearTexImageFunPtr = unsafePerformIO (getProcAddress "glClearTexImage")
+
+{-# NOINLINE glClearTexImageFunPtr #-}
+
+glClearTexSubImage :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
+glClearTexSubImage = ffiuintintintintintsizeisizeisizeienumenumPtrVIOV glClearTexSubImageFunPtr
+
+glClearTexSubImageFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ())
+glClearTexSubImageFunPtr = unsafePerformIO (getProcAddress "glClearTexSubImage")
+
+{-# NOINLINE glClearTexSubImageFunPtr #-}
+
+pattern GL_CLEAR_TEXTURE = 0x9365
+
+glClipControl :: MonadIO m => GLenum -> GLenum -> m ()
+glClipControl = ffienumenumIOV glClipControlFunPtr
+
+glClipControlFunPtr :: FunPtr (GLenum -> GLenum -> IO ())
+glClipControlFunPtr = unsafePerformIO (getProcAddress "glClipControl")
+
+{-# NOINLINE glClipControlFunPtr #-}
+
+pattern GL_CLIP_DEPTH_MODE = 0x935D
+
+pattern GL_CLIP_ORIGIN = 0x935C
+
+pattern GL_LOWER_LEFT = 0x8CA1
+
+pattern GL_NEGATIVE_ONE_TO_ONE = 0x935E
+
+pattern GL_UPPER_LEFT = 0x8CA2
+
+pattern GL_ZERO_TO_ONE = 0x935F
+
+pattern GL_PACK_COMPRESSED_BLOCK_DEPTH = 0x912D
+
+pattern GL_PACK_COMPRESSED_BLOCK_HEIGHT = 0x912C
+
+pattern GL_PACK_COMPRESSED_BLOCK_SIZE = 0x912E
+
+pattern GL_PACK_COMPRESSED_BLOCK_WIDTH = 0x912B
+
+pattern GL_UNPACK_COMPRESSED_BLOCK_DEPTH = 0x9129
+
+pattern GL_UNPACK_COMPRESSED_BLOCK_HEIGHT = 0x9128
+
+pattern GL_UNPACK_COMPRESSED_BLOCK_SIZE = 0x912A
+
+pattern GL_UNPACK_COMPRESSED_BLOCK_WIDTH = 0x9127
+
+glDispatchCompute :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()
+glDispatchCompute = ffiuintuintuintIOV glDispatchComputeFunPtr
+
+glDispatchComputeFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> IO ())
+glDispatchComputeFunPtr = unsafePerformIO (getProcAddress "glDispatchCompute")
+
+{-# NOINLINE glDispatchComputeFunPtr #-}
+
+glDispatchComputeIndirect :: MonadIO m => GLintptr -> m ()
+glDispatchComputeIndirect = ffiintptrIOV glDispatchComputeIndirectFunPtr
+
+glDispatchComputeIndirectFunPtr :: FunPtr (GLintptr -> IO ())
+glDispatchComputeIndirectFunPtr = unsafePerformIO (getProcAddress "glDispatchComputeIndirect")
+
+{-# NOINLINE glDispatchComputeIndirectFunPtr #-}
+
+pattern GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_COMPUTE_SHADER = 0x90ED
+
+pattern GL_COMPUTE_SHADER = 0x91B9
+
+pattern GL_COMPUTE_SHADER_BIT = 0x00000020
+
+pattern GL_COMPUTE_WORK_GROUP_SIZE = 0x8267
+
+pattern GL_DISPATCH_INDIRECT_BUFFER = 0x90EE
+
+pattern GL_DISPATCH_INDIRECT_BUFFER_BINDING = 0x90EF
+
+pattern GL_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS = 0x8266
+
+pattern GL_MAX_COMPUTE_ATOMIC_COUNTERS = 0x8265
+
+pattern GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS = 0x8264
+
+pattern GL_MAX_COMPUTE_IMAGE_UNIFORMS = 0x91BD
+
+pattern GL_MAX_COMPUTE_SHARED_MEMORY_SIZE = 0x8262
+
+pattern GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS = 0x91BC
+
+pattern GL_MAX_COMPUTE_UNIFORM_BLOCKS = 0x91BB
+
+pattern GL_MAX_COMPUTE_UNIFORM_COMPONENTS = 0x8263
+
+pattern GL_MAX_COMPUTE_WORK_GROUP_COUNT = 0x91BE
+
+pattern GL_MAX_COMPUTE_WORK_GROUP_INVOCATIONS = 0x90EB
+
+pattern GL_MAX_COMPUTE_WORK_GROUP_SIZE = 0x91BF
+
+pattern GL_UNIFORM_BLOCK_REFERENCED_BY_COMPUTE_SHADER = 0x90EC
+
+pattern GL_QUERY_BY_REGION_NO_WAIT_INVERTED = 0x8E1A
+
+pattern GL_QUERY_BY_REGION_WAIT_INVERTED = 0x8E19
+
+pattern GL_QUERY_NO_WAIT_INVERTED = 0x8E18
+
+pattern GL_QUERY_WAIT_INVERTED = 0x8E17
+
+glCopyBufferSubData :: MonadIO m => GLenum -> GLenum -> GLintptr -> GLintptr -> GLsizeiptr -> m ()
+glCopyBufferSubData = ffienumenumintptrintptrsizeiptrIOV glCopyBufferSubDataFunPtr
+
+glCopyBufferSubDataFunPtr :: FunPtr (GLenum -> GLenum -> GLintptr -> GLintptr -> GLsizeiptr -> IO ())
+glCopyBufferSubDataFunPtr = unsafePerformIO (getProcAddress "glCopyBufferSubData")
+
+{-# NOINLINE glCopyBufferSubDataFunPtr #-}
+
+pattern GL_COPY_READ_BUFFER = 0x8F36
+
+pattern GL_COPY_WRITE_BUFFER = 0x8F37
+
+glCopyImageSubData :: MonadIO m => GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> m ()
+glCopyImageSubData = ffiuintenumintintintintuintenumintintintintsizeisizeisizeiIOV glCopyImageSubDataFunPtr
+
+glCopyImageSubDataFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> IO ())
+glCopyImageSubDataFunPtr = unsafePerformIO (getProcAddress "glCopyImageSubData")
+
+{-# NOINLINE glCopyImageSubDataFunPtr #-}
+
+pattern GL_MAX_COMBINED_CLIP_AND_CULL_DISTANCES = 0x82FA
+
+pattern GL_MAX_CULL_DISTANCES = 0x82F9
+
+pattern GL_DEPTH32F_STENCIL8 = 0x8CAD
+
+pattern GL_DEPTH_COMPONENT32F = 0x8CAC
+
+pattern GL_FLOAT_32_UNSIGNED_INT_24_8_REV = 0x8DAD
+
+pattern GL_DEPTH_CLAMP = 0x864F
+
+glBindTextureUnit :: MonadIO m => GLuint -> GLuint -> m ()
+glBindTextureUnit = ffiuintuintIOV glBindTextureUnitFunPtr
+
+glBindTextureUnitFunPtr :: FunPtr (GLuint -> GLuint -> IO ())
+glBindTextureUnitFunPtr = unsafePerformIO (getProcAddress "glBindTextureUnit")
+
+{-# NOINLINE glBindTextureUnitFunPtr #-}
+
+glBlitNamedFramebuffer :: MonadIO m => GLuint -> GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLbitfield -> GLenum -> m ()
+glBlitNamedFramebuffer = ffiuintuintintintintintintintintintbitfieldenumIOV glBlitNamedFramebufferFunPtr
+
+glBlitNamedFramebufferFunPtr :: FunPtr (GLuint -> GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLbitfield -> GLenum -> IO ())
+glBlitNamedFramebufferFunPtr = unsafePerformIO (getProcAddress "glBlitNamedFramebuffer")
+
+{-# NOINLINE glBlitNamedFramebufferFunPtr #-}
+
+glCheckNamedFramebufferStatus :: MonadIO m => GLuint -> GLenum -> m GLenum
+glCheckNamedFramebufferStatus = ffiuintenumIOenum glCheckNamedFramebufferStatusFunPtr
+
+glCheckNamedFramebufferStatusFunPtr :: FunPtr (GLuint -> GLenum -> IO GLenum)
+glCheckNamedFramebufferStatusFunPtr = unsafePerformIO (getProcAddress "glCheckNamedFramebufferStatus")
+
+{-# NOINLINE glCheckNamedFramebufferStatusFunPtr #-}
+
+glClearNamedBufferData :: MonadIO m => GLuint -> GLenum -> GLenum -> GLenum -> Ptr () -> m ()
+glClearNamedBufferData = ffiuintenumenumenumPtrVIOV glClearNamedBufferDataFunPtr
+
+glClearNamedBufferDataFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> GLenum -> Ptr () -> IO ())
+glClearNamedBufferDataFunPtr = unsafePerformIO (getProcAddress "glClearNamedBufferData")
+
+{-# NOINLINE glClearNamedBufferDataFunPtr #-}
+
+glClearNamedBufferSubData :: MonadIO m => GLuint -> GLenum -> GLintptr -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
+glClearNamedBufferSubData = ffiuintenumintptrsizeienumenumPtrVIOV glClearNamedBufferSubDataFunPtr
+
+glClearNamedBufferSubDataFunPtr :: FunPtr (GLuint -> GLenum -> GLintptr -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ())
+glClearNamedBufferSubDataFunPtr = unsafePerformIO (getProcAddress "glClearNamedBufferSubData")
+
+{-# NOINLINE glClearNamedBufferSubDataFunPtr #-}
+
+glClearNamedFramebufferfi :: MonadIO m => GLuint -> GLenum -> GLfloat -> GLint -> m ()
+glClearNamedFramebufferfi = ffiuintenumfloatintIOV glClearNamedFramebufferfiFunPtr
+
+glClearNamedFramebufferfiFunPtr :: FunPtr (GLuint -> GLenum -> GLfloat -> GLint -> IO ())
+glClearNamedFramebufferfiFunPtr = unsafePerformIO (getProcAddress "glClearNamedFramebufferfi")
+
+{-# NOINLINE glClearNamedFramebufferfiFunPtr #-}
+
+glClearNamedFramebufferfv :: MonadIO m => GLuint -> GLenum -> GLint -> Ptr GLfloat -> m ()
+glClearNamedFramebufferfv = ffiuintenumintPtrfloatIOV glClearNamedFramebufferfvFunPtr
+
+glClearNamedFramebufferfvFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> Ptr GLfloat -> IO ())
+glClearNamedFramebufferfvFunPtr = unsafePerformIO (getProcAddress "glClearNamedFramebufferfv")
+
+{-# NOINLINE glClearNamedFramebufferfvFunPtr #-}
+
+glClearNamedFramebufferiv :: MonadIO m => GLuint -> GLenum -> GLint -> Ptr GLint -> m ()
+glClearNamedFramebufferiv = ffiuintenumintPtrintIOV glClearNamedFramebufferivFunPtr
+
+glClearNamedFramebufferivFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> Ptr GLint -> IO ())
+glClearNamedFramebufferivFunPtr = unsafePerformIO (getProcAddress "glClearNamedFramebufferiv")
+
+{-# NOINLINE glClearNamedFramebufferivFunPtr #-}
+
+glClearNamedFramebufferuiv :: MonadIO m => GLuint -> GLenum -> GLint -> Ptr GLuint -> m ()
+glClearNamedFramebufferuiv = ffiuintenumintPtruintIOV glClearNamedFramebufferuivFunPtr
+
+glClearNamedFramebufferuivFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> Ptr GLuint -> IO ())
+glClearNamedFramebufferuivFunPtr = unsafePerformIO (getProcAddress "glClearNamedFramebufferuiv")
+
+{-# NOINLINE glClearNamedFramebufferuivFunPtr #-}
+
+glCompressedTextureSubImage1D :: MonadIO m => GLuint -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr () -> m ()
+glCompressedTextureSubImage1D = ffiuintintintsizeienumsizeiPtrVIOV glCompressedTextureSubImage1DFunPtr
+
+glCompressedTextureSubImage1DFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ())
+glCompressedTextureSubImage1DFunPtr = unsafePerformIO (getProcAddress "glCompressedTextureSubImage1D")
+
+{-# NOINLINE glCompressedTextureSubImage1DFunPtr #-}
+
+glCompressedTextureSubImage2D :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> m ()
+glCompressedTextureSubImage2D = ffiuintintintintsizeisizeienumsizeiPtrVIOV glCompressedTextureSubImage2DFunPtr
+
+glCompressedTextureSubImage2DFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ())
+glCompressedTextureSubImage2DFunPtr = unsafePerformIO (getProcAddress "glCompressedTextureSubImage2D")
+
+{-# NOINLINE glCompressedTextureSubImage2DFunPtr #-}
+
+glCompressedTextureSubImage3D :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> m ()
+glCompressedTextureSubImage3D = ffiuintintintintintsizeisizeisizeienumsizeiPtrVIOV glCompressedTextureSubImage3DFunPtr
+
+glCompressedTextureSubImage3DFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ())
+glCompressedTextureSubImage3DFunPtr = unsafePerformIO (getProcAddress "glCompressedTextureSubImage3D")
+
+{-# NOINLINE glCompressedTextureSubImage3DFunPtr #-}
+
+glCopyNamedBufferSubData :: MonadIO m => GLuint -> GLuint -> GLintptr -> GLintptr -> GLsizei -> m ()
+glCopyNamedBufferSubData = ffiuintuintintptrintptrsizeiIOV glCopyNamedBufferSubDataFunPtr
+
+glCopyNamedBufferSubDataFunPtr :: FunPtr (GLuint -> GLuint -> GLintptr -> GLintptr -> GLsizei -> IO ())
+glCopyNamedBufferSubDataFunPtr = unsafePerformIO (getProcAddress "glCopyNamedBufferSubData")
+
+{-# NOINLINE glCopyNamedBufferSubDataFunPtr #-}
+
+glCopyTextureSubImage1D :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> m ()
+glCopyTextureSubImage1D = ffiuintintintintintsizeiIOV glCopyTextureSubImage1DFunPtr
+
+glCopyTextureSubImage1DFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> IO ())
+glCopyTextureSubImage1DFunPtr = unsafePerformIO (getProcAddress "glCopyTextureSubImage1D")
+
+{-# NOINLINE glCopyTextureSubImage1DFunPtr #-}
+
+glCopyTextureSubImage2D :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()
+glCopyTextureSubImage2D = ffiuintintintintintintsizeisizeiIOV glCopyTextureSubImage2DFunPtr
+
+glCopyTextureSubImage2DFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ())
+glCopyTextureSubImage2DFunPtr = unsafePerformIO (getProcAddress "glCopyTextureSubImage2D")
+
+{-# NOINLINE glCopyTextureSubImage2DFunPtr #-}
+
+glCopyTextureSubImage3D :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()
+glCopyTextureSubImage3D = ffiuintintintintintintintsizeisizeiIOV glCopyTextureSubImage3DFunPtr
+
+glCopyTextureSubImage3DFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ())
+glCopyTextureSubImage3DFunPtr = unsafePerformIO (getProcAddress "glCopyTextureSubImage3D")
+
+{-# NOINLINE glCopyTextureSubImage3DFunPtr #-}
+
+glCreateBuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glCreateBuffers = ffisizeiPtruintIOV glCreateBuffersFunPtr
+
+glCreateBuffersFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glCreateBuffersFunPtr = unsafePerformIO (getProcAddress "glCreateBuffers")
+
+{-# NOINLINE glCreateBuffersFunPtr #-}
+
+glCreateFramebuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glCreateFramebuffers = ffisizeiPtruintIOV glCreateFramebuffersFunPtr
+
+glCreateFramebuffersFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glCreateFramebuffersFunPtr = unsafePerformIO (getProcAddress "glCreateFramebuffers")
+
+{-# NOINLINE glCreateFramebuffersFunPtr #-}
+
+glCreateProgramPipelines :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glCreateProgramPipelines = ffisizeiPtruintIOV glCreateProgramPipelinesFunPtr
+
+glCreateProgramPipelinesFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glCreateProgramPipelinesFunPtr = unsafePerformIO (getProcAddress "glCreateProgramPipelines")
+
+{-# NOINLINE glCreateProgramPipelinesFunPtr #-}
+
+glCreateQueries :: MonadIO m => GLenum -> GLsizei -> Ptr GLuint -> m ()
+glCreateQueries = ffienumsizeiPtruintIOV glCreateQueriesFunPtr
+
+glCreateQueriesFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr GLuint -> IO ())
+glCreateQueriesFunPtr = unsafePerformIO (getProcAddress "glCreateQueries")
+
+{-# NOINLINE glCreateQueriesFunPtr #-}
+
+glCreateRenderbuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glCreateRenderbuffers = ffisizeiPtruintIOV glCreateRenderbuffersFunPtr
+
+glCreateRenderbuffersFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glCreateRenderbuffersFunPtr = unsafePerformIO (getProcAddress "glCreateRenderbuffers")
+
+{-# NOINLINE glCreateRenderbuffersFunPtr #-}
+
+glCreateSamplers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glCreateSamplers = ffisizeiPtruintIOV glCreateSamplersFunPtr
+
+glCreateSamplersFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glCreateSamplersFunPtr = unsafePerformIO (getProcAddress "glCreateSamplers")
+
+{-# NOINLINE glCreateSamplersFunPtr #-}
+
+glCreateTextures :: MonadIO m => GLenum -> GLsizei -> Ptr GLuint -> m ()
+glCreateTextures = ffienumsizeiPtruintIOV glCreateTexturesFunPtr
+
+glCreateTexturesFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr GLuint -> IO ())
+glCreateTexturesFunPtr = unsafePerformIO (getProcAddress "glCreateTextures")
+
+{-# NOINLINE glCreateTexturesFunPtr #-}
+
+glCreateTransformFeedbacks :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glCreateTransformFeedbacks = ffisizeiPtruintIOV glCreateTransformFeedbacksFunPtr
+
+glCreateTransformFeedbacksFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glCreateTransformFeedbacksFunPtr = unsafePerformIO (getProcAddress "glCreateTransformFeedbacks")
+
+{-# NOINLINE glCreateTransformFeedbacksFunPtr #-}
+
+glCreateVertexArrays :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glCreateVertexArrays = ffisizeiPtruintIOV glCreateVertexArraysFunPtr
+
+glCreateVertexArraysFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glCreateVertexArraysFunPtr = unsafePerformIO (getProcAddress "glCreateVertexArrays")
+
+{-# NOINLINE glCreateVertexArraysFunPtr #-}
+
+glDisableVertexArrayAttrib :: MonadIO m => GLuint -> GLuint -> m ()
+glDisableVertexArrayAttrib = ffiuintuintIOV glDisableVertexArrayAttribFunPtr
+
+glDisableVertexArrayAttribFunPtr :: FunPtr (GLuint -> GLuint -> IO ())
+glDisableVertexArrayAttribFunPtr = unsafePerformIO (getProcAddress "glDisableVertexArrayAttrib")
+
+{-# NOINLINE glDisableVertexArrayAttribFunPtr #-}
+
+glEnableVertexArrayAttrib :: MonadIO m => GLuint -> GLuint -> m ()
+glEnableVertexArrayAttrib = ffiuintuintIOV glEnableVertexArrayAttribFunPtr
+
+glEnableVertexArrayAttribFunPtr :: FunPtr (GLuint -> GLuint -> IO ())
+glEnableVertexArrayAttribFunPtr = unsafePerformIO (getProcAddress "glEnableVertexArrayAttrib")
+
+{-# NOINLINE glEnableVertexArrayAttribFunPtr #-}
+
+glFlushMappedNamedBufferRange :: MonadIO m => GLuint -> GLintptr -> GLsizei -> m ()
+glFlushMappedNamedBufferRange = ffiuintintptrsizeiIOV glFlushMappedNamedBufferRangeFunPtr
+
+glFlushMappedNamedBufferRangeFunPtr :: FunPtr (GLuint -> GLintptr -> GLsizei -> IO ())
+glFlushMappedNamedBufferRangeFunPtr = unsafePerformIO (getProcAddress "glFlushMappedNamedBufferRange")
+
+{-# NOINLINE glFlushMappedNamedBufferRangeFunPtr #-}
+
+glGenerateTextureMipmap :: MonadIO m => GLuint -> m ()
+glGenerateTextureMipmap = ffiuintIOV glGenerateTextureMipmapFunPtr
+
+glGenerateTextureMipmapFunPtr :: FunPtr (GLuint -> IO ())
+glGenerateTextureMipmapFunPtr = unsafePerformIO (getProcAddress "glGenerateTextureMipmap")
+
+{-# NOINLINE glGenerateTextureMipmapFunPtr #-}
+
+glGetCompressedTextureImage :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr () -> m ()
+glGetCompressedTextureImage = ffiuintintsizeiPtrVIOV glGetCompressedTextureImageFunPtr
+
+glGetCompressedTextureImageFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr () -> IO ())
+glGetCompressedTextureImageFunPtr = unsafePerformIO (getProcAddress "glGetCompressedTextureImage")
+
+{-# NOINLINE glGetCompressedTextureImageFunPtr #-}
+
+glGetNamedBufferParameteri64v :: MonadIO m => GLuint -> GLenum -> Ptr GLint64 -> m ()
+glGetNamedBufferParameteri64v = ffiuintenumPtrint64IOV glGetNamedBufferParameteri64vFunPtr
+
+glGetNamedBufferParameteri64vFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint64 -> IO ())
+glGetNamedBufferParameteri64vFunPtr = unsafePerformIO (getProcAddress "glGetNamedBufferParameteri64v")
+
+{-# NOINLINE glGetNamedBufferParameteri64vFunPtr #-}
+
+glGetNamedBufferParameteriv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
+glGetNamedBufferParameteriv = ffiuintenumPtrintIOV glGetNamedBufferParameterivFunPtr
+
+glGetNamedBufferParameterivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+glGetNamedBufferParameterivFunPtr = unsafePerformIO (getProcAddress "glGetNamedBufferParameteriv")
+
+{-# NOINLINE glGetNamedBufferParameterivFunPtr #-}
+
+glGetNamedBufferPointerv :: MonadIO m => GLuint -> GLenum -> Ptr () -> m ()
+glGetNamedBufferPointerv = ffiuintenumPtrVIOV glGetNamedBufferPointervFunPtr
+
+glGetNamedBufferPointervFunPtr :: FunPtr (GLuint -> GLenum -> Ptr () -> IO ())
+glGetNamedBufferPointervFunPtr = unsafePerformIO (getProcAddress "glGetNamedBufferPointerv")
+
+{-# NOINLINE glGetNamedBufferPointervFunPtr #-}
+
+glGetNamedBufferSubData :: MonadIO m => GLuint -> GLintptr -> GLsizei -> Ptr () -> m ()
+glGetNamedBufferSubData = ffiuintintptrsizeiPtrVIOV glGetNamedBufferSubDataFunPtr
+
+glGetNamedBufferSubDataFunPtr :: FunPtr (GLuint -> GLintptr -> GLsizei -> Ptr () -> IO ())
+glGetNamedBufferSubDataFunPtr = unsafePerformIO (getProcAddress "glGetNamedBufferSubData")
+
+{-# NOINLINE glGetNamedBufferSubDataFunPtr #-}
+
+glGetNamedFramebufferAttachmentParameteriv :: MonadIO m => GLuint -> GLenum -> GLenum -> Ptr GLint -> m ()
+glGetNamedFramebufferAttachmentParameteriv = ffiuintenumenumPtrintIOV glGetNamedFramebufferAttachmentParameterivFunPtr
+
+glGetNamedFramebufferAttachmentParameterivFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> Ptr GLint -> IO ())
+glGetNamedFramebufferAttachmentParameterivFunPtr = unsafePerformIO (getProcAddress "glGetNamedFramebufferAttachmentParameteriv")
+
+{-# NOINLINE glGetNamedFramebufferAttachmentParameterivFunPtr #-}
+
+glGetNamedFramebufferParameteriv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
+glGetNamedFramebufferParameteriv = ffiuintenumPtrintIOV glGetNamedFramebufferParameterivFunPtr
+
+glGetNamedFramebufferParameterivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+glGetNamedFramebufferParameterivFunPtr = unsafePerformIO (getProcAddress "glGetNamedFramebufferParameteriv")
+
+{-# NOINLINE glGetNamedFramebufferParameterivFunPtr #-}
+
+glGetNamedRenderbufferParameteriv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
+glGetNamedRenderbufferParameteriv = ffiuintenumPtrintIOV glGetNamedRenderbufferParameterivFunPtr
+
+glGetNamedRenderbufferParameterivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+glGetNamedRenderbufferParameterivFunPtr = unsafePerformIO (getProcAddress "glGetNamedRenderbufferParameteriv")
+
+{-# NOINLINE glGetNamedRenderbufferParameterivFunPtr #-}
+
+glGetQueryBufferObjecti64v :: MonadIO m => GLuint -> GLuint -> GLenum -> GLintptr -> m ()
+glGetQueryBufferObjecti64v = ffiuintuintenumintptrIOV glGetQueryBufferObjecti64vFunPtr
+
+glGetQueryBufferObjecti64vFunPtr :: FunPtr (GLuint -> GLuint -> GLenum -> GLintptr -> IO ())
+glGetQueryBufferObjecti64vFunPtr = unsafePerformIO (getProcAddress "glGetQueryBufferObjecti64v")
+
+{-# NOINLINE glGetQueryBufferObjecti64vFunPtr #-}
+
+glGetQueryBufferObjectiv :: MonadIO m => GLuint -> GLuint -> GLenum -> GLintptr -> m ()
+glGetQueryBufferObjectiv = ffiuintuintenumintptrIOV glGetQueryBufferObjectivFunPtr
+
+glGetQueryBufferObjectivFunPtr :: FunPtr (GLuint -> GLuint -> GLenum -> GLintptr -> IO ())
+glGetQueryBufferObjectivFunPtr = unsafePerformIO (getProcAddress "glGetQueryBufferObjectiv")
+
+{-# NOINLINE glGetQueryBufferObjectivFunPtr #-}
+
+glGetQueryBufferObjectui64v :: MonadIO m => GLuint -> GLuint -> GLenum -> GLintptr -> m ()
+glGetQueryBufferObjectui64v = ffiuintuintenumintptrIOV glGetQueryBufferObjectui64vFunPtr
+
+glGetQueryBufferObjectui64vFunPtr :: FunPtr (GLuint -> GLuint -> GLenum -> GLintptr -> IO ())
+glGetQueryBufferObjectui64vFunPtr = unsafePerformIO (getProcAddress "glGetQueryBufferObjectui64v")
+
+{-# NOINLINE glGetQueryBufferObjectui64vFunPtr #-}
+
+glGetQueryBufferObjectuiv :: MonadIO m => GLuint -> GLuint -> GLenum -> GLintptr -> m ()
+glGetQueryBufferObjectuiv = ffiuintuintenumintptrIOV glGetQueryBufferObjectuivFunPtr
+
+glGetQueryBufferObjectuivFunPtr :: FunPtr (GLuint -> GLuint -> GLenum -> GLintptr -> IO ())
+glGetQueryBufferObjectuivFunPtr = unsafePerformIO (getProcAddress "glGetQueryBufferObjectuiv")
+
+{-# NOINLINE glGetQueryBufferObjectuivFunPtr #-}
+
+glGetTextureImage :: MonadIO m => GLuint -> GLint -> GLenum -> GLenum -> GLsizei -> Ptr () -> m ()
+glGetTextureImage = ffiuintintenumenumsizeiPtrVIOV glGetTextureImageFunPtr
+
+glGetTextureImageFunPtr :: FunPtr (GLuint -> GLint -> GLenum -> GLenum -> GLsizei -> Ptr () -> IO ())
+glGetTextureImageFunPtr = unsafePerformIO (getProcAddress "glGetTextureImage")
+
+{-# NOINLINE glGetTextureImageFunPtr #-}
+
+glGetTextureLevelParameterfv :: MonadIO m => GLuint -> GLint -> GLenum -> Ptr GLfloat -> m ()
+glGetTextureLevelParameterfv = ffiuintintenumPtrfloatIOV glGetTextureLevelParameterfvFunPtr
+
+glGetTextureLevelParameterfvFunPtr :: FunPtr (GLuint -> GLint -> GLenum -> Ptr GLfloat -> IO ())
+glGetTextureLevelParameterfvFunPtr = unsafePerformIO (getProcAddress "glGetTextureLevelParameterfv")
+
+{-# NOINLINE glGetTextureLevelParameterfvFunPtr #-}
+
+glGetTextureLevelParameteriv :: MonadIO m => GLuint -> GLint -> GLenum -> Ptr GLint -> m ()
+glGetTextureLevelParameteriv = ffiuintintenumPtrintIOV glGetTextureLevelParameterivFunPtr
+
+glGetTextureLevelParameterivFunPtr :: FunPtr (GLuint -> GLint -> GLenum -> Ptr GLint -> IO ())
+glGetTextureLevelParameterivFunPtr = unsafePerformIO (getProcAddress "glGetTextureLevelParameteriv")
+
+{-# NOINLINE glGetTextureLevelParameterivFunPtr #-}
+
+glGetTextureParameterIiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
+glGetTextureParameterIiv = ffiuintenumPtrintIOV glGetTextureParameterIivFunPtr
+
+glGetTextureParameterIivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+glGetTextureParameterIivFunPtr = unsafePerformIO (getProcAddress "glGetTextureParameterIiv")
+
+{-# NOINLINE glGetTextureParameterIivFunPtr #-}
+
+glGetTextureParameterIuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()
+glGetTextureParameterIuiv = ffiuintenumPtruintIOV glGetTextureParameterIuivFunPtr
+
+glGetTextureParameterIuivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLuint -> IO ())
+glGetTextureParameterIuivFunPtr = unsafePerformIO (getProcAddress "glGetTextureParameterIuiv")
+
+{-# NOINLINE glGetTextureParameterIuivFunPtr #-}
+
+glGetTextureParameterfv :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()
+glGetTextureParameterfv = ffiuintenumPtrfloatIOV glGetTextureParameterfvFunPtr
+
+glGetTextureParameterfvFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLfloat -> IO ())
+glGetTextureParameterfvFunPtr = unsafePerformIO (getProcAddress "glGetTextureParameterfv")
+
+{-# NOINLINE glGetTextureParameterfvFunPtr #-}
+
+glGetTextureParameteriv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
+glGetTextureParameteriv = ffiuintenumPtrintIOV glGetTextureParameterivFunPtr
+
+glGetTextureParameterivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+glGetTextureParameterivFunPtr = unsafePerformIO (getProcAddress "glGetTextureParameteriv")
+
+{-# NOINLINE glGetTextureParameterivFunPtr #-}
+
+glGetTransformFeedbacki64_v :: MonadIO m => GLuint -> GLenum -> GLuint -> Ptr GLint64 -> m ()
+glGetTransformFeedbacki64_v = ffiuintenumuintPtrint64IOV glGetTransformFeedbacki64_vFunPtr
+
+glGetTransformFeedbacki64_vFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> Ptr GLint64 -> IO ())
+glGetTransformFeedbacki64_vFunPtr = unsafePerformIO (getProcAddress "glGetTransformFeedbacki64_v")
+
+{-# NOINLINE glGetTransformFeedbacki64_vFunPtr #-}
+
+glGetTransformFeedbacki_v :: MonadIO m => GLuint -> GLenum -> GLuint -> Ptr GLint -> m ()
+glGetTransformFeedbacki_v = ffiuintenumuintPtrintIOV glGetTransformFeedbacki_vFunPtr
+
+glGetTransformFeedbacki_vFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> Ptr GLint -> IO ())
+glGetTransformFeedbacki_vFunPtr = unsafePerformIO (getProcAddress "glGetTransformFeedbacki_v")
+
+{-# NOINLINE glGetTransformFeedbacki_vFunPtr #-}
+
+glGetTransformFeedbackiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
+glGetTransformFeedbackiv = ffiuintenumPtrintIOV glGetTransformFeedbackivFunPtr
+
+glGetTransformFeedbackivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+glGetTransformFeedbackivFunPtr = unsafePerformIO (getProcAddress "glGetTransformFeedbackiv")
+
+{-# NOINLINE glGetTransformFeedbackivFunPtr #-}
+
+glGetVertexArrayIndexed64iv :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr GLint64 -> m ()
+glGetVertexArrayIndexed64iv = ffiuintuintenumPtrint64IOV glGetVertexArrayIndexed64ivFunPtr
+
+glGetVertexArrayIndexed64ivFunPtr :: FunPtr (GLuint -> GLuint -> GLenum -> Ptr GLint64 -> IO ())
+glGetVertexArrayIndexed64ivFunPtr = unsafePerformIO (getProcAddress "glGetVertexArrayIndexed64iv")
+
+{-# NOINLINE glGetVertexArrayIndexed64ivFunPtr #-}
+
+glGetVertexArrayIndexediv :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr GLint -> m ()
+glGetVertexArrayIndexediv = ffiuintuintenumPtrintIOV glGetVertexArrayIndexedivFunPtr
+
+glGetVertexArrayIndexedivFunPtr :: FunPtr (GLuint -> GLuint -> GLenum -> Ptr GLint -> IO ())
+glGetVertexArrayIndexedivFunPtr = unsafePerformIO (getProcAddress "glGetVertexArrayIndexediv")
+
+{-# NOINLINE glGetVertexArrayIndexedivFunPtr #-}
+
+glGetVertexArrayiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
+glGetVertexArrayiv = ffiuintenumPtrintIOV glGetVertexArrayivFunPtr
+
+glGetVertexArrayivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+glGetVertexArrayivFunPtr = unsafePerformIO (getProcAddress "glGetVertexArrayiv")
+
+{-# NOINLINE glGetVertexArrayivFunPtr #-}
+
+glInvalidateNamedFramebufferData :: MonadIO m => GLuint -> GLsizei -> Ptr GLenum -> m ()
+glInvalidateNamedFramebufferData = ffiuintsizeiPtrenumIOV glInvalidateNamedFramebufferDataFunPtr
+
+glInvalidateNamedFramebufferDataFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLenum -> IO ())
+glInvalidateNamedFramebufferDataFunPtr = unsafePerformIO (getProcAddress "glInvalidateNamedFramebufferData")
+
+{-# NOINLINE glInvalidateNamedFramebufferDataFunPtr #-}
+
+glInvalidateNamedFramebufferSubData :: MonadIO m => GLuint -> GLsizei -> Ptr GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> m ()
+glInvalidateNamedFramebufferSubData = ffiuintsizeiPtrenumintintsizeisizeiIOV glInvalidateNamedFramebufferSubDataFunPtr
+
+glInvalidateNamedFramebufferSubDataFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> IO ())
+glInvalidateNamedFramebufferSubDataFunPtr = unsafePerformIO (getProcAddress "glInvalidateNamedFramebufferSubData")
+
+{-# NOINLINE glInvalidateNamedFramebufferSubDataFunPtr #-}
+
+glMapNamedBuffer :: MonadIO m => GLuint -> GLenum -> m (Ptr ())
+glMapNamedBuffer = ffiuintenumIOPtrV glMapNamedBufferFunPtr
+
+glMapNamedBufferFunPtr :: FunPtr (GLuint -> GLenum -> IO (Ptr ()))
+glMapNamedBufferFunPtr = unsafePerformIO (getProcAddress "glMapNamedBuffer")
+
+{-# NOINLINE glMapNamedBufferFunPtr #-}
+
+glMapNamedBufferRange :: MonadIO m => GLuint -> GLintptr -> GLsizei -> GLbitfield -> m (Ptr ())
+glMapNamedBufferRange = ffiuintintptrsizeibitfieldIOPtrV glMapNamedBufferRangeFunPtr
+
+glMapNamedBufferRangeFunPtr :: FunPtr (GLuint -> GLintptr -> GLsizei -> GLbitfield -> IO (Ptr ()))
+glMapNamedBufferRangeFunPtr = unsafePerformIO (getProcAddress "glMapNamedBufferRange")
+
+{-# NOINLINE glMapNamedBufferRangeFunPtr #-}
+
+glNamedBufferData :: MonadIO m => GLuint -> GLsizei -> Ptr () -> GLenum -> m ()
+glNamedBufferData = ffiuintsizeiPtrVenumIOV glNamedBufferDataFunPtr
+
+glNamedBufferDataFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr () -> GLenum -> IO ())
+glNamedBufferDataFunPtr = unsafePerformIO (getProcAddress "glNamedBufferData")
+
+{-# NOINLINE glNamedBufferDataFunPtr #-}
+
+glNamedBufferStorage :: MonadIO m => GLuint -> GLsizei -> Ptr () -> GLbitfield -> m ()
+glNamedBufferStorage = ffiuintsizeiPtrVbitfieldIOV glNamedBufferStorageFunPtr
+
+glNamedBufferStorageFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr () -> GLbitfield -> IO ())
+glNamedBufferStorageFunPtr = unsafePerformIO (getProcAddress "glNamedBufferStorage")
+
+{-# NOINLINE glNamedBufferStorageFunPtr #-}
+
+glNamedBufferSubData :: MonadIO m => GLuint -> GLintptr -> GLsizei -> Ptr () -> m ()
+glNamedBufferSubData = ffiuintintptrsizeiPtrVIOV glNamedBufferSubDataFunPtr
+
+glNamedBufferSubDataFunPtr :: FunPtr (GLuint -> GLintptr -> GLsizei -> Ptr () -> IO ())
+glNamedBufferSubDataFunPtr = unsafePerformIO (getProcAddress "glNamedBufferSubData")
+
+{-# NOINLINE glNamedBufferSubDataFunPtr #-}
+
+glNamedFramebufferDrawBuffer :: MonadIO m => GLuint -> GLenum -> m ()
+glNamedFramebufferDrawBuffer = ffiuintenumIOV glNamedFramebufferDrawBufferFunPtr
+
+glNamedFramebufferDrawBufferFunPtr :: FunPtr (GLuint -> GLenum -> IO ())
+glNamedFramebufferDrawBufferFunPtr = unsafePerformIO (getProcAddress "glNamedFramebufferDrawBuffer")
+
+{-# NOINLINE glNamedFramebufferDrawBufferFunPtr #-}
+
+glNamedFramebufferDrawBuffers :: MonadIO m => GLuint -> GLsizei -> Ptr GLenum -> m ()
+glNamedFramebufferDrawBuffers = ffiuintsizeiPtrenumIOV glNamedFramebufferDrawBuffersFunPtr
+
+glNamedFramebufferDrawBuffersFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLenum -> IO ())
+glNamedFramebufferDrawBuffersFunPtr = unsafePerformIO (getProcAddress "glNamedFramebufferDrawBuffers")
+
+{-# NOINLINE glNamedFramebufferDrawBuffersFunPtr #-}
+
+glNamedFramebufferParameteri :: MonadIO m => GLuint -> GLenum -> GLint -> m ()
+glNamedFramebufferParameteri = ffiuintenumintIOV glNamedFramebufferParameteriFunPtr
+
+glNamedFramebufferParameteriFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> IO ())
+glNamedFramebufferParameteriFunPtr = unsafePerformIO (getProcAddress "glNamedFramebufferParameteri")
+
+{-# NOINLINE glNamedFramebufferParameteriFunPtr #-}
+
+glNamedFramebufferReadBuffer :: MonadIO m => GLuint -> GLenum -> m ()
+glNamedFramebufferReadBuffer = ffiuintenumIOV glNamedFramebufferReadBufferFunPtr
+
+glNamedFramebufferReadBufferFunPtr :: FunPtr (GLuint -> GLenum -> IO ())
+glNamedFramebufferReadBufferFunPtr = unsafePerformIO (getProcAddress "glNamedFramebufferReadBuffer")
+
+{-# NOINLINE glNamedFramebufferReadBufferFunPtr #-}
+
+glNamedFramebufferRenderbuffer :: MonadIO m => GLuint -> GLenum -> GLenum -> GLuint -> m ()
+glNamedFramebufferRenderbuffer = ffiuintenumenumuintIOV glNamedFramebufferRenderbufferFunPtr
+
+glNamedFramebufferRenderbufferFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> GLuint -> IO ())
+glNamedFramebufferRenderbufferFunPtr = unsafePerformIO (getProcAddress "glNamedFramebufferRenderbuffer")
+
+{-# NOINLINE glNamedFramebufferRenderbufferFunPtr #-}
+
+glNamedFramebufferTexture :: MonadIO m => GLuint -> GLenum -> GLuint -> GLint -> m ()
+glNamedFramebufferTexture = ffiuintenumuintintIOV glNamedFramebufferTextureFunPtr
+
+glNamedFramebufferTextureFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> GLint -> IO ())
+glNamedFramebufferTextureFunPtr = unsafePerformIO (getProcAddress "glNamedFramebufferTexture")
+
+{-# NOINLINE glNamedFramebufferTextureFunPtr #-}
+
+glNamedFramebufferTextureLayer :: MonadIO m => GLuint -> GLenum -> GLuint -> GLint -> GLint -> m ()
+glNamedFramebufferTextureLayer = ffiuintenumuintintintIOV glNamedFramebufferTextureLayerFunPtr
+
+glNamedFramebufferTextureLayerFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> GLint -> GLint -> IO ())
+glNamedFramebufferTextureLayerFunPtr = unsafePerformIO (getProcAddress "glNamedFramebufferTextureLayer")
+
+{-# NOINLINE glNamedFramebufferTextureLayerFunPtr #-}
+
+glNamedRenderbufferStorage :: MonadIO m => GLuint -> GLenum -> GLsizei -> GLsizei -> m ()
+glNamedRenderbufferStorage = ffiuintenumsizeisizeiIOV glNamedRenderbufferStorageFunPtr
+
+glNamedRenderbufferStorageFunPtr :: FunPtr (GLuint -> GLenum -> GLsizei -> GLsizei -> IO ())
+glNamedRenderbufferStorageFunPtr = unsafePerformIO (getProcAddress "glNamedRenderbufferStorage")
+
+{-# NOINLINE glNamedRenderbufferStorageFunPtr #-}
+
+glNamedRenderbufferStorageMultisample :: MonadIO m => GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()
+glNamedRenderbufferStorageMultisample = ffiuintsizeienumsizeisizeiIOV glNamedRenderbufferStorageMultisampleFunPtr
+
+glNamedRenderbufferStorageMultisampleFunPtr :: FunPtr (GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> IO ())
+glNamedRenderbufferStorageMultisampleFunPtr = unsafePerformIO (getProcAddress "glNamedRenderbufferStorageMultisample")
+
+{-# NOINLINE glNamedRenderbufferStorageMultisampleFunPtr #-}
+
+glTextureBuffer :: MonadIO m => GLuint -> GLenum -> GLuint -> m ()
+glTextureBuffer = ffiuintenumuintIOV glTextureBufferFunPtr
+
+glTextureBufferFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> IO ())
+glTextureBufferFunPtr = unsafePerformIO (getProcAddress "glTextureBuffer")
+
+{-# NOINLINE glTextureBufferFunPtr #-}
+
+glTextureBufferRange :: MonadIO m => GLuint -> GLenum -> GLuint -> GLintptr -> GLsizei -> m ()
+glTextureBufferRange = ffiuintenumuintintptrsizeiIOV glTextureBufferRangeFunPtr
+
+glTextureBufferRangeFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> GLintptr -> GLsizei -> IO ())
+glTextureBufferRangeFunPtr = unsafePerformIO (getProcAddress "glTextureBufferRange")
+
+{-# NOINLINE glTextureBufferRangeFunPtr #-}
+
+glTextureParameterIiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
+glTextureParameterIiv = ffiuintenumPtrintIOV glTextureParameterIivFunPtr
+
+glTextureParameterIivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+glTextureParameterIivFunPtr = unsafePerformIO (getProcAddress "glTextureParameterIiv")
+
+{-# NOINLINE glTextureParameterIivFunPtr #-}
+
+glTextureParameterIuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()
+glTextureParameterIuiv = ffiuintenumPtruintIOV glTextureParameterIuivFunPtr
+
+glTextureParameterIuivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLuint -> IO ())
+glTextureParameterIuivFunPtr = unsafePerformIO (getProcAddress "glTextureParameterIuiv")
+
+{-# NOINLINE glTextureParameterIuivFunPtr #-}
+
+glTextureParameterf :: MonadIO m => GLuint -> GLenum -> GLfloat -> m ()
+glTextureParameterf = ffiuintenumfloatIOV glTextureParameterfFunPtr
+
+glTextureParameterfFunPtr :: FunPtr (GLuint -> GLenum -> GLfloat -> IO ())
+glTextureParameterfFunPtr = unsafePerformIO (getProcAddress "glTextureParameterf")
+
+{-# NOINLINE glTextureParameterfFunPtr #-}
+
+glTextureParameterfv :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()
+glTextureParameterfv = ffiuintenumPtrfloatIOV glTextureParameterfvFunPtr
+
+glTextureParameterfvFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLfloat -> IO ())
+glTextureParameterfvFunPtr = unsafePerformIO (getProcAddress "glTextureParameterfv")
+
+{-# NOINLINE glTextureParameterfvFunPtr #-}
+
+glTextureParameteri :: MonadIO m => GLuint -> GLenum -> GLint -> m ()
+glTextureParameteri = ffiuintenumintIOV glTextureParameteriFunPtr
+
+glTextureParameteriFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> IO ())
+glTextureParameteriFunPtr = unsafePerformIO (getProcAddress "glTextureParameteri")
+
+{-# NOINLINE glTextureParameteriFunPtr #-}
+
+glTextureParameteriv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
+glTextureParameteriv = ffiuintenumPtrintIOV glTextureParameterivFunPtr
+
+glTextureParameterivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+glTextureParameterivFunPtr = unsafePerformIO (getProcAddress "glTextureParameteriv")
+
+{-# NOINLINE glTextureParameterivFunPtr #-}
+
+glTextureStorage1D :: MonadIO m => GLuint -> GLsizei -> GLenum -> GLsizei -> m ()
+glTextureStorage1D = ffiuintsizeienumsizeiIOV glTextureStorage1DFunPtr
+
+glTextureStorage1DFunPtr :: FunPtr (GLuint -> GLsizei -> GLenum -> GLsizei -> IO ())
+glTextureStorage1DFunPtr = unsafePerformIO (getProcAddress "glTextureStorage1D")
+
+{-# NOINLINE glTextureStorage1DFunPtr #-}
+
+glTextureStorage2D :: MonadIO m => GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()
+glTextureStorage2D = ffiuintsizeienumsizeisizeiIOV glTextureStorage2DFunPtr
+
+glTextureStorage2DFunPtr :: FunPtr (GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> IO ())
+glTextureStorage2DFunPtr = unsafePerformIO (getProcAddress "glTextureStorage2D")
+
+{-# NOINLINE glTextureStorage2DFunPtr #-}
+
+glTextureStorage2DMultisample :: MonadIO m => GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> m ()
+glTextureStorage2DMultisample = ffiuintsizeienumsizeisizeibooleanIOV glTextureStorage2DMultisampleFunPtr
+
+glTextureStorage2DMultisampleFunPtr :: FunPtr (GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> IO ())
+glTextureStorage2DMultisampleFunPtr = unsafePerformIO (getProcAddress "glTextureStorage2DMultisample")
+
+{-# NOINLINE glTextureStorage2DMultisampleFunPtr #-}
+
+glTextureStorage3D :: MonadIO m => GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> m ()
+glTextureStorage3D = ffiuintsizeienumsizeisizeisizeiIOV glTextureStorage3DFunPtr
+
+glTextureStorage3DFunPtr :: FunPtr (GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> IO ())
+glTextureStorage3DFunPtr = unsafePerformIO (getProcAddress "glTextureStorage3D")
+
+{-# NOINLINE glTextureStorage3DFunPtr #-}
+
+glTextureStorage3DMultisample :: MonadIO m => GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> m ()
+glTextureStorage3DMultisample = ffiuintsizeienumsizeisizeisizeibooleanIOV glTextureStorage3DMultisampleFunPtr
+
+glTextureStorage3DMultisampleFunPtr :: FunPtr (GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> IO ())
+glTextureStorage3DMultisampleFunPtr = unsafePerformIO (getProcAddress "glTextureStorage3DMultisample")
+
+{-# NOINLINE glTextureStorage3DMultisampleFunPtr #-}
+
+glTextureSubImage1D :: MonadIO m => GLuint -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
+glTextureSubImage1D = ffiuintintintsizeienumenumPtrVIOV glTextureSubImage1DFunPtr
+
+glTextureSubImage1DFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ())
+glTextureSubImage1DFunPtr = unsafePerformIO (getProcAddress "glTextureSubImage1D")
+
+{-# NOINLINE glTextureSubImage1DFunPtr #-}
+
+glTextureSubImage2D :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
+glTextureSubImage2D = ffiuintintintintsizeisizeienumenumPtrVIOV glTextureSubImage2DFunPtr
+
+glTextureSubImage2DFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ())
+glTextureSubImage2DFunPtr = unsafePerformIO (getProcAddress "glTextureSubImage2D")
+
+{-# NOINLINE glTextureSubImage2DFunPtr #-}
+
+glTextureSubImage3D :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
+glTextureSubImage3D = ffiuintintintintintsizeisizeisizeienumenumPtrVIOV glTextureSubImage3DFunPtr
+
+glTextureSubImage3DFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ())
+glTextureSubImage3DFunPtr = unsafePerformIO (getProcAddress "glTextureSubImage3D")
+
+{-# NOINLINE glTextureSubImage3DFunPtr #-}
+
+glTransformFeedbackBufferBase :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()
+glTransformFeedbackBufferBase = ffiuintuintuintIOV glTransformFeedbackBufferBaseFunPtr
+
+glTransformFeedbackBufferBaseFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> IO ())
+glTransformFeedbackBufferBaseFunPtr = unsafePerformIO (getProcAddress "glTransformFeedbackBufferBase")
+
+{-# NOINLINE glTransformFeedbackBufferBaseFunPtr #-}
+
+glTransformFeedbackBufferRange :: MonadIO m => GLuint -> GLuint -> GLuint -> GLintptr -> GLsizei -> m ()
+glTransformFeedbackBufferRange = ffiuintuintuintintptrsizeiIOV glTransformFeedbackBufferRangeFunPtr
+
+glTransformFeedbackBufferRangeFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> GLintptr -> GLsizei -> IO ())
+glTransformFeedbackBufferRangeFunPtr = unsafePerformIO (getProcAddress "glTransformFeedbackBufferRange")
+
+{-# NOINLINE glTransformFeedbackBufferRangeFunPtr #-}
+
+glUnmapNamedBuffer :: MonadIO m => GLuint -> m GLboolean
+glUnmapNamedBuffer = ffiuintIOboolean glUnmapNamedBufferFunPtr
+
+glUnmapNamedBufferFunPtr :: FunPtr (GLuint -> IO GLboolean)
+glUnmapNamedBufferFunPtr = unsafePerformIO (getProcAddress "glUnmapNamedBuffer")
+
+{-# NOINLINE glUnmapNamedBufferFunPtr #-}
+
+glVertexArrayAttribBinding :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()
+glVertexArrayAttribBinding = ffiuintuintuintIOV glVertexArrayAttribBindingFunPtr
+
+glVertexArrayAttribBindingFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> IO ())
+glVertexArrayAttribBindingFunPtr = unsafePerformIO (getProcAddress "glVertexArrayAttribBinding")
+
+{-# NOINLINE glVertexArrayAttribBindingFunPtr #-}
+
+glVertexArrayAttribFormat :: MonadIO m => GLuint -> GLuint -> GLint -> GLenum -> GLboolean -> GLuint -> m ()
+glVertexArrayAttribFormat = ffiuintuintintenumbooleanuintIOV glVertexArrayAttribFormatFunPtr
+
+glVertexArrayAttribFormatFunPtr :: FunPtr (GLuint -> GLuint -> GLint -> GLenum -> GLboolean -> GLuint -> IO ())
+glVertexArrayAttribFormatFunPtr = unsafePerformIO (getProcAddress "glVertexArrayAttribFormat")
+
+{-# NOINLINE glVertexArrayAttribFormatFunPtr #-}
+
+glVertexArrayAttribIFormat :: MonadIO m => GLuint -> GLuint -> GLint -> GLenum -> GLuint -> m ()
+glVertexArrayAttribIFormat = ffiuintuintintenumuintIOV glVertexArrayAttribIFormatFunPtr
+
+glVertexArrayAttribIFormatFunPtr :: FunPtr (GLuint -> GLuint -> GLint -> GLenum -> GLuint -> IO ())
+glVertexArrayAttribIFormatFunPtr = unsafePerformIO (getProcAddress "glVertexArrayAttribIFormat")
+
+{-# NOINLINE glVertexArrayAttribIFormatFunPtr #-}
+
+glVertexArrayAttribLFormat :: MonadIO m => GLuint -> GLuint -> GLint -> GLenum -> GLuint -> m ()
+glVertexArrayAttribLFormat = ffiuintuintintenumuintIOV glVertexArrayAttribLFormatFunPtr
+
+glVertexArrayAttribLFormatFunPtr :: FunPtr (GLuint -> GLuint -> GLint -> GLenum -> GLuint -> IO ())
+glVertexArrayAttribLFormatFunPtr = unsafePerformIO (getProcAddress "glVertexArrayAttribLFormat")
+
+{-# NOINLINE glVertexArrayAttribLFormatFunPtr #-}
+
+glVertexArrayBindingDivisor :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()
+glVertexArrayBindingDivisor = ffiuintuintuintIOV glVertexArrayBindingDivisorFunPtr
+
+glVertexArrayBindingDivisorFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> IO ())
+glVertexArrayBindingDivisorFunPtr = unsafePerformIO (getProcAddress "glVertexArrayBindingDivisor")
+
+{-# NOINLINE glVertexArrayBindingDivisorFunPtr #-}
+
+glVertexArrayElementBuffer :: MonadIO m => GLuint -> GLuint -> m ()
+glVertexArrayElementBuffer = ffiuintuintIOV glVertexArrayElementBufferFunPtr
+
+glVertexArrayElementBufferFunPtr :: FunPtr (GLuint -> GLuint -> IO ())
+glVertexArrayElementBufferFunPtr = unsafePerformIO (getProcAddress "glVertexArrayElementBuffer")
+
+{-# NOINLINE glVertexArrayElementBufferFunPtr #-}
+
+glVertexArrayVertexBuffer :: MonadIO m => GLuint -> GLuint -> GLuint -> GLintptr -> GLsizei -> m ()
+glVertexArrayVertexBuffer = ffiuintuintuintintptrsizeiIOV glVertexArrayVertexBufferFunPtr
+
+glVertexArrayVertexBufferFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> GLintptr -> GLsizei -> IO ())
+glVertexArrayVertexBufferFunPtr = unsafePerformIO (getProcAddress "glVertexArrayVertexBuffer")
+
+{-# NOINLINE glVertexArrayVertexBufferFunPtr #-}
+
+glVertexArrayVertexBuffers :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLuint -> Ptr GLintptr -> Ptr GLsizei -> m ()
+glVertexArrayVertexBuffers = ffiuintuintsizeiPtruintPtrintptrPtrsizeiIOV glVertexArrayVertexBuffersFunPtr
+
+glVertexArrayVertexBuffersFunPtr :: FunPtr (GLuint -> GLuint -> GLsizei -> Ptr GLuint -> Ptr GLintptr -> Ptr GLsizei -> IO ())
+glVertexArrayVertexBuffersFunPtr = unsafePerformIO (getProcAddress "glVertexArrayVertexBuffers")
+
+{-# NOINLINE glVertexArrayVertexBuffersFunPtr #-}
+
+pattern GL_QUERY_TARGET = 0x82EA
+
+pattern GL_TEXTURE_BINDING = 0x82EB
+
+pattern GL_TEXTURE_BINDING_1D = 0x8068
+
+pattern GL_TEXTURE_BINDING_1D_ARRAY = 0x8C1C
+
+pattern GL_TEXTURE_BINDING_2D = 0x8069
+
+pattern GL_TEXTURE_BINDING_2D_ARRAY = 0x8C1D
+
+pattern GL_TEXTURE_BINDING_2D_MULTISAMPLE = 0x9104
+
+pattern GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY = 0x9105
+
+pattern GL_TEXTURE_BINDING_3D = 0x806A
+
+pattern GL_TEXTURE_BINDING_BUFFER = 0x8C2C
+
+pattern GL_TEXTURE_BINDING_CUBE_MAP = 0x8514
+
+pattern GL_TEXTURE_BINDING_CUBE_MAP_ARRAY = 0x900A
+
+pattern GL_TEXTURE_BINDING_RECTANGLE = 0x84F6
+
+pattern GL_TEXTURE_TARGET = 0x1006
+
+glDrawElementsBaseVertex :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr () -> GLint -> m ()
+glDrawElementsBaseVertex = ffienumsizeienumPtrVintIOV glDrawElementsBaseVertexFunPtr
+
+glDrawElementsBaseVertexFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> Ptr () -> GLint -> IO ())
+glDrawElementsBaseVertexFunPtr = unsafePerformIO (getProcAddress "glDrawElementsBaseVertex")
+
+{-# NOINLINE glDrawElementsBaseVertexFunPtr #-}
+
+glDrawElementsInstancedBaseVertex :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> GLint -> m ()
+glDrawElementsInstancedBaseVertex = ffienumsizeienumPtrVsizeiintIOV glDrawElementsInstancedBaseVertexFunPtr
+
+glDrawElementsInstancedBaseVertexFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> GLint -> IO ())
+glDrawElementsInstancedBaseVertexFunPtr = unsafePerformIO (getProcAddress "glDrawElementsInstancedBaseVertex")
+
+{-# NOINLINE glDrawElementsInstancedBaseVertexFunPtr #-}
+
+glDrawRangeElementsBaseVertex :: MonadIO m => GLenum -> GLuint -> GLuint -> GLsizei -> GLenum -> Ptr () -> GLint -> m ()
+glDrawRangeElementsBaseVertex = ffienumuintuintsizeienumPtrVintIOV glDrawRangeElementsBaseVertexFunPtr
+
+glDrawRangeElementsBaseVertexFunPtr :: FunPtr (GLenum -> GLuint -> GLuint -> GLsizei -> GLenum -> Ptr () -> GLint -> IO ())
+glDrawRangeElementsBaseVertexFunPtr = unsafePerformIO (getProcAddress "glDrawRangeElementsBaseVertex")
+
+{-# NOINLINE glDrawRangeElementsBaseVertexFunPtr #-}
+
+glMultiDrawElementsBaseVertex :: MonadIO m => GLenum -> Ptr GLsizei -> GLenum -> Ptr () -> GLsizei -> Ptr GLint -> m ()
+glMultiDrawElementsBaseVertex = ffienumPtrsizeienumPtrVsizeiPtrintIOV glMultiDrawElementsBaseVertexFunPtr
+
+glMultiDrawElementsBaseVertexFunPtr :: FunPtr (GLenum -> Ptr GLsizei -> GLenum -> Ptr () -> GLsizei -> Ptr GLint -> IO ())
+glMultiDrawElementsBaseVertexFunPtr = unsafePerformIO (getProcAddress "glMultiDrawElementsBaseVertex")
+
+{-# NOINLINE glMultiDrawElementsBaseVertexFunPtr #-}
+
+glDrawArraysIndirect :: MonadIO m => GLenum -> Ptr () -> m ()
+glDrawArraysIndirect = ffienumPtrVIOV glDrawArraysIndirectFunPtr
+
+glDrawArraysIndirectFunPtr :: FunPtr (GLenum -> Ptr () -> IO ())
+glDrawArraysIndirectFunPtr = unsafePerformIO (getProcAddress "glDrawArraysIndirect")
+
+{-# NOINLINE glDrawArraysIndirectFunPtr #-}
+
+glDrawElementsIndirect :: MonadIO m => GLenum -> GLenum -> Ptr () -> m ()
+glDrawElementsIndirect = ffienumenumPtrVIOV glDrawElementsIndirectFunPtr
+
+glDrawElementsIndirectFunPtr :: FunPtr (GLenum -> GLenum -> Ptr () -> IO ())
+glDrawElementsIndirectFunPtr = unsafePerformIO (getProcAddress "glDrawElementsIndirect")
+
+{-# NOINLINE glDrawElementsIndirectFunPtr #-}
+
+pattern GL_DRAW_INDIRECT_BUFFER = 0x8F3F
+
+pattern GL_DRAW_INDIRECT_BUFFER_BINDING = 0x8F43
+
+glClearDepthf :: MonadIO m => GLfloat -> m ()
+glClearDepthf = ffifloatIOV glClearDepthfFunPtr
+
+glClearDepthfFunPtr :: FunPtr (GLfloat -> IO ())
+glClearDepthfFunPtr = unsafePerformIO (getProcAddress "glClearDepthf")
+
+{-# NOINLINE glClearDepthfFunPtr #-}
+
+glDepthRangef :: MonadIO m => GLfloat -> GLfloat -> m ()
+glDepthRangef = ffifloatfloatIOV glDepthRangefFunPtr
+
+glDepthRangefFunPtr :: FunPtr (GLfloat -> GLfloat -> IO ())
+glDepthRangefFunPtr = unsafePerformIO (getProcAddress "glDepthRangef")
+
+{-# NOINLINE glDepthRangefFunPtr #-}
+
+glGetShaderPrecisionFormat :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> Ptr GLint -> m ()
+glGetShaderPrecisionFormat = ffienumenumPtrintPtrintIOV glGetShaderPrecisionFormatFunPtr
+
+glGetShaderPrecisionFormatFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> Ptr GLint -> IO ())
+glGetShaderPrecisionFormatFunPtr = unsafePerformIO (getProcAddress "glGetShaderPrecisionFormat")
+
+{-# NOINLINE glGetShaderPrecisionFormatFunPtr #-}
+
+glReleaseShaderCompiler :: MonadIO m => m ()
+glReleaseShaderCompiler = ffiIOV glReleaseShaderCompilerFunPtr
+
+glReleaseShaderCompilerFunPtr :: FunPtr (IO ())
+glReleaseShaderCompilerFunPtr = unsafePerformIO (getProcAddress "glReleaseShaderCompiler")
+
+{-# NOINLINE glReleaseShaderCompilerFunPtr #-}
+
+glShaderBinary :: MonadIO m => GLsizei -> Ptr GLuint -> GLenum -> Ptr () -> GLsizei -> m ()
+glShaderBinary = ffisizeiPtruintenumPtrVsizeiIOV glShaderBinaryFunPtr
+
+glShaderBinaryFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> GLenum -> Ptr () -> GLsizei -> IO ())
+glShaderBinaryFunPtr = unsafePerformIO (getProcAddress "glShaderBinary")
+
+{-# NOINLINE glShaderBinaryFunPtr #-}
+
+pattern GL_FIXED = 0x140C
+
+pattern GL_HIGH_FLOAT = 0x8DF2
+
+pattern GL_HIGH_INT = 0x8DF5
+
+pattern GL_IMPLEMENTATION_COLOR_READ_FORMAT = 0x8B9B
+
+pattern GL_IMPLEMENTATION_COLOR_READ_TYPE = 0x8B9A
+
+pattern GL_LOW_FLOAT = 0x8DF0
+
+pattern GL_LOW_INT = 0x8DF3
+
+pattern GL_MAX_FRAGMENT_UNIFORM_VECTORS = 0x8DFD
+
+pattern GL_MAX_VARYING_VECTORS = 0x8DFC
+
+pattern GL_MAX_VERTEX_UNIFORM_VECTORS = 0x8DFB
+
+pattern GL_MEDIUM_FLOAT = 0x8DF1
+
+pattern GL_MEDIUM_INT = 0x8DF4
+
+pattern GL_NUM_SHADER_BINARY_FORMATS = 0x8DF9
+
+pattern GL_RGB565 = 0x8D62
+
+pattern GL_SHADER_BINARY_FORMATS = 0x8DF8
+
+pattern GL_SHADER_COMPILER = 0x8DFA
+
+glMemoryBarrierByRegion :: MonadIO m => GLbitfield -> m ()
+glMemoryBarrierByRegion = ffibitfieldIOV glMemoryBarrierByRegionFunPtr
+
+glMemoryBarrierByRegionFunPtr :: FunPtr (GLbitfield -> IO ())
+glMemoryBarrierByRegionFunPtr = unsafePerformIO (getProcAddress "glMemoryBarrierByRegion")
+
+{-# NOINLINE glMemoryBarrierByRegionFunPtr #-}
+
+pattern GL_BACK = 0x0405
+
+pattern GL_ANY_SAMPLES_PASSED_CONSERVATIVE = 0x8D6A
+
+pattern GL_COMPRESSED_R11_EAC = 0x9270
+
+pattern GL_COMPRESSED_RG11_EAC = 0x9272
+
+pattern GL_COMPRESSED_RGB8_ETC2 = 0x9274
+
+pattern GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 = 0x9276
+
+pattern GL_COMPRESSED_RGBA8_ETC2_EAC = 0x9278
+
+pattern GL_COMPRESSED_SIGNED_R11_EAC = 0x9271
+
+pattern GL_COMPRESSED_SIGNED_RG11_EAC = 0x9273
+
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC = 0x9279
+
+pattern GL_COMPRESSED_SRGB8_ETC2 = 0x9275
+
+pattern GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 = 0x9277
+
+pattern GL_MAX_ELEMENT_INDEX = 0x8D6B
+
+pattern GL_PRIMITIVE_RESTART_FIXED_INDEX = 0x8D69
+
+pattern GL_LOCATION_COMPONENT = 0x934A
+
+pattern GL_TRANSFORM_FEEDBACK_BUFFER = 0x8C8E
+
+pattern GL_TRANSFORM_FEEDBACK_BUFFER_INDEX = 0x934B
+
+pattern GL_TRANSFORM_FEEDBACK_BUFFER_STRIDE = 0x934C
+
+pattern GL_MAX_UNIFORM_LOCATIONS = 0x826E
+
+glBindProgramARB :: MonadIO m => GLenum -> GLuint -> m ()
+glBindProgramARB = ffienumuintIOV glBindProgramARBFunPtr
+
+glBindProgramARBFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
+glBindProgramARBFunPtr = unsafePerformIO (getProcAddress "glBindProgramARB")
+
+{-# NOINLINE glBindProgramARBFunPtr #-}
+
+glDeleteProgramsARB :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glDeleteProgramsARB = ffisizeiPtruintIOV glDeleteProgramsARBFunPtr
+
+glDeleteProgramsARBFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glDeleteProgramsARBFunPtr = unsafePerformIO (getProcAddress "glDeleteProgramsARB")
+
+{-# NOINLINE glDeleteProgramsARBFunPtr #-}
+
+glGenProgramsARB :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glGenProgramsARB = ffisizeiPtruintIOV glGenProgramsARBFunPtr
+
+glGenProgramsARBFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glGenProgramsARBFunPtr = unsafePerformIO (getProcAddress "glGenProgramsARB")
+
+{-# NOINLINE glGenProgramsARBFunPtr #-}
+
+glGetProgramEnvParameterdvARB :: MonadIO m => GLenum -> GLuint -> Ptr GLdouble -> m ()
+glGetProgramEnvParameterdvARB = ffienumuintPtrdoubleIOV glGetProgramEnvParameterdvARBFunPtr
+
+glGetProgramEnvParameterdvARBFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLdouble -> IO ())
+glGetProgramEnvParameterdvARBFunPtr = unsafePerformIO (getProcAddress "glGetProgramEnvParameterdvARB")
+
+{-# NOINLINE glGetProgramEnvParameterdvARBFunPtr #-}
+
+glGetProgramEnvParameterfvARB :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()
+glGetProgramEnvParameterfvARB = ffienumuintPtrfloatIOV glGetProgramEnvParameterfvARBFunPtr
+
+glGetProgramEnvParameterfvARBFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLfloat -> IO ())
+glGetProgramEnvParameterfvARBFunPtr = unsafePerformIO (getProcAddress "glGetProgramEnvParameterfvARB")
+
+{-# NOINLINE glGetProgramEnvParameterfvARBFunPtr #-}
+
+glGetProgramLocalParameterdvARB :: MonadIO m => GLenum -> GLuint -> Ptr GLdouble -> m ()
+glGetProgramLocalParameterdvARB = ffienumuintPtrdoubleIOV glGetProgramLocalParameterdvARBFunPtr
+
+glGetProgramLocalParameterdvARBFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLdouble -> IO ())
+glGetProgramLocalParameterdvARBFunPtr = unsafePerformIO (getProcAddress "glGetProgramLocalParameterdvARB")
+
+{-# NOINLINE glGetProgramLocalParameterdvARBFunPtr #-}
+
+glGetProgramLocalParameterfvARB :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()
+glGetProgramLocalParameterfvARB = ffienumuintPtrfloatIOV glGetProgramLocalParameterfvARBFunPtr
+
+glGetProgramLocalParameterfvARBFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLfloat -> IO ())
+glGetProgramLocalParameterfvARBFunPtr = unsafePerformIO (getProcAddress "glGetProgramLocalParameterfvARB")
+
+{-# NOINLINE glGetProgramLocalParameterfvARBFunPtr #-}
+
+glGetProgramStringARB :: MonadIO m => GLenum -> GLenum -> Ptr () -> m ()
+glGetProgramStringARB = ffienumenumPtrVIOV glGetProgramStringARBFunPtr
+
+glGetProgramStringARBFunPtr :: FunPtr (GLenum -> GLenum -> Ptr () -> IO ())
+glGetProgramStringARBFunPtr = unsafePerformIO (getProcAddress "glGetProgramStringARB")
+
+{-# NOINLINE glGetProgramStringARBFunPtr #-}
+
+glGetProgramivARB :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
+glGetProgramivARB = ffienumenumPtrintIOV glGetProgramivARBFunPtr
+
+glGetProgramivARBFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+glGetProgramivARBFunPtr = unsafePerformIO (getProcAddress "glGetProgramivARB")
+
+{-# NOINLINE glGetProgramivARBFunPtr #-}
+
+glIsProgramARB :: MonadIO m => GLuint -> m GLboolean
+glIsProgramARB = ffiuintIOboolean glIsProgramARBFunPtr
+
+glIsProgramARBFunPtr :: FunPtr (GLuint -> IO GLboolean)
+glIsProgramARBFunPtr = unsafePerformIO (getProcAddress "glIsProgramARB")
+
+{-# NOINLINE glIsProgramARBFunPtr #-}
+
+glProgramEnvParameter4dARB :: MonadIO m => GLenum -> GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
+glProgramEnvParameter4dARB = ffienumuintdoubledoubledoubledoubleIOV glProgramEnvParameter4dARBFunPtr
+
+glProgramEnvParameter4dARBFunPtr :: FunPtr (GLenum -> GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
+glProgramEnvParameter4dARBFunPtr = unsafePerformIO (getProcAddress "glProgramEnvParameter4dARB")
+
+{-# NOINLINE glProgramEnvParameter4dARBFunPtr #-}
+
+glProgramEnvParameter4dvARB :: MonadIO m => GLenum -> GLuint -> Ptr GLdouble -> m ()
+glProgramEnvParameter4dvARB = ffienumuintPtrdoubleIOV glProgramEnvParameter4dvARBFunPtr
+
+glProgramEnvParameter4dvARBFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLdouble -> IO ())
+glProgramEnvParameter4dvARBFunPtr = unsafePerformIO (getProcAddress "glProgramEnvParameter4dvARB")
+
+{-# NOINLINE glProgramEnvParameter4dvARBFunPtr #-}
+
+glProgramEnvParameter4fARB :: MonadIO m => GLenum -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
+glProgramEnvParameter4fARB = ffienumuintfloatfloatfloatfloatIOV glProgramEnvParameter4fARBFunPtr
+
+glProgramEnvParameter4fARBFunPtr :: FunPtr (GLenum -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+glProgramEnvParameter4fARBFunPtr = unsafePerformIO (getProcAddress "glProgramEnvParameter4fARB")
+
+{-# NOINLINE glProgramEnvParameter4fARBFunPtr #-}
+
+glProgramEnvParameter4fvARB :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()
+glProgramEnvParameter4fvARB = ffienumuintPtrfloatIOV glProgramEnvParameter4fvARBFunPtr
+
+glProgramEnvParameter4fvARBFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLfloat -> IO ())
+glProgramEnvParameter4fvARBFunPtr = unsafePerformIO (getProcAddress "glProgramEnvParameter4fvARB")
+
+{-# NOINLINE glProgramEnvParameter4fvARBFunPtr #-}
+
+glProgramLocalParameter4dARB :: MonadIO m => GLenum -> GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
+glProgramLocalParameter4dARB = ffienumuintdoubledoubledoubledoubleIOV glProgramLocalParameter4dARBFunPtr
+
+glProgramLocalParameter4dARBFunPtr :: FunPtr (GLenum -> GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
+glProgramLocalParameter4dARBFunPtr = unsafePerformIO (getProcAddress "glProgramLocalParameter4dARB")
+
+{-# NOINLINE glProgramLocalParameter4dARBFunPtr #-}
+
+glProgramLocalParameter4dvARB :: MonadIO m => GLenum -> GLuint -> Ptr GLdouble -> m ()
+glProgramLocalParameter4dvARB = ffienumuintPtrdoubleIOV glProgramLocalParameter4dvARBFunPtr
+
+glProgramLocalParameter4dvARBFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLdouble -> IO ())
+glProgramLocalParameter4dvARBFunPtr = unsafePerformIO (getProcAddress "glProgramLocalParameter4dvARB")
+
+{-# NOINLINE glProgramLocalParameter4dvARBFunPtr #-}
+
+glProgramLocalParameter4fARB :: MonadIO m => GLenum -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
+glProgramLocalParameter4fARB = ffienumuintfloatfloatfloatfloatIOV glProgramLocalParameter4fARBFunPtr
+
+glProgramLocalParameter4fARBFunPtr :: FunPtr (GLenum -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+glProgramLocalParameter4fARBFunPtr = unsafePerformIO (getProcAddress "glProgramLocalParameter4fARB")
+
+{-# NOINLINE glProgramLocalParameter4fARBFunPtr #-}
+
+glProgramLocalParameter4fvARB :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()
+glProgramLocalParameter4fvARB = ffienumuintPtrfloatIOV glProgramLocalParameter4fvARBFunPtr
+
+glProgramLocalParameter4fvARBFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLfloat -> IO ())
+glProgramLocalParameter4fvARBFunPtr = unsafePerformIO (getProcAddress "glProgramLocalParameter4fvARB")
+
+{-# NOINLINE glProgramLocalParameter4fvARBFunPtr #-}
+
+glProgramStringARB :: MonadIO m => GLenum -> GLenum -> GLsizei -> Ptr () -> m ()
+glProgramStringARB = ffienumenumsizeiPtrVIOV glProgramStringARBFunPtr
+
+glProgramStringARBFunPtr :: FunPtr (GLenum -> GLenum -> GLsizei -> Ptr () -> IO ())
+glProgramStringARBFunPtr = unsafePerformIO (getProcAddress "glProgramStringARB")
+
+{-# NOINLINE glProgramStringARBFunPtr #-}
+
+pattern GL_CURRENT_MATRIX_ARB = 0x8641
+
+pattern GL_CURRENT_MATRIX_STACK_DEPTH_ARB = 0x8640
+
+pattern GL_MATRIX0_ARB = 0x88C0
+
+pattern GL_MATRIX10_ARB = 0x88CA
+
+pattern GL_MATRIX11_ARB = 0x88CB
+
+pattern GL_MATRIX12_ARB = 0x88CC
+
+pattern GL_MATRIX13_ARB = 0x88CD
+
+pattern GL_MATRIX14_ARB = 0x88CE
+
+pattern GL_MATRIX15_ARB = 0x88CF
+
+pattern GL_MATRIX16_ARB = 0x88D0
+
+pattern GL_MATRIX17_ARB = 0x88D1
+
+pattern GL_MATRIX18_ARB = 0x88D2
+
+pattern GL_MATRIX19_ARB = 0x88D3
+
+pattern GL_MATRIX1_ARB = 0x88C1
+
+pattern GL_MATRIX20_ARB = 0x88D4
+
+pattern GL_MATRIX21_ARB = 0x88D5
+
+pattern GL_MATRIX22_ARB = 0x88D6
+
+pattern GL_MATRIX23_ARB = 0x88D7
+
+pattern GL_MATRIX24_ARB = 0x88D8
+
+pattern GL_MATRIX25_ARB = 0x88D9
+
+pattern GL_MATRIX26_ARB = 0x88DA
+
+pattern GL_MATRIX27_ARB = 0x88DB
+
+pattern GL_MATRIX28_ARB = 0x88DC
+
+pattern GL_MATRIX29_ARB = 0x88DD
+
+pattern GL_MATRIX2_ARB = 0x88C2
+
+pattern GL_MATRIX30_ARB = 0x88DE
+
+pattern GL_MATRIX31_ARB = 0x88DF
+
+pattern GL_MATRIX3_ARB = 0x88C3
+
+pattern GL_MATRIX4_ARB = 0x88C4
+
+pattern GL_MATRIX5_ARB = 0x88C5
+
+pattern GL_MATRIX6_ARB = 0x88C6
+
+pattern GL_MATRIX7_ARB = 0x88C7
+
+pattern GL_MATRIX8_ARB = 0x88C8
+
+pattern GL_MATRIX9_ARB = 0x88C9
+
+pattern GL_MAX_PROGRAM_ATTRIBS_ARB = 0x88AD
+
+pattern GL_MAX_PROGRAM_ENV_PARAMETERS_ARB = 0x88B5
+
+pattern GL_MAX_PROGRAM_INSTRUCTIONS_ARB = 0x88A1
+
+pattern GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB = 0x88B4
+
+pattern GL_MAX_PROGRAM_MATRICES_ARB = 0x862F
+
+pattern GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB = 0x862E
+
+pattern GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB = 0x88AF
+
+pattern GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB = 0x88A3
+
+pattern GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB = 0x88AB
+
+pattern GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB = 0x88A7
+
+pattern GL_MAX_PROGRAM_PARAMETERS_ARB = 0x88A9
+
+pattern GL_MAX_PROGRAM_TEMPORARIES_ARB = 0x88A5
+
+pattern GL_MAX_TEXTURE_COORDS_ARB = 0x8871
+
+pattern GL_MAX_TEXTURE_IMAGE_UNITS_ARB = 0x8872
+
+pattern GL_PROGRAM_ATTRIBS_ARB = 0x88AC
+
+pattern GL_PROGRAM_BINDING_ARB = 0x8677
+
+pattern GL_PROGRAM_ERROR_POSITION_ARB = 0x864B
+
+pattern GL_PROGRAM_ERROR_STRING_ARB = 0x8874
+
+pattern GL_PROGRAM_FORMAT_ARB = 0x8876
+
+pattern GL_PROGRAM_FORMAT_ASCII_ARB = 0x8875
+
+pattern GL_PROGRAM_INSTRUCTIONS_ARB = 0x88A0
+
+pattern GL_PROGRAM_LENGTH_ARB = 0x8627
+
+pattern GL_PROGRAM_NATIVE_ATTRIBS_ARB = 0x88AE
+
+pattern GL_PROGRAM_NATIVE_INSTRUCTIONS_ARB = 0x88A2
+
+pattern GL_PROGRAM_NATIVE_PARAMETERS_ARB = 0x88AA
+
+pattern GL_PROGRAM_NATIVE_TEMPORARIES_ARB = 0x88A6
+
+pattern GL_PROGRAM_PARAMETERS_ARB = 0x88A8
+
+pattern GL_PROGRAM_STRING_ARB = 0x8628
+
+pattern GL_PROGRAM_TEMPORARIES_ARB = 0x88A4
+
+pattern GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB = 0x88B6
+
+pattern GL_TRANSPOSE_CURRENT_MATRIX_ARB = 0x88B7
+
+glFramebufferParameteri :: MonadIO m => GLenum -> GLenum -> GLint -> m ()
+glFramebufferParameteri = ffienumenumintIOV glFramebufferParameteriFunPtr
+
+glFramebufferParameteriFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> IO ())
+glFramebufferParameteriFunPtr = unsafePerformIO (getProcAddress "glFramebufferParameteri")
+
+{-# NOINLINE glFramebufferParameteriFunPtr #-}
+
+glGetFramebufferParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
+glGetFramebufferParameteriv = ffienumenumPtrintIOV glGetFramebufferParameterivFunPtr
+
+glGetFramebufferParameterivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+glGetFramebufferParameterivFunPtr = unsafePerformIO (getProcAddress "glGetFramebufferParameteriv")
+
+{-# NOINLINE glGetFramebufferParameterivFunPtr #-}
+
+pattern GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS = 0x9314
+
+pattern GL_FRAMEBUFFER_DEFAULT_HEIGHT = 0x9311
+
+pattern GL_FRAMEBUFFER_DEFAULT_LAYERS = 0x9312
+
+pattern GL_FRAMEBUFFER_DEFAULT_SAMPLES = 0x9313
+
+pattern GL_FRAMEBUFFER_DEFAULT_WIDTH = 0x9310
+
+pattern GL_MAX_FRAMEBUFFER_HEIGHT = 0x9316
+
+pattern GL_MAX_FRAMEBUFFER_LAYERS = 0x9317
+
+pattern GL_MAX_FRAMEBUFFER_SAMPLES = 0x9318
+
+pattern GL_MAX_FRAMEBUFFER_WIDTH = 0x9315
+
+glBindFramebuffer :: MonadIO m => GLenum -> GLuint -> m ()
+glBindFramebuffer = ffienumuintIOV glBindFramebufferFunPtr
+
+glBindFramebufferFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
+glBindFramebufferFunPtr = unsafePerformIO (getProcAddress "glBindFramebuffer")
+
+{-# NOINLINE glBindFramebufferFunPtr #-}
+
+glBindRenderbuffer :: MonadIO m => GLenum -> GLuint -> m ()
+glBindRenderbuffer = ffienumuintIOV glBindRenderbufferFunPtr
+
+glBindRenderbufferFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
+glBindRenderbufferFunPtr = unsafePerformIO (getProcAddress "glBindRenderbuffer")
+
+{-# NOINLINE glBindRenderbufferFunPtr #-}
+
+glBlitFramebuffer :: MonadIO m => GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLbitfield -> GLenum -> m ()
+glBlitFramebuffer = ffiintintintintintintintintbitfieldenumIOV glBlitFramebufferFunPtr
+
+glBlitFramebufferFunPtr :: FunPtr (GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLbitfield -> GLenum -> IO ())
+glBlitFramebufferFunPtr = unsafePerformIO (getProcAddress "glBlitFramebuffer")
+
+{-# NOINLINE glBlitFramebufferFunPtr #-}
+
+glCheckFramebufferStatus :: MonadIO m => GLenum -> m GLenum
+glCheckFramebufferStatus = ffienumIOenum glCheckFramebufferStatusFunPtr
+
+glCheckFramebufferStatusFunPtr :: FunPtr (GLenum -> IO GLenum)
+glCheckFramebufferStatusFunPtr = unsafePerformIO (getProcAddress "glCheckFramebufferStatus")
+
+{-# NOINLINE glCheckFramebufferStatusFunPtr #-}
+
+glDeleteFramebuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glDeleteFramebuffers = ffisizeiPtruintIOV glDeleteFramebuffersFunPtr
+
+glDeleteFramebuffersFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glDeleteFramebuffersFunPtr = unsafePerformIO (getProcAddress "glDeleteFramebuffers")
+
+{-# NOINLINE glDeleteFramebuffersFunPtr #-}
+
+glDeleteRenderbuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glDeleteRenderbuffers = ffisizeiPtruintIOV glDeleteRenderbuffersFunPtr
+
+glDeleteRenderbuffersFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glDeleteRenderbuffersFunPtr = unsafePerformIO (getProcAddress "glDeleteRenderbuffers")
+
+{-# NOINLINE glDeleteRenderbuffersFunPtr #-}
+
+glFramebufferRenderbuffer :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> m ()
+glFramebufferRenderbuffer = ffienumenumenumuintIOV glFramebufferRenderbufferFunPtr
+
+glFramebufferRenderbufferFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLuint -> IO ())
+glFramebufferRenderbufferFunPtr = unsafePerformIO (getProcAddress "glFramebufferRenderbuffer")
+
+{-# NOINLINE glFramebufferRenderbufferFunPtr #-}
+
+glFramebufferTexture1D :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> m ()
+glFramebufferTexture1D = ffienumenumenumuintintIOV glFramebufferTexture1DFunPtr
+
+glFramebufferTexture1DFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLuint -> GLint -> IO ())
+glFramebufferTexture1DFunPtr = unsafePerformIO (getProcAddress "glFramebufferTexture1D")
+
+{-# NOINLINE glFramebufferTexture1DFunPtr #-}
+
+glFramebufferTexture2D :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> m ()
+glFramebufferTexture2D = ffienumenumenumuintintIOV glFramebufferTexture2DFunPtr
+
+glFramebufferTexture2DFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLuint -> GLint -> IO ())
+glFramebufferTexture2DFunPtr = unsafePerformIO (getProcAddress "glFramebufferTexture2D")
+
+{-# NOINLINE glFramebufferTexture2DFunPtr #-}
+
+glFramebufferTexture3D :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> GLint -> m ()
+glFramebufferTexture3D = ffienumenumenumuintintintIOV glFramebufferTexture3DFunPtr
+
+glFramebufferTexture3DFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLuint -> GLint -> GLint -> IO ())
+glFramebufferTexture3DFunPtr = unsafePerformIO (getProcAddress "glFramebufferTexture3D")
+
+{-# NOINLINE glFramebufferTexture3DFunPtr #-}
+
+glFramebufferTextureLayer :: MonadIO m => GLenum -> GLenum -> GLuint -> GLint -> GLint -> m ()
+glFramebufferTextureLayer = ffienumenumuintintintIOV glFramebufferTextureLayerFunPtr
+
+glFramebufferTextureLayerFunPtr :: FunPtr (GLenum -> GLenum -> GLuint -> GLint -> GLint -> IO ())
+glFramebufferTextureLayerFunPtr = unsafePerformIO (getProcAddress "glFramebufferTextureLayer")
+
+{-# NOINLINE glFramebufferTextureLayerFunPtr #-}
+
+glGenFramebuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glGenFramebuffers = ffisizeiPtruintIOV glGenFramebuffersFunPtr
+
+glGenFramebuffersFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glGenFramebuffersFunPtr = unsafePerformIO (getProcAddress "glGenFramebuffers")
+
+{-# NOINLINE glGenFramebuffersFunPtr #-}
+
+glGenRenderbuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glGenRenderbuffers = ffisizeiPtruintIOV glGenRenderbuffersFunPtr
+
+glGenRenderbuffersFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glGenRenderbuffersFunPtr = unsafePerformIO (getProcAddress "glGenRenderbuffers")
+
+{-# NOINLINE glGenRenderbuffersFunPtr #-}
+
+glGenerateMipmap :: MonadIO m => GLenum -> m ()
+glGenerateMipmap = ffienumIOV glGenerateMipmapFunPtr
+
+glGenerateMipmapFunPtr :: FunPtr (GLenum -> IO ())
+glGenerateMipmapFunPtr = unsafePerformIO (getProcAddress "glGenerateMipmap")
+
+{-# NOINLINE glGenerateMipmapFunPtr #-}
+
+glGetFramebufferAttachmentParameteriv :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLint -> m ()
+glGetFramebufferAttachmentParameteriv = ffienumenumenumPtrintIOV glGetFramebufferAttachmentParameterivFunPtr
+
+glGetFramebufferAttachmentParameterivFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ())
+glGetFramebufferAttachmentParameterivFunPtr = unsafePerformIO (getProcAddress "glGetFramebufferAttachmentParameteriv")
+
+{-# NOINLINE glGetFramebufferAttachmentParameterivFunPtr #-}
+
+glGetRenderbufferParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
+glGetRenderbufferParameteriv = ffienumenumPtrintIOV glGetRenderbufferParameterivFunPtr
+
+glGetRenderbufferParameterivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+glGetRenderbufferParameterivFunPtr = unsafePerformIO (getProcAddress "glGetRenderbufferParameteriv")
+
+{-# NOINLINE glGetRenderbufferParameterivFunPtr #-}
+
+glIsFramebuffer :: MonadIO m => GLuint -> m GLboolean
+glIsFramebuffer = ffiuintIOboolean glIsFramebufferFunPtr
+
+glIsFramebufferFunPtr :: FunPtr (GLuint -> IO GLboolean)
+glIsFramebufferFunPtr = unsafePerformIO (getProcAddress "glIsFramebuffer")
+
+{-# NOINLINE glIsFramebufferFunPtr #-}
+
+glIsRenderbuffer :: MonadIO m => GLuint -> m GLboolean
+glIsRenderbuffer = ffiuintIOboolean glIsRenderbufferFunPtr
+
+glIsRenderbufferFunPtr :: FunPtr (GLuint -> IO GLboolean)
+glIsRenderbufferFunPtr = unsafePerformIO (getProcAddress "glIsRenderbuffer")
+
+{-# NOINLINE glIsRenderbufferFunPtr #-}
+
+glRenderbufferStorage :: MonadIO m => GLenum -> GLenum -> GLsizei -> GLsizei -> m ()
+glRenderbufferStorage = ffienumenumsizeisizeiIOV glRenderbufferStorageFunPtr
+
+glRenderbufferStorageFunPtr :: FunPtr (GLenum -> GLenum -> GLsizei -> GLsizei -> IO ())
+glRenderbufferStorageFunPtr = unsafePerformIO (getProcAddress "glRenderbufferStorage")
+
+{-# NOINLINE glRenderbufferStorageFunPtr #-}
+
+glRenderbufferStorageMultisample :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()
+glRenderbufferStorageMultisample = ffienumsizeienumsizeisizeiIOV glRenderbufferStorageMultisampleFunPtr
+
+glRenderbufferStorageMultisampleFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> IO ())
+glRenderbufferStorageMultisampleFunPtr = unsafePerformIO (getProcAddress "glRenderbufferStorageMultisample")
+
+{-# NOINLINE glRenderbufferStorageMultisampleFunPtr #-}
+
+pattern GL_COLOR_ATTACHMENT0 = 0x8CE0
+
+pattern GL_COLOR_ATTACHMENT1 = 0x8CE1
+
+pattern GL_COLOR_ATTACHMENT10 = 0x8CEA
+
+pattern GL_COLOR_ATTACHMENT11 = 0x8CEB
+
+pattern GL_COLOR_ATTACHMENT12 = 0x8CEC
+
+pattern GL_COLOR_ATTACHMENT13 = 0x8CED
+
+pattern GL_COLOR_ATTACHMENT14 = 0x8CEE
+
+pattern GL_COLOR_ATTACHMENT15 = 0x8CEF
+
+pattern GL_COLOR_ATTACHMENT2 = 0x8CE2
+
+pattern GL_COLOR_ATTACHMENT3 = 0x8CE3
+
+pattern GL_COLOR_ATTACHMENT4 = 0x8CE4
+
+pattern GL_COLOR_ATTACHMENT5 = 0x8CE5
+
+pattern GL_COLOR_ATTACHMENT6 = 0x8CE6
+
+pattern GL_COLOR_ATTACHMENT7 = 0x8CE7
+
+pattern GL_COLOR_ATTACHMENT8 = 0x8CE8
+
+pattern GL_COLOR_ATTACHMENT9 = 0x8CE9
+
+pattern GL_DEPTH24_STENCIL8 = 0x88F0
+
+pattern GL_DEPTH_ATTACHMENT = 0x8D00
+
+pattern GL_DEPTH_STENCIL = 0x84F9
+
+pattern GL_DEPTH_STENCIL_ATTACHMENT = 0x821A
+
+pattern GL_DRAW_FRAMEBUFFER = 0x8CA9
+
+pattern GL_DRAW_FRAMEBUFFER_BINDING = 0x8CA6
+
+pattern GL_FRAMEBUFFER = 0x8D40
+
+pattern GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE = 0x8215
+
+pattern GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE = 0x8214
+
+pattern GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING = 0x8210
+
+pattern GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE = 0x8211
+
+pattern GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE = 0x8216
+
+pattern GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE = 0x8213
+
+pattern GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME = 0x8CD1
+
+pattern GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE = 0x8CD0
+
+pattern GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE = 0x8212
+
+pattern GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE = 0x8217
+
+pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE = 0x8CD3
+
+pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER = 0x8CD4
+
+pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL = 0x8CD2
+
+pattern GL_FRAMEBUFFER_BINDING = 0x8CA6
+
+pattern GL_FRAMEBUFFER_COMPLETE = 0x8CD5
+
+pattern GL_FRAMEBUFFER_DEFAULT = 0x8218
+
+pattern GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT = 0x8CD6
+
+pattern GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER = 0x8CDB
+
+pattern GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT = 0x8CD7
+
+pattern GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE = 0x8D56
+
+pattern GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER = 0x8CDC
+
+pattern GL_FRAMEBUFFER_UNDEFINED = 0x8219
+
+pattern GL_FRAMEBUFFER_UNSUPPORTED = 0x8CDD
+
+pattern GL_INDEX = 0x8222
+
+pattern GL_INVALID_FRAMEBUFFER_OPERATION = 0x0506
+
+pattern GL_MAX_COLOR_ATTACHMENTS = 0x8CDF
+
+pattern GL_MAX_RENDERBUFFER_SIZE = 0x84E8
+
+pattern GL_MAX_SAMPLES = 0x8D57
+
+pattern GL_READ_FRAMEBUFFER = 0x8CA8
+
+pattern GL_READ_FRAMEBUFFER_BINDING = 0x8CAA
+
+pattern GL_RENDERBUFFER = 0x8D41
+
+pattern GL_RENDERBUFFER_ALPHA_SIZE = 0x8D53
+
+pattern GL_RENDERBUFFER_BINDING = 0x8CA7
+
+pattern GL_RENDERBUFFER_BLUE_SIZE = 0x8D52
+
+pattern GL_RENDERBUFFER_DEPTH_SIZE = 0x8D54
+
+pattern GL_RENDERBUFFER_GREEN_SIZE = 0x8D51
+
+pattern GL_RENDERBUFFER_HEIGHT = 0x8D43
+
+pattern GL_RENDERBUFFER_INTERNAL_FORMAT = 0x8D44
+
+pattern GL_RENDERBUFFER_RED_SIZE = 0x8D50
+
+pattern GL_RENDERBUFFER_SAMPLES = 0x8CAB
+
+pattern GL_RENDERBUFFER_STENCIL_SIZE = 0x8D55
+
+pattern GL_RENDERBUFFER_WIDTH = 0x8D42
+
+pattern GL_STENCIL_ATTACHMENT = 0x8D20
+
+pattern GL_STENCIL_INDEX1 = 0x8D46
+
+pattern GL_STENCIL_INDEX16 = 0x8D49
+
+pattern GL_STENCIL_INDEX4 = 0x8D47
+
+pattern GL_STENCIL_INDEX8 = 0x8D48
+
+pattern GL_TEXTURE_STENCIL_SIZE = 0x88F1
+
+pattern GL_UNSIGNED_INT_24_8 = 0x84FA
+
+pattern GL_UNSIGNED_NORMALIZED = 0x8C17
+
+pattern GL_FRAMEBUFFER_SRGB = 0x8DB9
+
+pattern GL_MAX_VARYING_COMPONENTS = 0x8B4B
+
+glGetProgramBinary :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLenum -> Ptr () -> m ()
+glGetProgramBinary = ffiuintsizeiPtrsizeiPtrenumPtrVIOV glGetProgramBinaryFunPtr
+
+glGetProgramBinaryFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLenum -> Ptr () -> IO ())
+glGetProgramBinaryFunPtr = unsafePerformIO (getProcAddress "glGetProgramBinary")
+
+{-# NOINLINE glGetProgramBinaryFunPtr #-}
+
+glProgramBinary :: MonadIO m => GLuint -> GLenum -> Ptr () -> GLsizei -> m ()
+glProgramBinary = ffiuintenumPtrVsizeiIOV glProgramBinaryFunPtr
+
+glProgramBinaryFunPtr :: FunPtr (GLuint -> GLenum -> Ptr () -> GLsizei -> IO ())
+glProgramBinaryFunPtr = unsafePerformIO (getProcAddress "glProgramBinary")
+
+{-# NOINLINE glProgramBinaryFunPtr #-}
+
+glProgramParameteri :: MonadIO m => GLuint -> GLenum -> GLint -> m ()
+glProgramParameteri = ffiuintenumintIOV glProgramParameteriFunPtr
+
+glProgramParameteriFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> IO ())
+glProgramParameteriFunPtr = unsafePerformIO (getProcAddress "glProgramParameteri")
+
+{-# NOINLINE glProgramParameteriFunPtr #-}
+
+pattern GL_NUM_PROGRAM_BINARY_FORMATS = 0x87FE
+
+pattern GL_PROGRAM_BINARY_FORMATS = 0x87FF
+
+pattern GL_PROGRAM_BINARY_LENGTH = 0x8741
+
+pattern GL_PROGRAM_BINARY_RETRIEVABLE_HINT = 0x8257
+
+glGetCompressedTextureSubImage :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> Ptr () -> m ()
+glGetCompressedTextureSubImage = ffiuintintintintintsizeisizeisizeisizeiPtrVIOV glGetCompressedTextureSubImageFunPtr
+
+glGetCompressedTextureSubImageFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> Ptr () -> IO ())
+glGetCompressedTextureSubImageFunPtr = unsafePerformIO (getProcAddress "glGetCompressedTextureSubImage")
+
+{-# NOINLINE glGetCompressedTextureSubImageFunPtr #-}
+
+glGetTextureSubImage :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> GLsizei -> Ptr () -> m ()
+glGetTextureSubImage = ffiuintintintintintsizeisizeisizeienumenumsizeiPtrVIOV glGetTextureSubImageFunPtr
+
+glGetTextureSubImageFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> GLsizei -> Ptr () -> IO ())
+glGetTextureSubImageFunPtr = unsafePerformIO (getProcAddress "glGetTextureSubImage")
+
+{-# NOINLINE glGetTextureSubImageFunPtr #-}
+
+pattern GL_FRAGMENT_INTERPOLATION_OFFSET_BITS = 0x8E5D
+
+pattern GL_GEOMETRY_SHADER_INVOCATIONS = 0x887F
+
+pattern GL_MAX_FRAGMENT_INTERPOLATION_OFFSET = 0x8E5C
+
+pattern GL_MAX_GEOMETRY_SHADER_INVOCATIONS = 0x8E5A
+
+pattern GL_MAX_VERTEX_STREAMS = 0x8E71
+
+pattern GL_MIN_FRAGMENT_INTERPOLATION_OFFSET = 0x8E5B
+
+glGetUniformdv :: MonadIO m => GLuint -> GLint -> Ptr GLdouble -> m ()
+glGetUniformdv = ffiuintintPtrdoubleIOV glGetUniformdvFunPtr
+
+glGetUniformdvFunPtr :: FunPtr (GLuint -> GLint -> Ptr GLdouble -> IO ())
+glGetUniformdvFunPtr = unsafePerformIO (getProcAddress "glGetUniformdv")
+
+{-# NOINLINE glGetUniformdvFunPtr #-}
+
+glUniform1d :: MonadIO m => GLint -> GLdouble -> m ()
+glUniform1d = ffiintdoubleIOV glUniform1dFunPtr
+
+glUniform1dFunPtr :: FunPtr (GLint -> GLdouble -> IO ())
+glUniform1dFunPtr = unsafePerformIO (getProcAddress "glUniform1d")
+
+{-# NOINLINE glUniform1dFunPtr #-}
+
+glUniform1dv :: MonadIO m => GLint -> GLsizei -> Ptr GLdouble -> m ()
+glUniform1dv = ffiintsizeiPtrdoubleIOV glUniform1dvFunPtr
+
+glUniform1dvFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLdouble -> IO ())
+glUniform1dvFunPtr = unsafePerformIO (getProcAddress "glUniform1dv")
+
+{-# NOINLINE glUniform1dvFunPtr #-}
+
+glUniform2d :: MonadIO m => GLint -> GLdouble -> GLdouble -> m ()
+glUniform2d = ffiintdoubledoubleIOV glUniform2dFunPtr
+
+glUniform2dFunPtr :: FunPtr (GLint -> GLdouble -> GLdouble -> IO ())
+glUniform2dFunPtr = unsafePerformIO (getProcAddress "glUniform2d")
+
+{-# NOINLINE glUniform2dFunPtr #-}
+
+glUniform2dv :: MonadIO m => GLint -> GLsizei -> Ptr GLdouble -> m ()
+glUniform2dv = ffiintsizeiPtrdoubleIOV glUniform2dvFunPtr
+
+glUniform2dvFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLdouble -> IO ())
+glUniform2dvFunPtr = unsafePerformIO (getProcAddress "glUniform2dv")
+
+{-# NOINLINE glUniform2dvFunPtr #-}
+
+glUniform3d :: MonadIO m => GLint -> GLdouble -> GLdouble -> GLdouble -> m ()
+glUniform3d = ffiintdoubledoubledoubleIOV glUniform3dFunPtr
+
+glUniform3dFunPtr :: FunPtr (GLint -> GLdouble -> GLdouble -> GLdouble -> IO ())
+glUniform3dFunPtr = unsafePerformIO (getProcAddress "glUniform3d")
+
+{-# NOINLINE glUniform3dFunPtr #-}
+
+glUniform3dv :: MonadIO m => GLint -> GLsizei -> Ptr GLdouble -> m ()
+glUniform3dv = ffiintsizeiPtrdoubleIOV glUniform3dvFunPtr
+
+glUniform3dvFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLdouble -> IO ())
+glUniform3dvFunPtr = unsafePerformIO (getProcAddress "glUniform3dv")
+
+{-# NOINLINE glUniform3dvFunPtr #-}
+
+glUniform4d :: MonadIO m => GLint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
+glUniform4d = ffiintdoubledoubledoubledoubleIOV glUniform4dFunPtr
+
+glUniform4dFunPtr :: FunPtr (GLint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
+glUniform4dFunPtr = unsafePerformIO (getProcAddress "glUniform4d")
+
+{-# NOINLINE glUniform4dFunPtr #-}
+
+glUniform4dv :: MonadIO m => GLint -> GLsizei -> Ptr GLdouble -> m ()
+glUniform4dv = ffiintsizeiPtrdoubleIOV glUniform4dvFunPtr
+
+glUniform4dvFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLdouble -> IO ())
+glUniform4dvFunPtr = unsafePerformIO (getProcAddress "glUniform4dv")
+
+{-# NOINLINE glUniform4dvFunPtr #-}
+
+glUniformMatrix2dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
+glUniformMatrix2dv = ffiintsizeibooleanPtrdoubleIOV glUniformMatrix2dvFunPtr
+
+glUniformMatrix2dvFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
+glUniformMatrix2dvFunPtr = unsafePerformIO (getProcAddress "glUniformMatrix2dv")
+
+{-# NOINLINE glUniformMatrix2dvFunPtr #-}
+
+glUniformMatrix2x3dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
+glUniformMatrix2x3dv = ffiintsizeibooleanPtrdoubleIOV glUniformMatrix2x3dvFunPtr
+
+glUniformMatrix2x3dvFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
+glUniformMatrix2x3dvFunPtr = unsafePerformIO (getProcAddress "glUniformMatrix2x3dv")
+
+{-# NOINLINE glUniformMatrix2x3dvFunPtr #-}
+
+glUniformMatrix2x4dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
+glUniformMatrix2x4dv = ffiintsizeibooleanPtrdoubleIOV glUniformMatrix2x4dvFunPtr
+
+glUniformMatrix2x4dvFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
+glUniformMatrix2x4dvFunPtr = unsafePerformIO (getProcAddress "glUniformMatrix2x4dv")
+
+{-# NOINLINE glUniformMatrix2x4dvFunPtr #-}
+
+glUniformMatrix3dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
+glUniformMatrix3dv = ffiintsizeibooleanPtrdoubleIOV glUniformMatrix3dvFunPtr
+
+glUniformMatrix3dvFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
+glUniformMatrix3dvFunPtr = unsafePerformIO (getProcAddress "glUniformMatrix3dv")
+
+{-# NOINLINE glUniformMatrix3dvFunPtr #-}
+
+glUniformMatrix3x2dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
+glUniformMatrix3x2dv = ffiintsizeibooleanPtrdoubleIOV glUniformMatrix3x2dvFunPtr
+
+glUniformMatrix3x2dvFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
+glUniformMatrix3x2dvFunPtr = unsafePerformIO (getProcAddress "glUniformMatrix3x2dv")
+
+{-# NOINLINE glUniformMatrix3x2dvFunPtr #-}
+
+glUniformMatrix3x4dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
+glUniformMatrix3x4dv = ffiintsizeibooleanPtrdoubleIOV glUniformMatrix3x4dvFunPtr
+
+glUniformMatrix3x4dvFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
+glUniformMatrix3x4dvFunPtr = unsafePerformIO (getProcAddress "glUniformMatrix3x4dv")
+
+{-# NOINLINE glUniformMatrix3x4dvFunPtr #-}
+
+glUniformMatrix4dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
+glUniformMatrix4dv = ffiintsizeibooleanPtrdoubleIOV glUniformMatrix4dvFunPtr
+
+glUniformMatrix4dvFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
+glUniformMatrix4dvFunPtr = unsafePerformIO (getProcAddress "glUniformMatrix4dv")
+
+{-# NOINLINE glUniformMatrix4dvFunPtr #-}
+
+glUniformMatrix4x2dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
+glUniformMatrix4x2dv = ffiintsizeibooleanPtrdoubleIOV glUniformMatrix4x2dvFunPtr
+
+glUniformMatrix4x2dvFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
+glUniformMatrix4x2dvFunPtr = unsafePerformIO (getProcAddress "glUniformMatrix4x2dv")
+
+{-# NOINLINE glUniformMatrix4x2dvFunPtr #-}
+
+glUniformMatrix4x3dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
+glUniformMatrix4x3dv = ffiintsizeibooleanPtrdoubleIOV glUniformMatrix4x3dvFunPtr
+
+glUniformMatrix4x3dvFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
+glUniformMatrix4x3dvFunPtr = unsafePerformIO (getProcAddress "glUniformMatrix4x3dv")
+
+{-# NOINLINE glUniformMatrix4x3dvFunPtr #-}
+
+pattern GL_DOUBLE = 0x140A
+
+pattern GL_DOUBLE_MAT2 = 0x8F46
+
+pattern GL_DOUBLE_MAT2x3 = 0x8F49
+
+pattern GL_DOUBLE_MAT2x4 = 0x8F4A
+
+pattern GL_DOUBLE_MAT3 = 0x8F47
+
+pattern GL_DOUBLE_MAT3x2 = 0x8F4B
+
+pattern GL_DOUBLE_MAT3x4 = 0x8F4C
+
+pattern GL_DOUBLE_MAT4 = 0x8F48
+
+pattern GL_DOUBLE_MAT4x2 = 0x8F4D
+
+pattern GL_DOUBLE_MAT4x3 = 0x8F4E
+
+pattern GL_DOUBLE_VEC2 = 0x8FFC
+
+pattern GL_DOUBLE_VEC3 = 0x8FFD
+
+pattern GL_DOUBLE_VEC4 = 0x8FFE
+
+pattern GL_HALF_FLOAT = 0x140B
+
+glBlendColor :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
+glBlendColor = ffifloatfloatfloatfloatIOV glBlendColorFunPtr
+
+glBlendColorFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+glBlendColorFunPtr = unsafePerformIO (getProcAddress "glBlendColor")
+
+{-# NOINLINE glBlendColorFunPtr #-}
+
+glBlendEquation :: MonadIO m => GLenum -> m ()
+glBlendEquation = ffienumIOV glBlendEquationFunPtr
+
+glBlendEquationFunPtr :: FunPtr (GLenum -> IO ())
+glBlendEquationFunPtr = unsafePerformIO (getProcAddress "glBlendEquation")
+
+{-# NOINLINE glBlendEquationFunPtr #-}
+
+pattern GL_BLEND_COLOR = 0x8005
+
+pattern GL_BLEND_EQUATION = 0x8009
+
+pattern GL_CONSTANT_ALPHA = 0x8003
+
+pattern GL_CONSTANT_COLOR = 0x8001
+
+pattern GL_FUNC_ADD = 0x8006
+
+pattern GL_FUNC_REVERSE_SUBTRACT = 0x800B
+
+pattern GL_FUNC_SUBTRACT = 0x800A
+
+pattern GL_MAX = 0x8008
+
+pattern GL_MIN = 0x8007
+
+pattern GL_ONE_MINUS_CONSTANT_ALPHA = 0x8004
+
+pattern GL_ONE_MINUS_CONSTANT_COLOR = 0x8002
+
+glGetInternalformativ :: MonadIO m => GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLint -> m ()
+glGetInternalformativ = ffienumenumenumsizeiPtrintIOV glGetInternalformativFunPtr
+
+glGetInternalformativFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLint -> IO ())
+glGetInternalformativFunPtr = unsafePerformIO (getProcAddress "glGetInternalformativ")
+
+{-# NOINLINE glGetInternalformativFunPtr #-}
+
+pattern GL_NUM_SAMPLE_COUNTS = 0x9380
+
+glGetInternalformati64v :: MonadIO m => GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLint64 -> m ()
+glGetInternalformati64v = ffienumenumenumsizeiPtrint64IOV glGetInternalformati64vFunPtr
+
+glGetInternalformati64vFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLint64 -> IO ())
+glGetInternalformati64vFunPtr = unsafePerformIO (getProcAddress "glGetInternalformati64v")
+
+{-# NOINLINE glGetInternalformati64vFunPtr #-}
+
+pattern GL_AUTO_GENERATE_MIPMAP = 0x8295
+
+pattern GL_CAVEAT_SUPPORT = 0x82B8
+
+pattern GL_CLEAR_BUFFER = 0x82B4
+
+pattern GL_COLOR_COMPONENTS = 0x8283
+
+pattern GL_COLOR_ENCODING = 0x8296
+
+pattern GL_COLOR_RENDERABLE = 0x8286
+
+pattern GL_COMPUTE_TEXTURE = 0x82A0
+
+pattern GL_DEPTH_COMPONENTS = 0x8284
+
+pattern GL_DEPTH_RENDERABLE = 0x8287
+
+pattern GL_FILTER = 0x829A
+
+pattern GL_FRAGMENT_TEXTURE = 0x829F
+
+pattern GL_FRAMEBUFFER_BLEND = 0x828B
+
+pattern GL_FRAMEBUFFER_RENDERABLE = 0x8289
+
+pattern GL_FRAMEBUFFER_RENDERABLE_LAYERED = 0x828A
+
+pattern GL_FULL_SUPPORT = 0x82B7
+
+pattern GL_GEOMETRY_TEXTURE = 0x829E
+
+pattern GL_GET_TEXTURE_IMAGE_FORMAT = 0x8291
+
+pattern GL_GET_TEXTURE_IMAGE_TYPE = 0x8292
+
+pattern GL_IMAGE_CLASS_10_10_10_2 = 0x82C3
+
+pattern GL_IMAGE_CLASS_11_11_10 = 0x82C2
+
+pattern GL_IMAGE_CLASS_1_X_16 = 0x82BE
+
+pattern GL_IMAGE_CLASS_1_X_32 = 0x82BB
+
+pattern GL_IMAGE_CLASS_1_X_8 = 0x82C1
+
+pattern GL_IMAGE_CLASS_2_X_16 = 0x82BD
+
+pattern GL_IMAGE_CLASS_2_X_32 = 0x82BA
+
+pattern GL_IMAGE_CLASS_2_X_8 = 0x82C0
+
+pattern GL_IMAGE_CLASS_4_X_16 = 0x82BC
+
+pattern GL_IMAGE_CLASS_4_X_32 = 0x82B9
+
+pattern GL_IMAGE_CLASS_4_X_8 = 0x82BF
+
+pattern GL_IMAGE_COMPATIBILITY_CLASS = 0x82A8
+
+pattern GL_IMAGE_FORMAT_COMPATIBILITY_TYPE = 0x90C7
+
+pattern GL_IMAGE_PIXEL_FORMAT = 0x82A9
+
+pattern GL_IMAGE_PIXEL_TYPE = 0x82AA
+
+pattern GL_IMAGE_TEXEL_SIZE = 0x82A7
+
+pattern GL_INTERNALFORMAT_ALPHA_SIZE = 0x8274
+
+pattern GL_INTERNALFORMAT_ALPHA_TYPE = 0x827B
+
+pattern GL_INTERNALFORMAT_BLUE_SIZE = 0x8273
+
+pattern GL_INTERNALFORMAT_BLUE_TYPE = 0x827A
+
+pattern GL_INTERNALFORMAT_DEPTH_SIZE = 0x8275
+
+pattern GL_INTERNALFORMAT_DEPTH_TYPE = 0x827C
+
+pattern GL_INTERNALFORMAT_GREEN_SIZE = 0x8272
+
+pattern GL_INTERNALFORMAT_GREEN_TYPE = 0x8279
+
+pattern GL_INTERNALFORMAT_PREFERRED = 0x8270
+
+pattern GL_INTERNALFORMAT_RED_SIZE = 0x8271
+
+pattern GL_INTERNALFORMAT_RED_TYPE = 0x8278
+
+pattern GL_INTERNALFORMAT_SHARED_SIZE = 0x8277
+
+pattern GL_INTERNALFORMAT_STENCIL_SIZE = 0x8276
+
+pattern GL_INTERNALFORMAT_STENCIL_TYPE = 0x827D
+
+pattern GL_INTERNALFORMAT_SUPPORTED = 0x826F
+
+pattern GL_MANUAL_GENERATE_MIPMAP = 0x8294
+
+pattern GL_MAX_COMBINED_DIMENSIONS = 0x8282
+
+pattern GL_MAX_DEPTH = 0x8280
+
+pattern GL_MAX_HEIGHT = 0x827F
+
+pattern GL_MAX_LAYERS = 0x8281
+
+pattern GL_MAX_WIDTH = 0x827E
+
+pattern GL_MIPMAP = 0x8293
+
+pattern GL_READ_PIXELS = 0x828C
+
+pattern GL_READ_PIXELS_FORMAT = 0x828D
+
+pattern GL_READ_PIXELS_TYPE = 0x828E
+
+pattern GL_SAMPLES = 0x80A9
+
+pattern GL_SHADER_IMAGE_ATOMIC = 0x82A6
+
+pattern GL_SHADER_IMAGE_LOAD = 0x82A4
+
+pattern GL_SHADER_IMAGE_STORE = 0x82A5
+
+pattern GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_TEST = 0x82AC
+
+pattern GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_WRITE = 0x82AE
+
+pattern GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_TEST = 0x82AD
+
+pattern GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_WRITE = 0x82AF
+
+pattern GL_SRGB_READ = 0x8297
+
+pattern GL_SRGB_WRITE = 0x8298
+
+pattern GL_STENCIL_COMPONENTS = 0x8285
+
+pattern GL_STENCIL_RENDERABLE = 0x8288
+
+pattern GL_TESS_CONTROL_TEXTURE = 0x829C
+
+pattern GL_TESS_EVALUATION_TEXTURE = 0x829D
+
+pattern GL_TEXTURE_1D = 0x0DE0
+
+pattern GL_TEXTURE_1D_ARRAY = 0x8C18
+
+pattern GL_TEXTURE_2D = 0x0DE1
+
+pattern GL_TEXTURE_2D_ARRAY = 0x8C1A
+
+pattern GL_TEXTURE_2D_MULTISAMPLE = 0x9100
+
+pattern GL_TEXTURE_2D_MULTISAMPLE_ARRAY = 0x9102
+
+pattern GL_TEXTURE_3D = 0x806F
+
+pattern GL_TEXTURE_BUFFER = 0x8C2A
+
+pattern GL_TEXTURE_COMPRESSED = 0x86A1
+
+pattern GL_TEXTURE_COMPRESSED_BLOCK_HEIGHT = 0x82B2
+
+pattern GL_TEXTURE_COMPRESSED_BLOCK_SIZE = 0x82B3
+
+pattern GL_TEXTURE_COMPRESSED_BLOCK_WIDTH = 0x82B1
+
+pattern GL_TEXTURE_CUBE_MAP = 0x8513
+
+pattern GL_TEXTURE_CUBE_MAP_ARRAY = 0x9009
+
+pattern GL_TEXTURE_GATHER = 0x82A2
+
+pattern GL_TEXTURE_GATHER_SHADOW = 0x82A3
+
+pattern GL_TEXTURE_IMAGE_FORMAT = 0x828F
+
+pattern GL_TEXTURE_IMAGE_TYPE = 0x8290
+
+pattern GL_TEXTURE_RECTANGLE = 0x84F5
+
+pattern GL_TEXTURE_SHADOW = 0x82A1
+
+pattern GL_TEXTURE_VIEW = 0x82B5
+
+pattern GL_VERTEX_TEXTURE = 0x829B
+
+pattern GL_VIEW_CLASS_128_BITS = 0x82C4
+
+pattern GL_VIEW_CLASS_16_BITS = 0x82CA
+
+pattern GL_VIEW_CLASS_24_BITS = 0x82C9
+
+pattern GL_VIEW_CLASS_32_BITS = 0x82C8
+
+pattern GL_VIEW_CLASS_48_BITS = 0x82C7
+
+pattern GL_VIEW_CLASS_64_BITS = 0x82C6
+
+pattern GL_VIEW_CLASS_8_BITS = 0x82CB
+
+pattern GL_VIEW_CLASS_96_BITS = 0x82C5
+
+pattern GL_VIEW_CLASS_BPTC_FLOAT = 0x82D3
+
+pattern GL_VIEW_CLASS_BPTC_UNORM = 0x82D2
+
+pattern GL_VIEW_CLASS_RGTC1_RED = 0x82D0
+
+pattern GL_VIEW_CLASS_RGTC2_RG = 0x82D1
+
+pattern GL_VIEW_CLASS_S3TC_DXT1_RGB = 0x82CC
+
+pattern GL_VIEW_CLASS_S3TC_DXT1_RGBA = 0x82CD
+
+pattern GL_VIEW_CLASS_S3TC_DXT3_RGBA = 0x82CE
+
+pattern GL_VIEW_CLASS_S3TC_DXT5_RGBA = 0x82CF
+
+pattern GL_VIEW_COMPATIBILITY_CLASS = 0x82B6
+
+glInvalidateBufferData :: MonadIO m => GLuint -> m ()
+glInvalidateBufferData = ffiuintIOV glInvalidateBufferDataFunPtr
+
+glInvalidateBufferDataFunPtr :: FunPtr (GLuint -> IO ())
+glInvalidateBufferDataFunPtr = unsafePerformIO (getProcAddress "glInvalidateBufferData")
+
+{-# NOINLINE glInvalidateBufferDataFunPtr #-}
+
+glInvalidateBufferSubData :: MonadIO m => GLuint -> GLintptr -> GLsizeiptr -> m ()
+glInvalidateBufferSubData = ffiuintintptrsizeiptrIOV glInvalidateBufferSubDataFunPtr
+
+glInvalidateBufferSubDataFunPtr :: FunPtr (GLuint -> GLintptr -> GLsizeiptr -> IO ())
+glInvalidateBufferSubDataFunPtr = unsafePerformIO (getProcAddress "glInvalidateBufferSubData")
+
+{-# NOINLINE glInvalidateBufferSubDataFunPtr #-}
+
+glInvalidateFramebuffer :: MonadIO m => GLenum -> GLsizei -> Ptr GLenum -> m ()
+glInvalidateFramebuffer = ffienumsizeiPtrenumIOV glInvalidateFramebufferFunPtr
+
+glInvalidateFramebufferFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr GLenum -> IO ())
+glInvalidateFramebufferFunPtr = unsafePerformIO (getProcAddress "glInvalidateFramebuffer")
+
+{-# NOINLINE glInvalidateFramebufferFunPtr #-}
+
+glInvalidateSubFramebuffer :: MonadIO m => GLenum -> GLsizei -> Ptr GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> m ()
+glInvalidateSubFramebuffer = ffienumsizeiPtrenumintintsizeisizeiIOV glInvalidateSubFramebufferFunPtr
+
+glInvalidateSubFramebufferFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> IO ())
+glInvalidateSubFramebufferFunPtr = unsafePerformIO (getProcAddress "glInvalidateSubFramebuffer")
+
+{-# NOINLINE glInvalidateSubFramebufferFunPtr #-}
+
+glInvalidateTexImage :: MonadIO m => GLuint -> GLint -> m ()
+glInvalidateTexImage = ffiuintintIOV glInvalidateTexImageFunPtr
+
+glInvalidateTexImageFunPtr :: FunPtr (GLuint -> GLint -> IO ())
+glInvalidateTexImageFunPtr = unsafePerformIO (getProcAddress "glInvalidateTexImage")
+
+{-# NOINLINE glInvalidateTexImageFunPtr #-}
+
+glInvalidateTexSubImage :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> m ()
+glInvalidateTexSubImage = ffiuintintintintintsizeisizeisizeiIOV glInvalidateTexSubImageFunPtr
+
+glInvalidateTexSubImageFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> IO ())
+glInvalidateTexSubImageFunPtr = unsafePerformIO (getProcAddress "glInvalidateTexSubImage")
+
+{-# NOINLINE glInvalidateTexSubImageFunPtr #-}
+
+pattern GL_MIN_MAP_BUFFER_ALIGNMENT = 0x90BC
+
+glFlushMappedBufferRange :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> m ()
+glFlushMappedBufferRange = ffienumintptrsizeiptrIOV glFlushMappedBufferRangeFunPtr
+
+glFlushMappedBufferRangeFunPtr :: FunPtr (GLenum -> GLintptr -> GLsizeiptr -> IO ())
+glFlushMappedBufferRangeFunPtr = unsafePerformIO (getProcAddress "glFlushMappedBufferRange")
+
+{-# NOINLINE glFlushMappedBufferRangeFunPtr #-}
+
+glMapBufferRange :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> GLbitfield -> m (Ptr ())
+glMapBufferRange = ffienumintptrsizeiptrbitfieldIOPtrV glMapBufferRangeFunPtr
+
+glMapBufferRangeFunPtr :: FunPtr (GLenum -> GLintptr -> GLsizeiptr -> GLbitfield -> IO (Ptr ()))
+glMapBufferRangeFunPtr = unsafePerformIO (getProcAddress "glMapBufferRange")
+
+{-# NOINLINE glMapBufferRangeFunPtr #-}
+
+pattern GL_MAP_FLUSH_EXPLICIT_BIT = 0x0010
+
+pattern GL_MAP_INVALIDATE_BUFFER_BIT = 0x0008
+
+pattern GL_MAP_INVALIDATE_RANGE_BIT = 0x0004
+
+pattern GL_MAP_UNSYNCHRONIZED_BIT = 0x0020
+
+glBindBuffersBase :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLuint -> m ()
+glBindBuffersBase = ffienumuintsizeiPtruintIOV glBindBuffersBaseFunPtr
+
+glBindBuffersBaseFunPtr :: FunPtr (GLenum -> GLuint -> GLsizei -> Ptr GLuint -> IO ())
+glBindBuffersBaseFunPtr = unsafePerformIO (getProcAddress "glBindBuffersBase")
+
+{-# NOINLINE glBindBuffersBaseFunPtr #-}
+
+glBindBuffersRange :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLuint -> Ptr GLintptr -> Ptr GLsizeiptr -> m ()
+glBindBuffersRange = ffienumuintsizeiPtruintPtrintptrPtrsizeiptrIOV glBindBuffersRangeFunPtr
+
+glBindBuffersRangeFunPtr :: FunPtr (GLenum -> GLuint -> GLsizei -> Ptr GLuint -> Ptr GLintptr -> Ptr GLsizeiptr -> IO ())
+glBindBuffersRangeFunPtr = unsafePerformIO (getProcAddress "glBindBuffersRange")
+
+{-# NOINLINE glBindBuffersRangeFunPtr #-}
+
+glBindImageTextures :: MonadIO m => GLuint -> GLsizei -> Ptr GLuint -> m ()
+glBindImageTextures = ffiuintsizeiPtruintIOV glBindImageTexturesFunPtr
+
+glBindImageTexturesFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLuint -> IO ())
+glBindImageTexturesFunPtr = unsafePerformIO (getProcAddress "glBindImageTextures")
+
+{-# NOINLINE glBindImageTexturesFunPtr #-}
+
+glBindSamplers :: MonadIO m => GLuint -> GLsizei -> Ptr GLuint -> m ()
+glBindSamplers = ffiuintsizeiPtruintIOV glBindSamplersFunPtr
+
+glBindSamplersFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLuint -> IO ())
+glBindSamplersFunPtr = unsafePerformIO (getProcAddress "glBindSamplers")
+
+{-# NOINLINE glBindSamplersFunPtr #-}
+
+glBindTextures :: MonadIO m => GLuint -> GLsizei -> Ptr GLuint -> m ()
+glBindTextures = ffiuintsizeiPtruintIOV glBindTexturesFunPtr
+
+glBindTexturesFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLuint -> IO ())
+glBindTexturesFunPtr = unsafePerformIO (getProcAddress "glBindTextures")
+
+{-# NOINLINE glBindTexturesFunPtr #-}
+
+glBindVertexBuffers :: MonadIO m => GLuint -> GLsizei -> Ptr GLuint -> Ptr GLintptr -> Ptr GLsizei -> m ()
+glBindVertexBuffers = ffiuintsizeiPtruintPtrintptrPtrsizeiIOV glBindVertexBuffersFunPtr
+
+glBindVertexBuffersFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLuint -> Ptr GLintptr -> Ptr GLsizei -> IO ())
+glBindVertexBuffersFunPtr = unsafePerformIO (getProcAddress "glBindVertexBuffers")
+
+{-# NOINLINE glBindVertexBuffersFunPtr #-}
+
+glMultiDrawArraysIndirect :: MonadIO m => GLenum -> Ptr () -> GLsizei -> GLsizei -> m ()
+glMultiDrawArraysIndirect = ffienumPtrVsizeisizeiIOV glMultiDrawArraysIndirectFunPtr
+
+glMultiDrawArraysIndirectFunPtr :: FunPtr (GLenum -> Ptr () -> GLsizei -> GLsizei -> IO ())
+glMultiDrawArraysIndirectFunPtr = unsafePerformIO (getProcAddress "glMultiDrawArraysIndirect")
+
+{-# NOINLINE glMultiDrawArraysIndirectFunPtr #-}
+
+glMultiDrawElementsIndirect :: MonadIO m => GLenum -> GLenum -> Ptr () -> GLsizei -> GLsizei -> m ()
+glMultiDrawElementsIndirect = ffienumenumPtrVsizeisizeiIOV glMultiDrawElementsIndirectFunPtr
+
+glMultiDrawElementsIndirectFunPtr :: FunPtr (GLenum -> GLenum -> Ptr () -> GLsizei -> GLsizei -> IO ())
+glMultiDrawElementsIndirectFunPtr = unsafePerformIO (getProcAddress "glMultiDrawElementsIndirect")
+
+{-# NOINLINE glMultiDrawElementsIndirectFunPtr #-}
+
+pattern GL_SAMPLES_ARB = 0x80A9
+
+pattern GL_TEXTURE0_ARB = 0x84C0
+
+pattern GL_TEXTURE1_ARB = 0x84C1
+
+pattern GL_ANY_SAMPLES_PASSED = 0x8C2F
+
+glGetProgramInterfaceiv :: MonadIO m => GLuint -> GLenum -> GLenum -> Ptr GLint -> m ()
+glGetProgramInterfaceiv = ffiuintenumenumPtrintIOV glGetProgramInterfaceivFunPtr
+
+glGetProgramInterfaceivFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> Ptr GLint -> IO ())
+glGetProgramInterfaceivFunPtr = unsafePerformIO (getProcAddress "glGetProgramInterfaceiv")
+
+{-# NOINLINE glGetProgramInterfaceivFunPtr #-}
+
+glGetProgramResourceIndex :: MonadIO m => GLuint -> GLenum -> Ptr GLchar -> m GLuint
+glGetProgramResourceIndex = ffiuintenumPtrcharIOuint glGetProgramResourceIndexFunPtr
+
+glGetProgramResourceIndexFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLchar -> IO GLuint)
+glGetProgramResourceIndexFunPtr = unsafePerformIO (getProcAddress "glGetProgramResourceIndex")
+
+{-# NOINLINE glGetProgramResourceIndexFunPtr #-}
+
+glGetProgramResourceLocation :: MonadIO m => GLuint -> GLenum -> Ptr GLchar -> m GLint
+glGetProgramResourceLocation = ffiuintenumPtrcharIOint glGetProgramResourceLocationFunPtr
+
+glGetProgramResourceLocationFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLchar -> IO GLint)
+glGetProgramResourceLocationFunPtr = unsafePerformIO (getProcAddress "glGetProgramResourceLocation")
+
+{-# NOINLINE glGetProgramResourceLocationFunPtr #-}
+
+glGetProgramResourceLocationIndex :: MonadIO m => GLuint -> GLenum -> Ptr GLchar -> m GLint
+glGetProgramResourceLocationIndex = ffiuintenumPtrcharIOint glGetProgramResourceLocationIndexFunPtr
+
+glGetProgramResourceLocationIndexFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLchar -> IO GLint)
+glGetProgramResourceLocationIndexFunPtr = unsafePerformIO (getProcAddress "glGetProgramResourceLocationIndex")
+
+{-# NOINLINE glGetProgramResourceLocationIndexFunPtr #-}
+
+glGetProgramResourceName :: MonadIO m => GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
+glGetProgramResourceName = ffiuintenumuintsizeiPtrsizeiPtrcharIOV glGetProgramResourceNameFunPtr
+
+glGetProgramResourceNameFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
+glGetProgramResourceNameFunPtr = unsafePerformIO (getProcAddress "glGetProgramResourceName")
+
+{-# NOINLINE glGetProgramResourceNameFunPtr #-}
+
+glGetProgramResourceiv :: MonadIO m => GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLint -> m ()
+glGetProgramResourceiv = ffiuintenumuintsizeiPtrenumsizeiPtrsizeiPtrintIOV glGetProgramResourceivFunPtr
+
+glGetProgramResourceivFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLint -> IO ())
+glGetProgramResourceivFunPtr = unsafePerformIO (getProcAddress "glGetProgramResourceiv")
+
+{-# NOINLINE glGetProgramResourceivFunPtr #-}
+
+pattern GL_ACTIVE_RESOURCES = 0x92F5
+
+pattern GL_ACTIVE_VARIABLES = 0x9305
+
+pattern GL_ARRAY_SIZE = 0x92FB
+
+pattern GL_ARRAY_STRIDE = 0x92FE
+
+pattern GL_ATOMIC_COUNTER_BUFFER = 0x92C0
+
+pattern GL_ATOMIC_COUNTER_BUFFER_INDEX = 0x9301
+
+pattern GL_BLOCK_INDEX = 0x92FD
+
+pattern GL_BUFFER_BINDING = 0x9302
+
+pattern GL_BUFFER_DATA_SIZE = 0x9303
+
+pattern GL_BUFFER_VARIABLE = 0x92E5
+
+pattern GL_COMPATIBLE_SUBROUTINES = 0x8E4B
+
+pattern GL_COMPUTE_SUBROUTINE = 0x92ED
+
+pattern GL_COMPUTE_SUBROUTINE_UNIFORM = 0x92F3
+
+pattern GL_FRAGMENT_SUBROUTINE = 0x92EC
+
+pattern GL_FRAGMENT_SUBROUTINE_UNIFORM = 0x92F2
+
+pattern GL_GEOMETRY_SUBROUTINE = 0x92EB
+
+pattern GL_GEOMETRY_SUBROUTINE_UNIFORM = 0x92F1
+
+pattern GL_IS_PER_PATCH = 0x92E7
+
+pattern GL_IS_ROW_MAJOR = 0x9300
+
+pattern GL_LOCATION = 0x930E
+
+pattern GL_LOCATION_INDEX = 0x930F
+
+pattern GL_MATRIX_STRIDE = 0x92FF
+
+pattern GL_MAX_NAME_LENGTH = 0x92F6
+
+pattern GL_MAX_NUM_ACTIVE_VARIABLES = 0x92F7
+
+pattern GL_MAX_NUM_COMPATIBLE_SUBROUTINES = 0x92F8
+
+pattern GL_NAME_LENGTH = 0x92F9
+
+pattern GL_NUM_ACTIVE_VARIABLES = 0x9304
+
+pattern GL_NUM_COMPATIBLE_SUBROUTINES = 0x8E4A
+
+pattern GL_OFFSET = 0x92FC
+
+pattern GL_PROGRAM_INPUT = 0x92E3
+
+pattern GL_PROGRAM_OUTPUT = 0x92E4
+
+pattern GL_REFERENCED_BY_COMPUTE_SHADER = 0x930B
+
+pattern GL_REFERENCED_BY_FRAGMENT_SHADER = 0x930A
+
+pattern GL_REFERENCED_BY_GEOMETRY_SHADER = 0x9309
+
+pattern GL_REFERENCED_BY_TESS_CONTROL_SHADER = 0x9307
+
+pattern GL_REFERENCED_BY_TESS_EVALUATION_SHADER = 0x9308
+
+pattern GL_REFERENCED_BY_VERTEX_SHADER = 0x9306
+
+pattern GL_SHADER_STORAGE_BLOCK = 0x92E6
+
+pattern GL_TESS_CONTROL_SUBROUTINE = 0x92E9
+
+pattern GL_TESS_CONTROL_SUBROUTINE_UNIFORM = 0x92EF
+
+pattern GL_TESS_EVALUATION_SUBROUTINE = 0x92EA
+
+pattern GL_TESS_EVALUATION_SUBROUTINE_UNIFORM = 0x92F0
+
+pattern GL_TOP_LEVEL_ARRAY_SIZE = 0x930C
+
+pattern GL_TOP_LEVEL_ARRAY_STRIDE = 0x930D
+
+pattern GL_TRANSFORM_FEEDBACK_VARYING = 0x92F4
+
+pattern GL_TYPE = 0x92FA
+
+pattern GL_UNIFORM = 0x92E1
+
+pattern GL_UNIFORM_BLOCK = 0x92E2
+
+pattern GL_VERTEX_SUBROUTINE = 0x92E8
+
+pattern GL_VERTEX_SUBROUTINE_UNIFORM = 0x92EE
+
+glProvokingVertex :: MonadIO m => GLenum -> m ()
+glProvokingVertex = ffienumIOV glProvokingVertexFunPtr
+
+glProvokingVertexFunPtr :: FunPtr (GLenum -> IO ())
+glProvokingVertexFunPtr = unsafePerformIO (getProcAddress "glProvokingVertex")
+
+{-# NOINLINE glProvokingVertexFunPtr #-}
+
+pattern GL_FIRST_VERTEX_CONVENTION = 0x8E4D
+
+pattern GL_LAST_VERTEX_CONVENTION = 0x8E4E
+
+pattern GL_PROVOKING_VERTEX = 0x8E4F
+
+pattern GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION = 0x8E4C
+
+pattern GL_QUERY_BUFFER = 0x9192
+
+pattern GL_QUERY_BUFFER_BARRIER_BIT = 0x00008000
+
+pattern GL_QUERY_BUFFER_BINDING = 0x9193
+
+pattern GL_QUERY_RESULT_NO_WAIT = 0x9194
+
+pattern GL_NO_ERROR = 0
+
+glBindSampler :: MonadIO m => GLuint -> GLuint -> m ()
+glBindSampler = ffiuintuintIOV glBindSamplerFunPtr
+
+glBindSamplerFunPtr :: FunPtr (GLuint -> GLuint -> IO ())
+glBindSamplerFunPtr = unsafePerformIO (getProcAddress "glBindSampler")
+
+{-# NOINLINE glBindSamplerFunPtr #-}
+
+glDeleteSamplers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glDeleteSamplers = ffisizeiPtruintIOV glDeleteSamplersFunPtr
+
+glDeleteSamplersFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glDeleteSamplersFunPtr = unsafePerformIO (getProcAddress "glDeleteSamplers")
+
+{-# NOINLINE glDeleteSamplersFunPtr #-}
+
+glGenSamplers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glGenSamplers = ffisizeiPtruintIOV glGenSamplersFunPtr
+
+glGenSamplersFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glGenSamplersFunPtr = unsafePerformIO (getProcAddress "glGenSamplers")
+
+{-# NOINLINE glGenSamplersFunPtr #-}
+
+glGetSamplerParameterIiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
+glGetSamplerParameterIiv = ffiuintenumPtrintIOV glGetSamplerParameterIivFunPtr
+
+glGetSamplerParameterIivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+glGetSamplerParameterIivFunPtr = unsafePerformIO (getProcAddress "glGetSamplerParameterIiv")
+
+{-# NOINLINE glGetSamplerParameterIivFunPtr #-}
+
+glGetSamplerParameterIuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()
+glGetSamplerParameterIuiv = ffiuintenumPtruintIOV glGetSamplerParameterIuivFunPtr
+
+glGetSamplerParameterIuivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLuint -> IO ())
+glGetSamplerParameterIuivFunPtr = unsafePerformIO (getProcAddress "glGetSamplerParameterIuiv")
+
+{-# NOINLINE glGetSamplerParameterIuivFunPtr #-}
+
+glGetSamplerParameterfv :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()
+glGetSamplerParameterfv = ffiuintenumPtrfloatIOV glGetSamplerParameterfvFunPtr
+
+glGetSamplerParameterfvFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLfloat -> IO ())
+glGetSamplerParameterfvFunPtr = unsafePerformIO (getProcAddress "glGetSamplerParameterfv")
+
+{-# NOINLINE glGetSamplerParameterfvFunPtr #-}
+
+glGetSamplerParameteriv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
+glGetSamplerParameteriv = ffiuintenumPtrintIOV glGetSamplerParameterivFunPtr
+
+glGetSamplerParameterivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+glGetSamplerParameterivFunPtr = unsafePerformIO (getProcAddress "glGetSamplerParameteriv")
+
+{-# NOINLINE glGetSamplerParameterivFunPtr #-}
+
+glIsSampler :: MonadIO m => GLuint -> m GLboolean
+glIsSampler = ffiuintIOboolean glIsSamplerFunPtr
+
+glIsSamplerFunPtr :: FunPtr (GLuint -> IO GLboolean)
+glIsSamplerFunPtr = unsafePerformIO (getProcAddress "glIsSampler")
+
+{-# NOINLINE glIsSamplerFunPtr #-}
+
+glSamplerParameterIiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
+glSamplerParameterIiv = ffiuintenumPtrintIOV glSamplerParameterIivFunPtr
+
+glSamplerParameterIivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+glSamplerParameterIivFunPtr = unsafePerformIO (getProcAddress "glSamplerParameterIiv")
+
+{-# NOINLINE glSamplerParameterIivFunPtr #-}
+
+glSamplerParameterIuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()
+glSamplerParameterIuiv = ffiuintenumPtruintIOV glSamplerParameterIuivFunPtr
+
+glSamplerParameterIuivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLuint -> IO ())
+glSamplerParameterIuivFunPtr = unsafePerformIO (getProcAddress "glSamplerParameterIuiv")
+
+{-# NOINLINE glSamplerParameterIuivFunPtr #-}
+
+glSamplerParameterf :: MonadIO m => GLuint -> GLenum -> GLfloat -> m ()
+glSamplerParameterf = ffiuintenumfloatIOV glSamplerParameterfFunPtr
+
+glSamplerParameterfFunPtr :: FunPtr (GLuint -> GLenum -> GLfloat -> IO ())
+glSamplerParameterfFunPtr = unsafePerformIO (getProcAddress "glSamplerParameterf")
+
+{-# NOINLINE glSamplerParameterfFunPtr #-}
+
+glSamplerParameterfv :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()
+glSamplerParameterfv = ffiuintenumPtrfloatIOV glSamplerParameterfvFunPtr
+
+glSamplerParameterfvFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLfloat -> IO ())
+glSamplerParameterfvFunPtr = unsafePerformIO (getProcAddress "glSamplerParameterfv")
+
+{-# NOINLINE glSamplerParameterfvFunPtr #-}
+
+glSamplerParameteri :: MonadIO m => GLuint -> GLenum -> GLint -> m ()
+glSamplerParameteri = ffiuintenumintIOV glSamplerParameteriFunPtr
+
+glSamplerParameteriFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> IO ())
+glSamplerParameteriFunPtr = unsafePerformIO (getProcAddress "glSamplerParameteri")
+
+{-# NOINLINE glSamplerParameteriFunPtr #-}
+
+glSamplerParameteriv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
+glSamplerParameteriv = ffiuintenumPtrintIOV glSamplerParameterivFunPtr
+
+glSamplerParameterivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+glSamplerParameterivFunPtr = unsafePerformIO (getProcAddress "glSamplerParameteriv")
+
+{-# NOINLINE glSamplerParameterivFunPtr #-}
+
+pattern GL_SAMPLER_BINDING = 0x8919
+
+glActiveShaderProgram :: MonadIO m => GLuint -> GLuint -> m ()
+glActiveShaderProgram = ffiuintuintIOV glActiveShaderProgramFunPtr
+
+glActiveShaderProgramFunPtr :: FunPtr (GLuint -> GLuint -> IO ())
+glActiveShaderProgramFunPtr = unsafePerformIO (getProcAddress "glActiveShaderProgram")
+
+{-# NOINLINE glActiveShaderProgramFunPtr #-}
+
+glBindProgramPipeline :: MonadIO m => GLuint -> m ()
+glBindProgramPipeline = ffiuintIOV glBindProgramPipelineFunPtr
+
+glBindProgramPipelineFunPtr :: FunPtr (GLuint -> IO ())
+glBindProgramPipelineFunPtr = unsafePerformIO (getProcAddress "glBindProgramPipeline")
+
+{-# NOINLINE glBindProgramPipelineFunPtr #-}
+
+glCreateShaderProgramv :: MonadIO m => GLenum -> GLsizei -> Ptr GLchar -> m GLuint
+glCreateShaderProgramv = ffienumsizeiPtrcharIOuint glCreateShaderProgramvFunPtr
+
+glCreateShaderProgramvFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr GLchar -> IO GLuint)
+glCreateShaderProgramvFunPtr = unsafePerformIO (getProcAddress "glCreateShaderProgramv")
+
+{-# NOINLINE glCreateShaderProgramvFunPtr #-}
+
+glDeleteProgramPipelines :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glDeleteProgramPipelines = ffisizeiPtruintIOV glDeleteProgramPipelinesFunPtr
+
+glDeleteProgramPipelinesFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glDeleteProgramPipelinesFunPtr = unsafePerformIO (getProcAddress "glDeleteProgramPipelines")
+
+{-# NOINLINE glDeleteProgramPipelinesFunPtr #-}
+
+glGenProgramPipelines :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glGenProgramPipelines = ffisizeiPtruintIOV glGenProgramPipelinesFunPtr
+
+glGenProgramPipelinesFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glGenProgramPipelinesFunPtr = unsafePerformIO (getProcAddress "glGenProgramPipelines")
+
+{-# NOINLINE glGenProgramPipelinesFunPtr #-}
+
+glGetProgramPipelineInfoLog :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
+glGetProgramPipelineInfoLog = ffiuintsizeiPtrsizeiPtrcharIOV glGetProgramPipelineInfoLogFunPtr
+
+glGetProgramPipelineInfoLogFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
+glGetProgramPipelineInfoLogFunPtr = unsafePerformIO (getProcAddress "glGetProgramPipelineInfoLog")
+
+{-# NOINLINE glGetProgramPipelineInfoLogFunPtr #-}
+
+glGetProgramPipelineiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
+glGetProgramPipelineiv = ffiuintenumPtrintIOV glGetProgramPipelineivFunPtr
+
+glGetProgramPipelineivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+glGetProgramPipelineivFunPtr = unsafePerformIO (getProcAddress "glGetProgramPipelineiv")
+
+{-# NOINLINE glGetProgramPipelineivFunPtr #-}
+
+glIsProgramPipeline :: MonadIO m => GLuint -> m GLboolean
+glIsProgramPipeline = ffiuintIOboolean glIsProgramPipelineFunPtr
+
+glIsProgramPipelineFunPtr :: FunPtr (GLuint -> IO GLboolean)
+glIsProgramPipelineFunPtr = unsafePerformIO (getProcAddress "glIsProgramPipeline")
+
+{-# NOINLINE glIsProgramPipelineFunPtr #-}
+
+glProgramUniform1d :: MonadIO m => GLuint -> GLint -> GLdouble -> m ()
+glProgramUniform1d = ffiuintintdoubleIOV glProgramUniform1dFunPtr
+
+glProgramUniform1dFunPtr :: FunPtr (GLuint -> GLint -> GLdouble -> IO ())
+glProgramUniform1dFunPtr = unsafePerformIO (getProcAddress "glProgramUniform1d")
+
+{-# NOINLINE glProgramUniform1dFunPtr #-}
+
+glProgramUniform1dv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLdouble -> m ()
+glProgramUniform1dv = ffiuintintsizeiPtrdoubleIOV glProgramUniform1dvFunPtr
+
+glProgramUniform1dvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLdouble -> IO ())
+glProgramUniform1dvFunPtr = unsafePerformIO (getProcAddress "glProgramUniform1dv")
+
+{-# NOINLINE glProgramUniform1dvFunPtr #-}
+
+glProgramUniform1f :: MonadIO m => GLuint -> GLint -> GLfloat -> m ()
+glProgramUniform1f = ffiuintintfloatIOV glProgramUniform1fFunPtr
+
+glProgramUniform1fFunPtr :: FunPtr (GLuint -> GLint -> GLfloat -> IO ())
+glProgramUniform1fFunPtr = unsafePerformIO (getProcAddress "glProgramUniform1f")
+
+{-# NOINLINE glProgramUniform1fFunPtr #-}
+
+glProgramUniform1fv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()
+glProgramUniform1fv = ffiuintintsizeiPtrfloatIOV glProgramUniform1fvFunPtr
+
+glProgramUniform1fvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLfloat -> IO ())
+glProgramUniform1fvFunPtr = unsafePerformIO (getProcAddress "glProgramUniform1fv")
+
+{-# NOINLINE glProgramUniform1fvFunPtr #-}
+
+glProgramUniform1i :: MonadIO m => GLuint -> GLint -> GLint -> m ()
+glProgramUniform1i = ffiuintintintIOV glProgramUniform1iFunPtr
+
+glProgramUniform1iFunPtr :: FunPtr (GLuint -> GLint -> GLint -> IO ())
+glProgramUniform1iFunPtr = unsafePerformIO (getProcAddress "glProgramUniform1i")
+
+{-# NOINLINE glProgramUniform1iFunPtr #-}
+
+glProgramUniform1iv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()
+glProgramUniform1iv = ffiuintintsizeiPtrintIOV glProgramUniform1ivFunPtr
+
+glProgramUniform1ivFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint -> IO ())
+glProgramUniform1ivFunPtr = unsafePerformIO (getProcAddress "glProgramUniform1iv")
+
+{-# NOINLINE glProgramUniform1ivFunPtr #-}
+
+glProgramUniform1ui :: MonadIO m => GLuint -> GLint -> GLuint -> m ()
+glProgramUniform1ui = ffiuintintuintIOV glProgramUniform1uiFunPtr
+
+glProgramUniform1uiFunPtr :: FunPtr (GLuint -> GLint -> GLuint -> IO ())
+glProgramUniform1uiFunPtr = unsafePerformIO (getProcAddress "glProgramUniform1ui")
+
+{-# NOINLINE glProgramUniform1uiFunPtr #-}
+
+glProgramUniform1uiv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()
+glProgramUniform1uiv = ffiuintintsizeiPtruintIOV glProgramUniform1uivFunPtr
+
+glProgramUniform1uivFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint -> IO ())
+glProgramUniform1uivFunPtr = unsafePerformIO (getProcAddress "glProgramUniform1uiv")
+
+{-# NOINLINE glProgramUniform1uivFunPtr #-}
+
+glProgramUniform2d :: MonadIO m => GLuint -> GLint -> GLdouble -> GLdouble -> m ()
+glProgramUniform2d = ffiuintintdoubledoubleIOV glProgramUniform2dFunPtr
+
+glProgramUniform2dFunPtr :: FunPtr (GLuint -> GLint -> GLdouble -> GLdouble -> IO ())
+glProgramUniform2dFunPtr = unsafePerformIO (getProcAddress "glProgramUniform2d")
+
+{-# NOINLINE glProgramUniform2dFunPtr #-}
+
+glProgramUniform2dv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLdouble -> m ()
+glProgramUniform2dv = ffiuintintsizeiPtrdoubleIOV glProgramUniform2dvFunPtr
+
+glProgramUniform2dvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLdouble -> IO ())
+glProgramUniform2dvFunPtr = unsafePerformIO (getProcAddress "glProgramUniform2dv")
+
+{-# NOINLINE glProgramUniform2dvFunPtr #-}
+
+glProgramUniform2f :: MonadIO m => GLuint -> GLint -> GLfloat -> GLfloat -> m ()
+glProgramUniform2f = ffiuintintfloatfloatIOV glProgramUniform2fFunPtr
+
+glProgramUniform2fFunPtr :: FunPtr (GLuint -> GLint -> GLfloat -> GLfloat -> IO ())
+glProgramUniform2fFunPtr = unsafePerformIO (getProcAddress "glProgramUniform2f")
+
+{-# NOINLINE glProgramUniform2fFunPtr #-}
+
+glProgramUniform2fv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()
+glProgramUniform2fv = ffiuintintsizeiPtrfloatIOV glProgramUniform2fvFunPtr
+
+glProgramUniform2fvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLfloat -> IO ())
+glProgramUniform2fvFunPtr = unsafePerformIO (getProcAddress "glProgramUniform2fv")
+
+{-# NOINLINE glProgramUniform2fvFunPtr #-}
+
+glProgramUniform2i :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> m ()
+glProgramUniform2i = ffiuintintintintIOV glProgramUniform2iFunPtr
+
+glProgramUniform2iFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> IO ())
+glProgramUniform2iFunPtr = unsafePerformIO (getProcAddress "glProgramUniform2i")
+
+{-# NOINLINE glProgramUniform2iFunPtr #-}
+
+glProgramUniform2iv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()
+glProgramUniform2iv = ffiuintintsizeiPtrintIOV glProgramUniform2ivFunPtr
+
+glProgramUniform2ivFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint -> IO ())
+glProgramUniform2ivFunPtr = unsafePerformIO (getProcAddress "glProgramUniform2iv")
+
+{-# NOINLINE glProgramUniform2ivFunPtr #-}
+
+glProgramUniform2ui :: MonadIO m => GLuint -> GLint -> GLuint -> GLuint -> m ()
+glProgramUniform2ui = ffiuintintuintuintIOV glProgramUniform2uiFunPtr
+
+glProgramUniform2uiFunPtr :: FunPtr (GLuint -> GLint -> GLuint -> GLuint -> IO ())
+glProgramUniform2uiFunPtr = unsafePerformIO (getProcAddress "glProgramUniform2ui")
+
+{-# NOINLINE glProgramUniform2uiFunPtr #-}
+
+glProgramUniform2uiv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()
+glProgramUniform2uiv = ffiuintintsizeiPtruintIOV glProgramUniform2uivFunPtr
+
+glProgramUniform2uivFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint -> IO ())
+glProgramUniform2uivFunPtr = unsafePerformIO (getProcAddress "glProgramUniform2uiv")
+
+{-# NOINLINE glProgramUniform2uivFunPtr #-}
+
+glProgramUniform3d :: MonadIO m => GLuint -> GLint -> GLdouble -> GLdouble -> GLdouble -> m ()
+glProgramUniform3d = ffiuintintdoubledoubledoubleIOV glProgramUniform3dFunPtr
+
+glProgramUniform3dFunPtr :: FunPtr (GLuint -> GLint -> GLdouble -> GLdouble -> GLdouble -> IO ())
+glProgramUniform3dFunPtr = unsafePerformIO (getProcAddress "glProgramUniform3d")
+
+{-# NOINLINE glProgramUniform3dFunPtr #-}
+
+glProgramUniform3dv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLdouble -> m ()
+glProgramUniform3dv = ffiuintintsizeiPtrdoubleIOV glProgramUniform3dvFunPtr
+
+glProgramUniform3dvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLdouble -> IO ())
+glProgramUniform3dvFunPtr = unsafePerformIO (getProcAddress "glProgramUniform3dv")
+
+{-# NOINLINE glProgramUniform3dvFunPtr #-}
+
+glProgramUniform3f :: MonadIO m => GLuint -> GLint -> GLfloat -> GLfloat -> GLfloat -> m ()
+glProgramUniform3f = ffiuintintfloatfloatfloatIOV glProgramUniform3fFunPtr
+
+glProgramUniform3fFunPtr :: FunPtr (GLuint -> GLint -> GLfloat -> GLfloat -> GLfloat -> IO ())
+glProgramUniform3fFunPtr = unsafePerformIO (getProcAddress "glProgramUniform3f")
+
+{-# NOINLINE glProgramUniform3fFunPtr #-}
+
+glProgramUniform3fv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()
+glProgramUniform3fv = ffiuintintsizeiPtrfloatIOV glProgramUniform3fvFunPtr
+
+glProgramUniform3fvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLfloat -> IO ())
+glProgramUniform3fvFunPtr = unsafePerformIO (getProcAddress "glProgramUniform3fv")
+
+{-# NOINLINE glProgramUniform3fvFunPtr #-}
+
+glProgramUniform3i :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> m ()
+glProgramUniform3i = ffiuintintintintintIOV glProgramUniform3iFunPtr
+
+glProgramUniform3iFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> IO ())
+glProgramUniform3iFunPtr = unsafePerformIO (getProcAddress "glProgramUniform3i")
+
+{-# NOINLINE glProgramUniform3iFunPtr #-}
+
+glProgramUniform3iv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()
+glProgramUniform3iv = ffiuintintsizeiPtrintIOV glProgramUniform3ivFunPtr
+
+glProgramUniform3ivFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint -> IO ())
+glProgramUniform3ivFunPtr = unsafePerformIO (getProcAddress "glProgramUniform3iv")
+
+{-# NOINLINE glProgramUniform3ivFunPtr #-}
+
+glProgramUniform3ui :: MonadIO m => GLuint -> GLint -> GLuint -> GLuint -> GLuint -> m ()
+glProgramUniform3ui = ffiuintintuintuintuintIOV glProgramUniform3uiFunPtr
+
+glProgramUniform3uiFunPtr :: FunPtr (GLuint -> GLint -> GLuint -> GLuint -> GLuint -> IO ())
+glProgramUniform3uiFunPtr = unsafePerformIO (getProcAddress "glProgramUniform3ui")
+
+{-# NOINLINE glProgramUniform3uiFunPtr #-}
+
+glProgramUniform3uiv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()
+glProgramUniform3uiv = ffiuintintsizeiPtruintIOV glProgramUniform3uivFunPtr
+
+glProgramUniform3uivFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint -> IO ())
+glProgramUniform3uivFunPtr = unsafePerformIO (getProcAddress "glProgramUniform3uiv")
+
+{-# NOINLINE glProgramUniform3uivFunPtr #-}
+
+glProgramUniform4d :: MonadIO m => GLuint -> GLint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
+glProgramUniform4d = ffiuintintdoubledoubledoubledoubleIOV glProgramUniform4dFunPtr
+
+glProgramUniform4dFunPtr :: FunPtr (GLuint -> GLint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
+glProgramUniform4dFunPtr = unsafePerformIO (getProcAddress "glProgramUniform4d")
+
+{-# NOINLINE glProgramUniform4dFunPtr #-}
+
+glProgramUniform4dv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLdouble -> m ()
+glProgramUniform4dv = ffiuintintsizeiPtrdoubleIOV glProgramUniform4dvFunPtr
+
+glProgramUniform4dvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLdouble -> IO ())
+glProgramUniform4dvFunPtr = unsafePerformIO (getProcAddress "glProgramUniform4dv")
+
+{-# NOINLINE glProgramUniform4dvFunPtr #-}
+
+glProgramUniform4f :: MonadIO m => GLuint -> GLint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
+glProgramUniform4f = ffiuintintfloatfloatfloatfloatIOV glProgramUniform4fFunPtr
+
+glProgramUniform4fFunPtr :: FunPtr (GLuint -> GLint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+glProgramUniform4fFunPtr = unsafePerformIO (getProcAddress "glProgramUniform4f")
+
+{-# NOINLINE glProgramUniform4fFunPtr #-}
+
+glProgramUniform4fv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()
+glProgramUniform4fv = ffiuintintsizeiPtrfloatIOV glProgramUniform4fvFunPtr
+
+glProgramUniform4fvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLfloat -> IO ())
+glProgramUniform4fvFunPtr = unsafePerformIO (getProcAddress "glProgramUniform4fv")
+
+{-# NOINLINE glProgramUniform4fvFunPtr #-}
+
+glProgramUniform4i :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> m ()
+glProgramUniform4i = ffiuintintintintintintIOV glProgramUniform4iFunPtr
+
+glProgramUniform4iFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> IO ())
+glProgramUniform4iFunPtr = unsafePerformIO (getProcAddress "glProgramUniform4i")
+
+{-# NOINLINE glProgramUniform4iFunPtr #-}
+
+glProgramUniform4iv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()
+glProgramUniform4iv = ffiuintintsizeiPtrintIOV glProgramUniform4ivFunPtr
+
+glProgramUniform4ivFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint -> IO ())
+glProgramUniform4ivFunPtr = unsafePerformIO (getProcAddress "glProgramUniform4iv")
+
+{-# NOINLINE glProgramUniform4ivFunPtr #-}
+
+glProgramUniform4ui :: MonadIO m => GLuint -> GLint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
+glProgramUniform4ui = ffiuintintuintuintuintuintIOV glProgramUniform4uiFunPtr
+
+glProgramUniform4uiFunPtr :: FunPtr (GLuint -> GLint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ())
+glProgramUniform4uiFunPtr = unsafePerformIO (getProcAddress "glProgramUniform4ui")
+
+{-# NOINLINE glProgramUniform4uiFunPtr #-}
+
+glProgramUniform4uiv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()
+glProgramUniform4uiv = ffiuintintsizeiPtruintIOV glProgramUniform4uivFunPtr
+
+glProgramUniform4uivFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint -> IO ())
+glProgramUniform4uivFunPtr = unsafePerformIO (getProcAddress "glProgramUniform4uiv")
+
+{-# NOINLINE glProgramUniform4uivFunPtr #-}
+
+glProgramUniformMatrix2dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
+glProgramUniformMatrix2dv = ffiuintintsizeibooleanPtrdoubleIOV glProgramUniformMatrix2dvFunPtr
+
+glProgramUniformMatrix2dvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
+glProgramUniformMatrix2dvFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix2dv")
+
+{-# NOINLINE glProgramUniformMatrix2dvFunPtr #-}
+
+glProgramUniformMatrix2fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
+glProgramUniformMatrix2fv = ffiuintintsizeibooleanPtrfloatIOV glProgramUniformMatrix2fvFunPtr
+
+glProgramUniformMatrix2fvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+glProgramUniformMatrix2fvFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix2fv")
+
+{-# NOINLINE glProgramUniformMatrix2fvFunPtr #-}
+
+glProgramUniformMatrix2x3dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
+glProgramUniformMatrix2x3dv = ffiuintintsizeibooleanPtrdoubleIOV glProgramUniformMatrix2x3dvFunPtr
+
+glProgramUniformMatrix2x3dvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
+glProgramUniformMatrix2x3dvFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix2x3dv")
+
+{-# NOINLINE glProgramUniformMatrix2x3dvFunPtr #-}
+
+glProgramUniformMatrix2x3fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
+glProgramUniformMatrix2x3fv = ffiuintintsizeibooleanPtrfloatIOV glProgramUniformMatrix2x3fvFunPtr
+
+glProgramUniformMatrix2x3fvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+glProgramUniformMatrix2x3fvFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix2x3fv")
+
+{-# NOINLINE glProgramUniformMatrix2x3fvFunPtr #-}
+
+glProgramUniformMatrix2x4dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
+glProgramUniformMatrix2x4dv = ffiuintintsizeibooleanPtrdoubleIOV glProgramUniformMatrix2x4dvFunPtr
+
+glProgramUniformMatrix2x4dvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
+glProgramUniformMatrix2x4dvFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix2x4dv")
+
+{-# NOINLINE glProgramUniformMatrix2x4dvFunPtr #-}
+
+glProgramUniformMatrix2x4fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
+glProgramUniformMatrix2x4fv = ffiuintintsizeibooleanPtrfloatIOV glProgramUniformMatrix2x4fvFunPtr
+
+glProgramUniformMatrix2x4fvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+glProgramUniformMatrix2x4fvFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix2x4fv")
+
+{-# NOINLINE glProgramUniformMatrix2x4fvFunPtr #-}
+
+glProgramUniformMatrix3dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
+glProgramUniformMatrix3dv = ffiuintintsizeibooleanPtrdoubleIOV glProgramUniformMatrix3dvFunPtr
+
+glProgramUniformMatrix3dvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
+glProgramUniformMatrix3dvFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix3dv")
+
+{-# NOINLINE glProgramUniformMatrix3dvFunPtr #-}
+
+glProgramUniformMatrix3fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
+glProgramUniformMatrix3fv = ffiuintintsizeibooleanPtrfloatIOV glProgramUniformMatrix3fvFunPtr
+
+glProgramUniformMatrix3fvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+glProgramUniformMatrix3fvFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix3fv")
+
+{-# NOINLINE glProgramUniformMatrix3fvFunPtr #-}
+
+glProgramUniformMatrix3x2dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
+glProgramUniformMatrix3x2dv = ffiuintintsizeibooleanPtrdoubleIOV glProgramUniformMatrix3x2dvFunPtr
+
+glProgramUniformMatrix3x2dvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
+glProgramUniformMatrix3x2dvFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix3x2dv")
+
+{-# NOINLINE glProgramUniformMatrix3x2dvFunPtr #-}
+
+glProgramUniformMatrix3x2fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
+glProgramUniformMatrix3x2fv = ffiuintintsizeibooleanPtrfloatIOV glProgramUniformMatrix3x2fvFunPtr
+
+glProgramUniformMatrix3x2fvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+glProgramUniformMatrix3x2fvFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix3x2fv")
+
+{-# NOINLINE glProgramUniformMatrix3x2fvFunPtr #-}
+
+glProgramUniformMatrix3x4dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
+glProgramUniformMatrix3x4dv = ffiuintintsizeibooleanPtrdoubleIOV glProgramUniformMatrix3x4dvFunPtr
+
+glProgramUniformMatrix3x4dvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
+glProgramUniformMatrix3x4dvFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix3x4dv")
+
+{-# NOINLINE glProgramUniformMatrix3x4dvFunPtr #-}
+
+glProgramUniformMatrix3x4fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
+glProgramUniformMatrix3x4fv = ffiuintintsizeibooleanPtrfloatIOV glProgramUniformMatrix3x4fvFunPtr
+
+glProgramUniformMatrix3x4fvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+glProgramUniformMatrix3x4fvFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix3x4fv")
+
+{-# NOINLINE glProgramUniformMatrix3x4fvFunPtr #-}
+
+glProgramUniformMatrix4dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
+glProgramUniformMatrix4dv = ffiuintintsizeibooleanPtrdoubleIOV glProgramUniformMatrix4dvFunPtr
+
+glProgramUniformMatrix4dvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
+glProgramUniformMatrix4dvFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix4dv")
+
+{-# NOINLINE glProgramUniformMatrix4dvFunPtr #-}
+
+glProgramUniformMatrix4fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
+glProgramUniformMatrix4fv = ffiuintintsizeibooleanPtrfloatIOV glProgramUniformMatrix4fvFunPtr
+
+glProgramUniformMatrix4fvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+glProgramUniformMatrix4fvFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix4fv")
+
+{-# NOINLINE glProgramUniformMatrix4fvFunPtr #-}
+
+glProgramUniformMatrix4x2dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
+glProgramUniformMatrix4x2dv = ffiuintintsizeibooleanPtrdoubleIOV glProgramUniformMatrix4x2dvFunPtr
+
+glProgramUniformMatrix4x2dvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
+glProgramUniformMatrix4x2dvFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix4x2dv")
+
+{-# NOINLINE glProgramUniformMatrix4x2dvFunPtr #-}
+
+glProgramUniformMatrix4x2fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
+glProgramUniformMatrix4x2fv = ffiuintintsizeibooleanPtrfloatIOV glProgramUniformMatrix4x2fvFunPtr
+
+glProgramUniformMatrix4x2fvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+glProgramUniformMatrix4x2fvFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix4x2fv")
+
+{-# NOINLINE glProgramUniformMatrix4x2fvFunPtr #-}
+
+glProgramUniformMatrix4x3dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
+glProgramUniformMatrix4x3dv = ffiuintintsizeibooleanPtrdoubleIOV glProgramUniformMatrix4x3dvFunPtr
+
+glProgramUniformMatrix4x3dvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
+glProgramUniformMatrix4x3dvFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix4x3dv")
+
+{-# NOINLINE glProgramUniformMatrix4x3dvFunPtr #-}
+
+glProgramUniformMatrix4x3fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
+glProgramUniformMatrix4x3fv = ffiuintintsizeibooleanPtrfloatIOV glProgramUniformMatrix4x3fvFunPtr
+
+glProgramUniformMatrix4x3fvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+glProgramUniformMatrix4x3fvFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix4x3fv")
+
+{-# NOINLINE glProgramUniformMatrix4x3fvFunPtr #-}
+
+glUseProgramStages :: MonadIO m => GLuint -> GLbitfield -> GLuint -> m ()
+glUseProgramStages = ffiuintbitfielduintIOV glUseProgramStagesFunPtr
+
+glUseProgramStagesFunPtr :: FunPtr (GLuint -> GLbitfield -> GLuint -> IO ())
+glUseProgramStagesFunPtr = unsafePerformIO (getProcAddress "glUseProgramStages")
+
+{-# NOINLINE glUseProgramStagesFunPtr #-}
+
+glValidateProgramPipeline :: MonadIO m => GLuint -> m ()
+glValidateProgramPipeline = ffiuintIOV glValidateProgramPipelineFunPtr
+
+glValidateProgramPipelineFunPtr :: FunPtr (GLuint -> IO ())
+glValidateProgramPipelineFunPtr = unsafePerformIO (getProcAddress "glValidateProgramPipeline")
+
+{-# NOINLINE glValidateProgramPipelineFunPtr #-}
+
+pattern GL_ACTIVE_PROGRAM = 0x8259
+
+pattern GL_ALL_SHADER_BITS = 0xFFFFFFFF
+
+pattern GL_FRAGMENT_SHADER_BIT = 0x00000002
+
+pattern GL_GEOMETRY_SHADER_BIT = 0x00000004
+
+pattern GL_PROGRAM_PIPELINE_BINDING = 0x825A
+
+pattern GL_PROGRAM_SEPARABLE = 0x8258
+
+pattern GL_TESS_CONTROL_SHADER_BIT = 0x00000008
+
+pattern GL_TESS_EVALUATION_SHADER_BIT = 0x00000010
+
+pattern GL_VERTEX_SHADER_BIT = 0x00000001
+
+glGetActiveAtomicCounterBufferiv :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr GLint -> m ()
+glGetActiveAtomicCounterBufferiv = ffiuintuintenumPtrintIOV glGetActiveAtomicCounterBufferivFunPtr
+
+glGetActiveAtomicCounterBufferivFunPtr :: FunPtr (GLuint -> GLuint -> GLenum -> Ptr GLint -> IO ())
+glGetActiveAtomicCounterBufferivFunPtr = unsafePerformIO (getProcAddress "glGetActiveAtomicCounterBufferiv")
+
+{-# NOINLINE glGetActiveAtomicCounterBufferivFunPtr #-}
+
+pattern GL_ACTIVE_ATOMIC_COUNTER_BUFFERS = 0x92D9
+
+pattern GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS = 0x92C5
+
+pattern GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTER_INDICES = 0x92C6
+
+pattern GL_ATOMIC_COUNTER_BUFFER_BINDING = 0x92C1
+
+pattern GL_ATOMIC_COUNTER_BUFFER_DATA_SIZE = 0x92C4
+
+pattern GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_FRAGMENT_SHADER = 0x92CB
+
+pattern GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_GEOMETRY_SHADER = 0x92CA
+
+pattern GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_CONTROL_SHADER = 0x92C8
+
+pattern GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_EVALUATION_SHADER = 0x92C9
+
+pattern GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER = 0x92C7
+
+pattern GL_ATOMIC_COUNTER_BUFFER_SIZE = 0x92C3
+
+pattern GL_ATOMIC_COUNTER_BUFFER_START = 0x92C2
+
+pattern GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS = 0x92DC
+
+pattern GL_MAX_ATOMIC_COUNTER_BUFFER_SIZE = 0x92D8
+
+pattern GL_MAX_COMBINED_ATOMIC_COUNTERS = 0x92D7
+
+pattern GL_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS = 0x92D1
+
+pattern GL_MAX_FRAGMENT_ATOMIC_COUNTERS = 0x92D6
+
+pattern GL_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS = 0x92D0
+
+pattern GL_MAX_GEOMETRY_ATOMIC_COUNTERS = 0x92D5
+
+pattern GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS = 0x92CF
+
+pattern GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS = 0x92D3
+
+pattern GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS = 0x92CD
+
+pattern GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS = 0x92D4
+
+pattern GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS = 0x92CE
+
+pattern GL_MAX_VERTEX_ATOMIC_COUNTERS = 0x92D2
+
+pattern GL_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS = 0x92CC
+
+pattern GL_UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX = 0x92DA
+
+pattern GL_UNSIGNED_INT_ATOMIC_COUNTER = 0x92DB
+
+glBindImageTexture :: MonadIO m => GLuint -> GLuint -> GLint -> GLboolean -> GLint -> GLenum -> GLenum -> m ()
+glBindImageTexture = ffiuintuintintbooleanintenumenumIOV glBindImageTextureFunPtr
+
+glBindImageTextureFunPtr :: FunPtr (GLuint -> GLuint -> GLint -> GLboolean -> GLint -> GLenum -> GLenum -> IO ())
+glBindImageTextureFunPtr = unsafePerformIO (getProcAddress "glBindImageTexture")
+
+{-# NOINLINE glBindImageTextureFunPtr #-}
+
+glMemoryBarrier :: MonadIO m => GLbitfield -> m ()
+glMemoryBarrier = ffibitfieldIOV glMemoryBarrierFunPtr
+
+glMemoryBarrierFunPtr :: FunPtr (GLbitfield -> IO ())
+glMemoryBarrierFunPtr = unsafePerformIO (getProcAddress "glMemoryBarrier")
+
+{-# NOINLINE glMemoryBarrierFunPtr #-}
+
+pattern GL_ALL_BARRIER_BITS = 0xFFFFFFFF
+
+pattern GL_ATOMIC_COUNTER_BARRIER_BIT = 0x00001000
+
+pattern GL_BUFFER_UPDATE_BARRIER_BIT = 0x00000200
+
+pattern GL_COMMAND_BARRIER_BIT = 0x00000040
+
+pattern GL_ELEMENT_ARRAY_BARRIER_BIT = 0x00000002
+
+pattern GL_FRAMEBUFFER_BARRIER_BIT = 0x00000400
+
+pattern GL_IMAGE_1D = 0x904C
+
+pattern GL_IMAGE_1D_ARRAY = 0x9052
+
+pattern GL_IMAGE_2D = 0x904D
+
+pattern GL_IMAGE_2D_ARRAY = 0x9053
+
+pattern GL_IMAGE_2D_MULTISAMPLE = 0x9055
+
+pattern GL_IMAGE_2D_MULTISAMPLE_ARRAY = 0x9056
+
+pattern GL_IMAGE_2D_RECT = 0x904F
+
+pattern GL_IMAGE_3D = 0x904E
+
+pattern GL_IMAGE_BINDING_ACCESS = 0x8F3E
+
+pattern GL_IMAGE_BINDING_FORMAT = 0x906E
+
+pattern GL_IMAGE_BINDING_LAYER = 0x8F3D
+
+pattern GL_IMAGE_BINDING_LAYERED = 0x8F3C
+
+pattern GL_IMAGE_BINDING_LEVEL = 0x8F3B
+
+pattern GL_IMAGE_BINDING_NAME = 0x8F3A
+
+pattern GL_IMAGE_BUFFER = 0x9051
+
+pattern GL_IMAGE_CUBE = 0x9050
+
+pattern GL_IMAGE_CUBE_MAP_ARRAY = 0x9054
+
+pattern GL_IMAGE_FORMAT_COMPATIBILITY_BY_CLASS = 0x90C9
+
+pattern GL_IMAGE_FORMAT_COMPATIBILITY_BY_SIZE = 0x90C8
+
+pattern GL_INT_IMAGE_1D = 0x9057
+
+pattern GL_INT_IMAGE_1D_ARRAY = 0x905D
+
+pattern GL_INT_IMAGE_2D = 0x9058
+
+pattern GL_INT_IMAGE_2D_ARRAY = 0x905E
+
+pattern GL_INT_IMAGE_2D_MULTISAMPLE = 0x9060
+
+pattern GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY = 0x9061
+
+pattern GL_INT_IMAGE_2D_RECT = 0x905A
+
+pattern GL_INT_IMAGE_3D = 0x9059
+
+pattern GL_INT_IMAGE_BUFFER = 0x905C
+
+pattern GL_INT_IMAGE_CUBE = 0x905B
+
+pattern GL_INT_IMAGE_CUBE_MAP_ARRAY = 0x905F
+
+pattern GL_MAX_COMBINED_IMAGE_UNIFORMS = 0x90CF
+
+pattern GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS = 0x8F39
+
+pattern GL_MAX_FRAGMENT_IMAGE_UNIFORMS = 0x90CE
+
+pattern GL_MAX_GEOMETRY_IMAGE_UNIFORMS = 0x90CD
+
+pattern GL_MAX_IMAGE_SAMPLES = 0x906D
+
+pattern GL_MAX_IMAGE_UNITS = 0x8F38
+
+pattern GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS = 0x90CB
+
+pattern GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS = 0x90CC
+
+pattern GL_MAX_VERTEX_IMAGE_UNIFORMS = 0x90CA
+
+pattern GL_PIXEL_BUFFER_BARRIER_BIT = 0x00000080
+
+pattern GL_SHADER_IMAGE_ACCESS_BARRIER_BIT = 0x00000020
+
+pattern GL_TEXTURE_FETCH_BARRIER_BIT = 0x00000008
+
+pattern GL_TEXTURE_UPDATE_BARRIER_BIT = 0x00000100
+
+pattern GL_TRANSFORM_FEEDBACK_BARRIER_BIT = 0x00000800
+
+pattern GL_UNIFORM_BARRIER_BIT = 0x00000004
+
+pattern GL_UNSIGNED_INT_IMAGE_1D = 0x9062
+
+pattern GL_UNSIGNED_INT_IMAGE_1D_ARRAY = 0x9068
+
+pattern GL_UNSIGNED_INT_IMAGE_2D = 0x9063
+
+pattern GL_UNSIGNED_INT_IMAGE_2D_ARRAY = 0x9069
+
+pattern GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE = 0x906B
+
+pattern GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY = 0x906C
+
+pattern GL_UNSIGNED_INT_IMAGE_2D_RECT = 0x9065
+
+pattern GL_UNSIGNED_INT_IMAGE_3D = 0x9064
+
+pattern GL_UNSIGNED_INT_IMAGE_BUFFER = 0x9067
+
+pattern GL_UNSIGNED_INT_IMAGE_CUBE = 0x9066
+
+pattern GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY = 0x906A
+
+pattern GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT = 0x00000001
+
+pattern GL_FLOAT_MAT2_ARB = 0x8B5A
+
+pattern GL_FLOAT_MAT3_ARB = 0x8B5B
+
+pattern GL_FLOAT_MAT4_ARB = 0x8B5C
+
+pattern GL_FLOAT_VEC2_ARB = 0x8B50
+
+pattern GL_FLOAT_VEC3_ARB = 0x8B51
+
+pattern GL_FLOAT_VEC4_ARB = 0x8B52
+
+glShaderStorageBlockBinding :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()
+glShaderStorageBlockBinding = ffiuintuintuintIOV glShaderStorageBlockBindingFunPtr
+
+glShaderStorageBlockBindingFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> IO ())
+glShaderStorageBlockBindingFunPtr = unsafePerformIO (getProcAddress "glShaderStorageBlockBinding")
+
+{-# NOINLINE glShaderStorageBlockBindingFunPtr #-}
+
+pattern GL_MAX_COMBINED_SHADER_OUTPUT_RESOURCES = 0x8F39
+
+pattern GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS = 0x90DC
+
+pattern GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS = 0x90DB
+
+pattern GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS = 0x90DA
+
+pattern GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS = 0x90D7
+
+pattern GL_MAX_SHADER_STORAGE_BLOCK_SIZE = 0x90DE
+
+pattern GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS = 0x90DD
+
+pattern GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS = 0x90D8
+
+pattern GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS = 0x90D9
+
+pattern GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS = 0x90D6
+
+pattern GL_SHADER_STORAGE_BARRIER_BIT = 0x00002000
+
+pattern GL_SHADER_STORAGE_BUFFER = 0x90D2
+
+pattern GL_SHADER_STORAGE_BUFFER_BINDING = 0x90D3
+
+pattern GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT = 0x90DF
+
+pattern GL_SHADER_STORAGE_BUFFER_SIZE = 0x90D5
+
+pattern GL_SHADER_STORAGE_BUFFER_START = 0x90D4
+
+glGetActiveSubroutineName :: MonadIO m => GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
+glGetActiveSubroutineName = ffiuintenumuintsizeiPtrsizeiPtrcharIOV glGetActiveSubroutineNameFunPtr
+
+glGetActiveSubroutineNameFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
+glGetActiveSubroutineNameFunPtr = unsafePerformIO (getProcAddress "glGetActiveSubroutineName")
+
+{-# NOINLINE glGetActiveSubroutineNameFunPtr #-}
+
+glGetActiveSubroutineUniformName :: MonadIO m => GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
+glGetActiveSubroutineUniformName = ffiuintenumuintsizeiPtrsizeiPtrcharIOV glGetActiveSubroutineUniformNameFunPtr
+
+glGetActiveSubroutineUniformNameFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
+glGetActiveSubroutineUniformNameFunPtr = unsafePerformIO (getProcAddress "glGetActiveSubroutineUniformName")
+
+{-# NOINLINE glGetActiveSubroutineUniformNameFunPtr #-}
+
+glGetActiveSubroutineUniformiv :: MonadIO m => GLuint -> GLenum -> GLuint -> GLenum -> Ptr GLint -> m ()
+glGetActiveSubroutineUniformiv = ffiuintenumuintenumPtrintIOV glGetActiveSubroutineUniformivFunPtr
+
+glGetActiveSubroutineUniformivFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> GLenum -> Ptr GLint -> IO ())
+glGetActiveSubroutineUniformivFunPtr = unsafePerformIO (getProcAddress "glGetActiveSubroutineUniformiv")
+
+{-# NOINLINE glGetActiveSubroutineUniformivFunPtr #-}
+
+glGetProgramStageiv :: MonadIO m => GLuint -> GLenum -> GLenum -> Ptr GLint -> m ()
+glGetProgramStageiv = ffiuintenumenumPtrintIOV glGetProgramStageivFunPtr
+
+glGetProgramStageivFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> Ptr GLint -> IO ())
+glGetProgramStageivFunPtr = unsafePerformIO (getProcAddress "glGetProgramStageiv")
+
+{-# NOINLINE glGetProgramStageivFunPtr #-}
+
+glGetSubroutineIndex :: MonadIO m => GLuint -> GLenum -> Ptr GLchar -> m GLuint
+glGetSubroutineIndex = ffiuintenumPtrcharIOuint glGetSubroutineIndexFunPtr
+
+glGetSubroutineIndexFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLchar -> IO GLuint)
+glGetSubroutineIndexFunPtr = unsafePerformIO (getProcAddress "glGetSubroutineIndex")
+
+{-# NOINLINE glGetSubroutineIndexFunPtr #-}
+
+glGetSubroutineUniformLocation :: MonadIO m => GLuint -> GLenum -> Ptr GLchar -> m GLint
+glGetSubroutineUniformLocation = ffiuintenumPtrcharIOint glGetSubroutineUniformLocationFunPtr
+
+glGetSubroutineUniformLocationFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLchar -> IO GLint)
+glGetSubroutineUniformLocationFunPtr = unsafePerformIO (getProcAddress "glGetSubroutineUniformLocation")
+
+{-# NOINLINE glGetSubroutineUniformLocationFunPtr #-}
+
+glGetUniformSubroutineuiv :: MonadIO m => GLenum -> GLint -> Ptr GLuint -> m ()
+glGetUniformSubroutineuiv = ffienumintPtruintIOV glGetUniformSubroutineuivFunPtr
+
+glGetUniformSubroutineuivFunPtr :: FunPtr (GLenum -> GLint -> Ptr GLuint -> IO ())
+glGetUniformSubroutineuivFunPtr = unsafePerformIO (getProcAddress "glGetUniformSubroutineuiv")
+
+{-# NOINLINE glGetUniformSubroutineuivFunPtr #-}
+
+glUniformSubroutinesuiv :: MonadIO m => GLenum -> GLsizei -> Ptr GLuint -> m ()
+glUniformSubroutinesuiv = ffienumsizeiPtruintIOV glUniformSubroutinesuivFunPtr
+
+glUniformSubroutinesuivFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr GLuint -> IO ())
+glUniformSubroutinesuivFunPtr = unsafePerformIO (getProcAddress "glUniformSubroutinesuiv")
+
+{-# NOINLINE glUniformSubroutinesuivFunPtr #-}
+
+pattern GL_ACTIVE_SUBROUTINES = 0x8DE5
+
+pattern GL_ACTIVE_SUBROUTINE_MAX_LENGTH = 0x8E48
+
+pattern GL_ACTIVE_SUBROUTINE_UNIFORMS = 0x8DE6
+
+pattern GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS = 0x8E47
+
+pattern GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH = 0x8E49
+
+pattern GL_MAX_SUBROUTINES = 0x8DE7
+
+pattern GL_MAX_SUBROUTINE_UNIFORM_LOCATIONS = 0x8DE8
+
+pattern GL_UNIFORM_NAME_LENGTH = 0x8A39
+
+pattern GL_UNIFORM_SIZE = 0x8A38
+
+pattern GL_DEPTH_STENCIL_TEXTURE_MODE = 0x90EA
+
+glClientWaitSync :: MonadIO m => GLsync -> GLbitfield -> GLuint64 -> m GLenum
+glClientWaitSync = ffisyncbitfielduint64IOenum glClientWaitSyncFunPtr
+
+glClientWaitSyncFunPtr :: FunPtr (GLsync -> GLbitfield -> GLuint64 -> IO GLenum)
+glClientWaitSyncFunPtr = unsafePerformIO (getProcAddress "glClientWaitSync")
+
+{-# NOINLINE glClientWaitSyncFunPtr #-}
+
+glDeleteSync :: MonadIO m => GLsync -> m ()
+glDeleteSync = ffisyncIOV glDeleteSyncFunPtr
+
+glDeleteSyncFunPtr :: FunPtr (GLsync -> IO ())
+glDeleteSyncFunPtr = unsafePerformIO (getProcAddress "glDeleteSync")
+
+{-# NOINLINE glDeleteSyncFunPtr #-}
+
+glFenceSync :: MonadIO m => GLenum -> GLbitfield -> m GLsync
+glFenceSync = ffienumbitfieldIOsync glFenceSyncFunPtr
+
+glFenceSyncFunPtr :: FunPtr (GLenum -> GLbitfield -> IO GLsync)
+glFenceSyncFunPtr = unsafePerformIO (getProcAddress "glFenceSync")
+
+{-# NOINLINE glFenceSyncFunPtr #-}
+
+glGetInteger64v :: MonadIO m => GLenum -> Ptr GLint64 -> m ()
+glGetInteger64v = ffienumPtrint64IOV glGetInteger64vFunPtr
+
+glGetInteger64vFunPtr :: FunPtr (GLenum -> Ptr GLint64 -> IO ())
+glGetInteger64vFunPtr = unsafePerformIO (getProcAddress "glGetInteger64v")
+
+{-# NOINLINE glGetInteger64vFunPtr #-}
+
+glGetSynciv :: MonadIO m => GLsync -> GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLint -> m ()
+glGetSynciv = ffisyncenumsizeiPtrsizeiPtrintIOV glGetSyncivFunPtr
+
+glGetSyncivFunPtr :: FunPtr (GLsync -> GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLint -> IO ())
+glGetSyncivFunPtr = unsafePerformIO (getProcAddress "glGetSynciv")
+
+{-# NOINLINE glGetSyncivFunPtr #-}
+
+glIsSync :: MonadIO m => GLsync -> m GLboolean
+glIsSync = ffisyncIOboolean glIsSyncFunPtr
+
+glIsSyncFunPtr :: FunPtr (GLsync -> IO GLboolean)
+glIsSyncFunPtr = unsafePerformIO (getProcAddress "glIsSync")
+
+{-# NOINLINE glIsSyncFunPtr #-}
+
+glWaitSync :: MonadIO m => GLsync -> GLbitfield -> GLuint64 -> m ()
+glWaitSync = ffisyncbitfielduint64IOV glWaitSyncFunPtr
+
+glWaitSyncFunPtr :: FunPtr (GLsync -> GLbitfield -> GLuint64 -> IO ())
+glWaitSyncFunPtr = unsafePerformIO (getProcAddress "glWaitSync")
+
+{-# NOINLINE glWaitSyncFunPtr #-}
+
+pattern GL_ALREADY_SIGNALED = 0x911A
+
+pattern GL_CONDITION_SATISFIED = 0x911C
+
+pattern GL_MAX_SERVER_WAIT_TIMEOUT = 0x9111
+
+pattern GL_OBJECT_TYPE = 0x9112
+
+pattern GL_SIGNALED = 0x9119
+
+pattern GL_SYNC_CONDITION = 0x9113
+
+pattern GL_SYNC_FENCE = 0x9116
+
+pattern GL_SYNC_FLAGS = 0x9115
+
+pattern GL_SYNC_FLUSH_COMMANDS_BIT = 0x00000001
+
+pattern GL_SYNC_GPU_COMMANDS_COMPLETE = 0x9117
+
+pattern GL_SYNC_STATUS = 0x9114
+
+pattern GL_TIMEOUT_EXPIRED = 0x911B
+
+pattern GL_TIMEOUT_IGNORED = 0xFFFFFFFFFFFFFFFF
+
+pattern GL_UNSIGNALED = 0x9118
+
+pattern GL_WAIT_FAILED = 0x911D
+
+glPatchParameterfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
+glPatchParameterfv = ffienumPtrfloatIOV glPatchParameterfvFunPtr
+
+glPatchParameterfvFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
+glPatchParameterfvFunPtr = unsafePerformIO (getProcAddress "glPatchParameterfv")
+
+{-# NOINLINE glPatchParameterfvFunPtr #-}
+
+glPatchParameteri :: MonadIO m => GLenum -> GLint -> m ()
+glPatchParameteri = ffienumintIOV glPatchParameteriFunPtr
+
+glPatchParameteriFunPtr :: FunPtr (GLenum -> GLint -> IO ())
+glPatchParameteriFunPtr = unsafePerformIO (getProcAddress "glPatchParameteri")
+
+{-# NOINLINE glPatchParameteriFunPtr #-}
+
+pattern GL_CCW = 0x0901
+
+pattern GL_CW = 0x0900
+
+pattern GL_EQUAL = 0x0202
+
+pattern GL_FRACTIONAL_EVEN = 0x8E7C
+
+pattern GL_FRACTIONAL_ODD = 0x8E7B
+
+pattern GL_ISOLINES = 0x8E7A
+
+pattern GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS = 0x8E1E
+
+pattern GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS = 0x8E1F
+
+pattern GL_MAX_PATCH_VERTICES = 0x8E7D
+
+pattern GL_MAX_TESS_CONTROL_INPUT_COMPONENTS = 0x886C
+
+pattern GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS = 0x8E83
+
+pattern GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS = 0x8E81
+
+pattern GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS = 0x8E85
+
+pattern GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS = 0x8E89
+
+pattern GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS = 0x8E7F
+
+pattern GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS = 0x886D
+
+pattern GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS = 0x8E86
+
+pattern GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS = 0x8E82
+
+pattern GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS = 0x8E8A
+
+pattern GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS = 0x8E80
+
+pattern GL_MAX_TESS_GEN_LEVEL = 0x8E7E
+
+pattern GL_MAX_TESS_PATCH_COMPONENTS = 0x8E84
+
+pattern GL_PATCHES = 0x000E
+
+pattern GL_PATCH_DEFAULT_INNER_LEVEL = 0x8E73
+
+pattern GL_PATCH_DEFAULT_OUTER_LEVEL = 0x8E74
+
+pattern GL_PATCH_VERTICES = 0x8E72
+
+pattern GL_QUADS = 0x0007
+
+pattern GL_TESS_CONTROL_OUTPUT_VERTICES = 0x8E75
+
+pattern GL_TESS_CONTROL_SHADER = 0x8E88
+
+pattern GL_TESS_EVALUATION_SHADER = 0x8E87
+
+pattern GL_TESS_GEN_MODE = 0x8E76
+
+pattern GL_TESS_GEN_POINT_MODE = 0x8E79
+
+pattern GL_TESS_GEN_SPACING = 0x8E77
+
+pattern GL_TESS_GEN_VERTEX_ORDER = 0x8E78
+
+pattern GL_TRIANGLES = 0x0004
+
+pattern GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER = 0x84F0
+
+pattern GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER = 0x84F1
+
+glTextureBarrier :: MonadIO m => m ()
+glTextureBarrier = ffiIOV glTextureBarrierFunPtr
+
+glTextureBarrierFunPtr :: FunPtr (IO ())
+glTextureBarrierFunPtr = unsafePerformIO (getProcAddress "glTextureBarrier")
+
+{-# NOINLINE glTextureBarrierFunPtr #-}
+
+pattern GL_RGB32F = 0x8815
+
+pattern GL_RGB32I = 0x8D83
+
+pattern GL_RGB32UI = 0x8D71
+
+glTexBufferRange :: MonadIO m => GLenum -> GLenum -> GLuint -> GLintptr -> GLsizeiptr -> m ()
+glTexBufferRange = ffienumenumuintintptrsizeiptrIOV glTexBufferRangeFunPtr
+
+glTexBufferRangeFunPtr :: FunPtr (GLenum -> GLenum -> GLuint -> GLintptr -> GLsizeiptr -> IO ())
+glTexBufferRangeFunPtr = unsafePerformIO (getProcAddress "glTexBufferRange")
+
+{-# NOINLINE glTexBufferRangeFunPtr #-}
+
+pattern GL_TEXTURE_BUFFER_OFFSET = 0x919D
+
+pattern GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT = 0x919F
+
+pattern GL_TEXTURE_BUFFER_SIZE = 0x919E
+
+pattern GL_COMPRESSED_RED_RGTC1 = 0x8DBB
+
+pattern GL_COMPRESSED_RG_RGTC2 = 0x8DBD
+
+pattern GL_COMPRESSED_SIGNED_RED_RGTC1 = 0x8DBC
+
+pattern GL_COMPRESSED_SIGNED_RG_RGTC2 = 0x8DBE
+
+pattern GL_MIRROR_CLAMP_TO_EDGE = 0x8743
+
+glGetMultisamplefv :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()
+glGetMultisamplefv = ffienumuintPtrfloatIOV glGetMultisamplefvFunPtr
+
+glGetMultisamplefvFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLfloat -> IO ())
+glGetMultisamplefvFunPtr = unsafePerformIO (getProcAddress "glGetMultisamplefv")
+
+{-# NOINLINE glGetMultisamplefvFunPtr #-}
+
+glSampleMaski :: MonadIO m => GLuint -> GLbitfield -> m ()
+glSampleMaski = ffiuintbitfieldIOV glSampleMaskiFunPtr
+
+glSampleMaskiFunPtr :: FunPtr (GLuint -> GLbitfield -> IO ())
+glSampleMaskiFunPtr = unsafePerformIO (getProcAddress "glSampleMaski")
+
+{-# NOINLINE glSampleMaskiFunPtr #-}
+
+glTexImage2DMultisample :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> m ()
+glTexImage2DMultisample = ffienumsizeienumsizeisizeibooleanIOV glTexImage2DMultisampleFunPtr
+
+glTexImage2DMultisampleFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> IO ())
+glTexImage2DMultisampleFunPtr = unsafePerformIO (getProcAddress "glTexImage2DMultisample")
+
+{-# NOINLINE glTexImage2DMultisampleFunPtr #-}
+
+glTexImage3DMultisample :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> m ()
+glTexImage3DMultisample = ffienumsizeienumsizeisizeisizeibooleanIOV glTexImage3DMultisampleFunPtr
+
+glTexImage3DMultisampleFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> IO ())
+glTexImage3DMultisampleFunPtr = unsafePerformIO (getProcAddress "glTexImage3DMultisample")
+
+{-# NOINLINE glTexImage3DMultisampleFunPtr #-}
+
+pattern GL_INT_SAMPLER_2D_MULTISAMPLE = 0x9109
+
+pattern GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY = 0x910C
+
+pattern GL_MAX_COLOR_TEXTURE_SAMPLES = 0x910E
+
+pattern GL_MAX_DEPTH_TEXTURE_SAMPLES = 0x910F
+
+pattern GL_MAX_INTEGER_SAMPLES = 0x9110
+
+pattern GL_MAX_SAMPLE_MASK_WORDS = 0x8E59
+
+pattern GL_PROXY_TEXTURE_2D_MULTISAMPLE = 0x9101
+
+pattern GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY = 0x9103
+
+pattern GL_SAMPLER_2D_MULTISAMPLE = 0x9108
+
+pattern GL_SAMPLER_2D_MULTISAMPLE_ARRAY = 0x910B
+
+pattern GL_SAMPLE_MASK = 0x8E51
+
+pattern GL_SAMPLE_MASK_VALUE = 0x8E52
+
+pattern GL_SAMPLE_POSITION = 0x8E50
+
+pattern GL_TEXTURE_FIXED_SAMPLE_LOCATIONS = 0x9107
+
+pattern GL_TEXTURE_SAMPLES = 0x9106
+
+pattern GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE = 0x910A
+
+pattern GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY = 0x910D
+
+pattern GL_R16 = 0x822A
+
+pattern GL_R16F = 0x822D
+
+pattern GL_R16I = 0x8233
+
+pattern GL_R16UI = 0x8234
+
+pattern GL_R32F = 0x822E
+
+pattern GL_R32I = 0x8235
+
+pattern GL_R32UI = 0x8236
+
+pattern GL_R8 = 0x8229
+
+pattern GL_R8I = 0x8231
+
+pattern GL_R8UI = 0x8232
+
+pattern GL_RG = 0x8227
+
+pattern GL_RG16 = 0x822C
+
+pattern GL_RG16F = 0x822F
+
+pattern GL_RG16I = 0x8239
+
+pattern GL_RG32F = 0x8230
+
+pattern GL_RG32I = 0x823B
+
+pattern GL_RG32UI = 0x823C
+
+pattern GL_RG8 = 0x822B
+
+pattern GL_RG8I = 0x8237
+
+pattern GL_RG_INTEGER = 0x8228
+
+pattern GL_RGB10_A2UI = 0x906F
+
+pattern GL_STENCIL_INDEX = 0x1901
+
+glTexStorage1D :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> m ()
+glTexStorage1D = ffienumsizeienumsizeiIOV glTexStorage1DFunPtr
+
+glTexStorage1DFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> GLsizei -> IO ())
+glTexStorage1DFunPtr = unsafePerformIO (getProcAddress "glTexStorage1D")
+
+{-# NOINLINE glTexStorage1DFunPtr #-}
+
+glTexStorage2D :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()
+glTexStorage2D = ffienumsizeienumsizeisizeiIOV glTexStorage2DFunPtr
+
+glTexStorage2DFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> IO ())
+glTexStorage2DFunPtr = unsafePerformIO (getProcAddress "glTexStorage2D")
+
+{-# NOINLINE glTexStorage2DFunPtr #-}
+
+glTexStorage3D :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> m ()
+glTexStorage3D = ffienumsizeienumsizeisizeisizeiIOV glTexStorage3DFunPtr
+
+glTexStorage3DFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> IO ())
+glTexStorage3DFunPtr = unsafePerformIO (getProcAddress "glTexStorage3D")
+
+{-# NOINLINE glTexStorage3DFunPtr #-}
+
+pattern GL_TEXTURE_IMMUTABLE_FORMAT = 0x912F
+
+glTexStorage2DMultisample :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> m ()
+glTexStorage2DMultisample = ffienumsizeienumsizeisizeibooleanIOV glTexStorage2DMultisampleFunPtr
+
+glTexStorage2DMultisampleFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> IO ())
+glTexStorage2DMultisampleFunPtr = unsafePerformIO (getProcAddress "glTexStorage2DMultisample")
+
+{-# NOINLINE glTexStorage2DMultisampleFunPtr #-}
+
+glTexStorage3DMultisample :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> m ()
+glTexStorage3DMultisample = ffienumsizeienumsizeisizeisizeibooleanIOV glTexStorage3DMultisampleFunPtr
+
+glTexStorage3DMultisampleFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> IO ())
+glTexStorage3DMultisampleFunPtr = unsafePerformIO (getProcAddress "glTexStorage3DMultisample")
+
+{-# NOINLINE glTexStorage3DMultisampleFunPtr #-}
+
+pattern GL_TEXTURE_SWIZZLE_A = 0x8E45
+
+pattern GL_TEXTURE_SWIZZLE_B = 0x8E44
+
+pattern GL_TEXTURE_SWIZZLE_G = 0x8E43
+
+pattern GL_TEXTURE_SWIZZLE_R = 0x8E42
+
+pattern GL_TEXTURE_SWIZZLE_RGBA = 0x8E46
+
+glTextureView :: MonadIO m => GLuint -> GLenum -> GLuint -> GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
+glTextureView = ffiuintenumuintenumuintuintuintuintIOV glTextureViewFunPtr
+
+glTextureViewFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> IO ())
+glTextureViewFunPtr = unsafePerformIO (getProcAddress "glTextureView")
+
+{-# NOINLINE glTextureViewFunPtr #-}
+
+pattern GL_TEXTURE_IMMUTABLE_LEVELS = 0x82DF
+
+pattern GL_TEXTURE_VIEW_MIN_LAYER = 0x82DD
+
+pattern GL_TEXTURE_VIEW_MIN_LEVEL = 0x82DB
+
+pattern GL_TEXTURE_VIEW_NUM_LAYERS = 0x82DE
+
+pattern GL_TEXTURE_VIEW_NUM_LEVELS = 0x82DC
+
+glGetQueryObjecti64v :: MonadIO m => GLuint -> GLenum -> Ptr GLint64 -> m ()
+glGetQueryObjecti64v = ffiuintenumPtrint64IOV glGetQueryObjecti64vFunPtr
+
+glGetQueryObjecti64vFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint64 -> IO ())
+glGetQueryObjecti64vFunPtr = unsafePerformIO (getProcAddress "glGetQueryObjecti64v")
+
+{-# NOINLINE glGetQueryObjecti64vFunPtr #-}
+
+glGetQueryObjectui64v :: MonadIO m => GLuint -> GLenum -> Ptr GLuint64 -> m ()
+glGetQueryObjectui64v = ffiuintenumPtruint64IOV glGetQueryObjectui64vFunPtr
+
+glGetQueryObjectui64vFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLuint64 -> IO ())
+glGetQueryObjectui64vFunPtr = unsafePerformIO (getProcAddress "glGetQueryObjectui64v")
+
+{-# NOINLINE glGetQueryObjectui64vFunPtr #-}
+
+glQueryCounter :: MonadIO m => GLuint -> GLenum -> m ()
+glQueryCounter = ffiuintenumIOV glQueryCounterFunPtr
+
+glQueryCounterFunPtr :: FunPtr (GLuint -> GLenum -> IO ())
+glQueryCounterFunPtr = unsafePerformIO (getProcAddress "glQueryCounter")
+
+{-# NOINLINE glQueryCounterFunPtr #-}
+
+pattern GL_TIMESTAMP = 0x8E28
+
+pattern GL_TIME_ELAPSED = 0x88BF
+
+glBindTransformFeedback :: MonadIO m => GLenum -> GLuint -> m ()
+glBindTransformFeedback = ffienumuintIOV glBindTransformFeedbackFunPtr
+
+glBindTransformFeedbackFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
+glBindTransformFeedbackFunPtr = unsafePerformIO (getProcAddress "glBindTransformFeedback")
+
+{-# NOINLINE glBindTransformFeedbackFunPtr #-}
+
+glDeleteTransformFeedbacks :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glDeleteTransformFeedbacks = ffisizeiPtruintIOV glDeleteTransformFeedbacksFunPtr
+
+glDeleteTransformFeedbacksFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glDeleteTransformFeedbacksFunPtr = unsafePerformIO (getProcAddress "glDeleteTransformFeedbacks")
+
+{-# NOINLINE glDeleteTransformFeedbacksFunPtr #-}
+
+glDrawTransformFeedback :: MonadIO m => GLenum -> GLuint -> m ()
+glDrawTransformFeedback = ffienumuintIOV glDrawTransformFeedbackFunPtr
+
+glDrawTransformFeedbackFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
+glDrawTransformFeedbackFunPtr = unsafePerformIO (getProcAddress "glDrawTransformFeedback")
+
+{-# NOINLINE glDrawTransformFeedbackFunPtr #-}
+
+glGenTransformFeedbacks :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glGenTransformFeedbacks = ffisizeiPtruintIOV glGenTransformFeedbacksFunPtr
+
+glGenTransformFeedbacksFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glGenTransformFeedbacksFunPtr = unsafePerformIO (getProcAddress "glGenTransformFeedbacks")
+
+{-# NOINLINE glGenTransformFeedbacksFunPtr #-}
+
+glIsTransformFeedback :: MonadIO m => GLuint -> m GLboolean
+glIsTransformFeedback = ffiuintIOboolean glIsTransformFeedbackFunPtr
+
+glIsTransformFeedbackFunPtr :: FunPtr (GLuint -> IO GLboolean)
+glIsTransformFeedbackFunPtr = unsafePerformIO (getProcAddress "glIsTransformFeedback")
+
+{-# NOINLINE glIsTransformFeedbackFunPtr #-}
+
+glPauseTransformFeedback :: MonadIO m => m ()
+glPauseTransformFeedback = ffiIOV glPauseTransformFeedbackFunPtr
+
+glPauseTransformFeedbackFunPtr :: FunPtr (IO ())
+glPauseTransformFeedbackFunPtr = unsafePerformIO (getProcAddress "glPauseTransformFeedback")
+
+{-# NOINLINE glPauseTransformFeedbackFunPtr #-}
+
+glResumeTransformFeedback :: MonadIO m => m ()
+glResumeTransformFeedback = ffiIOV glResumeTransformFeedbackFunPtr
+
+glResumeTransformFeedbackFunPtr :: FunPtr (IO ())
+glResumeTransformFeedbackFunPtr = unsafePerformIO (getProcAddress "glResumeTransformFeedback")
+
+{-# NOINLINE glResumeTransformFeedbackFunPtr #-}
+
+pattern GL_TRANSFORM_FEEDBACK = 0x8E22
+
+pattern GL_TRANSFORM_FEEDBACK_BINDING = 0x8E25
+
+pattern GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE = 0x8E24
+
+pattern GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED = 0x8E23
+
+glBeginQueryIndexed :: MonadIO m => GLenum -> GLuint -> GLuint -> m ()
+glBeginQueryIndexed = ffienumuintuintIOV glBeginQueryIndexedFunPtr
+
+glBeginQueryIndexedFunPtr :: FunPtr (GLenum -> GLuint -> GLuint -> IO ())
+glBeginQueryIndexedFunPtr = unsafePerformIO (getProcAddress "glBeginQueryIndexed")
+
+{-# NOINLINE glBeginQueryIndexedFunPtr #-}
+
+glDrawTransformFeedbackStream :: MonadIO m => GLenum -> GLuint -> GLuint -> m ()
+glDrawTransformFeedbackStream = ffienumuintuintIOV glDrawTransformFeedbackStreamFunPtr
+
+glDrawTransformFeedbackStreamFunPtr :: FunPtr (GLenum -> GLuint -> GLuint -> IO ())
+glDrawTransformFeedbackStreamFunPtr = unsafePerformIO (getProcAddress "glDrawTransformFeedbackStream")
+
+{-# NOINLINE glDrawTransformFeedbackStreamFunPtr #-}
+
+glEndQueryIndexed :: MonadIO m => GLenum -> GLuint -> m ()
+glEndQueryIndexed = ffienumuintIOV glEndQueryIndexedFunPtr
+
+glEndQueryIndexedFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
+glEndQueryIndexedFunPtr = unsafePerformIO (getProcAddress "glEndQueryIndexed")
+
+{-# NOINLINE glEndQueryIndexedFunPtr #-}
+
+glGetQueryIndexediv :: MonadIO m => GLenum -> GLuint -> GLenum -> Ptr GLint -> m ()
+glGetQueryIndexediv = ffienumuintenumPtrintIOV glGetQueryIndexedivFunPtr
+
+glGetQueryIndexedivFunPtr :: FunPtr (GLenum -> GLuint -> GLenum -> Ptr GLint -> IO ())
+glGetQueryIndexedivFunPtr = unsafePerformIO (getProcAddress "glGetQueryIndexediv")
+
+{-# NOINLINE glGetQueryIndexedivFunPtr #-}
+
+pattern GL_MAX_TRANSFORM_FEEDBACK_BUFFERS = 0x8E70
+
+glDrawTransformFeedbackInstanced :: MonadIO m => GLenum -> GLuint -> GLsizei -> m ()
+glDrawTransformFeedbackInstanced = ffienumuintsizeiIOV glDrawTransformFeedbackInstancedFunPtr
+
+glDrawTransformFeedbackInstancedFunPtr :: FunPtr (GLenum -> GLuint -> GLsizei -> IO ())
+glDrawTransformFeedbackInstancedFunPtr = unsafePerformIO (getProcAddress "glDrawTransformFeedbackInstanced")
+
+{-# NOINLINE glDrawTransformFeedbackInstancedFunPtr #-}
+
+glDrawTransformFeedbackStreamInstanced :: MonadIO m => GLenum -> GLuint -> GLuint -> GLsizei -> m ()
+glDrawTransformFeedbackStreamInstanced = ffienumuintuintsizeiIOV glDrawTransformFeedbackStreamInstancedFunPtr
+
+glDrawTransformFeedbackStreamInstancedFunPtr :: FunPtr (GLenum -> GLuint -> GLuint -> GLsizei -> IO ())
+glDrawTransformFeedbackStreamInstancedFunPtr = unsafePerformIO (getProcAddress "glDrawTransformFeedbackStreamInstanced")
+
+{-# NOINLINE glDrawTransformFeedbackStreamInstancedFunPtr #-}
+
+glGetActiveUniformBlockName :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
+glGetActiveUniformBlockName = ffiuintuintsizeiPtrsizeiPtrcharIOV glGetActiveUniformBlockNameFunPtr
+
+glGetActiveUniformBlockNameFunPtr :: FunPtr (GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
+glGetActiveUniformBlockNameFunPtr = unsafePerformIO (getProcAddress "glGetActiveUniformBlockName")
+
+{-# NOINLINE glGetActiveUniformBlockNameFunPtr #-}
+
+glGetActiveUniformBlockiv :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr GLint -> m ()
+glGetActiveUniformBlockiv = ffiuintuintenumPtrintIOV glGetActiveUniformBlockivFunPtr
+
+glGetActiveUniformBlockivFunPtr :: FunPtr (GLuint -> GLuint -> GLenum -> Ptr GLint -> IO ())
+glGetActiveUniformBlockivFunPtr = unsafePerformIO (getProcAddress "glGetActiveUniformBlockiv")
+
+{-# NOINLINE glGetActiveUniformBlockivFunPtr #-}
+
+glGetActiveUniformName :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
+glGetActiveUniformName = ffiuintuintsizeiPtrsizeiPtrcharIOV glGetActiveUniformNameFunPtr
+
+glGetActiveUniformNameFunPtr :: FunPtr (GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
+glGetActiveUniformNameFunPtr = unsafePerformIO (getProcAddress "glGetActiveUniformName")
+
+{-# NOINLINE glGetActiveUniformNameFunPtr #-}
+
+glGetActiveUniformsiv :: MonadIO m => GLuint -> GLsizei -> Ptr GLuint -> GLenum -> Ptr GLint -> m ()
+glGetActiveUniformsiv = ffiuintsizeiPtruintenumPtrintIOV glGetActiveUniformsivFunPtr
+
+glGetActiveUniformsivFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLuint -> GLenum -> Ptr GLint -> IO ())
+glGetActiveUniformsivFunPtr = unsafePerformIO (getProcAddress "glGetActiveUniformsiv")
+
+{-# NOINLINE glGetActiveUniformsivFunPtr #-}
+
+glGetUniformBlockIndex :: MonadIO m => GLuint -> Ptr GLchar -> m GLuint
+glGetUniformBlockIndex = ffiuintPtrcharIOuint glGetUniformBlockIndexFunPtr
+
+glGetUniformBlockIndexFunPtr :: FunPtr (GLuint -> Ptr GLchar -> IO GLuint)
+glGetUniformBlockIndexFunPtr = unsafePerformIO (getProcAddress "glGetUniformBlockIndex")
+
+{-# NOINLINE glGetUniformBlockIndexFunPtr #-}
+
+glGetUniformIndices :: MonadIO m => GLuint -> GLsizei -> Ptr GLchar -> Ptr GLuint -> m ()
+glGetUniformIndices = ffiuintsizeiPtrcharPtruintIOV glGetUniformIndicesFunPtr
+
+glGetUniformIndicesFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLchar -> Ptr GLuint -> IO ())
+glGetUniformIndicesFunPtr = unsafePerformIO (getProcAddress "glGetUniformIndices")
+
+{-# NOINLINE glGetUniformIndicesFunPtr #-}
+
+glUniformBlockBinding :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()
+glUniformBlockBinding = ffiuintuintuintIOV glUniformBlockBindingFunPtr
+
+glUniformBlockBindingFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> IO ())
+glUniformBlockBindingFunPtr = unsafePerformIO (getProcAddress "glUniformBlockBinding")
+
+{-# NOINLINE glUniformBlockBindingFunPtr #-}
+
+pattern GL_ACTIVE_UNIFORM_BLOCKS = 0x8A36
+
+pattern GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH = 0x8A35
+
+pattern GL_INVALID_INDEX = 0xFFFFFFFF
+
+pattern GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS = 0x8A33
+
+pattern GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS = 0x8A32
+
+pattern GL_MAX_COMBINED_UNIFORM_BLOCKS = 0x8A2E
+
+pattern GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS = 0x8A31
+
+pattern GL_MAX_FRAGMENT_UNIFORM_BLOCKS = 0x8A2D
+
+pattern GL_MAX_GEOMETRY_UNIFORM_BLOCKS = 0x8A2C
+
+pattern GL_MAX_UNIFORM_BLOCK_SIZE = 0x8A30
+
+pattern GL_MAX_UNIFORM_BUFFER_BINDINGS = 0x8A2F
+
+pattern GL_MAX_VERTEX_UNIFORM_BLOCKS = 0x8A2B
+
+pattern GL_UNIFORM_ARRAY_STRIDE = 0x8A3C
+
+pattern GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS = 0x8A42
+
+pattern GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES = 0x8A43
+
+pattern GL_UNIFORM_BLOCK_BINDING = 0x8A3F
+
+pattern GL_UNIFORM_BLOCK_DATA_SIZE = 0x8A40
+
+pattern GL_UNIFORM_BLOCK_INDEX = 0x8A3A
+
+pattern GL_UNIFORM_BLOCK_NAME_LENGTH = 0x8A41
+
+pattern GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER = 0x8A46
+
+pattern GL_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER = 0x8A45
+
+pattern GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER = 0x8A44
+
+pattern GL_UNIFORM_BUFFER = 0x8A11
+
+pattern GL_UNIFORM_BUFFER_BINDING = 0x8A28
+
+pattern GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT = 0x8A34
+
+pattern GL_UNIFORM_BUFFER_SIZE = 0x8A2A
+
+pattern GL_UNIFORM_BUFFER_START = 0x8A29
+
+pattern GL_UNIFORM_IS_ROW_MAJOR = 0x8A3E
+
+pattern GL_UNIFORM_MATRIX_STRIDE = 0x8A3D
+
+pattern GL_UNIFORM_OFFSET = 0x8A3B
+
+pattern GL_UNIFORM_TYPE = 0x8A37
+
+pattern GL_BGRA = 0x80E1
+
+glBindVertexArray :: MonadIO m => GLuint -> m ()
+glBindVertexArray = ffiuintIOV glBindVertexArrayFunPtr
+
+glBindVertexArrayFunPtr :: FunPtr (GLuint -> IO ())
+glBindVertexArrayFunPtr = unsafePerformIO (getProcAddress "glBindVertexArray")
+
+{-# NOINLINE glBindVertexArrayFunPtr #-}
+
+glDeleteVertexArrays :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glDeleteVertexArrays = ffisizeiPtruintIOV glDeleteVertexArraysFunPtr
+
+glDeleteVertexArraysFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glDeleteVertexArraysFunPtr = unsafePerformIO (getProcAddress "glDeleteVertexArrays")
+
+{-# NOINLINE glDeleteVertexArraysFunPtr #-}
+
+glGenVertexArrays :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glGenVertexArrays = ffisizeiPtruintIOV glGenVertexArraysFunPtr
+
+glGenVertexArraysFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glGenVertexArraysFunPtr = unsafePerformIO (getProcAddress "glGenVertexArrays")
+
+{-# NOINLINE glGenVertexArraysFunPtr #-}
+
+glIsVertexArray :: MonadIO m => GLuint -> m GLboolean
+glIsVertexArray = ffiuintIOboolean glIsVertexArrayFunPtr
+
+glIsVertexArrayFunPtr :: FunPtr (GLuint -> IO GLboolean)
+glIsVertexArrayFunPtr = unsafePerformIO (getProcAddress "glIsVertexArray")
+
+{-# NOINLINE glIsVertexArrayFunPtr #-}
+
+pattern GL_VERTEX_ARRAY_BINDING = 0x85B5
+
+glGetVertexAttribLdv :: MonadIO m => GLuint -> GLenum -> Ptr GLdouble -> m ()
+glGetVertexAttribLdv = ffiuintenumPtrdoubleIOV glGetVertexAttribLdvFunPtr
+
+glGetVertexAttribLdvFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLdouble -> IO ())
+glGetVertexAttribLdvFunPtr = unsafePerformIO (getProcAddress "glGetVertexAttribLdv")
+
+{-# NOINLINE glGetVertexAttribLdvFunPtr #-}
+
+glVertexAttribL1d :: MonadIO m => GLuint -> GLdouble -> m ()
+glVertexAttribL1d = ffiuintdoubleIOV glVertexAttribL1dFunPtr
+
+glVertexAttribL1dFunPtr :: FunPtr (GLuint -> GLdouble -> IO ())
+glVertexAttribL1dFunPtr = unsafePerformIO (getProcAddress "glVertexAttribL1d")
+
+{-# NOINLINE glVertexAttribL1dFunPtr #-}
+
+glVertexAttribL1dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()
+glVertexAttribL1dv = ffiuintPtrdoubleIOV glVertexAttribL1dvFunPtr
+
+glVertexAttribL1dvFunPtr :: FunPtr (GLuint -> Ptr GLdouble -> IO ())
+glVertexAttribL1dvFunPtr = unsafePerformIO (getProcAddress "glVertexAttribL1dv")
+
+{-# NOINLINE glVertexAttribL1dvFunPtr #-}
+
+glVertexAttribL2d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> m ()
+glVertexAttribL2d = ffiuintdoubledoubleIOV glVertexAttribL2dFunPtr
+
+glVertexAttribL2dFunPtr :: FunPtr (GLuint -> GLdouble -> GLdouble -> IO ())
+glVertexAttribL2dFunPtr = unsafePerformIO (getProcAddress "glVertexAttribL2d")
+
+{-# NOINLINE glVertexAttribL2dFunPtr #-}
+
+glVertexAttribL2dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()
+glVertexAttribL2dv = ffiuintPtrdoubleIOV glVertexAttribL2dvFunPtr
+
+glVertexAttribL2dvFunPtr :: FunPtr (GLuint -> Ptr GLdouble -> IO ())
+glVertexAttribL2dvFunPtr = unsafePerformIO (getProcAddress "glVertexAttribL2dv")
+
+{-# NOINLINE glVertexAttribL2dvFunPtr #-}
+
+glVertexAttribL3d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> m ()
+glVertexAttribL3d = ffiuintdoubledoubledoubleIOV glVertexAttribL3dFunPtr
+
+glVertexAttribL3dFunPtr :: FunPtr (GLuint -> GLdouble -> GLdouble -> GLdouble -> IO ())
+glVertexAttribL3dFunPtr = unsafePerformIO (getProcAddress "glVertexAttribL3d")
+
+{-# NOINLINE glVertexAttribL3dFunPtr #-}
+
+glVertexAttribL3dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()
+glVertexAttribL3dv = ffiuintPtrdoubleIOV glVertexAttribL3dvFunPtr
+
+glVertexAttribL3dvFunPtr :: FunPtr (GLuint -> Ptr GLdouble -> IO ())
+glVertexAttribL3dvFunPtr = unsafePerformIO (getProcAddress "glVertexAttribL3dv")
+
+{-# NOINLINE glVertexAttribL3dvFunPtr #-}
+
+glVertexAttribL4d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
+glVertexAttribL4d = ffiuintdoubledoubledoubledoubleIOV glVertexAttribL4dFunPtr
+
+glVertexAttribL4dFunPtr :: FunPtr (GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
+glVertexAttribL4dFunPtr = unsafePerformIO (getProcAddress "glVertexAttribL4d")
+
+{-# NOINLINE glVertexAttribL4dFunPtr #-}
+
+glVertexAttribL4dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()
+glVertexAttribL4dv = ffiuintPtrdoubleIOV glVertexAttribL4dvFunPtr
+
+glVertexAttribL4dvFunPtr :: FunPtr (GLuint -> Ptr GLdouble -> IO ())
+glVertexAttribL4dvFunPtr = unsafePerformIO (getProcAddress "glVertexAttribL4dv")
+
+{-# NOINLINE glVertexAttribL4dvFunPtr #-}
+
+glVertexAttribLPointer :: MonadIO m => GLuint -> GLint -> GLenum -> GLsizei -> Ptr () -> m ()
+glVertexAttribLPointer = ffiuintintenumsizeiPtrVIOV glVertexAttribLPointerFunPtr
+
+glVertexAttribLPointerFunPtr :: FunPtr (GLuint -> GLint -> GLenum -> GLsizei -> Ptr () -> IO ())
+glVertexAttribLPointerFunPtr = unsafePerformIO (getProcAddress "glVertexAttribLPointer")
+
+{-# NOINLINE glVertexAttribLPointerFunPtr #-}
+
+glBindVertexBuffer :: MonadIO m => GLuint -> GLuint -> GLintptr -> GLsizei -> m ()
+glBindVertexBuffer = ffiuintuintintptrsizeiIOV glBindVertexBufferFunPtr
+
+glBindVertexBufferFunPtr :: FunPtr (GLuint -> GLuint -> GLintptr -> GLsizei -> IO ())
+glBindVertexBufferFunPtr = unsafePerformIO (getProcAddress "glBindVertexBuffer")
+
+{-# NOINLINE glBindVertexBufferFunPtr #-}
+
+glVertexAttribBinding :: MonadIO m => GLuint -> GLuint -> m ()
+glVertexAttribBinding = ffiuintuintIOV glVertexAttribBindingFunPtr
+
+glVertexAttribBindingFunPtr :: FunPtr (GLuint -> GLuint -> IO ())
+glVertexAttribBindingFunPtr = unsafePerformIO (getProcAddress "glVertexAttribBinding")
+
+{-# NOINLINE glVertexAttribBindingFunPtr #-}
+
+glVertexAttribFormat :: MonadIO m => GLuint -> GLint -> GLenum -> GLboolean -> GLuint -> m ()
+glVertexAttribFormat = ffiuintintenumbooleanuintIOV glVertexAttribFormatFunPtr
+
+glVertexAttribFormatFunPtr :: FunPtr (GLuint -> GLint -> GLenum -> GLboolean -> GLuint -> IO ())
+glVertexAttribFormatFunPtr = unsafePerformIO (getProcAddress "glVertexAttribFormat")
+
+{-# NOINLINE glVertexAttribFormatFunPtr #-}
+
+glVertexAttribIFormat :: MonadIO m => GLuint -> GLint -> GLenum -> GLuint -> m ()
+glVertexAttribIFormat = ffiuintintenumuintIOV glVertexAttribIFormatFunPtr
+
+glVertexAttribIFormatFunPtr :: FunPtr (GLuint -> GLint -> GLenum -> GLuint -> IO ())
+glVertexAttribIFormatFunPtr = unsafePerformIO (getProcAddress "glVertexAttribIFormat")
+
+{-# NOINLINE glVertexAttribIFormatFunPtr #-}
+
+glVertexAttribLFormat :: MonadIO m => GLuint -> GLint -> GLenum -> GLuint -> m ()
+glVertexAttribLFormat = ffiuintintenumuintIOV glVertexAttribLFormatFunPtr
+
+glVertexAttribLFormatFunPtr :: FunPtr (GLuint -> GLint -> GLenum -> GLuint -> IO ())
+glVertexAttribLFormatFunPtr = unsafePerformIO (getProcAddress "glVertexAttribLFormat")
+
+{-# NOINLINE glVertexAttribLFormatFunPtr #-}
+
+glVertexBindingDivisor :: MonadIO m => GLuint -> GLuint -> m ()
+glVertexBindingDivisor = ffiuintuintIOV glVertexBindingDivisorFunPtr
+
+glVertexBindingDivisorFunPtr :: FunPtr (GLuint -> GLuint -> IO ())
+glVertexBindingDivisorFunPtr = unsafePerformIO (getProcAddress "glVertexBindingDivisor")
+
+{-# NOINLINE glVertexBindingDivisorFunPtr #-}
+
+pattern GL_MAX_VERTEX_ATTRIB_BINDINGS = 0x82DA
+
+pattern GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET = 0x82D9
+
+pattern GL_VERTEX_ATTRIB_BINDING = 0x82D4
+
+pattern GL_VERTEX_ATTRIB_RELATIVE_OFFSET = 0x82D5
+
+pattern GL_VERTEX_BINDING_DIVISOR = 0x82D6
+
+pattern GL_VERTEX_BINDING_OFFSET = 0x82D7
+
+pattern GL_VERTEX_BINDING_STRIDE = 0x82D8
+
+glDisableVertexAttribArrayARB :: MonadIO m => GLuint -> m ()
+glDisableVertexAttribArrayARB = ffiuintIOV glDisableVertexAttribArrayARBFunPtr
+
+glDisableVertexAttribArrayARBFunPtr :: FunPtr (GLuint -> IO ())
+glDisableVertexAttribArrayARBFunPtr = unsafePerformIO (getProcAddress "glDisableVertexAttribArrayARB")
+
+{-# NOINLINE glDisableVertexAttribArrayARBFunPtr #-}
+
+glEnableVertexAttribArrayARB :: MonadIO m => GLuint -> m ()
+glEnableVertexAttribArrayARB = ffiuintIOV glEnableVertexAttribArrayARBFunPtr
+
+glEnableVertexAttribArrayARBFunPtr :: FunPtr (GLuint -> IO ())
+glEnableVertexAttribArrayARBFunPtr = unsafePerformIO (getProcAddress "glEnableVertexAttribArrayARB")
+
+{-# NOINLINE glEnableVertexAttribArrayARBFunPtr #-}
+
+glGetVertexAttribPointervARB :: MonadIO m => GLuint -> GLenum -> Ptr () -> m ()
+glGetVertexAttribPointervARB = ffiuintenumPtrVIOV glGetVertexAttribPointervARBFunPtr
+
+glGetVertexAttribPointervARBFunPtr :: FunPtr (GLuint -> GLenum -> Ptr () -> IO ())
+glGetVertexAttribPointervARBFunPtr = unsafePerformIO (getProcAddress "glGetVertexAttribPointervARB")
+
+{-# NOINLINE glGetVertexAttribPointervARBFunPtr #-}
+
+glGetVertexAttribdvARB :: MonadIO m => GLuint -> GLenum -> Ptr GLdouble -> m ()
+glGetVertexAttribdvARB = ffiuintenumPtrdoubleIOV glGetVertexAttribdvARBFunPtr
+
+glGetVertexAttribdvARBFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLdouble -> IO ())
+glGetVertexAttribdvARBFunPtr = unsafePerformIO (getProcAddress "glGetVertexAttribdvARB")
+
+{-# NOINLINE glGetVertexAttribdvARBFunPtr #-}
+
+glGetVertexAttribfvARB :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()
+glGetVertexAttribfvARB = ffiuintenumPtrfloatIOV glGetVertexAttribfvARBFunPtr
+
+glGetVertexAttribfvARBFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLfloat -> IO ())
+glGetVertexAttribfvARBFunPtr = unsafePerformIO (getProcAddress "glGetVertexAttribfvARB")
+
+{-# NOINLINE glGetVertexAttribfvARBFunPtr #-}
+
+glGetVertexAttribivARB :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
+glGetVertexAttribivARB = ffiuintenumPtrintIOV glGetVertexAttribivARBFunPtr
+
+glGetVertexAttribivARBFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+glGetVertexAttribivARBFunPtr = unsafePerformIO (getProcAddress "glGetVertexAttribivARB")
+
+{-# NOINLINE glGetVertexAttribivARBFunPtr #-}
+
+glVertexAttrib1dARB :: MonadIO m => GLuint -> GLdouble -> m ()
+glVertexAttrib1dARB = ffiuintdoubleIOV glVertexAttrib1dARBFunPtr
+
+glVertexAttrib1dARBFunPtr :: FunPtr (GLuint -> GLdouble -> IO ())
+glVertexAttrib1dARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib1dARB")
+
+{-# NOINLINE glVertexAttrib1dARBFunPtr #-}
+
+glVertexAttrib1dvARB :: MonadIO m => GLuint -> Ptr GLdouble -> m ()
+glVertexAttrib1dvARB = ffiuintPtrdoubleIOV glVertexAttrib1dvARBFunPtr
+
+glVertexAttrib1dvARBFunPtr :: FunPtr (GLuint -> Ptr GLdouble -> IO ())
+glVertexAttrib1dvARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib1dvARB")
+
+{-# NOINLINE glVertexAttrib1dvARBFunPtr #-}
+
+glVertexAttrib1fARB :: MonadIO m => GLuint -> GLfloat -> m ()
+glVertexAttrib1fARB = ffiuintfloatIOV glVertexAttrib1fARBFunPtr
+
+glVertexAttrib1fARBFunPtr :: FunPtr (GLuint -> GLfloat -> IO ())
+glVertexAttrib1fARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib1fARB")
+
+{-# NOINLINE glVertexAttrib1fARBFunPtr #-}
+
+glVertexAttrib1fvARB :: MonadIO m => GLuint -> Ptr GLfloat -> m ()
+glVertexAttrib1fvARB = ffiuintPtrfloatIOV glVertexAttrib1fvARBFunPtr
+
+glVertexAttrib1fvARBFunPtr :: FunPtr (GLuint -> Ptr GLfloat -> IO ())
+glVertexAttrib1fvARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib1fvARB")
+
+{-# NOINLINE glVertexAttrib1fvARBFunPtr #-}
+
+glVertexAttrib1sARB :: MonadIO m => GLuint -> GLshort -> m ()
+glVertexAttrib1sARB = ffiuintshortIOV glVertexAttrib1sARBFunPtr
+
+glVertexAttrib1sARBFunPtr :: FunPtr (GLuint -> GLshort -> IO ())
+glVertexAttrib1sARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib1sARB")
+
+{-# NOINLINE glVertexAttrib1sARBFunPtr #-}
+
+glVertexAttrib1svARB :: MonadIO m => GLuint -> Ptr GLshort -> m ()
+glVertexAttrib1svARB = ffiuintPtrshortIOV glVertexAttrib1svARBFunPtr
+
+glVertexAttrib1svARBFunPtr :: FunPtr (GLuint -> Ptr GLshort -> IO ())
+glVertexAttrib1svARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib1svARB")
+
+{-# NOINLINE glVertexAttrib1svARBFunPtr #-}
+
+glVertexAttrib2dARB :: MonadIO m => GLuint -> GLdouble -> GLdouble -> m ()
+glVertexAttrib2dARB = ffiuintdoubledoubleIOV glVertexAttrib2dARBFunPtr
+
+glVertexAttrib2dARBFunPtr :: FunPtr (GLuint -> GLdouble -> GLdouble -> IO ())
+glVertexAttrib2dARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib2dARB")
+
+{-# NOINLINE glVertexAttrib2dARBFunPtr #-}
+
+glVertexAttrib2dvARB :: MonadIO m => GLuint -> Ptr GLdouble -> m ()
+glVertexAttrib2dvARB = ffiuintPtrdoubleIOV glVertexAttrib2dvARBFunPtr
+
+glVertexAttrib2dvARBFunPtr :: FunPtr (GLuint -> Ptr GLdouble -> IO ())
+glVertexAttrib2dvARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib2dvARB")
+
+{-# NOINLINE glVertexAttrib2dvARBFunPtr #-}
+
+glVertexAttrib2fARB :: MonadIO m => GLuint -> GLfloat -> GLfloat -> m ()
+glVertexAttrib2fARB = ffiuintfloatfloatIOV glVertexAttrib2fARBFunPtr
+
+glVertexAttrib2fARBFunPtr :: FunPtr (GLuint -> GLfloat -> GLfloat -> IO ())
+glVertexAttrib2fARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib2fARB")
+
+{-# NOINLINE glVertexAttrib2fARBFunPtr #-}
+
+glVertexAttrib2fvARB :: MonadIO m => GLuint -> Ptr GLfloat -> m ()
+glVertexAttrib2fvARB = ffiuintPtrfloatIOV glVertexAttrib2fvARBFunPtr
+
+glVertexAttrib2fvARBFunPtr :: FunPtr (GLuint -> Ptr GLfloat -> IO ())
+glVertexAttrib2fvARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib2fvARB")
+
+{-# NOINLINE glVertexAttrib2fvARBFunPtr #-}
+
+glVertexAttrib2sARB :: MonadIO m => GLuint -> GLshort -> GLshort -> m ()
+glVertexAttrib2sARB = ffiuintshortshortIOV glVertexAttrib2sARBFunPtr
+
+glVertexAttrib2sARBFunPtr :: FunPtr (GLuint -> GLshort -> GLshort -> IO ())
+glVertexAttrib2sARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib2sARB")
+
+{-# NOINLINE glVertexAttrib2sARBFunPtr #-}
+
+glVertexAttrib2svARB :: MonadIO m => GLuint -> Ptr GLshort -> m ()
+glVertexAttrib2svARB = ffiuintPtrshortIOV glVertexAttrib2svARBFunPtr
+
+glVertexAttrib2svARBFunPtr :: FunPtr (GLuint -> Ptr GLshort -> IO ())
+glVertexAttrib2svARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib2svARB")
+
+{-# NOINLINE glVertexAttrib2svARBFunPtr #-}
+
+glVertexAttrib3dARB :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> m ()
+glVertexAttrib3dARB = ffiuintdoubledoubledoubleIOV glVertexAttrib3dARBFunPtr
+
+glVertexAttrib3dARBFunPtr :: FunPtr (GLuint -> GLdouble -> GLdouble -> GLdouble -> IO ())
+glVertexAttrib3dARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib3dARB")
+
+{-# NOINLINE glVertexAttrib3dARBFunPtr #-}
+
+glVertexAttrib3dvARB :: MonadIO m => GLuint -> Ptr GLdouble -> m ()
+glVertexAttrib3dvARB = ffiuintPtrdoubleIOV glVertexAttrib3dvARBFunPtr
+
+glVertexAttrib3dvARBFunPtr :: FunPtr (GLuint -> Ptr GLdouble -> IO ())
+glVertexAttrib3dvARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib3dvARB")
+
+{-# NOINLINE glVertexAttrib3dvARBFunPtr #-}
+
+glVertexAttrib3fARB :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> m ()
+glVertexAttrib3fARB = ffiuintfloatfloatfloatIOV glVertexAttrib3fARBFunPtr
+
+glVertexAttrib3fARBFunPtr :: FunPtr (GLuint -> GLfloat -> GLfloat -> GLfloat -> IO ())
+glVertexAttrib3fARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib3fARB")
+
+{-# NOINLINE glVertexAttrib3fARBFunPtr #-}
+
+glVertexAttrib3fvARB :: MonadIO m => GLuint -> Ptr GLfloat -> m ()
+glVertexAttrib3fvARB = ffiuintPtrfloatIOV glVertexAttrib3fvARBFunPtr
+
+glVertexAttrib3fvARBFunPtr :: FunPtr (GLuint -> Ptr GLfloat -> IO ())
+glVertexAttrib3fvARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib3fvARB")
+
+{-# NOINLINE glVertexAttrib3fvARBFunPtr #-}
+
+glVertexAttrib3sARB :: MonadIO m => GLuint -> GLshort -> GLshort -> GLshort -> m ()
+glVertexAttrib3sARB = ffiuintshortshortshortIOV glVertexAttrib3sARBFunPtr
+
+glVertexAttrib3sARBFunPtr :: FunPtr (GLuint -> GLshort -> GLshort -> GLshort -> IO ())
+glVertexAttrib3sARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib3sARB")
+
+{-# NOINLINE glVertexAttrib3sARBFunPtr #-}
+
+glVertexAttrib3svARB :: MonadIO m => GLuint -> Ptr GLshort -> m ()
+glVertexAttrib3svARB = ffiuintPtrshortIOV glVertexAttrib3svARBFunPtr
+
+glVertexAttrib3svARBFunPtr :: FunPtr (GLuint -> Ptr GLshort -> IO ())
+glVertexAttrib3svARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib3svARB")
+
+{-# NOINLINE glVertexAttrib3svARBFunPtr #-}
+
+glVertexAttrib4NbvARB :: MonadIO m => GLuint -> Ptr GLbyte -> m ()
+glVertexAttrib4NbvARB = ffiuintPtrbyteIOV glVertexAttrib4NbvARBFunPtr
+
+glVertexAttrib4NbvARBFunPtr :: FunPtr (GLuint -> Ptr GLbyte -> IO ())
+glVertexAttrib4NbvARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4NbvARB")
+
+{-# NOINLINE glVertexAttrib4NbvARBFunPtr #-}
+
+glVertexAttrib4NivARB :: MonadIO m => GLuint -> Ptr GLint -> m ()
+glVertexAttrib4NivARB = ffiuintPtrintIOV glVertexAttrib4NivARBFunPtr
+
+glVertexAttrib4NivARBFunPtr :: FunPtr (GLuint -> Ptr GLint -> IO ())
+glVertexAttrib4NivARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4NivARB")
+
+{-# NOINLINE glVertexAttrib4NivARBFunPtr #-}
+
+glVertexAttrib4NsvARB :: MonadIO m => GLuint -> Ptr GLshort -> m ()
+glVertexAttrib4NsvARB = ffiuintPtrshortIOV glVertexAttrib4NsvARBFunPtr
+
+glVertexAttrib4NsvARBFunPtr :: FunPtr (GLuint -> Ptr GLshort -> IO ())
+glVertexAttrib4NsvARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4NsvARB")
+
+{-# NOINLINE glVertexAttrib4NsvARBFunPtr #-}
+
+glVertexAttrib4NubARB :: MonadIO m => GLuint -> GLubyte -> GLubyte -> GLubyte -> GLubyte -> m ()
+glVertexAttrib4NubARB = ffiuintubyteubyteubyteubyteIOV glVertexAttrib4NubARBFunPtr
+
+glVertexAttrib4NubARBFunPtr :: FunPtr (GLuint -> GLubyte -> GLubyte -> GLubyte -> GLubyte -> IO ())
+glVertexAttrib4NubARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4NubARB")
+
+{-# NOINLINE glVertexAttrib4NubARBFunPtr #-}
+
+glVertexAttrib4NubvARB :: MonadIO m => GLuint -> Ptr GLubyte -> m ()
+glVertexAttrib4NubvARB = ffiuintPtrubyteIOV glVertexAttrib4NubvARBFunPtr
+
+glVertexAttrib4NubvARBFunPtr :: FunPtr (GLuint -> Ptr GLubyte -> IO ())
+glVertexAttrib4NubvARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4NubvARB")
+
+{-# NOINLINE glVertexAttrib4NubvARBFunPtr #-}
+
+glVertexAttrib4NuivARB :: MonadIO m => GLuint -> Ptr GLuint -> m ()
+glVertexAttrib4NuivARB = ffiuintPtruintIOV glVertexAttrib4NuivARBFunPtr
+
+glVertexAttrib4NuivARBFunPtr :: FunPtr (GLuint -> Ptr GLuint -> IO ())
+glVertexAttrib4NuivARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4NuivARB")
+
+{-# NOINLINE glVertexAttrib4NuivARBFunPtr #-}
+
+glVertexAttrib4NusvARB :: MonadIO m => GLuint -> Ptr GLushort -> m ()
+glVertexAttrib4NusvARB = ffiuintPtrushortIOV glVertexAttrib4NusvARBFunPtr
+
+glVertexAttrib4NusvARBFunPtr :: FunPtr (GLuint -> Ptr GLushort -> IO ())
+glVertexAttrib4NusvARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4NusvARB")
+
+{-# NOINLINE glVertexAttrib4NusvARBFunPtr #-}
+
+glVertexAttrib4bvARB :: MonadIO m => GLuint -> Ptr GLbyte -> m ()
+glVertexAttrib4bvARB = ffiuintPtrbyteIOV glVertexAttrib4bvARBFunPtr
+
+glVertexAttrib4bvARBFunPtr :: FunPtr (GLuint -> Ptr GLbyte -> IO ())
+glVertexAttrib4bvARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4bvARB")
+
+{-# NOINLINE glVertexAttrib4bvARBFunPtr #-}
+
+glVertexAttrib4dARB :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
+glVertexAttrib4dARB = ffiuintdoubledoubledoubledoubleIOV glVertexAttrib4dARBFunPtr
+
+glVertexAttrib4dARBFunPtr :: FunPtr (GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
+glVertexAttrib4dARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4dARB")
+
+{-# NOINLINE glVertexAttrib4dARBFunPtr #-}
+
+glVertexAttrib4dvARB :: MonadIO m => GLuint -> Ptr GLdouble -> m ()
+glVertexAttrib4dvARB = ffiuintPtrdoubleIOV glVertexAttrib4dvARBFunPtr
+
+glVertexAttrib4dvARBFunPtr :: FunPtr (GLuint -> Ptr GLdouble -> IO ())
+glVertexAttrib4dvARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4dvARB")
+
+{-# NOINLINE glVertexAttrib4dvARBFunPtr #-}
+
+glVertexAttrib4fARB :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
+glVertexAttrib4fARB = ffiuintfloatfloatfloatfloatIOV glVertexAttrib4fARBFunPtr
+
+glVertexAttrib4fARBFunPtr :: FunPtr (GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+glVertexAttrib4fARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4fARB")
+
+{-# NOINLINE glVertexAttrib4fARBFunPtr #-}
+
+glVertexAttrib4fvARB :: MonadIO m => GLuint -> Ptr GLfloat -> m ()
+glVertexAttrib4fvARB = ffiuintPtrfloatIOV glVertexAttrib4fvARBFunPtr
+
+glVertexAttrib4fvARBFunPtr :: FunPtr (GLuint -> Ptr GLfloat -> IO ())
+glVertexAttrib4fvARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4fvARB")
+
+{-# NOINLINE glVertexAttrib4fvARBFunPtr #-}
+
+glVertexAttrib4ivARB :: MonadIO m => GLuint -> Ptr GLint -> m ()
+glVertexAttrib4ivARB = ffiuintPtrintIOV glVertexAttrib4ivARBFunPtr
+
+glVertexAttrib4ivARBFunPtr :: FunPtr (GLuint -> Ptr GLint -> IO ())
+glVertexAttrib4ivARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4ivARB")
+
+{-# NOINLINE glVertexAttrib4ivARBFunPtr #-}
+
+glVertexAttrib4sARB :: MonadIO m => GLuint -> GLshort -> GLshort -> GLshort -> GLshort -> m ()
+glVertexAttrib4sARB = ffiuintshortshortshortshortIOV glVertexAttrib4sARBFunPtr
+
+glVertexAttrib4sARBFunPtr :: FunPtr (GLuint -> GLshort -> GLshort -> GLshort -> GLshort -> IO ())
+glVertexAttrib4sARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4sARB")
+
+{-# NOINLINE glVertexAttrib4sARBFunPtr #-}
+
+glVertexAttrib4svARB :: MonadIO m => GLuint -> Ptr GLshort -> m ()
+glVertexAttrib4svARB = ffiuintPtrshortIOV glVertexAttrib4svARBFunPtr
+
+glVertexAttrib4svARBFunPtr :: FunPtr (GLuint -> Ptr GLshort -> IO ())
+glVertexAttrib4svARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4svARB")
+
+{-# NOINLINE glVertexAttrib4svARBFunPtr #-}
+
+glVertexAttrib4ubvARB :: MonadIO m => GLuint -> Ptr GLubyte -> m ()
+glVertexAttrib4ubvARB = ffiuintPtrubyteIOV glVertexAttrib4ubvARBFunPtr
+
+glVertexAttrib4ubvARBFunPtr :: FunPtr (GLuint -> Ptr GLubyte -> IO ())
+glVertexAttrib4ubvARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4ubvARB")
+
+{-# NOINLINE glVertexAttrib4ubvARBFunPtr #-}
+
+glVertexAttrib4uivARB :: MonadIO m => GLuint -> Ptr GLuint -> m ()
+glVertexAttrib4uivARB = ffiuintPtruintIOV glVertexAttrib4uivARBFunPtr
+
+glVertexAttrib4uivARBFunPtr :: FunPtr (GLuint -> Ptr GLuint -> IO ())
+glVertexAttrib4uivARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4uivARB")
+
+{-# NOINLINE glVertexAttrib4uivARBFunPtr #-}
+
+glVertexAttrib4usvARB :: MonadIO m => GLuint -> Ptr GLushort -> m ()
+glVertexAttrib4usvARB = ffiuintPtrushortIOV glVertexAttrib4usvARBFunPtr
+
+glVertexAttrib4usvARBFunPtr :: FunPtr (GLuint -> Ptr GLushort -> IO ())
+glVertexAttrib4usvARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4usvARB")
+
+{-# NOINLINE glVertexAttrib4usvARBFunPtr #-}
+
+glVertexAttribPointerARB :: MonadIO m => GLuint -> GLint -> GLenum -> GLboolean -> GLsizei -> Ptr () -> m ()
+glVertexAttribPointerARB = ffiuintintenumbooleansizeiPtrVIOV glVertexAttribPointerARBFunPtr
+
+glVertexAttribPointerARBFunPtr :: FunPtr (GLuint -> GLint -> GLenum -> GLboolean -> GLsizei -> Ptr () -> IO ())
+glVertexAttribPointerARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttribPointerARB")
+
+{-# NOINLINE glVertexAttribPointerARBFunPtr #-}
+
+pattern GL_CURRENT_VERTEX_ATTRIB_ARB = 0x8626
+
+pattern GL_MAX_VERTEX_ATTRIBS_ARB = 0x8869
+
+pattern GL_VERTEX_ATTRIB_ARRAY_ENABLED_ARB = 0x8622
+
+pattern GL_VERTEX_ATTRIB_ARRAY_NORMALIZED_ARB = 0x886A
+
+pattern GL_VERTEX_ATTRIB_ARRAY_POINTER_ARB = 0x8645
+
+pattern GL_VERTEX_ATTRIB_ARRAY_SIZE_ARB = 0x8623
+
+pattern GL_VERTEX_ATTRIB_ARRAY_STRIDE_ARB = 0x8624
+
+pattern GL_VERTEX_ATTRIB_ARRAY_TYPE_ARB = 0x8625
+
+pattern GL_VERTEX_PROGRAM_POINT_SIZE_ARB = 0x8642
+
+pattern GL_VERTEX_PROGRAM_TWO_SIDE_ARB = 0x8643
+
+pattern GL_FLOAT = 0x1406
+
+pattern GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB = 0x8B4C
+
+pattern GL_UNSIGNED_INT_10F_11F_11F_REV = 0x8C3B
+
+glColorP3ui :: MonadIO m => GLenum -> GLuint -> m ()
+glColorP3ui = ffienumuintIOV glColorP3uiFunPtr
+
+glColorP3uiFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
+glColorP3uiFunPtr = unsafePerformIO (getProcAddress "glColorP3ui")
+
+{-# NOINLINE glColorP3uiFunPtr #-}
+
+glColorP3uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
+glColorP3uiv = ffienumPtruintIOV glColorP3uivFunPtr
+
+glColorP3uivFunPtr :: FunPtr (GLenum -> Ptr GLuint -> IO ())
+glColorP3uivFunPtr = unsafePerformIO (getProcAddress "glColorP3uiv")
+
+{-# NOINLINE glColorP3uivFunPtr #-}
+
+glColorP4ui :: MonadIO m => GLenum -> GLuint -> m ()
+glColorP4ui = ffienumuintIOV glColorP4uiFunPtr
+
+glColorP4uiFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
+glColorP4uiFunPtr = unsafePerformIO (getProcAddress "glColorP4ui")
+
+{-# NOINLINE glColorP4uiFunPtr #-}
+
+glColorP4uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
+glColorP4uiv = ffienumPtruintIOV glColorP4uivFunPtr
+
+glColorP4uivFunPtr :: FunPtr (GLenum -> Ptr GLuint -> IO ())
+glColorP4uivFunPtr = unsafePerformIO (getProcAddress "glColorP4uiv")
+
+{-# NOINLINE glColorP4uivFunPtr #-}
+
+glMultiTexCoordP1ui :: MonadIO m => GLenum -> GLenum -> GLuint -> m ()
+glMultiTexCoordP1ui = ffienumenumuintIOV glMultiTexCoordP1uiFunPtr
+
+glMultiTexCoordP1uiFunPtr :: FunPtr (GLenum -> GLenum -> GLuint -> IO ())
+glMultiTexCoordP1uiFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoordP1ui")
+
+{-# NOINLINE glMultiTexCoordP1uiFunPtr #-}
+
+glMultiTexCoordP1uiv :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()
+glMultiTexCoordP1uiv = ffienumenumPtruintIOV glMultiTexCoordP1uivFunPtr
+
+glMultiTexCoordP1uivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLuint -> IO ())
+glMultiTexCoordP1uivFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoordP1uiv")
+
+{-# NOINLINE glMultiTexCoordP1uivFunPtr #-}
+
+glMultiTexCoordP2ui :: MonadIO m => GLenum -> GLenum -> GLuint -> m ()
+glMultiTexCoordP2ui = ffienumenumuintIOV glMultiTexCoordP2uiFunPtr
+
+glMultiTexCoordP2uiFunPtr :: FunPtr (GLenum -> GLenum -> GLuint -> IO ())
+glMultiTexCoordP2uiFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoordP2ui")
+
+{-# NOINLINE glMultiTexCoordP2uiFunPtr #-}
+
+glMultiTexCoordP2uiv :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()
+glMultiTexCoordP2uiv = ffienumenumPtruintIOV glMultiTexCoordP2uivFunPtr
+
+glMultiTexCoordP2uivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLuint -> IO ())
+glMultiTexCoordP2uivFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoordP2uiv")
+
+{-# NOINLINE glMultiTexCoordP2uivFunPtr #-}
+
+glMultiTexCoordP3ui :: MonadIO m => GLenum -> GLenum -> GLuint -> m ()
+glMultiTexCoordP3ui = ffienumenumuintIOV glMultiTexCoordP3uiFunPtr
+
+glMultiTexCoordP3uiFunPtr :: FunPtr (GLenum -> GLenum -> GLuint -> IO ())
+glMultiTexCoordP3uiFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoordP3ui")
+
+{-# NOINLINE glMultiTexCoordP3uiFunPtr #-}
+
+glMultiTexCoordP3uiv :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()
+glMultiTexCoordP3uiv = ffienumenumPtruintIOV glMultiTexCoordP3uivFunPtr
+
+glMultiTexCoordP3uivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLuint -> IO ())
+glMultiTexCoordP3uivFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoordP3uiv")
+
+{-# NOINLINE glMultiTexCoordP3uivFunPtr #-}
+
+glMultiTexCoordP4ui :: MonadIO m => GLenum -> GLenum -> GLuint -> m ()
+glMultiTexCoordP4ui = ffienumenumuintIOV glMultiTexCoordP4uiFunPtr
+
+glMultiTexCoordP4uiFunPtr :: FunPtr (GLenum -> GLenum -> GLuint -> IO ())
+glMultiTexCoordP4uiFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoordP4ui")
+
+{-# NOINLINE glMultiTexCoordP4uiFunPtr #-}
+
+glMultiTexCoordP4uiv :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()
+glMultiTexCoordP4uiv = ffienumenumPtruintIOV glMultiTexCoordP4uivFunPtr
+
+glMultiTexCoordP4uivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLuint -> IO ())
+glMultiTexCoordP4uivFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoordP4uiv")
+
+{-# NOINLINE glMultiTexCoordP4uivFunPtr #-}
+
+glNormalP3ui :: MonadIO m => GLenum -> GLuint -> m ()
+glNormalP3ui = ffienumuintIOV glNormalP3uiFunPtr
+
+glNormalP3uiFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
+glNormalP3uiFunPtr = unsafePerformIO (getProcAddress "glNormalP3ui")
+
+{-# NOINLINE glNormalP3uiFunPtr #-}
+
+glNormalP3uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
+glNormalP3uiv = ffienumPtruintIOV glNormalP3uivFunPtr
+
+glNormalP3uivFunPtr :: FunPtr (GLenum -> Ptr GLuint -> IO ())
+glNormalP3uivFunPtr = unsafePerformIO (getProcAddress "glNormalP3uiv")
+
+{-# NOINLINE glNormalP3uivFunPtr #-}
+
+glSecondaryColorP3ui :: MonadIO m => GLenum -> GLuint -> m ()
+glSecondaryColorP3ui = ffienumuintIOV glSecondaryColorP3uiFunPtr
+
+glSecondaryColorP3uiFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
+glSecondaryColorP3uiFunPtr = unsafePerformIO (getProcAddress "glSecondaryColorP3ui")
+
+{-# NOINLINE glSecondaryColorP3uiFunPtr #-}
+
+glSecondaryColorP3uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
+glSecondaryColorP3uiv = ffienumPtruintIOV glSecondaryColorP3uivFunPtr
+
+glSecondaryColorP3uivFunPtr :: FunPtr (GLenum -> Ptr GLuint -> IO ())
+glSecondaryColorP3uivFunPtr = unsafePerformIO (getProcAddress "glSecondaryColorP3uiv")
+
+{-# NOINLINE glSecondaryColorP3uivFunPtr #-}
+
+glTexCoordP1ui :: MonadIO m => GLenum -> GLuint -> m ()
+glTexCoordP1ui = ffienumuintIOV glTexCoordP1uiFunPtr
+
+glTexCoordP1uiFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
+glTexCoordP1uiFunPtr = unsafePerformIO (getProcAddress "glTexCoordP1ui")
+
+{-# NOINLINE glTexCoordP1uiFunPtr #-}
+
+glTexCoordP1uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
+glTexCoordP1uiv = ffienumPtruintIOV glTexCoordP1uivFunPtr
+
+glTexCoordP1uivFunPtr :: FunPtr (GLenum -> Ptr GLuint -> IO ())
+glTexCoordP1uivFunPtr = unsafePerformIO (getProcAddress "glTexCoordP1uiv")
+
+{-# NOINLINE glTexCoordP1uivFunPtr #-}
+
+glTexCoordP2ui :: MonadIO m => GLenum -> GLuint -> m ()
+glTexCoordP2ui = ffienumuintIOV glTexCoordP2uiFunPtr
+
+glTexCoordP2uiFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
+glTexCoordP2uiFunPtr = unsafePerformIO (getProcAddress "glTexCoordP2ui")
+
+{-# NOINLINE glTexCoordP2uiFunPtr #-}
+
+glTexCoordP2uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
+glTexCoordP2uiv = ffienumPtruintIOV glTexCoordP2uivFunPtr
+
+glTexCoordP2uivFunPtr :: FunPtr (GLenum -> Ptr GLuint -> IO ())
+glTexCoordP2uivFunPtr = unsafePerformIO (getProcAddress "glTexCoordP2uiv")
+
+{-# NOINLINE glTexCoordP2uivFunPtr #-}
+
+glTexCoordP3ui :: MonadIO m => GLenum -> GLuint -> m ()
+glTexCoordP3ui = ffienumuintIOV glTexCoordP3uiFunPtr
+
+glTexCoordP3uiFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
+glTexCoordP3uiFunPtr = unsafePerformIO (getProcAddress "glTexCoordP3ui")
+
+{-# NOINLINE glTexCoordP3uiFunPtr #-}
+
+glTexCoordP3uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
+glTexCoordP3uiv = ffienumPtruintIOV glTexCoordP3uivFunPtr
+
+glTexCoordP3uivFunPtr :: FunPtr (GLenum -> Ptr GLuint -> IO ())
+glTexCoordP3uivFunPtr = unsafePerformIO (getProcAddress "glTexCoordP3uiv")
+
+{-# NOINLINE glTexCoordP3uivFunPtr #-}
+
+glTexCoordP4ui :: MonadIO m => GLenum -> GLuint -> m ()
+glTexCoordP4ui = ffienumuintIOV glTexCoordP4uiFunPtr
+
+glTexCoordP4uiFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
+glTexCoordP4uiFunPtr = unsafePerformIO (getProcAddress "glTexCoordP4ui")
+
+{-# NOINLINE glTexCoordP4uiFunPtr #-}
+
+glTexCoordP4uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
+glTexCoordP4uiv = ffienumPtruintIOV glTexCoordP4uivFunPtr
+
+glTexCoordP4uivFunPtr :: FunPtr (GLenum -> Ptr GLuint -> IO ())
+glTexCoordP4uivFunPtr = unsafePerformIO (getProcAddress "glTexCoordP4uiv")
+
+{-# NOINLINE glTexCoordP4uivFunPtr #-}
+
+glVertexAttribP1ui :: MonadIO m => GLuint -> GLenum -> GLboolean -> GLuint -> m ()
+glVertexAttribP1ui = ffiuintenumbooleanuintIOV glVertexAttribP1uiFunPtr
+
+glVertexAttribP1uiFunPtr :: FunPtr (GLuint -> GLenum -> GLboolean -> GLuint -> IO ())
+glVertexAttribP1uiFunPtr = unsafePerformIO (getProcAddress "glVertexAttribP1ui")
+
+{-# NOINLINE glVertexAttribP1uiFunPtr #-}
+
+glVertexAttribP1uiv :: MonadIO m => GLuint -> GLenum -> GLboolean -> Ptr GLuint -> m ()
+glVertexAttribP1uiv = ffiuintenumbooleanPtruintIOV glVertexAttribP1uivFunPtr
+
+glVertexAttribP1uivFunPtr :: FunPtr (GLuint -> GLenum -> GLboolean -> Ptr GLuint -> IO ())
+glVertexAttribP1uivFunPtr = unsafePerformIO (getProcAddress "glVertexAttribP1uiv")
+
+{-# NOINLINE glVertexAttribP1uivFunPtr #-}
+
+glVertexAttribP2ui :: MonadIO m => GLuint -> GLenum -> GLboolean -> GLuint -> m ()
+glVertexAttribP2ui = ffiuintenumbooleanuintIOV glVertexAttribP2uiFunPtr
+
+glVertexAttribP2uiFunPtr :: FunPtr (GLuint -> GLenum -> GLboolean -> GLuint -> IO ())
+glVertexAttribP2uiFunPtr = unsafePerformIO (getProcAddress "glVertexAttribP2ui")
+
+{-# NOINLINE glVertexAttribP2uiFunPtr #-}
+
+glVertexAttribP2uiv :: MonadIO m => GLuint -> GLenum -> GLboolean -> Ptr GLuint -> m ()
+glVertexAttribP2uiv = ffiuintenumbooleanPtruintIOV glVertexAttribP2uivFunPtr
+
+glVertexAttribP2uivFunPtr :: FunPtr (GLuint -> GLenum -> GLboolean -> Ptr GLuint -> IO ())
+glVertexAttribP2uivFunPtr = unsafePerformIO (getProcAddress "glVertexAttribP2uiv")
+
+{-# NOINLINE glVertexAttribP2uivFunPtr #-}
+
+glVertexAttribP3ui :: MonadIO m => GLuint -> GLenum -> GLboolean -> GLuint -> m ()
+glVertexAttribP3ui = ffiuintenumbooleanuintIOV glVertexAttribP3uiFunPtr
+
+glVertexAttribP3uiFunPtr :: FunPtr (GLuint -> GLenum -> GLboolean -> GLuint -> IO ())
+glVertexAttribP3uiFunPtr = unsafePerformIO (getProcAddress "glVertexAttribP3ui")
+
+{-# NOINLINE glVertexAttribP3uiFunPtr #-}
+
+glVertexAttribP3uiv :: MonadIO m => GLuint -> GLenum -> GLboolean -> Ptr GLuint -> m ()
+glVertexAttribP3uiv = ffiuintenumbooleanPtruintIOV glVertexAttribP3uivFunPtr
+
+glVertexAttribP3uivFunPtr :: FunPtr (GLuint -> GLenum -> GLboolean -> Ptr GLuint -> IO ())
+glVertexAttribP3uivFunPtr = unsafePerformIO (getProcAddress "glVertexAttribP3uiv")
+
+{-# NOINLINE glVertexAttribP3uivFunPtr #-}
+
+glVertexAttribP4ui :: MonadIO m => GLuint -> GLenum -> GLboolean -> GLuint -> m ()
+glVertexAttribP4ui = ffiuintenumbooleanuintIOV glVertexAttribP4uiFunPtr
+
+glVertexAttribP4uiFunPtr :: FunPtr (GLuint -> GLenum -> GLboolean -> GLuint -> IO ())
+glVertexAttribP4uiFunPtr = unsafePerformIO (getProcAddress "glVertexAttribP4ui")
+
+{-# NOINLINE glVertexAttribP4uiFunPtr #-}
+
+glVertexAttribP4uiv :: MonadIO m => GLuint -> GLenum -> GLboolean -> Ptr GLuint -> m ()
+glVertexAttribP4uiv = ffiuintenumbooleanPtruintIOV glVertexAttribP4uivFunPtr
+
+glVertexAttribP4uivFunPtr :: FunPtr (GLuint -> GLenum -> GLboolean -> Ptr GLuint -> IO ())
+glVertexAttribP4uivFunPtr = unsafePerformIO (getProcAddress "glVertexAttribP4uiv")
+
+{-# NOINLINE glVertexAttribP4uivFunPtr #-}
+
+glVertexP2ui :: MonadIO m => GLenum -> GLuint -> m ()
+glVertexP2ui = ffienumuintIOV glVertexP2uiFunPtr
+
+glVertexP2uiFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
+glVertexP2uiFunPtr = unsafePerformIO (getProcAddress "glVertexP2ui")
+
+{-# NOINLINE glVertexP2uiFunPtr #-}
+
+glVertexP2uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
+glVertexP2uiv = ffienumPtruintIOV glVertexP2uivFunPtr
+
+glVertexP2uivFunPtr :: FunPtr (GLenum -> Ptr GLuint -> IO ())
+glVertexP2uivFunPtr = unsafePerformIO (getProcAddress "glVertexP2uiv")
+
+{-# NOINLINE glVertexP2uivFunPtr #-}
+
+glVertexP3ui :: MonadIO m => GLenum -> GLuint -> m ()
+glVertexP3ui = ffienumuintIOV glVertexP3uiFunPtr
+
+glVertexP3uiFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
+glVertexP3uiFunPtr = unsafePerformIO (getProcAddress "glVertexP3ui")
+
+{-# NOINLINE glVertexP3uiFunPtr #-}
+
+glVertexP3uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
+glVertexP3uiv = ffienumPtruintIOV glVertexP3uivFunPtr
+
+glVertexP3uivFunPtr :: FunPtr (GLenum -> Ptr GLuint -> IO ())
+glVertexP3uivFunPtr = unsafePerformIO (getProcAddress "glVertexP3uiv")
+
+{-# NOINLINE glVertexP3uivFunPtr #-}
+
+glVertexP4ui :: MonadIO m => GLenum -> GLuint -> m ()
+glVertexP4ui = ffienumuintIOV glVertexP4uiFunPtr
+
+glVertexP4uiFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
+glVertexP4uiFunPtr = unsafePerformIO (getProcAddress "glVertexP4ui")
+
+{-# NOINLINE glVertexP4uiFunPtr #-}
+
+glVertexP4uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
+glVertexP4uiv = ffienumPtruintIOV glVertexP4uivFunPtr
+
+glVertexP4uivFunPtr :: FunPtr (GLenum -> Ptr GLuint -> IO ())
+glVertexP4uivFunPtr = unsafePerformIO (getProcAddress "glVertexP4uiv")
+
+{-# NOINLINE glVertexP4uivFunPtr #-}
+
+pattern GL_INT_2_10_10_10_REV = 0x8D9F
+
+pattern GL_UNSIGNED_INT_2_10_10_10_REV = 0x8368
+
+glDepthRangeArrayv :: MonadIO m => GLuint -> GLsizei -> Ptr GLdouble -> m ()
+glDepthRangeArrayv = ffiuintsizeiPtrdoubleIOV glDepthRangeArrayvFunPtr
+
+glDepthRangeArrayvFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLdouble -> IO ())
+glDepthRangeArrayvFunPtr = unsafePerformIO (getProcAddress "glDepthRangeArrayv")
+
+{-# NOINLINE glDepthRangeArrayvFunPtr #-}
+
+glDepthRangeIndexed :: MonadIO m => GLuint -> GLdouble -> GLdouble -> m ()
+glDepthRangeIndexed = ffiuintdoubledoubleIOV glDepthRangeIndexedFunPtr
+
+glDepthRangeIndexedFunPtr :: FunPtr (GLuint -> GLdouble -> GLdouble -> IO ())
+glDepthRangeIndexedFunPtr = unsafePerformIO (getProcAddress "glDepthRangeIndexed")
+
+{-# NOINLINE glDepthRangeIndexedFunPtr #-}
+
+glGetDoublei_v :: MonadIO m => GLenum -> GLuint -> Ptr GLdouble -> m ()
+glGetDoublei_v = ffienumuintPtrdoubleIOV glGetDoublei_vFunPtr
+
+glGetDoublei_vFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLdouble -> IO ())
+glGetDoublei_vFunPtr = unsafePerformIO (getProcAddress "glGetDoublei_v")
+
+{-# NOINLINE glGetDoublei_vFunPtr #-}
+
+glGetFloati_v :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()
+glGetFloati_v = ffienumuintPtrfloatIOV glGetFloati_vFunPtr
+
+glGetFloati_vFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLfloat -> IO ())
+glGetFloati_vFunPtr = unsafePerformIO (getProcAddress "glGetFloati_v")
+
+{-# NOINLINE glGetFloati_vFunPtr #-}
+
+glScissorArrayv :: MonadIO m => GLuint -> GLsizei -> Ptr GLint -> m ()
+glScissorArrayv = ffiuintsizeiPtrintIOV glScissorArrayvFunPtr
+
+glScissorArrayvFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLint -> IO ())
+glScissorArrayvFunPtr = unsafePerformIO (getProcAddress "glScissorArrayv")
+
+{-# NOINLINE glScissorArrayvFunPtr #-}
+
+glScissorIndexed :: MonadIO m => GLuint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()
+glScissorIndexed = ffiuintintintsizeisizeiIOV glScissorIndexedFunPtr
+
+glScissorIndexedFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ())
+glScissorIndexedFunPtr = unsafePerformIO (getProcAddress "glScissorIndexed")
+
+{-# NOINLINE glScissorIndexedFunPtr #-}
+
+glScissorIndexedv :: MonadIO m => GLuint -> Ptr GLint -> m ()
+glScissorIndexedv = ffiuintPtrintIOV glScissorIndexedvFunPtr
+
+glScissorIndexedvFunPtr :: FunPtr (GLuint -> Ptr GLint -> IO ())
+glScissorIndexedvFunPtr = unsafePerformIO (getProcAddress "glScissorIndexedv")
+
+{-# NOINLINE glScissorIndexedvFunPtr #-}
+
+glViewportArrayv :: MonadIO m => GLuint -> GLsizei -> Ptr GLfloat -> m ()
+glViewportArrayv = ffiuintsizeiPtrfloatIOV glViewportArrayvFunPtr
+
+glViewportArrayvFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLfloat -> IO ())
+glViewportArrayvFunPtr = unsafePerformIO (getProcAddress "glViewportArrayv")
+
+{-# NOINLINE glViewportArrayvFunPtr #-}
+
+glViewportIndexedf :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
+glViewportIndexedf = ffiuintfloatfloatfloatfloatIOV glViewportIndexedfFunPtr
+
+glViewportIndexedfFunPtr :: FunPtr (GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+glViewportIndexedfFunPtr = unsafePerformIO (getProcAddress "glViewportIndexedf")
+
+{-# NOINLINE glViewportIndexedfFunPtr #-}
+
+glViewportIndexedfv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()
+glViewportIndexedfv = ffiuintPtrfloatIOV glViewportIndexedfvFunPtr
+
+glViewportIndexedfvFunPtr :: FunPtr (GLuint -> Ptr GLfloat -> IO ())
+glViewportIndexedfvFunPtr = unsafePerformIO (getProcAddress "glViewportIndexedfv")
+
+{-# NOINLINE glViewportIndexedfvFunPtr #-}
+
+pattern GL_DEPTH_RANGE = 0x0B70
+
+pattern GL_LAYER_PROVOKING_VERTEX = 0x825E
+
+pattern GL_MAX_VIEWPORTS = 0x825B
+
+pattern GL_SCISSOR_BOX = 0x0C10
+
+pattern GL_SCISSOR_TEST = 0x0C11
+
+pattern GL_UNDEFINED_VERTEX = 0x8260
+
+pattern GL_VIEWPORT = 0x0BA2
+
+pattern GL_VIEWPORT_BOUNDS_RANGE = 0x825D
+
+pattern GL_VIEWPORT_INDEX_PROVOKING_VERTEX = 0x825F
+
+pattern GL_VIEWPORT_SUBPIXEL_BITS = 0x825C
+
+pattern GL_R16F_EXT = 0x822D
+
+pattern GL_RG16F_EXT = 0x822F
+
+pattern GL_RGB16F_EXT = 0x881B
+
+pattern GL_RGBA16F_EXT = 0x881A
+
+pattern GL_SAMPLER = 0x82E6
+
+glDisableIndexedEXT :: MonadIO m => GLenum -> GLuint -> m ()
+glDisableIndexedEXT = ffienumuintIOV glDisableIndexedEXTFunPtr
+
+glDisableIndexedEXTFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
+glDisableIndexedEXTFunPtr = unsafePerformIO (getProcAddress "glDisableIndexedEXT")
+
+{-# NOINLINE glDisableIndexedEXTFunPtr #-}
+
+glEnableIndexedEXT :: MonadIO m => GLenum -> GLuint -> m ()
+glEnableIndexedEXT = ffienumuintIOV glEnableIndexedEXTFunPtr
+
+glEnableIndexedEXTFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
+glEnableIndexedEXTFunPtr = unsafePerformIO (getProcAddress "glEnableIndexedEXT")
+
+{-# NOINLINE glEnableIndexedEXTFunPtr #-}
+
+glGetBooleanIndexedvEXT :: MonadIO m => GLenum -> GLuint -> Ptr GLboolean -> m ()
+glGetBooleanIndexedvEXT = ffienumuintPtrbooleanIOV glGetBooleanIndexedvEXTFunPtr
+
+glGetBooleanIndexedvEXTFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLboolean -> IO ())
+glGetBooleanIndexedvEXTFunPtr = unsafePerformIO (getProcAddress "glGetBooleanIndexedvEXT")
+
+{-# NOINLINE glGetBooleanIndexedvEXTFunPtr #-}
+
+glGetIntegerIndexedvEXT :: MonadIO m => GLenum -> GLuint -> Ptr GLint -> m ()
+glGetIntegerIndexedvEXT = ffienumuintPtrintIOV glGetIntegerIndexedvEXTFunPtr
+
+glGetIntegerIndexedvEXTFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLint -> IO ())
+glGetIntegerIndexedvEXTFunPtr = unsafePerformIO (getProcAddress "glGetIntegerIndexedvEXT")
+
+{-# NOINLINE glGetIntegerIndexedvEXTFunPtr #-}
+
+glIsEnabledIndexedEXT :: MonadIO m => GLenum -> GLuint -> m GLboolean
+glIsEnabledIndexedEXT = ffienumuintIOboolean glIsEnabledIndexedEXTFunPtr
+
+glIsEnabledIndexedEXTFunPtr :: FunPtr (GLenum -> GLuint -> IO GLboolean)
+glIsEnabledIndexedEXTFunPtr = unsafePerformIO (getProcAddress "glIsEnabledIndexedEXT")
+
+{-# NOINLINE glIsEnabledIndexedEXTFunPtr #-}
+
+glProgramUniform1fEXT :: MonadIO m => GLuint -> GLint -> GLfloat -> m ()
+glProgramUniform1fEXT = ffiuintintfloatIOV glProgramUniform1fEXTFunPtr
+
+glProgramUniform1fEXTFunPtr :: FunPtr (GLuint -> GLint -> GLfloat -> IO ())
+glProgramUniform1fEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform1fEXT")
+
+{-# NOINLINE glProgramUniform1fEXTFunPtr #-}
+
+glProgramUniform1fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()
+glProgramUniform1fvEXT = ffiuintintsizeiPtrfloatIOV glProgramUniform1fvEXTFunPtr
+
+glProgramUniform1fvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLfloat -> IO ())
+glProgramUniform1fvEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform1fvEXT")
+
+{-# NOINLINE glProgramUniform1fvEXTFunPtr #-}
+
+glProgramUniform1iEXT :: MonadIO m => GLuint -> GLint -> GLint -> m ()
+glProgramUniform1iEXT = ffiuintintintIOV glProgramUniform1iEXTFunPtr
+
+glProgramUniform1iEXTFunPtr :: FunPtr (GLuint -> GLint -> GLint -> IO ())
+glProgramUniform1iEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform1iEXT")
+
+{-# NOINLINE glProgramUniform1iEXTFunPtr #-}
+
+glProgramUniform1ivEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()
+glProgramUniform1ivEXT = ffiuintintsizeiPtrintIOV glProgramUniform1ivEXTFunPtr
+
+glProgramUniform1ivEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint -> IO ())
+glProgramUniform1ivEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform1ivEXT")
+
+{-# NOINLINE glProgramUniform1ivEXTFunPtr #-}
+
+glProgramUniform1uiEXT :: MonadIO m => GLuint -> GLint -> GLuint -> m ()
+glProgramUniform1uiEXT = ffiuintintuintIOV glProgramUniform1uiEXTFunPtr
+
+glProgramUniform1uiEXTFunPtr :: FunPtr (GLuint -> GLint -> GLuint -> IO ())
+glProgramUniform1uiEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform1uiEXT")
+
+{-# NOINLINE glProgramUniform1uiEXTFunPtr #-}
+
+glProgramUniform1uivEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()
+glProgramUniform1uivEXT = ffiuintintsizeiPtruintIOV glProgramUniform1uivEXTFunPtr
+
+glProgramUniform1uivEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint -> IO ())
+glProgramUniform1uivEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform1uivEXT")
+
+{-# NOINLINE glProgramUniform1uivEXTFunPtr #-}
+
+glProgramUniform2fEXT :: MonadIO m => GLuint -> GLint -> GLfloat -> GLfloat -> m ()
+glProgramUniform2fEXT = ffiuintintfloatfloatIOV glProgramUniform2fEXTFunPtr
+
+glProgramUniform2fEXTFunPtr :: FunPtr (GLuint -> GLint -> GLfloat -> GLfloat -> IO ())
+glProgramUniform2fEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform2fEXT")
+
+{-# NOINLINE glProgramUniform2fEXTFunPtr #-}
+
+glProgramUniform2fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()
+glProgramUniform2fvEXT = ffiuintintsizeiPtrfloatIOV glProgramUniform2fvEXTFunPtr
+
+glProgramUniform2fvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLfloat -> IO ())
+glProgramUniform2fvEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform2fvEXT")
+
+{-# NOINLINE glProgramUniform2fvEXTFunPtr #-}
+
+glProgramUniform2iEXT :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> m ()
+glProgramUniform2iEXT = ffiuintintintintIOV glProgramUniform2iEXTFunPtr
+
+glProgramUniform2iEXTFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> IO ())
+glProgramUniform2iEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform2iEXT")
+
+{-# NOINLINE glProgramUniform2iEXTFunPtr #-}
+
+glProgramUniform2ivEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()
+glProgramUniform2ivEXT = ffiuintintsizeiPtrintIOV glProgramUniform2ivEXTFunPtr
+
+glProgramUniform2ivEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint -> IO ())
+glProgramUniform2ivEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform2ivEXT")
+
+{-# NOINLINE glProgramUniform2ivEXTFunPtr #-}
+
+glProgramUniform2uiEXT :: MonadIO m => GLuint -> GLint -> GLuint -> GLuint -> m ()
+glProgramUniform2uiEXT = ffiuintintuintuintIOV glProgramUniform2uiEXTFunPtr
+
+glProgramUniform2uiEXTFunPtr :: FunPtr (GLuint -> GLint -> GLuint -> GLuint -> IO ())
+glProgramUniform2uiEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform2uiEXT")
+
+{-# NOINLINE glProgramUniform2uiEXTFunPtr #-}
+
+glProgramUniform2uivEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()
+glProgramUniform2uivEXT = ffiuintintsizeiPtruintIOV glProgramUniform2uivEXTFunPtr
+
+glProgramUniform2uivEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint -> IO ())
+glProgramUniform2uivEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform2uivEXT")
+
+{-# NOINLINE glProgramUniform2uivEXTFunPtr #-}
+
+glProgramUniform3fEXT :: MonadIO m => GLuint -> GLint -> GLfloat -> GLfloat -> GLfloat -> m ()
+glProgramUniform3fEXT = ffiuintintfloatfloatfloatIOV glProgramUniform3fEXTFunPtr
+
+glProgramUniform3fEXTFunPtr :: FunPtr (GLuint -> GLint -> GLfloat -> GLfloat -> GLfloat -> IO ())
+glProgramUniform3fEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform3fEXT")
+
+{-# NOINLINE glProgramUniform3fEXTFunPtr #-}
+
+glProgramUniform3fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()
+glProgramUniform3fvEXT = ffiuintintsizeiPtrfloatIOV glProgramUniform3fvEXTFunPtr
+
+glProgramUniform3fvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLfloat -> IO ())
+glProgramUniform3fvEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform3fvEXT")
+
+{-# NOINLINE glProgramUniform3fvEXTFunPtr #-}
+
+glProgramUniform3iEXT :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> m ()
+glProgramUniform3iEXT = ffiuintintintintintIOV glProgramUniform3iEXTFunPtr
+
+glProgramUniform3iEXTFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> IO ())
+glProgramUniform3iEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform3iEXT")
+
+{-# NOINLINE glProgramUniform3iEXTFunPtr #-}
+
+glProgramUniform3ivEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()
+glProgramUniform3ivEXT = ffiuintintsizeiPtrintIOV glProgramUniform3ivEXTFunPtr
+
+glProgramUniform3ivEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint -> IO ())
+glProgramUniform3ivEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform3ivEXT")
+
+{-# NOINLINE glProgramUniform3ivEXTFunPtr #-}
+
+glProgramUniform3uiEXT :: MonadIO m => GLuint -> GLint -> GLuint -> GLuint -> GLuint -> m ()
+glProgramUniform3uiEXT = ffiuintintuintuintuintIOV glProgramUniform3uiEXTFunPtr
+
+glProgramUniform3uiEXTFunPtr :: FunPtr (GLuint -> GLint -> GLuint -> GLuint -> GLuint -> IO ())
+glProgramUniform3uiEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform3uiEXT")
+
+{-# NOINLINE glProgramUniform3uiEXTFunPtr #-}
+
+glProgramUniform3uivEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()
+glProgramUniform3uivEXT = ffiuintintsizeiPtruintIOV glProgramUniform3uivEXTFunPtr
+
+glProgramUniform3uivEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint -> IO ())
+glProgramUniform3uivEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform3uivEXT")
+
+{-# NOINLINE glProgramUniform3uivEXTFunPtr #-}
+
+glProgramUniform4fEXT :: MonadIO m => GLuint -> GLint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
+glProgramUniform4fEXT = ffiuintintfloatfloatfloatfloatIOV glProgramUniform4fEXTFunPtr
+
+glProgramUniform4fEXTFunPtr :: FunPtr (GLuint -> GLint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+glProgramUniform4fEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform4fEXT")
+
+{-# NOINLINE glProgramUniform4fEXTFunPtr #-}
+
+glProgramUniform4fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()
+glProgramUniform4fvEXT = ffiuintintsizeiPtrfloatIOV glProgramUniform4fvEXTFunPtr
+
+glProgramUniform4fvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLfloat -> IO ())
+glProgramUniform4fvEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform4fvEXT")
+
+{-# NOINLINE glProgramUniform4fvEXTFunPtr #-}
+
+glProgramUniform4iEXT :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> m ()
+glProgramUniform4iEXT = ffiuintintintintintintIOV glProgramUniform4iEXTFunPtr
+
+glProgramUniform4iEXTFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> IO ())
+glProgramUniform4iEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform4iEXT")
+
+{-# NOINLINE glProgramUniform4iEXTFunPtr #-}
+
+glProgramUniform4ivEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()
+glProgramUniform4ivEXT = ffiuintintsizeiPtrintIOV glProgramUniform4ivEXTFunPtr
+
+glProgramUniform4ivEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint -> IO ())
+glProgramUniform4ivEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform4ivEXT")
+
+{-# NOINLINE glProgramUniform4ivEXTFunPtr #-}
+
+glProgramUniform4uiEXT :: MonadIO m => GLuint -> GLint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
+glProgramUniform4uiEXT = ffiuintintuintuintuintuintIOV glProgramUniform4uiEXTFunPtr
+
+glProgramUniform4uiEXTFunPtr :: FunPtr (GLuint -> GLint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ())
+glProgramUniform4uiEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform4uiEXT")
+
+{-# NOINLINE glProgramUniform4uiEXTFunPtr #-}
+
+glProgramUniform4uivEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()
+glProgramUniform4uivEXT = ffiuintintsizeiPtruintIOV glProgramUniform4uivEXTFunPtr
+
+glProgramUniform4uivEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint -> IO ())
+glProgramUniform4uivEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform4uivEXT")
+
+{-# NOINLINE glProgramUniform4uivEXTFunPtr #-}
+
+glProgramUniformMatrix2fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
+glProgramUniformMatrix2fvEXT = ffiuintintsizeibooleanPtrfloatIOV glProgramUniformMatrix2fvEXTFunPtr
+
+glProgramUniformMatrix2fvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+glProgramUniformMatrix2fvEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix2fvEXT")
+
+{-# NOINLINE glProgramUniformMatrix2fvEXTFunPtr #-}
+
+glProgramUniformMatrix2x3fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
+glProgramUniformMatrix2x3fvEXT = ffiuintintsizeibooleanPtrfloatIOV glProgramUniformMatrix2x3fvEXTFunPtr
+
+glProgramUniformMatrix2x3fvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+glProgramUniformMatrix2x3fvEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix2x3fvEXT")
+
+{-# NOINLINE glProgramUniformMatrix2x3fvEXTFunPtr #-}
+
+glProgramUniformMatrix2x4fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
+glProgramUniformMatrix2x4fvEXT = ffiuintintsizeibooleanPtrfloatIOV glProgramUniformMatrix2x4fvEXTFunPtr
+
+glProgramUniformMatrix2x4fvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+glProgramUniformMatrix2x4fvEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix2x4fvEXT")
+
+{-# NOINLINE glProgramUniformMatrix2x4fvEXTFunPtr #-}
+
+glProgramUniformMatrix3fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
+glProgramUniformMatrix3fvEXT = ffiuintintsizeibooleanPtrfloatIOV glProgramUniformMatrix3fvEXTFunPtr
+
+glProgramUniformMatrix3fvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+glProgramUniformMatrix3fvEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix3fvEXT")
+
+{-# NOINLINE glProgramUniformMatrix3fvEXTFunPtr #-}
+
+glProgramUniformMatrix3x2fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
+glProgramUniformMatrix3x2fvEXT = ffiuintintsizeibooleanPtrfloatIOV glProgramUniformMatrix3x2fvEXTFunPtr
+
+glProgramUniformMatrix3x2fvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+glProgramUniformMatrix3x2fvEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix3x2fvEXT")
+
+{-# NOINLINE glProgramUniformMatrix3x2fvEXTFunPtr #-}
+
+glProgramUniformMatrix3x4fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
+glProgramUniformMatrix3x4fvEXT = ffiuintintsizeibooleanPtrfloatIOV glProgramUniformMatrix3x4fvEXTFunPtr
+
+glProgramUniformMatrix3x4fvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+glProgramUniformMatrix3x4fvEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix3x4fvEXT")
+
+{-# NOINLINE glProgramUniformMatrix3x4fvEXTFunPtr #-}
+
+glProgramUniformMatrix4fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
+glProgramUniformMatrix4fvEXT = ffiuintintsizeibooleanPtrfloatIOV glProgramUniformMatrix4fvEXTFunPtr
+
+glProgramUniformMatrix4fvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+glProgramUniformMatrix4fvEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix4fvEXT")
+
+{-# NOINLINE glProgramUniformMatrix4fvEXTFunPtr #-}
+
+glProgramUniformMatrix4x2fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
+glProgramUniformMatrix4x2fvEXT = ffiuintintsizeibooleanPtrfloatIOV glProgramUniformMatrix4x2fvEXTFunPtr
+
+glProgramUniformMatrix4x2fvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+glProgramUniformMatrix4x2fvEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix4x2fvEXT")
+
+{-# NOINLINE glProgramUniformMatrix4x2fvEXTFunPtr #-}
+
+glProgramUniformMatrix4x3fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
+glProgramUniformMatrix4x3fvEXT = ffiuintintsizeibooleanPtrfloatIOV glProgramUniformMatrix4x3fvEXTFunPtr
+
+glProgramUniformMatrix4x3fvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+glProgramUniformMatrix4x3fvEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix4x3fvEXT")
+
+{-# NOINLINE glProgramUniformMatrix4x3fvEXTFunPtr #-}
+
+glTextureStorage1DEXT :: MonadIO m => GLuint -> GLenum -> GLsizei -> GLenum -> GLsizei -> m ()
+glTextureStorage1DEXT = ffiuintenumsizeienumsizeiIOV glTextureStorage1DEXTFunPtr
+
+glTextureStorage1DEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLsizei -> GLenum -> GLsizei -> IO ())
+glTextureStorage1DEXTFunPtr = unsafePerformIO (getProcAddress "glTextureStorage1DEXT")
+
+{-# NOINLINE glTextureStorage1DEXTFunPtr #-}
+
+glTextureStorage2DEXT :: MonadIO m => GLuint -> GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()
+glTextureStorage2DEXT = ffiuintenumsizeienumsizeisizeiIOV glTextureStorage2DEXTFunPtr
+
+glTextureStorage2DEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> IO ())
+glTextureStorage2DEXTFunPtr = unsafePerformIO (getProcAddress "glTextureStorage2DEXT")
+
+{-# NOINLINE glTextureStorage2DEXTFunPtr #-}
+
+glTextureStorage3DEXT :: MonadIO m => GLuint -> GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> m ()
+glTextureStorage3DEXT = ffiuintenumsizeienumsizeisizeisizeiIOV glTextureStorage3DEXTFunPtr
+
+glTextureStorage3DEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> IO ())
+glTextureStorage3DEXTFunPtr = unsafePerformIO (getProcAddress "glTextureStorage3DEXT")
+
+{-# NOINLINE glTextureStorage3DEXTFunPtr #-}
+
+glBeginQueryEXT :: MonadIO m => GLenum -> GLuint -> m ()
+glBeginQueryEXT = ffienumuintIOV glBeginQueryEXTFunPtr
+
+glBeginQueryEXTFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
+glBeginQueryEXTFunPtr = unsafePerformIO (getProcAddress "glBeginQueryEXT")
+
+{-# NOINLINE glBeginQueryEXTFunPtr #-}
+
+glDeleteQueriesEXT :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glDeleteQueriesEXT = ffisizeiPtruintIOV glDeleteQueriesEXTFunPtr
+
+glDeleteQueriesEXTFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glDeleteQueriesEXTFunPtr = unsafePerformIO (getProcAddress "glDeleteQueriesEXT")
+
+{-# NOINLINE glDeleteQueriesEXTFunPtr #-}
+
+glEndQueryEXT :: MonadIO m => GLenum -> m ()
+glEndQueryEXT = ffienumIOV glEndQueryEXTFunPtr
+
+glEndQueryEXTFunPtr :: FunPtr (GLenum -> IO ())
+glEndQueryEXTFunPtr = unsafePerformIO (getProcAddress "glEndQueryEXT")
+
+{-# NOINLINE glEndQueryEXTFunPtr #-}
+
+glGenQueriesEXT :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glGenQueriesEXT = ffisizeiPtruintIOV glGenQueriesEXTFunPtr
+
+glGenQueriesEXTFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glGenQueriesEXTFunPtr = unsafePerformIO (getProcAddress "glGenQueriesEXT")
+
+{-# NOINLINE glGenQueriesEXTFunPtr #-}
+
+glGetQueryObjecti64vEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLint64 -> m ()
+glGetQueryObjecti64vEXT = ffiuintenumPtrint64IOV glGetQueryObjecti64vEXTFunPtr
+
+glGetQueryObjecti64vEXTFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint64 -> IO ())
+glGetQueryObjecti64vEXTFunPtr = unsafePerformIO (getProcAddress "glGetQueryObjecti64vEXT")
+
+{-# NOINLINE glGetQueryObjecti64vEXTFunPtr #-}
+
+glGetQueryObjectui64vEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLuint64 -> m ()
+glGetQueryObjectui64vEXT = ffiuintenumPtruint64IOV glGetQueryObjectui64vEXTFunPtr
+
+glGetQueryObjectui64vEXTFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLuint64 -> IO ())
+glGetQueryObjectui64vEXTFunPtr = unsafePerformIO (getProcAddress "glGetQueryObjectui64vEXT")
+
+{-# NOINLINE glGetQueryObjectui64vEXTFunPtr #-}
+
+glGetQueryObjectuivEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()
+glGetQueryObjectuivEXT = ffiuintenumPtruintIOV glGetQueryObjectuivEXTFunPtr
+
+glGetQueryObjectuivEXTFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLuint -> IO ())
+glGetQueryObjectuivEXTFunPtr = unsafePerformIO (getProcAddress "glGetQueryObjectuivEXT")
+
+{-# NOINLINE glGetQueryObjectuivEXTFunPtr #-}
+
+glGetQueryivEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
+glGetQueryivEXT = ffienumenumPtrintIOV glGetQueryivEXTFunPtr
+
+glGetQueryivEXTFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+glGetQueryivEXTFunPtr = unsafePerformIO (getProcAddress "glGetQueryivEXT")
+
+{-# NOINLINE glGetQueryivEXTFunPtr #-}
+
+glIsQueryEXT :: MonadIO m => GLuint -> m GLboolean
+glIsQueryEXT = ffiuintIOboolean glIsQueryEXTFunPtr
+
+glIsQueryEXTFunPtr :: FunPtr (GLuint -> IO GLboolean)
+glIsQueryEXTFunPtr = unsafePerformIO (getProcAddress "glIsQueryEXT")
+
+{-# NOINLINE glIsQueryEXTFunPtr #-}
+
+pattern GL_CURRENT_QUERY_EXT = 0x8865
+
+pattern GL_QUERY_RESULT_AVAILABLE_EXT = 0x8867
+
+pattern GL_QUERY_RESULT_EXT = 0x8866
+
+pattern GL_TIME_ELAPSED_EXT = 0x88BF
+
+pattern GL_COLOR_ATTACHMENT0_EXT = 0x8CE0
+
+pattern GL_COLOR_ATTACHMENT10_EXT = 0x8CEA
+
+pattern GL_COLOR_ATTACHMENT11_EXT = 0x8CEB
+
+pattern GL_COLOR_ATTACHMENT12_EXT = 0x8CEC
+
+pattern GL_COLOR_ATTACHMENT13_EXT = 0x8CED
+
+pattern GL_COLOR_ATTACHMENT14_EXT = 0x8CEE
+
+pattern GL_COLOR_ATTACHMENT15_EXT = 0x8CEF
+
+pattern GL_COLOR_ATTACHMENT1_EXT = 0x8CE1
+
+pattern GL_COLOR_ATTACHMENT2_EXT = 0x8CE2
+
+pattern GL_COLOR_ATTACHMENT3_EXT = 0x8CE3
+
+pattern GL_COLOR_ATTACHMENT4_EXT = 0x8CE4
+
+pattern GL_COLOR_ATTACHMENT5_EXT = 0x8CE5
+
+pattern GL_COLOR_ATTACHMENT6_EXT = 0x8CE6
+
+pattern GL_COLOR_ATTACHMENT7_EXT = 0x8CE7
+
+pattern GL_COLOR_ATTACHMENT8_EXT = 0x8CE8
+
+pattern GL_COLOR_ATTACHMENT9_EXT = 0x8CE9
+
+pattern GL_MAX_COLOR_ATTACHMENTS_EXT = 0x8CDF
+
+pattern GL_BLEND = 0x0BE2
+
+pattern GL_BLEND_DST_ALPHA = 0x80CA
+
+pattern GL_BLEND_DST_RGB = 0x80C8
+
+pattern GL_BLEND_EQUATION_ALPHA = 0x883D
+
+pattern GL_BLEND_EQUATION_RGB = 0x8009
+
+pattern GL_BLEND_SRC_ALPHA = 0x80CB
+
+pattern GL_BLEND_SRC_RGB = 0x80C9
+
+pattern GL_COLOR_WRITEMASK = 0x0C23
+
+pattern GL_DST_ALPHA = 0x0304
+
+pattern GL_DST_COLOR = 0x0306
+
+pattern GL_ONE = 1
+
+pattern GL_ONE_MINUS_DST_ALPHA = 0x0305
+
+pattern GL_ONE_MINUS_DST_COLOR = 0x0307
+
+pattern GL_ONE_MINUS_SRC_ALPHA = 0x0303
+
+pattern GL_ONE_MINUS_SRC_COLOR = 0x0301
+
+pattern GL_SRC_ALPHA = 0x0302
+
+pattern GL_SRC_ALPHA_SATURATE = 0x0308
+
+pattern GL_SRC_COLOR = 0x0300
+
+pattern GL_ZERO = 0
+
+glDrawArraysInstancedEXT :: MonadIO m => GLenum -> GLint -> GLsizei -> GLsizei -> m ()
+glDrawArraysInstancedEXT = ffienumintsizeisizeiIOV glDrawArraysInstancedEXTFunPtr
+
+glDrawArraysInstancedEXTFunPtr :: FunPtr (GLenum -> GLint -> GLsizei -> GLsizei -> IO ())
+glDrawArraysInstancedEXTFunPtr = unsafePerformIO (getProcAddress "glDrawArraysInstancedEXT")
+
+{-# NOINLINE glDrawArraysInstancedEXTFunPtr #-}
+
+glDrawElementsInstancedEXT :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> m ()
+glDrawElementsInstancedEXT = ffienumsizeienumPtrVsizeiIOV glDrawElementsInstancedEXTFunPtr
+
+glDrawElementsInstancedEXTFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> IO ())
+glDrawElementsInstancedEXTFunPtr = unsafePerformIO (getProcAddress "glDrawElementsInstancedEXT")
+
+{-# NOINLINE glDrawElementsInstancedEXTFunPtr #-}
+
+pattern GL_FRAGMENT_DEPTH_EXT = 0x8452
+
+glRenderbufferStorageMultisampleEXT :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()
+glRenderbufferStorageMultisampleEXT = ffienumsizeienumsizeisizeiIOV glRenderbufferStorageMultisampleEXTFunPtr
+
+glRenderbufferStorageMultisampleEXTFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> IO ())
+glRenderbufferStorageMultisampleEXTFunPtr = unsafePerformIO (getProcAddress "glRenderbufferStorageMultisampleEXT")
+
+{-# NOINLINE glRenderbufferStorageMultisampleEXTFunPtr #-}
+
+pattern GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT = 0x8D56
+
+pattern GL_MAX_SAMPLES_EXT = 0x8D57
+
+pattern GL_RENDERBUFFER_SAMPLES_EXT = 0x8CAB
+
+pattern GL_FRAMEBUFFER_SRGB_EXT = 0x8DB9
+
+glFramebufferTextureEXT :: MonadIO m => GLenum -> GLenum -> GLuint -> GLint -> m ()
+glFramebufferTextureEXT = ffienumenumuintintIOV glFramebufferTextureEXTFunPtr
+
+glFramebufferTextureEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLuint -> GLint -> IO ())
+glFramebufferTextureEXTFunPtr = unsafePerformIO (getProcAddress "glFramebufferTextureEXT")
+
+{-# NOINLINE glFramebufferTextureEXTFunPtr #-}
+
+pattern GL_FIRST_VERTEX_CONVENTION_EXT = 0x8E4D
+
+pattern GL_FRAMEBUFFER_ATTACHMENT_LAYERED_EXT = 0x8DA7
+
+pattern GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_EXT = 0x8DA8
+
+pattern GL_GEOMETRY_SHADER_EXT = 0x8DD9
+
+pattern GL_LAST_VERTEX_CONVENTION_EXT = 0x8E4E
+
+pattern GL_LINES_ADJACENCY_EXT = 0x000A
+
+pattern GL_LINE_STRIP_ADJACENCY_EXT = 0x000B
+
+pattern GL_MAX_GEOMETRY_OUTPUT_VERTICES_EXT = 0x8DE0
+
+pattern GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_EXT = 0x8C29
+
+pattern GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_EXT = 0x8DE1
+
+pattern GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_EXT = 0x8DDF
+
+pattern GL_PRIMITIVES_GENERATED_EXT = 0x8C87
+
+pattern GL_TRIANGLES_ADJACENCY_EXT = 0x000C
+
+pattern GL_TRIANGLE_STRIP_ADJACENCY_EXT = 0x000D
+
+glProgramParameteriEXT :: MonadIO m => GLuint -> GLenum -> GLint -> m ()
+glProgramParameteriEXT = ffiuintenumintIOV glProgramParameteriEXTFunPtr
+
+glProgramParameteriEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> IO ())
+glProgramParameteriEXTFunPtr = unsafePerformIO (getProcAddress "glProgramParameteriEXT")
+
+{-# NOINLINE glProgramParameteriEXTFunPtr #-}
+
+pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT = 0x8CD4
+
+pattern GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_EXT = 0x8DA9
+
+pattern GL_GEOMETRY_INPUT_TYPE_EXT = 0x8DDB
+
+pattern GL_GEOMETRY_OUTPUT_TYPE_EXT = 0x8DDC
+
+pattern GL_GEOMETRY_VERTICES_OUT_EXT = 0x8DDA
+
+pattern GL_PROGRAM_POINT_SIZE_EXT = 0x8642
+
+pattern GL_INT_SAMPLER_BUFFER_EXT = 0x8DD0
+
+pattern GL_SAMPLER_BUFFER_EXT = 0x8DC2
+
+pattern GL_UNSIGNED_INT_SAMPLER_BUFFER_EXT = 0x8DD8
+
+glRasterSamplesEXT :: MonadIO m => GLuint -> GLboolean -> m ()
+glRasterSamplesEXT = ffiuintbooleanIOV glRasterSamplesEXTFunPtr
+
+glRasterSamplesEXTFunPtr :: FunPtr (GLuint -> GLboolean -> IO ())
+glRasterSamplesEXTFunPtr = unsafePerformIO (getProcAddress "glRasterSamplesEXT")
+
+{-# NOINLINE glRasterSamplesEXTFunPtr #-}
+
+pattern GL_EFFECTIVE_RASTER_SAMPLES_EXT = 0x932C
+
+pattern GL_MAX_RASTER_SAMPLES_EXT = 0x9329
+
+pattern GL_MULTISAMPLE_RASTERIZATION_ALLOWED_EXT = 0x932B
+
+pattern GL_RASTER_FIXED_SAMPLE_LOCATIONS_EXT = 0x932A
+
+pattern GL_RASTER_MULTISAMPLE_EXT = 0x9327
+
+pattern GL_RASTER_SAMPLES_EXT = 0x9328
+
+pattern GL_SRGB8_ALPHA8_EXT = 0x8C43
+
+pattern GL_SRGB_ALPHA_EXT = 0x8C42
+
+pattern GL_SRGB_EXT = 0x8C40
+
+pattern GL_IMAGE_BUFFER_EXT = 0x9051
+
+pattern GL_IMAGE_CUBE_MAP_ARRAY_EXT = 0x9054
+
+pattern GL_INT_IMAGE_BUFFER_EXT = 0x905C
+
+pattern GL_INT_IMAGE_CUBE_MAP_ARRAY_EXT = 0x905F
+
+pattern GL_UNSIGNED_INT_IMAGE_BUFFER_EXT = 0x9067
+
+pattern GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY_EXT = 0x906A
+
+pattern GL_PRIMITIVE_RESTART_FOR_PATCHES_SUPPORTED = 0x8221
+
+pattern GL_ALPHA8_EXT = 0x803C
+
+pattern GL_LUMINANCE8_ALPHA8_EXT = 0x8045
+
+pattern GL_LUMINANCE8_EXT = 0x8040
+
+pattern GL_RGB10_A2_EXT = 0x8059
+
+pattern GL_RGB10_EXT = 0x8052
+
+glFramebufferTextureLayerEXT :: MonadIO m => GLenum -> GLenum -> GLuint -> GLint -> GLint -> m ()
+glFramebufferTextureLayerEXT = ffienumenumuintintintIOV glFramebufferTextureLayerEXTFunPtr
+
+glFramebufferTextureLayerEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLuint -> GLint -> GLint -> IO ())
+glFramebufferTextureLayerEXTFunPtr = unsafePerformIO (getProcAddress "glFramebufferTextureLayerEXT")
+
+{-# NOINLINE glFramebufferTextureLayerEXTFunPtr #-}
+
+glGetTexParameterIivEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
+glGetTexParameterIivEXT = ffienumenumPtrintIOV glGetTexParameterIivEXTFunPtr
+
+glGetTexParameterIivEXTFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+glGetTexParameterIivEXTFunPtr = unsafePerformIO (getProcAddress "glGetTexParameterIivEXT")
+
+{-# NOINLINE glGetTexParameterIivEXTFunPtr #-}
+
+glGetTexParameterIuivEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()
+glGetTexParameterIuivEXT = ffienumenumPtruintIOV glGetTexParameterIuivEXTFunPtr
+
+glGetTexParameterIuivEXTFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLuint -> IO ())
+glGetTexParameterIuivEXTFunPtr = unsafePerformIO (getProcAddress "glGetTexParameterIuivEXT")
+
+{-# NOINLINE glGetTexParameterIuivEXTFunPtr #-}
+
+glTexParameterIivEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
+glTexParameterIivEXT = ffienumenumPtrintIOV glTexParameterIivEXTFunPtr
+
+glTexParameterIivEXTFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+glTexParameterIivEXTFunPtr = unsafePerformIO (getProcAddress "glTexParameterIivEXT")
+
+{-# NOINLINE glTexParameterIivEXTFunPtr #-}
+
+glTexParameterIuivEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()
+glTexParameterIuivEXT = ffienumenumPtruintIOV glTexParameterIuivEXTFunPtr
+
+glTexParameterIuivEXTFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLuint -> IO ())
+glTexParameterIuivEXTFunPtr = unsafePerformIO (getProcAddress "glTexParameterIuivEXT")
+
+{-# NOINLINE glTexParameterIuivEXTFunPtr #-}
+
+glTexBufferEXT :: MonadIO m => GLenum -> GLenum -> GLuint -> m ()
+glTexBufferEXT = ffienumenumuintIOV glTexBufferEXTFunPtr
+
+glTexBufferEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLuint -> IO ())
+glTexBufferEXTFunPtr = unsafePerformIO (getProcAddress "glTexBufferEXT")
+
+{-# NOINLINE glTexBufferEXTFunPtr #-}
+
+pattern GL_MAX_TEXTURE_BUFFER_SIZE_EXT = 0x8C2B
+
+pattern GL_TEXTURE_BINDING_BUFFER_EXT = 0x8C2C
+
+pattern GL_TEXTURE_BUFFER_DATA_STORE_BINDING_EXT = 0x8C2D
+
+pattern GL_TEXTURE_BUFFER_EXT = 0x8C2A
+
+pattern GL_COMPRESSED_RGBA_S3TC_DXT1_EXT = 0x83F1
+
+pattern GL_COMPRESSED_RGB_S3TC_DXT1_EXT = 0x83F0
+
+pattern GL_R8_EXT = 0x8229
+
+pattern GL_RG8_EXT = 0x822B
+
+pattern GL_R16_SNORM = 0x8F98
+
+pattern GL_R8_SNORM = 0x8F94
+
+pattern GL_RG16_SNORM = 0x8F99
+
+pattern GL_RG8_SNORM = 0x8F95
+
+pattern GL_RGB16_SNORM = 0x8F9A
+
+pattern GL_RGB8_SNORM = 0x8F96
+
+pattern GL_RGBA16_SNORM = 0x8F9B
+
+pattern GL_RGBA8_SNORM = 0x8F97
+
+pattern GL_SIGNED_NORMALIZED = 0x8F9C
+
+pattern GL_CONTEXT_RELEASE_BEHAVIOR = 0x82FB
+
+pattern GL_CONTEXT_RELEASE_BEHAVIOR_FLUSH = 0x82FC
+
+pattern GL_NONE = 0
+
+glDebugMessageCallback :: MonadIO m => GLDEBUGPROC -> Ptr () -> m ()
+glDebugMessageCallback = ffiDEBUGPROCPtrVIOV glDebugMessageCallbackFunPtr
+
+glDebugMessageCallbackFunPtr :: FunPtr (GLDEBUGPROC -> Ptr () -> IO ())
+glDebugMessageCallbackFunPtr = unsafePerformIO (getProcAddress "glDebugMessageCallback")
+
+{-# NOINLINE glDebugMessageCallbackFunPtr #-}
+
+glDebugMessageControl :: MonadIO m => GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLuint -> GLboolean -> m ()
+glDebugMessageControl = ffienumenumenumsizeiPtruintbooleanIOV glDebugMessageControlFunPtr
+
+glDebugMessageControlFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLuint -> GLboolean -> IO ())
+glDebugMessageControlFunPtr = unsafePerformIO (getProcAddress "glDebugMessageControl")
+
+{-# NOINLINE glDebugMessageControlFunPtr #-}
+
+glDebugMessageInsert :: MonadIO m => GLenum -> GLenum -> GLuint -> GLenum -> GLsizei -> Ptr GLchar -> m ()
+glDebugMessageInsert = ffienumenumuintenumsizeiPtrcharIOV glDebugMessageInsertFunPtr
+
+glDebugMessageInsertFunPtr :: FunPtr (GLenum -> GLenum -> GLuint -> GLenum -> GLsizei -> Ptr GLchar -> IO ())
+glDebugMessageInsertFunPtr = unsafePerformIO (getProcAddress "glDebugMessageInsert")
+
+{-# NOINLINE glDebugMessageInsertFunPtr #-}
+
+glGetDebugMessageLog :: MonadIO m => GLuint -> GLsizei -> Ptr GLenum -> Ptr GLenum -> Ptr GLuint -> Ptr GLenum -> Ptr GLsizei -> Ptr GLchar -> m GLuint
+glGetDebugMessageLog = ffiuintsizeiPtrenumPtrenumPtruintPtrenumPtrsizeiPtrcharIOuint glGetDebugMessageLogFunPtr
+
+glGetDebugMessageLogFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLenum -> Ptr GLenum -> Ptr GLuint -> Ptr GLenum -> Ptr GLsizei -> Ptr GLchar -> IO GLuint)
+glGetDebugMessageLogFunPtr = unsafePerformIO (getProcAddress "glGetDebugMessageLog")
+
+{-# NOINLINE glGetDebugMessageLogFunPtr #-}
+
+glGetObjectLabel :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
+glGetObjectLabel = ffienumuintsizeiPtrsizeiPtrcharIOV glGetObjectLabelFunPtr
+
+glGetObjectLabelFunPtr :: FunPtr (GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
+glGetObjectLabelFunPtr = unsafePerformIO (getProcAddress "glGetObjectLabel")
+
+{-# NOINLINE glGetObjectLabelFunPtr #-}
+
+glGetObjectPtrLabel :: MonadIO m => Ptr () -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
+glGetObjectPtrLabel = ffiPtrVsizeiPtrsizeiPtrcharIOV glGetObjectPtrLabelFunPtr
+
+glGetObjectPtrLabelFunPtr :: FunPtr (Ptr () -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
+glGetObjectPtrLabelFunPtr = unsafePerformIO (getProcAddress "glGetObjectPtrLabel")
+
+{-# NOINLINE glGetObjectPtrLabelFunPtr #-}
+
+glGetPointerv :: MonadIO m => GLenum -> Ptr () -> m ()
+glGetPointerv = ffienumPtrVIOV glGetPointervFunPtr
+
+glGetPointervFunPtr :: FunPtr (GLenum -> Ptr () -> IO ())
+glGetPointervFunPtr = unsafePerformIO (getProcAddress "glGetPointerv")
+
+{-# NOINLINE glGetPointervFunPtr #-}
+
+glObjectLabel :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLchar -> m ()
+glObjectLabel = ffienumuintsizeiPtrcharIOV glObjectLabelFunPtr
+
+glObjectLabelFunPtr :: FunPtr (GLenum -> GLuint -> GLsizei -> Ptr GLchar -> IO ())
+glObjectLabelFunPtr = unsafePerformIO (getProcAddress "glObjectLabel")
+
+{-# NOINLINE glObjectLabelFunPtr #-}
+
+glObjectPtrLabel :: MonadIO m => Ptr () -> GLsizei -> Ptr GLchar -> m ()
+glObjectPtrLabel = ffiPtrVsizeiPtrcharIOV glObjectPtrLabelFunPtr
+
+glObjectPtrLabelFunPtr :: FunPtr (Ptr () -> GLsizei -> Ptr GLchar -> IO ())
+glObjectPtrLabelFunPtr = unsafePerformIO (getProcAddress "glObjectPtrLabel")
+
+{-# NOINLINE glObjectPtrLabelFunPtr #-}
+
+glPopDebugGroup :: MonadIO m => m ()
+glPopDebugGroup = ffiIOV glPopDebugGroupFunPtr
+
+glPopDebugGroupFunPtr :: FunPtr (IO ())
+glPopDebugGroupFunPtr = unsafePerformIO (getProcAddress "glPopDebugGroup")
+
+{-# NOINLINE glPopDebugGroupFunPtr #-}
+
+glPushDebugGroup :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLchar -> m ()
+glPushDebugGroup = ffienumuintsizeiPtrcharIOV glPushDebugGroupFunPtr
+
+glPushDebugGroupFunPtr :: FunPtr (GLenum -> GLuint -> GLsizei -> Ptr GLchar -> IO ())
+glPushDebugGroupFunPtr = unsafePerformIO (getProcAddress "glPushDebugGroup")
+
+{-# NOINLINE glPushDebugGroupFunPtr #-}
+
+pattern GL_BUFFER = 0x82E0
+
+pattern GL_CONTEXT_FLAG_DEBUG_BIT = 0x00000002
+
+pattern GL_DEBUG_CALLBACK_FUNCTION = 0x8244
+
+pattern GL_DEBUG_CALLBACK_USER_PARAM = 0x8245
+
+pattern GL_DEBUG_GROUP_STACK_DEPTH = 0x826D
+
+pattern GL_DEBUG_LOGGED_MESSAGES = 0x9145
+
+pattern GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH = 0x8243
+
+pattern GL_DEBUG_OUTPUT = 0x92E0
+
+pattern GL_DEBUG_OUTPUT_SYNCHRONOUS = 0x8242
+
+pattern GL_DEBUG_SEVERITY_HIGH = 0x9146
+
+pattern GL_DEBUG_SEVERITY_LOW = 0x9148
+
+pattern GL_DEBUG_SEVERITY_MEDIUM = 0x9147
+
+pattern GL_DEBUG_SEVERITY_NOTIFICATION = 0x826B
+
+pattern GL_DEBUG_SOURCE_API = 0x8246
+
+pattern GL_DEBUG_SOURCE_APPLICATION = 0x824A
+
+pattern GL_DEBUG_SOURCE_OTHER = 0x824B
+
+pattern GL_DEBUG_SOURCE_SHADER_COMPILER = 0x8248
+
+pattern GL_DEBUG_SOURCE_THIRD_PARTY = 0x8249
+
+pattern GL_DEBUG_SOURCE_WINDOW_SYSTEM = 0x8247
+
+pattern GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR = 0x824D
+
+pattern GL_DEBUG_TYPE_ERROR = 0x824C
+
+pattern GL_DEBUG_TYPE_MARKER = 0x8268
+
+pattern GL_DEBUG_TYPE_OTHER = 0x8251
+
+pattern GL_DEBUG_TYPE_PERFORMANCE = 0x8250
+
+pattern GL_DEBUG_TYPE_POP_GROUP = 0x826A
+
+pattern GL_DEBUG_TYPE_PORTABILITY = 0x824F
+
+pattern GL_DEBUG_TYPE_PUSH_GROUP = 0x8269
+
+pattern GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR = 0x824E
+
+pattern GL_DISPLAY_LIST = 0x82E7
+
+pattern GL_MAX_DEBUG_GROUP_STACK_DEPTH = 0x826C
+
+pattern GL_MAX_DEBUG_LOGGED_MESSAGES = 0x9144
+
+pattern GL_MAX_DEBUG_MESSAGE_LENGTH = 0x9143
+
+pattern GL_MAX_LABEL_LENGTH = 0x82E8
+
+pattern GL_PROGRAM = 0x82E2
+
+pattern GL_PROGRAM_PIPELINE = 0x82E4
+
+pattern GL_QUERY = 0x82E3
+
+pattern GL_SHADER = 0x82E1
+
+pattern GL_STACK_OVERFLOW = 0x0503
+
+pattern GL_STACK_UNDERFLOW = 0x0504
+
+pattern GL_VERTEX_ARRAY = 0x8074
+
+glGetGraphicsResetStatus :: MonadIO m => m GLenum
+glGetGraphicsResetStatus = ffiIOenum glGetGraphicsResetStatusFunPtr
+
+glGetGraphicsResetStatusFunPtr :: FunPtr (IO GLenum)
+glGetGraphicsResetStatusFunPtr = unsafePerformIO (getProcAddress "glGetGraphicsResetStatus")
+
+{-# NOINLINE glGetGraphicsResetStatusFunPtr #-}
+
+glGetnUniformfv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()
+glGetnUniformfv = ffiuintintsizeiPtrfloatIOV glGetnUniformfvFunPtr
+
+glGetnUniformfvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLfloat -> IO ())
+glGetnUniformfvFunPtr = unsafePerformIO (getProcAddress "glGetnUniformfv")
+
+{-# NOINLINE glGetnUniformfvFunPtr #-}
+
+glGetnUniformiv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()
+glGetnUniformiv = ffiuintintsizeiPtrintIOV glGetnUniformivFunPtr
+
+glGetnUniformivFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint -> IO ())
+glGetnUniformivFunPtr = unsafePerformIO (getProcAddress "glGetnUniformiv")
+
+{-# NOINLINE glGetnUniformivFunPtr #-}
+
+glGetnUniformuiv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()
+glGetnUniformuiv = ffiuintintsizeiPtruintIOV glGetnUniformuivFunPtr
+
+glGetnUniformuivFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint -> IO ())
+glGetnUniformuivFunPtr = unsafePerformIO (getProcAddress "glGetnUniformuiv")
+
+{-# NOINLINE glGetnUniformuivFunPtr #-}
+
+glReadnPixels :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> GLsizei -> Ptr () -> m ()
+glReadnPixels = ffiintintsizeisizeienumenumsizeiPtrVIOV glReadnPixelsFunPtr
+
+glReadnPixelsFunPtr :: FunPtr (GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> GLsizei -> Ptr () -> IO ())
+glReadnPixelsFunPtr = unsafePerformIO (getProcAddress "glReadnPixels")
+
+{-# NOINLINE glReadnPixelsFunPtr #-}
+
+pattern GL_CONTEXT_LOST = 0x0507
+
+pattern GL_GUILTY_CONTEXT_RESET = 0x8253
+
+pattern GL_INNOCENT_CONTEXT_RESET = 0x8254
+
+pattern GL_LOSE_CONTEXT_ON_RESET = 0x8252
+
+pattern GL_NO_RESET_NOTIFICATION = 0x8261
+
+pattern GL_RESET_NOTIFICATION_STRATEGY = 0x8256
+
+pattern GL_UNKNOWN_CONTEXT_RESET = 0x8255
+
+pattern GL_COMPRESSED_RGBA_ASTC_10x10_KHR = 0x93BB
+
+pattern GL_COMPRESSED_RGBA_ASTC_10x5_KHR = 0x93B8
+
+pattern GL_COMPRESSED_RGBA_ASTC_10x6_KHR = 0x93B9
+
+pattern GL_COMPRESSED_RGBA_ASTC_10x8_KHR = 0x93BA
+
+pattern GL_COMPRESSED_RGBA_ASTC_12x10_KHR = 0x93BC
+
+pattern GL_COMPRESSED_RGBA_ASTC_12x12_KHR = 0x93BD
+
+pattern GL_COMPRESSED_RGBA_ASTC_4x4_KHR = 0x93B0
+
+pattern GL_COMPRESSED_RGBA_ASTC_5x4_KHR = 0x93B1
+
+pattern GL_COMPRESSED_RGBA_ASTC_5x5_KHR = 0x93B2
+
+pattern GL_COMPRESSED_RGBA_ASTC_6x5_KHR = 0x93B3
+
+pattern GL_COMPRESSED_RGBA_ASTC_6x6_KHR = 0x93B4
+
+pattern GL_COMPRESSED_RGBA_ASTC_8x5_KHR = 0x93B5
+
+pattern GL_COMPRESSED_RGBA_ASTC_8x6_KHR = 0x93B6
+
+pattern GL_COMPRESSED_RGBA_ASTC_8x8_KHR = 0x93B7
+
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR = 0x93DB
+
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR = 0x93D8
+
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR = 0x93D9
+
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR = 0x93DA
+
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR = 0x93DC
+
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR = 0x93DD
+
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR = 0x93D0
+
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR = 0x93D1
+
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR = 0x93D2
+
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR = 0x93D3
+
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR = 0x93D4
+
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR = 0x93D5
+
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR = 0x93D6
+
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR = 0x93D7
+
+pattern GL_INVERT = 0x150A
+
+pattern GL_COLOR_ATTACHMENT0_NV = 0x8CE0
+
+pattern GL_COLOR_ATTACHMENT10_NV = 0x8CEA
+
+pattern GL_COLOR_ATTACHMENT11_NV = 0x8CEB
+
+pattern GL_COLOR_ATTACHMENT12_NV = 0x8CEC
+
+pattern GL_COLOR_ATTACHMENT13_NV = 0x8CED
+
+pattern GL_COLOR_ATTACHMENT14_NV = 0x8CEE
+
+pattern GL_COLOR_ATTACHMENT15_NV = 0x8CEF
+
+pattern GL_COLOR_ATTACHMENT1_NV = 0x8CE1
+
+pattern GL_COLOR_ATTACHMENT2_NV = 0x8CE2
+
+pattern GL_COLOR_ATTACHMENT3_NV = 0x8CE3
+
+pattern GL_COLOR_ATTACHMENT4_NV = 0x8CE4
+
+pattern GL_COLOR_ATTACHMENT5_NV = 0x8CE5
+
+pattern GL_COLOR_ATTACHMENT6_NV = 0x8CE6
+
+pattern GL_COLOR_ATTACHMENT7_NV = 0x8CE7
+
+pattern GL_COLOR_ATTACHMENT8_NV = 0x8CE8
+
+pattern GL_COLOR_ATTACHMENT9_NV = 0x8CE9
+
+pattern GL_EYE_PLANE = 0x2502
+
+pattern GL_MAX_PROGRAM_CALL_DEPTH_NV = 0x88F5
+
+pattern GL_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV = 0x88F4
+
+pattern GL_COLOR_SAMPLES_NV = 0x8E20
+
+pattern GL_PRIMARY_COLOR = 0x8577
+
+pattern GL_PRIMARY_COLOR_NV = 0x852C
+
+pattern GL_SECONDARY_COLOR_NV = 0x852D
+
+pattern GL_FOG = 0x0B60
+
+pattern GL_READ_WRITE = 0x88BA
+
+pattern GL_WRITE_ONLY = 0x88B9
+
+pattern GL_BYTE = 0x1400
+
+pattern GL_DEPTH_COMPONENT24_OES = 0x81A6
+
+glGetTexGenxvOES :: MonadIO m => GLenum -> GLenum -> Ptr GLfixed -> m ()
+glGetTexGenxvOES = ffienumenumPtrfixedIOV glGetTexGenxvOESFunPtr
+
+glGetTexGenxvOESFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfixed -> IO ())
+glGetTexGenxvOESFunPtr = unsafePerformIO (getProcAddress "glGetTexGenxvOES")
+
+{-# NOINLINE glGetTexGenxvOESFunPtr #-}
+
+glTexGenxOES :: MonadIO m => GLenum -> GLenum -> GLfixed -> m ()
+glTexGenxOES = ffienumenumfixedIOV glTexGenxOESFunPtr
+
+glTexGenxOESFunPtr :: FunPtr (GLenum -> GLenum -> GLfixed -> IO ())
+glTexGenxOESFunPtr = unsafePerformIO (getProcAddress "glTexGenxOES")
+
+{-# NOINLINE glTexGenxOESFunPtr #-}
+
+glTexGenxvOES :: MonadIO m => GLenum -> GLenum -> Ptr GLfixed -> m ()
+glTexGenxvOES = ffienumenumPtrfixedIOV glTexGenxvOESFunPtr
+
+glTexGenxvOESFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfixed -> IO ())
+glTexGenxvOESFunPtr = unsafePerformIO (getProcAddress "glTexGenxvOES")
+
+{-# NOINLINE glTexGenxvOESFunPtr #-}
+
+pattern GL_DEPTH_COMPONENT16_OES = 0x81A5
+
+pattern GL_RGB565_OES = 0x8D62
+
+pattern GL_RGB5_A1_OES = 0x8057
+
+pattern GL_RGBA4_OES = 0x8056
+
+pattern GL_RGB8_OES = 0x8051
+
+pattern GL_RGBA8_OES = 0x8058
+
+pattern GL_STENCIL_INDEX8_OES = 0x8D48
+
+pattern GL_HALF_FLOAT_OES = 0x8D61
+
+glAccum :: MonadIO m => GLenum -> GLfloat -> m ()
+glAccum = ffienumfloatIOV glAccumFunPtr
+
+glAccumFunPtr :: FunPtr (GLenum -> GLfloat -> IO ())
+glAccumFunPtr = unsafePerformIO (getProcAddress "glAccum")
+
+{-# NOINLINE glAccumFunPtr #-}
+
+glAlphaFunc :: MonadIO m => GLenum -> GLfloat -> m ()
+glAlphaFunc = ffienumfloatIOV glAlphaFuncFunPtr
+
+glAlphaFuncFunPtr :: FunPtr (GLenum -> GLfloat -> IO ())
+glAlphaFuncFunPtr = unsafePerformIO (getProcAddress "glAlphaFunc")
+
+{-# NOINLINE glAlphaFuncFunPtr #-}
+
+glAreTexturesResident :: MonadIO m => GLsizei -> Ptr GLuint -> Ptr GLboolean -> m GLboolean
+glAreTexturesResident = ffisizeiPtruintPtrbooleanIOboolean glAreTexturesResidentFunPtr
+
+glAreTexturesResidentFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> Ptr GLboolean -> IO GLboolean)
+glAreTexturesResidentFunPtr = unsafePerformIO (getProcAddress "glAreTexturesResident")
+
+{-# NOINLINE glAreTexturesResidentFunPtr #-}
+
+glArrayElement :: MonadIO m => GLint -> m ()
+glArrayElement = ffiintIOV glArrayElementFunPtr
+
+glArrayElementFunPtr :: FunPtr (GLint -> IO ())
+glArrayElementFunPtr = unsafePerformIO (getProcAddress "glArrayElement")
+
+{-# NOINLINE glArrayElementFunPtr #-}
+
+glBegin :: MonadIO m => GLenum -> m ()
+glBegin = ffienumIOV glBeginFunPtr
+
+glBeginFunPtr :: FunPtr (GLenum -> IO ())
+glBeginFunPtr = unsafePerformIO (getProcAddress "glBegin")
+
+{-# NOINLINE glBeginFunPtr #-}
+
+glBitmap :: MonadIO m => GLsizei -> GLsizei -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> Ptr GLubyte -> m ()
+glBitmap = ffisizeisizeifloatfloatfloatfloatPtrubyteIOV glBitmapFunPtr
+
+glBitmapFunPtr :: FunPtr (GLsizei -> GLsizei -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> Ptr GLubyte -> IO ())
+glBitmapFunPtr = unsafePerformIO (getProcAddress "glBitmap")
+
+{-# NOINLINE glBitmapFunPtr #-}
+
+glCallList :: MonadIO m => GLuint -> m ()
+glCallList = ffiuintIOV glCallListFunPtr
+
+glCallListFunPtr :: FunPtr (GLuint -> IO ())
+glCallListFunPtr = unsafePerformIO (getProcAddress "glCallList")
+
+{-# NOINLINE glCallListFunPtr #-}
+
+glCallLists :: MonadIO m => GLsizei -> GLenum -> Ptr () -> m ()
+glCallLists = ffisizeienumPtrVIOV glCallListsFunPtr
+
+glCallListsFunPtr :: FunPtr (GLsizei -> GLenum -> Ptr () -> IO ())
+glCallListsFunPtr = unsafePerformIO (getProcAddress "glCallLists")
+
+{-# NOINLINE glCallListsFunPtr #-}
+
+glClearAccum :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
+glClearAccum = ffifloatfloatfloatfloatIOV glClearAccumFunPtr
+
+glClearAccumFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+glClearAccumFunPtr = unsafePerformIO (getProcAddress "glClearAccum")
+
+{-# NOINLINE glClearAccumFunPtr #-}
+
+glClearIndex :: MonadIO m => GLfloat -> m ()
+glClearIndex = ffifloatIOV glClearIndexFunPtr
+
+glClearIndexFunPtr :: FunPtr (GLfloat -> IO ())
+glClearIndexFunPtr = unsafePerformIO (getProcAddress "glClearIndex")
+
+{-# NOINLINE glClearIndexFunPtr #-}
+
+glClientActiveTexture :: MonadIO m => GLenum -> m ()
+glClientActiveTexture = ffienumIOV glClientActiveTextureFunPtr
+
+glClientActiveTextureFunPtr :: FunPtr (GLenum -> IO ())
+glClientActiveTextureFunPtr = unsafePerformIO (getProcAddress "glClientActiveTexture")
+
+{-# NOINLINE glClientActiveTextureFunPtr #-}
+
+glClipPlane :: MonadIO m => GLenum -> Ptr GLdouble -> m ()
+glClipPlane = ffienumPtrdoubleIOV glClipPlaneFunPtr
+
+glClipPlaneFunPtr :: FunPtr (GLenum -> Ptr GLdouble -> IO ())
+glClipPlaneFunPtr = unsafePerformIO (getProcAddress "glClipPlane")
+
+{-# NOINLINE glClipPlaneFunPtr #-}
+
+glColor3b :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> m ()
+glColor3b = ffibytebytebyteIOV glColor3bFunPtr
+
+glColor3bFunPtr :: FunPtr (GLbyte -> GLbyte -> GLbyte -> IO ())
+glColor3bFunPtr = unsafePerformIO (getProcAddress "glColor3b")
+
+{-# NOINLINE glColor3bFunPtr #-}
+
+glColor3bv :: MonadIO m => Ptr GLbyte -> m ()
+glColor3bv = ffiPtrbyteIOV glColor3bvFunPtr
+
+glColor3bvFunPtr :: FunPtr (Ptr GLbyte -> IO ())
+glColor3bvFunPtr = unsafePerformIO (getProcAddress "glColor3bv")
+
+{-# NOINLINE glColor3bvFunPtr #-}
+
+glColor3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()
+glColor3d = ffidoubledoubledoubleIOV glColor3dFunPtr
+
+glColor3dFunPtr :: FunPtr (GLdouble -> GLdouble -> GLdouble -> IO ())
+glColor3dFunPtr = unsafePerformIO (getProcAddress "glColor3d")
+
+{-# NOINLINE glColor3dFunPtr #-}
+
+glColor3dv :: MonadIO m => Ptr GLdouble -> m ()
+glColor3dv = ffiPtrdoubleIOV glColor3dvFunPtr
+
+glColor3dvFunPtr :: FunPtr (Ptr GLdouble -> IO ())
+glColor3dvFunPtr = unsafePerformIO (getProcAddress "glColor3dv")
+
+{-# NOINLINE glColor3dvFunPtr #-}
+
+glColor3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()
+glColor3f = ffifloatfloatfloatIOV glColor3fFunPtr
+
+glColor3fFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> IO ())
+glColor3fFunPtr = unsafePerformIO (getProcAddress "glColor3f")
+
+{-# NOINLINE glColor3fFunPtr #-}
+
+glColor3fv :: MonadIO m => Ptr GLfloat -> m ()
+glColor3fv = ffiPtrfloatIOV glColor3fvFunPtr
+
+glColor3fvFunPtr :: FunPtr (Ptr GLfloat -> IO ())
+glColor3fvFunPtr = unsafePerformIO (getProcAddress "glColor3fv")
+
+{-# NOINLINE glColor3fvFunPtr #-}
+
+glColor3i :: MonadIO m => GLint -> GLint -> GLint -> m ()
+glColor3i = ffiintintintIOV glColor3iFunPtr
+
+glColor3iFunPtr :: FunPtr (GLint -> GLint -> GLint -> IO ())
+glColor3iFunPtr = unsafePerformIO (getProcAddress "glColor3i")
+
+{-# NOINLINE glColor3iFunPtr #-}
+
+glColor3iv :: MonadIO m => Ptr GLint -> m ()
+glColor3iv = ffiPtrintIOV glColor3ivFunPtr
+
+glColor3ivFunPtr :: FunPtr (Ptr GLint -> IO ())
+glColor3ivFunPtr = unsafePerformIO (getProcAddress "glColor3iv")
+
+{-# NOINLINE glColor3ivFunPtr #-}
+
+glColor3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()
+glColor3s = ffishortshortshortIOV glColor3sFunPtr
+
+glColor3sFunPtr :: FunPtr (GLshort -> GLshort -> GLshort -> IO ())
+glColor3sFunPtr = unsafePerformIO (getProcAddress "glColor3s")
+
+{-# NOINLINE glColor3sFunPtr #-}
+
+glColor3sv :: MonadIO m => Ptr GLshort -> m ()
+glColor3sv = ffiPtrshortIOV glColor3svFunPtr
+
+glColor3svFunPtr :: FunPtr (Ptr GLshort -> IO ())
+glColor3svFunPtr = unsafePerformIO (getProcAddress "glColor3sv")
+
+{-# NOINLINE glColor3svFunPtr #-}
+
+glColor3ub :: MonadIO m => GLubyte -> GLubyte -> GLubyte -> m ()
+glColor3ub = ffiubyteubyteubyteIOV glColor3ubFunPtr
+
+glColor3ubFunPtr :: FunPtr (GLubyte -> GLubyte -> GLubyte -> IO ())
+glColor3ubFunPtr = unsafePerformIO (getProcAddress "glColor3ub")
+
+{-# NOINLINE glColor3ubFunPtr #-}
+
+glColor3ubv :: MonadIO m => Ptr GLubyte -> m ()
+glColor3ubv = ffiPtrubyteIOV glColor3ubvFunPtr
+
+glColor3ubvFunPtr :: FunPtr (Ptr GLubyte -> IO ())
+glColor3ubvFunPtr = unsafePerformIO (getProcAddress "glColor3ubv")
+
+{-# NOINLINE glColor3ubvFunPtr #-}
+
+glColor3ui :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()
+glColor3ui = ffiuintuintuintIOV glColor3uiFunPtr
+
+glColor3uiFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> IO ())
+glColor3uiFunPtr = unsafePerformIO (getProcAddress "glColor3ui")
+
+{-# NOINLINE glColor3uiFunPtr #-}
+
+glColor3uiv :: MonadIO m => Ptr GLuint -> m ()
+glColor3uiv = ffiPtruintIOV glColor3uivFunPtr
+
+glColor3uivFunPtr :: FunPtr (Ptr GLuint -> IO ())
+glColor3uivFunPtr = unsafePerformIO (getProcAddress "glColor3uiv")
+
+{-# NOINLINE glColor3uivFunPtr #-}
+
+glColor3us :: MonadIO m => GLushort -> GLushort -> GLushort -> m ()
+glColor3us = ffiushortushortushortIOV glColor3usFunPtr
+
+glColor3usFunPtr :: FunPtr (GLushort -> GLushort -> GLushort -> IO ())
+glColor3usFunPtr = unsafePerformIO (getProcAddress "glColor3us")
+
+{-# NOINLINE glColor3usFunPtr #-}
+
+glColor3usv :: MonadIO m => Ptr GLushort -> m ()
+glColor3usv = ffiPtrushortIOV glColor3usvFunPtr
+
+glColor3usvFunPtr :: FunPtr (Ptr GLushort -> IO ())
+glColor3usvFunPtr = unsafePerformIO (getProcAddress "glColor3usv")
+
+{-# NOINLINE glColor3usvFunPtr #-}
+
+glColor4b :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> GLbyte -> m ()
+glColor4b = ffibytebytebytebyteIOV glColor4bFunPtr
+
+glColor4bFunPtr :: FunPtr (GLbyte -> GLbyte -> GLbyte -> GLbyte -> IO ())
+glColor4bFunPtr = unsafePerformIO (getProcAddress "glColor4b")
+
+{-# NOINLINE glColor4bFunPtr #-}
+
+glColor4bv :: MonadIO m => Ptr GLbyte -> m ()
+glColor4bv = ffiPtrbyteIOV glColor4bvFunPtr
+
+glColor4bvFunPtr :: FunPtr (Ptr GLbyte -> IO ())
+glColor4bvFunPtr = unsafePerformIO (getProcAddress "glColor4bv")
+
+{-# NOINLINE glColor4bvFunPtr #-}
+
+glColor4d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
+glColor4d = ffidoubledoubledoubledoubleIOV glColor4dFunPtr
+
+glColor4dFunPtr :: FunPtr (GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
+glColor4dFunPtr = unsafePerformIO (getProcAddress "glColor4d")
+
+{-# NOINLINE glColor4dFunPtr #-}
+
+glColor4dv :: MonadIO m => Ptr GLdouble -> m ()
+glColor4dv = ffiPtrdoubleIOV glColor4dvFunPtr
+
+glColor4dvFunPtr :: FunPtr (Ptr GLdouble -> IO ())
+glColor4dvFunPtr = unsafePerformIO (getProcAddress "glColor4dv")
+
+{-# NOINLINE glColor4dvFunPtr #-}
+
+glColor4f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
+glColor4f = ffifloatfloatfloatfloatIOV glColor4fFunPtr
+
+glColor4fFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+glColor4fFunPtr = unsafePerformIO (getProcAddress "glColor4f")
+
+{-# NOINLINE glColor4fFunPtr #-}
+
+glColor4fv :: MonadIO m => Ptr GLfloat -> m ()
+glColor4fv = ffiPtrfloatIOV glColor4fvFunPtr
+
+glColor4fvFunPtr :: FunPtr (Ptr GLfloat -> IO ())
+glColor4fvFunPtr = unsafePerformIO (getProcAddress "glColor4fv")
+
+{-# NOINLINE glColor4fvFunPtr #-}
+
+glColor4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()
+glColor4i = ffiintintintintIOV glColor4iFunPtr
+
+glColor4iFunPtr :: FunPtr (GLint -> GLint -> GLint -> GLint -> IO ())
+glColor4iFunPtr = unsafePerformIO (getProcAddress "glColor4i")
+
+{-# NOINLINE glColor4iFunPtr #-}
+
+glColor4iv :: MonadIO m => Ptr GLint -> m ()
+glColor4iv = ffiPtrintIOV glColor4ivFunPtr
+
+glColor4ivFunPtr :: FunPtr (Ptr GLint -> IO ())
+glColor4ivFunPtr = unsafePerformIO (getProcAddress "glColor4iv")
+
+{-# NOINLINE glColor4ivFunPtr #-}
+
+glColor4s :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()
+glColor4s = ffishortshortshortshortIOV glColor4sFunPtr
+
+glColor4sFunPtr :: FunPtr (GLshort -> GLshort -> GLshort -> GLshort -> IO ())
+glColor4sFunPtr = unsafePerformIO (getProcAddress "glColor4s")
+
+{-# NOINLINE glColor4sFunPtr #-}
+
+glColor4sv :: MonadIO m => Ptr GLshort -> m ()
+glColor4sv = ffiPtrshortIOV glColor4svFunPtr
+
+glColor4svFunPtr :: FunPtr (Ptr GLshort -> IO ())
+glColor4svFunPtr = unsafePerformIO (getProcAddress "glColor4sv")
+
+{-# NOINLINE glColor4svFunPtr #-}
+
+glColor4ub :: MonadIO m => GLubyte -> GLubyte -> GLubyte -> GLubyte -> m ()
+glColor4ub = ffiubyteubyteubyteubyteIOV glColor4ubFunPtr
+
+glColor4ubFunPtr :: FunPtr (GLubyte -> GLubyte -> GLubyte -> GLubyte -> IO ())
+glColor4ubFunPtr = unsafePerformIO (getProcAddress "glColor4ub")
+
+{-# NOINLINE glColor4ubFunPtr #-}
+
+glColor4ubv :: MonadIO m => Ptr GLubyte -> m ()
+glColor4ubv = ffiPtrubyteIOV glColor4ubvFunPtr
+
+glColor4ubvFunPtr :: FunPtr (Ptr GLubyte -> IO ())
+glColor4ubvFunPtr = unsafePerformIO (getProcAddress "glColor4ubv")
+
+{-# NOINLINE glColor4ubvFunPtr #-}
+
+glColor4ui :: MonadIO m => GLuint -> GLuint -> GLuint -> GLuint -> m ()
+glColor4ui = ffiuintuintuintuintIOV glColor4uiFunPtr
+
+glColor4uiFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> GLuint -> IO ())
+glColor4uiFunPtr = unsafePerformIO (getProcAddress "glColor4ui")
+
+{-# NOINLINE glColor4uiFunPtr #-}
+
+glColor4uiv :: MonadIO m => Ptr GLuint -> m ()
+glColor4uiv = ffiPtruintIOV glColor4uivFunPtr
+
+glColor4uivFunPtr :: FunPtr (Ptr GLuint -> IO ())
+glColor4uivFunPtr = unsafePerformIO (getProcAddress "glColor4uiv")
+
+{-# NOINLINE glColor4uivFunPtr #-}
+
+glColor4us :: MonadIO m => GLushort -> GLushort -> GLushort -> GLushort -> m ()
+glColor4us = ffiushortushortushortushortIOV glColor4usFunPtr
+
+glColor4usFunPtr :: FunPtr (GLushort -> GLushort -> GLushort -> GLushort -> IO ())
+glColor4usFunPtr = unsafePerformIO (getProcAddress "glColor4us")
+
+{-# NOINLINE glColor4usFunPtr #-}
+
+glColor4usv :: MonadIO m => Ptr GLushort -> m ()
+glColor4usv = ffiPtrushortIOV glColor4usvFunPtr
+
+glColor4usvFunPtr :: FunPtr (Ptr GLushort -> IO ())
+glColor4usvFunPtr = unsafePerformIO (getProcAddress "glColor4usv")
+
+{-# NOINLINE glColor4usvFunPtr #-}
+
+glColorMaterial :: MonadIO m => GLenum -> GLenum -> m ()
+glColorMaterial = ffienumenumIOV glColorMaterialFunPtr
+
+glColorMaterialFunPtr :: FunPtr (GLenum -> GLenum -> IO ())
+glColorMaterialFunPtr = unsafePerformIO (getProcAddress "glColorMaterial")
+
+{-# NOINLINE glColorMaterialFunPtr #-}
+
+glColorPointer :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr () -> m ()
+glColorPointer = ffiintenumsizeiPtrVIOV glColorPointerFunPtr
+
+glColorPointerFunPtr :: FunPtr (GLint -> GLenum -> GLsizei -> Ptr () -> IO ())
+glColorPointerFunPtr = unsafePerformIO (getProcAddress "glColorPointer")
+
+{-# NOINLINE glColorPointerFunPtr #-}
+
+glCopyPixels :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> m ()
+glCopyPixels = ffiintintsizeisizeienumIOV glCopyPixelsFunPtr
+
+glCopyPixelsFunPtr :: FunPtr (GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> IO ())
+glCopyPixelsFunPtr = unsafePerformIO (getProcAddress "glCopyPixels")
+
+{-# NOINLINE glCopyPixelsFunPtr #-}
+
+glDeleteLists :: MonadIO m => GLuint -> GLsizei -> m ()
+glDeleteLists = ffiuintsizeiIOV glDeleteListsFunPtr
+
+glDeleteListsFunPtr :: FunPtr (GLuint -> GLsizei -> IO ())
+glDeleteListsFunPtr = unsafePerformIO (getProcAddress "glDeleteLists")
+
+{-# NOINLINE glDeleteListsFunPtr #-}
+
+glDisableClientState :: MonadIO m => GLenum -> m ()
+glDisableClientState = ffienumIOV glDisableClientStateFunPtr
+
+glDisableClientStateFunPtr :: FunPtr (GLenum -> IO ())
+glDisableClientStateFunPtr = unsafePerformIO (getProcAddress "glDisableClientState")
+
+{-# NOINLINE glDisableClientStateFunPtr #-}
+
+glDrawPixels :: MonadIO m => GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
+glDrawPixels = ffisizeisizeienumenumPtrVIOV glDrawPixelsFunPtr
+
+glDrawPixelsFunPtr :: FunPtr (GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ())
+glDrawPixelsFunPtr = unsafePerformIO (getProcAddress "glDrawPixels")
+
+{-# NOINLINE glDrawPixelsFunPtr #-}
+
+glEdgeFlag :: MonadIO m => GLboolean -> m ()
+glEdgeFlag = ffibooleanIOV glEdgeFlagFunPtr
+
+glEdgeFlagFunPtr :: FunPtr (GLboolean -> IO ())
+glEdgeFlagFunPtr = unsafePerformIO (getProcAddress "glEdgeFlag")
+
+{-# NOINLINE glEdgeFlagFunPtr #-}
+
+glEdgeFlagPointer :: MonadIO m => GLsizei -> Ptr () -> m ()
+glEdgeFlagPointer = ffisizeiPtrVIOV glEdgeFlagPointerFunPtr
+
+glEdgeFlagPointerFunPtr :: FunPtr (GLsizei -> Ptr () -> IO ())
+glEdgeFlagPointerFunPtr = unsafePerformIO (getProcAddress "glEdgeFlagPointer")
+
+{-# NOINLINE glEdgeFlagPointerFunPtr #-}
+
+glEdgeFlagv :: MonadIO m => Ptr GLboolean -> m ()
+glEdgeFlagv = ffiPtrbooleanIOV glEdgeFlagvFunPtr
+
+glEdgeFlagvFunPtr :: FunPtr (Ptr GLboolean -> IO ())
+glEdgeFlagvFunPtr = unsafePerformIO (getProcAddress "glEdgeFlagv")
+
+{-# NOINLINE glEdgeFlagvFunPtr #-}
+
+glEnableClientState :: MonadIO m => GLenum -> m ()
+glEnableClientState = ffienumIOV glEnableClientStateFunPtr
+
+glEnableClientStateFunPtr :: FunPtr (GLenum -> IO ())
+glEnableClientStateFunPtr = unsafePerformIO (getProcAddress "glEnableClientState")
+
+{-# NOINLINE glEnableClientStateFunPtr #-}
+
+glEnd :: MonadIO m => m ()
+glEnd = ffiIOV glEndFunPtr
+
+glEndFunPtr :: FunPtr (IO ())
+glEndFunPtr = unsafePerformIO (getProcAddress "glEnd")
+
+{-# NOINLINE glEndFunPtr #-}
+
+glEndList :: MonadIO m => m ()
+glEndList = ffiIOV glEndListFunPtr
+
+glEndListFunPtr :: FunPtr (IO ())
+glEndListFunPtr = unsafePerformIO (getProcAddress "glEndList")
+
+{-# NOINLINE glEndListFunPtr #-}
+
+glEvalCoord1d :: MonadIO m => GLdouble -> m ()
+glEvalCoord1d = ffidoubleIOV glEvalCoord1dFunPtr
+
+glEvalCoord1dFunPtr :: FunPtr (GLdouble -> IO ())
+glEvalCoord1dFunPtr = unsafePerformIO (getProcAddress "glEvalCoord1d")
+
+{-# NOINLINE glEvalCoord1dFunPtr #-}
+
+glEvalCoord1dv :: MonadIO m => Ptr GLdouble -> m ()
+glEvalCoord1dv = ffiPtrdoubleIOV glEvalCoord1dvFunPtr
+
+glEvalCoord1dvFunPtr :: FunPtr (Ptr GLdouble -> IO ())
+glEvalCoord1dvFunPtr = unsafePerformIO (getProcAddress "glEvalCoord1dv")
+
+{-# NOINLINE glEvalCoord1dvFunPtr #-}
+
+glEvalCoord1f :: MonadIO m => GLfloat -> m ()
+glEvalCoord1f = ffifloatIOV glEvalCoord1fFunPtr
+
+glEvalCoord1fFunPtr :: FunPtr (GLfloat -> IO ())
+glEvalCoord1fFunPtr = unsafePerformIO (getProcAddress "glEvalCoord1f")
+
+{-# NOINLINE glEvalCoord1fFunPtr #-}
+
+glEvalCoord1fv :: MonadIO m => Ptr GLfloat -> m ()
+glEvalCoord1fv = ffiPtrfloatIOV glEvalCoord1fvFunPtr
+
+glEvalCoord1fvFunPtr :: FunPtr (Ptr GLfloat -> IO ())
+glEvalCoord1fvFunPtr = unsafePerformIO (getProcAddress "glEvalCoord1fv")
+
+{-# NOINLINE glEvalCoord1fvFunPtr #-}
+
+glEvalCoord2d :: MonadIO m => GLdouble -> GLdouble -> m ()
+glEvalCoord2d = ffidoubledoubleIOV glEvalCoord2dFunPtr
+
+glEvalCoord2dFunPtr :: FunPtr (GLdouble -> GLdouble -> IO ())
+glEvalCoord2dFunPtr = unsafePerformIO (getProcAddress "glEvalCoord2d")
+
+{-# NOINLINE glEvalCoord2dFunPtr #-}
+
+glEvalCoord2dv :: MonadIO m => Ptr GLdouble -> m ()
+glEvalCoord2dv = ffiPtrdoubleIOV glEvalCoord2dvFunPtr
+
+glEvalCoord2dvFunPtr :: FunPtr (Ptr GLdouble -> IO ())
+glEvalCoord2dvFunPtr = unsafePerformIO (getProcAddress "glEvalCoord2dv")
+
+{-# NOINLINE glEvalCoord2dvFunPtr #-}
+
+glEvalCoord2f :: MonadIO m => GLfloat -> GLfloat -> m ()
+glEvalCoord2f = ffifloatfloatIOV glEvalCoord2fFunPtr
+
+glEvalCoord2fFunPtr :: FunPtr (GLfloat -> GLfloat -> IO ())
+glEvalCoord2fFunPtr = unsafePerformIO (getProcAddress "glEvalCoord2f")
+
+{-# NOINLINE glEvalCoord2fFunPtr #-}
+
+glEvalCoord2fv :: MonadIO m => Ptr GLfloat -> m ()
+glEvalCoord2fv = ffiPtrfloatIOV glEvalCoord2fvFunPtr
+
+glEvalCoord2fvFunPtr :: FunPtr (Ptr GLfloat -> IO ())
+glEvalCoord2fvFunPtr = unsafePerformIO (getProcAddress "glEvalCoord2fv")
+
+{-# NOINLINE glEvalCoord2fvFunPtr #-}
+
+glEvalMesh1 :: MonadIO m => GLenum -> GLint -> GLint -> m ()
+glEvalMesh1 = ffienumintintIOV glEvalMesh1FunPtr
+
+glEvalMesh1FunPtr :: FunPtr (GLenum -> GLint -> GLint -> IO ())
+glEvalMesh1FunPtr = unsafePerformIO (getProcAddress "glEvalMesh1")
+
+{-# NOINLINE glEvalMesh1FunPtr #-}
+
+glEvalMesh2 :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> m ()
+glEvalMesh2 = ffienumintintintintIOV glEvalMesh2FunPtr
+
+glEvalMesh2FunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> IO ())
+glEvalMesh2FunPtr = unsafePerformIO (getProcAddress "glEvalMesh2")
+
+{-# NOINLINE glEvalMesh2FunPtr #-}
+
+glEvalPoint1 :: MonadIO m => GLint -> m ()
+glEvalPoint1 = ffiintIOV glEvalPoint1FunPtr
+
+glEvalPoint1FunPtr :: FunPtr (GLint -> IO ())
+glEvalPoint1FunPtr = unsafePerformIO (getProcAddress "glEvalPoint1")
+
+{-# NOINLINE glEvalPoint1FunPtr #-}
+
+glEvalPoint2 :: MonadIO m => GLint -> GLint -> m ()
+glEvalPoint2 = ffiintintIOV glEvalPoint2FunPtr
+
+glEvalPoint2FunPtr :: FunPtr (GLint -> GLint -> IO ())
+glEvalPoint2FunPtr = unsafePerformIO (getProcAddress "glEvalPoint2")
+
+{-# NOINLINE glEvalPoint2FunPtr #-}
+
+glFeedbackBuffer :: MonadIO m => GLsizei -> GLenum -> Ptr GLfloat -> m ()
+glFeedbackBuffer = ffisizeienumPtrfloatIOV glFeedbackBufferFunPtr
+
+glFeedbackBufferFunPtr :: FunPtr (GLsizei -> GLenum -> Ptr GLfloat -> IO ())
+glFeedbackBufferFunPtr = unsafePerformIO (getProcAddress "glFeedbackBuffer")
+
+{-# NOINLINE glFeedbackBufferFunPtr #-}
+
+glFogCoordPointer :: MonadIO m => GLenum -> GLsizei -> Ptr () -> m ()
+glFogCoordPointer = ffienumsizeiPtrVIOV glFogCoordPointerFunPtr
+
+glFogCoordPointerFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr () -> IO ())
+glFogCoordPointerFunPtr = unsafePerformIO (getProcAddress "glFogCoordPointer")
+
+{-# NOINLINE glFogCoordPointerFunPtr #-}
+
+glFogCoordd :: MonadIO m => GLdouble -> m ()
+glFogCoordd = ffidoubleIOV glFogCoorddFunPtr
+
+glFogCoorddFunPtr :: FunPtr (GLdouble -> IO ())
+glFogCoorddFunPtr = unsafePerformIO (getProcAddress "glFogCoordd")
+
+{-# NOINLINE glFogCoorddFunPtr #-}
+
+glFogCoorddv :: MonadIO m => Ptr GLdouble -> m ()
+glFogCoorddv = ffiPtrdoubleIOV glFogCoorddvFunPtr
+
+glFogCoorddvFunPtr :: FunPtr (Ptr GLdouble -> IO ())
+glFogCoorddvFunPtr = unsafePerformIO (getProcAddress "glFogCoorddv")
+
+{-# NOINLINE glFogCoorddvFunPtr #-}
+
+glFogCoordf :: MonadIO m => GLfloat -> m ()
+glFogCoordf = ffifloatIOV glFogCoordfFunPtr
+
+glFogCoordfFunPtr :: FunPtr (GLfloat -> IO ())
+glFogCoordfFunPtr = unsafePerformIO (getProcAddress "glFogCoordf")
+
+{-# NOINLINE glFogCoordfFunPtr #-}
+
+glFogCoordfv :: MonadIO m => Ptr GLfloat -> m ()
+glFogCoordfv = ffiPtrfloatIOV glFogCoordfvFunPtr
+
+glFogCoordfvFunPtr :: FunPtr (Ptr GLfloat -> IO ())
+glFogCoordfvFunPtr = unsafePerformIO (getProcAddress "glFogCoordfv")
+
+{-# NOINLINE glFogCoordfvFunPtr #-}
+
+glFogf :: MonadIO m => GLenum -> GLfloat -> m ()
+glFogf = ffienumfloatIOV glFogfFunPtr
+
+glFogfFunPtr :: FunPtr (GLenum -> GLfloat -> IO ())
+glFogfFunPtr = unsafePerformIO (getProcAddress "glFogf")
+
+{-# NOINLINE glFogfFunPtr #-}
+
+glFogfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
+glFogfv = ffienumPtrfloatIOV glFogfvFunPtr
+
+glFogfvFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
+glFogfvFunPtr = unsafePerformIO (getProcAddress "glFogfv")
+
+{-# NOINLINE glFogfvFunPtr #-}
+
+glFogi :: MonadIO m => GLenum -> GLint -> m ()
+glFogi = ffienumintIOV glFogiFunPtr
+
+glFogiFunPtr :: FunPtr (GLenum -> GLint -> IO ())
+glFogiFunPtr = unsafePerformIO (getProcAddress "glFogi")
+
+{-# NOINLINE glFogiFunPtr #-}
+
+glFogiv :: MonadIO m => GLenum -> Ptr GLint -> m ()
+glFogiv = ffienumPtrintIOV glFogivFunPtr
+
+glFogivFunPtr :: FunPtr (GLenum -> Ptr GLint -> IO ())
+glFogivFunPtr = unsafePerformIO (getProcAddress "glFogiv")
+
+{-# NOINLINE glFogivFunPtr #-}
+
+glFrustum :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
+glFrustum = ffidoubledoubledoubledoubledoubledoubleIOV glFrustumFunPtr
+
+glFrustumFunPtr :: FunPtr (GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
+glFrustumFunPtr = unsafePerformIO (getProcAddress "glFrustum")
+
+{-# NOINLINE glFrustumFunPtr #-}
+
+glGenLists :: MonadIO m => GLsizei -> m GLuint
+glGenLists = ffisizeiIOuint glGenListsFunPtr
+
+glGenListsFunPtr :: FunPtr (GLsizei -> IO GLuint)
+glGenListsFunPtr = unsafePerformIO (getProcAddress "glGenLists")
+
+{-# NOINLINE glGenListsFunPtr #-}
+
+glGetClipPlane :: MonadIO m => GLenum -> Ptr GLdouble -> m ()
+glGetClipPlane = ffienumPtrdoubleIOV glGetClipPlaneFunPtr
+
+glGetClipPlaneFunPtr :: FunPtr (GLenum -> Ptr GLdouble -> IO ())
+glGetClipPlaneFunPtr = unsafePerformIO (getProcAddress "glGetClipPlane")
+
+{-# NOINLINE glGetClipPlaneFunPtr #-}
+
+glGetLightfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
+glGetLightfv = ffienumenumPtrfloatIOV glGetLightfvFunPtr
+
+glGetLightfvFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
+glGetLightfvFunPtr = unsafePerformIO (getProcAddress "glGetLightfv")
+
+{-# NOINLINE glGetLightfvFunPtr #-}
+
+glGetLightiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
+glGetLightiv = ffienumenumPtrintIOV glGetLightivFunPtr
+
+glGetLightivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+glGetLightivFunPtr = unsafePerformIO (getProcAddress "glGetLightiv")
+
+{-# NOINLINE glGetLightivFunPtr #-}
+
+glGetMapdv :: MonadIO m => GLenum -> GLenum -> Ptr GLdouble -> m ()
+glGetMapdv = ffienumenumPtrdoubleIOV glGetMapdvFunPtr
+
+glGetMapdvFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLdouble -> IO ())
+glGetMapdvFunPtr = unsafePerformIO (getProcAddress "glGetMapdv")
+
+{-# NOINLINE glGetMapdvFunPtr #-}
+
+glGetMapfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
+glGetMapfv = ffienumenumPtrfloatIOV glGetMapfvFunPtr
+
+glGetMapfvFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
+glGetMapfvFunPtr = unsafePerformIO (getProcAddress "glGetMapfv")
+
+{-# NOINLINE glGetMapfvFunPtr #-}
+
+glGetMapiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
+glGetMapiv = ffienumenumPtrintIOV glGetMapivFunPtr
+
+glGetMapivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+glGetMapivFunPtr = unsafePerformIO (getProcAddress "glGetMapiv")
+
+{-# NOINLINE glGetMapivFunPtr #-}
+
+glGetMaterialfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
+glGetMaterialfv = ffienumenumPtrfloatIOV glGetMaterialfvFunPtr
+
+glGetMaterialfvFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
+glGetMaterialfvFunPtr = unsafePerformIO (getProcAddress "glGetMaterialfv")
+
+{-# NOINLINE glGetMaterialfvFunPtr #-}
+
+glGetMaterialiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
+glGetMaterialiv = ffienumenumPtrintIOV glGetMaterialivFunPtr
+
+glGetMaterialivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+glGetMaterialivFunPtr = unsafePerformIO (getProcAddress "glGetMaterialiv")
+
+{-# NOINLINE glGetMaterialivFunPtr #-}
+
+glGetPixelMapfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
+glGetPixelMapfv = ffienumPtrfloatIOV glGetPixelMapfvFunPtr
+
+glGetPixelMapfvFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
+glGetPixelMapfvFunPtr = unsafePerformIO (getProcAddress "glGetPixelMapfv")
+
+{-# NOINLINE glGetPixelMapfvFunPtr #-}
+
+glGetPixelMapuiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
+glGetPixelMapuiv = ffienumPtruintIOV glGetPixelMapuivFunPtr
+
+glGetPixelMapuivFunPtr :: FunPtr (GLenum -> Ptr GLuint -> IO ())
+glGetPixelMapuivFunPtr = unsafePerformIO (getProcAddress "glGetPixelMapuiv")
+
+{-# NOINLINE glGetPixelMapuivFunPtr #-}
+
+glGetPixelMapusv :: MonadIO m => GLenum -> Ptr GLushort -> m ()
+glGetPixelMapusv = ffienumPtrushortIOV glGetPixelMapusvFunPtr
+
+glGetPixelMapusvFunPtr :: FunPtr (GLenum -> Ptr GLushort -> IO ())
+glGetPixelMapusvFunPtr = unsafePerformIO (getProcAddress "glGetPixelMapusv")
+
+{-# NOINLINE glGetPixelMapusvFunPtr #-}
+
+glGetPolygonStipple :: MonadIO m => Ptr GLubyte -> m ()
+glGetPolygonStipple = ffiPtrubyteIOV glGetPolygonStippleFunPtr
+
+glGetPolygonStippleFunPtr :: FunPtr (Ptr GLubyte -> IO ())
+glGetPolygonStippleFunPtr = unsafePerformIO (getProcAddress "glGetPolygonStipple")
+
+{-# NOINLINE glGetPolygonStippleFunPtr #-}
+
+glGetTexEnvfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
+glGetTexEnvfv = ffienumenumPtrfloatIOV glGetTexEnvfvFunPtr
+
+glGetTexEnvfvFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
+glGetTexEnvfvFunPtr = unsafePerformIO (getProcAddress "glGetTexEnvfv")
+
+{-# NOINLINE glGetTexEnvfvFunPtr #-}
+
+glGetTexEnviv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
+glGetTexEnviv = ffienumenumPtrintIOV glGetTexEnvivFunPtr
+
+glGetTexEnvivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+glGetTexEnvivFunPtr = unsafePerformIO (getProcAddress "glGetTexEnviv")
+
+{-# NOINLINE glGetTexEnvivFunPtr #-}
+
+glGetTexGendv :: MonadIO m => GLenum -> GLenum -> Ptr GLdouble -> m ()
+glGetTexGendv = ffienumenumPtrdoubleIOV glGetTexGendvFunPtr
+
+glGetTexGendvFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLdouble -> IO ())
+glGetTexGendvFunPtr = unsafePerformIO (getProcAddress "glGetTexGendv")
+
+{-# NOINLINE glGetTexGendvFunPtr #-}
+
+glGetTexGenfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
+glGetTexGenfv = ffienumenumPtrfloatIOV glGetTexGenfvFunPtr
+
+glGetTexGenfvFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
+glGetTexGenfvFunPtr = unsafePerformIO (getProcAddress "glGetTexGenfv")
+
+{-# NOINLINE glGetTexGenfvFunPtr #-}
+
+glGetTexGeniv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
+glGetTexGeniv = ffienumenumPtrintIOV glGetTexGenivFunPtr
+
+glGetTexGenivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+glGetTexGenivFunPtr = unsafePerformIO (getProcAddress "glGetTexGeniv")
+
+{-# NOINLINE glGetTexGenivFunPtr #-}
+
+glIndexMask :: MonadIO m => GLuint -> m ()
+glIndexMask = ffiuintIOV glIndexMaskFunPtr
+
+glIndexMaskFunPtr :: FunPtr (GLuint -> IO ())
+glIndexMaskFunPtr = unsafePerformIO (getProcAddress "glIndexMask")
+
+{-# NOINLINE glIndexMaskFunPtr #-}
+
+glIndexPointer :: MonadIO m => GLenum -> GLsizei -> Ptr () -> m ()
+glIndexPointer = ffienumsizeiPtrVIOV glIndexPointerFunPtr
+
+glIndexPointerFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr () -> IO ())
+glIndexPointerFunPtr = unsafePerformIO (getProcAddress "glIndexPointer")
+
+{-# NOINLINE glIndexPointerFunPtr #-}
+
+glIndexd :: MonadIO m => GLdouble -> m ()
+glIndexd = ffidoubleIOV glIndexdFunPtr
+
+glIndexdFunPtr :: FunPtr (GLdouble -> IO ())
+glIndexdFunPtr = unsafePerformIO (getProcAddress "glIndexd")
+
+{-# NOINLINE glIndexdFunPtr #-}
+
+glIndexdv :: MonadIO m => Ptr GLdouble -> m ()
+glIndexdv = ffiPtrdoubleIOV glIndexdvFunPtr
+
+glIndexdvFunPtr :: FunPtr (Ptr GLdouble -> IO ())
+glIndexdvFunPtr = unsafePerformIO (getProcAddress "glIndexdv")
+
+{-# NOINLINE glIndexdvFunPtr #-}
+
+glIndexf :: MonadIO m => GLfloat -> m ()
+glIndexf = ffifloatIOV glIndexfFunPtr
+
+glIndexfFunPtr :: FunPtr (GLfloat -> IO ())
+glIndexfFunPtr = unsafePerformIO (getProcAddress "glIndexf")
+
+{-# NOINLINE glIndexfFunPtr #-}
+
+glIndexfv :: MonadIO m => Ptr GLfloat -> m ()
+glIndexfv = ffiPtrfloatIOV glIndexfvFunPtr
+
+glIndexfvFunPtr :: FunPtr (Ptr GLfloat -> IO ())
+glIndexfvFunPtr = unsafePerformIO (getProcAddress "glIndexfv")
+
+{-# NOINLINE glIndexfvFunPtr #-}
+
+glIndexi :: MonadIO m => GLint -> m ()
+glIndexi = ffiintIOV glIndexiFunPtr
+
+glIndexiFunPtr :: FunPtr (GLint -> IO ())
+glIndexiFunPtr = unsafePerformIO (getProcAddress "glIndexi")
+
+{-# NOINLINE glIndexiFunPtr #-}
+
+glIndexiv :: MonadIO m => Ptr GLint -> m ()
+glIndexiv = ffiPtrintIOV glIndexivFunPtr
+
+glIndexivFunPtr :: FunPtr (Ptr GLint -> IO ())
+glIndexivFunPtr = unsafePerformIO (getProcAddress "glIndexiv")
+
+{-# NOINLINE glIndexivFunPtr #-}
+
+glIndexs :: MonadIO m => GLshort -> m ()
+glIndexs = ffishortIOV glIndexsFunPtr
+
+glIndexsFunPtr :: FunPtr (GLshort -> IO ())
+glIndexsFunPtr = unsafePerformIO (getProcAddress "glIndexs")
+
+{-# NOINLINE glIndexsFunPtr #-}
+
+glIndexsv :: MonadIO m => Ptr GLshort -> m ()
+glIndexsv = ffiPtrshortIOV glIndexsvFunPtr
+
+glIndexsvFunPtr :: FunPtr (Ptr GLshort -> IO ())
+glIndexsvFunPtr = unsafePerformIO (getProcAddress "glIndexsv")
+
+{-# NOINLINE glIndexsvFunPtr #-}
+
+glIndexub :: MonadIO m => GLubyte -> m ()
+glIndexub = ffiubyteIOV glIndexubFunPtr
+
+glIndexubFunPtr :: FunPtr (GLubyte -> IO ())
+glIndexubFunPtr = unsafePerformIO (getProcAddress "glIndexub")
+
+{-# NOINLINE glIndexubFunPtr #-}
+
+glIndexubv :: MonadIO m => Ptr GLubyte -> m ()
+glIndexubv = ffiPtrubyteIOV glIndexubvFunPtr
+
+glIndexubvFunPtr :: FunPtr (Ptr GLubyte -> IO ())
+glIndexubvFunPtr = unsafePerformIO (getProcAddress "glIndexubv")
+
+{-# NOINLINE glIndexubvFunPtr #-}
+
+glInitNames :: MonadIO m => m ()
+glInitNames = ffiIOV glInitNamesFunPtr
+
+glInitNamesFunPtr :: FunPtr (IO ())
+glInitNamesFunPtr = unsafePerformIO (getProcAddress "glInitNames")
+
+{-# NOINLINE glInitNamesFunPtr #-}
+
+glInterleavedArrays :: MonadIO m => GLenum -> GLsizei -> Ptr () -> m ()
+glInterleavedArrays = ffienumsizeiPtrVIOV glInterleavedArraysFunPtr
+
+glInterleavedArraysFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr () -> IO ())
+glInterleavedArraysFunPtr = unsafePerformIO (getProcAddress "glInterleavedArrays")
+
+{-# NOINLINE glInterleavedArraysFunPtr #-}
+
+glIsList :: MonadIO m => GLuint -> m GLboolean
+glIsList = ffiuintIOboolean glIsListFunPtr
+
+glIsListFunPtr :: FunPtr (GLuint -> IO GLboolean)
+glIsListFunPtr = unsafePerformIO (getProcAddress "glIsList")
+
+{-# NOINLINE glIsListFunPtr #-}
+
+glLightModelf :: MonadIO m => GLenum -> GLfloat -> m ()
+glLightModelf = ffienumfloatIOV glLightModelfFunPtr
+
+glLightModelfFunPtr :: FunPtr (GLenum -> GLfloat -> IO ())
+glLightModelfFunPtr = unsafePerformIO (getProcAddress "glLightModelf")
+
+{-# NOINLINE glLightModelfFunPtr #-}
+
+glLightModelfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
+glLightModelfv = ffienumPtrfloatIOV glLightModelfvFunPtr
+
+glLightModelfvFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
+glLightModelfvFunPtr = unsafePerformIO (getProcAddress "glLightModelfv")
+
+{-# NOINLINE glLightModelfvFunPtr #-}
+
+glLightModeli :: MonadIO m => GLenum -> GLint -> m ()
+glLightModeli = ffienumintIOV glLightModeliFunPtr
+
+glLightModeliFunPtr :: FunPtr (GLenum -> GLint -> IO ())
+glLightModeliFunPtr = unsafePerformIO (getProcAddress "glLightModeli")
+
+{-# NOINLINE glLightModeliFunPtr #-}
+
+glLightModeliv :: MonadIO m => GLenum -> Ptr GLint -> m ()
+glLightModeliv = ffienumPtrintIOV glLightModelivFunPtr
+
+glLightModelivFunPtr :: FunPtr (GLenum -> Ptr GLint -> IO ())
+glLightModelivFunPtr = unsafePerformIO (getProcAddress "glLightModeliv")
+
+{-# NOINLINE glLightModelivFunPtr #-}
+
+glLightf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()
+glLightf = ffienumenumfloatIOV glLightfFunPtr
+
+glLightfFunPtr :: FunPtr (GLenum -> GLenum -> GLfloat -> IO ())
+glLightfFunPtr = unsafePerformIO (getProcAddress "glLightf")
+
+{-# NOINLINE glLightfFunPtr #-}
+
+glLightfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
+glLightfv = ffienumenumPtrfloatIOV glLightfvFunPtr
+
+glLightfvFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
+glLightfvFunPtr = unsafePerformIO (getProcAddress "glLightfv")
+
+{-# NOINLINE glLightfvFunPtr #-}
+
+glLighti :: MonadIO m => GLenum -> GLenum -> GLint -> m ()
+glLighti = ffienumenumintIOV glLightiFunPtr
+
+glLightiFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> IO ())
+glLightiFunPtr = unsafePerformIO (getProcAddress "glLighti")
+
+{-# NOINLINE glLightiFunPtr #-}
+
+glLightiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
+glLightiv = ffienumenumPtrintIOV glLightivFunPtr
+
+glLightivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+glLightivFunPtr = unsafePerformIO (getProcAddress "glLightiv")
+
+{-# NOINLINE glLightivFunPtr #-}
+
+glLineStipple :: MonadIO m => GLint -> GLushort -> m ()
+glLineStipple = ffiintushortIOV glLineStippleFunPtr
+
+glLineStippleFunPtr :: FunPtr (GLint -> GLushort -> IO ())
+glLineStippleFunPtr = unsafePerformIO (getProcAddress "glLineStipple")
+
+{-# NOINLINE glLineStippleFunPtr #-}
+
+glListBase :: MonadIO m => GLuint -> m ()
+glListBase = ffiuintIOV glListBaseFunPtr
+
+glListBaseFunPtr :: FunPtr (GLuint -> IO ())
+glListBaseFunPtr = unsafePerformIO (getProcAddress "glListBase")
+
+{-# NOINLINE glListBaseFunPtr #-}
+
+glLoadIdentity :: MonadIO m => m ()
+glLoadIdentity = ffiIOV glLoadIdentityFunPtr
+
+glLoadIdentityFunPtr :: FunPtr (IO ())
+glLoadIdentityFunPtr = unsafePerformIO (getProcAddress "glLoadIdentity")
+
+{-# NOINLINE glLoadIdentityFunPtr #-}
+
+glLoadMatrixd :: MonadIO m => Ptr GLdouble -> m ()
+glLoadMatrixd = ffiPtrdoubleIOV glLoadMatrixdFunPtr
+
+glLoadMatrixdFunPtr :: FunPtr (Ptr GLdouble -> IO ())
+glLoadMatrixdFunPtr = unsafePerformIO (getProcAddress "glLoadMatrixd")
+
+{-# NOINLINE glLoadMatrixdFunPtr #-}
+
+glLoadMatrixf :: MonadIO m => Ptr GLfloat -> m ()
+glLoadMatrixf = ffiPtrfloatIOV glLoadMatrixfFunPtr
+
+glLoadMatrixfFunPtr :: FunPtr (Ptr GLfloat -> IO ())
+glLoadMatrixfFunPtr = unsafePerformIO (getProcAddress "glLoadMatrixf")
+
+{-# NOINLINE glLoadMatrixfFunPtr #-}
+
+glLoadName :: MonadIO m => GLuint -> m ()
+glLoadName = ffiuintIOV glLoadNameFunPtr
+
+glLoadNameFunPtr :: FunPtr (GLuint -> IO ())
+glLoadNameFunPtr = unsafePerformIO (getProcAddress "glLoadName")
+
+{-# NOINLINE glLoadNameFunPtr #-}
+
+glLoadTransposeMatrixd :: MonadIO m => Ptr GLdouble -> m ()
+glLoadTransposeMatrixd = ffiPtrdoubleIOV glLoadTransposeMatrixdFunPtr
+
+glLoadTransposeMatrixdFunPtr :: FunPtr (Ptr GLdouble -> IO ())
+glLoadTransposeMatrixdFunPtr = unsafePerformIO (getProcAddress "glLoadTransposeMatrixd")
+
+{-# NOINLINE glLoadTransposeMatrixdFunPtr #-}
+
+glLoadTransposeMatrixf :: MonadIO m => Ptr GLfloat -> m ()
+glLoadTransposeMatrixf = ffiPtrfloatIOV glLoadTransposeMatrixfFunPtr
+
+glLoadTransposeMatrixfFunPtr :: FunPtr (Ptr GLfloat -> IO ())
+glLoadTransposeMatrixfFunPtr = unsafePerformIO (getProcAddress "glLoadTransposeMatrixf")
+
+{-# NOINLINE glLoadTransposeMatrixfFunPtr #-}
+
+glMap1d :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> m ()
+glMap1d = ffienumdoubledoubleintintPtrdoubleIOV glMap1dFunPtr
+
+glMap1dFunPtr :: FunPtr (GLenum -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> IO ())
+glMap1dFunPtr = unsafePerformIO (getProcAddress "glMap1d")
+
+{-# NOINLINE glMap1dFunPtr #-}
+
+glMap1f :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> m ()
+glMap1f = ffienumfloatfloatintintPtrfloatIOV glMap1fFunPtr
+
+glMap1fFunPtr :: FunPtr (GLenum -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> IO ())
+glMap1fFunPtr = unsafePerformIO (getProcAddress "glMap1f")
+
+{-# NOINLINE glMap1fFunPtr #-}
+
+glMap2d :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLint -> GLint -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> m ()
+glMap2d = ffienumdoubledoubleintintdoubledoubleintintPtrdoubleIOV glMap2dFunPtr
+
+glMap2dFunPtr :: FunPtr (GLenum -> GLdouble -> GLdouble -> GLint -> GLint -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> IO ())
+glMap2dFunPtr = unsafePerformIO (getProcAddress "glMap2d")
+
+{-# NOINLINE glMap2dFunPtr #-}
+
+glMap2f :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLint -> GLint -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> m ()
+glMap2f = ffienumfloatfloatintintfloatfloatintintPtrfloatIOV glMap2fFunPtr
+
+glMap2fFunPtr :: FunPtr (GLenum -> GLfloat -> GLfloat -> GLint -> GLint -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> IO ())
+glMap2fFunPtr = unsafePerformIO (getProcAddress "glMap2f")
+
+{-# NOINLINE glMap2fFunPtr #-}
+
+glMapGrid1d :: MonadIO m => GLint -> GLdouble -> GLdouble -> m ()
+glMapGrid1d = ffiintdoubledoubleIOV glMapGrid1dFunPtr
+
+glMapGrid1dFunPtr :: FunPtr (GLint -> GLdouble -> GLdouble -> IO ())
+glMapGrid1dFunPtr = unsafePerformIO (getProcAddress "glMapGrid1d")
+
+{-# NOINLINE glMapGrid1dFunPtr #-}
+
+glMapGrid1f :: MonadIO m => GLint -> GLfloat -> GLfloat -> m ()
+glMapGrid1f = ffiintfloatfloatIOV glMapGrid1fFunPtr
+
+glMapGrid1fFunPtr :: FunPtr (GLint -> GLfloat -> GLfloat -> IO ())
+glMapGrid1fFunPtr = unsafePerformIO (getProcAddress "glMapGrid1f")
+
+{-# NOINLINE glMapGrid1fFunPtr #-}
+
+glMapGrid2d :: MonadIO m => GLint -> GLdouble -> GLdouble -> GLint -> GLdouble -> GLdouble -> m ()
+glMapGrid2d = ffiintdoubledoubleintdoubledoubleIOV glMapGrid2dFunPtr
+
+glMapGrid2dFunPtr :: FunPtr (GLint -> GLdouble -> GLdouble -> GLint -> GLdouble -> GLdouble -> IO ())
+glMapGrid2dFunPtr = unsafePerformIO (getProcAddress "glMapGrid2d")
+
+{-# NOINLINE glMapGrid2dFunPtr #-}
+
+glMapGrid2f :: MonadIO m => GLint -> GLfloat -> GLfloat -> GLint -> GLfloat -> GLfloat -> m ()
+glMapGrid2f = ffiintfloatfloatintfloatfloatIOV glMapGrid2fFunPtr
+
+glMapGrid2fFunPtr :: FunPtr (GLint -> GLfloat -> GLfloat -> GLint -> GLfloat -> GLfloat -> IO ())
+glMapGrid2fFunPtr = unsafePerformIO (getProcAddress "glMapGrid2f")
+
+{-# NOINLINE glMapGrid2fFunPtr #-}
+
+glMaterialf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()
+glMaterialf = ffienumenumfloatIOV glMaterialfFunPtr
+
+glMaterialfFunPtr :: FunPtr (GLenum -> GLenum -> GLfloat -> IO ())
+glMaterialfFunPtr = unsafePerformIO (getProcAddress "glMaterialf")
+
+{-# NOINLINE glMaterialfFunPtr #-}
+
+glMaterialfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
+glMaterialfv = ffienumenumPtrfloatIOV glMaterialfvFunPtr
+
+glMaterialfvFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
+glMaterialfvFunPtr = unsafePerformIO (getProcAddress "glMaterialfv")
+
+{-# NOINLINE glMaterialfvFunPtr #-}
+
+glMateriali :: MonadIO m => GLenum -> GLenum -> GLint -> m ()
+glMateriali = ffienumenumintIOV glMaterialiFunPtr
+
+glMaterialiFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> IO ())
+glMaterialiFunPtr = unsafePerformIO (getProcAddress "glMateriali")
+
+{-# NOINLINE glMaterialiFunPtr #-}
+
+glMaterialiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
+glMaterialiv = ffienumenumPtrintIOV glMaterialivFunPtr
+
+glMaterialivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+glMaterialivFunPtr = unsafePerformIO (getProcAddress "glMaterialiv")
+
+{-# NOINLINE glMaterialivFunPtr #-}
+
+glMatrixMode :: MonadIO m => GLenum -> m ()
+glMatrixMode = ffienumIOV glMatrixModeFunPtr
+
+glMatrixModeFunPtr :: FunPtr (GLenum -> IO ())
+glMatrixModeFunPtr = unsafePerformIO (getProcAddress "glMatrixMode")
+
+{-# NOINLINE glMatrixModeFunPtr #-}
+
+glMultMatrixd :: MonadIO m => Ptr GLdouble -> m ()
+glMultMatrixd = ffiPtrdoubleIOV glMultMatrixdFunPtr
+
+glMultMatrixdFunPtr :: FunPtr (Ptr GLdouble -> IO ())
+glMultMatrixdFunPtr = unsafePerformIO (getProcAddress "glMultMatrixd")
+
+{-# NOINLINE glMultMatrixdFunPtr #-}
+
+glMultMatrixf :: MonadIO m => Ptr GLfloat -> m ()
+glMultMatrixf = ffiPtrfloatIOV glMultMatrixfFunPtr
+
+glMultMatrixfFunPtr :: FunPtr (Ptr GLfloat -> IO ())
+glMultMatrixfFunPtr = unsafePerformIO (getProcAddress "glMultMatrixf")
+
+{-# NOINLINE glMultMatrixfFunPtr #-}
+
+glMultTransposeMatrixd :: MonadIO m => Ptr GLdouble -> m ()
+glMultTransposeMatrixd = ffiPtrdoubleIOV glMultTransposeMatrixdFunPtr
+
+glMultTransposeMatrixdFunPtr :: FunPtr (Ptr GLdouble -> IO ())
+glMultTransposeMatrixdFunPtr = unsafePerformIO (getProcAddress "glMultTransposeMatrixd")
+
+{-# NOINLINE glMultTransposeMatrixdFunPtr #-}
+
+glMultTransposeMatrixf :: MonadIO m => Ptr GLfloat -> m ()
+glMultTransposeMatrixf = ffiPtrfloatIOV glMultTransposeMatrixfFunPtr
+
+glMultTransposeMatrixfFunPtr :: FunPtr (Ptr GLfloat -> IO ())
+glMultTransposeMatrixfFunPtr = unsafePerformIO (getProcAddress "glMultTransposeMatrixf")
+
+{-# NOINLINE glMultTransposeMatrixfFunPtr #-}
+
+glMultiTexCoord1d :: MonadIO m => GLenum -> GLdouble -> m ()
+glMultiTexCoord1d = ffienumdoubleIOV glMultiTexCoord1dFunPtr
+
+glMultiTexCoord1dFunPtr :: FunPtr (GLenum -> GLdouble -> IO ())
+glMultiTexCoord1dFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord1d")
+
+{-# NOINLINE glMultiTexCoord1dFunPtr #-}
+
+glMultiTexCoord1dv :: MonadIO m => GLenum -> Ptr GLdouble -> m ()
+glMultiTexCoord1dv = ffienumPtrdoubleIOV glMultiTexCoord1dvFunPtr
+
+glMultiTexCoord1dvFunPtr :: FunPtr (GLenum -> Ptr GLdouble -> IO ())
+glMultiTexCoord1dvFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord1dv")
+
+{-# NOINLINE glMultiTexCoord1dvFunPtr #-}
+
+glMultiTexCoord1f :: MonadIO m => GLenum -> GLfloat -> m ()
+glMultiTexCoord1f = ffienumfloatIOV glMultiTexCoord1fFunPtr
+
+glMultiTexCoord1fFunPtr :: FunPtr (GLenum -> GLfloat -> IO ())
+glMultiTexCoord1fFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord1f")
+
+{-# NOINLINE glMultiTexCoord1fFunPtr #-}
+
+glMultiTexCoord1fv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
+glMultiTexCoord1fv = ffienumPtrfloatIOV glMultiTexCoord1fvFunPtr
+
+glMultiTexCoord1fvFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
+glMultiTexCoord1fvFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord1fv")
+
+{-# NOINLINE glMultiTexCoord1fvFunPtr #-}
+
+glMultiTexCoord1i :: MonadIO m => GLenum -> GLint -> m ()
+glMultiTexCoord1i = ffienumintIOV glMultiTexCoord1iFunPtr
+
+glMultiTexCoord1iFunPtr :: FunPtr (GLenum -> GLint -> IO ())
+glMultiTexCoord1iFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord1i")
+
+{-# NOINLINE glMultiTexCoord1iFunPtr #-}
+
+glMultiTexCoord1iv :: MonadIO m => GLenum -> Ptr GLint -> m ()
+glMultiTexCoord1iv = ffienumPtrintIOV glMultiTexCoord1ivFunPtr
+
+glMultiTexCoord1ivFunPtr :: FunPtr (GLenum -> Ptr GLint -> IO ())
+glMultiTexCoord1ivFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord1iv")
+
+{-# NOINLINE glMultiTexCoord1ivFunPtr #-}
+
+glMultiTexCoord1s :: MonadIO m => GLenum -> GLshort -> m ()
+glMultiTexCoord1s = ffienumshortIOV glMultiTexCoord1sFunPtr
+
+glMultiTexCoord1sFunPtr :: FunPtr (GLenum -> GLshort -> IO ())
+glMultiTexCoord1sFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord1s")
+
+{-# NOINLINE glMultiTexCoord1sFunPtr #-}
+
+glMultiTexCoord1sv :: MonadIO m => GLenum -> Ptr GLshort -> m ()
+glMultiTexCoord1sv = ffienumPtrshortIOV glMultiTexCoord1svFunPtr
+
+glMultiTexCoord1svFunPtr :: FunPtr (GLenum -> Ptr GLshort -> IO ())
+glMultiTexCoord1svFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord1sv")
+
+{-# NOINLINE glMultiTexCoord1svFunPtr #-}
+
+glMultiTexCoord2d :: MonadIO m => GLenum -> GLdouble -> GLdouble -> m ()
+glMultiTexCoord2d = ffienumdoubledoubleIOV glMultiTexCoord2dFunPtr
+
+glMultiTexCoord2dFunPtr :: FunPtr (GLenum -> GLdouble -> GLdouble -> IO ())
+glMultiTexCoord2dFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord2d")
+
+{-# NOINLINE glMultiTexCoord2dFunPtr #-}
+
+glMultiTexCoord2dv :: MonadIO m => GLenum -> Ptr GLdouble -> m ()
+glMultiTexCoord2dv = ffienumPtrdoubleIOV glMultiTexCoord2dvFunPtr
+
+glMultiTexCoord2dvFunPtr :: FunPtr (GLenum -> Ptr GLdouble -> IO ())
+glMultiTexCoord2dvFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord2dv")
+
+{-# NOINLINE glMultiTexCoord2dvFunPtr #-}
+
+glMultiTexCoord2f :: MonadIO m => GLenum -> GLfloat -> GLfloat -> m ()
+glMultiTexCoord2f = ffienumfloatfloatIOV glMultiTexCoord2fFunPtr
+
+glMultiTexCoord2fFunPtr :: FunPtr (GLenum -> GLfloat -> GLfloat -> IO ())
+glMultiTexCoord2fFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord2f")
+
+{-# NOINLINE glMultiTexCoord2fFunPtr #-}
+
+glMultiTexCoord2fv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
+glMultiTexCoord2fv = ffienumPtrfloatIOV glMultiTexCoord2fvFunPtr
+
+glMultiTexCoord2fvFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
+glMultiTexCoord2fvFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord2fv")
+
+{-# NOINLINE glMultiTexCoord2fvFunPtr #-}
+
+glMultiTexCoord2i :: MonadIO m => GLenum -> GLint -> GLint -> m ()
+glMultiTexCoord2i = ffienumintintIOV glMultiTexCoord2iFunPtr
+
+glMultiTexCoord2iFunPtr :: FunPtr (GLenum -> GLint -> GLint -> IO ())
+glMultiTexCoord2iFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord2i")
+
+{-# NOINLINE glMultiTexCoord2iFunPtr #-}
+
+glMultiTexCoord2iv :: MonadIO m => GLenum -> Ptr GLint -> m ()
+glMultiTexCoord2iv = ffienumPtrintIOV glMultiTexCoord2ivFunPtr
+
+glMultiTexCoord2ivFunPtr :: FunPtr (GLenum -> Ptr GLint -> IO ())
+glMultiTexCoord2ivFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord2iv")
+
+{-# NOINLINE glMultiTexCoord2ivFunPtr #-}
+
+glMultiTexCoord2s :: MonadIO m => GLenum -> GLshort -> GLshort -> m ()
+glMultiTexCoord2s = ffienumshortshortIOV glMultiTexCoord2sFunPtr
+
+glMultiTexCoord2sFunPtr :: FunPtr (GLenum -> GLshort -> GLshort -> IO ())
+glMultiTexCoord2sFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord2s")
+
+{-# NOINLINE glMultiTexCoord2sFunPtr #-}
+
+glMultiTexCoord2sv :: MonadIO m => GLenum -> Ptr GLshort -> m ()
+glMultiTexCoord2sv = ffienumPtrshortIOV glMultiTexCoord2svFunPtr
+
+glMultiTexCoord2svFunPtr :: FunPtr (GLenum -> Ptr GLshort -> IO ())
+glMultiTexCoord2svFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord2sv")
+
+{-# NOINLINE glMultiTexCoord2svFunPtr #-}
+
+glMultiTexCoord3d :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLdouble -> m ()
+glMultiTexCoord3d = ffienumdoubledoubledoubleIOV glMultiTexCoord3dFunPtr
+
+glMultiTexCoord3dFunPtr :: FunPtr (GLenum -> GLdouble -> GLdouble -> GLdouble -> IO ())
+glMultiTexCoord3dFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord3d")
+
+{-# NOINLINE glMultiTexCoord3dFunPtr #-}
+
+glMultiTexCoord3dv :: MonadIO m => GLenum -> Ptr GLdouble -> m ()
+glMultiTexCoord3dv = ffienumPtrdoubleIOV glMultiTexCoord3dvFunPtr
+
+glMultiTexCoord3dvFunPtr :: FunPtr (GLenum -> Ptr GLdouble -> IO ())
+glMultiTexCoord3dvFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord3dv")
+
+{-# NOINLINE glMultiTexCoord3dvFunPtr #-}
+
+glMultiTexCoord3f :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLfloat -> m ()
+glMultiTexCoord3f = ffienumfloatfloatfloatIOV glMultiTexCoord3fFunPtr
+
+glMultiTexCoord3fFunPtr :: FunPtr (GLenum -> GLfloat -> GLfloat -> GLfloat -> IO ())
+glMultiTexCoord3fFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord3f")
+
+{-# NOINLINE glMultiTexCoord3fFunPtr #-}
+
+glMultiTexCoord3fv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
+glMultiTexCoord3fv = ffienumPtrfloatIOV glMultiTexCoord3fvFunPtr
+
+glMultiTexCoord3fvFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
+glMultiTexCoord3fvFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord3fv")
+
+{-# NOINLINE glMultiTexCoord3fvFunPtr #-}
+
+glMultiTexCoord3i :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> m ()
+glMultiTexCoord3i = ffienumintintintIOV glMultiTexCoord3iFunPtr
+
+glMultiTexCoord3iFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLint -> IO ())
+glMultiTexCoord3iFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord3i")
+
+{-# NOINLINE glMultiTexCoord3iFunPtr #-}
+
+glMultiTexCoord3iv :: MonadIO m => GLenum -> Ptr GLint -> m ()
+glMultiTexCoord3iv = ffienumPtrintIOV glMultiTexCoord3ivFunPtr
+
+glMultiTexCoord3ivFunPtr :: FunPtr (GLenum -> Ptr GLint -> IO ())
+glMultiTexCoord3ivFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord3iv")
+
+{-# NOINLINE glMultiTexCoord3ivFunPtr #-}
+
+glMultiTexCoord3s :: MonadIO m => GLenum -> GLshort -> GLshort -> GLshort -> m ()
+glMultiTexCoord3s = ffienumshortshortshortIOV glMultiTexCoord3sFunPtr
+
+glMultiTexCoord3sFunPtr :: FunPtr (GLenum -> GLshort -> GLshort -> GLshort -> IO ())
+glMultiTexCoord3sFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord3s")
+
+{-# NOINLINE glMultiTexCoord3sFunPtr #-}
+
+glMultiTexCoord3sv :: MonadIO m => GLenum -> Ptr GLshort -> m ()
+glMultiTexCoord3sv = ffienumPtrshortIOV glMultiTexCoord3svFunPtr
+
+glMultiTexCoord3svFunPtr :: FunPtr (GLenum -> Ptr GLshort -> IO ())
+glMultiTexCoord3svFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord3sv")
+
+{-# NOINLINE glMultiTexCoord3svFunPtr #-}
+
+glMultiTexCoord4d :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
+glMultiTexCoord4d = ffienumdoubledoubledoubledoubleIOV glMultiTexCoord4dFunPtr
+
+glMultiTexCoord4dFunPtr :: FunPtr (GLenum -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
+glMultiTexCoord4dFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord4d")
+
+{-# NOINLINE glMultiTexCoord4dFunPtr #-}
+
+glMultiTexCoord4dv :: MonadIO m => GLenum -> Ptr GLdouble -> m ()
+glMultiTexCoord4dv = ffienumPtrdoubleIOV glMultiTexCoord4dvFunPtr
+
+glMultiTexCoord4dvFunPtr :: FunPtr (GLenum -> Ptr GLdouble -> IO ())
+glMultiTexCoord4dvFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord4dv")
+
+{-# NOINLINE glMultiTexCoord4dvFunPtr #-}
+
+glMultiTexCoord4f :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
+glMultiTexCoord4f = ffienumfloatfloatfloatfloatIOV glMultiTexCoord4fFunPtr
+
+glMultiTexCoord4fFunPtr :: FunPtr (GLenum -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+glMultiTexCoord4fFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord4f")
+
+{-# NOINLINE glMultiTexCoord4fFunPtr #-}
+
+glMultiTexCoord4fv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
+glMultiTexCoord4fv = ffienumPtrfloatIOV glMultiTexCoord4fvFunPtr
+
+glMultiTexCoord4fvFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
+glMultiTexCoord4fvFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord4fv")
+
+{-# NOINLINE glMultiTexCoord4fvFunPtr #-}
+
+glMultiTexCoord4i :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> m ()
+glMultiTexCoord4i = ffienumintintintintIOV glMultiTexCoord4iFunPtr
+
+glMultiTexCoord4iFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> IO ())
+glMultiTexCoord4iFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord4i")
+
+{-# NOINLINE glMultiTexCoord4iFunPtr #-}
+
+glMultiTexCoord4iv :: MonadIO m => GLenum -> Ptr GLint -> m ()
+glMultiTexCoord4iv = ffienumPtrintIOV glMultiTexCoord4ivFunPtr
+
+glMultiTexCoord4ivFunPtr :: FunPtr (GLenum -> Ptr GLint -> IO ())
+glMultiTexCoord4ivFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord4iv")
+
+{-# NOINLINE glMultiTexCoord4ivFunPtr #-}
+
+glMultiTexCoord4s :: MonadIO m => GLenum -> GLshort -> GLshort -> GLshort -> GLshort -> m ()
+glMultiTexCoord4s = ffienumshortshortshortshortIOV glMultiTexCoord4sFunPtr
+
+glMultiTexCoord4sFunPtr :: FunPtr (GLenum -> GLshort -> GLshort -> GLshort -> GLshort -> IO ())
+glMultiTexCoord4sFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord4s")
+
+{-# NOINLINE glMultiTexCoord4sFunPtr #-}
+
+glMultiTexCoord4sv :: MonadIO m => GLenum -> Ptr GLshort -> m ()
+glMultiTexCoord4sv = ffienumPtrshortIOV glMultiTexCoord4svFunPtr
+
+glMultiTexCoord4svFunPtr :: FunPtr (GLenum -> Ptr GLshort -> IO ())
+glMultiTexCoord4svFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord4sv")
+
+{-# NOINLINE glMultiTexCoord4svFunPtr #-}
+
+glNewList :: MonadIO m => GLuint -> GLenum -> m ()
+glNewList = ffiuintenumIOV glNewListFunPtr
+
+glNewListFunPtr :: FunPtr (GLuint -> GLenum -> IO ())
+glNewListFunPtr = unsafePerformIO (getProcAddress "glNewList")
+
+{-# NOINLINE glNewListFunPtr #-}
+
+glNormal3b :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> m ()
+glNormal3b = ffibytebytebyteIOV glNormal3bFunPtr
+
+glNormal3bFunPtr :: FunPtr (GLbyte -> GLbyte -> GLbyte -> IO ())
+glNormal3bFunPtr = unsafePerformIO (getProcAddress "glNormal3b")
+
+{-# NOINLINE glNormal3bFunPtr #-}
+
+glNormal3bv :: MonadIO m => Ptr GLbyte -> m ()
+glNormal3bv = ffiPtrbyteIOV glNormal3bvFunPtr
+
+glNormal3bvFunPtr :: FunPtr (Ptr GLbyte -> IO ())
+glNormal3bvFunPtr = unsafePerformIO (getProcAddress "glNormal3bv")
+
+{-# NOINLINE glNormal3bvFunPtr #-}
+
+glNormal3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()
+glNormal3d = ffidoubledoubledoubleIOV glNormal3dFunPtr
+
+glNormal3dFunPtr :: FunPtr (GLdouble -> GLdouble -> GLdouble -> IO ())
+glNormal3dFunPtr = unsafePerformIO (getProcAddress "glNormal3d")
+
+{-# NOINLINE glNormal3dFunPtr #-}
+
+glNormal3dv :: MonadIO m => Ptr GLdouble -> m ()
+glNormal3dv = ffiPtrdoubleIOV glNormal3dvFunPtr
+
+glNormal3dvFunPtr :: FunPtr (Ptr GLdouble -> IO ())
+glNormal3dvFunPtr = unsafePerformIO (getProcAddress "glNormal3dv")
+
+{-# NOINLINE glNormal3dvFunPtr #-}
+
+glNormal3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()
+glNormal3f = ffifloatfloatfloatIOV glNormal3fFunPtr
+
+glNormal3fFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> IO ())
+glNormal3fFunPtr = unsafePerformIO (getProcAddress "glNormal3f")
+
+{-# NOINLINE glNormal3fFunPtr #-}
+
+glNormal3fv :: MonadIO m => Ptr GLfloat -> m ()
+glNormal3fv = ffiPtrfloatIOV glNormal3fvFunPtr
+
+glNormal3fvFunPtr :: FunPtr (Ptr GLfloat -> IO ())
+glNormal3fvFunPtr = unsafePerformIO (getProcAddress "glNormal3fv")
+
+{-# NOINLINE glNormal3fvFunPtr #-}
+
+glNormal3i :: MonadIO m => GLint -> GLint -> GLint -> m ()
+glNormal3i = ffiintintintIOV glNormal3iFunPtr
+
+glNormal3iFunPtr :: FunPtr (GLint -> GLint -> GLint -> IO ())
+glNormal3iFunPtr = unsafePerformIO (getProcAddress "glNormal3i")
+
+{-# NOINLINE glNormal3iFunPtr #-}
+
+glNormal3iv :: MonadIO m => Ptr GLint -> m ()
+glNormal3iv = ffiPtrintIOV glNormal3ivFunPtr
+
+glNormal3ivFunPtr :: FunPtr (Ptr GLint -> IO ())
+glNormal3ivFunPtr = unsafePerformIO (getProcAddress "glNormal3iv")
+
+{-# NOINLINE glNormal3ivFunPtr #-}
+
+glNormal3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()
+glNormal3s = ffishortshortshortIOV glNormal3sFunPtr
+
+glNormal3sFunPtr :: FunPtr (GLshort -> GLshort -> GLshort -> IO ())
+glNormal3sFunPtr = unsafePerformIO (getProcAddress "glNormal3s")
+
+{-# NOINLINE glNormal3sFunPtr #-}
+
+glNormal3sv :: MonadIO m => Ptr GLshort -> m ()
+glNormal3sv = ffiPtrshortIOV glNormal3svFunPtr
+
+glNormal3svFunPtr :: FunPtr (Ptr GLshort -> IO ())
+glNormal3svFunPtr = unsafePerformIO (getProcAddress "glNormal3sv")
+
+{-# NOINLINE glNormal3svFunPtr #-}
+
+glNormalPointer :: MonadIO m => GLenum -> GLsizei -> Ptr () -> m ()
+glNormalPointer = ffienumsizeiPtrVIOV glNormalPointerFunPtr
+
+glNormalPointerFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr () -> IO ())
+glNormalPointerFunPtr = unsafePerformIO (getProcAddress "glNormalPointer")
+
+{-# NOINLINE glNormalPointerFunPtr #-}
+
+glOrtho :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
+glOrtho = ffidoubledoubledoubledoubledoubledoubleIOV glOrthoFunPtr
+
+glOrthoFunPtr :: FunPtr (GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
+glOrthoFunPtr = unsafePerformIO (getProcAddress "glOrtho")
+
+{-# NOINLINE glOrthoFunPtr #-}
+
+glPassThrough :: MonadIO m => GLfloat -> m ()
+glPassThrough = ffifloatIOV glPassThroughFunPtr
+
+glPassThroughFunPtr :: FunPtr (GLfloat -> IO ())
+glPassThroughFunPtr = unsafePerformIO (getProcAddress "glPassThrough")
+
+{-# NOINLINE glPassThroughFunPtr #-}
+
+glPixelMapfv :: MonadIO m => GLenum -> GLsizei -> Ptr GLfloat -> m ()
+glPixelMapfv = ffienumsizeiPtrfloatIOV glPixelMapfvFunPtr
+
+glPixelMapfvFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr GLfloat -> IO ())
+glPixelMapfvFunPtr = unsafePerformIO (getProcAddress "glPixelMapfv")
+
+{-# NOINLINE glPixelMapfvFunPtr #-}
+
+glPixelMapuiv :: MonadIO m => GLenum -> GLsizei -> Ptr GLuint -> m ()
+glPixelMapuiv = ffienumsizeiPtruintIOV glPixelMapuivFunPtr
+
+glPixelMapuivFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr GLuint -> IO ())
+glPixelMapuivFunPtr = unsafePerformIO (getProcAddress "glPixelMapuiv")
+
+{-# NOINLINE glPixelMapuivFunPtr #-}
+
+glPixelMapusv :: MonadIO m => GLenum -> GLsizei -> Ptr GLushort -> m ()
+glPixelMapusv = ffienumsizeiPtrushortIOV glPixelMapusvFunPtr
+
+glPixelMapusvFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr GLushort -> IO ())
+glPixelMapusvFunPtr = unsafePerformIO (getProcAddress "glPixelMapusv")
+
+{-# NOINLINE glPixelMapusvFunPtr #-}
+
+glPixelTransferf :: MonadIO m => GLenum -> GLfloat -> m ()
+glPixelTransferf = ffienumfloatIOV glPixelTransferfFunPtr
+
+glPixelTransferfFunPtr :: FunPtr (GLenum -> GLfloat -> IO ())
+glPixelTransferfFunPtr = unsafePerformIO (getProcAddress "glPixelTransferf")
+
+{-# NOINLINE glPixelTransferfFunPtr #-}
+
+glPixelTransferi :: MonadIO m => GLenum -> GLint -> m ()
+glPixelTransferi = ffienumintIOV glPixelTransferiFunPtr
+
+glPixelTransferiFunPtr :: FunPtr (GLenum -> GLint -> IO ())
+glPixelTransferiFunPtr = unsafePerformIO (getProcAddress "glPixelTransferi")
+
+{-# NOINLINE glPixelTransferiFunPtr #-}
+
+glPixelZoom :: MonadIO m => GLfloat -> GLfloat -> m ()
+glPixelZoom = ffifloatfloatIOV glPixelZoomFunPtr
+
+glPixelZoomFunPtr :: FunPtr (GLfloat -> GLfloat -> IO ())
+glPixelZoomFunPtr = unsafePerformIO (getProcAddress "glPixelZoom")
+
+{-# NOINLINE glPixelZoomFunPtr #-}
+
+glPolygonStipple :: MonadIO m => Ptr GLubyte -> m ()
+glPolygonStipple = ffiPtrubyteIOV glPolygonStippleFunPtr
+
+glPolygonStippleFunPtr :: FunPtr (Ptr GLubyte -> IO ())
+glPolygonStippleFunPtr = unsafePerformIO (getProcAddress "glPolygonStipple")
+
+{-# NOINLINE glPolygonStippleFunPtr #-}
+
+glPopAttrib :: MonadIO m => m ()
+glPopAttrib = ffiIOV glPopAttribFunPtr
+
+glPopAttribFunPtr :: FunPtr (IO ())
+glPopAttribFunPtr = unsafePerformIO (getProcAddress "glPopAttrib")
+
+{-# NOINLINE glPopAttribFunPtr #-}
+
+glPopClientAttrib :: MonadIO m => m ()
+glPopClientAttrib = ffiIOV glPopClientAttribFunPtr
+
+glPopClientAttribFunPtr :: FunPtr (IO ())
+glPopClientAttribFunPtr = unsafePerformIO (getProcAddress "glPopClientAttrib")
+
+{-# NOINLINE glPopClientAttribFunPtr #-}
+
+glPopMatrix :: MonadIO m => m ()
+glPopMatrix = ffiIOV glPopMatrixFunPtr
+
+glPopMatrixFunPtr :: FunPtr (IO ())
+glPopMatrixFunPtr = unsafePerformIO (getProcAddress "glPopMatrix")
+
+{-# NOINLINE glPopMatrixFunPtr #-}
+
+glPopName :: MonadIO m => m ()
+glPopName = ffiIOV glPopNameFunPtr
+
+glPopNameFunPtr :: FunPtr (IO ())
+glPopNameFunPtr = unsafePerformIO (getProcAddress "glPopName")
+
+{-# NOINLINE glPopNameFunPtr #-}
+
+glPrioritizeTextures :: MonadIO m => GLsizei -> Ptr GLuint -> Ptr GLfloat -> m ()
+glPrioritizeTextures = ffisizeiPtruintPtrfloatIOV glPrioritizeTexturesFunPtr
+
+glPrioritizeTexturesFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> Ptr GLfloat -> IO ())
+glPrioritizeTexturesFunPtr = unsafePerformIO (getProcAddress "glPrioritizeTextures")
+
+{-# NOINLINE glPrioritizeTexturesFunPtr #-}
+
+glPushAttrib :: MonadIO m => GLbitfield -> m ()
+glPushAttrib = ffibitfieldIOV glPushAttribFunPtr
+
+glPushAttribFunPtr :: FunPtr (GLbitfield -> IO ())
+glPushAttribFunPtr = unsafePerformIO (getProcAddress "glPushAttrib")
+
+{-# NOINLINE glPushAttribFunPtr #-}
+
+glPushClientAttrib :: MonadIO m => GLbitfield -> m ()
+glPushClientAttrib = ffibitfieldIOV glPushClientAttribFunPtr
+
+glPushClientAttribFunPtr :: FunPtr (GLbitfield -> IO ())
+glPushClientAttribFunPtr = unsafePerformIO (getProcAddress "glPushClientAttrib")
+
+{-# NOINLINE glPushClientAttribFunPtr #-}
+
+glPushMatrix :: MonadIO m => m ()
+glPushMatrix = ffiIOV glPushMatrixFunPtr
+
+glPushMatrixFunPtr :: FunPtr (IO ())
+glPushMatrixFunPtr = unsafePerformIO (getProcAddress "glPushMatrix")
+
+{-# NOINLINE glPushMatrixFunPtr #-}
+
+glPushName :: MonadIO m => GLuint -> m ()
+glPushName = ffiuintIOV glPushNameFunPtr
+
+glPushNameFunPtr :: FunPtr (GLuint -> IO ())
+glPushNameFunPtr = unsafePerformIO (getProcAddress "glPushName")
+
+{-# NOINLINE glPushNameFunPtr #-}
+
+glRasterPos2d :: MonadIO m => GLdouble -> GLdouble -> m ()
+glRasterPos2d = ffidoubledoubleIOV glRasterPos2dFunPtr
+
+glRasterPos2dFunPtr :: FunPtr (GLdouble -> GLdouble -> IO ())
+glRasterPos2dFunPtr = unsafePerformIO (getProcAddress "glRasterPos2d")
+
+{-# NOINLINE glRasterPos2dFunPtr #-}
+
+glRasterPos2dv :: MonadIO m => Ptr GLdouble -> m ()
+glRasterPos2dv = ffiPtrdoubleIOV glRasterPos2dvFunPtr
+
+glRasterPos2dvFunPtr :: FunPtr (Ptr GLdouble -> IO ())
+glRasterPos2dvFunPtr = unsafePerformIO (getProcAddress "glRasterPos2dv")
+
+{-# NOINLINE glRasterPos2dvFunPtr #-}
+
+glRasterPos2f :: MonadIO m => GLfloat -> GLfloat -> m ()
+glRasterPos2f = ffifloatfloatIOV glRasterPos2fFunPtr
+
+glRasterPos2fFunPtr :: FunPtr (GLfloat -> GLfloat -> IO ())
+glRasterPos2fFunPtr = unsafePerformIO (getProcAddress "glRasterPos2f")
+
+{-# NOINLINE glRasterPos2fFunPtr #-}
+
+glRasterPos2fv :: MonadIO m => Ptr GLfloat -> m ()
+glRasterPos2fv = ffiPtrfloatIOV glRasterPos2fvFunPtr
+
+glRasterPos2fvFunPtr :: FunPtr (Ptr GLfloat -> IO ())
+glRasterPos2fvFunPtr = unsafePerformIO (getProcAddress "glRasterPos2fv")
+
+{-# NOINLINE glRasterPos2fvFunPtr #-}
+
+glRasterPos2i :: MonadIO m => GLint -> GLint -> m ()
+glRasterPos2i = ffiintintIOV glRasterPos2iFunPtr
+
+glRasterPos2iFunPtr :: FunPtr (GLint -> GLint -> IO ())
+glRasterPos2iFunPtr = unsafePerformIO (getProcAddress "glRasterPos2i")
+
+{-# NOINLINE glRasterPos2iFunPtr #-}
+
+glRasterPos2iv :: MonadIO m => Ptr GLint -> m ()
+glRasterPos2iv = ffiPtrintIOV glRasterPos2ivFunPtr
+
+glRasterPos2ivFunPtr :: FunPtr (Ptr GLint -> IO ())
+glRasterPos2ivFunPtr = unsafePerformIO (getProcAddress "glRasterPos2iv")
+
+{-# NOINLINE glRasterPos2ivFunPtr #-}
+
+glRasterPos2s :: MonadIO m => GLshort -> GLshort -> m ()
+glRasterPos2s = ffishortshortIOV glRasterPos2sFunPtr
+
+glRasterPos2sFunPtr :: FunPtr (GLshort -> GLshort -> IO ())
+glRasterPos2sFunPtr = unsafePerformIO (getProcAddress "glRasterPos2s")
+
+{-# NOINLINE glRasterPos2sFunPtr #-}
+
+glRasterPos2sv :: MonadIO m => Ptr GLshort -> m ()
+glRasterPos2sv = ffiPtrshortIOV glRasterPos2svFunPtr
+
+glRasterPos2svFunPtr :: FunPtr (Ptr GLshort -> IO ())
+glRasterPos2svFunPtr = unsafePerformIO (getProcAddress "glRasterPos2sv")
+
+{-# NOINLINE glRasterPos2svFunPtr #-}
+
+glRasterPos3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()
+glRasterPos3d = ffidoubledoubledoubleIOV glRasterPos3dFunPtr
+
+glRasterPos3dFunPtr :: FunPtr (GLdouble -> GLdouble -> GLdouble -> IO ())
+glRasterPos3dFunPtr = unsafePerformIO (getProcAddress "glRasterPos3d")
+
+{-# NOINLINE glRasterPos3dFunPtr #-}
+
+glRasterPos3dv :: MonadIO m => Ptr GLdouble -> m ()
+glRasterPos3dv = ffiPtrdoubleIOV glRasterPos3dvFunPtr
+
+glRasterPos3dvFunPtr :: FunPtr (Ptr GLdouble -> IO ())
+glRasterPos3dvFunPtr = unsafePerformIO (getProcAddress "glRasterPos3dv")
+
+{-# NOINLINE glRasterPos3dvFunPtr #-}
+
+glRasterPos3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()
+glRasterPos3f = ffifloatfloatfloatIOV glRasterPos3fFunPtr
+
+glRasterPos3fFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> IO ())
+glRasterPos3fFunPtr = unsafePerformIO (getProcAddress "glRasterPos3f")
+
+{-# NOINLINE glRasterPos3fFunPtr #-}
+
+glRasterPos3fv :: MonadIO m => Ptr GLfloat -> m ()
+glRasterPos3fv = ffiPtrfloatIOV glRasterPos3fvFunPtr
+
+glRasterPos3fvFunPtr :: FunPtr (Ptr GLfloat -> IO ())
+glRasterPos3fvFunPtr = unsafePerformIO (getProcAddress "glRasterPos3fv")
+
+{-# NOINLINE glRasterPos3fvFunPtr #-}
+
+glRasterPos3i :: MonadIO m => GLint -> GLint -> GLint -> m ()
+glRasterPos3i = ffiintintintIOV glRasterPos3iFunPtr
+
+glRasterPos3iFunPtr :: FunPtr (GLint -> GLint -> GLint -> IO ())
+glRasterPos3iFunPtr = unsafePerformIO (getProcAddress "glRasterPos3i")
+
+{-# NOINLINE glRasterPos3iFunPtr #-}
+
+glRasterPos3iv :: MonadIO m => Ptr GLint -> m ()
+glRasterPos3iv = ffiPtrintIOV glRasterPos3ivFunPtr
+
+glRasterPos3ivFunPtr :: FunPtr (Ptr GLint -> IO ())
+glRasterPos3ivFunPtr = unsafePerformIO (getProcAddress "glRasterPos3iv")
+
+{-# NOINLINE glRasterPos3ivFunPtr #-}
+
+glRasterPos3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()
+glRasterPos3s = ffishortshortshortIOV glRasterPos3sFunPtr
+
+glRasterPos3sFunPtr :: FunPtr (GLshort -> GLshort -> GLshort -> IO ())
+glRasterPos3sFunPtr = unsafePerformIO (getProcAddress "glRasterPos3s")
+
+{-# NOINLINE glRasterPos3sFunPtr #-}
+
+glRasterPos3sv :: MonadIO m => Ptr GLshort -> m ()
+glRasterPos3sv = ffiPtrshortIOV glRasterPos3svFunPtr
+
+glRasterPos3svFunPtr :: FunPtr (Ptr GLshort -> IO ())
+glRasterPos3svFunPtr = unsafePerformIO (getProcAddress "glRasterPos3sv")
+
+{-# NOINLINE glRasterPos3svFunPtr #-}
+
+glRasterPos4d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
+glRasterPos4d = ffidoubledoubledoubledoubleIOV glRasterPos4dFunPtr
+
+glRasterPos4dFunPtr :: FunPtr (GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
+glRasterPos4dFunPtr = unsafePerformIO (getProcAddress "glRasterPos4d")
+
+{-# NOINLINE glRasterPos4dFunPtr #-}
+
+glRasterPos4dv :: MonadIO m => Ptr GLdouble -> m ()
+glRasterPos4dv = ffiPtrdoubleIOV glRasterPos4dvFunPtr
+
+glRasterPos4dvFunPtr :: FunPtr (Ptr GLdouble -> IO ())
+glRasterPos4dvFunPtr = unsafePerformIO (getProcAddress "glRasterPos4dv")
+
+{-# NOINLINE glRasterPos4dvFunPtr #-}
+
+glRasterPos4f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
+glRasterPos4f = ffifloatfloatfloatfloatIOV glRasterPos4fFunPtr
+
+glRasterPos4fFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+glRasterPos4fFunPtr = unsafePerformIO (getProcAddress "glRasterPos4f")
+
+{-# NOINLINE glRasterPos4fFunPtr #-}
+
+glRasterPos4fv :: MonadIO m => Ptr GLfloat -> m ()
+glRasterPos4fv = ffiPtrfloatIOV glRasterPos4fvFunPtr
+
+glRasterPos4fvFunPtr :: FunPtr (Ptr GLfloat -> IO ())
+glRasterPos4fvFunPtr = unsafePerformIO (getProcAddress "glRasterPos4fv")
+
+{-# NOINLINE glRasterPos4fvFunPtr #-}
+
+glRasterPos4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()
+glRasterPos4i = ffiintintintintIOV glRasterPos4iFunPtr
+
+glRasterPos4iFunPtr :: FunPtr (GLint -> GLint -> GLint -> GLint -> IO ())
+glRasterPos4iFunPtr = unsafePerformIO (getProcAddress "glRasterPos4i")
+
+{-# NOINLINE glRasterPos4iFunPtr #-}
+
+glRasterPos4iv :: MonadIO m => Ptr GLint -> m ()
+glRasterPos4iv = ffiPtrintIOV glRasterPos4ivFunPtr
+
+glRasterPos4ivFunPtr :: FunPtr (Ptr GLint -> IO ())
+glRasterPos4ivFunPtr = unsafePerformIO (getProcAddress "glRasterPos4iv")
+
+{-# NOINLINE glRasterPos4ivFunPtr #-}
+
+glRasterPos4s :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()
+glRasterPos4s = ffishortshortshortshortIOV glRasterPos4sFunPtr
+
+glRasterPos4sFunPtr :: FunPtr (GLshort -> GLshort -> GLshort -> GLshort -> IO ())
+glRasterPos4sFunPtr = unsafePerformIO (getProcAddress "glRasterPos4s")
+
+{-# NOINLINE glRasterPos4sFunPtr #-}
+
+glRasterPos4sv :: MonadIO m => Ptr GLshort -> m ()
+glRasterPos4sv = ffiPtrshortIOV glRasterPos4svFunPtr
+
+glRasterPos4svFunPtr :: FunPtr (Ptr GLshort -> IO ())
+glRasterPos4svFunPtr = unsafePerformIO (getProcAddress "glRasterPos4sv")
+
+{-# NOINLINE glRasterPos4svFunPtr #-}
+
+glRectd :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
+glRectd = ffidoubledoubledoubledoubleIOV glRectdFunPtr
+
+glRectdFunPtr :: FunPtr (GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
+glRectdFunPtr = unsafePerformIO (getProcAddress "glRectd")
+
+{-# NOINLINE glRectdFunPtr #-}
+
+glRectdv :: MonadIO m => Ptr GLdouble -> Ptr GLdouble -> m ()
+glRectdv = ffiPtrdoublePtrdoubleIOV glRectdvFunPtr
+
+glRectdvFunPtr :: FunPtr (Ptr GLdouble -> Ptr GLdouble -> IO ())
+glRectdvFunPtr = unsafePerformIO (getProcAddress "glRectdv")
+
+{-# NOINLINE glRectdvFunPtr #-}
+
+glRectf :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
+glRectf = ffifloatfloatfloatfloatIOV glRectfFunPtr
+
+glRectfFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+glRectfFunPtr = unsafePerformIO (getProcAddress "glRectf")
+
+{-# NOINLINE glRectfFunPtr #-}
+
+glRectfv :: MonadIO m => Ptr GLfloat -> Ptr GLfloat -> m ()
+glRectfv = ffiPtrfloatPtrfloatIOV glRectfvFunPtr
+
+glRectfvFunPtr :: FunPtr (Ptr GLfloat -> Ptr GLfloat -> IO ())
+glRectfvFunPtr = unsafePerformIO (getProcAddress "glRectfv")
+
+{-# NOINLINE glRectfvFunPtr #-}
+
+glRecti :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()
+glRecti = ffiintintintintIOV glRectiFunPtr
+
+glRectiFunPtr :: FunPtr (GLint -> GLint -> GLint -> GLint -> IO ())
+glRectiFunPtr = unsafePerformIO (getProcAddress "glRecti")
+
+{-# NOINLINE glRectiFunPtr #-}
+
+glRectiv :: MonadIO m => Ptr GLint -> Ptr GLint -> m ()
+glRectiv = ffiPtrintPtrintIOV glRectivFunPtr
+
+glRectivFunPtr :: FunPtr (Ptr GLint -> Ptr GLint -> IO ())
+glRectivFunPtr = unsafePerformIO (getProcAddress "glRectiv")
+
+{-# NOINLINE glRectivFunPtr #-}
+
+glRects :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()
+glRects = ffishortshortshortshortIOV glRectsFunPtr
+
+glRectsFunPtr :: FunPtr (GLshort -> GLshort -> GLshort -> GLshort -> IO ())
+glRectsFunPtr = unsafePerformIO (getProcAddress "glRects")
+
+{-# NOINLINE glRectsFunPtr #-}
+
+glRectsv :: MonadIO m => Ptr GLshort -> Ptr GLshort -> m ()
+glRectsv = ffiPtrshortPtrshortIOV glRectsvFunPtr
+
+glRectsvFunPtr :: FunPtr (Ptr GLshort -> Ptr GLshort -> IO ())
+glRectsvFunPtr = unsafePerformIO (getProcAddress "glRectsv")
+
+{-# NOINLINE glRectsvFunPtr #-}
+
+glRenderMode :: MonadIO m => GLenum -> m GLint
+glRenderMode = ffienumIOint glRenderModeFunPtr
+
+glRenderModeFunPtr :: FunPtr (GLenum -> IO GLint)
+glRenderModeFunPtr = unsafePerformIO (getProcAddress "glRenderMode")
+
+{-# NOINLINE glRenderModeFunPtr #-}
+
+glRotated :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
+glRotated = ffidoubledoubledoubledoubleIOV glRotatedFunPtr
+
+glRotatedFunPtr :: FunPtr (GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
+glRotatedFunPtr = unsafePerformIO (getProcAddress "glRotated")
+
+{-# NOINLINE glRotatedFunPtr #-}
+
+glRotatef :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
+glRotatef = ffifloatfloatfloatfloatIOV glRotatefFunPtr
+
+glRotatefFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+glRotatefFunPtr = unsafePerformIO (getProcAddress "glRotatef")
+
+{-# NOINLINE glRotatefFunPtr #-}
+
+glScaled :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()
+glScaled = ffidoubledoubledoubleIOV glScaledFunPtr
+
+glScaledFunPtr :: FunPtr (GLdouble -> GLdouble -> GLdouble -> IO ())
+glScaledFunPtr = unsafePerformIO (getProcAddress "glScaled")
+
+{-# NOINLINE glScaledFunPtr #-}
+
+glScalef :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()
+glScalef = ffifloatfloatfloatIOV glScalefFunPtr
+
+glScalefFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> IO ())
+glScalefFunPtr = unsafePerformIO (getProcAddress "glScalef")
+
+{-# NOINLINE glScalefFunPtr #-}
+
+glSecondaryColor3b :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> m ()
+glSecondaryColor3b = ffibytebytebyteIOV glSecondaryColor3bFunPtr
+
+glSecondaryColor3bFunPtr :: FunPtr (GLbyte -> GLbyte -> GLbyte -> IO ())
+glSecondaryColor3bFunPtr = unsafePerformIO (getProcAddress "glSecondaryColor3b")
+
+{-# NOINLINE glSecondaryColor3bFunPtr #-}
+
+glSecondaryColor3bv :: MonadIO m => Ptr GLbyte -> m ()
+glSecondaryColor3bv = ffiPtrbyteIOV glSecondaryColor3bvFunPtr
+
+glSecondaryColor3bvFunPtr :: FunPtr (Ptr GLbyte -> IO ())
+glSecondaryColor3bvFunPtr = unsafePerformIO (getProcAddress "glSecondaryColor3bv")
+
+{-# NOINLINE glSecondaryColor3bvFunPtr #-}
+
+glSecondaryColor3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()
+glSecondaryColor3d = ffidoubledoubledoubleIOV glSecondaryColor3dFunPtr
+
+glSecondaryColor3dFunPtr :: FunPtr (GLdouble -> GLdouble -> GLdouble -> IO ())
+glSecondaryColor3dFunPtr = unsafePerformIO (getProcAddress "glSecondaryColor3d")
+
+{-# NOINLINE glSecondaryColor3dFunPtr #-}
+
+glSecondaryColor3dv :: MonadIO m => Ptr GLdouble -> m ()
+glSecondaryColor3dv = ffiPtrdoubleIOV glSecondaryColor3dvFunPtr
+
+glSecondaryColor3dvFunPtr :: FunPtr (Ptr GLdouble -> IO ())
+glSecondaryColor3dvFunPtr = unsafePerformIO (getProcAddress "glSecondaryColor3dv")
+
+{-# NOINLINE glSecondaryColor3dvFunPtr #-}
+
+glSecondaryColor3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()
+glSecondaryColor3f = ffifloatfloatfloatIOV glSecondaryColor3fFunPtr
+
+glSecondaryColor3fFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> IO ())
+glSecondaryColor3fFunPtr = unsafePerformIO (getProcAddress "glSecondaryColor3f")
+
+{-# NOINLINE glSecondaryColor3fFunPtr #-}
+
+glSecondaryColor3fv :: MonadIO m => Ptr GLfloat -> m ()
+glSecondaryColor3fv = ffiPtrfloatIOV glSecondaryColor3fvFunPtr
+
+glSecondaryColor3fvFunPtr :: FunPtr (Ptr GLfloat -> IO ())
+glSecondaryColor3fvFunPtr = unsafePerformIO (getProcAddress "glSecondaryColor3fv")
+
+{-# NOINLINE glSecondaryColor3fvFunPtr #-}
+
+glSecondaryColor3i :: MonadIO m => GLint -> GLint -> GLint -> m ()
+glSecondaryColor3i = ffiintintintIOV glSecondaryColor3iFunPtr
+
+glSecondaryColor3iFunPtr :: FunPtr (GLint -> GLint -> GLint -> IO ())
+glSecondaryColor3iFunPtr = unsafePerformIO (getProcAddress "glSecondaryColor3i")
+
+{-# NOINLINE glSecondaryColor3iFunPtr #-}
+
+glSecondaryColor3iv :: MonadIO m => Ptr GLint -> m ()
+glSecondaryColor3iv = ffiPtrintIOV glSecondaryColor3ivFunPtr
+
+glSecondaryColor3ivFunPtr :: FunPtr (Ptr GLint -> IO ())
+glSecondaryColor3ivFunPtr = unsafePerformIO (getProcAddress "glSecondaryColor3iv")
+
+{-# NOINLINE glSecondaryColor3ivFunPtr #-}
+
+glSecondaryColor3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()
+glSecondaryColor3s = ffishortshortshortIOV glSecondaryColor3sFunPtr
+
+glSecondaryColor3sFunPtr :: FunPtr (GLshort -> GLshort -> GLshort -> IO ())
+glSecondaryColor3sFunPtr = unsafePerformIO (getProcAddress "glSecondaryColor3s")
+
+{-# NOINLINE glSecondaryColor3sFunPtr #-}
+
+glSecondaryColor3sv :: MonadIO m => Ptr GLshort -> m ()
+glSecondaryColor3sv = ffiPtrshortIOV glSecondaryColor3svFunPtr
+
+glSecondaryColor3svFunPtr :: FunPtr (Ptr GLshort -> IO ())
+glSecondaryColor3svFunPtr = unsafePerformIO (getProcAddress "glSecondaryColor3sv")
+
+{-# NOINLINE glSecondaryColor3svFunPtr #-}
+
+glSecondaryColor3ub :: MonadIO m => GLubyte -> GLubyte -> GLubyte -> m ()
+glSecondaryColor3ub = ffiubyteubyteubyteIOV glSecondaryColor3ubFunPtr
+
+glSecondaryColor3ubFunPtr :: FunPtr (GLubyte -> GLubyte -> GLubyte -> IO ())
+glSecondaryColor3ubFunPtr = unsafePerformIO (getProcAddress "glSecondaryColor3ub")
+
+{-# NOINLINE glSecondaryColor3ubFunPtr #-}
+
+glSecondaryColor3ubv :: MonadIO m => Ptr GLubyte -> m ()
+glSecondaryColor3ubv = ffiPtrubyteIOV glSecondaryColor3ubvFunPtr
+
+glSecondaryColor3ubvFunPtr :: FunPtr (Ptr GLubyte -> IO ())
+glSecondaryColor3ubvFunPtr = unsafePerformIO (getProcAddress "glSecondaryColor3ubv")
+
+{-# NOINLINE glSecondaryColor3ubvFunPtr #-}
+
+glSecondaryColor3ui :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()
+glSecondaryColor3ui = ffiuintuintuintIOV glSecondaryColor3uiFunPtr
+
+glSecondaryColor3uiFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> IO ())
+glSecondaryColor3uiFunPtr = unsafePerformIO (getProcAddress "glSecondaryColor3ui")
+
+{-# NOINLINE glSecondaryColor3uiFunPtr #-}
+
+glSecondaryColor3uiv :: MonadIO m => Ptr GLuint -> m ()
+glSecondaryColor3uiv = ffiPtruintIOV glSecondaryColor3uivFunPtr
+
+glSecondaryColor3uivFunPtr :: FunPtr (Ptr GLuint -> IO ())
+glSecondaryColor3uivFunPtr = unsafePerformIO (getProcAddress "glSecondaryColor3uiv")
+
+{-# NOINLINE glSecondaryColor3uivFunPtr #-}
+
+glSecondaryColor3us :: MonadIO m => GLushort -> GLushort -> GLushort -> m ()
+glSecondaryColor3us = ffiushortushortushortIOV glSecondaryColor3usFunPtr
+
+glSecondaryColor3usFunPtr :: FunPtr (GLushort -> GLushort -> GLushort -> IO ())
+glSecondaryColor3usFunPtr = unsafePerformIO (getProcAddress "glSecondaryColor3us")
+
+{-# NOINLINE glSecondaryColor3usFunPtr #-}
+
+glSecondaryColor3usv :: MonadIO m => Ptr GLushort -> m ()
+glSecondaryColor3usv = ffiPtrushortIOV glSecondaryColor3usvFunPtr
+
+glSecondaryColor3usvFunPtr :: FunPtr (Ptr GLushort -> IO ())
+glSecondaryColor3usvFunPtr = unsafePerformIO (getProcAddress "glSecondaryColor3usv")
+
+{-# NOINLINE glSecondaryColor3usvFunPtr #-}
+
+glSecondaryColorPointer :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr () -> m ()
+glSecondaryColorPointer = ffiintenumsizeiPtrVIOV glSecondaryColorPointerFunPtr
+
+glSecondaryColorPointerFunPtr :: FunPtr (GLint -> GLenum -> GLsizei -> Ptr () -> IO ())
+glSecondaryColorPointerFunPtr = unsafePerformIO (getProcAddress "glSecondaryColorPointer")
+
+{-# NOINLINE glSecondaryColorPointerFunPtr #-}
+
+glSelectBuffer :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glSelectBuffer = ffisizeiPtruintIOV glSelectBufferFunPtr
+
+glSelectBufferFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glSelectBufferFunPtr = unsafePerformIO (getProcAddress "glSelectBuffer")
+
+{-# NOINLINE glSelectBufferFunPtr #-}
+
+glShadeModel :: MonadIO m => GLenum -> m ()
+glShadeModel = ffienumIOV glShadeModelFunPtr
+
+glShadeModelFunPtr :: FunPtr (GLenum -> IO ())
+glShadeModelFunPtr = unsafePerformIO (getProcAddress "glShadeModel")
+
+{-# NOINLINE glShadeModelFunPtr #-}
+
+glTexCoord1d :: MonadIO m => GLdouble -> m ()
+glTexCoord1d = ffidoubleIOV glTexCoord1dFunPtr
+
+glTexCoord1dFunPtr :: FunPtr (GLdouble -> IO ())
+glTexCoord1dFunPtr = unsafePerformIO (getProcAddress "glTexCoord1d")
+
+{-# NOINLINE glTexCoord1dFunPtr #-}
+
+glTexCoord1dv :: MonadIO m => Ptr GLdouble -> m ()
+glTexCoord1dv = ffiPtrdoubleIOV glTexCoord1dvFunPtr
+
+glTexCoord1dvFunPtr :: FunPtr (Ptr GLdouble -> IO ())
+glTexCoord1dvFunPtr = unsafePerformIO (getProcAddress "glTexCoord1dv")
+
+{-# NOINLINE glTexCoord1dvFunPtr #-}
+
+glTexCoord1f :: MonadIO m => GLfloat -> m ()
+glTexCoord1f = ffifloatIOV glTexCoord1fFunPtr
+
+glTexCoord1fFunPtr :: FunPtr (GLfloat -> IO ())
+glTexCoord1fFunPtr = unsafePerformIO (getProcAddress "glTexCoord1f")
+
+{-# NOINLINE glTexCoord1fFunPtr #-}
+
+glTexCoord1fv :: MonadIO m => Ptr GLfloat -> m ()
+glTexCoord1fv = ffiPtrfloatIOV glTexCoord1fvFunPtr
+
+glTexCoord1fvFunPtr :: FunPtr (Ptr GLfloat -> IO ())
+glTexCoord1fvFunPtr = unsafePerformIO (getProcAddress "glTexCoord1fv")
+
+{-# NOINLINE glTexCoord1fvFunPtr #-}
+
+glTexCoord1i :: MonadIO m => GLint -> m ()
+glTexCoord1i = ffiintIOV glTexCoord1iFunPtr
+
+glTexCoord1iFunPtr :: FunPtr (GLint -> IO ())
+glTexCoord1iFunPtr = unsafePerformIO (getProcAddress "glTexCoord1i")
+
+{-# NOINLINE glTexCoord1iFunPtr #-}
+
+glTexCoord1iv :: MonadIO m => Ptr GLint -> m ()
+glTexCoord1iv = ffiPtrintIOV glTexCoord1ivFunPtr
+
+glTexCoord1ivFunPtr :: FunPtr (Ptr GLint -> IO ())
+glTexCoord1ivFunPtr = unsafePerformIO (getProcAddress "glTexCoord1iv")
+
+{-# NOINLINE glTexCoord1ivFunPtr #-}
+
+glTexCoord1s :: MonadIO m => GLshort -> m ()
+glTexCoord1s = ffishortIOV glTexCoord1sFunPtr
+
+glTexCoord1sFunPtr :: FunPtr (GLshort -> IO ())
+glTexCoord1sFunPtr = unsafePerformIO (getProcAddress "glTexCoord1s")
+
+{-# NOINLINE glTexCoord1sFunPtr #-}
+
+glTexCoord1sv :: MonadIO m => Ptr GLshort -> m ()
+glTexCoord1sv = ffiPtrshortIOV glTexCoord1svFunPtr
+
+glTexCoord1svFunPtr :: FunPtr (Ptr GLshort -> IO ())
+glTexCoord1svFunPtr = unsafePerformIO (getProcAddress "glTexCoord1sv")
+
+{-# NOINLINE glTexCoord1svFunPtr #-}
+
+glTexCoord2d :: MonadIO m => GLdouble -> GLdouble -> m ()
+glTexCoord2d = ffidoubledoubleIOV glTexCoord2dFunPtr
+
+glTexCoord2dFunPtr :: FunPtr (GLdouble -> GLdouble -> IO ())
+glTexCoord2dFunPtr = unsafePerformIO (getProcAddress "glTexCoord2d")
+
+{-# NOINLINE glTexCoord2dFunPtr #-}
+
+glTexCoord2dv :: MonadIO m => Ptr GLdouble -> m ()
+glTexCoord2dv = ffiPtrdoubleIOV glTexCoord2dvFunPtr
+
+glTexCoord2dvFunPtr :: FunPtr (Ptr GLdouble -> IO ())
+glTexCoord2dvFunPtr = unsafePerformIO (getProcAddress "glTexCoord2dv")
+
+{-# NOINLINE glTexCoord2dvFunPtr #-}
+
+glTexCoord2f :: MonadIO m => GLfloat -> GLfloat -> m ()
+glTexCoord2f = ffifloatfloatIOV glTexCoord2fFunPtr
+
+glTexCoord2fFunPtr :: FunPtr (GLfloat -> GLfloat -> IO ())
+glTexCoord2fFunPtr = unsafePerformIO (getProcAddress "glTexCoord2f")
+
+{-# NOINLINE glTexCoord2fFunPtr #-}
+
+glTexCoord2fv :: MonadIO m => Ptr GLfloat -> m ()
+glTexCoord2fv = ffiPtrfloatIOV glTexCoord2fvFunPtr
+
+glTexCoord2fvFunPtr :: FunPtr (Ptr GLfloat -> IO ())
+glTexCoord2fvFunPtr = unsafePerformIO (getProcAddress "glTexCoord2fv")
+
+{-# NOINLINE glTexCoord2fvFunPtr #-}
+
+glTexCoord2i :: MonadIO m => GLint -> GLint -> m ()
+glTexCoord2i = ffiintintIOV glTexCoord2iFunPtr
+
+glTexCoord2iFunPtr :: FunPtr (GLint -> GLint -> IO ())
+glTexCoord2iFunPtr = unsafePerformIO (getProcAddress "glTexCoord2i")
+
+{-# NOINLINE glTexCoord2iFunPtr #-}
+
+glTexCoord2iv :: MonadIO m => Ptr GLint -> m ()
+glTexCoord2iv = ffiPtrintIOV glTexCoord2ivFunPtr
+
+glTexCoord2ivFunPtr :: FunPtr (Ptr GLint -> IO ())
+glTexCoord2ivFunPtr = unsafePerformIO (getProcAddress "glTexCoord2iv")
+
+{-# NOINLINE glTexCoord2ivFunPtr #-}
+
+glTexCoord2s :: MonadIO m => GLshort -> GLshort -> m ()
+glTexCoord2s = ffishortshortIOV glTexCoord2sFunPtr
+
+glTexCoord2sFunPtr :: FunPtr (GLshort -> GLshort -> IO ())
+glTexCoord2sFunPtr = unsafePerformIO (getProcAddress "glTexCoord2s")
+
+{-# NOINLINE glTexCoord2sFunPtr #-}
+
+glTexCoord2sv :: MonadIO m => Ptr GLshort -> m ()
+glTexCoord2sv = ffiPtrshortIOV glTexCoord2svFunPtr
+
+glTexCoord2svFunPtr :: FunPtr (Ptr GLshort -> IO ())
+glTexCoord2svFunPtr = unsafePerformIO (getProcAddress "glTexCoord2sv")
+
+{-# NOINLINE glTexCoord2svFunPtr #-}
+
+glTexCoord3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()
+glTexCoord3d = ffidoubledoubledoubleIOV glTexCoord3dFunPtr
+
+glTexCoord3dFunPtr :: FunPtr (GLdouble -> GLdouble -> GLdouble -> IO ())
+glTexCoord3dFunPtr = unsafePerformIO (getProcAddress "glTexCoord3d")
+
+{-# NOINLINE glTexCoord3dFunPtr #-}
+
+glTexCoord3dv :: MonadIO m => Ptr GLdouble -> m ()
+glTexCoord3dv = ffiPtrdoubleIOV glTexCoord3dvFunPtr
+
+glTexCoord3dvFunPtr :: FunPtr (Ptr GLdouble -> IO ())
+glTexCoord3dvFunPtr = unsafePerformIO (getProcAddress "glTexCoord3dv")
+
+{-# NOINLINE glTexCoord3dvFunPtr #-}
+
+glTexCoord3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()
+glTexCoord3f = ffifloatfloatfloatIOV glTexCoord3fFunPtr
+
+glTexCoord3fFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> IO ())
+glTexCoord3fFunPtr = unsafePerformIO (getProcAddress "glTexCoord3f")
+
+{-# NOINLINE glTexCoord3fFunPtr #-}
+
+glTexCoord3fv :: MonadIO m => Ptr GLfloat -> m ()
+glTexCoord3fv = ffiPtrfloatIOV glTexCoord3fvFunPtr
+
+glTexCoord3fvFunPtr :: FunPtr (Ptr GLfloat -> IO ())
+glTexCoord3fvFunPtr = unsafePerformIO (getProcAddress "glTexCoord3fv")
+
+{-# NOINLINE glTexCoord3fvFunPtr #-}
+
+glTexCoord3i :: MonadIO m => GLint -> GLint -> GLint -> m ()
+glTexCoord3i = ffiintintintIOV glTexCoord3iFunPtr
+
+glTexCoord3iFunPtr :: FunPtr (GLint -> GLint -> GLint -> IO ())
+glTexCoord3iFunPtr = unsafePerformIO (getProcAddress "glTexCoord3i")
+
+{-# NOINLINE glTexCoord3iFunPtr #-}
+
+glTexCoord3iv :: MonadIO m => Ptr GLint -> m ()
+glTexCoord3iv = ffiPtrintIOV glTexCoord3ivFunPtr
+
+glTexCoord3ivFunPtr :: FunPtr (Ptr GLint -> IO ())
+glTexCoord3ivFunPtr = unsafePerformIO (getProcAddress "glTexCoord3iv")
+
+{-# NOINLINE glTexCoord3ivFunPtr #-}
+
+glTexCoord3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()
+glTexCoord3s = ffishortshortshortIOV glTexCoord3sFunPtr
+
+glTexCoord3sFunPtr :: FunPtr (GLshort -> GLshort -> GLshort -> IO ())
+glTexCoord3sFunPtr = unsafePerformIO (getProcAddress "glTexCoord3s")
+
+{-# NOINLINE glTexCoord3sFunPtr #-}
+
+glTexCoord3sv :: MonadIO m => Ptr GLshort -> m ()
+glTexCoord3sv = ffiPtrshortIOV glTexCoord3svFunPtr
+
+glTexCoord3svFunPtr :: FunPtr (Ptr GLshort -> IO ())
+glTexCoord3svFunPtr = unsafePerformIO (getProcAddress "glTexCoord3sv")
+
+{-# NOINLINE glTexCoord3svFunPtr #-}
+
+glTexCoord4d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
+glTexCoord4d = ffidoubledoubledoubledoubleIOV glTexCoord4dFunPtr
+
+glTexCoord4dFunPtr :: FunPtr (GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
+glTexCoord4dFunPtr = unsafePerformIO (getProcAddress "glTexCoord4d")
+
+{-# NOINLINE glTexCoord4dFunPtr #-}
+
+glTexCoord4dv :: MonadIO m => Ptr GLdouble -> m ()
+glTexCoord4dv = ffiPtrdoubleIOV glTexCoord4dvFunPtr
+
+glTexCoord4dvFunPtr :: FunPtr (Ptr GLdouble -> IO ())
+glTexCoord4dvFunPtr = unsafePerformIO (getProcAddress "glTexCoord4dv")
+
+{-# NOINLINE glTexCoord4dvFunPtr #-}
+
+glTexCoord4f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
+glTexCoord4f = ffifloatfloatfloatfloatIOV glTexCoord4fFunPtr
+
+glTexCoord4fFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+glTexCoord4fFunPtr = unsafePerformIO (getProcAddress "glTexCoord4f")
+
+{-# NOINLINE glTexCoord4fFunPtr #-}
+
+glTexCoord4fv :: MonadIO m => Ptr GLfloat -> m ()
+glTexCoord4fv = ffiPtrfloatIOV glTexCoord4fvFunPtr
+
+glTexCoord4fvFunPtr :: FunPtr (Ptr GLfloat -> IO ())
+glTexCoord4fvFunPtr = unsafePerformIO (getProcAddress "glTexCoord4fv")
+
+{-# NOINLINE glTexCoord4fvFunPtr #-}
+
+glTexCoord4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()
+glTexCoord4i = ffiintintintintIOV glTexCoord4iFunPtr
+
+glTexCoord4iFunPtr :: FunPtr (GLint -> GLint -> GLint -> GLint -> IO ())
+glTexCoord4iFunPtr = unsafePerformIO (getProcAddress "glTexCoord4i")
+
+{-# NOINLINE glTexCoord4iFunPtr #-}
+
+glTexCoord4iv :: MonadIO m => Ptr GLint -> m ()
+glTexCoord4iv = ffiPtrintIOV glTexCoord4ivFunPtr
+
+glTexCoord4ivFunPtr :: FunPtr (Ptr GLint -> IO ())
+glTexCoord4ivFunPtr = unsafePerformIO (getProcAddress "glTexCoord4iv")
+
+{-# NOINLINE glTexCoord4ivFunPtr #-}
+
+glTexCoord4s :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()
+glTexCoord4s = ffishortshortshortshortIOV glTexCoord4sFunPtr
+
+glTexCoord4sFunPtr :: FunPtr (GLshort -> GLshort -> GLshort -> GLshort -> IO ())
+glTexCoord4sFunPtr = unsafePerformIO (getProcAddress "glTexCoord4s")
+
+{-# NOINLINE glTexCoord4sFunPtr #-}
+
+glTexCoord4sv :: MonadIO m => Ptr GLshort -> m ()
+glTexCoord4sv = ffiPtrshortIOV glTexCoord4svFunPtr
+
+glTexCoord4svFunPtr :: FunPtr (Ptr GLshort -> IO ())
+glTexCoord4svFunPtr = unsafePerformIO (getProcAddress "glTexCoord4sv")
+
+{-# NOINLINE glTexCoord4svFunPtr #-}
+
+glTexCoordPointer :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr () -> m ()
+glTexCoordPointer = ffiintenumsizeiPtrVIOV glTexCoordPointerFunPtr
+
+glTexCoordPointerFunPtr :: FunPtr (GLint -> GLenum -> GLsizei -> Ptr () -> IO ())
+glTexCoordPointerFunPtr = unsafePerformIO (getProcAddress "glTexCoordPointer")
+
+{-# NOINLINE glTexCoordPointerFunPtr #-}
+
+glTexEnvf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()
+glTexEnvf = ffienumenumfloatIOV glTexEnvfFunPtr
+
+glTexEnvfFunPtr :: FunPtr (GLenum -> GLenum -> GLfloat -> IO ())
+glTexEnvfFunPtr = unsafePerformIO (getProcAddress "glTexEnvf")
+
+{-# NOINLINE glTexEnvfFunPtr #-}
+
+glTexEnvfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
+glTexEnvfv = ffienumenumPtrfloatIOV glTexEnvfvFunPtr
+
+glTexEnvfvFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
+glTexEnvfvFunPtr = unsafePerformIO (getProcAddress "glTexEnvfv")
+
+{-# NOINLINE glTexEnvfvFunPtr #-}
+
+glTexEnvi :: MonadIO m => GLenum -> GLenum -> GLint -> m ()
+glTexEnvi = ffienumenumintIOV glTexEnviFunPtr
+
+glTexEnviFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> IO ())
+glTexEnviFunPtr = unsafePerformIO (getProcAddress "glTexEnvi")
+
+{-# NOINLINE glTexEnviFunPtr #-}
+
+glTexEnviv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
+glTexEnviv = ffienumenumPtrintIOV glTexEnvivFunPtr
+
+glTexEnvivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+glTexEnvivFunPtr = unsafePerformIO (getProcAddress "glTexEnviv")
+
+{-# NOINLINE glTexEnvivFunPtr #-}
+
+glTexGend :: MonadIO m => GLenum -> GLenum -> GLdouble -> m ()
+glTexGend = ffienumenumdoubleIOV glTexGendFunPtr
+
+glTexGendFunPtr :: FunPtr (GLenum -> GLenum -> GLdouble -> IO ())
+glTexGendFunPtr = unsafePerformIO (getProcAddress "glTexGend")
+
+{-# NOINLINE glTexGendFunPtr #-}
+
+glTexGendv :: MonadIO m => GLenum -> GLenum -> Ptr GLdouble -> m ()
+glTexGendv = ffienumenumPtrdoubleIOV glTexGendvFunPtr
+
+glTexGendvFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLdouble -> IO ())
+glTexGendvFunPtr = unsafePerformIO (getProcAddress "glTexGendv")
+
+{-# NOINLINE glTexGendvFunPtr #-}
+
+glTexGenf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()
+glTexGenf = ffienumenumfloatIOV glTexGenfFunPtr
+
+glTexGenfFunPtr :: FunPtr (GLenum -> GLenum -> GLfloat -> IO ())
+glTexGenfFunPtr = unsafePerformIO (getProcAddress "glTexGenf")
+
+{-# NOINLINE glTexGenfFunPtr #-}
+
+glTexGenfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
+glTexGenfv = ffienumenumPtrfloatIOV glTexGenfvFunPtr
+
+glTexGenfvFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
+glTexGenfvFunPtr = unsafePerformIO (getProcAddress "glTexGenfv")
+
+{-# NOINLINE glTexGenfvFunPtr #-}
+
+glTexGeni :: MonadIO m => GLenum -> GLenum -> GLint -> m ()
+glTexGeni = ffienumenumintIOV glTexGeniFunPtr
+
+glTexGeniFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> IO ())
+glTexGeniFunPtr = unsafePerformIO (getProcAddress "glTexGeni")
+
+{-# NOINLINE glTexGeniFunPtr #-}
+
+glTexGeniv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
+glTexGeniv = ffienumenumPtrintIOV glTexGenivFunPtr
+
+glTexGenivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+glTexGenivFunPtr = unsafePerformIO (getProcAddress "glTexGeniv")
+
+{-# NOINLINE glTexGenivFunPtr #-}
+
+glTranslated :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()
+glTranslated = ffidoubledoubledoubleIOV glTranslatedFunPtr
+
+glTranslatedFunPtr :: FunPtr (GLdouble -> GLdouble -> GLdouble -> IO ())
+glTranslatedFunPtr = unsafePerformIO (getProcAddress "glTranslated")
+
+{-# NOINLINE glTranslatedFunPtr #-}
+
+glTranslatef :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()
+glTranslatef = ffifloatfloatfloatIOV glTranslatefFunPtr
+
+glTranslatefFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> IO ())
+glTranslatefFunPtr = unsafePerformIO (getProcAddress "glTranslatef")
+
+{-# NOINLINE glTranslatefFunPtr #-}
+
+glVertex2d :: MonadIO m => GLdouble -> GLdouble -> m ()
+glVertex2d = ffidoubledoubleIOV glVertex2dFunPtr
+
+glVertex2dFunPtr :: FunPtr (GLdouble -> GLdouble -> IO ())
+glVertex2dFunPtr = unsafePerformIO (getProcAddress "glVertex2d")
+
+{-# NOINLINE glVertex2dFunPtr #-}
+
+glVertex2dv :: MonadIO m => Ptr GLdouble -> m ()
+glVertex2dv = ffiPtrdoubleIOV glVertex2dvFunPtr
+
+glVertex2dvFunPtr :: FunPtr (Ptr GLdouble -> IO ())
+glVertex2dvFunPtr = unsafePerformIO (getProcAddress "glVertex2dv")
+
+{-# NOINLINE glVertex2dvFunPtr #-}
+
+glVertex2f :: MonadIO m => GLfloat -> GLfloat -> m ()
+glVertex2f = ffifloatfloatIOV glVertex2fFunPtr
+
+glVertex2fFunPtr :: FunPtr (GLfloat -> GLfloat -> IO ())
+glVertex2fFunPtr = unsafePerformIO (getProcAddress "glVertex2f")
+
+{-# NOINLINE glVertex2fFunPtr #-}
+
+glVertex2fv :: MonadIO m => Ptr GLfloat -> m ()
+glVertex2fv = ffiPtrfloatIOV glVertex2fvFunPtr
+
+glVertex2fvFunPtr :: FunPtr (Ptr GLfloat -> IO ())
+glVertex2fvFunPtr = unsafePerformIO (getProcAddress "glVertex2fv")
+
+{-# NOINLINE glVertex2fvFunPtr #-}
+
+glVertex2i :: MonadIO m => GLint -> GLint -> m ()
+glVertex2i = ffiintintIOV glVertex2iFunPtr
+
+glVertex2iFunPtr :: FunPtr (GLint -> GLint -> IO ())
+glVertex2iFunPtr = unsafePerformIO (getProcAddress "glVertex2i")
+
+{-# NOINLINE glVertex2iFunPtr #-}
+
+glVertex2iv :: MonadIO m => Ptr GLint -> m ()
+glVertex2iv = ffiPtrintIOV glVertex2ivFunPtr
+
+glVertex2ivFunPtr :: FunPtr (Ptr GLint -> IO ())
+glVertex2ivFunPtr = unsafePerformIO (getProcAddress "glVertex2iv")
+
+{-# NOINLINE glVertex2ivFunPtr #-}
+
+glVertex2s :: MonadIO m => GLshort -> GLshort -> m ()
+glVertex2s = ffishortshortIOV glVertex2sFunPtr
+
+glVertex2sFunPtr :: FunPtr (GLshort -> GLshort -> IO ())
+glVertex2sFunPtr = unsafePerformIO (getProcAddress "glVertex2s")
+
+{-# NOINLINE glVertex2sFunPtr #-}
+
+glVertex2sv :: MonadIO m => Ptr GLshort -> m ()
+glVertex2sv = ffiPtrshortIOV glVertex2svFunPtr
+
+glVertex2svFunPtr :: FunPtr (Ptr GLshort -> IO ())
+glVertex2svFunPtr = unsafePerformIO (getProcAddress "glVertex2sv")
+
+{-# NOINLINE glVertex2svFunPtr #-}
+
+glVertex3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()
+glVertex3d = ffidoubledoubledoubleIOV glVertex3dFunPtr
+
+glVertex3dFunPtr :: FunPtr (GLdouble -> GLdouble -> GLdouble -> IO ())
+glVertex3dFunPtr = unsafePerformIO (getProcAddress "glVertex3d")
+
+{-# NOINLINE glVertex3dFunPtr #-}
+
+glVertex3dv :: MonadIO m => Ptr GLdouble -> m ()
+glVertex3dv = ffiPtrdoubleIOV glVertex3dvFunPtr
+
+glVertex3dvFunPtr :: FunPtr (Ptr GLdouble -> IO ())
+glVertex3dvFunPtr = unsafePerformIO (getProcAddress "glVertex3dv")
+
+{-# NOINLINE glVertex3dvFunPtr #-}
+
+glVertex3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()
+glVertex3f = ffifloatfloatfloatIOV glVertex3fFunPtr
+
+glVertex3fFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> IO ())
+glVertex3fFunPtr = unsafePerformIO (getProcAddress "glVertex3f")
+
+{-# NOINLINE glVertex3fFunPtr #-}
+
+glVertex3fv :: MonadIO m => Ptr GLfloat -> m ()
+glVertex3fv = ffiPtrfloatIOV glVertex3fvFunPtr
+
+glVertex3fvFunPtr :: FunPtr (Ptr GLfloat -> IO ())
+glVertex3fvFunPtr = unsafePerformIO (getProcAddress "glVertex3fv")
+
+{-# NOINLINE glVertex3fvFunPtr #-}
+
+glVertex3i :: MonadIO m => GLint -> GLint -> GLint -> m ()
+glVertex3i = ffiintintintIOV glVertex3iFunPtr
+
+glVertex3iFunPtr :: FunPtr (GLint -> GLint -> GLint -> IO ())
+glVertex3iFunPtr = unsafePerformIO (getProcAddress "glVertex3i")
+
+{-# NOINLINE glVertex3iFunPtr #-}
+
+glVertex3iv :: MonadIO m => Ptr GLint -> m ()
+glVertex3iv = ffiPtrintIOV glVertex3ivFunPtr
+
+glVertex3ivFunPtr :: FunPtr (Ptr GLint -> IO ())
+glVertex3ivFunPtr = unsafePerformIO (getProcAddress "glVertex3iv")
+
+{-# NOINLINE glVertex3ivFunPtr #-}
+
+glVertex3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()
+glVertex3s = ffishortshortshortIOV glVertex3sFunPtr
+
+glVertex3sFunPtr :: FunPtr (GLshort -> GLshort -> GLshort -> IO ())
+glVertex3sFunPtr = unsafePerformIO (getProcAddress "glVertex3s")
+
+{-# NOINLINE glVertex3sFunPtr #-}
+
+glVertex3sv :: MonadIO m => Ptr GLshort -> m ()
+glVertex3sv = ffiPtrshortIOV glVertex3svFunPtr
+
+glVertex3svFunPtr :: FunPtr (Ptr GLshort -> IO ())
+glVertex3svFunPtr = unsafePerformIO (getProcAddress "glVertex3sv")
+
+{-# NOINLINE glVertex3svFunPtr #-}
+
+glVertex4d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
+glVertex4d = ffidoubledoubledoubledoubleIOV glVertex4dFunPtr
+
+glVertex4dFunPtr :: FunPtr (GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
+glVertex4dFunPtr = unsafePerformIO (getProcAddress "glVertex4d")
+
+{-# NOINLINE glVertex4dFunPtr #-}
+
+glVertex4dv :: MonadIO m => Ptr GLdouble -> m ()
+glVertex4dv = ffiPtrdoubleIOV glVertex4dvFunPtr
+
+glVertex4dvFunPtr :: FunPtr (Ptr GLdouble -> IO ())
+glVertex4dvFunPtr = unsafePerformIO (getProcAddress "glVertex4dv")
+
+{-# NOINLINE glVertex4dvFunPtr #-}
+
+glVertex4f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
+glVertex4f = ffifloatfloatfloatfloatIOV glVertex4fFunPtr
+
+glVertex4fFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+glVertex4fFunPtr = unsafePerformIO (getProcAddress "glVertex4f")
+
+{-# NOINLINE glVertex4fFunPtr #-}
+
+glVertex4fv :: MonadIO m => Ptr GLfloat -> m ()
+glVertex4fv = ffiPtrfloatIOV glVertex4fvFunPtr
+
+glVertex4fvFunPtr :: FunPtr (Ptr GLfloat -> IO ())
+glVertex4fvFunPtr = unsafePerformIO (getProcAddress "glVertex4fv")
+
+{-# NOINLINE glVertex4fvFunPtr #-}
+
+glVertex4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()
+glVertex4i = ffiintintintintIOV glVertex4iFunPtr
+
+glVertex4iFunPtr :: FunPtr (GLint -> GLint -> GLint -> GLint -> IO ())
+glVertex4iFunPtr = unsafePerformIO (getProcAddress "glVertex4i")
+
+{-# NOINLINE glVertex4iFunPtr #-}
+
+glVertex4iv :: MonadIO m => Ptr GLint -> m ()
+glVertex4iv = ffiPtrintIOV glVertex4ivFunPtr
+
+glVertex4ivFunPtr :: FunPtr (Ptr GLint -> IO ())
+glVertex4ivFunPtr = unsafePerformIO (getProcAddress "glVertex4iv")
+
+{-# NOINLINE glVertex4ivFunPtr #-}
+
+glVertex4s :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()
+glVertex4s = ffishortshortshortshortIOV glVertex4sFunPtr
+
+glVertex4sFunPtr :: FunPtr (GLshort -> GLshort -> GLshort -> GLshort -> IO ())
+glVertex4sFunPtr = unsafePerformIO (getProcAddress "glVertex4s")
+
+{-# NOINLINE glVertex4sFunPtr #-}
+
+glVertex4sv :: MonadIO m => Ptr GLshort -> m ()
+glVertex4sv = ffiPtrshortIOV glVertex4svFunPtr
+
+glVertex4svFunPtr :: FunPtr (Ptr GLshort -> IO ())
+glVertex4svFunPtr = unsafePerformIO (getProcAddress "glVertex4sv")
+
+{-# NOINLINE glVertex4svFunPtr #-}
+
+glVertexPointer :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr () -> m ()
+glVertexPointer = ffiintenumsizeiPtrVIOV glVertexPointerFunPtr
+
+glVertexPointerFunPtr :: FunPtr (GLint -> GLenum -> GLsizei -> Ptr () -> IO ())
+glVertexPointerFunPtr = unsafePerformIO (getProcAddress "glVertexPointer")
+
+{-# NOINLINE glVertexPointerFunPtr #-}
+
+glWindowPos2d :: MonadIO m => GLdouble -> GLdouble -> m ()
+glWindowPos2d = ffidoubledoubleIOV glWindowPos2dFunPtr
+
+glWindowPos2dFunPtr :: FunPtr (GLdouble -> GLdouble -> IO ())
+glWindowPos2dFunPtr = unsafePerformIO (getProcAddress "glWindowPos2d")
+
+{-# NOINLINE glWindowPos2dFunPtr #-}
+
+glWindowPos2dv :: MonadIO m => Ptr GLdouble -> m ()
+glWindowPos2dv = ffiPtrdoubleIOV glWindowPos2dvFunPtr
+
+glWindowPos2dvFunPtr :: FunPtr (Ptr GLdouble -> IO ())
+glWindowPos2dvFunPtr = unsafePerformIO (getProcAddress "glWindowPos2dv")
+
+{-# NOINLINE glWindowPos2dvFunPtr #-}
+
+glWindowPos2f :: MonadIO m => GLfloat -> GLfloat -> m ()
+glWindowPos2f = ffifloatfloatIOV glWindowPos2fFunPtr
+
+glWindowPos2fFunPtr :: FunPtr (GLfloat -> GLfloat -> IO ())
+glWindowPos2fFunPtr = unsafePerformIO (getProcAddress "glWindowPos2f")
+
+{-# NOINLINE glWindowPos2fFunPtr #-}
+
+glWindowPos2fv :: MonadIO m => Ptr GLfloat -> m ()
+glWindowPos2fv = ffiPtrfloatIOV glWindowPos2fvFunPtr
+
+glWindowPos2fvFunPtr :: FunPtr (Ptr GLfloat -> IO ())
+glWindowPos2fvFunPtr = unsafePerformIO (getProcAddress "glWindowPos2fv")
+
+{-# NOINLINE glWindowPos2fvFunPtr #-}
+
+glWindowPos2i :: MonadIO m => GLint -> GLint -> m ()
+glWindowPos2i = ffiintintIOV glWindowPos2iFunPtr
+
+glWindowPos2iFunPtr :: FunPtr (GLint -> GLint -> IO ())
+glWindowPos2iFunPtr = unsafePerformIO (getProcAddress "glWindowPos2i")
+
+{-# NOINLINE glWindowPos2iFunPtr #-}
+
+glWindowPos2iv :: MonadIO m => Ptr GLint -> m ()
+glWindowPos2iv = ffiPtrintIOV glWindowPos2ivFunPtr
+
+glWindowPos2ivFunPtr :: FunPtr (Ptr GLint -> IO ())
+glWindowPos2ivFunPtr = unsafePerformIO (getProcAddress "glWindowPos2iv")
+
+{-# NOINLINE glWindowPos2ivFunPtr #-}
+
+glWindowPos2s :: MonadIO m => GLshort -> GLshort -> m ()
+glWindowPos2s = ffishortshortIOV glWindowPos2sFunPtr
+
+glWindowPos2sFunPtr :: FunPtr (GLshort -> GLshort -> IO ())
+glWindowPos2sFunPtr = unsafePerformIO (getProcAddress "glWindowPos2s")
+
+{-# NOINLINE glWindowPos2sFunPtr #-}
+
+glWindowPos2sv :: MonadIO m => Ptr GLshort -> m ()
+glWindowPos2sv = ffiPtrshortIOV glWindowPos2svFunPtr
+
+glWindowPos2svFunPtr :: FunPtr (Ptr GLshort -> IO ())
+glWindowPos2svFunPtr = unsafePerformIO (getProcAddress "glWindowPos2sv")
+
+{-# NOINLINE glWindowPos2svFunPtr #-}
+
+glWindowPos3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()
+glWindowPos3d = ffidoubledoubledoubleIOV glWindowPos3dFunPtr
+
+glWindowPos3dFunPtr :: FunPtr (GLdouble -> GLdouble -> GLdouble -> IO ())
+glWindowPos3dFunPtr = unsafePerformIO (getProcAddress "glWindowPos3d")
+
+{-# NOINLINE glWindowPos3dFunPtr #-}
+
+glWindowPos3dv :: MonadIO m => Ptr GLdouble -> m ()
+glWindowPos3dv = ffiPtrdoubleIOV glWindowPos3dvFunPtr
+
+glWindowPos3dvFunPtr :: FunPtr (Ptr GLdouble -> IO ())
+glWindowPos3dvFunPtr = unsafePerformIO (getProcAddress "glWindowPos3dv")
+
+{-# NOINLINE glWindowPos3dvFunPtr #-}
+
+glWindowPos3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()
+glWindowPos3f = ffifloatfloatfloatIOV glWindowPos3fFunPtr
+
+glWindowPos3fFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> IO ())
+glWindowPos3fFunPtr = unsafePerformIO (getProcAddress "glWindowPos3f")
+
+{-# NOINLINE glWindowPos3fFunPtr #-}
+
+glWindowPos3fv :: MonadIO m => Ptr GLfloat -> m ()
+glWindowPos3fv = ffiPtrfloatIOV glWindowPos3fvFunPtr
+
+glWindowPos3fvFunPtr :: FunPtr (Ptr GLfloat -> IO ())
+glWindowPos3fvFunPtr = unsafePerformIO (getProcAddress "glWindowPos3fv")
+
+{-# NOINLINE glWindowPos3fvFunPtr #-}
+
+glWindowPos3i :: MonadIO m => GLint -> GLint -> GLint -> m ()
+glWindowPos3i = ffiintintintIOV glWindowPos3iFunPtr
+
+glWindowPos3iFunPtr :: FunPtr (GLint -> GLint -> GLint -> IO ())
+glWindowPos3iFunPtr = unsafePerformIO (getProcAddress "glWindowPos3i")
+
+{-# NOINLINE glWindowPos3iFunPtr #-}
+
+glWindowPos3iv :: MonadIO m => Ptr GLint -> m ()
+glWindowPos3iv = ffiPtrintIOV glWindowPos3ivFunPtr
+
+glWindowPos3ivFunPtr :: FunPtr (Ptr GLint -> IO ())
+glWindowPos3ivFunPtr = unsafePerformIO (getProcAddress "glWindowPos3iv")
+
+{-# NOINLINE glWindowPos3ivFunPtr #-}
+
+glWindowPos3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()
+glWindowPos3s = ffishortshortshortIOV glWindowPos3sFunPtr
+
+glWindowPos3sFunPtr :: FunPtr (GLshort -> GLshort -> GLshort -> IO ())
+glWindowPos3sFunPtr = unsafePerformIO (getProcAddress "glWindowPos3s")
+
+{-# NOINLINE glWindowPos3sFunPtr #-}
+
+glWindowPos3sv :: MonadIO m => Ptr GLshort -> m ()
+glWindowPos3sv = ffiPtrshortIOV glWindowPos3svFunPtr
+
+glWindowPos3svFunPtr :: FunPtr (Ptr GLshort -> IO ())
+glWindowPos3svFunPtr = unsafePerformIO (getProcAddress "glWindowPos3sv")
+
+{-# NOINLINE glWindowPos3svFunPtr #-}
+
+pattern GL_2D = 0x0600
+
+pattern GL_2_BYTES = 0x1407
+
+pattern GL_3D = 0x0601
+
+pattern GL_3D_COLOR = 0x0602
+
+pattern GL_3D_COLOR_TEXTURE = 0x0603
+
+pattern GL_3_BYTES = 0x1408
+
+pattern GL_4D_COLOR_TEXTURE = 0x0604
+
+pattern GL_4_BYTES = 0x1409
+
+pattern GL_ACCUM = 0x0100
+
+pattern GL_ACCUM_ALPHA_BITS = 0x0D5B
+
+pattern GL_ACCUM_BLUE_BITS = 0x0D5A
+
+pattern GL_ACCUM_BUFFER_BIT = 0x00000200
+
+pattern GL_ACCUM_CLEAR_VALUE = 0x0B80
+
+pattern GL_ACCUM_GREEN_BITS = 0x0D59
+
+pattern GL_ACCUM_RED_BITS = 0x0D58
+
+pattern GL_ADD = 0x0104
+
+pattern GL_ADD_SIGNED = 0x8574
+
+pattern GL_ALIASED_POINT_SIZE_RANGE = 0x846D
+
+pattern GL_ALL_ATTRIB_BITS = 0xFFFFFFFF
+
+pattern GL_ALPHA12 = 0x803D
+
+pattern GL_ALPHA16 = 0x803E
+
+pattern GL_ALPHA4 = 0x803B
+
+pattern GL_ALPHA8 = 0x803C
+
+pattern GL_ALPHA_BIAS = 0x0D1D
+
+pattern GL_ALPHA_BITS = 0x0D55
+
+pattern GL_ALPHA_INTEGER = 0x8D97
+
+pattern GL_ALPHA_SCALE = 0x0D1C
+
+pattern GL_ALPHA_TEST = 0x0BC0
+
+pattern GL_ALPHA_TEST_FUNC = 0x0BC1
+
+pattern GL_ALPHA_TEST_REF = 0x0BC2
+
+pattern GL_AMBIENT = 0x1200
+
+pattern GL_AMBIENT_AND_DIFFUSE = 0x1602
+
+pattern GL_ATTRIB_STACK_DEPTH = 0x0BB0
+
+pattern GL_AUTO_NORMAL = 0x0D80
+
+pattern GL_AUX0 = 0x0409
+
+pattern GL_AUX1 = 0x040A
+
+pattern GL_AUX2 = 0x040B
+
+pattern GL_AUX3 = 0x040C
+
+pattern GL_AUX_BUFFERS = 0x0C00
+
+pattern GL_BITMAP = 0x1A00
+
+pattern GL_BITMAP_TOKEN = 0x0704
+
+pattern GL_BLUE_BIAS = 0x0D1B
+
+pattern GL_BLUE_BITS = 0x0D54
+
+pattern GL_BLUE_SCALE = 0x0D1A
+
+pattern GL_C3F_V3F = 0x2A24
+
+pattern GL_C4F_N3F_V3F = 0x2A26
+
+pattern GL_C4UB_V2F = 0x2A22
+
+pattern GL_C4UB_V3F = 0x2A23
+
+pattern GL_CLAMP = 0x2900
+
+pattern GL_CLAMP_FRAGMENT_COLOR = 0x891B
+
+pattern GL_CLAMP_VERTEX_COLOR = 0x891A
+
+pattern GL_CLIENT_ACTIVE_TEXTURE = 0x84E1
+
+pattern GL_CLIENT_ALL_ATTRIB_BITS = 0xFFFFFFFF
+
+pattern GL_CLIENT_ATTRIB_STACK_DEPTH = 0x0BB1
+
+pattern GL_CLIENT_PIXEL_STORE_BIT = 0x00000001
+
+pattern GL_CLIENT_VERTEX_ARRAY_BIT = 0x00000002
+
+pattern GL_CLIP_PLANE0 = 0x3000
+
+pattern GL_CLIP_PLANE1 = 0x3001
+
+pattern GL_CLIP_PLANE2 = 0x3002
+
+pattern GL_CLIP_PLANE3 = 0x3003
+
+pattern GL_CLIP_PLANE4 = 0x3004
+
+pattern GL_CLIP_PLANE5 = 0x3005
+
+pattern GL_COEFF = 0x0A00
+
+pattern GL_COLOR_ARRAY = 0x8076
+
+pattern GL_COLOR_ARRAY_BUFFER_BINDING = 0x8898
+
+pattern GL_COLOR_ARRAY_POINTER = 0x8090
+
+pattern GL_COLOR_ARRAY_SIZE = 0x8081
+
+pattern GL_COLOR_ARRAY_STRIDE = 0x8083
+
+pattern GL_COLOR_ARRAY_TYPE = 0x8082
+
+pattern GL_COLOR_INDEX = 0x1900
+
+pattern GL_COLOR_INDEXES = 0x1603
+
+pattern GL_COLOR_MATERIAL = 0x0B57
+
+pattern GL_COLOR_MATERIAL_FACE = 0x0B55
+
+pattern GL_COLOR_MATERIAL_PARAMETER = 0x0B56
+
+pattern GL_COLOR_SUM = 0x8458
+
+pattern GL_COMBINE = 0x8570
+
+pattern GL_COMBINE_ALPHA = 0x8572
+
+pattern GL_COMBINE_RGB = 0x8571
+
+pattern GL_COMPARE_R_TO_TEXTURE = 0x884E
+
+pattern GL_COMPILE = 0x1300
+
+pattern GL_COMPILE_AND_EXECUTE = 0x1301
+
+pattern GL_COMPRESSED_ALPHA = 0x84E9
+
+pattern GL_COMPRESSED_INTENSITY = 0x84EC
+
+pattern GL_COMPRESSED_LUMINANCE = 0x84EA
+
+pattern GL_COMPRESSED_LUMINANCE_ALPHA = 0x84EB
+
+pattern GL_COMPRESSED_SLUMINANCE = 0x8C4A
+
+pattern GL_COMPRESSED_SLUMINANCE_ALPHA = 0x8C4B
+
+pattern GL_CONSTANT = 0x8576
+
+pattern GL_CONSTANT_ATTENUATION = 0x1207
+
+pattern GL_COORD_REPLACE = 0x8862
+
+pattern GL_COPY_PIXEL_TOKEN = 0x0706
+
+pattern GL_CURRENT_BIT = 0x00000001
+
+pattern GL_CURRENT_COLOR = 0x0B00
+
+pattern GL_CURRENT_FOG_COORD = 0x8453
+
+pattern GL_CURRENT_FOG_COORDINATE = 0x8453
+
+pattern GL_CURRENT_INDEX = 0x0B01
+
+pattern GL_CURRENT_NORMAL = 0x0B02
+
+pattern GL_CURRENT_RASTER_COLOR = 0x0B04
+
+pattern GL_CURRENT_RASTER_DISTANCE = 0x0B09
+
+pattern GL_CURRENT_RASTER_INDEX = 0x0B05
+
+pattern GL_CURRENT_RASTER_POSITION = 0x0B07
+
+pattern GL_CURRENT_RASTER_POSITION_VALID = 0x0B08
+
+pattern GL_CURRENT_RASTER_SECONDARY_COLOR = 0x845F
+
+pattern GL_CURRENT_RASTER_TEXTURE_COORDS = 0x0B06
+
+pattern GL_CURRENT_SECONDARY_COLOR = 0x8459
+
+pattern GL_CURRENT_TEXTURE_COORDS = 0x0B03
+
+pattern GL_DECAL = 0x2101
+
+pattern GL_DEPTH_BIAS = 0x0D1F
+
+pattern GL_DEPTH_BITS = 0x0D56
+
+pattern GL_DEPTH_SCALE = 0x0D1E
+
+pattern GL_DEPTH_TEXTURE_MODE = 0x884B
+
+pattern GL_DIFFUSE = 0x1201
+
+pattern GL_DOMAIN = 0x0A02
+
+pattern GL_DOT3_RGB = 0x86AE
+
+pattern GL_DOT3_RGBA = 0x86AF
+
+pattern GL_DRAW_PIXEL_TOKEN = 0x0705
+
+pattern GL_EDGE_FLAG = 0x0B43
+
+pattern GL_EDGE_FLAG_ARRAY = 0x8079
+
+pattern GL_EDGE_FLAG_ARRAY_BUFFER_BINDING = 0x889B
+
+pattern GL_EDGE_FLAG_ARRAY_POINTER = 0x8093
+
+pattern GL_EDGE_FLAG_ARRAY_STRIDE = 0x808C
+
+pattern GL_EMISSION = 0x1600
+
+pattern GL_ENABLE_BIT = 0x00002000
+
+pattern GL_EVAL_BIT = 0x00010000
+
+pattern GL_EXP = 0x0800
+
+pattern GL_EXP2 = 0x0801
+
+pattern GL_EYE_LINEAR = 0x2400
+
+pattern GL_FEEDBACK = 0x1C01
+
+pattern GL_FEEDBACK_BUFFER_POINTER = 0x0DF0
+
+pattern GL_FEEDBACK_BUFFER_SIZE = 0x0DF1
+
+pattern GL_FEEDBACK_BUFFER_TYPE = 0x0DF2
+
+pattern GL_FLAT = 0x1D00
+
+pattern GL_FOG_BIT = 0x00000080
+
+pattern GL_FOG_COLOR = 0x0B66
+
+pattern GL_FOG_COORD = 0x8451
+
+pattern GL_FOG_COORDINATE = 0x8451
+
+pattern GL_FOG_COORDINATE_ARRAY = 0x8457
+
+pattern GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING = 0x889D
+
+pattern GL_FOG_COORDINATE_ARRAY_POINTER = 0x8456
+
+pattern GL_FOG_COORDINATE_ARRAY_STRIDE = 0x8455
+
+pattern GL_FOG_COORDINATE_ARRAY_TYPE = 0x8454
+
+pattern GL_FOG_COORDINATE_SOURCE = 0x8450
+
+pattern GL_FOG_COORD_ARRAY = 0x8457
+
+pattern GL_FOG_COORD_ARRAY_BUFFER_BINDING = 0x889D
+
+pattern GL_FOG_COORD_ARRAY_POINTER = 0x8456
+
+pattern GL_FOG_COORD_ARRAY_STRIDE = 0x8455
+
+pattern GL_FOG_COORD_ARRAY_TYPE = 0x8454
+
+pattern GL_FOG_COORD_SRC = 0x8450
+
+pattern GL_FOG_DENSITY = 0x0B62
+
+pattern GL_FOG_END = 0x0B64
+
+pattern GL_FOG_HINT = 0x0C54
+
+pattern GL_FOG_INDEX = 0x0B61
+
+pattern GL_FOG_MODE = 0x0B65
+
+pattern GL_FOG_START = 0x0B63
+
+pattern GL_FRAGMENT_DEPTH = 0x8452
+
+pattern GL_GENERATE_MIPMAP = 0x8191
+
+pattern GL_GENERATE_MIPMAP_HINT = 0x8192
+
+pattern GL_GREEN_BIAS = 0x0D19
+
+pattern GL_GREEN_BITS = 0x0D53
+
+pattern GL_GREEN_SCALE = 0x0D18
+
+pattern GL_HINT_BIT = 0x00008000
+
+pattern GL_INDEX_ARRAY = 0x8077
+
+pattern GL_INDEX_ARRAY_BUFFER_BINDING = 0x8899
+
+pattern GL_INDEX_ARRAY_POINTER = 0x8091
+
+pattern GL_INDEX_ARRAY_STRIDE = 0x8086
+
+pattern GL_INDEX_ARRAY_TYPE = 0x8085
+
+pattern GL_INDEX_BITS = 0x0D51
+
+pattern GL_INDEX_CLEAR_VALUE = 0x0C20
+
+pattern GL_INDEX_LOGIC_OP = 0x0BF1
+
+pattern GL_INDEX_MODE = 0x0C30
+
+pattern GL_INDEX_OFFSET = 0x0D13
+
+pattern GL_INDEX_SHIFT = 0x0D12
+
+pattern GL_INDEX_WRITEMASK = 0x0C21
+
+pattern GL_INTENSITY = 0x8049
+
+pattern GL_INTENSITY12 = 0x804C
+
+pattern GL_INTENSITY16 = 0x804D
+
+pattern GL_INTENSITY4 = 0x804A
+
+pattern GL_INTENSITY8 = 0x804B
+
+pattern GL_INTERPOLATE = 0x8575
+
+pattern GL_LIGHT0 = 0x4000
+
+pattern GL_LIGHT1 = 0x4001
+
+pattern GL_LIGHT2 = 0x4002
+
+pattern GL_LIGHT3 = 0x4003
+
+pattern GL_LIGHT4 = 0x4004
+
+pattern GL_LIGHT5 = 0x4005
+
+pattern GL_LIGHT6 = 0x4006
+
+pattern GL_LIGHT7 = 0x4007
+
+pattern GL_LIGHTING = 0x0B50
+
+pattern GL_LIGHTING_BIT = 0x00000040
+
+pattern GL_LIGHT_MODEL_AMBIENT = 0x0B53
+
+pattern GL_LIGHT_MODEL_COLOR_CONTROL = 0x81F8
+
+pattern GL_LIGHT_MODEL_LOCAL_VIEWER = 0x0B51
+
+pattern GL_LIGHT_MODEL_TWO_SIDE = 0x0B52
+
+pattern GL_LINEAR_ATTENUATION = 0x1208
+
+pattern GL_LINE_BIT = 0x00000004
+
+pattern GL_LINE_RESET_TOKEN = 0x0707
+
+pattern GL_LINE_STIPPLE = 0x0B24
+
+pattern GL_LINE_STIPPLE_PATTERN = 0x0B25
+
+pattern GL_LINE_STIPPLE_REPEAT = 0x0B26
+
+pattern GL_LINE_TOKEN = 0x0702
+
+pattern GL_LIST_BASE = 0x0B32
+
+pattern GL_LIST_BIT = 0x00020000
+
+pattern GL_LIST_INDEX = 0x0B33
+
+pattern GL_LIST_MODE = 0x0B30
+
+pattern GL_LOAD = 0x0101
+
+pattern GL_LOGIC_OP = 0x0BF1
+
+pattern GL_LUMINANCE = 0x1909
+
+pattern GL_LUMINANCE12 = 0x8041
+
+pattern GL_LUMINANCE12_ALPHA12 = 0x8047
+
+pattern GL_LUMINANCE12_ALPHA4 = 0x8046
+
+pattern GL_LUMINANCE16 = 0x8042
+
+pattern GL_LUMINANCE16_ALPHA16 = 0x8048
+
+pattern GL_LUMINANCE4 = 0x803F
+
+pattern GL_LUMINANCE4_ALPHA4 = 0x8043
+
+pattern GL_LUMINANCE6_ALPHA2 = 0x8044
+
+pattern GL_LUMINANCE8 = 0x8040
+
+pattern GL_LUMINANCE8_ALPHA8 = 0x8045
+
+pattern GL_LUMINANCE_ALPHA = 0x190A
+
+pattern GL_MAP1_COLOR_4 = 0x0D90
+
+pattern GL_MAP1_GRID_DOMAIN = 0x0DD0
+
+pattern GL_MAP1_GRID_SEGMENTS = 0x0DD1
+
+pattern GL_MAP1_INDEX = 0x0D91
+
+pattern GL_MAP1_NORMAL = 0x0D92
+
+pattern GL_MAP1_TEXTURE_COORD_1 = 0x0D93
+
+pattern GL_MAP1_TEXTURE_COORD_2 = 0x0D94
+
+pattern GL_MAP1_TEXTURE_COORD_3 = 0x0D95
+
+pattern GL_MAP1_TEXTURE_COORD_4 = 0x0D96
+
+pattern GL_MAP1_VERTEX_3 = 0x0D97
+
+pattern GL_MAP1_VERTEX_4 = 0x0D98
+
+pattern GL_MAP2_COLOR_4 = 0x0DB0
+
+pattern GL_MAP2_GRID_DOMAIN = 0x0DD2
+
+pattern GL_MAP2_GRID_SEGMENTS = 0x0DD3
+
+pattern GL_MAP2_INDEX = 0x0DB1
+
+pattern GL_MAP2_NORMAL = 0x0DB2
+
+pattern GL_MAP2_TEXTURE_COORD_1 = 0x0DB3
+
+pattern GL_MAP2_TEXTURE_COORD_2 = 0x0DB4
+
+pattern GL_MAP2_TEXTURE_COORD_3 = 0x0DB5
+
+pattern GL_MAP2_TEXTURE_COORD_4 = 0x0DB6
+
+pattern GL_MAP2_VERTEX_3 = 0x0DB7
+
+pattern GL_MAP2_VERTEX_4 = 0x0DB8
+
+pattern GL_MAP_COLOR = 0x0D10
+
+pattern GL_MAP_STENCIL = 0x0D11
+
+pattern GL_MATRIX_MODE = 0x0BA0
+
+pattern GL_MAX_ATTRIB_STACK_DEPTH = 0x0D35
+
+pattern GL_MAX_CLIENT_ATTRIB_STACK_DEPTH = 0x0D3B
+
+pattern GL_MAX_CLIP_PLANES = 0x0D32
+
+pattern GL_MAX_EVAL_ORDER = 0x0D30
+
+pattern GL_MAX_LIGHTS = 0x0D31
+
+pattern GL_MAX_LIST_NESTING = 0x0B31
+
+pattern GL_MAX_MODELVIEW_STACK_DEPTH = 0x0D36
+
+pattern GL_MAX_NAME_STACK_DEPTH = 0x0D37
+
+pattern GL_MAX_PIXEL_MAP_TABLE = 0x0D34
+
+pattern GL_MAX_PROJECTION_STACK_DEPTH = 0x0D38
+
+pattern GL_MAX_TEXTURE_COORDS = 0x8871
+
+pattern GL_MAX_TEXTURE_STACK_DEPTH = 0x0D39
+
+pattern GL_MAX_TEXTURE_UNITS = 0x84E2
+
+pattern GL_MODELVIEW = 0x1700
+
+pattern GL_MODELVIEW_MATRIX = 0x0BA6
+
+pattern GL_MODELVIEW_STACK_DEPTH = 0x0BA3
+
+pattern GL_MODULATE = 0x2100
+
+pattern GL_MULT = 0x0103
+
+pattern GL_MULTISAMPLE_BIT = 0x20000000
+
+pattern GL_N3F_V3F = 0x2A25
+
+pattern GL_NAME_STACK_DEPTH = 0x0D70
+
+pattern GL_NORMALIZE = 0x0BA1
+
+pattern GL_NORMAL_ARRAY = 0x8075
+
+pattern GL_NORMAL_ARRAY_BUFFER_BINDING = 0x8897
+
+pattern GL_NORMAL_ARRAY_POINTER = 0x808F
+
+pattern GL_NORMAL_ARRAY_STRIDE = 0x807F
+
+pattern GL_NORMAL_ARRAY_TYPE = 0x807E
+
+pattern GL_NORMAL_MAP = 0x8511
+
+pattern GL_OBJECT_LINEAR = 0x2401
+
+pattern GL_OBJECT_PLANE = 0x2501
+
+pattern GL_OPERAND0_ALPHA = 0x8598
+
+pattern GL_OPERAND0_RGB = 0x8590
+
+pattern GL_OPERAND1_ALPHA = 0x8599
+
+pattern GL_OPERAND1_RGB = 0x8591
+
+pattern GL_OPERAND2_ALPHA = 0x859A
+
+pattern GL_OPERAND2_RGB = 0x8592
+
+pattern GL_ORDER = 0x0A01
+
+pattern GL_PASS_THROUGH_TOKEN = 0x0700
+
+pattern GL_PERSPECTIVE_CORRECTION_HINT = 0x0C50
+
+pattern GL_PIXEL_MAP_A_TO_A = 0x0C79
+
+pattern GL_PIXEL_MAP_A_TO_A_SIZE = 0x0CB9
+
+pattern GL_PIXEL_MAP_B_TO_B = 0x0C78
+
+pattern GL_PIXEL_MAP_B_TO_B_SIZE = 0x0CB8
+
+pattern GL_PIXEL_MAP_G_TO_G = 0x0C77
+
+pattern GL_PIXEL_MAP_G_TO_G_SIZE = 0x0CB7
+
+pattern GL_PIXEL_MAP_I_TO_A = 0x0C75
+
+pattern GL_PIXEL_MAP_I_TO_A_SIZE = 0x0CB5
+
+pattern GL_PIXEL_MAP_I_TO_B = 0x0C74
+
+pattern GL_PIXEL_MAP_I_TO_B_SIZE = 0x0CB4
+
+pattern GL_PIXEL_MAP_I_TO_G = 0x0C73
+
+pattern GL_PIXEL_MAP_I_TO_G_SIZE = 0x0CB3
+
+pattern GL_PIXEL_MAP_I_TO_I = 0x0C70
+
+pattern GL_PIXEL_MAP_I_TO_I_SIZE = 0x0CB0
+
+pattern GL_PIXEL_MAP_I_TO_R = 0x0C72
+
+pattern GL_PIXEL_MAP_I_TO_R_SIZE = 0x0CB2
+
+pattern GL_PIXEL_MAP_R_TO_R = 0x0C76
+
+pattern GL_PIXEL_MAP_R_TO_R_SIZE = 0x0CB6
+
+pattern GL_PIXEL_MAP_S_TO_S = 0x0C71
+
+pattern GL_PIXEL_MAP_S_TO_S_SIZE = 0x0CB1
+
+pattern GL_PIXEL_MODE_BIT = 0x00000020
+
+pattern GL_POINT_BIT = 0x00000002
+
+pattern GL_POINT_DISTANCE_ATTENUATION = 0x8129
+
+pattern GL_POINT_SIZE_MAX = 0x8127
+
+pattern GL_POINT_SIZE_MIN = 0x8126
+
+pattern GL_POINT_SMOOTH = 0x0B10
+
+pattern GL_POINT_SMOOTH_HINT = 0x0C51
+
+pattern GL_POINT_SPRITE = 0x8861
+
+pattern GL_POINT_TOKEN = 0x0701
+
+pattern GL_POLYGON = 0x0009
+
+pattern GL_POLYGON_BIT = 0x00000008
+
+pattern GL_POLYGON_STIPPLE = 0x0B42
+
+pattern GL_POLYGON_STIPPLE_BIT = 0x00000010
+
+pattern GL_POLYGON_TOKEN = 0x0703
+
+pattern GL_POSITION = 0x1203
+
+pattern GL_PREVIOUS = 0x8578
+
+pattern GL_PROJECTION = 0x1701
+
+pattern GL_PROJECTION_MATRIX = 0x0BA7
+
+pattern GL_PROJECTION_STACK_DEPTH = 0x0BA4
+
+pattern GL_Q = 0x2003
+
+pattern GL_QUADRATIC_ATTENUATION = 0x1209
+
+pattern GL_QUAD_STRIP = 0x0008
+
+pattern GL_R = 0x2002
+
+pattern GL_RED_BIAS = 0x0D15
+
+pattern GL_RED_BITS = 0x0D52
+
+pattern GL_RED_SCALE = 0x0D14
+
+pattern GL_REFLECTION_MAP = 0x8512
+
+pattern GL_RENDER = 0x1C00
+
+pattern GL_RENDER_MODE = 0x0C40
+
+pattern GL_RESCALE_NORMAL = 0x803A
+
+pattern GL_RETURN = 0x0102
+
+pattern GL_RGBA_MODE = 0x0C31
+
+pattern GL_RGB_SCALE = 0x8573
+
+pattern GL_S = 0x2000
+
+pattern GL_SCISSOR_BIT = 0x00080000
+
+pattern GL_SECONDARY_COLOR_ARRAY = 0x845E
+
+pattern GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING = 0x889C
+
+pattern GL_SECONDARY_COLOR_ARRAY_POINTER = 0x845D
+
+pattern GL_SECONDARY_COLOR_ARRAY_SIZE = 0x845A
+
+pattern GL_SECONDARY_COLOR_ARRAY_STRIDE = 0x845C
+
+pattern GL_SECONDARY_COLOR_ARRAY_TYPE = 0x845B
+
+pattern GL_SELECT = 0x1C02
+
+pattern GL_SELECTION_BUFFER_POINTER = 0x0DF3
+
+pattern GL_SELECTION_BUFFER_SIZE = 0x0DF4
+
+pattern GL_SEPARATE_SPECULAR_COLOR = 0x81FA
+
+pattern GL_SHADE_MODEL = 0x0B54
+
+pattern GL_SHININESS = 0x1601
+
+pattern GL_SINGLE_COLOR = 0x81F9
+
+pattern GL_SLUMINANCE = 0x8C46
+
+pattern GL_SLUMINANCE8 = 0x8C47
+
+pattern GL_SLUMINANCE8_ALPHA8 = 0x8C45
+
+pattern GL_SLUMINANCE_ALPHA = 0x8C44
+
+pattern GL_SMOOTH = 0x1D01
+
+pattern GL_SOURCE0_ALPHA = 0x8588
+
+pattern GL_SOURCE0_RGB = 0x8580
+
+pattern GL_SOURCE1_ALPHA = 0x8589
+
+pattern GL_SOURCE1_RGB = 0x8581
+
+pattern GL_SOURCE2_ALPHA = 0x858A
+
+pattern GL_SOURCE2_RGB = 0x8582
+
+pattern GL_SPECULAR = 0x1202
+
+pattern GL_SPHERE_MAP = 0x2402
+
+pattern GL_SPOT_CUTOFF = 0x1206
+
+pattern GL_SPOT_DIRECTION = 0x1204
+
+pattern GL_SPOT_EXPONENT = 0x1205
+
+pattern GL_SRC0_ALPHA = 0x8588
+
+pattern GL_SRC0_RGB = 0x8580
+
+pattern GL_SRC1_RGB = 0x8581
+
+pattern GL_SRC2_ALPHA = 0x858A
+
+pattern GL_SRC2_RGB = 0x8582
+
+pattern GL_STENCIL_BITS = 0x0D57
+
+pattern GL_SUBTRACT = 0x84E7
+
+pattern GL_T = 0x2001
+
+pattern GL_T2F_C3F_V3F = 0x2A2A
+
+pattern GL_T2F_C4F_N3F_V3F = 0x2A2C
+
+pattern GL_T2F_C4UB_V3F = 0x2A29
+
+pattern GL_T2F_N3F_V3F = 0x2A2B
+
+pattern GL_T2F_V3F = 0x2A27
+
+pattern GL_T4F_C4F_N3F_V4F = 0x2A2D
+
+pattern GL_T4F_V4F = 0x2A28
+
+pattern GL_TEXTURE_BIT = 0x00040000
+
+pattern GL_TEXTURE_BORDER = 0x1005
+
+pattern GL_TEXTURE_COMPONENTS = 0x1003
+
+pattern GL_TEXTURE_COORD_ARRAY = 0x8078
+
+pattern GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING = 0x889A
+
+pattern GL_TEXTURE_COORD_ARRAY_POINTER = 0x8092
+
+pattern GL_TEXTURE_COORD_ARRAY_SIZE = 0x8088
+
+pattern GL_TEXTURE_COORD_ARRAY_STRIDE = 0x808A
+
+pattern GL_TEXTURE_COORD_ARRAY_TYPE = 0x8089
+
+pattern GL_TEXTURE_ENV = 0x2300
+
+pattern GL_TEXTURE_ENV_COLOR = 0x2201
+
+pattern GL_TEXTURE_ENV_MODE = 0x2200
+
+pattern GL_TEXTURE_FILTER_CONTROL = 0x8500
+
+pattern GL_TEXTURE_GEN_MODE = 0x2500
+
+pattern GL_TEXTURE_GEN_Q = 0x0C63
+
+pattern GL_TEXTURE_GEN_R = 0x0C62
+
+pattern GL_TEXTURE_GEN_S = 0x0C60
+
+pattern GL_TEXTURE_GEN_T = 0x0C61
+
+pattern GL_TEXTURE_INTENSITY_SIZE = 0x8061
+
+pattern GL_TEXTURE_INTENSITY_TYPE = 0x8C15
+
+pattern GL_TEXTURE_LUMINANCE_SIZE = 0x8060
+
+pattern GL_TEXTURE_LUMINANCE_TYPE = 0x8C14
+
+pattern GL_TEXTURE_MATRIX = 0x0BA8
+
+pattern GL_TEXTURE_PRIORITY = 0x8066
+
+pattern GL_TEXTURE_RESIDENT = 0x8067
+
+pattern GL_TEXTURE_STACK_DEPTH = 0x0BA5
+
+pattern GL_TRANSFORM_BIT = 0x00001000
+
+pattern GL_TRANSPOSE_COLOR_MATRIX = 0x84E6
+
+pattern GL_TRANSPOSE_MODELVIEW_MATRIX = 0x84E3
+
+pattern GL_TRANSPOSE_PROJECTION_MATRIX = 0x84E4
+
+pattern GL_TRANSPOSE_TEXTURE_MATRIX = 0x84E5
+
+pattern GL_V2F = 0x2A20
+
+pattern GL_V3F = 0x2A21
+
+pattern GL_VERTEX_ARRAY_BUFFER_BINDING = 0x8896
+
+pattern GL_VERTEX_ARRAY_POINTER = 0x808E
+
+pattern GL_VERTEX_ARRAY_SIZE = 0x807A
+
+pattern GL_VERTEX_ARRAY_STRIDE = 0x807C
+
+pattern GL_VERTEX_ARRAY_TYPE = 0x807B
+
+pattern GL_VERTEX_PROGRAM_TWO_SIDE = 0x8643
+
+pattern GL_VIEWPORT_BIT = 0x00000800
+
+pattern GL_WEIGHT_ARRAY_BUFFER_BINDING = 0x889E
+
+pattern GL_ZOOM_X = 0x0D16
+
+pattern GL_ZOOM_Y = 0x0D17
+
+glActiveTexture :: MonadIO m => GLenum -> m ()
+glActiveTexture = ffienumIOV glActiveTextureFunPtr
+
+glActiveTextureFunPtr :: FunPtr (GLenum -> IO ())
+glActiveTextureFunPtr = unsafePerformIO (getProcAddress "glActiveTexture")
+
+{-# NOINLINE glActiveTextureFunPtr #-}
+
+glAttachShader :: MonadIO m => GLuint -> GLuint -> m ()
+glAttachShader = ffiuintuintIOV glAttachShaderFunPtr
+
+glAttachShaderFunPtr :: FunPtr (GLuint -> GLuint -> IO ())
+glAttachShaderFunPtr = unsafePerformIO (getProcAddress "glAttachShader")
+
+{-# NOINLINE glAttachShaderFunPtr #-}
+
+glBeginConditionalRender :: MonadIO m => GLuint -> GLenum -> m ()
+glBeginConditionalRender = ffiuintenumIOV glBeginConditionalRenderFunPtr
+
+glBeginConditionalRenderFunPtr :: FunPtr (GLuint -> GLenum -> IO ())
+glBeginConditionalRenderFunPtr = unsafePerformIO (getProcAddress "glBeginConditionalRender")
+
+{-# NOINLINE glBeginConditionalRenderFunPtr #-}
+
+glBeginQuery :: MonadIO m => GLenum -> GLuint -> m ()
+glBeginQuery = ffienumuintIOV glBeginQueryFunPtr
+
+glBeginQueryFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
+glBeginQueryFunPtr = unsafePerformIO (getProcAddress "glBeginQuery")
+
+{-# NOINLINE glBeginQueryFunPtr #-}
+
+glBeginTransformFeedback :: MonadIO m => GLenum -> m ()
+glBeginTransformFeedback = ffienumIOV glBeginTransformFeedbackFunPtr
+
+glBeginTransformFeedbackFunPtr :: FunPtr (GLenum -> IO ())
+glBeginTransformFeedbackFunPtr = unsafePerformIO (getProcAddress "glBeginTransformFeedback")
+
+{-# NOINLINE glBeginTransformFeedbackFunPtr #-}
+
+glBindAttribLocation :: MonadIO m => GLuint -> GLuint -> Ptr GLchar -> m ()
+glBindAttribLocation = ffiuintuintPtrcharIOV glBindAttribLocationFunPtr
+
+glBindAttribLocationFunPtr :: FunPtr (GLuint -> GLuint -> Ptr GLchar -> IO ())
+glBindAttribLocationFunPtr = unsafePerformIO (getProcAddress "glBindAttribLocation")
+
+{-# NOINLINE glBindAttribLocationFunPtr #-}
+
+glBindBuffer :: MonadIO m => GLenum -> GLuint -> m ()
+glBindBuffer = ffienumuintIOV glBindBufferFunPtr
+
+glBindBufferFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
+glBindBufferFunPtr = unsafePerformIO (getProcAddress "glBindBuffer")
+
+{-# NOINLINE glBindBufferFunPtr #-}
+
+glBindBufferBase :: MonadIO m => GLenum -> GLuint -> GLuint -> m ()
+glBindBufferBase = ffienumuintuintIOV glBindBufferBaseFunPtr
+
+glBindBufferBaseFunPtr :: FunPtr (GLenum -> GLuint -> GLuint -> IO ())
+glBindBufferBaseFunPtr = unsafePerformIO (getProcAddress "glBindBufferBase")
+
+{-# NOINLINE glBindBufferBaseFunPtr #-}
+
+glBindBufferRange :: MonadIO m => GLenum -> GLuint -> GLuint -> GLintptr -> GLsizeiptr -> m ()
+glBindBufferRange = ffienumuintuintintptrsizeiptrIOV glBindBufferRangeFunPtr
+
+glBindBufferRangeFunPtr :: FunPtr (GLenum -> GLuint -> GLuint -> GLintptr -> GLsizeiptr -> IO ())
+glBindBufferRangeFunPtr = unsafePerformIO (getProcAddress "glBindBufferRange")
+
+{-# NOINLINE glBindBufferRangeFunPtr #-}
+
+glBindFragDataLocation :: MonadIO m => GLuint -> GLuint -> Ptr GLchar -> m ()
+glBindFragDataLocation = ffiuintuintPtrcharIOV glBindFragDataLocationFunPtr
+
+glBindFragDataLocationFunPtr :: FunPtr (GLuint -> GLuint -> Ptr GLchar -> IO ())
+glBindFragDataLocationFunPtr = unsafePerformIO (getProcAddress "glBindFragDataLocation")
+
+{-# NOINLINE glBindFragDataLocationFunPtr #-}
+
+glBindTexture :: MonadIO m => GLenum -> GLuint -> m ()
+glBindTexture = ffienumuintIOV glBindTextureFunPtr
+
+glBindTextureFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
+glBindTextureFunPtr = unsafePerformIO (getProcAddress "glBindTexture")
+
+{-# NOINLINE glBindTextureFunPtr #-}
+
+glBlendEquationSeparate :: MonadIO m => GLenum -> GLenum -> m ()
+glBlendEquationSeparate = ffienumenumIOV glBlendEquationSeparateFunPtr
+
+glBlendEquationSeparateFunPtr :: FunPtr (GLenum -> GLenum -> IO ())
+glBlendEquationSeparateFunPtr = unsafePerformIO (getProcAddress "glBlendEquationSeparate")
+
+{-# NOINLINE glBlendEquationSeparateFunPtr #-}
+
+glBlendFunc :: MonadIO m => GLenum -> GLenum -> m ()
+glBlendFunc = ffienumenumIOV glBlendFuncFunPtr
+
+glBlendFuncFunPtr :: FunPtr (GLenum -> GLenum -> IO ())
+glBlendFuncFunPtr = unsafePerformIO (getProcAddress "glBlendFunc")
+
+{-# NOINLINE glBlendFuncFunPtr #-}
+
+glBlendFuncSeparate :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> m ()
+glBlendFuncSeparate = ffienumenumenumenumIOV glBlendFuncSeparateFunPtr
+
+glBlendFuncSeparateFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLenum -> IO ())
+glBlendFuncSeparateFunPtr = unsafePerformIO (getProcAddress "glBlendFuncSeparate")
+
+{-# NOINLINE glBlendFuncSeparateFunPtr #-}
+
+glBufferData :: MonadIO m => GLenum -> GLsizeiptr -> Ptr () -> GLenum -> m ()
+glBufferData = ffienumsizeiptrPtrVenumIOV glBufferDataFunPtr
+
+glBufferDataFunPtr :: FunPtr (GLenum -> GLsizeiptr -> Ptr () -> GLenum -> IO ())
+glBufferDataFunPtr = unsafePerformIO (getProcAddress "glBufferData")
+
+{-# NOINLINE glBufferDataFunPtr #-}
+
+glBufferSubData :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> Ptr () -> m ()
+glBufferSubData = ffienumintptrsizeiptrPtrVIOV glBufferSubDataFunPtr
+
+glBufferSubDataFunPtr :: FunPtr (GLenum -> GLintptr -> GLsizeiptr -> Ptr () -> IO ())
+glBufferSubDataFunPtr = unsafePerformIO (getProcAddress "glBufferSubData")
+
+{-# NOINLINE glBufferSubDataFunPtr #-}
+
+glClampColor :: MonadIO m => GLenum -> GLenum -> m ()
+glClampColor = ffienumenumIOV glClampColorFunPtr
+
+glClampColorFunPtr :: FunPtr (GLenum -> GLenum -> IO ())
+glClampColorFunPtr = unsafePerformIO (getProcAddress "glClampColor")
+
+{-# NOINLINE glClampColorFunPtr #-}
+
+glClear :: MonadIO m => GLbitfield -> m ()
+glClear = ffibitfieldIOV glClearFunPtr
+
+glClearFunPtr :: FunPtr (GLbitfield -> IO ())
+glClearFunPtr = unsafePerformIO (getProcAddress "glClear")
+
+{-# NOINLINE glClearFunPtr #-}
+
+glClearBufferfi :: MonadIO m => GLenum -> GLint -> GLfloat -> GLint -> m ()
+glClearBufferfi = ffienumintfloatintIOV glClearBufferfiFunPtr
+
+glClearBufferfiFunPtr :: FunPtr (GLenum -> GLint -> GLfloat -> GLint -> IO ())
+glClearBufferfiFunPtr = unsafePerformIO (getProcAddress "glClearBufferfi")
+
+{-# NOINLINE glClearBufferfiFunPtr #-}
+
+glClearBufferfv :: MonadIO m => GLenum -> GLint -> Ptr GLfloat -> m ()
+glClearBufferfv = ffienumintPtrfloatIOV glClearBufferfvFunPtr
+
+glClearBufferfvFunPtr :: FunPtr (GLenum -> GLint -> Ptr GLfloat -> IO ())
+glClearBufferfvFunPtr = unsafePerformIO (getProcAddress "glClearBufferfv")
+
+{-# NOINLINE glClearBufferfvFunPtr #-}
+
+glClearBufferiv :: MonadIO m => GLenum -> GLint -> Ptr GLint -> m ()
+glClearBufferiv = ffienumintPtrintIOV glClearBufferivFunPtr
+
+glClearBufferivFunPtr :: FunPtr (GLenum -> GLint -> Ptr GLint -> IO ())
+glClearBufferivFunPtr = unsafePerformIO (getProcAddress "glClearBufferiv")
+
+{-# NOINLINE glClearBufferivFunPtr #-}
+
+glClearBufferuiv :: MonadIO m => GLenum -> GLint -> Ptr GLuint -> m ()
+glClearBufferuiv = ffienumintPtruintIOV glClearBufferuivFunPtr
+
+glClearBufferuivFunPtr :: FunPtr (GLenum -> GLint -> Ptr GLuint -> IO ())
+glClearBufferuivFunPtr = unsafePerformIO (getProcAddress "glClearBufferuiv")
+
+{-# NOINLINE glClearBufferuivFunPtr #-}
+
+glClearColor :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
+glClearColor = ffifloatfloatfloatfloatIOV glClearColorFunPtr
+
+glClearColorFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+glClearColorFunPtr = unsafePerformIO (getProcAddress "glClearColor")
+
+{-# NOINLINE glClearColorFunPtr #-}
+
+glClearDepth :: MonadIO m => GLdouble -> m ()
+glClearDepth = ffidoubleIOV glClearDepthFunPtr
+
+glClearDepthFunPtr :: FunPtr (GLdouble -> IO ())
+glClearDepthFunPtr = unsafePerformIO (getProcAddress "glClearDepth")
+
+{-# NOINLINE glClearDepthFunPtr #-}
+
+glClearStencil :: MonadIO m => GLint -> m ()
+glClearStencil = ffiintIOV glClearStencilFunPtr
+
+glClearStencilFunPtr :: FunPtr (GLint -> IO ())
+glClearStencilFunPtr = unsafePerformIO (getProcAddress "glClearStencil")
+
+{-# NOINLINE glClearStencilFunPtr #-}
+
+glColorMask :: MonadIO m => GLboolean -> GLboolean -> GLboolean -> GLboolean -> m ()
+glColorMask = ffibooleanbooleanbooleanbooleanIOV glColorMaskFunPtr
+
+glColorMaskFunPtr :: FunPtr (GLboolean -> GLboolean -> GLboolean -> GLboolean -> IO ())
+glColorMaskFunPtr = unsafePerformIO (getProcAddress "glColorMask")
+
+{-# NOINLINE glColorMaskFunPtr #-}
+
+glColorMaski :: MonadIO m => GLuint -> GLboolean -> GLboolean -> GLboolean -> GLboolean -> m ()
+glColorMaski = ffiuintbooleanbooleanbooleanbooleanIOV glColorMaskiFunPtr
+
+glColorMaskiFunPtr :: FunPtr (GLuint -> GLboolean -> GLboolean -> GLboolean -> GLboolean -> IO ())
+glColorMaskiFunPtr = unsafePerformIO (getProcAddress "glColorMaski")
+
+{-# NOINLINE glColorMaskiFunPtr #-}
+
+glCompileShader :: MonadIO m => GLuint -> m ()
+glCompileShader = ffiuintIOV glCompileShaderFunPtr
+
+glCompileShaderFunPtr :: FunPtr (GLuint -> IO ())
+glCompileShaderFunPtr = unsafePerformIO (getProcAddress "glCompileShader")
+
+{-# NOINLINE glCompileShaderFunPtr #-}
+
+glCompressedTexImage1D :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLint -> GLsizei -> Ptr () -> m ()
+glCompressedTexImage1D = ffienumintenumsizeiintsizeiPtrVIOV glCompressedTexImage1DFunPtr
+
+glCompressedTexImage1DFunPtr :: FunPtr (GLenum -> GLint -> GLenum -> GLsizei -> GLint -> GLsizei -> Ptr () -> IO ())
+glCompressedTexImage1DFunPtr = unsafePerformIO (getProcAddress "glCompressedTexImage1D")
+
+{-# NOINLINE glCompressedTexImage1DFunPtr #-}
+
+glCompressedTexImage2D :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> m ()
+glCompressedTexImage2D = ffienumintenumsizeisizeiintsizeiPtrVIOV glCompressedTexImage2DFunPtr
+
+glCompressedTexImage2DFunPtr :: FunPtr (GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> IO ())
+glCompressedTexImage2DFunPtr = unsafePerformIO (getProcAddress "glCompressedTexImage2D")
+
+{-# NOINLINE glCompressedTexImage2DFunPtr #-}
+
+glCompressedTexImage3D :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> m ()
+glCompressedTexImage3D = ffienumintenumsizeisizeisizeiintsizeiPtrVIOV glCompressedTexImage3DFunPtr
+
+glCompressedTexImage3DFunPtr :: FunPtr (GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> IO ())
+glCompressedTexImage3DFunPtr = unsafePerformIO (getProcAddress "glCompressedTexImage3D")
+
+{-# NOINLINE glCompressedTexImage3DFunPtr #-}
+
+glCompressedTexSubImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr () -> m ()
+glCompressedTexSubImage1D = ffienumintintsizeienumsizeiPtrVIOV glCompressedTexSubImage1DFunPtr
+
+glCompressedTexSubImage1DFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ())
+glCompressedTexSubImage1DFunPtr = unsafePerformIO (getProcAddress "glCompressedTexSubImage1D")
+
+{-# NOINLINE glCompressedTexSubImage1DFunPtr #-}
+
+glCompressedTexSubImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> m ()
+glCompressedTexSubImage2D = ffienumintintintsizeisizeienumsizeiPtrVIOV glCompressedTexSubImage2DFunPtr
+
+glCompressedTexSubImage2DFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ())
+glCompressedTexSubImage2DFunPtr = unsafePerformIO (getProcAddress "glCompressedTexSubImage2D")
+
+{-# NOINLINE glCompressedTexSubImage2DFunPtr #-}
+
+glCompressedTexSubImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> m ()
+glCompressedTexSubImage3D = ffienumintintintintsizeisizeisizeienumsizeiPtrVIOV glCompressedTexSubImage3DFunPtr
+
+glCompressedTexSubImage3DFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ())
+glCompressedTexSubImage3DFunPtr = unsafePerformIO (getProcAddress "glCompressedTexSubImage3D")
+
+{-# NOINLINE glCompressedTexSubImage3DFunPtr #-}
+
+glCopyTexImage1D :: MonadIO m => GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> m ()
+glCopyTexImage1D = ffienumintenumintintsizeiintIOV glCopyTexImage1DFunPtr
+
+glCopyTexImage1DFunPtr :: FunPtr (GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> IO ())
+glCopyTexImage1DFunPtr = unsafePerformIO (getProcAddress "glCopyTexImage1D")
+
+{-# NOINLINE glCopyTexImage1DFunPtr #-}
+
+glCopyTexImage2D :: MonadIO m => GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> m ()
+glCopyTexImage2D = ffienumintenumintintsizeisizeiintIOV glCopyTexImage2DFunPtr
+
+glCopyTexImage2DFunPtr :: FunPtr (GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> IO ())
+glCopyTexImage2DFunPtr = unsafePerformIO (getProcAddress "glCopyTexImage2D")
+
+{-# NOINLINE glCopyTexImage2DFunPtr #-}
+
+glCopyTexSubImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> m ()
+glCopyTexSubImage1D = ffienumintintintintsizeiIOV glCopyTexSubImage1DFunPtr
+
+glCopyTexSubImage1DFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> IO ())
+glCopyTexSubImage1DFunPtr = unsafePerformIO (getProcAddress "glCopyTexSubImage1D")
+
+{-# NOINLINE glCopyTexSubImage1DFunPtr #-}
+
+glCopyTexSubImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()
+glCopyTexSubImage2D = ffienumintintintintintsizeisizeiIOV glCopyTexSubImage2DFunPtr
+
+glCopyTexSubImage2DFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ())
+glCopyTexSubImage2DFunPtr = unsafePerformIO (getProcAddress "glCopyTexSubImage2D")
+
+{-# NOINLINE glCopyTexSubImage2DFunPtr #-}
+
+glCopyTexSubImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()
+glCopyTexSubImage3D = ffienumintintintintintintsizeisizeiIOV glCopyTexSubImage3DFunPtr
+
+glCopyTexSubImage3DFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ())
+glCopyTexSubImage3DFunPtr = unsafePerformIO (getProcAddress "glCopyTexSubImage3D")
+
+{-# NOINLINE glCopyTexSubImage3DFunPtr #-}
+
+glCreateProgram :: MonadIO m => m GLuint
+glCreateProgram = ffiIOuint glCreateProgramFunPtr
+
+glCreateProgramFunPtr :: FunPtr (IO GLuint)
+glCreateProgramFunPtr = unsafePerformIO (getProcAddress "glCreateProgram")
+
+{-# NOINLINE glCreateProgramFunPtr #-}
+
+glCreateShader :: MonadIO m => GLenum -> m GLuint
+glCreateShader = ffienumIOuint glCreateShaderFunPtr
+
+glCreateShaderFunPtr :: FunPtr (GLenum -> IO GLuint)
+glCreateShaderFunPtr = unsafePerformIO (getProcAddress "glCreateShader")
+
+{-# NOINLINE glCreateShaderFunPtr #-}
+
+glCullFace :: MonadIO m => GLenum -> m ()
+glCullFace = ffienumIOV glCullFaceFunPtr
+
+glCullFaceFunPtr :: FunPtr (GLenum -> IO ())
+glCullFaceFunPtr = unsafePerformIO (getProcAddress "glCullFace")
+
+{-# NOINLINE glCullFaceFunPtr #-}
+
+glDeleteBuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glDeleteBuffers = ffisizeiPtruintIOV glDeleteBuffersFunPtr
+
+glDeleteBuffersFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glDeleteBuffersFunPtr = unsafePerformIO (getProcAddress "glDeleteBuffers")
+
+{-# NOINLINE glDeleteBuffersFunPtr #-}
+
+glDeleteProgram :: MonadIO m => GLuint -> m ()
+glDeleteProgram = ffiuintIOV glDeleteProgramFunPtr
+
+glDeleteProgramFunPtr :: FunPtr (GLuint -> IO ())
+glDeleteProgramFunPtr = unsafePerformIO (getProcAddress "glDeleteProgram")
+
+{-# NOINLINE glDeleteProgramFunPtr #-}
+
+glDeleteQueries :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glDeleteQueries = ffisizeiPtruintIOV glDeleteQueriesFunPtr
+
+glDeleteQueriesFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glDeleteQueriesFunPtr = unsafePerformIO (getProcAddress "glDeleteQueries")
+
+{-# NOINLINE glDeleteQueriesFunPtr #-}
+
+glDeleteShader :: MonadIO m => GLuint -> m ()
+glDeleteShader = ffiuintIOV glDeleteShaderFunPtr
+
+glDeleteShaderFunPtr :: FunPtr (GLuint -> IO ())
+glDeleteShaderFunPtr = unsafePerformIO (getProcAddress "glDeleteShader")
+
+{-# NOINLINE glDeleteShaderFunPtr #-}
+
+glDeleteTextures :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glDeleteTextures = ffisizeiPtruintIOV glDeleteTexturesFunPtr
+
+glDeleteTexturesFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glDeleteTexturesFunPtr = unsafePerformIO (getProcAddress "glDeleteTextures")
+
+{-# NOINLINE glDeleteTexturesFunPtr #-}
+
+glDepthFunc :: MonadIO m => GLenum -> m ()
+glDepthFunc = ffienumIOV glDepthFuncFunPtr
+
+glDepthFuncFunPtr :: FunPtr (GLenum -> IO ())
+glDepthFuncFunPtr = unsafePerformIO (getProcAddress "glDepthFunc")
+
+{-# NOINLINE glDepthFuncFunPtr #-}
+
+glDepthMask :: MonadIO m => GLboolean -> m ()
+glDepthMask = ffibooleanIOV glDepthMaskFunPtr
+
+glDepthMaskFunPtr :: FunPtr (GLboolean -> IO ())
+glDepthMaskFunPtr = unsafePerformIO (getProcAddress "glDepthMask")
+
+{-# NOINLINE glDepthMaskFunPtr #-}
+
+glDepthRange :: MonadIO m => GLdouble -> GLdouble -> m ()
+glDepthRange = ffidoubledoubleIOV glDepthRangeFunPtr
+
+glDepthRangeFunPtr :: FunPtr (GLdouble -> GLdouble -> IO ())
+glDepthRangeFunPtr = unsafePerformIO (getProcAddress "glDepthRange")
+
+{-# NOINLINE glDepthRangeFunPtr #-}
+
+glDetachShader :: MonadIO m => GLuint -> GLuint -> m ()
+glDetachShader = ffiuintuintIOV glDetachShaderFunPtr
+
+glDetachShaderFunPtr :: FunPtr (GLuint -> GLuint -> IO ())
+glDetachShaderFunPtr = unsafePerformIO (getProcAddress "glDetachShader")
+
+{-# NOINLINE glDetachShaderFunPtr #-}
+
+glDisable :: MonadIO m => GLenum -> m ()
+glDisable = ffienumIOV glDisableFunPtr
+
+glDisableFunPtr :: FunPtr (GLenum -> IO ())
+glDisableFunPtr = unsafePerformIO (getProcAddress "glDisable")
+
+{-# NOINLINE glDisableFunPtr #-}
+
+glDisableVertexAttribArray :: MonadIO m => GLuint -> m ()
+glDisableVertexAttribArray = ffiuintIOV glDisableVertexAttribArrayFunPtr
+
+glDisableVertexAttribArrayFunPtr :: FunPtr (GLuint -> IO ())
+glDisableVertexAttribArrayFunPtr = unsafePerformIO (getProcAddress "glDisableVertexAttribArray")
+
+{-# NOINLINE glDisableVertexAttribArrayFunPtr #-}
+
+glDisablei :: MonadIO m => GLenum -> GLuint -> m ()
+glDisablei = ffienumuintIOV glDisableiFunPtr
+
+glDisableiFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
+glDisableiFunPtr = unsafePerformIO (getProcAddress "glDisablei")
+
+{-# NOINLINE glDisableiFunPtr #-}
+
+glDrawArrays :: MonadIO m => GLenum -> GLint -> GLsizei -> m ()
+glDrawArrays = ffienumintsizeiIOV glDrawArraysFunPtr
+
+glDrawArraysFunPtr :: FunPtr (GLenum -> GLint -> GLsizei -> IO ())
+glDrawArraysFunPtr = unsafePerformIO (getProcAddress "glDrawArrays")
+
+{-# NOINLINE glDrawArraysFunPtr #-}
+
+glDrawArraysInstanced :: MonadIO m => GLenum -> GLint -> GLsizei -> GLsizei -> m ()
+glDrawArraysInstanced = ffienumintsizeisizeiIOV glDrawArraysInstancedFunPtr
+
+glDrawArraysInstancedFunPtr :: FunPtr (GLenum -> GLint -> GLsizei -> GLsizei -> IO ())
+glDrawArraysInstancedFunPtr = unsafePerformIO (getProcAddress "glDrawArraysInstanced")
+
+{-# NOINLINE glDrawArraysInstancedFunPtr #-}
+
+glDrawBuffer :: MonadIO m => GLenum -> m ()
+glDrawBuffer = ffienumIOV glDrawBufferFunPtr
+
+glDrawBufferFunPtr :: FunPtr (GLenum -> IO ())
+glDrawBufferFunPtr = unsafePerformIO (getProcAddress "glDrawBuffer")
+
+{-# NOINLINE glDrawBufferFunPtr #-}
+
+glDrawBuffers :: MonadIO m => GLsizei -> Ptr GLenum -> m ()
+glDrawBuffers = ffisizeiPtrenumIOV glDrawBuffersFunPtr
+
+glDrawBuffersFunPtr :: FunPtr (GLsizei -> Ptr GLenum -> IO ())
+glDrawBuffersFunPtr = unsafePerformIO (getProcAddress "glDrawBuffers")
+
+{-# NOINLINE glDrawBuffersFunPtr #-}
+
+glDrawElements :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr () -> m ()
+glDrawElements = ffienumsizeienumPtrVIOV glDrawElementsFunPtr
+
+glDrawElementsFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> Ptr () -> IO ())
+glDrawElementsFunPtr = unsafePerformIO (getProcAddress "glDrawElements")
+
+{-# NOINLINE glDrawElementsFunPtr #-}
+
+glDrawElementsInstanced :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> m ()
+glDrawElementsInstanced = ffienumsizeienumPtrVsizeiIOV glDrawElementsInstancedFunPtr
+
+glDrawElementsInstancedFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> IO ())
+glDrawElementsInstancedFunPtr = unsafePerformIO (getProcAddress "glDrawElementsInstanced")
+
+{-# NOINLINE glDrawElementsInstancedFunPtr #-}
+
+glDrawRangeElements :: MonadIO m => GLenum -> GLuint -> GLuint -> GLsizei -> GLenum -> Ptr () -> m ()
+glDrawRangeElements = ffienumuintuintsizeienumPtrVIOV glDrawRangeElementsFunPtr
+
+glDrawRangeElementsFunPtr :: FunPtr (GLenum -> GLuint -> GLuint -> GLsizei -> GLenum -> Ptr () -> IO ())
+glDrawRangeElementsFunPtr = unsafePerformIO (getProcAddress "glDrawRangeElements")
+
+{-# NOINLINE glDrawRangeElementsFunPtr #-}
+
+glEnable :: MonadIO m => GLenum -> m ()
+glEnable = ffienumIOV glEnableFunPtr
+
+glEnableFunPtr :: FunPtr (GLenum -> IO ())
+glEnableFunPtr = unsafePerformIO (getProcAddress "glEnable")
+
+{-# NOINLINE glEnableFunPtr #-}
+
+glEnableVertexAttribArray :: MonadIO m => GLuint -> m ()
+glEnableVertexAttribArray = ffiuintIOV glEnableVertexAttribArrayFunPtr
+
+glEnableVertexAttribArrayFunPtr :: FunPtr (GLuint -> IO ())
+glEnableVertexAttribArrayFunPtr = unsafePerformIO (getProcAddress "glEnableVertexAttribArray")
+
+{-# NOINLINE glEnableVertexAttribArrayFunPtr #-}
+
+glEnablei :: MonadIO m => GLenum -> GLuint -> m ()
+glEnablei = ffienumuintIOV glEnableiFunPtr
+
+glEnableiFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
+glEnableiFunPtr = unsafePerformIO (getProcAddress "glEnablei")
+
+{-# NOINLINE glEnableiFunPtr #-}
+
+glEndConditionalRender :: MonadIO m => m ()
+glEndConditionalRender = ffiIOV glEndConditionalRenderFunPtr
+
+glEndConditionalRenderFunPtr :: FunPtr (IO ())
+glEndConditionalRenderFunPtr = unsafePerformIO (getProcAddress "glEndConditionalRender")
+
+{-# NOINLINE glEndConditionalRenderFunPtr #-}
+
+glEndQuery :: MonadIO m => GLenum -> m ()
+glEndQuery = ffienumIOV glEndQueryFunPtr
+
+glEndQueryFunPtr :: FunPtr (GLenum -> IO ())
+glEndQueryFunPtr = unsafePerformIO (getProcAddress "glEndQuery")
+
+{-# NOINLINE glEndQueryFunPtr #-}
+
+glEndTransformFeedback :: MonadIO m => m ()
+glEndTransformFeedback = ffiIOV glEndTransformFeedbackFunPtr
+
+glEndTransformFeedbackFunPtr :: FunPtr (IO ())
+glEndTransformFeedbackFunPtr = unsafePerformIO (getProcAddress "glEndTransformFeedback")
+
+{-# NOINLINE glEndTransformFeedbackFunPtr #-}
+
+glFinish :: MonadIO m => m ()
+glFinish = ffiIOV glFinishFunPtr
+
+glFinishFunPtr :: FunPtr (IO ())
+glFinishFunPtr = unsafePerformIO (getProcAddress "glFinish")
+
+{-# NOINLINE glFinishFunPtr #-}
+
+glFlush :: MonadIO m => m ()
+glFlush = ffiIOV glFlushFunPtr
+
+glFlushFunPtr :: FunPtr (IO ())
+glFlushFunPtr = unsafePerformIO (getProcAddress "glFlush")
+
+{-# NOINLINE glFlushFunPtr #-}
+
+glFrontFace :: MonadIO m => GLenum -> m ()
+glFrontFace = ffienumIOV glFrontFaceFunPtr
+
+glFrontFaceFunPtr :: FunPtr (GLenum -> IO ())
+glFrontFaceFunPtr = unsafePerformIO (getProcAddress "glFrontFace")
+
+{-# NOINLINE glFrontFaceFunPtr #-}
+
+glGenBuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glGenBuffers = ffisizeiPtruintIOV glGenBuffersFunPtr
+
+glGenBuffersFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glGenBuffersFunPtr = unsafePerformIO (getProcAddress "glGenBuffers")
+
+{-# NOINLINE glGenBuffersFunPtr #-}
+
+glGenQueries :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glGenQueries = ffisizeiPtruintIOV glGenQueriesFunPtr
+
+glGenQueriesFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glGenQueriesFunPtr = unsafePerformIO (getProcAddress "glGenQueries")
+
+{-# NOINLINE glGenQueriesFunPtr #-}
+
+glGenTextures :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glGenTextures = ffisizeiPtruintIOV glGenTexturesFunPtr
+
+glGenTexturesFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glGenTexturesFunPtr = unsafePerformIO (getProcAddress "glGenTextures")
+
+{-# NOINLINE glGenTexturesFunPtr #-}
+
+glGetActiveAttrib :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLint -> Ptr GLenum -> Ptr GLchar -> m ()
+glGetActiveAttrib = ffiuintuintsizeiPtrsizeiPtrintPtrenumPtrcharIOV glGetActiveAttribFunPtr
+
+glGetActiveAttribFunPtr :: FunPtr (GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLint -> Ptr GLenum -> Ptr GLchar -> IO ())
+glGetActiveAttribFunPtr = unsafePerformIO (getProcAddress "glGetActiveAttrib")
+
+{-# NOINLINE glGetActiveAttribFunPtr #-}
+
+glGetActiveUniform :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLint -> Ptr GLenum -> Ptr GLchar -> m ()
+glGetActiveUniform = ffiuintuintsizeiPtrsizeiPtrintPtrenumPtrcharIOV glGetActiveUniformFunPtr
+
+glGetActiveUniformFunPtr :: FunPtr (GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLint -> Ptr GLenum -> Ptr GLchar -> IO ())
+glGetActiveUniformFunPtr = unsafePerformIO (getProcAddress "glGetActiveUniform")
+
+{-# NOINLINE glGetActiveUniformFunPtr #-}
+
+glGetAttachedShaders :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLuint -> m ()
+glGetAttachedShaders = ffiuintsizeiPtrsizeiPtruintIOV glGetAttachedShadersFunPtr
+
+glGetAttachedShadersFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLuint -> IO ())
+glGetAttachedShadersFunPtr = unsafePerformIO (getProcAddress "glGetAttachedShaders")
+
+{-# NOINLINE glGetAttachedShadersFunPtr #-}
+
+glGetAttribLocation :: MonadIO m => GLuint -> Ptr GLchar -> m GLint
+glGetAttribLocation = ffiuintPtrcharIOint glGetAttribLocationFunPtr
+
+glGetAttribLocationFunPtr :: FunPtr (GLuint -> Ptr GLchar -> IO GLint)
+glGetAttribLocationFunPtr = unsafePerformIO (getProcAddress "glGetAttribLocation")
+
+{-# NOINLINE glGetAttribLocationFunPtr #-}
+
+glGetBooleani_v :: MonadIO m => GLenum -> GLuint -> Ptr GLboolean -> m ()
+glGetBooleani_v = ffienumuintPtrbooleanIOV glGetBooleani_vFunPtr
+
+glGetBooleani_vFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLboolean -> IO ())
+glGetBooleani_vFunPtr = unsafePerformIO (getProcAddress "glGetBooleani_v")
+
+{-# NOINLINE glGetBooleani_vFunPtr #-}
+
+glGetBooleanv :: MonadIO m => GLenum -> Ptr GLboolean -> m ()
+glGetBooleanv = ffienumPtrbooleanIOV glGetBooleanvFunPtr
+
+glGetBooleanvFunPtr :: FunPtr (GLenum -> Ptr GLboolean -> IO ())
+glGetBooleanvFunPtr = unsafePerformIO (getProcAddress "glGetBooleanv")
+
+{-# NOINLINE glGetBooleanvFunPtr #-}
+
+glGetBufferParameteri64v :: MonadIO m => GLenum -> GLenum -> Ptr GLint64 -> m ()
+glGetBufferParameteri64v = ffienumenumPtrint64IOV glGetBufferParameteri64vFunPtr
+
+glGetBufferParameteri64vFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint64 -> IO ())
+glGetBufferParameteri64vFunPtr = unsafePerformIO (getProcAddress "glGetBufferParameteri64v")
+
+{-# NOINLINE glGetBufferParameteri64vFunPtr #-}
+
+glGetBufferParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
+glGetBufferParameteriv = ffienumenumPtrintIOV glGetBufferParameterivFunPtr
+
+glGetBufferParameterivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+glGetBufferParameterivFunPtr = unsafePerformIO (getProcAddress "glGetBufferParameteriv")
+
+{-# NOINLINE glGetBufferParameterivFunPtr #-}
+
+glGetBufferPointerv :: MonadIO m => GLenum -> GLenum -> Ptr () -> m ()
+glGetBufferPointerv = ffienumenumPtrVIOV glGetBufferPointervFunPtr
+
+glGetBufferPointervFunPtr :: FunPtr (GLenum -> GLenum -> Ptr () -> IO ())
+glGetBufferPointervFunPtr = unsafePerformIO (getProcAddress "glGetBufferPointerv")
+
+{-# NOINLINE glGetBufferPointervFunPtr #-}
+
+glGetBufferSubData :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> Ptr () -> m ()
+glGetBufferSubData = ffienumintptrsizeiptrPtrVIOV glGetBufferSubDataFunPtr
+
+glGetBufferSubDataFunPtr :: FunPtr (GLenum -> GLintptr -> GLsizeiptr -> Ptr () -> IO ())
+glGetBufferSubDataFunPtr = unsafePerformIO (getProcAddress "glGetBufferSubData")
+
+{-# NOINLINE glGetBufferSubDataFunPtr #-}
+
+glGetCompressedTexImage :: MonadIO m => GLenum -> GLint -> Ptr () -> m ()
+glGetCompressedTexImage = ffienumintPtrVIOV glGetCompressedTexImageFunPtr
+
+glGetCompressedTexImageFunPtr :: FunPtr (GLenum -> GLint -> Ptr () -> IO ())
+glGetCompressedTexImageFunPtr = unsafePerformIO (getProcAddress "glGetCompressedTexImage")
+
+{-# NOINLINE glGetCompressedTexImageFunPtr #-}
+
+glGetDoublev :: MonadIO m => GLenum -> Ptr GLdouble -> m ()
+glGetDoublev = ffienumPtrdoubleIOV glGetDoublevFunPtr
+
+glGetDoublevFunPtr :: FunPtr (GLenum -> Ptr GLdouble -> IO ())
+glGetDoublevFunPtr = unsafePerformIO (getProcAddress "glGetDoublev")
+
+{-# NOINLINE glGetDoublevFunPtr #-}
+
+glGetError :: MonadIO m => m GLenum
+glGetError = ffiIOenum glGetErrorFunPtr
+
+glGetErrorFunPtr :: FunPtr (IO GLenum)
+glGetErrorFunPtr = unsafePerformIO (getProcAddress "glGetError")
+
+{-# NOINLINE glGetErrorFunPtr #-}
+
+glGetFloatv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
+glGetFloatv = ffienumPtrfloatIOV glGetFloatvFunPtr
+
+glGetFloatvFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
+glGetFloatvFunPtr = unsafePerformIO (getProcAddress "glGetFloatv")
+
+{-# NOINLINE glGetFloatvFunPtr #-}
+
+glGetFragDataLocation :: MonadIO m => GLuint -> Ptr GLchar -> m GLint
+glGetFragDataLocation = ffiuintPtrcharIOint glGetFragDataLocationFunPtr
+
+glGetFragDataLocationFunPtr :: FunPtr (GLuint -> Ptr GLchar -> IO GLint)
+glGetFragDataLocationFunPtr = unsafePerformIO (getProcAddress "glGetFragDataLocation")
+
+{-# NOINLINE glGetFragDataLocationFunPtr #-}
+
+glGetInteger64i_v :: MonadIO m => GLenum -> GLuint -> Ptr GLint64 -> m ()
+glGetInteger64i_v = ffienumuintPtrint64IOV glGetInteger64i_vFunPtr
+
+glGetInteger64i_vFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLint64 -> IO ())
+glGetInteger64i_vFunPtr = unsafePerformIO (getProcAddress "glGetInteger64i_v")
+
+{-# NOINLINE glGetInteger64i_vFunPtr #-}
+
+glGetIntegeri_v :: MonadIO m => GLenum -> GLuint -> Ptr GLint -> m ()
+glGetIntegeri_v = ffienumuintPtrintIOV glGetIntegeri_vFunPtr
+
+glGetIntegeri_vFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLint -> IO ())
+glGetIntegeri_vFunPtr = unsafePerformIO (getProcAddress "glGetIntegeri_v")
+
+{-# NOINLINE glGetIntegeri_vFunPtr #-}
+
+glGetIntegerv :: MonadIO m => GLenum -> Ptr GLint -> m ()
+glGetIntegerv = ffienumPtrintIOV glGetIntegervFunPtr
+
+glGetIntegervFunPtr :: FunPtr (GLenum -> Ptr GLint -> IO ())
+glGetIntegervFunPtr = unsafePerformIO (getProcAddress "glGetIntegerv")
+
+{-# NOINLINE glGetIntegervFunPtr #-}
+
+glGetProgramInfoLog :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
+glGetProgramInfoLog = ffiuintsizeiPtrsizeiPtrcharIOV glGetProgramInfoLogFunPtr
+
+glGetProgramInfoLogFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
+glGetProgramInfoLogFunPtr = unsafePerformIO (getProcAddress "glGetProgramInfoLog")
+
+{-# NOINLINE glGetProgramInfoLogFunPtr #-}
+
+glGetProgramiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
+glGetProgramiv = ffiuintenumPtrintIOV glGetProgramivFunPtr
+
+glGetProgramivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+glGetProgramivFunPtr = unsafePerformIO (getProcAddress "glGetProgramiv")
+
+{-# NOINLINE glGetProgramivFunPtr #-}
+
+glGetQueryObjectiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
+glGetQueryObjectiv = ffiuintenumPtrintIOV glGetQueryObjectivFunPtr
+
+glGetQueryObjectivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+glGetQueryObjectivFunPtr = unsafePerformIO (getProcAddress "glGetQueryObjectiv")
+
+{-# NOINLINE glGetQueryObjectivFunPtr #-}
+
+glGetQueryObjectuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()
+glGetQueryObjectuiv = ffiuintenumPtruintIOV glGetQueryObjectuivFunPtr
+
+glGetQueryObjectuivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLuint -> IO ())
+glGetQueryObjectuivFunPtr = unsafePerformIO (getProcAddress "glGetQueryObjectuiv")
+
+{-# NOINLINE glGetQueryObjectuivFunPtr #-}
+
+glGetQueryiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
+glGetQueryiv = ffienumenumPtrintIOV glGetQueryivFunPtr
+
+glGetQueryivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+glGetQueryivFunPtr = unsafePerformIO (getProcAddress "glGetQueryiv")
+
+{-# NOINLINE glGetQueryivFunPtr #-}
+
+glGetShaderInfoLog :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
+glGetShaderInfoLog = ffiuintsizeiPtrsizeiPtrcharIOV glGetShaderInfoLogFunPtr
+
+glGetShaderInfoLogFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
+glGetShaderInfoLogFunPtr = unsafePerformIO (getProcAddress "glGetShaderInfoLog")
+
+{-# NOINLINE glGetShaderInfoLogFunPtr #-}
+
+glGetShaderSource :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
+glGetShaderSource = ffiuintsizeiPtrsizeiPtrcharIOV glGetShaderSourceFunPtr
+
+glGetShaderSourceFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
+glGetShaderSourceFunPtr = unsafePerformIO (getProcAddress "glGetShaderSource")
+
+{-# NOINLINE glGetShaderSourceFunPtr #-}
+
+glGetShaderiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
+glGetShaderiv = ffiuintenumPtrintIOV glGetShaderivFunPtr
+
+glGetShaderivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+glGetShaderivFunPtr = unsafePerformIO (getProcAddress "glGetShaderiv")
+
+{-# NOINLINE glGetShaderivFunPtr #-}
+
+glGetString :: MonadIO m => GLenum -> m (Ptr GLubyte)
+glGetString = ffienumIOPtrubyte glGetStringFunPtr
+
+glGetStringFunPtr :: FunPtr (GLenum -> IO (Ptr GLubyte))
+glGetStringFunPtr = unsafePerformIO (getProcAddress "glGetString")
+
+{-# NOINLINE glGetStringFunPtr #-}
+
+glGetStringi :: MonadIO m => GLenum -> GLuint -> m (Ptr GLubyte)
+glGetStringi = ffienumuintIOPtrubyte glGetStringiFunPtr
+
+glGetStringiFunPtr :: FunPtr (GLenum -> GLuint -> IO (Ptr GLubyte))
+glGetStringiFunPtr = unsafePerformIO (getProcAddress "glGetStringi")
+
+{-# NOINLINE glGetStringiFunPtr #-}
+
+glGetTexImage :: MonadIO m => GLenum -> GLint -> GLenum -> GLenum -> Ptr () -> m ()
+glGetTexImage = ffienumintenumenumPtrVIOV glGetTexImageFunPtr
+
+glGetTexImageFunPtr :: FunPtr (GLenum -> GLint -> GLenum -> GLenum -> Ptr () -> IO ())
+glGetTexImageFunPtr = unsafePerformIO (getProcAddress "glGetTexImage")
+
+{-# NOINLINE glGetTexImageFunPtr #-}
+
+glGetTexLevelParameterfv :: MonadIO m => GLenum -> GLint -> GLenum -> Ptr GLfloat -> m ()
+glGetTexLevelParameterfv = ffienumintenumPtrfloatIOV glGetTexLevelParameterfvFunPtr
+
+glGetTexLevelParameterfvFunPtr :: FunPtr (GLenum -> GLint -> GLenum -> Ptr GLfloat -> IO ())
+glGetTexLevelParameterfvFunPtr = unsafePerformIO (getProcAddress "glGetTexLevelParameterfv")
+
+{-# NOINLINE glGetTexLevelParameterfvFunPtr #-}
+
+glGetTexLevelParameteriv :: MonadIO m => GLenum -> GLint -> GLenum -> Ptr GLint -> m ()
+glGetTexLevelParameteriv = ffienumintenumPtrintIOV glGetTexLevelParameterivFunPtr
+
+glGetTexLevelParameterivFunPtr :: FunPtr (GLenum -> GLint -> GLenum -> Ptr GLint -> IO ())
+glGetTexLevelParameterivFunPtr = unsafePerformIO (getProcAddress "glGetTexLevelParameteriv")
+
+{-# NOINLINE glGetTexLevelParameterivFunPtr #-}
+
+glGetTexParameterIiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
+glGetTexParameterIiv = ffienumenumPtrintIOV glGetTexParameterIivFunPtr
+
+glGetTexParameterIivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+glGetTexParameterIivFunPtr = unsafePerformIO (getProcAddress "glGetTexParameterIiv")
+
+{-# NOINLINE glGetTexParameterIivFunPtr #-}
+
+glGetTexParameterIuiv :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()
+glGetTexParameterIuiv = ffienumenumPtruintIOV glGetTexParameterIuivFunPtr
+
+glGetTexParameterIuivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLuint -> IO ())
+glGetTexParameterIuivFunPtr = unsafePerformIO (getProcAddress "glGetTexParameterIuiv")
+
+{-# NOINLINE glGetTexParameterIuivFunPtr #-}
+
+glGetTexParameterfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
+glGetTexParameterfv = ffienumenumPtrfloatIOV glGetTexParameterfvFunPtr
+
+glGetTexParameterfvFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
+glGetTexParameterfvFunPtr = unsafePerformIO (getProcAddress "glGetTexParameterfv")
+
+{-# NOINLINE glGetTexParameterfvFunPtr #-}
+
+glGetTexParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
+glGetTexParameteriv = ffienumenumPtrintIOV glGetTexParameterivFunPtr
+
+glGetTexParameterivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+glGetTexParameterivFunPtr = unsafePerformIO (getProcAddress "glGetTexParameteriv")
+
+{-# NOINLINE glGetTexParameterivFunPtr #-}
+
+glGetTransformFeedbackVarying :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLsizei -> Ptr GLenum -> Ptr GLchar -> m ()
+glGetTransformFeedbackVarying = ffiuintuintsizeiPtrsizeiPtrsizeiPtrenumPtrcharIOV glGetTransformFeedbackVaryingFunPtr
+
+glGetTransformFeedbackVaryingFunPtr :: FunPtr (GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLsizei -> Ptr GLenum -> Ptr GLchar -> IO ())
+glGetTransformFeedbackVaryingFunPtr = unsafePerformIO (getProcAddress "glGetTransformFeedbackVarying")
+
+{-# NOINLINE glGetTransformFeedbackVaryingFunPtr #-}
+
+glGetUniformLocation :: MonadIO m => GLuint -> Ptr GLchar -> m GLint
+glGetUniformLocation = ffiuintPtrcharIOint glGetUniformLocationFunPtr
+
+glGetUniformLocationFunPtr :: FunPtr (GLuint -> Ptr GLchar -> IO GLint)
+glGetUniformLocationFunPtr = unsafePerformIO (getProcAddress "glGetUniformLocation")
+
+{-# NOINLINE glGetUniformLocationFunPtr #-}
+
+glGetUniformfv :: MonadIO m => GLuint -> GLint -> Ptr GLfloat -> m ()
+glGetUniformfv = ffiuintintPtrfloatIOV glGetUniformfvFunPtr
+
+glGetUniformfvFunPtr :: FunPtr (GLuint -> GLint -> Ptr GLfloat -> IO ())
+glGetUniformfvFunPtr = unsafePerformIO (getProcAddress "glGetUniformfv")
+
+{-# NOINLINE glGetUniformfvFunPtr #-}
+
+glGetUniformiv :: MonadIO m => GLuint -> GLint -> Ptr GLint -> m ()
+glGetUniformiv = ffiuintintPtrintIOV glGetUniformivFunPtr
+
+glGetUniformivFunPtr :: FunPtr (GLuint -> GLint -> Ptr GLint -> IO ())
+glGetUniformivFunPtr = unsafePerformIO (getProcAddress "glGetUniformiv")
+
+{-# NOINLINE glGetUniformivFunPtr #-}
+
+glGetUniformuiv :: MonadIO m => GLuint -> GLint -> Ptr GLuint -> m ()
+glGetUniformuiv = ffiuintintPtruintIOV glGetUniformuivFunPtr
+
+glGetUniformuivFunPtr :: FunPtr (GLuint -> GLint -> Ptr GLuint -> IO ())
+glGetUniformuivFunPtr = unsafePerformIO (getProcAddress "glGetUniformuiv")
+
+{-# NOINLINE glGetUniformuivFunPtr #-}
+
+glGetVertexAttribIiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
+glGetVertexAttribIiv = ffiuintenumPtrintIOV glGetVertexAttribIivFunPtr
+
+glGetVertexAttribIivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+glGetVertexAttribIivFunPtr = unsafePerformIO (getProcAddress "glGetVertexAttribIiv")
+
+{-# NOINLINE glGetVertexAttribIivFunPtr #-}
+
+glGetVertexAttribIuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()
+glGetVertexAttribIuiv = ffiuintenumPtruintIOV glGetVertexAttribIuivFunPtr
+
+glGetVertexAttribIuivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLuint -> IO ())
+glGetVertexAttribIuivFunPtr = unsafePerformIO (getProcAddress "glGetVertexAttribIuiv")
+
+{-# NOINLINE glGetVertexAttribIuivFunPtr #-}
+
+glGetVertexAttribPointerv :: MonadIO m => GLuint -> GLenum -> Ptr () -> m ()
+glGetVertexAttribPointerv = ffiuintenumPtrVIOV glGetVertexAttribPointervFunPtr
+
+glGetVertexAttribPointervFunPtr :: FunPtr (GLuint -> GLenum -> Ptr () -> IO ())
+glGetVertexAttribPointervFunPtr = unsafePerformIO (getProcAddress "glGetVertexAttribPointerv")
+
+{-# NOINLINE glGetVertexAttribPointervFunPtr #-}
+
+glGetVertexAttribdv :: MonadIO m => GLuint -> GLenum -> Ptr GLdouble -> m ()
+glGetVertexAttribdv = ffiuintenumPtrdoubleIOV glGetVertexAttribdvFunPtr
+
+glGetVertexAttribdvFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLdouble -> IO ())
+glGetVertexAttribdvFunPtr = unsafePerformIO (getProcAddress "glGetVertexAttribdv")
+
+{-# NOINLINE glGetVertexAttribdvFunPtr #-}
+
+glGetVertexAttribfv :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()
+glGetVertexAttribfv = ffiuintenumPtrfloatIOV glGetVertexAttribfvFunPtr
+
+glGetVertexAttribfvFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLfloat -> IO ())
+glGetVertexAttribfvFunPtr = unsafePerformIO (getProcAddress "glGetVertexAttribfv")
+
+{-# NOINLINE glGetVertexAttribfvFunPtr #-}
+
+glGetVertexAttribiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
+glGetVertexAttribiv = ffiuintenumPtrintIOV glGetVertexAttribivFunPtr
+
+glGetVertexAttribivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+glGetVertexAttribivFunPtr = unsafePerformIO (getProcAddress "glGetVertexAttribiv")
+
+{-# NOINLINE glGetVertexAttribivFunPtr #-}
+
+glHint :: MonadIO m => GLenum -> GLenum -> m ()
+glHint = ffienumenumIOV glHintFunPtr
+
+glHintFunPtr :: FunPtr (GLenum -> GLenum -> IO ())
+glHintFunPtr = unsafePerformIO (getProcAddress "glHint")
+
+{-# NOINLINE glHintFunPtr #-}
+
+glIsBuffer :: MonadIO m => GLuint -> m GLboolean
+glIsBuffer = ffiuintIOboolean glIsBufferFunPtr
+
+glIsBufferFunPtr :: FunPtr (GLuint -> IO GLboolean)
+glIsBufferFunPtr = unsafePerformIO (getProcAddress "glIsBuffer")
+
+{-# NOINLINE glIsBufferFunPtr #-}
+
+glIsEnabled :: MonadIO m => GLenum -> m GLboolean
+glIsEnabled = ffienumIOboolean glIsEnabledFunPtr
+
+glIsEnabledFunPtr :: FunPtr (GLenum -> IO GLboolean)
+glIsEnabledFunPtr = unsafePerformIO (getProcAddress "glIsEnabled")
+
+{-# NOINLINE glIsEnabledFunPtr #-}
+
+glIsEnabledi :: MonadIO m => GLenum -> GLuint -> m GLboolean
+glIsEnabledi = ffienumuintIOboolean glIsEnablediFunPtr
+
+glIsEnablediFunPtr :: FunPtr (GLenum -> GLuint -> IO GLboolean)
+glIsEnablediFunPtr = unsafePerformIO (getProcAddress "glIsEnabledi")
+
+{-# NOINLINE glIsEnablediFunPtr #-}
+
+glIsProgram :: MonadIO m => GLuint -> m GLboolean
+glIsProgram = ffiuintIOboolean glIsProgramFunPtr
+
+glIsProgramFunPtr :: FunPtr (GLuint -> IO GLboolean)
+glIsProgramFunPtr = unsafePerformIO (getProcAddress "glIsProgram")
+
+{-# NOINLINE glIsProgramFunPtr #-}
+
+glIsQuery :: MonadIO m => GLuint -> m GLboolean
+glIsQuery = ffiuintIOboolean glIsQueryFunPtr
+
+glIsQueryFunPtr :: FunPtr (GLuint -> IO GLboolean)
+glIsQueryFunPtr = unsafePerformIO (getProcAddress "glIsQuery")
+
+{-# NOINLINE glIsQueryFunPtr #-}
+
+glIsShader :: MonadIO m => GLuint -> m GLboolean
+glIsShader = ffiuintIOboolean glIsShaderFunPtr
+
+glIsShaderFunPtr :: FunPtr (GLuint -> IO GLboolean)
+glIsShaderFunPtr = unsafePerformIO (getProcAddress "glIsShader")
+
+{-# NOINLINE glIsShaderFunPtr #-}
+
+glIsTexture :: MonadIO m => GLuint -> m GLboolean
+glIsTexture = ffiuintIOboolean glIsTextureFunPtr
+
+glIsTextureFunPtr :: FunPtr (GLuint -> IO GLboolean)
+glIsTextureFunPtr = unsafePerformIO (getProcAddress "glIsTexture")
+
+{-# NOINLINE glIsTextureFunPtr #-}
+
+glLineWidth :: MonadIO m => GLfloat -> m ()
+glLineWidth = ffifloatIOV glLineWidthFunPtr
+
+glLineWidthFunPtr :: FunPtr (GLfloat -> IO ())
+glLineWidthFunPtr = unsafePerformIO (getProcAddress "glLineWidth")
+
+{-# NOINLINE glLineWidthFunPtr #-}
+
+glLinkProgram :: MonadIO m => GLuint -> m ()
+glLinkProgram = ffiuintIOV glLinkProgramFunPtr
+
+glLinkProgramFunPtr :: FunPtr (GLuint -> IO ())
+glLinkProgramFunPtr = unsafePerformIO (getProcAddress "glLinkProgram")
+
+{-# NOINLINE glLinkProgramFunPtr #-}
+
+glLogicOp :: MonadIO m => GLenum -> m ()
+glLogicOp = ffienumIOV glLogicOpFunPtr
+
+glLogicOpFunPtr :: FunPtr (GLenum -> IO ())
+glLogicOpFunPtr = unsafePerformIO (getProcAddress "glLogicOp")
+
+{-# NOINLINE glLogicOpFunPtr #-}
+
+glMapBuffer :: MonadIO m => GLenum -> GLenum -> m (Ptr ())
+glMapBuffer = ffienumenumIOPtrV glMapBufferFunPtr
+
+glMapBufferFunPtr :: FunPtr (GLenum -> GLenum -> IO (Ptr ()))
+glMapBufferFunPtr = unsafePerformIO (getProcAddress "glMapBuffer")
+
+{-# NOINLINE glMapBufferFunPtr #-}
+
+glMultiDrawArrays :: MonadIO m => GLenum -> Ptr GLint -> Ptr GLsizei -> GLsizei -> m ()
+glMultiDrawArrays = ffienumPtrintPtrsizeisizeiIOV glMultiDrawArraysFunPtr
+
+glMultiDrawArraysFunPtr :: FunPtr (GLenum -> Ptr GLint -> Ptr GLsizei -> GLsizei -> IO ())
+glMultiDrawArraysFunPtr = unsafePerformIO (getProcAddress "glMultiDrawArrays")
+
+{-# NOINLINE glMultiDrawArraysFunPtr #-}
+
+glMultiDrawElements :: MonadIO m => GLenum -> Ptr GLsizei -> GLenum -> Ptr () -> GLsizei -> m ()
+glMultiDrawElements = ffienumPtrsizeienumPtrVsizeiIOV glMultiDrawElementsFunPtr
+
+glMultiDrawElementsFunPtr :: FunPtr (GLenum -> Ptr GLsizei -> GLenum -> Ptr () -> GLsizei -> IO ())
+glMultiDrawElementsFunPtr = unsafePerformIO (getProcAddress "glMultiDrawElements")
+
+{-# NOINLINE glMultiDrawElementsFunPtr #-}
+
+glPixelStoref :: MonadIO m => GLenum -> GLfloat -> m ()
+glPixelStoref = ffienumfloatIOV glPixelStorefFunPtr
+
+glPixelStorefFunPtr :: FunPtr (GLenum -> GLfloat -> IO ())
+glPixelStorefFunPtr = unsafePerformIO (getProcAddress "glPixelStoref")
+
+{-# NOINLINE glPixelStorefFunPtr #-}
+
+glPixelStorei :: MonadIO m => GLenum -> GLint -> m ()
+glPixelStorei = ffienumintIOV glPixelStoreiFunPtr
+
+glPixelStoreiFunPtr :: FunPtr (GLenum -> GLint -> IO ())
+glPixelStoreiFunPtr = unsafePerformIO (getProcAddress "glPixelStorei")
+
+{-# NOINLINE glPixelStoreiFunPtr #-}
+
+glPointParameterf :: MonadIO m => GLenum -> GLfloat -> m ()
+glPointParameterf = ffienumfloatIOV glPointParameterfFunPtr
+
+glPointParameterfFunPtr :: FunPtr (GLenum -> GLfloat -> IO ())
+glPointParameterfFunPtr = unsafePerformIO (getProcAddress "glPointParameterf")
+
+{-# NOINLINE glPointParameterfFunPtr #-}
+
+glPointParameterfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
+glPointParameterfv = ffienumPtrfloatIOV glPointParameterfvFunPtr
+
+glPointParameterfvFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
+glPointParameterfvFunPtr = unsafePerformIO (getProcAddress "glPointParameterfv")
+
+{-# NOINLINE glPointParameterfvFunPtr #-}
+
+glPointParameteri :: MonadIO m => GLenum -> GLint -> m ()
+glPointParameteri = ffienumintIOV glPointParameteriFunPtr
+
+glPointParameteriFunPtr :: FunPtr (GLenum -> GLint -> IO ())
+glPointParameteriFunPtr = unsafePerformIO (getProcAddress "glPointParameteri")
+
+{-# NOINLINE glPointParameteriFunPtr #-}
+
+glPointParameteriv :: MonadIO m => GLenum -> Ptr GLint -> m ()
+glPointParameteriv = ffienumPtrintIOV glPointParameterivFunPtr
+
+glPointParameterivFunPtr :: FunPtr (GLenum -> Ptr GLint -> IO ())
+glPointParameterivFunPtr = unsafePerformIO (getProcAddress "glPointParameteriv")
+
+{-# NOINLINE glPointParameterivFunPtr #-}
+
+glPointSize :: MonadIO m => GLfloat -> m ()
+glPointSize = ffifloatIOV glPointSizeFunPtr
+
+glPointSizeFunPtr :: FunPtr (GLfloat -> IO ())
+glPointSizeFunPtr = unsafePerformIO (getProcAddress "glPointSize")
+
+{-# NOINLINE glPointSizeFunPtr #-}
+
+glPolygonMode :: MonadIO m => GLenum -> GLenum -> m ()
+glPolygonMode = ffienumenumIOV glPolygonModeFunPtr
+
+glPolygonModeFunPtr :: FunPtr (GLenum -> GLenum -> IO ())
+glPolygonModeFunPtr = unsafePerformIO (getProcAddress "glPolygonMode")
+
+{-# NOINLINE glPolygonModeFunPtr #-}
+
+glPolygonOffset :: MonadIO m => GLfloat -> GLfloat -> m ()
+glPolygonOffset = ffifloatfloatIOV glPolygonOffsetFunPtr
+
+glPolygonOffsetFunPtr :: FunPtr (GLfloat -> GLfloat -> IO ())
+glPolygonOffsetFunPtr = unsafePerformIO (getProcAddress "glPolygonOffset")
+
+{-# NOINLINE glPolygonOffsetFunPtr #-}
+
+glPrimitiveRestartIndex :: MonadIO m => GLuint -> m ()
+glPrimitiveRestartIndex = ffiuintIOV glPrimitiveRestartIndexFunPtr
+
+glPrimitiveRestartIndexFunPtr :: FunPtr (GLuint -> IO ())
+glPrimitiveRestartIndexFunPtr = unsafePerformIO (getProcAddress "glPrimitiveRestartIndex")
+
+{-# NOINLINE glPrimitiveRestartIndexFunPtr #-}
+
+glReadBuffer :: MonadIO m => GLenum -> m ()
+glReadBuffer = ffienumIOV glReadBufferFunPtr
+
+glReadBufferFunPtr :: FunPtr (GLenum -> IO ())
+glReadBufferFunPtr = unsafePerformIO (getProcAddress "glReadBuffer")
+
+{-# NOINLINE glReadBufferFunPtr #-}
+
+glReadPixels :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
+glReadPixels = ffiintintsizeisizeienumenumPtrVIOV glReadPixelsFunPtr
+
+glReadPixelsFunPtr :: FunPtr (GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ())
+glReadPixelsFunPtr = unsafePerformIO (getProcAddress "glReadPixels")
+
+{-# NOINLINE glReadPixelsFunPtr #-}
+
+glSampleCoverage :: MonadIO m => GLfloat -> GLboolean -> m ()
+glSampleCoverage = ffifloatbooleanIOV glSampleCoverageFunPtr
+
+glSampleCoverageFunPtr :: FunPtr (GLfloat -> GLboolean -> IO ())
+glSampleCoverageFunPtr = unsafePerformIO (getProcAddress "glSampleCoverage")
+
+{-# NOINLINE glSampleCoverageFunPtr #-}
+
+glScissor :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> m ()
+glScissor = ffiintintsizeisizeiIOV glScissorFunPtr
+
+glScissorFunPtr :: FunPtr (GLint -> GLint -> GLsizei -> GLsizei -> IO ())
+glScissorFunPtr = unsafePerformIO (getProcAddress "glScissor")
+
+{-# NOINLINE glScissorFunPtr #-}
+
+glShaderSource :: MonadIO m => GLuint -> GLsizei -> Ptr GLchar -> Ptr GLint -> m ()
+glShaderSource = ffiuintsizeiPtrcharPtrintIOV glShaderSourceFunPtr
+
+glShaderSourceFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLchar -> Ptr GLint -> IO ())
+glShaderSourceFunPtr = unsafePerformIO (getProcAddress "glShaderSource")
+
+{-# NOINLINE glShaderSourceFunPtr #-}
+
+glStencilFunc :: MonadIO m => GLenum -> GLint -> GLuint -> m ()
+glStencilFunc = ffienumintuintIOV glStencilFuncFunPtr
+
+glStencilFuncFunPtr :: FunPtr (GLenum -> GLint -> GLuint -> IO ())
+glStencilFuncFunPtr = unsafePerformIO (getProcAddress "glStencilFunc")
+
+{-# NOINLINE glStencilFuncFunPtr #-}
+
+glStencilFuncSeparate :: MonadIO m => GLenum -> GLenum -> GLint -> GLuint -> m ()
+glStencilFuncSeparate = ffienumenumintuintIOV glStencilFuncSeparateFunPtr
+
+glStencilFuncSeparateFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> GLuint -> IO ())
+glStencilFuncSeparateFunPtr = unsafePerformIO (getProcAddress "glStencilFuncSeparate")
+
+{-# NOINLINE glStencilFuncSeparateFunPtr #-}
+
+glStencilMask :: MonadIO m => GLuint -> m ()
+glStencilMask = ffiuintIOV glStencilMaskFunPtr
+
+glStencilMaskFunPtr :: FunPtr (GLuint -> IO ())
+glStencilMaskFunPtr = unsafePerformIO (getProcAddress "glStencilMask")
+
+{-# NOINLINE glStencilMaskFunPtr #-}
+
+glStencilMaskSeparate :: MonadIO m => GLenum -> GLuint -> m ()
+glStencilMaskSeparate = ffienumuintIOV glStencilMaskSeparateFunPtr
+
+glStencilMaskSeparateFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
+glStencilMaskSeparateFunPtr = unsafePerformIO (getProcAddress "glStencilMaskSeparate")
+
+{-# NOINLINE glStencilMaskSeparateFunPtr #-}
+
+glStencilOp :: MonadIO m => GLenum -> GLenum -> GLenum -> m ()
+glStencilOp = ffienumenumenumIOV glStencilOpFunPtr
+
+glStencilOpFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> IO ())
+glStencilOpFunPtr = unsafePerformIO (getProcAddress "glStencilOp")
+
+{-# NOINLINE glStencilOpFunPtr #-}
+
+glStencilOpSeparate :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> m ()
+glStencilOpSeparate = ffienumenumenumenumIOV glStencilOpSeparateFunPtr
+
+glStencilOpSeparateFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLenum -> IO ())
+glStencilOpSeparateFunPtr = unsafePerformIO (getProcAddress "glStencilOpSeparate")
+
+{-# NOINLINE glStencilOpSeparateFunPtr #-}
+
+glTexBuffer :: MonadIO m => GLenum -> GLenum -> GLuint -> m ()
+glTexBuffer = ffienumenumuintIOV glTexBufferFunPtr
+
+glTexBufferFunPtr :: FunPtr (GLenum -> GLenum -> GLuint -> IO ())
+glTexBufferFunPtr = unsafePerformIO (getProcAddress "glTexBuffer")
+
+{-# NOINLINE glTexBufferFunPtr #-}
+
+glTexImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> m ()
+glTexImage1D = ffienumintintsizeiintenumenumPtrVIOV glTexImage1DFunPtr
+
+glTexImage1DFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> IO ())
+glTexImage1DFunPtr = unsafePerformIO (getProcAddress "glTexImage1D")
+
+{-# NOINLINE glTexImage1DFunPtr #-}
+
+glTexImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> m ()
+glTexImage2D = ffienumintintsizeisizeiintenumenumPtrVIOV glTexImage2DFunPtr
+
+glTexImage2DFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> IO ())
+glTexImage2DFunPtr = unsafePerformIO (getProcAddress "glTexImage2D")
+
+{-# NOINLINE glTexImage2DFunPtr #-}
+
+glTexImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> m ()
+glTexImage3D = ffienumintintsizeisizeisizeiintenumenumPtrVIOV glTexImage3DFunPtr
+
+glTexImage3DFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> IO ())
+glTexImage3DFunPtr = unsafePerformIO (getProcAddress "glTexImage3D")
+
+{-# NOINLINE glTexImage3DFunPtr #-}
+
+glTexParameterIiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
+glTexParameterIiv = ffienumenumPtrintIOV glTexParameterIivFunPtr
+
+glTexParameterIivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+glTexParameterIivFunPtr = unsafePerformIO (getProcAddress "glTexParameterIiv")
+
+{-# NOINLINE glTexParameterIivFunPtr #-}
+
+glTexParameterIuiv :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()
+glTexParameterIuiv = ffienumenumPtruintIOV glTexParameterIuivFunPtr
+
+glTexParameterIuivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLuint -> IO ())
+glTexParameterIuivFunPtr = unsafePerformIO (getProcAddress "glTexParameterIuiv")
+
+{-# NOINLINE glTexParameterIuivFunPtr #-}
+
+glTexParameterf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()
+glTexParameterf = ffienumenumfloatIOV glTexParameterfFunPtr
+
+glTexParameterfFunPtr :: FunPtr (GLenum -> GLenum -> GLfloat -> IO ())
+glTexParameterfFunPtr = unsafePerformIO (getProcAddress "glTexParameterf")
+
+{-# NOINLINE glTexParameterfFunPtr #-}
+
+glTexParameterfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
+glTexParameterfv = ffienumenumPtrfloatIOV glTexParameterfvFunPtr
+
+glTexParameterfvFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
+glTexParameterfvFunPtr = unsafePerformIO (getProcAddress "glTexParameterfv")
+
+{-# NOINLINE glTexParameterfvFunPtr #-}
+
+glTexParameteri :: MonadIO m => GLenum -> GLenum -> GLint -> m ()
+glTexParameteri = ffienumenumintIOV glTexParameteriFunPtr
+
+glTexParameteriFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> IO ())
+glTexParameteriFunPtr = unsafePerformIO (getProcAddress "glTexParameteri")
+
+{-# NOINLINE glTexParameteriFunPtr #-}
+
+glTexParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
+glTexParameteriv = ffienumenumPtrintIOV glTexParameterivFunPtr
+
+glTexParameterivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+glTexParameterivFunPtr = unsafePerformIO (getProcAddress "glTexParameteriv")
+
+{-# NOINLINE glTexParameterivFunPtr #-}
+
+glTexSubImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
+glTexSubImage1D = ffienumintintsizeienumenumPtrVIOV glTexSubImage1DFunPtr
+
+glTexSubImage1DFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ())
+glTexSubImage1DFunPtr = unsafePerformIO (getProcAddress "glTexSubImage1D")
+
+{-# NOINLINE glTexSubImage1DFunPtr #-}
+
+glTexSubImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
+glTexSubImage2D = ffienumintintintsizeisizeienumenumPtrVIOV glTexSubImage2DFunPtr
+
+glTexSubImage2DFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ())
+glTexSubImage2DFunPtr = unsafePerformIO (getProcAddress "glTexSubImage2D")
+
+{-# NOINLINE glTexSubImage2DFunPtr #-}
+
+glTexSubImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
+glTexSubImage3D = ffienumintintintintsizeisizeisizeienumenumPtrVIOV glTexSubImage3DFunPtr
+
+glTexSubImage3DFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ())
+glTexSubImage3DFunPtr = unsafePerformIO (getProcAddress "glTexSubImage3D")
+
+{-# NOINLINE glTexSubImage3DFunPtr #-}
+
+glTransformFeedbackVaryings :: MonadIO m => GLuint -> GLsizei -> Ptr GLchar -> GLenum -> m ()
+glTransformFeedbackVaryings = ffiuintsizeiPtrcharenumIOV glTransformFeedbackVaryingsFunPtr
+
+glTransformFeedbackVaryingsFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLchar -> GLenum -> IO ())
+glTransformFeedbackVaryingsFunPtr = unsafePerformIO (getProcAddress "glTransformFeedbackVaryings")
+
+{-# NOINLINE glTransformFeedbackVaryingsFunPtr #-}
+
+glUniform1f :: MonadIO m => GLint -> GLfloat -> m ()
+glUniform1f = ffiintfloatIOV glUniform1fFunPtr
+
+glUniform1fFunPtr :: FunPtr (GLint -> GLfloat -> IO ())
+glUniform1fFunPtr = unsafePerformIO (getProcAddress "glUniform1f")
+
+{-# NOINLINE glUniform1fFunPtr #-}
+
+glUniform1fv :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()
+glUniform1fv = ffiintsizeiPtrfloatIOV glUniform1fvFunPtr
+
+glUniform1fvFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLfloat -> IO ())
+glUniform1fvFunPtr = unsafePerformIO (getProcAddress "glUniform1fv")
+
+{-# NOINLINE glUniform1fvFunPtr #-}
+
+glUniform1i :: MonadIO m => GLint -> GLint -> m ()
+glUniform1i = ffiintintIOV glUniform1iFunPtr
+
+glUniform1iFunPtr :: FunPtr (GLint -> GLint -> IO ())
+glUniform1iFunPtr = unsafePerformIO (getProcAddress "glUniform1i")
+
+{-# NOINLINE glUniform1iFunPtr #-}
+
+glUniform1iv :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()
+glUniform1iv = ffiintsizeiPtrintIOV glUniform1ivFunPtr
+
+glUniform1ivFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLint -> IO ())
+glUniform1ivFunPtr = unsafePerformIO (getProcAddress "glUniform1iv")
+
+{-# NOINLINE glUniform1ivFunPtr #-}
+
+glUniform1ui :: MonadIO m => GLint -> GLuint -> m ()
+glUniform1ui = ffiintuintIOV glUniform1uiFunPtr
+
+glUniform1uiFunPtr :: FunPtr (GLint -> GLuint -> IO ())
+glUniform1uiFunPtr = unsafePerformIO (getProcAddress "glUniform1ui")
+
+{-# NOINLINE glUniform1uiFunPtr #-}
+
+glUniform1uiv :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()
+glUniform1uiv = ffiintsizeiPtruintIOV glUniform1uivFunPtr
+
+glUniform1uivFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLuint -> IO ())
+glUniform1uivFunPtr = unsafePerformIO (getProcAddress "glUniform1uiv")
+
+{-# NOINLINE glUniform1uivFunPtr #-}
+
+glUniform2f :: MonadIO m => GLint -> GLfloat -> GLfloat -> m ()
+glUniform2f = ffiintfloatfloatIOV glUniform2fFunPtr
+
+glUniform2fFunPtr :: FunPtr (GLint -> GLfloat -> GLfloat -> IO ())
+glUniform2fFunPtr = unsafePerformIO (getProcAddress "glUniform2f")
+
+{-# NOINLINE glUniform2fFunPtr #-}
+
+glUniform2fv :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()
+glUniform2fv = ffiintsizeiPtrfloatIOV glUniform2fvFunPtr
+
+glUniform2fvFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLfloat -> IO ())
+glUniform2fvFunPtr = unsafePerformIO (getProcAddress "glUniform2fv")
+
+{-# NOINLINE glUniform2fvFunPtr #-}
+
+glUniform2i :: MonadIO m => GLint -> GLint -> GLint -> m ()
+glUniform2i = ffiintintintIOV glUniform2iFunPtr
+
+glUniform2iFunPtr :: FunPtr (GLint -> GLint -> GLint -> IO ())
+glUniform2iFunPtr = unsafePerformIO (getProcAddress "glUniform2i")
+
+{-# NOINLINE glUniform2iFunPtr #-}
+
+glUniform2iv :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()
+glUniform2iv = ffiintsizeiPtrintIOV glUniform2ivFunPtr
+
+glUniform2ivFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLint -> IO ())
+glUniform2ivFunPtr = unsafePerformIO (getProcAddress "glUniform2iv")
+
+{-# NOINLINE glUniform2ivFunPtr #-}
+
+glUniform2ui :: MonadIO m => GLint -> GLuint -> GLuint -> m ()
+glUniform2ui = ffiintuintuintIOV glUniform2uiFunPtr
+
+glUniform2uiFunPtr :: FunPtr (GLint -> GLuint -> GLuint -> IO ())
+glUniform2uiFunPtr = unsafePerformIO (getProcAddress "glUniform2ui")
+
+{-# NOINLINE glUniform2uiFunPtr #-}
+
+glUniform2uiv :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()
+glUniform2uiv = ffiintsizeiPtruintIOV glUniform2uivFunPtr
+
+glUniform2uivFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLuint -> IO ())
+glUniform2uivFunPtr = unsafePerformIO (getProcAddress "glUniform2uiv")
+
+{-# NOINLINE glUniform2uivFunPtr #-}
+
+glUniform3f :: MonadIO m => GLint -> GLfloat -> GLfloat -> GLfloat -> m ()
+glUniform3f = ffiintfloatfloatfloatIOV glUniform3fFunPtr
+
+glUniform3fFunPtr :: FunPtr (GLint -> GLfloat -> GLfloat -> GLfloat -> IO ())
+glUniform3fFunPtr = unsafePerformIO (getProcAddress "glUniform3f")
+
+{-# NOINLINE glUniform3fFunPtr #-}
+
+glUniform3fv :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()
+glUniform3fv = ffiintsizeiPtrfloatIOV glUniform3fvFunPtr
+
+glUniform3fvFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLfloat -> IO ())
+glUniform3fvFunPtr = unsafePerformIO (getProcAddress "glUniform3fv")
+
+{-# NOINLINE glUniform3fvFunPtr #-}
+
+glUniform3i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()
+glUniform3i = ffiintintintintIOV glUniform3iFunPtr
+
+glUniform3iFunPtr :: FunPtr (GLint -> GLint -> GLint -> GLint -> IO ())
+glUniform3iFunPtr = unsafePerformIO (getProcAddress "glUniform3i")
+
+{-# NOINLINE glUniform3iFunPtr #-}
+
+glUniform3iv :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()
+glUniform3iv = ffiintsizeiPtrintIOV glUniform3ivFunPtr
+
+glUniform3ivFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLint -> IO ())
+glUniform3ivFunPtr = unsafePerformIO (getProcAddress "glUniform3iv")
+
+{-# NOINLINE glUniform3ivFunPtr #-}
+
+glUniform3ui :: MonadIO m => GLint -> GLuint -> GLuint -> GLuint -> m ()
+glUniform3ui = ffiintuintuintuintIOV glUniform3uiFunPtr
+
+glUniform3uiFunPtr :: FunPtr (GLint -> GLuint -> GLuint -> GLuint -> IO ())
+glUniform3uiFunPtr = unsafePerformIO (getProcAddress "glUniform3ui")
+
+{-# NOINLINE glUniform3uiFunPtr #-}
+
+glUniform3uiv :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()
+glUniform3uiv = ffiintsizeiPtruintIOV glUniform3uivFunPtr
+
+glUniform3uivFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLuint -> IO ())
+glUniform3uivFunPtr = unsafePerformIO (getProcAddress "glUniform3uiv")
+
+{-# NOINLINE glUniform3uivFunPtr #-}
+
+glUniform4f :: MonadIO m => GLint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
+glUniform4f = ffiintfloatfloatfloatfloatIOV glUniform4fFunPtr
+
+glUniform4fFunPtr :: FunPtr (GLint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+glUniform4fFunPtr = unsafePerformIO (getProcAddress "glUniform4f")
+
+{-# NOINLINE glUniform4fFunPtr #-}
+
+glUniform4fv :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()
+glUniform4fv = ffiintsizeiPtrfloatIOV glUniform4fvFunPtr
+
+glUniform4fvFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLfloat -> IO ())
+glUniform4fvFunPtr = unsafePerformIO (getProcAddress "glUniform4fv")
+
+{-# NOINLINE glUniform4fvFunPtr #-}
+
+glUniform4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> GLint -> m ()
+glUniform4i = ffiintintintintintIOV glUniform4iFunPtr
+
+glUniform4iFunPtr :: FunPtr (GLint -> GLint -> GLint -> GLint -> GLint -> IO ())
+glUniform4iFunPtr = unsafePerformIO (getProcAddress "glUniform4i")
+
+{-# NOINLINE glUniform4iFunPtr #-}
+
+glUniform4iv :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()
+glUniform4iv = ffiintsizeiPtrintIOV glUniform4ivFunPtr
+
+glUniform4ivFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLint -> IO ())
+glUniform4ivFunPtr = unsafePerformIO (getProcAddress "glUniform4iv")
+
+{-# NOINLINE glUniform4ivFunPtr #-}
+
+glUniform4ui :: MonadIO m => GLint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
+glUniform4ui = ffiintuintuintuintuintIOV glUniform4uiFunPtr
+
+glUniform4uiFunPtr :: FunPtr (GLint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ())
+glUniform4uiFunPtr = unsafePerformIO (getProcAddress "glUniform4ui")
+
+{-# NOINLINE glUniform4uiFunPtr #-}
+
+glUniform4uiv :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()
+glUniform4uiv = ffiintsizeiPtruintIOV glUniform4uivFunPtr
+
+glUniform4uivFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLuint -> IO ())
+glUniform4uivFunPtr = unsafePerformIO (getProcAddress "glUniform4uiv")
+
+{-# NOINLINE glUniform4uivFunPtr #-}
+
+glUniformMatrix2fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
+glUniformMatrix2fv = ffiintsizeibooleanPtrfloatIOV glUniformMatrix2fvFunPtr
+
+glUniformMatrix2fvFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+glUniformMatrix2fvFunPtr = unsafePerformIO (getProcAddress "glUniformMatrix2fv")
+
+{-# NOINLINE glUniformMatrix2fvFunPtr #-}
+
+glUniformMatrix2x3fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
+glUniformMatrix2x3fv = ffiintsizeibooleanPtrfloatIOV glUniformMatrix2x3fvFunPtr
+
+glUniformMatrix2x3fvFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+glUniformMatrix2x3fvFunPtr = unsafePerformIO (getProcAddress "glUniformMatrix2x3fv")
+
+{-# NOINLINE glUniformMatrix2x3fvFunPtr #-}
+
+glUniformMatrix2x4fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
+glUniformMatrix2x4fv = ffiintsizeibooleanPtrfloatIOV glUniformMatrix2x4fvFunPtr
+
+glUniformMatrix2x4fvFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+glUniformMatrix2x4fvFunPtr = unsafePerformIO (getProcAddress "glUniformMatrix2x4fv")
+
+{-# NOINLINE glUniformMatrix2x4fvFunPtr #-}
+
+glUniformMatrix3fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
+glUniformMatrix3fv = ffiintsizeibooleanPtrfloatIOV glUniformMatrix3fvFunPtr
+
+glUniformMatrix3fvFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+glUniformMatrix3fvFunPtr = unsafePerformIO (getProcAddress "glUniformMatrix3fv")
+
+{-# NOINLINE glUniformMatrix3fvFunPtr #-}
+
+glUniformMatrix3x2fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
+glUniformMatrix3x2fv = ffiintsizeibooleanPtrfloatIOV glUniformMatrix3x2fvFunPtr
+
+glUniformMatrix3x2fvFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+glUniformMatrix3x2fvFunPtr = unsafePerformIO (getProcAddress "glUniformMatrix3x2fv")
+
+{-# NOINLINE glUniformMatrix3x2fvFunPtr #-}
+
+glUniformMatrix3x4fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
+glUniformMatrix3x4fv = ffiintsizeibooleanPtrfloatIOV glUniformMatrix3x4fvFunPtr
+
+glUniformMatrix3x4fvFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+glUniformMatrix3x4fvFunPtr = unsafePerformIO (getProcAddress "glUniformMatrix3x4fv")
+
+{-# NOINLINE glUniformMatrix3x4fvFunPtr #-}
+
+glUniformMatrix4fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
+glUniformMatrix4fv = ffiintsizeibooleanPtrfloatIOV glUniformMatrix4fvFunPtr
+
+glUniformMatrix4fvFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+glUniformMatrix4fvFunPtr = unsafePerformIO (getProcAddress "glUniformMatrix4fv")
+
+{-# NOINLINE glUniformMatrix4fvFunPtr #-}
+
+glUniformMatrix4x2fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
+glUniformMatrix4x2fv = ffiintsizeibooleanPtrfloatIOV glUniformMatrix4x2fvFunPtr
+
+glUniformMatrix4x2fvFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+glUniformMatrix4x2fvFunPtr = unsafePerformIO (getProcAddress "glUniformMatrix4x2fv")
+
+{-# NOINLINE glUniformMatrix4x2fvFunPtr #-}
+
+glUniformMatrix4x3fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
+glUniformMatrix4x3fv = ffiintsizeibooleanPtrfloatIOV glUniformMatrix4x3fvFunPtr
+
+glUniformMatrix4x3fvFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+glUniformMatrix4x3fvFunPtr = unsafePerformIO (getProcAddress "glUniformMatrix4x3fv")
+
+{-# NOINLINE glUniformMatrix4x3fvFunPtr #-}
+
+glUnmapBuffer :: MonadIO m => GLenum -> m GLboolean
+glUnmapBuffer = ffienumIOboolean glUnmapBufferFunPtr
+
+glUnmapBufferFunPtr :: FunPtr (GLenum -> IO GLboolean)
+glUnmapBufferFunPtr = unsafePerformIO (getProcAddress "glUnmapBuffer")
+
+{-# NOINLINE glUnmapBufferFunPtr #-}
+
+glUseProgram :: MonadIO m => GLuint -> m ()
+glUseProgram = ffiuintIOV glUseProgramFunPtr
+
+glUseProgramFunPtr :: FunPtr (GLuint -> IO ())
+glUseProgramFunPtr = unsafePerformIO (getProcAddress "glUseProgram")
+
+{-# NOINLINE glUseProgramFunPtr #-}
+
+glValidateProgram :: MonadIO m => GLuint -> m ()
+glValidateProgram = ffiuintIOV glValidateProgramFunPtr
+
+glValidateProgramFunPtr :: FunPtr (GLuint -> IO ())
+glValidateProgramFunPtr = unsafePerformIO (getProcAddress "glValidateProgram")
+
+{-# NOINLINE glValidateProgramFunPtr #-}
+
+glVertexAttrib1d :: MonadIO m => GLuint -> GLdouble -> m ()
+glVertexAttrib1d = ffiuintdoubleIOV glVertexAttrib1dFunPtr
+
+glVertexAttrib1dFunPtr :: FunPtr (GLuint -> GLdouble -> IO ())
+glVertexAttrib1dFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib1d")
+
+{-# NOINLINE glVertexAttrib1dFunPtr #-}
+
+glVertexAttrib1dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()
+glVertexAttrib1dv = ffiuintPtrdoubleIOV glVertexAttrib1dvFunPtr
+
+glVertexAttrib1dvFunPtr :: FunPtr (GLuint -> Ptr GLdouble -> IO ())
+glVertexAttrib1dvFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib1dv")
+
+{-# NOINLINE glVertexAttrib1dvFunPtr #-}
+
+glVertexAttrib1f :: MonadIO m => GLuint -> GLfloat -> m ()
+glVertexAttrib1f = ffiuintfloatIOV glVertexAttrib1fFunPtr
+
+glVertexAttrib1fFunPtr :: FunPtr (GLuint -> GLfloat -> IO ())
+glVertexAttrib1fFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib1f")
+
+{-# NOINLINE glVertexAttrib1fFunPtr #-}
+
+glVertexAttrib1fv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()
+glVertexAttrib1fv = ffiuintPtrfloatIOV glVertexAttrib1fvFunPtr
+
+glVertexAttrib1fvFunPtr :: FunPtr (GLuint -> Ptr GLfloat -> IO ())
+glVertexAttrib1fvFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib1fv")
+
+{-# NOINLINE glVertexAttrib1fvFunPtr #-}
+
+glVertexAttrib1s :: MonadIO m => GLuint -> GLshort -> m ()
+glVertexAttrib1s = ffiuintshortIOV glVertexAttrib1sFunPtr
+
+glVertexAttrib1sFunPtr :: FunPtr (GLuint -> GLshort -> IO ())
+glVertexAttrib1sFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib1s")
+
+{-# NOINLINE glVertexAttrib1sFunPtr #-}
+
+glVertexAttrib1sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()
+glVertexAttrib1sv = ffiuintPtrshortIOV glVertexAttrib1svFunPtr
+
+glVertexAttrib1svFunPtr :: FunPtr (GLuint -> Ptr GLshort -> IO ())
+glVertexAttrib1svFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib1sv")
+
+{-# NOINLINE glVertexAttrib1svFunPtr #-}
+
+glVertexAttrib2d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> m ()
+glVertexAttrib2d = ffiuintdoubledoubleIOV glVertexAttrib2dFunPtr
+
+glVertexAttrib2dFunPtr :: FunPtr (GLuint -> GLdouble -> GLdouble -> IO ())
+glVertexAttrib2dFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib2d")
+
+{-# NOINLINE glVertexAttrib2dFunPtr #-}
+
+glVertexAttrib2dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()
+glVertexAttrib2dv = ffiuintPtrdoubleIOV glVertexAttrib2dvFunPtr
+
+glVertexAttrib2dvFunPtr :: FunPtr (GLuint -> Ptr GLdouble -> IO ())
+glVertexAttrib2dvFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib2dv")
+
+{-# NOINLINE glVertexAttrib2dvFunPtr #-}
+
+glVertexAttrib2f :: MonadIO m => GLuint -> GLfloat -> GLfloat -> m ()
+glVertexAttrib2f = ffiuintfloatfloatIOV glVertexAttrib2fFunPtr
+
+glVertexAttrib2fFunPtr :: FunPtr (GLuint -> GLfloat -> GLfloat -> IO ())
+glVertexAttrib2fFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib2f")
+
+{-# NOINLINE glVertexAttrib2fFunPtr #-}
+
+glVertexAttrib2fv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()
+glVertexAttrib2fv = ffiuintPtrfloatIOV glVertexAttrib2fvFunPtr
+
+glVertexAttrib2fvFunPtr :: FunPtr (GLuint -> Ptr GLfloat -> IO ())
+glVertexAttrib2fvFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib2fv")
+
+{-# NOINLINE glVertexAttrib2fvFunPtr #-}
+
+glVertexAttrib2s :: MonadIO m => GLuint -> GLshort -> GLshort -> m ()
+glVertexAttrib2s = ffiuintshortshortIOV glVertexAttrib2sFunPtr
+
+glVertexAttrib2sFunPtr :: FunPtr (GLuint -> GLshort -> GLshort -> IO ())
+glVertexAttrib2sFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib2s")
+
+{-# NOINLINE glVertexAttrib2sFunPtr #-}
+
+glVertexAttrib2sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()
+glVertexAttrib2sv = ffiuintPtrshortIOV glVertexAttrib2svFunPtr
+
+glVertexAttrib2svFunPtr :: FunPtr (GLuint -> Ptr GLshort -> IO ())
+glVertexAttrib2svFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib2sv")
+
+{-# NOINLINE glVertexAttrib2svFunPtr #-}
+
+glVertexAttrib3d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> m ()
+glVertexAttrib3d = ffiuintdoubledoubledoubleIOV glVertexAttrib3dFunPtr
+
+glVertexAttrib3dFunPtr :: FunPtr (GLuint -> GLdouble -> GLdouble -> GLdouble -> IO ())
+glVertexAttrib3dFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib3d")
+
+{-# NOINLINE glVertexAttrib3dFunPtr #-}
+
+glVertexAttrib3dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()
+glVertexAttrib3dv = ffiuintPtrdoubleIOV glVertexAttrib3dvFunPtr
+
+glVertexAttrib3dvFunPtr :: FunPtr (GLuint -> Ptr GLdouble -> IO ())
+glVertexAttrib3dvFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib3dv")
+
+{-# NOINLINE glVertexAttrib3dvFunPtr #-}
+
+glVertexAttrib3f :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> m ()
+glVertexAttrib3f = ffiuintfloatfloatfloatIOV glVertexAttrib3fFunPtr
+
+glVertexAttrib3fFunPtr :: FunPtr (GLuint -> GLfloat -> GLfloat -> GLfloat -> IO ())
+glVertexAttrib3fFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib3f")
+
+{-# NOINLINE glVertexAttrib3fFunPtr #-}
+
+glVertexAttrib3fv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()
+glVertexAttrib3fv = ffiuintPtrfloatIOV glVertexAttrib3fvFunPtr
+
+glVertexAttrib3fvFunPtr :: FunPtr (GLuint -> Ptr GLfloat -> IO ())
+glVertexAttrib3fvFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib3fv")
+
+{-# NOINLINE glVertexAttrib3fvFunPtr #-}
+
+glVertexAttrib3s :: MonadIO m => GLuint -> GLshort -> GLshort -> GLshort -> m ()
+glVertexAttrib3s = ffiuintshortshortshortIOV glVertexAttrib3sFunPtr
+
+glVertexAttrib3sFunPtr :: FunPtr (GLuint -> GLshort -> GLshort -> GLshort -> IO ())
+glVertexAttrib3sFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib3s")
+
+{-# NOINLINE glVertexAttrib3sFunPtr #-}
+
+glVertexAttrib3sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()
+glVertexAttrib3sv = ffiuintPtrshortIOV glVertexAttrib3svFunPtr
+
+glVertexAttrib3svFunPtr :: FunPtr (GLuint -> Ptr GLshort -> IO ())
+glVertexAttrib3svFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib3sv")
+
+{-# NOINLINE glVertexAttrib3svFunPtr #-}
+
+glVertexAttrib4Nbv :: MonadIO m => GLuint -> Ptr GLbyte -> m ()
+glVertexAttrib4Nbv = ffiuintPtrbyteIOV glVertexAttrib4NbvFunPtr
+
+glVertexAttrib4NbvFunPtr :: FunPtr (GLuint -> Ptr GLbyte -> IO ())
+glVertexAttrib4NbvFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4Nbv")
+
+{-# NOINLINE glVertexAttrib4NbvFunPtr #-}
+
+glVertexAttrib4Niv :: MonadIO m => GLuint -> Ptr GLint -> m ()
+glVertexAttrib4Niv = ffiuintPtrintIOV glVertexAttrib4NivFunPtr
+
+glVertexAttrib4NivFunPtr :: FunPtr (GLuint -> Ptr GLint -> IO ())
+glVertexAttrib4NivFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4Niv")
+
+{-# NOINLINE glVertexAttrib4NivFunPtr #-}
+
+glVertexAttrib4Nsv :: MonadIO m => GLuint -> Ptr GLshort -> m ()
+glVertexAttrib4Nsv = ffiuintPtrshortIOV glVertexAttrib4NsvFunPtr
+
+glVertexAttrib4NsvFunPtr :: FunPtr (GLuint -> Ptr GLshort -> IO ())
+glVertexAttrib4NsvFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4Nsv")
+
+{-# NOINLINE glVertexAttrib4NsvFunPtr #-}
+
+glVertexAttrib4Nub :: MonadIO m => GLuint -> GLubyte -> GLubyte -> GLubyte -> GLubyte -> m ()
+glVertexAttrib4Nub = ffiuintubyteubyteubyteubyteIOV glVertexAttrib4NubFunPtr
+
+glVertexAttrib4NubFunPtr :: FunPtr (GLuint -> GLubyte -> GLubyte -> GLubyte -> GLubyte -> IO ())
+glVertexAttrib4NubFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4Nub")
+
+{-# NOINLINE glVertexAttrib4NubFunPtr #-}
+
+glVertexAttrib4Nubv :: MonadIO m => GLuint -> Ptr GLubyte -> m ()
+glVertexAttrib4Nubv = ffiuintPtrubyteIOV glVertexAttrib4NubvFunPtr
+
+glVertexAttrib4NubvFunPtr :: FunPtr (GLuint -> Ptr GLubyte -> IO ())
+glVertexAttrib4NubvFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4Nubv")
+
+{-# NOINLINE glVertexAttrib4NubvFunPtr #-}
+
+glVertexAttrib4Nuiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()
+glVertexAttrib4Nuiv = ffiuintPtruintIOV glVertexAttrib4NuivFunPtr
+
+glVertexAttrib4NuivFunPtr :: FunPtr (GLuint -> Ptr GLuint -> IO ())
+glVertexAttrib4NuivFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4Nuiv")
+
+{-# NOINLINE glVertexAttrib4NuivFunPtr #-}
+
+glVertexAttrib4Nusv :: MonadIO m => GLuint -> Ptr GLushort -> m ()
+glVertexAttrib4Nusv = ffiuintPtrushortIOV glVertexAttrib4NusvFunPtr
+
+glVertexAttrib4NusvFunPtr :: FunPtr (GLuint -> Ptr GLushort -> IO ())
+glVertexAttrib4NusvFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4Nusv")
+
+{-# NOINLINE glVertexAttrib4NusvFunPtr #-}
+
+glVertexAttrib4bv :: MonadIO m => GLuint -> Ptr GLbyte -> m ()
+glVertexAttrib4bv = ffiuintPtrbyteIOV glVertexAttrib4bvFunPtr
+
+glVertexAttrib4bvFunPtr :: FunPtr (GLuint -> Ptr GLbyte -> IO ())
+glVertexAttrib4bvFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4bv")
+
+{-# NOINLINE glVertexAttrib4bvFunPtr #-}
+
+glVertexAttrib4d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
+glVertexAttrib4d = ffiuintdoubledoubledoubledoubleIOV glVertexAttrib4dFunPtr
+
+glVertexAttrib4dFunPtr :: FunPtr (GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
+glVertexAttrib4dFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4d")
+
+{-# NOINLINE glVertexAttrib4dFunPtr #-}
+
+glVertexAttrib4dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()
+glVertexAttrib4dv = ffiuintPtrdoubleIOV glVertexAttrib4dvFunPtr
+
+glVertexAttrib4dvFunPtr :: FunPtr (GLuint -> Ptr GLdouble -> IO ())
+glVertexAttrib4dvFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4dv")
+
+{-# NOINLINE glVertexAttrib4dvFunPtr #-}
+
+glVertexAttrib4f :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
+glVertexAttrib4f = ffiuintfloatfloatfloatfloatIOV glVertexAttrib4fFunPtr
+
+glVertexAttrib4fFunPtr :: FunPtr (GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+glVertexAttrib4fFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4f")
+
+{-# NOINLINE glVertexAttrib4fFunPtr #-}
+
+glVertexAttrib4fv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()
+glVertexAttrib4fv = ffiuintPtrfloatIOV glVertexAttrib4fvFunPtr
+
+glVertexAttrib4fvFunPtr :: FunPtr (GLuint -> Ptr GLfloat -> IO ())
+glVertexAttrib4fvFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4fv")
+
+{-# NOINLINE glVertexAttrib4fvFunPtr #-}
+
+glVertexAttrib4iv :: MonadIO m => GLuint -> Ptr GLint -> m ()
+glVertexAttrib4iv = ffiuintPtrintIOV glVertexAttrib4ivFunPtr
+
+glVertexAttrib4ivFunPtr :: FunPtr (GLuint -> Ptr GLint -> IO ())
+glVertexAttrib4ivFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4iv")
+
+{-# NOINLINE glVertexAttrib4ivFunPtr #-}
+
+glVertexAttrib4s :: MonadIO m => GLuint -> GLshort -> GLshort -> GLshort -> GLshort -> m ()
+glVertexAttrib4s = ffiuintshortshortshortshortIOV glVertexAttrib4sFunPtr
+
+glVertexAttrib4sFunPtr :: FunPtr (GLuint -> GLshort -> GLshort -> GLshort -> GLshort -> IO ())
+glVertexAttrib4sFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4s")
+
+{-# NOINLINE glVertexAttrib4sFunPtr #-}
+
+glVertexAttrib4sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()
+glVertexAttrib4sv = ffiuintPtrshortIOV glVertexAttrib4svFunPtr
+
+glVertexAttrib4svFunPtr :: FunPtr (GLuint -> Ptr GLshort -> IO ())
+glVertexAttrib4svFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4sv")
+
+{-# NOINLINE glVertexAttrib4svFunPtr #-}
+
+glVertexAttrib4ubv :: MonadIO m => GLuint -> Ptr GLubyte -> m ()
+glVertexAttrib4ubv = ffiuintPtrubyteIOV glVertexAttrib4ubvFunPtr
+
+glVertexAttrib4ubvFunPtr :: FunPtr (GLuint -> Ptr GLubyte -> IO ())
+glVertexAttrib4ubvFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4ubv")
+
+{-# NOINLINE glVertexAttrib4ubvFunPtr #-}
+
+glVertexAttrib4uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()
+glVertexAttrib4uiv = ffiuintPtruintIOV glVertexAttrib4uivFunPtr
+
+glVertexAttrib4uivFunPtr :: FunPtr (GLuint -> Ptr GLuint -> IO ())
+glVertexAttrib4uivFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4uiv")
+
+{-# NOINLINE glVertexAttrib4uivFunPtr #-}
+
+glVertexAttrib4usv :: MonadIO m => GLuint -> Ptr GLushort -> m ()
+glVertexAttrib4usv = ffiuintPtrushortIOV glVertexAttrib4usvFunPtr
+
+glVertexAttrib4usvFunPtr :: FunPtr (GLuint -> Ptr GLushort -> IO ())
+glVertexAttrib4usvFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4usv")
+
+{-# NOINLINE glVertexAttrib4usvFunPtr #-}
+
+glVertexAttribI1i :: MonadIO m => GLuint -> GLint -> m ()
+glVertexAttribI1i = ffiuintintIOV glVertexAttribI1iFunPtr
+
+glVertexAttribI1iFunPtr :: FunPtr (GLuint -> GLint -> IO ())
+glVertexAttribI1iFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI1i")
+
+{-# NOINLINE glVertexAttribI1iFunPtr #-}
+
+glVertexAttribI1iv :: MonadIO m => GLuint -> Ptr GLint -> m ()
+glVertexAttribI1iv = ffiuintPtrintIOV glVertexAttribI1ivFunPtr
+
+glVertexAttribI1ivFunPtr :: FunPtr (GLuint -> Ptr GLint -> IO ())
+glVertexAttribI1ivFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI1iv")
+
+{-# NOINLINE glVertexAttribI1ivFunPtr #-}
+
+glVertexAttribI1ui :: MonadIO m => GLuint -> GLuint -> m ()
+glVertexAttribI1ui = ffiuintuintIOV glVertexAttribI1uiFunPtr
+
+glVertexAttribI1uiFunPtr :: FunPtr (GLuint -> GLuint -> IO ())
+glVertexAttribI1uiFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI1ui")
+
+{-# NOINLINE glVertexAttribI1uiFunPtr #-}
+
+glVertexAttribI1uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()
+glVertexAttribI1uiv = ffiuintPtruintIOV glVertexAttribI1uivFunPtr
+
+glVertexAttribI1uivFunPtr :: FunPtr (GLuint -> Ptr GLuint -> IO ())
+glVertexAttribI1uivFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI1uiv")
+
+{-# NOINLINE glVertexAttribI1uivFunPtr #-}
+
+glVertexAttribI2i :: MonadIO m => GLuint -> GLint -> GLint -> m ()
+glVertexAttribI2i = ffiuintintintIOV glVertexAttribI2iFunPtr
+
+glVertexAttribI2iFunPtr :: FunPtr (GLuint -> GLint -> GLint -> IO ())
+glVertexAttribI2iFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI2i")
+
+{-# NOINLINE glVertexAttribI2iFunPtr #-}
+
+glVertexAttribI2iv :: MonadIO m => GLuint -> Ptr GLint -> m ()
+glVertexAttribI2iv = ffiuintPtrintIOV glVertexAttribI2ivFunPtr
+
+glVertexAttribI2ivFunPtr :: FunPtr (GLuint -> Ptr GLint -> IO ())
+glVertexAttribI2ivFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI2iv")
+
+{-# NOINLINE glVertexAttribI2ivFunPtr #-}
+
+glVertexAttribI2ui :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()
+glVertexAttribI2ui = ffiuintuintuintIOV glVertexAttribI2uiFunPtr
+
+glVertexAttribI2uiFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> IO ())
+glVertexAttribI2uiFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI2ui")
+
+{-# NOINLINE glVertexAttribI2uiFunPtr #-}
+
+glVertexAttribI2uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()
+glVertexAttribI2uiv = ffiuintPtruintIOV glVertexAttribI2uivFunPtr
+
+glVertexAttribI2uivFunPtr :: FunPtr (GLuint -> Ptr GLuint -> IO ())
+glVertexAttribI2uivFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI2uiv")
+
+{-# NOINLINE glVertexAttribI2uivFunPtr #-}
+
+glVertexAttribI3i :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> m ()
+glVertexAttribI3i = ffiuintintintintIOV glVertexAttribI3iFunPtr
+
+glVertexAttribI3iFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> IO ())
+glVertexAttribI3iFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI3i")
+
+{-# NOINLINE glVertexAttribI3iFunPtr #-}
+
+glVertexAttribI3iv :: MonadIO m => GLuint -> Ptr GLint -> m ()
+glVertexAttribI3iv = ffiuintPtrintIOV glVertexAttribI3ivFunPtr
+
+glVertexAttribI3ivFunPtr :: FunPtr (GLuint -> Ptr GLint -> IO ())
+glVertexAttribI3ivFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI3iv")
+
+{-# NOINLINE glVertexAttribI3ivFunPtr #-}
+
+glVertexAttribI3ui :: MonadIO m => GLuint -> GLuint -> GLuint -> GLuint -> m ()
+glVertexAttribI3ui = ffiuintuintuintuintIOV glVertexAttribI3uiFunPtr
+
+glVertexAttribI3uiFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> GLuint -> IO ())
+glVertexAttribI3uiFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI3ui")
+
+{-# NOINLINE glVertexAttribI3uiFunPtr #-}
+
+glVertexAttribI3uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()
+glVertexAttribI3uiv = ffiuintPtruintIOV glVertexAttribI3uivFunPtr
+
+glVertexAttribI3uivFunPtr :: FunPtr (GLuint -> Ptr GLuint -> IO ())
+glVertexAttribI3uivFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI3uiv")
+
+{-# NOINLINE glVertexAttribI3uivFunPtr #-}
+
+glVertexAttribI4bv :: MonadIO m => GLuint -> Ptr GLbyte -> m ()
+glVertexAttribI4bv = ffiuintPtrbyteIOV glVertexAttribI4bvFunPtr
+
+glVertexAttribI4bvFunPtr :: FunPtr (GLuint -> Ptr GLbyte -> IO ())
+glVertexAttribI4bvFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI4bv")
+
+{-# NOINLINE glVertexAttribI4bvFunPtr #-}
+
+glVertexAttribI4i :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> m ()
+glVertexAttribI4i = ffiuintintintintintIOV glVertexAttribI4iFunPtr
+
+glVertexAttribI4iFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> IO ())
+glVertexAttribI4iFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI4i")
+
+{-# NOINLINE glVertexAttribI4iFunPtr #-}
+
+glVertexAttribI4iv :: MonadIO m => GLuint -> Ptr GLint -> m ()
+glVertexAttribI4iv = ffiuintPtrintIOV glVertexAttribI4ivFunPtr
+
+glVertexAttribI4ivFunPtr :: FunPtr (GLuint -> Ptr GLint -> IO ())
+glVertexAttribI4ivFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI4iv")
+
+{-# NOINLINE glVertexAttribI4ivFunPtr #-}
+
+glVertexAttribI4sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()
+glVertexAttribI4sv = ffiuintPtrshortIOV glVertexAttribI4svFunPtr
+
+glVertexAttribI4svFunPtr :: FunPtr (GLuint -> Ptr GLshort -> IO ())
+glVertexAttribI4svFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI4sv")
+
+{-# NOINLINE glVertexAttribI4svFunPtr #-}
+
+glVertexAttribI4ubv :: MonadIO m => GLuint -> Ptr GLubyte -> m ()
+glVertexAttribI4ubv = ffiuintPtrubyteIOV glVertexAttribI4ubvFunPtr
+
+glVertexAttribI4ubvFunPtr :: FunPtr (GLuint -> Ptr GLubyte -> IO ())
+glVertexAttribI4ubvFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI4ubv")
+
+{-# NOINLINE glVertexAttribI4ubvFunPtr #-}
+
+glVertexAttribI4ui :: MonadIO m => GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
+glVertexAttribI4ui = ffiuintuintuintuintuintIOV glVertexAttribI4uiFunPtr
+
+glVertexAttribI4uiFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ())
+glVertexAttribI4uiFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI4ui")
+
+{-# NOINLINE glVertexAttribI4uiFunPtr #-}
+
+glVertexAttribI4uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()
+glVertexAttribI4uiv = ffiuintPtruintIOV glVertexAttribI4uivFunPtr
+
+glVertexAttribI4uivFunPtr :: FunPtr (GLuint -> Ptr GLuint -> IO ())
+glVertexAttribI4uivFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI4uiv")
+
+{-# NOINLINE glVertexAttribI4uivFunPtr #-}
+
+glVertexAttribI4usv :: MonadIO m => GLuint -> Ptr GLushort -> m ()
+glVertexAttribI4usv = ffiuintPtrushortIOV glVertexAttribI4usvFunPtr
+
+glVertexAttribI4usvFunPtr :: FunPtr (GLuint -> Ptr GLushort -> IO ())
+glVertexAttribI4usvFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI4usv")
+
+{-# NOINLINE glVertexAttribI4usvFunPtr #-}
+
+glVertexAttribIPointer :: MonadIO m => GLuint -> GLint -> GLenum -> GLsizei -> Ptr () -> m ()
+glVertexAttribIPointer = ffiuintintenumsizeiPtrVIOV glVertexAttribIPointerFunPtr
+
+glVertexAttribIPointerFunPtr :: FunPtr (GLuint -> GLint -> GLenum -> GLsizei -> Ptr () -> IO ())
+glVertexAttribIPointerFunPtr = unsafePerformIO (getProcAddress "glVertexAttribIPointer")
+
+{-# NOINLINE glVertexAttribIPointerFunPtr #-}
+
+glVertexAttribPointer :: MonadIO m => GLuint -> GLint -> GLenum -> GLboolean -> GLsizei -> Ptr () -> m ()
+glVertexAttribPointer = ffiuintintenumbooleansizeiPtrVIOV glVertexAttribPointerFunPtr
+
+glVertexAttribPointerFunPtr :: FunPtr (GLuint -> GLint -> GLenum -> GLboolean -> GLsizei -> Ptr () -> IO ())
+glVertexAttribPointerFunPtr = unsafePerformIO (getProcAddress "glVertexAttribPointer")
+
+{-# NOINLINE glVertexAttribPointerFunPtr #-}
+
+glViewport :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> m ()
+glViewport = ffiintintsizeisizeiIOV glViewportFunPtr
+
+glViewportFunPtr :: FunPtr (GLint -> GLint -> GLsizei -> GLsizei -> IO ())
+glViewportFunPtr = unsafePerformIO (getProcAddress "glViewport")
+
+{-# NOINLINE glViewportFunPtr #-}
+
+pattern GL_ACTIVE_ATTRIBUTES = 0x8B89
+
+pattern GL_ACTIVE_ATTRIBUTE_MAX_LENGTH = 0x8B8A
+
+pattern GL_ACTIVE_TEXTURE = 0x84E0
+
+pattern GL_ACTIVE_UNIFORMS = 0x8B86
+
+pattern GL_ACTIVE_UNIFORM_MAX_LENGTH = 0x8B87
+
+pattern GL_ALIASED_LINE_WIDTH_RANGE = 0x846E
+
+pattern GL_ALWAYS = 0x0207
+
+pattern GL_AND = 0x1501
+
+pattern GL_AND_INVERTED = 0x1504
+
+pattern GL_AND_REVERSE = 0x1502
+
+pattern GL_ARRAY_BUFFER = 0x8892
+
+pattern GL_ARRAY_BUFFER_BINDING = 0x8894
+
+pattern GL_ATTACHED_SHADERS = 0x8B85
+
+pattern GL_BACK_LEFT = 0x0402
+
+pattern GL_BACK_RIGHT = 0x0403
+
+pattern GL_BGR = 0x80E0
+
+pattern GL_BGRA_INTEGER = 0x8D9B
+
+pattern GL_BGR_INTEGER = 0x8D9A
+
+pattern GL_BLEND_DST = 0x0BE0
+
+pattern GL_BLEND_SRC = 0x0BE1
+
+pattern GL_BLUE_INTEGER = 0x8D96
+
+pattern GL_BOOL = 0x8B56
+
+pattern GL_BOOL_VEC2 = 0x8B57
+
+pattern GL_BOOL_VEC3 = 0x8B58
+
+pattern GL_BOOL_VEC4 = 0x8B59
+
+pattern GL_BUFFER_ACCESS = 0x88BB
+
+pattern GL_BUFFER_ACCESS_FLAGS = 0x911F
+
+pattern GL_BUFFER_MAPPED = 0x88BC
+
+pattern GL_BUFFER_MAP_LENGTH = 0x9120
+
+pattern GL_BUFFER_MAP_OFFSET = 0x9121
+
+pattern GL_BUFFER_MAP_POINTER = 0x88BD
+
+pattern GL_BUFFER_SIZE = 0x8764
+
+pattern GL_BUFFER_USAGE = 0x8765
+
+pattern GL_CLAMP_READ_COLOR = 0x891C
+
+pattern GL_CLAMP_TO_BORDER = 0x812D
+
+pattern GL_CLAMP_TO_EDGE = 0x812F
+
+pattern GL_CLEAR = 0x1500
+
+pattern GL_CLIP_DISTANCE0 = 0x3000
+
+pattern GL_CLIP_DISTANCE1 = 0x3001
+
+pattern GL_CLIP_DISTANCE2 = 0x3002
+
+pattern GL_CLIP_DISTANCE3 = 0x3003
+
+pattern GL_CLIP_DISTANCE4 = 0x3004
+
+pattern GL_CLIP_DISTANCE5 = 0x3005
+
+pattern GL_CLIP_DISTANCE6 = 0x3006
+
+pattern GL_CLIP_DISTANCE7 = 0x3007
+
+pattern GL_COLOR = 0x1800
+
+pattern GL_COLOR_BUFFER_BIT = 0x00004000
+
+pattern GL_COLOR_CLEAR_VALUE = 0x0C22
+
+pattern GL_COLOR_LOGIC_OP = 0x0BF2
+
+pattern GL_COMPARE_REF_TO_TEXTURE = 0x884E
+
+pattern GL_COMPILE_STATUS = 0x8B81
+
+pattern GL_COMPRESSED_RED = 0x8225
+
+pattern GL_COMPRESSED_RG = 0x8226
+
+pattern GL_COMPRESSED_RGB = 0x84ED
+
+pattern GL_COMPRESSED_RGBA = 0x84EE
+
+pattern GL_COMPRESSED_SRGB = 0x8C48
+
+pattern GL_COMPRESSED_SRGB_ALPHA = 0x8C49
+
+pattern GL_COMPRESSED_TEXTURE_FORMATS = 0x86A3
+
+pattern GL_CONTEXT_FLAGS = 0x821E
+
+pattern GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT = 0x00000001
+
+pattern GL_COPY = 0x1503
+
+pattern GL_COPY_INVERTED = 0x150C
+
+pattern GL_CULL_FACE = 0x0B44
+
+pattern GL_CULL_FACE_MODE = 0x0B45
+
+pattern GL_CURRENT_PROGRAM = 0x8B8D
+
+pattern GL_CURRENT_QUERY = 0x8865
+
+pattern GL_CURRENT_VERTEX_ATTRIB = 0x8626
+
+pattern GL_DECR = 0x1E03
+
+pattern GL_DECR_WRAP = 0x8508
+
+pattern GL_DELETE_STATUS = 0x8B80
+
+pattern GL_DEPTH = 0x1801
+
+pattern GL_DEPTH_BUFFER_BIT = 0x00000100
+
+pattern GL_DEPTH_CLEAR_VALUE = 0x0B73
+
+pattern GL_DEPTH_COMPONENT24 = 0x81A6
+
+pattern GL_DEPTH_COMPONENT32 = 0x81A7
+
+pattern GL_DEPTH_FUNC = 0x0B74
+
+pattern GL_DEPTH_TEST = 0x0B71
+
+pattern GL_DEPTH_WRITEMASK = 0x0B72
+
+pattern GL_DITHER = 0x0BD0
+
+pattern GL_DONT_CARE = 0x1100
+
+pattern GL_DOUBLEBUFFER = 0x0C32
+
+pattern GL_DRAW_BUFFER = 0x0C01
+
+pattern GL_DRAW_BUFFER0 = 0x8825
+
+pattern GL_DRAW_BUFFER1 = 0x8826
+
+pattern GL_DRAW_BUFFER10 = 0x882F
+
+pattern GL_DRAW_BUFFER11 = 0x8830
+
+pattern GL_DRAW_BUFFER12 = 0x8831
+
+pattern GL_DRAW_BUFFER13 = 0x8832
+
+pattern GL_DRAW_BUFFER14 = 0x8833
+
+pattern GL_DRAW_BUFFER15 = 0x8834
+
+pattern GL_DRAW_BUFFER2 = 0x8827
+
+pattern GL_DRAW_BUFFER3 = 0x8828
+
+pattern GL_DRAW_BUFFER4 = 0x8829
+
+pattern GL_DRAW_BUFFER5 = 0x882A
+
+pattern GL_DRAW_BUFFER6 = 0x882B
+
+pattern GL_DRAW_BUFFER7 = 0x882C
+
+pattern GL_DRAW_BUFFER8 = 0x882D
+
+pattern GL_DRAW_BUFFER9 = 0x882E
+
+pattern GL_DYNAMIC_COPY = 0x88EA
+
+pattern GL_DYNAMIC_DRAW = 0x88E8
+
+pattern GL_DYNAMIC_READ = 0x88E9
+
+pattern GL_ELEMENT_ARRAY_BUFFER = 0x8893
+
+pattern GL_ELEMENT_ARRAY_BUFFER_BINDING = 0x8895
+
+pattern GL_EQUIV = 0x1509
+
+pattern GL_EXTENSIONS = 0x1F03
+
+pattern GL_FALSE = 0
+
+pattern GL_FASTEST = 0x1101
+
+pattern GL_FILL = 0x1B02
+
+pattern GL_FIXED_ONLY = 0x891D
+
+pattern GL_FLOAT_MAT2 = 0x8B5A
+
+pattern GL_FLOAT_MAT2x3 = 0x8B65
+
+pattern GL_FLOAT_MAT2x4 = 0x8B66
+
+pattern GL_FLOAT_MAT3 = 0x8B5B
+
+pattern GL_FLOAT_MAT3x2 = 0x8B67
+
+pattern GL_FLOAT_MAT3x4 = 0x8B68
+
+pattern GL_FLOAT_MAT4 = 0x8B5C
+
+pattern GL_FLOAT_MAT4x2 = 0x8B69
+
+pattern GL_FLOAT_MAT4x3 = 0x8B6A
+
+pattern GL_FLOAT_VEC2 = 0x8B50
+
+pattern GL_FLOAT_VEC3 = 0x8B51
+
+pattern GL_FLOAT_VEC4 = 0x8B52
+
+pattern GL_FRAGMENT_SHADER = 0x8B30
+
+pattern GL_FRAGMENT_SHADER_DERIVATIVE_HINT = 0x8B8B
+
+pattern GL_FRONT = 0x0404
+
+pattern GL_FRONT_AND_BACK = 0x0408
+
+pattern GL_FRONT_FACE = 0x0B46
+
+pattern GL_FRONT_LEFT = 0x0400
+
+pattern GL_FRONT_RIGHT = 0x0401
+
+pattern GL_GEQUAL = 0x0206
+
+pattern GL_GREATER = 0x0204
+
+pattern GL_GREEN_INTEGER = 0x8D95
+
+pattern GL_INCR = 0x1E02
+
+pattern GL_INCR_WRAP = 0x8507
+
+pattern GL_INFO_LOG_LENGTH = 0x8B84
+
+pattern GL_INT = 0x1404
+
+pattern GL_INTERLEAVED_ATTRIBS = 0x8C8C
+
+pattern GL_INT_SAMPLER_1D = 0x8DC9
+
+pattern GL_INT_SAMPLER_1D_ARRAY = 0x8DCE
+
+pattern GL_INT_SAMPLER_2D = 0x8DCA
+
+pattern GL_INT_SAMPLER_2D_ARRAY = 0x8DCF
+
+pattern GL_INT_SAMPLER_2D_RECT = 0x8DCD
+
+pattern GL_INT_SAMPLER_3D = 0x8DCB
+
+pattern GL_INT_SAMPLER_BUFFER = 0x8DD0
+
+pattern GL_INT_SAMPLER_CUBE = 0x8DCC
+
+pattern GL_INT_VEC2 = 0x8B53
+
+pattern GL_INT_VEC3 = 0x8B54
+
+pattern GL_INT_VEC4 = 0x8B55
+
+pattern GL_INVALID_ENUM = 0x0500
+
+pattern GL_INVALID_OPERATION = 0x0502
+
+pattern GL_INVALID_VALUE = 0x0501
+
+pattern GL_KEEP = 0x1E00
+
+pattern GL_LEFT = 0x0406
+
+pattern GL_LEQUAL = 0x0203
+
+pattern GL_LESS = 0x0201
+
+pattern GL_LINE = 0x1B01
+
+pattern GL_LINEAR = 0x2601
+
+pattern GL_LINEAR_MIPMAP_LINEAR = 0x2703
+
+pattern GL_LINEAR_MIPMAP_NEAREST = 0x2701
+
+pattern GL_LINES = 0x0001
+
+pattern GL_LINE_LOOP = 0x0002
+
+pattern GL_LINE_SMOOTH = 0x0B20
+
+pattern GL_LINE_SMOOTH_HINT = 0x0C52
+
+pattern GL_LINE_STRIP = 0x0003
+
+pattern GL_LINE_WIDTH = 0x0B21
+
+pattern GL_LINE_WIDTH_GRANULARITY = 0x0B23
+
+pattern GL_LINE_WIDTH_RANGE = 0x0B22
+
+pattern GL_LINK_STATUS = 0x8B82
+
+pattern GL_LOGIC_OP_MODE = 0x0BF0
+
+pattern GL_MAJOR_VERSION = 0x821B
+
+pattern GL_MAX_3D_TEXTURE_SIZE = 0x8073
+
+pattern GL_MAX_ARRAY_TEXTURE_LAYERS = 0x88FF
+
+pattern GL_MAX_CLIP_DISTANCES = 0x0D32
+
+pattern GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS = 0x8B4D
+
+pattern GL_MAX_CUBE_MAP_TEXTURE_SIZE = 0x851C
+
+pattern GL_MAX_DRAW_BUFFERS = 0x8824
+
+pattern GL_MAX_ELEMENTS_INDICES = 0x80E9
+
+pattern GL_MAX_ELEMENTS_VERTICES = 0x80E8
+
+pattern GL_MAX_FRAGMENT_INPUT_COMPONENTS = 0x9125
+
+pattern GL_MAX_FRAGMENT_UNIFORM_COMPONENTS = 0x8B49
+
+pattern GL_MAX_PROGRAM_TEXEL_OFFSET = 0x8905
+
+pattern GL_MAX_RECTANGLE_TEXTURE_SIZE = 0x84F8
+
+pattern GL_MAX_TEXTURE_BUFFER_SIZE = 0x8C2B
+
+pattern GL_MAX_TEXTURE_IMAGE_UNITS = 0x8872
+
+pattern GL_MAX_TEXTURE_LOD_BIAS = 0x84FD
+
+pattern GL_MAX_TEXTURE_SIZE = 0x0D33
+
+pattern GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS = 0x8C8A
+
+pattern GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS = 0x8C8B
+
+pattern GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS = 0x8C80
+
+pattern GL_MAX_VARYING_FLOATS = 0x8B4B
+
+pattern GL_MAX_VERTEX_ATTRIBS = 0x8869
+
+pattern GL_MAX_VERTEX_OUTPUT_COMPONENTS = 0x9122
+
+pattern GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS = 0x8B4C
+
+pattern GL_MAX_VERTEX_UNIFORM_COMPONENTS = 0x8B4A
+
+pattern GL_MAX_VIEWPORT_DIMS = 0x0D3A
+
+pattern GL_MINOR_VERSION = 0x821C
+
+pattern GL_MIN_PROGRAM_TEXEL_OFFSET = 0x8904
+
+pattern GL_MIRRORED_REPEAT = 0x8370
+
+pattern GL_MULTISAMPLE = 0x809D
+
+pattern GL_NAND = 0x150E
+
+pattern GL_NEAREST = 0x2600
+
+pattern GL_NEAREST_MIPMAP_LINEAR = 0x2702
+
+pattern GL_NEAREST_MIPMAP_NEAREST = 0x2700
+
+pattern GL_NEVER = 0x0200
+
+pattern GL_NICEST = 0x1102
+
+pattern GL_NOOP = 0x1505
+
+pattern GL_NOR = 0x1508
+
+pattern GL_NOTEQUAL = 0x0205
+
+pattern GL_NUM_COMPRESSED_TEXTURE_FORMATS = 0x86A2
+
+pattern GL_NUM_EXTENSIONS = 0x821D
+
+pattern GL_OR = 0x1507
+
+pattern GL_OR_INVERTED = 0x150D
+
+pattern GL_OR_REVERSE = 0x150B
+
+pattern GL_OUT_OF_MEMORY = 0x0505
+
+pattern GL_PACK_ALIGNMENT = 0x0D05
+
+pattern GL_PACK_IMAGE_HEIGHT = 0x806C
+
+pattern GL_PACK_LSB_FIRST = 0x0D01
+
+pattern GL_PACK_ROW_LENGTH = 0x0D02
+
+pattern GL_PACK_SKIP_IMAGES = 0x806B
+
+pattern GL_PACK_SKIP_PIXELS = 0x0D04
+
+pattern GL_PACK_SKIP_ROWS = 0x0D03
+
+pattern GL_PACK_SWAP_BYTES = 0x0D00
+
+pattern GL_PIXEL_PACK_BUFFER = 0x88EB
+
+pattern GL_PIXEL_PACK_BUFFER_BINDING = 0x88ED
+
+pattern GL_PIXEL_UNPACK_BUFFER = 0x88EC
+
+pattern GL_PIXEL_UNPACK_BUFFER_BINDING = 0x88EF
+
+pattern GL_POINT = 0x1B00
+
+pattern GL_POINTS = 0x0000
+
+pattern GL_POINT_FADE_THRESHOLD_SIZE = 0x8128
+
+pattern GL_POINT_SIZE = 0x0B11
+
+pattern GL_POINT_SIZE_GRANULARITY = 0x0B13
+
+pattern GL_POINT_SIZE_RANGE = 0x0B12
+
+pattern GL_POINT_SPRITE_COORD_ORIGIN = 0x8CA0
+
+pattern GL_POLYGON_MODE = 0x0B40
+
+pattern GL_POLYGON_OFFSET_FACTOR = 0x8038
+
+pattern GL_POLYGON_OFFSET_FILL = 0x8037
+
+pattern GL_POLYGON_OFFSET_LINE = 0x2A02
+
+pattern GL_POLYGON_OFFSET_POINT = 0x2A01
+
+pattern GL_POLYGON_OFFSET_UNITS = 0x2A00
+
+pattern GL_POLYGON_SMOOTH = 0x0B41
+
+pattern GL_POLYGON_SMOOTH_HINT = 0x0C53
+
+pattern GL_PRIMITIVES_GENERATED = 0x8C87
+
+pattern GL_PRIMITIVE_RESTART = 0x8F9D
+
+pattern GL_PRIMITIVE_RESTART_INDEX = 0x8F9E
+
+pattern GL_PROXY_TEXTURE_1D = 0x8063
+
+pattern GL_PROXY_TEXTURE_1D_ARRAY = 0x8C19
+
+pattern GL_PROXY_TEXTURE_2D = 0x8064
+
+pattern GL_PROXY_TEXTURE_2D_ARRAY = 0x8C1B
+
+pattern GL_PROXY_TEXTURE_3D = 0x8070
+
+pattern GL_PROXY_TEXTURE_CUBE_MAP = 0x851B
+
+pattern GL_PROXY_TEXTURE_RECTANGLE = 0x84F7
+
+pattern GL_QUERY_BY_REGION_NO_WAIT = 0x8E16
+
+pattern GL_QUERY_BY_REGION_WAIT = 0x8E15
+
+pattern GL_QUERY_COUNTER_BITS = 0x8864
+
+pattern GL_QUERY_NO_WAIT = 0x8E14
+
+pattern GL_QUERY_RESULT = 0x8866
+
+pattern GL_QUERY_RESULT_AVAILABLE = 0x8867
+
+pattern GL_QUERY_WAIT = 0x8E13
+
+pattern GL_R11F_G11F_B10F = 0x8C3A
+
+pattern GL_R3_G3_B2 = 0x2A10
+
+pattern GL_RASTERIZER_DISCARD = 0x8C89
+
+pattern GL_READ_BUFFER = 0x0C02
+
+pattern GL_READ_ONLY = 0x88B8
+
+pattern GL_RED_INTEGER = 0x8D94
+
+pattern GL_RENDERER = 0x1F01
+
+pattern GL_REPEAT = 0x2901
+
+pattern GL_REPLACE = 0x1E01
+
+pattern GL_RGB = 0x1907
+
+pattern GL_RGB10 = 0x8052
+
+pattern GL_RGB10_A2 = 0x8059
+
+pattern GL_RGB12 = 0x8053
+
+pattern GL_RGB16 = 0x8054
+
+pattern GL_RGB16F = 0x881B
+
+pattern GL_RGB16I = 0x8D89
+
+pattern GL_RGB16UI = 0x8D77
+
+pattern GL_RGB4 = 0x804F
+
+pattern GL_RGB5 = 0x8050
+
+pattern GL_RGB5_A1 = 0x8057
+
+pattern GL_RGB8 = 0x8051
+
+pattern GL_RGB8I = 0x8D8F
+
+pattern GL_RGB8UI = 0x8D7D
+
+pattern GL_RGB9_E5 = 0x8C3D
+
+pattern GL_RGBA = 0x1908
+
+pattern GL_RGBA12 = 0x805A
+
+pattern GL_RGBA16 = 0x805B
+
+pattern GL_RGBA16F = 0x881A
+
+pattern GL_RGBA16I = 0x8D88
+
+pattern GL_RGBA16UI = 0x8D76
+
+pattern GL_RGBA2 = 0x8055
+
+pattern GL_RGBA32F = 0x8814
+
+pattern GL_RGBA32I = 0x8D82
+
+pattern GL_RGBA32UI = 0x8D70
+
+pattern GL_RGBA4 = 0x8056
+
+pattern GL_RGBA8 = 0x8058
+
+pattern GL_RGBA8I = 0x8D8E
+
+pattern GL_RGBA_INTEGER = 0x8D99
+
+pattern GL_RGB_INTEGER = 0x8D98
+
+pattern GL_RIGHT = 0x0407
+
+pattern GL_SAMPLER_1D = 0x8B5D
+
+pattern GL_SAMPLER_1D_ARRAY = 0x8DC0
+
+pattern GL_SAMPLER_1D_ARRAY_SHADOW = 0x8DC3
+
+pattern GL_SAMPLER_1D_SHADOW = 0x8B61
+
+pattern GL_SAMPLER_2D = 0x8B5E
+
+pattern GL_SAMPLER_2D_ARRAY = 0x8DC1
+
+pattern GL_SAMPLER_2D_ARRAY_SHADOW = 0x8DC4
+
+pattern GL_SAMPLER_2D_RECT = 0x8B63
+
+pattern GL_SAMPLER_2D_RECT_SHADOW = 0x8B64
+
+pattern GL_SAMPLER_2D_SHADOW = 0x8B62
+
+pattern GL_SAMPLER_3D = 0x8B5F
+
+pattern GL_SAMPLER_BUFFER = 0x8DC2
+
+pattern GL_SAMPLER_CUBE = 0x8B60
+
+pattern GL_SAMPLER_CUBE_SHADOW = 0x8DC5
+
+pattern GL_SAMPLES_PASSED = 0x8914
+
+pattern GL_SAMPLE_ALPHA_TO_COVERAGE = 0x809E
+
+pattern GL_SAMPLE_ALPHA_TO_ONE = 0x809F
+
+pattern GL_SAMPLE_BUFFERS = 0x80A8
+
+pattern GL_SAMPLE_COVERAGE = 0x80A0
+
+pattern GL_SAMPLE_COVERAGE_INVERT = 0x80AB
+
+pattern GL_SAMPLE_COVERAGE_VALUE = 0x80AA
+
+pattern GL_SEPARATE_ATTRIBS = 0x8C8D
+
+pattern GL_SET = 0x150F
+
+pattern GL_SHADER_SOURCE_LENGTH = 0x8B88
+
+pattern GL_SHADER_TYPE = 0x8B4F
+
+pattern GL_SHADING_LANGUAGE_VERSION = 0x8B8C
+
+pattern GL_SHORT = 0x1402
+
+pattern GL_SMOOTH_LINE_WIDTH_GRANULARITY = 0x0B23
+
+pattern GL_SMOOTH_LINE_WIDTH_RANGE = 0x0B22
+
+pattern GL_SMOOTH_POINT_SIZE_GRANULARITY = 0x0B13
+
+pattern GL_SMOOTH_POINT_SIZE_RANGE = 0x0B12
+
+pattern GL_SRGB = 0x8C40
+
+pattern GL_SRGB8 = 0x8C41
+
+pattern GL_SRGB8_ALPHA8 = 0x8C43
+
+pattern GL_SRGB_ALPHA = 0x8C42
+
+pattern GL_STATIC_COPY = 0x88E6
+
+pattern GL_STATIC_DRAW = 0x88E4
+
+pattern GL_STATIC_READ = 0x88E5
+
+pattern GL_STENCIL = 0x1802
+
+pattern GL_STENCIL_BACK_FAIL = 0x8801
+
+pattern GL_STENCIL_BACK_FUNC = 0x8800
+
+pattern GL_STENCIL_BACK_PASS_DEPTH_FAIL = 0x8802
+
+pattern GL_STENCIL_BACK_PASS_DEPTH_PASS = 0x8803
+
+pattern GL_STENCIL_BACK_REF = 0x8CA3
+
+pattern GL_STENCIL_BACK_VALUE_MASK = 0x8CA4
+
+pattern GL_STENCIL_BACK_WRITEMASK = 0x8CA5
+
+pattern GL_STENCIL_BUFFER_BIT = 0x00000400
+
+pattern GL_STENCIL_CLEAR_VALUE = 0x0B91
+
+pattern GL_STENCIL_FAIL = 0x0B94
+
+pattern GL_STENCIL_FUNC = 0x0B92
+
+pattern GL_STENCIL_PASS_DEPTH_FAIL = 0x0B95
+
+pattern GL_STENCIL_PASS_DEPTH_PASS = 0x0B96
+
+pattern GL_STENCIL_REF = 0x0B97
+
+pattern GL_STENCIL_TEST = 0x0B90
+
+pattern GL_STENCIL_VALUE_MASK = 0x0B93
+
+pattern GL_STENCIL_WRITEMASK = 0x0B98
+
+pattern GL_STEREO = 0x0C33
+
+pattern GL_STREAM_COPY = 0x88E2
+
+pattern GL_STREAM_DRAW = 0x88E0
+
+pattern GL_STREAM_READ = 0x88E1
+
+pattern GL_SUBPIXEL_BITS = 0x0D50
+
+pattern GL_TEXTURE = 0x1702
+
+pattern GL_TEXTURE0 = 0x84C0
+
+pattern GL_TEXTURE1 = 0x84C1
+
+pattern GL_TEXTURE10 = 0x84CA
+
+pattern GL_TEXTURE11 = 0x84CB
+
+pattern GL_TEXTURE12 = 0x84CC
+
+pattern GL_TEXTURE13 = 0x84CD
+
+pattern GL_TEXTURE14 = 0x84CE
+
+pattern GL_TEXTURE15 = 0x84CF
+
+pattern GL_TEXTURE16 = 0x84D0
+
+pattern GL_TEXTURE17 = 0x84D1
+
+pattern GL_TEXTURE18 = 0x84D2
+
+pattern GL_TEXTURE19 = 0x84D3
+
+pattern GL_TEXTURE2 = 0x84C2
+
+pattern GL_TEXTURE20 = 0x84D4
+
+pattern GL_TEXTURE21 = 0x84D5
+
+pattern GL_TEXTURE22 = 0x84D6
+
+pattern GL_TEXTURE23 = 0x84D7
+
+pattern GL_TEXTURE24 = 0x84D8
+
+pattern GL_TEXTURE25 = 0x84D9
+
+pattern GL_TEXTURE26 = 0x84DA
+
+pattern GL_TEXTURE27 = 0x84DB
+
+pattern GL_TEXTURE28 = 0x84DC
+
+pattern GL_TEXTURE29 = 0x84DD
+
+pattern GL_TEXTURE3 = 0x84C3
+
+pattern GL_TEXTURE30 = 0x84DE
+
+pattern GL_TEXTURE31 = 0x84DF
+
+pattern GL_TEXTURE4 = 0x84C4
+
+pattern GL_TEXTURE5 = 0x84C5
+
+pattern GL_TEXTURE6 = 0x84C6
+
+pattern GL_TEXTURE7 = 0x84C7
+
+pattern GL_TEXTURE8 = 0x84C8
+
+pattern GL_TEXTURE9 = 0x84C9
+
+pattern GL_TEXTURE_ALPHA_SIZE = 0x805F
+
+pattern GL_TEXTURE_ALPHA_TYPE = 0x8C13
+
+pattern GL_TEXTURE_BASE_LEVEL = 0x813C
+
+pattern GL_TEXTURE_BLUE_SIZE = 0x805E
+
+pattern GL_TEXTURE_BLUE_TYPE = 0x8C12
+
+pattern GL_TEXTURE_BORDER_COLOR = 0x1004
+
+pattern GL_TEXTURE_BUFFER_DATA_STORE_BINDING = 0x8C2D
+
+pattern GL_TEXTURE_COMPARE_FUNC = 0x884D
+
+pattern GL_TEXTURE_COMPARE_MODE = 0x884C
+
+pattern GL_TEXTURE_COMPRESSED_IMAGE_SIZE = 0x86A0
+
+pattern GL_TEXTURE_COMPRESSION_HINT = 0x84EF
+
+pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_X = 0x8516
+
+pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_Y = 0x8518
+
+pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_Z = 0x851A
+
+pattern GL_TEXTURE_CUBE_MAP_POSITIVE_X = 0x8515
+
+pattern GL_TEXTURE_CUBE_MAP_POSITIVE_Y = 0x8517
+
+pattern GL_TEXTURE_CUBE_MAP_POSITIVE_Z = 0x8519
+
+pattern GL_TEXTURE_DEPTH = 0x8071
+
+pattern GL_TEXTURE_DEPTH_SIZE = 0x884A
+
+pattern GL_TEXTURE_DEPTH_TYPE = 0x8C16
+
+pattern GL_TEXTURE_GREEN_SIZE = 0x805D
+
+pattern GL_TEXTURE_GREEN_TYPE = 0x8C11
+
+pattern GL_TEXTURE_HEIGHT = 0x1001
+
+pattern GL_TEXTURE_INTERNAL_FORMAT = 0x1003
+
+pattern GL_TEXTURE_LOD_BIAS = 0x8501
+
+pattern GL_TEXTURE_MAG_FILTER = 0x2800
+
+pattern GL_TEXTURE_MAX_LEVEL = 0x813D
+
+pattern GL_TEXTURE_MAX_LOD = 0x813B
+
+pattern GL_TEXTURE_MIN_FILTER = 0x2801
+
+pattern GL_TEXTURE_MIN_LOD = 0x813A
+
+pattern GL_TEXTURE_RED_SIZE = 0x805C
+
+pattern GL_TEXTURE_RED_TYPE = 0x8C10
+
+pattern GL_TEXTURE_SHARED_SIZE = 0x8C3F
+
+pattern GL_TEXTURE_WIDTH = 0x1000
+
+pattern GL_TEXTURE_WRAP_R = 0x8072
+
+pattern GL_TEXTURE_WRAP_S = 0x2802
+
+pattern GL_TEXTURE_WRAP_T = 0x2803
+
+pattern GL_TRANSFORM_FEEDBACK_BUFFER_BINDING = 0x8C8F
+
+pattern GL_TRANSFORM_FEEDBACK_BUFFER_MODE = 0x8C7F
+
+pattern GL_TRANSFORM_FEEDBACK_BUFFER_SIZE = 0x8C85
+
+pattern GL_TRANSFORM_FEEDBACK_BUFFER_START = 0x8C84
+
+pattern GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN = 0x8C88
+
+pattern GL_TRANSFORM_FEEDBACK_VARYINGS = 0x8C83
+
+pattern GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH = 0x8C76
+
+pattern GL_TRIANGLE_FAN = 0x0006
+
+pattern GL_TRIANGLE_STRIP = 0x0005
+
+pattern GL_TRUE = 1
+
+pattern GL_UNPACK_ALIGNMENT = 0x0CF5
+
+pattern GL_UNPACK_IMAGE_HEIGHT = 0x806E
+
+pattern GL_UNPACK_LSB_FIRST = 0x0CF1
+
+pattern GL_UNPACK_ROW_LENGTH = 0x0CF2
+
+pattern GL_UNPACK_SKIP_IMAGES = 0x806D
+
+pattern GL_UNPACK_SKIP_PIXELS = 0x0CF4
+
+pattern GL_UNPACK_SKIP_ROWS = 0x0CF3
+
+pattern GL_UNPACK_SWAP_BYTES = 0x0CF0
+
+pattern GL_UNSIGNED_BYTE = 0x1401
+
+pattern GL_UNSIGNED_BYTE_2_3_3_REV = 0x8362
+
+pattern GL_UNSIGNED_BYTE_3_3_2 = 0x8032
+
+pattern GL_UNSIGNED_INT_10_10_10_2 = 0x8036
+
+pattern GL_UNSIGNED_INT_5_9_9_9_REV = 0x8C3E
+
+pattern GL_UNSIGNED_INT_8_8_8_8 = 0x8035
+
+pattern GL_UNSIGNED_INT_8_8_8_8_REV = 0x8367
+
+pattern GL_UNSIGNED_INT_SAMPLER_1D = 0x8DD1
+
+pattern GL_UNSIGNED_INT_SAMPLER_1D_ARRAY = 0x8DD6
+
+pattern GL_UNSIGNED_INT_SAMPLER_2D = 0x8DD2
+
+pattern GL_UNSIGNED_INT_SAMPLER_2D_ARRAY = 0x8DD7
+
+pattern GL_UNSIGNED_INT_SAMPLER_2D_RECT = 0x8DD5
+
+pattern GL_UNSIGNED_INT_SAMPLER_3D = 0x8DD3
+
+pattern GL_UNSIGNED_INT_SAMPLER_BUFFER = 0x8DD8
+
+pattern GL_UNSIGNED_INT_SAMPLER_CUBE = 0x8DD4
+
+pattern GL_UNSIGNED_INT_VEC2 = 0x8DC6
+
+pattern GL_UNSIGNED_INT_VEC3 = 0x8DC7
+
+pattern GL_UNSIGNED_INT_VEC4 = 0x8DC8
+
+pattern GL_UNSIGNED_SHORT_1_5_5_5_REV = 0x8366
+
+pattern GL_UNSIGNED_SHORT_4_4_4_4 = 0x8033
+
+pattern GL_UNSIGNED_SHORT_4_4_4_4_REV = 0x8365
+
+pattern GL_UNSIGNED_SHORT_5_5_5_1 = 0x8034
+
+pattern GL_UNSIGNED_SHORT_5_6_5 = 0x8363
+
+pattern GL_UNSIGNED_SHORT_5_6_5_REV = 0x8364
+
+pattern GL_VALIDATE_STATUS = 0x8B83
+
+pattern GL_VENDOR = 0x1F00
+
+pattern GL_VERSION = 0x1F02
+
+pattern GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING = 0x889F
+
+pattern GL_VERTEX_ATTRIB_ARRAY_ENABLED = 0x8622
+
+pattern GL_VERTEX_ATTRIB_ARRAY_INTEGER = 0x88FD
+
+pattern GL_VERTEX_ATTRIB_ARRAY_NORMALIZED = 0x886A
+
+pattern GL_VERTEX_ATTRIB_ARRAY_POINTER = 0x8645
+
+pattern GL_VERTEX_ATTRIB_ARRAY_SIZE = 0x8623
+
+pattern GL_VERTEX_ATTRIB_ARRAY_STRIDE = 0x8624
+
+pattern GL_VERTEX_ATTRIB_ARRAY_TYPE = 0x8625
+
+pattern GL_VERTEX_PROGRAM_POINT_SIZE = 0x8642
+
+pattern GL_VERTEX_SHADER = 0x8B31
+
+pattern GL_XOR = 0x1506
+
+glVertexAttribDivisor :: MonadIO m => GLuint -> GLuint -> m ()
+glVertexAttribDivisor = ffiuintuintIOV glVertexAttribDivisorFunPtr
+
+glVertexAttribDivisorFunPtr :: FunPtr (GLuint -> GLuint -> IO ())
+glVertexAttribDivisorFunPtr = unsafePerformIO (getProcAddress "glVertexAttribDivisor")
+
+{-# NOINLINE glVertexAttribDivisorFunPtr #-}
+
+pattern GL_VERTEX_ATTRIB_ARRAY_DIVISOR = 0x88FE
+
+pattern GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET = 0x8E5F
+
+pattern GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET = 0x8E5E
+
+pattern GL_COPY_READ_BUFFER_BINDING = 0x8F36
+
+pattern GL_COPY_WRITE_BUFFER_BINDING = 0x8F37
+
+pattern GL_TRANSFORM_FEEDBACK_ACTIVE = 0x8E24
+
+pattern GL_TRANSFORM_FEEDBACK_PAUSED = 0x8E23
+
+pattern GL_VERTEX_BINDING_BUFFER = 0x8F4F
+
+pattern GL_MAX_VERTEX_ATTRIB_STRIDE = 0x82E5
diff --git a/dist/build/autogen/Graphics/GL/Raw/Profile/Core32.hs b/dist/build/autogen/Graphics/GL/Raw/Profile/Core32.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Profile/Core32.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Profile/Core32.hs
@@ -1121,42 +1121,42 @@
 
 {-# NOINLINE glFramebufferTextureFunPtr #-}
 
-pattern GL_CONTEXT_COMPATIBILITY_PROFILE_BIT = 0x00000002 :: GLenum
+pattern GL_CONTEXT_COMPATIBILITY_PROFILE_BIT = 0x00000002
 
-pattern GL_CONTEXT_CORE_PROFILE_BIT = 0x00000001 :: GLenum
+pattern GL_CONTEXT_CORE_PROFILE_BIT = 0x00000001
 
-pattern GL_CONTEXT_PROFILE_MASK = 0x9126 :: GLenum
+pattern GL_CONTEXT_PROFILE_MASK = 0x9126
 
-pattern GL_FRAMEBUFFER_ATTACHMENT_LAYERED = 0x8DA7 :: GLenum
+pattern GL_FRAMEBUFFER_ATTACHMENT_LAYERED = 0x8DA7
 
-pattern GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS = 0x8DA8 :: GLenum
+pattern GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS = 0x8DA8
 
-pattern GL_GEOMETRY_INPUT_TYPE = 0x8917 :: GLenum
+pattern GL_GEOMETRY_INPUT_TYPE = 0x8917
 
-pattern GL_GEOMETRY_OUTPUT_TYPE = 0x8918 :: GLenum
+pattern GL_GEOMETRY_OUTPUT_TYPE = 0x8918
 
-pattern GL_GEOMETRY_SHADER = 0x8DD9 :: GLenum
+pattern GL_GEOMETRY_SHADER = 0x8DD9
 
-pattern GL_GEOMETRY_VERTICES_OUT = 0x8916 :: GLenum
+pattern GL_GEOMETRY_VERTICES_OUT = 0x8916
 
-pattern GL_LINES_ADJACENCY = 0x000A :: GLenum
+pattern GL_LINES_ADJACENCY = 0x000A
 
-pattern GL_LINE_STRIP_ADJACENCY = 0x000B :: GLenum
+pattern GL_LINE_STRIP_ADJACENCY = 0x000B
 
-pattern GL_MAX_GEOMETRY_INPUT_COMPONENTS = 0x9123 :: GLenum
+pattern GL_MAX_GEOMETRY_INPUT_COMPONENTS = 0x9123
 
-pattern GL_MAX_GEOMETRY_OUTPUT_COMPONENTS = 0x9124 :: GLenum
+pattern GL_MAX_GEOMETRY_OUTPUT_COMPONENTS = 0x9124
 
-pattern GL_MAX_GEOMETRY_OUTPUT_VERTICES = 0x8DE0 :: GLenum
+pattern GL_MAX_GEOMETRY_OUTPUT_VERTICES = 0x8DE0
 
-pattern GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS = 0x8C29 :: GLenum
+pattern GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS = 0x8C29
 
-pattern GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS = 0x8DE1 :: GLenum
+pattern GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS = 0x8DE1
 
-pattern GL_MAX_GEOMETRY_UNIFORM_COMPONENTS = 0x8DDF :: GLenum
+pattern GL_MAX_GEOMETRY_UNIFORM_COMPONENTS = 0x8DDF
 
-pattern GL_PROGRAM_POINT_SIZE = 0x8642 :: GLenum
+pattern GL_PROGRAM_POINT_SIZE = 0x8642
 
-pattern GL_TRIANGLES_ADJACENCY = 0x000C :: GLenum
+pattern GL_TRIANGLES_ADJACENCY = 0x000C
 
-pattern GL_TRIANGLE_STRIP_ADJACENCY = 0x000D :: GLenum
+pattern GL_TRIANGLE_STRIP_ADJACENCY = 0x000D
diff --git a/dist/build/autogen/Graphics/GL/Raw/Profile/Core40.hs b/dist/build/autogen/Graphics/GL/Raw/Profile/Core40.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Profile/Core40.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Profile/Core40.hs
@@ -179,16 +179,16 @@
 
 {-# NOINLINE glMinSampleShadingFunPtr #-}
 
-pattern GL_INT_SAMPLER_CUBE_MAP_ARRAY = 0x900E :: GLenum
+pattern GL_INT_SAMPLER_CUBE_MAP_ARRAY = 0x900E
 
-pattern GL_MIN_SAMPLE_SHADING_VALUE = 0x8C37 :: GLenum
+pattern GL_MIN_SAMPLE_SHADING_VALUE = 0x8C37
 
-pattern GL_PROXY_TEXTURE_CUBE_MAP_ARRAY = 0x900B :: GLenum
+pattern GL_PROXY_TEXTURE_CUBE_MAP_ARRAY = 0x900B
 
-pattern GL_SAMPLER_CUBE_MAP_ARRAY = 0x900C :: GLenum
+pattern GL_SAMPLER_CUBE_MAP_ARRAY = 0x900C
 
-pattern GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW = 0x900D :: GLenum
+pattern GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW = 0x900D
 
-pattern GL_SAMPLE_SHADING = 0x8C36 :: GLenum
+pattern GL_SAMPLE_SHADING = 0x8C36
 
-pattern GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY = 0x900F :: GLenum
+pattern GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY = 0x900F
diff --git a/dist/build/autogen/Graphics/GL/Raw/Profile/Core42.hs b/dist/build/autogen/Graphics/GL/Raw/Profile/Core42.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Profile/Core42.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Profile/Core42.hs
@@ -130,14 +130,13 @@
 ) where
 
 import Graphics.GL.Raw.Internal.Shared
-import Graphics.GL.Raw.Types
 
 import Graphics.GL.Raw.Profile.Core41
 
-pattern GL_COMPRESSED_RGBA_BPTC_UNORM = 0x8E8C :: GLenum
+pattern GL_COMPRESSED_RGBA_BPTC_UNORM = 0x8E8C
 
-pattern GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT = 0x8E8E :: GLenum
+pattern GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT = 0x8E8E
 
-pattern GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT = 0x8E8F :: GLenum
+pattern GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT = 0x8E8F
 
-pattern GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM = 0x8E8D :: GLenum
+pattern GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM = 0x8E8D
diff --git a/dist/build/autogen/Graphics/GL/Raw/Profile/Core43.hs b/dist/build/autogen/Graphics/GL/Raw/Profile/Core43.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Profile/Core43.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Profile/Core43.hs
@@ -311,10 +311,9 @@
 ) where
 
 import Graphics.GL.Raw.Internal.Shared
-import Graphics.GL.Raw.Types
 
 import Graphics.GL.Raw.Profile.Core42
 
-pattern GL_NUM_SHADING_LANGUAGE_VERSIONS = 0x82E9 :: GLenum
+pattern GL_NUM_SHADING_LANGUAGE_VERSIONS = 0x82E9
 
-pattern GL_VERTEX_ATTRIB_ARRAY_LONG = 0x874E :: GLenum
+pattern GL_VERTEX_ATTRIB_ARRAY_LONG = 0x874E
diff --git a/dist/build/autogen/Graphics/GL/Raw/Profile/Core44.hs b/dist/build/autogen/Graphics/GL/Raw/Profile/Core44.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Profile/Core44.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Profile/Core44.hs
@@ -34,8 +34,7 @@
 ) where
 
 import Graphics.GL.Raw.Internal.Shared
-import Graphics.GL.Raw.Types
 
 import Graphics.GL.Raw.Profile.Core43
 
-pattern GL_TEXTURE_BUFFER_BINDING = 0x8C2A :: GLenum
+pattern GL_TEXTURE_BUFFER_BINDING = 0x8C2A
diff --git a/dist/build/autogen/Graphics/GL/Raw/Profile/Core45.hs b/dist/build/autogen/Graphics/GL/Raw/Profile/Core45.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Profile/Core45.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Profile/Core45.hs
@@ -172,4 +172,4 @@
 
 {-# NOINLINE glGetnUniformdvFunPtr #-}
 
-pattern GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT = 0x00000004 :: GLenum
+pattern GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT = 0x00000004
diff --git a/dist/build/autogen/Graphics/GL/Raw/Profile/Embedded20.hs b/dist/build/autogen/Graphics/GL/Raw/Profile/Embedded20.hs
--- a/dist/build/autogen/Graphics/GL/Raw/Profile/Embedded20.hs
+++ b/dist/build/autogen/Graphics/GL/Raw/Profile/Embedded20.hs
@@ -448,6 +448,5 @@
 ) where
 
 import Graphics.GL.Raw.Internal.Shared
-import Graphics.GL.Raw.Types
 
-pattern GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS = 0x8CD9 :: GLenum
+pattern GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS = 0x8CD9
diff --git a/gl.cabal b/gl.cabal
--- a/gl.cabal
+++ b/gl.cabal
@@ -1,5 +1,5 @@
 name:          gl
-version:       0.2
+version:       0.3
 synopsis:      Complete OpenGL raw bindings
 description:   Complete OpenGL raw bindings
 license:       BSD3
@@ -17,7 +17,6 @@
   CHANGELOG.markdown README.markdown TODO.markdown
   Generator.hs Module.hs Parser.hs Registry.hs Utils.hs
 
-
 source-repository head
   type:     git
   location: https://github.com/ekmett/gl
@@ -39,7 +38,8 @@
   build-depends:
       base == 4.*
     , containers == 0.5.*
-    , half >= 0.1 && < 0.2
+    , fixed >= 0.2.1 && < 0.3
+    , half >= 0.2 && < 0.3
     , transformers >= 0.2 && < 0.5
     , vector == 0.10.*
 
@@ -56,7 +56,7 @@
     if arch(i386)
       cpp-options: "-DCALLCONV=stdcall"
     else
-       cpp-options: "-DCALLCONV=ccall"
+      cpp-options: "-DCALLCONV=ccall"
     cc-options: "-DUSE_WGLGETPROCADDRESS"
     extra-libraries: opengl32
   else
@@ -66,13 +66,15 @@
     else
       cc-options: "-DUSE_DLSYM"
     if os(darwin)
-      cpp-options: "-DHANDLE_IS_POINTER"
       frameworks: OpenGL
     else
       if os(ios)
         frameworks: OpenGLES
       else
         extra-libraries: GL
+
+  other-modules:
+    Graphics.GL.Raw.Internal.Shared
 
   exposed-modules:
     Graphics.GL.Raw.Internal.FFI
diff --git a/gl.xml b/gl.xml
# file too large to diff: gl.xml
diff --git a/src/Graphics/GL/Raw/Internal/Proc.hs b/src/Graphics/GL/Raw/Internal/Proc.hs
--- a/src/Graphics/GL/Raw/Internal/Proc.hs
+++ b/src/Graphics/GL/Raw/Internal/Proc.hs
@@ -19,21 +19,23 @@
 
 module Graphics.GL.Raw.Internal.Proc
   ( getProcAddress
-  , getProcAddressWithSuffixes
   , Invoker
-  , getExtensionEntry
   , extensions
   ) where
 
 import Control.Monad
 import Data.Functor
+import Data.List.Split (splitOn)
 import Data.Set as Set
 import Foreign.C.String
 import Foreign.Marshal.Alloc
-import Foreign.Marshal.Error
 import Foreign.Ptr
 import Foreign.Storable
-import Graphics.GL.Raw.Internal.FFI (ffienumuintIOPtrubyte, ffienumPtrintIOV)
+import Graphics.GL.Raw.Internal.FFI
+  ( ffienumIOPtrubyte
+  , ffienumuintIOPtrubyte
+  , ffienumPtrintIOV
+  )
 import System.IO.Unsafe
 
 --------------------------------------------------------------------------------
@@ -42,44 +44,27 @@
 -- extension entry with the given name was found.
 getProcAddress :: String -> IO (FunPtr a)
 getProcAddress extensionEntry =
-   withCString extensionEntry hs_gl_getProcAddress
+  withCString extensionEntry hs_gl_getProcAddress
 
 foreign import ccall unsafe "hs_gl_getProcAddress"
-   hs_gl_getProcAddress :: CString -> IO (FunPtr a)
-
--- | Retrieve an OpenGL extension entry by name, trying a list of name suffixes
--- in the given order. Returns 'nullFunPtr' when no extension entry with the
--- given name plus any of the suffixes was found.
-getProcAddressWithSuffixes :: String -> [String] -> IO (FunPtr a)
-getProcAddressWithSuffixes extensionEntry = foldM gpa nullFunPtr
-   where gpa p s | p == nullFunPtr = getProcAddress (extensionEntry ++ s)
-                 | otherwise       = return p
+  hs_gl_getProcAddress :: CString -> IO (FunPtr a)
 
 --------------------------------------------------------------------------------
 
 type Invoker a = FunPtr a -> a
 
-getExtensionEntry :: String -> String -> IO (FunPtr a)
-getExtensionEntry extensionNameString extensionEntry =
-   throwIfNullFunPtr ("unknown OpenGL extension entry " ++ extensionEntry ++
-                      ", check for " ++ extensionNameString) $
-      getProcAddressWithSuffixes extensionEntry extensionSuffixes
-
-throwIfNullFunPtr :: String -> IO (FunPtr a) -> IO (FunPtr a)
-throwIfNullFunPtr = throwIf (== nullFunPtr) . const
-
--- non-ARB extension suffixes are in descending order of number of extensions
-extensionSuffixes :: [String]
-extensionSuffixes = [
-   "", "ARB", "EXT", "NV", "SGIX", "SGIS", "ATI", "APPLE", "SUN", "OES", "IBM",
-   "MESA", "HP", "SGI", "OML", "AMD", "3DFX", "WIN", "PGI", "INTEL", "INGR",
-   "GREMEDY", "SUNX", "S3", "REND", "MESAX" ]
-
 extensions :: Set String
 extensions = unsafePerformIO $ do
-  glGetStringi  <- ffienumuintIOPtrubyte <$> getProcAddress "glGetStringi"
-  glGetIntegerv <- ffienumPtrintIOV <$> getProcAddress "glGetIntegerv"
-  numExtensions <- alloca $ \p -> glGetIntegerv 0x821D p >> peek p
-  supported <- forM [0..(fromIntegral numExtensions)-1] $ \n -> peekCString . castPtr =<< glGetStringi 0x1F03 n
-  return $ Set.fromList supported
+  -- glGetStringi is only present in OpenGL 3.0 and OpenGL ES 3.0, and newer.
+  glGetStringiFunPtr <- getProcAddress "glGetStringi"
+  if glGetStringiFunPtr == nullFunPtr then do
+    glGetString <- ffienumIOPtrubyte <$> getProcAddress "glGetString"
+    supported <- glGetString 0x1F03 >>= peekCString . castPtr
+    return $ Set.fromList (words supported)
+  else do
+    let glGetStringi = ffienumuintIOPtrubyte glGetStringiFunPtr
+    glGetIntegerv <- ffienumPtrintIOV <$> getProcAddress "glGetIntegerv"
+    numExtensions <- alloca $ \p -> glGetIntegerv 0x821D p >> peek p
+    supported <- forM [0..fromIntegral numExtensions-1] $ glGetStringi 0x1F03 >=> peekCString . castPtr
+    return $ Set.fromList supported
 {-# NOINLINE extensions #-}
diff --git a/src/Graphics/GL/Raw/Types.hs b/src/Graphics/GL/Raw/Types.hs
--- a/src/Graphics/GL/Raw/Types.hs
+++ b/src/Graphics/GL/Raw/Types.hs
@@ -59,6 +59,7 @@
 import Data.Word
 import Foreign.C.Types
 import Foreign.Ptr
+import Numeric.Fixed
 import Numeric.Half
 
 type GLDEBUGPROC =
@@ -112,39 +113,39 @@
 foreign import ccall "wrapper"
   mkGLDEBUGPROCKHR :: (GLenum -> GLenum -> GLuint -> GLenum -> GLsizei -> Ptr GLchar -> Ptr () -> IO ()) -> IO GLDEBUGPROCKHR
 
-type GLbitfield = CUInt
-type GLboolean = CUChar
-type GLbyte = CSChar
-type GLchar = CChar
-type GLcharARB = CChar
-type GLclampd = CDouble
-type GLclampf = CFloat
-type GLclampx = CInt
-type GLdouble = CDouble
-type GLeglImageOES = Ptr ()
-type GLenum = CUInt
-type GLfixed = GLint
-type GLfloat = CFloat
-type GLhalfNV = Half
-type GLint = CInt
-type GLint64 = Int64
-type GLint64EXT = Int64
-type GLintptr = CPtrdiff
-type GLintptrARB = CPtrdiff
-type GLshort = CShort
-type GLsizei = CInt
-type GLsizeiptr = CPtrdiff
-type GLsizeiptrARB = CPtrdiff
-type GLsync = Ptr ()
-type GLubyte = CUChar
-type GLuint = CUInt
-type GLuint64 = Word64
-type GLuint64EXT = Word64
-type GLushort = CUShort
-type GLvdpauSurfaceNV = GLintptr
+type GLbitfield       = Word32
+type GLboolean        = Word8
+type GLbyte           = Int8
+type GLchar           = CChar
+type GLcharARB        = Word8
+type GLclampd         = Double
+type GLclampf         = Float
+type GLclampx         = Int32
+type GLdouble         = Double
+type GLeglImageOES    = Ptr ()
+type GLenum           = Word32
+type GLfixed          = Fixed
+type GLfloat          = Float
+type GLhalfNV         = Half
+type GLint            = Int32
+type GLint64          = Int64
+type GLint64EXT       = Int64
+type GLintptr         = CPtrdiff
+type GLintptrARB      = CPtrdiff
+type GLshort          = Int16
+type GLsizei          = Int32
+type GLsizeiptr       = CPtrdiff
+type GLsizeiptrARB    = CPtrdiff
+type GLsync           = Ptr ()
+type GLubyte          = Word8
+type GLuint           = Word32
+type GLuint64         = Word64
+type GLuint64EXT      = Word64
+type GLushort         = Word16
+type GLvdpauSurfaceNV = CPtrdiff
 
 #if __APPLE__
 type GLhandleARB = Ptr ()
 #else
-type GLhandleARB = CUInt
+type GLhandleARB = Word32
 #endif
