diff --git a/OpenGLRaw.cabal b/OpenGLRaw.cabal
--- a/OpenGLRaw.cabal
+++ b/OpenGLRaw.cabal
@@ -1,5 +1,5 @@
 name: OpenGLRaw
-version: 1.2.0.0
+version: 1.3.0.0
 license: BSD3
 license-file: LICENSE
 maintainer: Jason Dagit <dagitj@gmail.com>, Sven Panne <sven.panne@aedion.de>
@@ -104,7 +104,6 @@
       Graphics.Rendering.OpenGL.Raw.ARB.WindowPos,
       Graphics.Rendering.OpenGL.Raw.Core31,
       Graphics.Rendering.OpenGL.Raw.Core31.Types,
-      Graphics.Rendering.OpenGL.Raw.Core31.TypesInternal,
       Graphics.Rendering.OpenGL.Raw.Core32,
       Graphics.Rendering.OpenGL.Raw.EXT,
       Graphics.Rendering.OpenGL.Raw.EXT.Abgr,
@@ -197,6 +196,7 @@
       Graphics.Rendering.OpenGL.Raw.NV.OcclusionQuery,
       Graphics.Rendering.OpenGL.Raw.NV.PackedDepthStencil,
       Graphics.Rendering.OpenGL.Raw.NV.ParameterBufferObject,
+      Graphics.Rendering.OpenGL.Raw.NV.PathRendering,
       Graphics.Rendering.OpenGL.Raw.NV.PixelDataRange,
       Graphics.Rendering.OpenGL.Raw.NV.PointSprite,
       Graphics.Rendering.OpenGL.Raw.NV.PresentVideo,
diff --git a/include/CTypes.h b/include/CTypes.h
--- a/include/CTypes.h
+++ b/include/CTypes.h
@@ -175,6 +175,7 @@
 --  // GHC can derive any class for a newtype, so we make use of that here...
 
 #define INSTANCE_TYPEABLE0(tycon,tcname,str) deriving instance Typeable tycon
+#define GHC_RULE(N,R) {-# RULES "N" R #-}
 
 #define ARITHMETIC_CLASSES  Eq,Ord,Num,Enum,Storable,Real
 #define INTEGRAL_CLASSES Bounded,Integral,Bits
@@ -190,13 +191,17 @@
 newtype T = T B deriving (ARITHMETIC_CLASSES, INTEGRAL_CLASSES); \
 INSTANCE_READ(T,B); \
 INSTANCE_SHOW(T,B); \
-INSTANCE_TYPEABLE0(T,C,S) ;
+INSTANCE_TYPEABLE0(T,C,S) ; \
+GHC_RULE(fromIntegral/a->T,fromIntegral = \x -> T (fromIntegral x)) ; \
+GHC_RULE(fromIntegral/T->a,fromIntegral = \(T x) -> fromIntegral x)
 
 #define FLOATING_TYPE(T,C,S,B) \
 newtype T = T B deriving (ARITHMETIC_CLASSES, FLOATING_CLASSES); \
 INSTANCE_READ(T,B); \
 INSTANCE_SHOW(T,B); \
-INSTANCE_TYPEABLE0(T,C,S) ;
+INSTANCE_TYPEABLE0(T,C,S) ; \
+GHC_RULE(realToFrac/a->T,realToFrac = \x -> T (realToFrac x)) ; \
+GHC_RULE(realToFrac/T->a,realToFrac = \(T x) -> realToFrac x)
 
 #define INSTANCE_READ(T,B) \
 instance Read T where { \
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/Compatibility/Functions.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/Compatibility/Functions.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/Compatibility/Functions.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/ARB/Compatibility/Functions.hs
@@ -404,7 +404,6 @@
 import Foreign.C.Types
 import Graphics.Rendering.OpenGL.Raw.Core31
 import Graphics.Rendering.OpenGL.Raw.Extensions
-import Graphics.Rendering.OpenGL.Raw.Core31.TypesInternal
 
 #include "HsOpenGLRaw.h"
 
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/CopyBuffer.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/CopyBuffer.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/CopyBuffer.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/ARB/CopyBuffer.hs
@@ -24,9 +24,8 @@
 ) where
 
 import Foreign.C.Types
-import Graphics.Rendering.OpenGL.Raw.Core31.Types
 import Graphics.Rendering.OpenGL.Raw.Extensions
-import Graphics.Rendering.OpenGL.Raw.Core31.TypesInternal
+import Graphics.Rendering.OpenGL.Raw.Core31.Types
 
 #include "HsOpenGLRaw.h"
 
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/DrawBuffersBlend.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/DrawBuffersBlend.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/DrawBuffersBlend.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/ARB/DrawBuffersBlend.hs
@@ -25,7 +25,6 @@
 import Foreign.C.Types
 import Graphics.Rendering.OpenGL.Raw.Core32
 import Graphics.Rendering.OpenGL.Raw.Extensions
-import Graphics.Rendering.OpenGL.Raw.Core31.TypesInternal
 
 #include "HsOpenGLRaw.h"
 
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/DrawElementsBaseVertex.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/DrawElementsBaseVertex.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/DrawElementsBaseVertex.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/ARB/DrawElementsBaseVertex.hs
@@ -24,9 +24,8 @@
 
 import Foreign.Ptr
 import Foreign.C.Types
-import Graphics.Rendering.OpenGL.Raw.Core31.Types
 import Graphics.Rendering.OpenGL.Raw.Extensions
-import Graphics.Rendering.OpenGL.Raw.Core31.TypesInternal
+import Graphics.Rendering.OpenGL.Raw.Core31.Types
 
 #include "HsOpenGLRaw.h"
 
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/DrawInstanced.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/DrawInstanced.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/DrawInstanced.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/ARB/DrawInstanced.hs
@@ -22,9 +22,8 @@
 
 import Foreign.Ptr
 import Foreign.C.Types
-import Graphics.Rendering.OpenGL.Raw.Core31.Types
 import Graphics.Rendering.OpenGL.Raw.Extensions
-import Graphics.Rendering.OpenGL.Raw.Core31.TypesInternal
+import Graphics.Rendering.OpenGL.Raw.Core31.Types
 
 #include "HsOpenGLRaw.h"
 
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/GeometryShader4.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/GeometryShader4.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/GeometryShader4.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/ARB/GeometryShader4.hs
@@ -47,7 +47,6 @@
 import Graphics.Rendering.OpenGL.Raw.Core31.Functions ( glFramebufferTextureLayer )
 import Graphics.Rendering.OpenGL.Raw.Core31.Tokens ( gl_MAX_VARYING_COMPONENTS, gl_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER )
 import Graphics.Rendering.OpenGL.Raw.Core31.Types
-import Graphics.Rendering.OpenGL.Raw.Core31.TypesInternal
 import Graphics.Rendering.OpenGL.Raw.Extensions
 
 #include "HsOpenGLRaw.h"
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/InstancedArrays.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/InstancedArrays.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/InstancedArrays.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/ARB/InstancedArrays.hs
@@ -24,7 +24,6 @@
 import Foreign.C.Types
 import Graphics.Rendering.OpenGL.Raw.Core32
 import Graphics.Rendering.OpenGL.Raw.Extensions
-import Graphics.Rendering.OpenGL.Raw.Core31.TypesInternal
 
 #include "HsOpenGLRaw.h"
 
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/MatrixPalette.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/MatrixPalette.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/MatrixPalette.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/ARB/MatrixPalette.hs
@@ -38,7 +38,6 @@
 import Foreign.C.Types
 import Graphics.Rendering.OpenGL.Raw.Core32
 import Graphics.Rendering.OpenGL.Raw.Extensions
-import Graphics.Rendering.OpenGL.Raw.Core31.TypesInternal
 
 #include "HsOpenGLRaw.h"
 
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/ProvokingVertex.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/ProvokingVertex.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/ProvokingVertex.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/ARB/ProvokingVertex.hs
@@ -25,9 +25,8 @@
 ) where
 
 import Foreign.C.Types
-import Graphics.Rendering.OpenGL.Raw.Core31.Types
 import Graphics.Rendering.OpenGL.Raw.Extensions
-import Graphics.Rendering.OpenGL.Raw.Core31.TypesInternal
+import Graphics.Rendering.OpenGL.Raw.Core31.Types
 
 #include "HsOpenGLRaw.h"
 
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/SampleShading.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/SampleShading.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/SampleShading.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/ARB/SampleShading.hs
@@ -25,7 +25,6 @@
 import Foreign.C.Types
 import Graphics.Rendering.OpenGL.Raw.Core32
 import Graphics.Rendering.OpenGL.Raw.Extensions
-import Graphics.Rendering.OpenGL.Raw.Core31.TypesInternal
 
 #include "HsOpenGLRaw.h"
 
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/ShaderObjects.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/ShaderObjects.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/ShaderObjects.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/ARB/ShaderObjects.hs
@@ -98,7 +98,7 @@
 
 import Foreign.Ptr
 import Foreign.C.Types
-import Graphics.Rendering.OpenGL.Raw.Core31.TypesInternal
+import Graphics.Rendering.OpenGL.Raw.Core31.Types
 import Graphics.Rendering.OpenGL.Raw.Core32
 import Graphics.Rendering.OpenGL.Raw.Extensions
 
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/Sync.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/Sync.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/Sync.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/ARB/Sync.hs
@@ -47,7 +47,7 @@
 
 import Foreign.Ptr
 import Foreign.C.Types
-import Graphics.Rendering.OpenGL.Raw.Core31.TypesInternal
+import Graphics.Rendering.OpenGL.Raw.Core31.Types
 import Graphics.Rendering.OpenGL.Raw.Extensions
 
 #include "HsOpenGLRaw.h"
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/TextureBufferObject.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/TextureBufferObject.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/TextureBufferObject.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/ARB/TextureBufferObject.hs
@@ -26,9 +26,8 @@
 ) where
 
 import Foreign.C.Types
-import Graphics.Rendering.OpenGL.Raw.Core31.Types
 import Graphics.Rendering.OpenGL.Raw.Extensions
-import Graphics.Rendering.OpenGL.Raw.Core31.TypesInternal
+import Graphics.Rendering.OpenGL.Raw.Core31.Types
 
 #include "HsOpenGLRaw.h"
 
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/TextureMultisample.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/TextureMultisample.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/TextureMultisample.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/ARB/TextureMultisample.hs
@@ -46,9 +46,8 @@
 
 import Foreign.Ptr
 import Foreign.C.Types
-import Graphics.Rendering.OpenGL.Raw.Core31.Types
 import Graphics.Rendering.OpenGL.Raw.Extensions
-import Graphics.Rendering.OpenGL.Raw.Core31.TypesInternal
+import Graphics.Rendering.OpenGL.Raw.Core31.Types
 
 #include "HsOpenGLRaw.h"
 
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/UniformBufferObject.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/UniformBufferObject.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/UniformBufferObject.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/ARB/UniformBufferObject.hs
@@ -64,9 +64,8 @@
 
 import Foreign.Ptr
 import Foreign.C.Types
-import Graphics.Rendering.OpenGL.Raw.Core31.Types
 import Graphics.Rendering.OpenGL.Raw.Extensions
-import Graphics.Rendering.OpenGL.Raw.Core31.TypesInternal
+import Graphics.Rendering.OpenGL.Raw.Core31.Types
 
 #include "HsOpenGLRaw.h"
 
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/VertexBlend.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/VertexBlend.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/VertexBlend.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/ARB/VertexBlend.hs
@@ -75,7 +75,6 @@
 import Foreign.C.Types
 import Graphics.Rendering.OpenGL.Raw.Core32
 import Graphics.Rendering.OpenGL.Raw.Extensions
-import Graphics.Rendering.OpenGL.Raw.Core31.TypesInternal
 
 #include "HsOpenGLRaw.h"
 
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/VertexProgram.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/VertexProgram.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/VertexProgram.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/ARB/VertexProgram.hs
@@ -165,7 +165,6 @@
 import Graphics.Rendering.OpenGL.Raw.ARB.Compatibility
 import Graphics.Rendering.OpenGL.Raw.Core32
 import Graphics.Rendering.OpenGL.Raw.Extensions
-import Graphics.Rendering.OpenGL.Raw.Core31.TypesInternal
 
 #include "HsOpenGLRaw.h"
 
diff --git a/src/Graphics/Rendering/OpenGL/Raw/Core31/Functions.hs b/src/Graphics/Rendering/OpenGL/Raw/Core31/Functions.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/Core31/Functions.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/Core31/Functions.hs
@@ -304,9 +304,8 @@
 
 import Foreign.Ptr
 import Foreign.C.Types
-import Graphics.Rendering.OpenGL.Raw.Core31.Types
 import Graphics.Rendering.OpenGL.Raw.Extensions
-import Graphics.Rendering.OpenGL.Raw.Core31.TypesInternal
+import Graphics.Rendering.OpenGL.Raw.Core31.Types
 
 #include "HsOpenGLRaw.h"
 
diff --git a/src/Graphics/Rendering/OpenGL/Raw/Core31/Types.hs b/src/Graphics/Rendering/OpenGL/Raw/Core31/Types.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/Core31/Types.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/Core31/Types.hs
@@ -1,7 +1,9 @@
+{-# LANGUAGE CPP #-}
+
 -- #hide
 --------------------------------------------------------------------------------
 -- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.Core31.Types
+-- Module      :  Graphics.Rendering.OpenGL.Raw.Core31.TypesInternal
 -- Copyright   :  (c) Sven Panne 2009
 -- License     :  BSD-style (see the file LICENSE)
 --
@@ -13,27 +15,35 @@
 --
 --------------------------------------------------------------------------------
 
-module Graphics.Rendering.OpenGL.Raw.Core31.Types (
-   GLbitfield,
-   GLboolean,
-   GLbyte,
-   GLchar,
-   GLclampd,
-   GLclampf,
-   GLdouble,
-   GLenum,
-   GLfloat,
-   GLhalf,
-   GLint,
-   GLintptr,
-   GLshort,
-   GLsizei,
-   GLsizeiptr,
-   GLubyte,
-   GLuint,
-   GLushort
-) where
+module Graphics.Rendering.OpenGL.Raw.Core31.Types where
 
--- Just re-export the types in an opaque way, without introducing any warnings
--- about unused constructors.
-import Graphics.Rendering.OpenGL.Raw.Core31.TypesInternal
+import Data.Int
+import Data.Word
+import Foreign.C.Types
+import Foreign.Ptr
+
+
+type GLboolean  = CUChar
+type GLubyte    = CUChar
+type GLbyte     = CSChar
+type GLchar     = CChar
+type GLclampd   = CDouble
+type GLdouble   = CDouble
+type GLclampf   = CFloat
+type GLfloat    = CFloat
+type GLbitfield = CUInt
+type GLenum     = CUInt
+type GLuint     = CUInt
+type GLint      = CInt
+type GLsizei    = CInt
+type GLhalf     = CUShort
+type GLushort   = CUShort
+type GLshort    = CShort
+type GLintptr   = CPtrdiff
+type GLsizeiptr = CPtrdiff
+type GLint64    = Int64
+type GLuint64   = Word64
+
+-- Not part of the core, but it is very handy to define this here
+type GLhandle = CUInt
+type GLsync   = Ptr ()
diff --git a/src/Graphics/Rendering/OpenGL/Raw/Core31/TypesInternal.hs b/src/Graphics/Rendering/OpenGL/Raw/Core31/TypesInternal.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/Core31/TypesInternal.hs
+++ /dev/null
@@ -1,61 +0,0 @@
-{-# LANGUAGE CPP #-}
-{-# OPTIONS_GHC -XMagicHash -XGeneralizedNewtypeDeriving #-}
--- #hide
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.Core31.TypesInternal
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All types from the OpenGL 3.1 core, see <http://www.opengl.org/registry/>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.Core31.TypesInternal where
-
-import Data.Bits
-import Data.Int
-import Data.Word
-import Data.Typeable
-import Foreign.C.Types
-import Foreign.Ptr
-import Foreign.Storable
-
-#ifdef __GLASGOW_HASKELL__
-import GHC.Prim
-#else
-import Control.Monad
-import Foreign.Ptr
-#endif
-
-#include "CTypes.h"
-
-INTEGRAL_TYPE(GLbitfield,tyConGLbitfield,"GLbitfield",CUInt)
-INTEGRAL_TYPE(GLboolean,tyConGLboolean,"GLboolean",CUChar)
-INTEGRAL_TYPE(GLbyte,tyConGLbyte,"GLbyte",CSChar)
-INTEGRAL_TYPE(GLchar,tyConGLchar,"GLchar",CChar)
-FLOATING_TYPE(GLclampd,tyConGLclampd,"GLclampd",CDouble)
-FLOATING_TYPE(GLclampf,tyConGLclampf,"GLclampf",CFloat)
-FLOATING_TYPE(GLdouble,tyConGLdouble,"GLdouble",CDouble)
-INTEGRAL_TYPE(GLenum,tyConGLenum,"GLenum",CUInt)
-FLOATING_TYPE(GLfloat,tyConGLfloat,"GLfloat",CFloat)
-INTEGRAL_TYPE(GLhalf,tyConGLhalf,"GLhalf",CUShort)
-INTEGRAL_TYPE(GLint,tyConGLint,"GLint",CInt)
-INTEGRAL_TYPE(GLintptr,tyConGLintptr,"GLintptr",CPtrdiff)
-INTEGRAL_TYPE(GLshort,tyConGLshort,"GLshort",CShort)
-INTEGRAL_TYPE(GLsizei,tyConGLsizei,"GLsizei",CInt)
-INTEGRAL_TYPE(GLsizeiptr,tyConGLsizeiptr,"GLsizeiptr",CPtrdiff)
-INTEGRAL_TYPE(GLubyte,tyConGLubyte,"GLubyte",CUChar)
-INTEGRAL_TYPE(GLuint,tyConGLuint,"GLuint",CUInt)
-INTEGRAL_TYPE(GLushort,tyConGLushort,"GLushort",CUShort)
-INTEGRAL_TYPE(GLint64,tyConGLint64,"GLint64",Int64)
-INTEGRAL_TYPE(GLuint64,tyConGLuint64,"GLuint64",Word64)
-
-newtype GLsync = GLSync (Ptr GLsync)
-
--- Not part of the core, but it is very handy to define this here
-INTEGRAL_TYPE(GLhandle,tyConGLhandle,"GLhandle",CUInt)
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/BindableUniform.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/BindableUniform.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT/BindableUniform.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/EXT/BindableUniform.hs
@@ -30,7 +30,7 @@
 ) where
 
 import Foreign.C.Types
-import Graphics.Rendering.OpenGL.Raw.Core31.TypesInternal
+import Graphics.Rendering.OpenGL.Raw.Core31.Types
 import Graphics.Rendering.OpenGL.Raw.Extensions
 
 #include "HsOpenGLRaw.h"
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/CompiledVertexArray.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/CompiledVertexArray.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT/CompiledVertexArray.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/EXT/CompiledVertexArray.hs
@@ -27,7 +27,6 @@
 import Foreign.C.Types
 import Graphics.Rendering.OpenGL.Raw.Core32
 import Graphics.Rendering.OpenGL.Raw.Extensions
-import Graphics.Rendering.OpenGL.Raw.Core31.TypesInternal
 
 #include "HsOpenGLRaw.h"
 
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/CoordinateFrame.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/CoordinateFrame.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT/CoordinateFrame.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/EXT/CoordinateFrame.hs
@@ -57,7 +57,7 @@
 
 import Foreign.Ptr
 import Foreign.C.Types
-import Graphics.Rendering.OpenGL.Raw.Core31.TypesInternal
+import Graphics.Rendering.OpenGL.Raw.Core31.Types
 import Graphics.Rendering.OpenGL.Raw.Extensions
 
 #include "HsOpenGLRaw.h"
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/CullVertex.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/CullVertex.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT/CullVertex.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/EXT/CullVertex.hs
@@ -28,7 +28,6 @@
 import Foreign.C.Types
 import Graphics.Rendering.OpenGL.Raw.Core32
 import Graphics.Rendering.OpenGL.Raw.Extensions
-import Graphics.Rendering.OpenGL.Raw.Core31.TypesInternal
 
 #include "HsOpenGLRaw.h"
 
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/DepthBoundsTest.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/DepthBoundsTest.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT/DepthBoundsTest.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/EXT/DepthBoundsTest.hs
@@ -23,7 +23,7 @@
 ) where
 
 import Foreign.C.Types
-import Graphics.Rendering.OpenGL.Raw.Core31.TypesInternal
+import Graphics.Rendering.OpenGL.Raw.Core31.Types
 import Graphics.Rendering.OpenGL.Raw.Extensions
 
 #include "HsOpenGLRaw.h"
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/DirectStateAccess.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/DirectStateAccess.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT/DirectStateAccess.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/EXT/DirectStateAccess.hs
@@ -216,7 +216,7 @@
 
 import Foreign.Ptr
 import Foreign.C.Types
-import Graphics.Rendering.OpenGL.Raw.Core31.TypesInternal
+import Graphics.Rendering.OpenGL.Raw.Core31.Types
 import Graphics.Rendering.OpenGL.Raw.Extensions
 
 #include "HsOpenGLRaw.h"
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/FragmentLighting.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/FragmentLighting.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT/FragmentLighting.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/EXT/FragmentLighting.hs
@@ -61,7 +61,6 @@
 import Foreign.C.Types
 import Graphics.Rendering.OpenGL.Raw.Core32
 import Graphics.Rendering.OpenGL.Raw.Extensions
-import Graphics.Rendering.OpenGL.Raw.Core31.TypesInternal
 
 #include "HsOpenGLRaw.h"
 
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/GpuProgramParameters.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/GpuProgramParameters.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT/GpuProgramParameters.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/EXT/GpuProgramParameters.hs
@@ -23,7 +23,7 @@
 
 import Foreign.Ptr
 import Foreign.C.Types
-import Graphics.Rendering.OpenGL.Raw.Core31.TypesInternal
+import Graphics.Rendering.OpenGL.Raw.Core31.Types
 import Graphics.Rendering.OpenGL.Raw.Extensions
 
 #include "HsOpenGLRaw.h"
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/IndexFunc.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/IndexFunc.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT/IndexFunc.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/EXT/IndexFunc.hs
@@ -26,7 +26,6 @@
 import Foreign.C.Types
 import Graphics.Rendering.OpenGL.Raw.Core32
 import Graphics.Rendering.OpenGL.Raw.Extensions
-import Graphics.Rendering.OpenGL.Raw.Core31.TypesInternal
 
 #include "HsOpenGLRaw.h"
 
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/IndexMaterial.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/IndexMaterial.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT/IndexMaterial.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/EXT/IndexMaterial.hs
@@ -24,7 +24,7 @@
 ) where
 
 import Foreign.C.Types
-import Graphics.Rendering.OpenGL.Raw.Core31.TypesInternal
+import Graphics.Rendering.OpenGL.Raw.Core31.Types
 import Graphics.Rendering.OpenGL.Raw.Extensions
 
 #include "HsOpenGLRaw.h"
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/LightTexture.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/LightTexture.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT/LightTexture.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/EXT/LightTexture.hs
@@ -36,7 +36,6 @@
 import Graphics.Rendering.OpenGL.Raw.ARB.Compatibility
 import Graphics.Rendering.OpenGL.Raw.Core32
 import Graphics.Rendering.OpenGL.Raw.Extensions
-import Graphics.Rendering.OpenGL.Raw.Core31.TypesInternal
 
 #include "HsOpenGLRaw.h"
 
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/Multisample.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/Multisample.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT/Multisample.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/EXT/Multisample.hs
@@ -39,7 +39,7 @@
 ) where
 
 import Foreign.C.Types
-import Graphics.Rendering.OpenGL.Raw.Core31.TypesInternal
+import Graphics.Rendering.OpenGL.Raw.Core31.Types
 import Graphics.Rendering.OpenGL.Raw.ARB.Compatibility
 import Graphics.Rendering.OpenGL.Raw.Core32
 import Graphics.Rendering.OpenGL.Raw.Extensions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/PixelTransform.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/PixelTransform.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT/PixelTransform.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/EXT/PixelTransform.hs
@@ -38,7 +38,6 @@
 import Foreign.C.Types
 import Graphics.Rendering.OpenGL.Raw.Core32
 import Graphics.Rendering.OpenGL.Raw.Extensions
-import Graphics.Rendering.OpenGL.Raw.Core31.TypesInternal
 
 #include "HsOpenGLRaw.h"
 
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/StencilClearTag.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/StencilClearTag.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT/StencilClearTag.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/EXT/StencilClearTag.hs
@@ -24,7 +24,7 @@
 ) where
 
 import Foreign.C.Types
-import Graphics.Rendering.OpenGL.Raw.Core31.TypesInternal
+import Graphics.Rendering.OpenGL.Raw.Core31.Types
 import Graphics.Rendering.OpenGL.Raw.Extensions
 
 #include "HsOpenGLRaw.h"
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/StencilTwoSide.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/StencilTwoSide.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT/StencilTwoSide.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/EXT/StencilTwoSide.hs
@@ -23,7 +23,7 @@
 ) where
 
 import Foreign.C.Types
-import Graphics.Rendering.OpenGL.Raw.Core31.TypesInternal
+import Graphics.Rendering.OpenGL.Raw.Core31.Types
 import Graphics.Rendering.OpenGL.Raw.Extensions
 
 #include "HsOpenGLRaw.h"
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/TextureInteger.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/TextureInteger.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT/TextureInteger.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/EXT/TextureInteger.hs
@@ -50,7 +50,7 @@
 ) where
 
 import Foreign.C.Types
-import Graphics.Rendering.OpenGL.Raw.Core31.TypesInternal
+import Graphics.Rendering.OpenGL.Raw.Core31.Types
 import Graphics.Rendering.OpenGL.Raw.ARB.Compatibility
 import Graphics.Rendering.OpenGL.Raw.Extensions
 
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/TexturePerturbNormal.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/TexturePerturbNormal.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT/TexturePerturbNormal.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/EXT/TexturePerturbNormal.hs
@@ -23,7 +23,7 @@
 ) where
 
 import Foreign.C.Types
-import Graphics.Rendering.OpenGL.Raw.Core31.TypesInternal
+import Graphics.Rendering.OpenGL.Raw.Core31.Types
 import Graphics.Rendering.OpenGL.Raw.Extensions
 
 #include "HsOpenGLRaw.h"
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/TimerQuery.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/TimerQuery.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT/TimerQuery.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/EXT/TimerQuery.hs
@@ -29,7 +29,6 @@
 import Foreign.C.Types
 import Graphics.Rendering.OpenGL.Raw.ARB.Sync
 import Graphics.Rendering.OpenGL.Raw.Core31.Types
-import Graphics.Rendering.OpenGL.Raw.Core31.TypesInternal
 import Graphics.Rendering.OpenGL.Raw.Extensions
 
 #include "HsOpenGLRaw.h"
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/VertexShader.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/VertexShader.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT/VertexShader.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/EXT/VertexShader.hs
@@ -173,7 +173,7 @@
 
 import Foreign.Ptr
 import Foreign.C.Types
-import Graphics.Rendering.OpenGL.Raw.Core31.TypesInternal
+import Graphics.Rendering.OpenGL.Raw.Core31.Types
 import Graphics.Rendering.OpenGL.Raw.Core32
 import Graphics.Rendering.OpenGL.Raw.Extensions
 
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/VertexWeighting.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/VertexWeighting.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT/VertexWeighting.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/EXT/VertexWeighting.hs
@@ -37,7 +37,7 @@
 
 import Foreign.Ptr
 import Foreign.C.Types
-import Graphics.Rendering.OpenGL.Raw.Core31.TypesInternal
+import Graphics.Rendering.OpenGL.Raw.Core31.Types
 import Graphics.Rendering.OpenGL.Raw.ARB.VertexBlend
 import Graphics.Rendering.OpenGL.Raw.Extensions
 
diff --git a/src/Graphics/Rendering/OpenGL/Raw/NV.hs b/src/Graphics/Rendering/OpenGL/Raw/NV.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/NV.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/NV.hs
@@ -61,7 +61,8 @@
    module Graphics.Rendering.OpenGL.Raw.NV.ConditionalRender,
    module Graphics.Rendering.OpenGL.Raw.NV.PresentVideo,
    module Graphics.Rendering.OpenGL.Raw.NV.ExplicitMultisample,
-   module Graphics.Rendering.OpenGL.Raw.NV.TransformFeedback2
+   module Graphics.Rendering.OpenGL.Raw.NV.TransformFeedback2,
+   module Graphics.Rendering.OpenGL.Raw.NV.PathRendering
 ) where
 
 import Graphics.Rendering.OpenGL.Raw.NV.TexgenReflection
@@ -113,3 +114,4 @@
 import Graphics.Rendering.OpenGL.Raw.NV.PresentVideo
 import Graphics.Rendering.OpenGL.Raw.NV.ExplicitMultisample
 import Graphics.Rendering.OpenGL.Raw.NV.TransformFeedback2
+import Graphics.Rendering.OpenGL.Raw.NV.PathRendering
diff --git a/src/Graphics/Rendering/OpenGL/Raw/NV/DepthBufferFloat.hs b/src/Graphics/Rendering/OpenGL/Raw/NV/DepthBufferFloat.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/NV/DepthBufferFloat.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/NV/DepthBufferFloat.hs
@@ -27,7 +27,7 @@
 ) where
 
 import Foreign.C.Types
-import Graphics.Rendering.OpenGL.Raw.Core31.TypesInternal
+import Graphics.Rendering.OpenGL.Raw.Core31.Types
 import Graphics.Rendering.OpenGL.Raw.Core32
 import Graphics.Rendering.OpenGL.Raw.Extensions
 
diff --git a/src/Graphics/Rendering/OpenGL/Raw/NV/ExplicitMultisample.hs b/src/Graphics/Rendering/OpenGL/Raw/NV/ExplicitMultisample.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/NV/ExplicitMultisample.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/NV/ExplicitMultisample.hs
@@ -38,7 +38,6 @@
 import Graphics.Rendering.OpenGL.Raw.EXT.DirectStateAccess
 import Graphics.Rendering.OpenGL.Raw.Core32
 import Graphics.Rendering.OpenGL.Raw.Extensions
-import Graphics.Rendering.OpenGL.Raw.Core31.TypesInternal
 
 #include "HsOpenGLRaw.h"
 
diff --git a/src/Graphics/Rendering/OpenGL/Raw/NV/Fence.hs b/src/Graphics/Rendering/OpenGL/Raw/NV/Fence.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/NV/Fence.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/NV/Fence.hs
@@ -31,7 +31,7 @@
 
 import Foreign.Ptr
 import Foreign.C.Types
-import Graphics.Rendering.OpenGL.Raw.Core31.TypesInternal
+import Graphics.Rendering.OpenGL.Raw.Core31.Types
 import Graphics.Rendering.OpenGL.Raw.Extensions
 
 #include "HsOpenGLRaw.h"
diff --git a/src/Graphics/Rendering/OpenGL/Raw/NV/FragmentProgram.hs b/src/Graphics/Rendering/OpenGL/Raw/NV/FragmentProgram.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/NV/FragmentProgram.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/NV/FragmentProgram.hs
@@ -39,7 +39,7 @@
 
 import Foreign.Ptr
 import Foreign.C.Types
-import Graphics.Rendering.OpenGL.Raw.Core31.TypesInternal
+import Graphics.Rendering.OpenGL.Raw.Core31.Types
 import Graphics.Rendering.OpenGL.Raw.ARB.FragmentProgram
 import Graphics.Rendering.OpenGL.Raw.Extensions
 
diff --git a/src/Graphics/Rendering/OpenGL/Raw/NV/FramebufferMultisampleCoverage.hs b/src/Graphics/Rendering/OpenGL/Raw/NV/FramebufferMultisampleCoverage.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/NV/FramebufferMultisampleCoverage.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/NV/FramebufferMultisampleCoverage.hs
@@ -26,7 +26,7 @@
 ) where
 
 import Foreign.C.Types
-import Graphics.Rendering.OpenGL.Raw.Core31.TypesInternal
+import Graphics.Rendering.OpenGL.Raw.Core31.Types
 import Graphics.Rendering.OpenGL.Raw.Extensions
 
 #include "HsOpenGLRaw.h"
diff --git a/src/Graphics/Rendering/OpenGL/Raw/NV/GeometryProgram4.hs b/src/Graphics/Rendering/OpenGL/Raw/NV/GeometryProgram4.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/NV/GeometryProgram4.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/NV/GeometryProgram4.hs
@@ -37,7 +37,7 @@
 ) where
 
 import Foreign.C.Types
-import Graphics.Rendering.OpenGL.Raw.Core31.TypesInternal
+import Graphics.Rendering.OpenGL.Raw.Core31.Types
 import Graphics.Rendering.OpenGL.Raw.Core32
 import Graphics.Rendering.OpenGL.Raw.Extensions
 
diff --git a/src/Graphics/Rendering/OpenGL/Raw/NV/GpuProgram4.hs b/src/Graphics/Rendering/OpenGL/Raw/NV/GpuProgram4.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/NV/GpuProgram4.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/NV/GpuProgram4.hs
@@ -45,7 +45,7 @@
 
 import Foreign.Ptr
 import Foreign.C.Types
-import Graphics.Rendering.OpenGL.Raw.Core31.TypesInternal
+import Graphics.Rendering.OpenGL.Raw.Core31.Types
 import Graphics.Rendering.OpenGL.Raw.Core32
 import Graphics.Rendering.OpenGL.Raw.Extensions
 
diff --git a/src/Graphics/Rendering/OpenGL/Raw/NV/HalfFloat.hs b/src/Graphics/Rendering/OpenGL/Raw/NV/HalfFloat.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/NV/HalfFloat.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/NV/HalfFloat.hs
@@ -70,7 +70,7 @@
 
 import Foreign.Ptr
 import Foreign.C.Types
-import Graphics.Rendering.OpenGL.Raw.Core31.TypesInternal
+import Graphics.Rendering.OpenGL.Raw.Core31.Types
 import Graphics.Rendering.OpenGL.Raw.Core32
 import Graphics.Rendering.OpenGL.Raw.Extensions
 
diff --git a/src/Graphics/Rendering/OpenGL/Raw/NV/OcclusionQuery.hs b/src/Graphics/Rendering/OpenGL/Raw/NV/OcclusionQuery.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/NV/OcclusionQuery.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/NV/OcclusionQuery.hs
@@ -35,7 +35,7 @@
 
 import Foreign.Ptr
 import Foreign.C.Types
-import Graphics.Rendering.OpenGL.Raw.Core31.TypesInternal
+import Graphics.Rendering.OpenGL.Raw.Core31.Types
 import Graphics.Rendering.OpenGL.Raw.Extensions
 
 #include "HsOpenGLRaw.h"
diff --git a/src/Graphics/Rendering/OpenGL/Raw/NV/ParameterBufferObject.hs b/src/Graphics/Rendering/OpenGL/Raw/NV/ParameterBufferObject.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/NV/ParameterBufferObject.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/NV/ParameterBufferObject.hs
@@ -33,7 +33,7 @@
 
 import Foreign.Ptr
 import Foreign.C.Types
-import Graphics.Rendering.OpenGL.Raw.Core31.TypesInternal
+import Graphics.Rendering.OpenGL.Raw.Core31.Types
 import Graphics.Rendering.OpenGL.Raw.EXT.DirectStateAccess
 import Graphics.Rendering.OpenGL.Raw.Core32
 import Graphics.Rendering.OpenGL.Raw.Extensions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/NV/PathRendering.hs b/src/Graphics/Rendering/OpenGL/Raw/NV/PathRendering.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/NV/PathRendering.hs
@@ -0,0 +1,685 @@
+{-# LANGUAGE ForeignFunctionInterface, CPP #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.NV.PathRendering
+-- Copyright   :  (c) Sven Panne 2009
+-- License     :  BSD-style (see the file LICENSE)
+--
+-- Maintainer  :  sven.panne@aedion.de
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- All raw functions and tokens from the NV_path_rendering extension not
+-- already in the OpenGL 3.1 core, see
+-- <http://www.opengl.org/registry/specs/NV/path_rendering.txt>.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.NV.PathRendering (
+-- * Functions
+   glPathCommandsNV,
+   glPathCoordsNV,
+   glPathSubCommandsNV,
+   glPathSubCoordsNV,
+   glPathStringNV,
+   glPathGlyphsNV,
+   glPathGlyphRangeNV,
+   glWeightPathsNV,
+   glCopyPathNV,
+   glInterpolatePathsNV,
+   glTransformPathNV,
+   glPathParameterivNV,
+   glPathParameteriNV,
+   glPathParameterfvNV,
+   glPathParameterfNV,
+   glPathDashArrayNV,
+   glGenPathsNV,
+   glDeletePathsNV,
+   glIsPathNV,
+   glPathStencilFuncNV,
+   glPathStencilDepthOffsetNV,
+   glStencilFillPathNV,
+   glStencilStrokePathNV,
+   glStencilFillPathInstancedNV,
+   glStencilStrokePathInstancedNV,
+   glPathCoverDepthFuncNV,
+   glPathColorGenNV,
+   glPathTexGenNV,
+   glPathFogGenNV,
+   glCoverFillPathNV,
+   glCoverStrokePathNV,
+   glCoverFillPathInstancedNV,
+   glCoverStrokePathInstancedNV,
+   glGetPathParameterivNV,
+   glGetPathParameterfvNV,
+   glGetPathCommandsNV,
+   glGetPathCoordsNV,
+   glGetPathDashArrayNV,
+   glGetPathMetricsNV,
+   glGetPathMetricRangeNV,
+   glGetPathSpacingNV,
+   glGetPathColorGenivNV,
+   glGetPathColorGenfvNV,
+   glGetPathTexGenivNV,
+   glGetPathTexGenfvNV,
+   glIsPointInFillPathNV,
+   glIsPointInStrokePathNV,
+   glGetPathLengthNV,
+   glPointAlongPathNV,
+   -- * Tokens
+   gl_CLOSE_PATH_NV,
+   gl_MOVE_TO_NV,
+   gl_RELATIVE_MOVE_TO_NV,
+   gl_LINE_TO_NV,
+   gl_RELATIVE_LINE_TO_NV,
+   gl_HORIZONTAL_LINE_TO_NV,
+   gl_RELATIVE_HORIZONTAL_LINE_TO_NV,
+   gl_VERTICAL_LINE_TO_NV,
+   gl_RELATIVE_VERTICAL_LINE_TO_NV,
+   gl_QUADRATIC_CURVE_TO_NV,
+   gl_RELATIVE_QUADRATIC_CURVE_TO_NV,
+   gl_CUBIC_CURVE_TO_NV,
+   gl_RELATIVE_CUBIC_CURVE_TO_NV,
+   gl_SMOOTH_QUADRATIC_CURVE_TO_NV,
+   gl_RELATIVE_SMOOTH_QUADRATIC_CURVE_TO_NV,
+   gl_SMOOTH_CUBIC_CURVE_TO_NV,
+   gl_RELATIVE_SMOOTH_CUBIC_CURVE_TO_NV,
+   gl_SMALL_CCW_ARC_TO_NV,
+   gl_RELATIVE_SMALL_CCW_ARC_TO_NV,
+   gl_SMALL_CW_ARC_TO_NV,
+   gl_RELATIVE_SMALL_CW_ARC_TO_NV,
+   gl_LARGE_CCW_ARC_TO_NV,
+   gl_RELATIVE_LARGE_CCW_ARC_TO_NV,
+   gl_LARGE_CW_ARC_TO_NV,
+   gl_RELATIVE_LARGE_CW_ARC_TO_NV,
+   gl_RESTART_PATH_NV,
+   gl_DUP_FIRST_CUBIC_CURVE_TO_NV,
+   gl_DUP_LAST_CUBIC_CURVE_TO_NV,
+   gl_RECT_NV,
+   gl_CIRCULAR_CCW_ARC_TO_NV,
+   gl_CIRCULAR_CW_ARC_TO_NV,
+   gl_CIRCULAR_TANGENT_ARC_TO_NV,
+   gl_ARC_TO_NV,
+   gl_RELATIVE_ARC_TO_NV,
+   gl_PATH_FORMAT_SVG_NV,
+   gl_PATH_FORMAT_PS_NV,
+   gl_STANDARD_FONT_NAME_NV,
+   gl_SYSTEM_FONT_NAME_NV,
+   gl_FILE_NAME_NV,
+   gl_SKIP_MISSING_GLYPH_NV,
+   gl_USE_MISSING_GLYPH_NV,
+   gl_PATH_STROKE_WIDTH_NV,
+   gl_PATH_INITIAL_END_CAP_NV,
+   gl_PATH_TERMINAL_END_CAP_NV,
+   gl_PATH_JOIN_STYLE_NV,
+   gl_PATH_MITER_LIMIT_NV,
+   gl_PATH_INITIAL_DASH_CAP_NV,
+   gl_PATH_TERMINAL_DASH_CAP_NV,
+   gl_PATH_DASH_OFFSET_NV,
+   gl_PATH_CLIENT_LENGTH_NV,
+   gl_PATH_DASH_OFFSET_RESET_NV,
+   gl_PATH_FILL_MODE_NV,
+   gl_PATH_FILL_MASK_NV,
+   gl_PATH_FILL_COVER_MODE_NV,
+   gl_PATH_STROKE_COVER_MODE_NV,
+   gl_PATH_STROKE_MASK_NV,
+   gl_PATH_END_CAPS_NV,
+   gl_PATH_DASH_CAPS_NV,
+   gl_COUNT_UP_NV,
+   gl_COUNT_DOWN_NV,
+   gl_PATH_OBJECT_BOUNDING_BOX_NV,
+   gl_CONVEX_HULL_NV,
+   gl_BOUNDING_BOX_NV,
+   gl_TRANSLATE_X_NV,
+   gl_TRANSLATE_Y_NV,
+   gl_TRANSLATE_2D_NV,
+   gl_TRANSLATE_3D_NV,
+   gl_AFFINE_2D_NV,
+   gl_AFFINE_3D_NV,
+   gl_TRANSPOSE_AFFINE_2D_NV,
+   gl_TRANSPOSE_AFFINE_3D_NV,
+   gl_UTF8_NV,
+   gl_UTF16_NV,
+   gl_BOUNDING_BOX_OF_BOUNDING_BOXES_NV,
+   gl_PATH_COMMAND_COUNT_NV,
+   gl_PATH_COORD_COUNT_NV,
+   gl_PATH_DASH_ARRAY_COUNT_NV,
+   gl_PATH_COMPUTED_LENGTH_NV,
+   gl_PATH_FILL_BOUNDING_BOX_NV,
+   gl_PATH_STROKE_BOUNDING_BOX_NV,
+   gl_SQUARE_NV,
+   gl_ROUND_NV,
+   gl_TRIANGULAR_NV,
+   gl_BEVEL_NV,
+   gl_MITER_REVERT_NV,
+   gl_MITER_TRUNCATE_NV,
+   gl_MOVE_TO_RESETS_NV,
+   gl_MOVE_TO_CONTINUES_NV,
+   gl_BOLD_BIT_NV,
+   gl_ITALIC_BIT_NV,
+   gl_PATH_ERROR_POSITION_NV,
+   gl_PATH_FOG_GEN_MODE_NV,
+   gl_PATH_STENCIL_FUNC_NV,
+   gl_PATH_STENCIL_REF_NV,
+   gl_PATH_STENCIL_VALUE_MASK_NV,
+   gl_PATH_STENCIL_DEPTH_OFFSET_FACTOR_NV,
+   gl_PATH_STENCIL_DEPTH_OFFSET_UNITS_NV,
+   gl_PATH_COVER_DEPTH_FUNC_NV,
+   gl_GLYPH_WIDTH_BIT_NV,
+   gl_GLYPH_HEIGHT_BIT_NV,
+   gl_GLYPH_HORIZONTAL_BEARING_X_BIT_NV,
+   gl_GLYPH_HORIZONTAL_BEARING_Y_BIT_NV,
+   gl_GLYPH_HORIZONTAL_BEARING_ADVANCE_BIT_NV,
+   gl_GLYPH_VERTICAL_BEARING_X_BIT_NV,
+   gl_GLYPH_VERTICAL_BEARING_Y_BIT_NV,
+   gl_GLYPH_VERTICAL_BEARING_ADVANCE_BIT_NV,
+   gl_GLYPH_HAS_KERNING_BIT_NV,
+   gl_FONT_X_MIN_BOUNDS_BIT_NV,
+   gl_FONT_Y_MIN_BOUNDS_BIT_NV,
+   gl_FONT_X_MAX_BOUNDS_BIT_NV,
+   gl_FONT_Y_MAX_BOUNDS_BIT_NV,
+   gl_FONT_UNITS_PER_EM_BIT_NV,
+   gl_FONT_ASCENDER_BIT_NV,
+   gl_FONT_DESCENDER_BIT_NV,
+   gl_FONT_HEIGHT_BIT_NV,
+   gl_FONT_MAX_ADVANCE_WIDTH_BIT_NV,
+   gl_FONT_MAX_ADVANCE_HEIGHT_BIT_NV,
+   gl_FONT_UNDERLINE_POSITION_BIT_NV,
+   gl_FONT_UNDERLINE_THICKNESS_BIT_NV,
+   gl_FONT_HAS_KERNING_BIT_NV,
+   gl_ACCUM_ADJACENT_PAIRS_NV,
+   gl_ADJACENT_PAIRS_NV,
+   gl_FIRST_TO_REST_NV,
+   gl_PATH_GEN_MODE_NV,
+   gl_PATH_GEN_COEFF_NV,
+   gl_PATH_GEN_COLOR_FORMAT_NV,
+   gl_PATH_GEN_COMPONENTS_NV
+
+) where
+
+import Foreign.Ptr
+import Foreign.C.Types
+import Graphics.Rendering.OpenGL.Raw.Core31.Types
+import Graphics.Rendering.OpenGL.Raw.Extensions
+
+#include "HsOpenGLRaw.h"
+
+extensionNameString :: String
+extensionNameString = "GL_NV_path_rendering"
+
+
+EXTENSION_ENTRY(glPathCommandsNV,GLuint -> GLsizei -> Ptr GLubyte -> GLsizei -> GLenum -> Ptr GLubyte -> IO ())
+EXTENSION_ENTRY(glPathCoordsNV,GLuint -> GLsizei -> GLenum -> Ptr GLubyte -> IO ())
+EXTENSION_ENTRY(glPathSubCommandsNV,GLuint -> GLsizei -> GLsizei -> GLsizei -> Ptr GLubyte -> GLsizei -> GLenum -> Ptr GLubyte -> IO ())
+EXTENSION_ENTRY(glPathSubCoordsNV,GLuint -> GLsizei -> GLsizei -> GLenum -> Ptr GLubyte -> IO ())
+EXTENSION_ENTRY(glPathStringNV,GLuint -> GLenum -> GLsizei -> Ptr GLubyte -> IO ())
+EXTENSION_ENTRY(glPathGlyphsNV,GLuint -> GLenum -> Ptr GLubyte -> GLbitfield -> GLsizei -> GLenum -> Ptr GLubyte -> GLenum -> GLuint -> GLfloat -> IO ())
+EXTENSION_ENTRY(glPathGlyphRangeNV,GLuint -> GLenum -> Ptr GLubyte -> GLbitfield -> GLuint -> GLsizei -> GLenum -> GLuint -> GLfloat -> IO ())
+EXTENSION_ENTRY(glWeightPathsNV,GLuint -> GLsizei -> Ptr GLubyte -> Ptr GLfloat -> IO ())
+EXTENSION_ENTRY(glCopyPathNV,GLuint -> GLuint -> IO ())
+EXTENSION_ENTRY(glInterpolatePathsNV,GLuint -> GLuint -> GLuint -> GLfloat -> IO ())
+EXTENSION_ENTRY(glTransformPathNV,GLuint -> GLuint -> GLenum -> Ptr GLfloat -> IO ())
+EXTENSION_ENTRY(glPathParameterivNV,GLuint -> GLenum -> Ptr GLint -> IO ())
+EXTENSION_ENTRY(glPathParameteriNV,GLuint -> GLenum -> GLint -> IO ())
+EXTENSION_ENTRY(glPathParameterfvNV,GLuint -> GLenum -> Ptr GLfloat -> IO ())
+EXTENSION_ENTRY(glPathParameterfNV,GLuint -> GLenum -> GLfloat -> IO ())
+EXTENSION_ENTRY(glPathDashArrayNV,GLuint -> GLsizei -> Ptr GLfloat -> IO ())
+EXTENSION_ENTRY(glGenPathsNV,GLsizei -> IO GLuint)
+EXTENSION_ENTRY(glDeletePathsNV,GLuint -> GLsizei -> IO ())
+EXTENSION_ENTRY(glIsPathNV,GLuint -> IO GLboolean)
+EXTENSION_ENTRY(glPathStencilFuncNV,GLenum -> GLint -> GLuint -> IO ())
+EXTENSION_ENTRY(glPathStencilDepthOffsetNV,GLfloat -> GLfloat -> IO ())
+EXTENSION_ENTRY(glStencilFillPathNV,GLuint -> GLenum -> GLuint -> IO ())
+EXTENSION_ENTRY(glStencilStrokePathNV,GLuint -> GLint -> GLuint -> IO ())
+EXTENSION_ENTRY(glStencilFillPathInstancedNV,GLsizei -> GLenum -> Ptr GLubyte -> GLuint -> GLenum -> GLuint -> GLenum -> Ptr GLfloat -> IO ())
+EXTENSION_ENTRY(glStencilStrokePathInstancedNV,GLsizei -> GLenum -> Ptr GLubyte -> GLuint -> GLint -> GLuint -> GLenum -> Ptr GLfloat -> IO ())
+EXTENSION_ENTRY(glPathCoverDepthFuncNV,GLenum -> IO ())
+EXTENSION_ENTRY(glPathColorGenNV,GLenum -> GLenum -> GLenum -> Ptr GLfloat -> IO ())
+EXTENSION_ENTRY(glPathTexGenNV,GLenum -> GLenum -> GLint -> Ptr GLfloat -> IO ())
+EXTENSION_ENTRY(glPathFogGenNV,GLenum -> IO ())
+EXTENSION_ENTRY(glCoverFillPathNV,GLuint -> GLenum -> IO ())
+EXTENSION_ENTRY(glCoverStrokePathNV,GLuint -> GLenum -> IO ())
+EXTENSION_ENTRY(glCoverFillPathInstancedNV,GLsizei -> GLenum -> Ptr GLuint -> GLuint -> GLenum -> GLenum -> Ptr GLfloat -> IO ())
+EXTENSION_ENTRY(glCoverStrokePathInstancedNV,GLsizei -> GLenum -> Ptr GLubyte -> GLuint -> GLenum -> GLenum -> Ptr GLfloat -> IO ())
+EXTENSION_ENTRY(glGetPathParameterivNV,GLuint -> GLenum -> Ptr GLint -> IO ())
+EXTENSION_ENTRY(glGetPathParameterfvNV,GLuint -> GLenum -> Ptr GLfloat -> IO ())
+EXTENSION_ENTRY(glGetPathCommandsNV,GLuint -> Ptr GLubyte -> IO ())
+EXTENSION_ENTRY(glGetPathCoordsNV,GLuint -> Ptr GLfloat -> IO ())
+EXTENSION_ENTRY(glGetPathDashArrayNV,GLuint -> Ptr GLfloat -> IO ())
+EXTENSION_ENTRY(glGetPathMetricsNV,GLbitfield -> GLsizei -> GLenum -> Ptr GLuint -> GLuint -> GLsizei -> Ptr GLfloat -> IO ())
+EXTENSION_ENTRY(glGetPathMetricRangeNV,GLbitfield -> GLuint -> GLsizei -> GLsizei -> Ptr GLfloat -> IO ())
+EXTENSION_ENTRY(glGetPathSpacingNV,GLenum -> GLsizei -> GLenum -> Ptr GLubyte -> GLuint -> GLfloat -> GLfloat -> GLenum -> Ptr GLfloat -> IO ())
+EXTENSION_ENTRY(glGetPathColorGenivNV,GLenum -> GLenum -> Ptr GLint -> IO ())
+EXTENSION_ENTRY(glGetPathColorGenfvNV,GLenum -> GLenum -> Ptr GLfloat -> IO ())
+EXTENSION_ENTRY(glGetPathTexGenivNV,GLenum -> GLenum -> Ptr GLint -> IO ())
+EXTENSION_ENTRY(glGetPathTexGenfvNV,GLenum -> GLenum -> Ptr GLfloat -> IO ())
+EXTENSION_ENTRY(glIsPointInFillPathNV,GLuint -> GLuint -> GLfloat -> GLfloat -> IO GLboolean)
+EXTENSION_ENTRY(glIsPointInStrokePathNV,GLuint -> GLfloat -> GLfloat -> IO GLboolean)
+EXTENSION_ENTRY(glGetPathLengthNV,GLuint -> GLsizei -> GLsizei -> IO GLfloat)
+EXTENSION_ENTRY(glPointAlongPathNV,GLuint -> GLsizei -> GLsizei -> GLfloat -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> IO GLboolean)
+
+-- Accepted in elements of the <commands> array parameter of
+-- PathCommandsNV and PathSubCommandsNV:
+
+gl_CLOSE_PATH_NV :: GLubyte
+gl_CLOSE_PATH_NV = 0x00
+
+gl_MOVE_TO_NV :: GLubyte
+gl_MOVE_TO_NV = 0x02
+
+gl_RELATIVE_MOVE_TO_NV :: GLubyte
+gl_RELATIVE_MOVE_TO_NV = 0x03
+
+gl_LINE_TO_NV :: GLubyte
+gl_LINE_TO_NV = 0x04
+
+gl_RELATIVE_LINE_TO_NV :: GLubyte
+gl_RELATIVE_LINE_TO_NV = 0x05
+
+gl_HORIZONTAL_LINE_TO_NV :: GLubyte
+gl_HORIZONTAL_LINE_TO_NV = 0x06
+
+gl_RELATIVE_HORIZONTAL_LINE_TO_NV :: GLubyte
+gl_RELATIVE_HORIZONTAL_LINE_TO_NV = 0x07
+
+gl_VERTICAL_LINE_TO_NV :: GLubyte
+gl_VERTICAL_LINE_TO_NV = 0x08
+
+gl_RELATIVE_VERTICAL_LINE_TO_NV :: GLubyte
+gl_RELATIVE_VERTICAL_LINE_TO_NV = 0x09
+
+gl_QUADRATIC_CURVE_TO_NV :: GLubyte
+gl_QUADRATIC_CURVE_TO_NV = 0x0A
+
+gl_RELATIVE_QUADRATIC_CURVE_TO_NV :: GLubyte
+gl_RELATIVE_QUADRATIC_CURVE_TO_NV = 0x0B
+
+gl_CUBIC_CURVE_TO_NV :: GLubyte
+gl_CUBIC_CURVE_TO_NV = 0x0C
+
+gl_RELATIVE_CUBIC_CURVE_TO_NV :: GLubyte
+gl_RELATIVE_CUBIC_CURVE_TO_NV = 0x0D
+
+gl_SMOOTH_QUADRATIC_CURVE_TO_NV :: GLubyte
+gl_SMOOTH_QUADRATIC_CURVE_TO_NV = 0x0E
+
+gl_RELATIVE_SMOOTH_QUADRATIC_CURVE_TO_NV :: GLubyte
+gl_RELATIVE_SMOOTH_QUADRATIC_CURVE_TO_NV =  0x0F
+
+gl_SMOOTH_CUBIC_CURVE_TO_NV :: GLubyte
+gl_SMOOTH_CUBIC_CURVE_TO_NV = 0x10
+
+gl_RELATIVE_SMOOTH_CUBIC_CURVE_TO_NV :: GLubyte
+gl_RELATIVE_SMOOTH_CUBIC_CURVE_TO_NV = 0x11
+
+gl_SMALL_CCW_ARC_TO_NV :: GLubyte
+gl_SMALL_CCW_ARC_TO_NV = 0x12
+
+gl_RELATIVE_SMALL_CCW_ARC_TO_NV :: GLubyte
+gl_RELATIVE_SMALL_CCW_ARC_TO_NV = 0x13
+
+gl_SMALL_CW_ARC_TO_NV :: GLubyte
+gl_SMALL_CW_ARC_TO_NV = 0x14
+
+gl_RELATIVE_SMALL_CW_ARC_TO_NV :: GLubyte
+gl_RELATIVE_SMALL_CW_ARC_TO_NV = 0x15
+
+gl_LARGE_CCW_ARC_TO_NV :: GLubyte
+gl_LARGE_CCW_ARC_TO_NV = 0x16
+
+gl_RELATIVE_LARGE_CCW_ARC_TO_NV :: GLubyte
+gl_RELATIVE_LARGE_CCW_ARC_TO_NV = 0x17
+
+gl_LARGE_CW_ARC_TO_NV :: GLubyte
+gl_LARGE_CW_ARC_TO_NV = 0x18
+
+gl_RELATIVE_LARGE_CW_ARC_TO_NV :: GLubyte
+gl_RELATIVE_LARGE_CW_ARC_TO_NV = 0x19
+
+gl_RESTART_PATH_NV :: GLubyte
+gl_RESTART_PATH_NV = 0xF0
+
+gl_DUP_FIRST_CUBIC_CURVE_TO_NV :: GLubyte
+gl_DUP_FIRST_CUBIC_CURVE_TO_NV = 0xF2
+
+gl_DUP_LAST_CUBIC_CURVE_TO_NV :: GLubyte
+gl_DUP_LAST_CUBIC_CURVE_TO_NV = 0xF4
+
+gl_RECT_NV :: GLubyte
+gl_RECT_NV = 0xF6
+
+gl_CIRCULAR_CCW_ARC_TO_NV :: GLubyte
+gl_CIRCULAR_CCW_ARC_TO_NV = 0xF8
+
+gl_CIRCULAR_CW_ARC_TO_NV :: GLubyte
+gl_CIRCULAR_CW_ARC_TO_NV = 0xFA
+
+gl_CIRCULAR_TANGENT_ARC_TO_NV :: GLubyte
+gl_CIRCULAR_TANGENT_ARC_TO_NV = 0xFC
+
+gl_ARC_TO_NV :: GLubyte
+gl_ARC_TO_NV = 0xFE
+
+gl_RELATIVE_ARC_TO_NV :: GLubyte
+gl_RELATIVE_ARC_TO_NV = 0xFF
+
+-- Accepted by the <format> parameter of PathStringNV
+gl_PATH_FORMAT_SVG_NV :: GLenum
+gl_PATH_FORMAT_SVG_NV = 0x9070
+
+gl_PATH_FORMAT_PS_NV :: GLenum
+gl_PATH_FORMAT_PS_NV = 0x9071
+
+-- Accepted by the <fontTarget> parameter of PathGlyphsNV and
+-- PathGlyphRangeNV:
+gl_STANDARD_FONT_NAME_NV :: GLenum
+gl_STANDARD_FONT_NAME_NV =  0x9072
+
+gl_SYSTEM_FONT_NAME_NV :: GLenum
+gl_SYSTEM_FONT_NAME_NV =  0x9073
+
+gl_FILE_NAME_NV :: GLenum
+gl_FILE_NAME_NV =  0x9074
+
+-- Accepted by the <handleMissingGlyph> parameter of PathGlyphsNV and
+-- PathGlyphRangeNV:
+gl_SKIP_MISSING_GLYPH_NV :: GLenum
+gl_SKIP_MISSING_GLYPH_NV = 0x90A9
+
+gl_USE_MISSING_GLYPH_NV :: GLenum
+gl_USE_MISSING_GLYPH_NV = 0x90AA
+
+-- Accepted by the <pname> parameter of PathParameterfNV,
+-- PathParameterfvNV, GetPathParameterfvNV, PathParameteriNV,
+-- PathParameterivNV, and GetPathParameterivNV:
+gl_PATH_STROKE_WIDTH_NV :: GLenum
+gl_PATH_STROKE_WIDTH_NV = 0x9075
+
+gl_PATH_INITIAL_END_CAP_NV :: GLenum
+gl_PATH_INITIAL_END_CAP_NV = 0x9077
+
+gl_PATH_TERMINAL_END_CAP_NV :: GLenum
+gl_PATH_TERMINAL_END_CAP_NV = 0x9078
+
+gl_PATH_JOIN_STYLE_NV :: GLenum
+gl_PATH_JOIN_STYLE_NV = 0x9079
+
+gl_PATH_MITER_LIMIT_NV :: GLenum
+gl_PATH_MITER_LIMIT_NV = 0x907A
+
+gl_PATH_INITIAL_DASH_CAP_NV :: GLenum
+gl_PATH_INITIAL_DASH_CAP_NV = 0x907C
+
+gl_PATH_TERMINAL_DASH_CAP_NV :: GLenum
+gl_PATH_TERMINAL_DASH_CAP_NV = 0x907D
+
+gl_PATH_DASH_OFFSET_NV :: GLenum
+gl_PATH_DASH_OFFSET_NV = 0x907E
+
+gl_PATH_CLIENT_LENGTH_NV :: GLenum
+gl_PATH_CLIENT_LENGTH_NV = 0x907F
+
+gl_PATH_DASH_OFFSET_RESET_NV :: GLenum
+gl_PATH_DASH_OFFSET_RESET_NV = 0x90B4
+
+gl_PATH_FILL_MODE_NV :: GLenum
+gl_PATH_FILL_MODE_NV = 0x9080
+
+gl_PATH_FILL_MASK_NV :: GLenum
+gl_PATH_FILL_MASK_NV = 0x9081
+
+gl_PATH_FILL_COVER_MODE_NV :: GLenum
+gl_PATH_FILL_COVER_MODE_NV = 0x9082
+
+gl_PATH_STROKE_COVER_MODE_NV :: GLenum
+gl_PATH_STROKE_COVER_MODE_NV = 0x9083
+
+gl_PATH_STROKE_MASK_NV :: GLenum
+gl_PATH_STROKE_MASK_NV = 0x9084
+
+-- Accepted by the <pname> parameter of PathParameterfNV and
+-- PathParameterfvNV:
+gl_PATH_END_CAPS_NV :: GLenum
+gl_PATH_END_CAPS_NV = 0x9076
+
+gl_PATH_DASH_CAPS_NV :: GLenum
+gl_PATH_DASH_CAPS_NV = 0x907B
+
+-- Accepted by the <fillMode> parameter of StencilFillPathNV and
+-- StencilFillPathInstancedNV:
+gl_COUNT_UP_NV :: GLenum
+gl_COUNT_UP_NV = 0x9088
+
+gl_COUNT_DOWN_NV :: GLenum
+gl_COUNT_DOWN_NV = 0x9089
+
+-- Accepted by the <genMode> parameter of PathColorGenNV and
+-- PathTexGenNV:
+gl_PATH_OBJECT_BOUNDING_BOX_NV :: GLenum
+gl_PATH_OBJECT_BOUNDING_BOX_NV = 0x908A
+
+-- Accepted by the <coverMode> parameter of CoverFillPathNV and
+-- CoverFillPathInstancedNV:
+gl_CONVEX_HULL_NV :: GLenum
+gl_CONVEX_HULL_NV = 0x908B
+
+gl_BOUNDING_BOX_NV :: GLenum
+gl_BOUNDING_BOX_NV = 0x908D
+
+-- Accepted by the <transformType> parameter of
+-- StencilFillPathInstancedNV, StencilStrokePathInstancedNV,
+-- CoverFillPathInstancedNV, and CoverStrokePathInstancedNV:
+gl_TRANSLATE_X_NV :: GLenum
+gl_TRANSLATE_X_NV = 0x908E
+
+gl_TRANSLATE_Y_NV :: GLenum
+gl_TRANSLATE_Y_NV = 0x908F
+
+gl_TRANSLATE_2D_NV :: GLenum
+gl_TRANSLATE_2D_NV = 0x9090
+
+gl_TRANSLATE_3D_NV :: GLenum
+gl_TRANSLATE_3D_NV = 0x9091
+
+gl_AFFINE_2D_NV :: GLenum
+gl_AFFINE_2D_NV = 0x9092
+
+gl_AFFINE_3D_NV :: GLenum
+gl_AFFINE_3D_NV = 0x9094
+
+gl_TRANSPOSE_AFFINE_2D_NV :: GLenum
+gl_TRANSPOSE_AFFINE_2D_NV = 0x9096
+
+gl_TRANSPOSE_AFFINE_3D_NV :: GLenum
+gl_TRANSPOSE_AFFINE_3D_NV = 0x9098
+
+-- Accepted by the <type> or <pathNameType> parameter of
+-- StencilFillPathInstancedNV, StencilStrokePathInstancedNV,
+-- CoverFillPathInstancedNV, CoverStrokePathInstancedNV,
+-- GetPathMetricsNV, and GetPathSpacingNV:
+gl_UTF8_NV :: GLenum
+gl_UTF8_NV = 0x909A
+
+gl_UTF16_NV :: GLenum
+gl_UTF16_NV = 0x909B
+
+-- Accepted by the <coverMode> parameter of CoverFillPathInstancedNV:
+gl_BOUNDING_BOX_OF_BOUNDING_BOXES_NV :: GLenum
+gl_BOUNDING_BOX_OF_BOUNDING_BOXES_NV = 0x909C
+
+-- Accepted by the <pname> parameter of GetPathParameterfvNV and
+-- GetPathParameterivNV:
+gl_PATH_COMMAND_COUNT_NV :: GLenum
+gl_PATH_COMMAND_COUNT_NV = 0x909D
+
+gl_PATH_COORD_COUNT_NV :: GLenum
+gl_PATH_COORD_COUNT_NV = 0x909E
+
+gl_PATH_DASH_ARRAY_COUNT_NV :: GLenum
+gl_PATH_DASH_ARRAY_COUNT_NV = 0x909F
+
+gl_PATH_COMPUTED_LENGTH_NV :: GLenum
+gl_PATH_COMPUTED_LENGTH_NV = 0x90A0
+
+gl_PATH_FILL_BOUNDING_BOX_NV :: GLenum
+gl_PATH_FILL_BOUNDING_BOX_NV = 0x90A1
+
+gl_PATH_STROKE_BOUNDING_BOX_NV :: GLenum
+gl_PATH_STROKE_BOUNDING_BOX_NV = 0x90A2
+
+-- Accepted by the <value> parameter of PathParameterfNV,
+-- PathParameterfvNV, PathParameteriNV, and PathParameterivNV
+-- when <pname> is one of PATH_END_CAPS_NV, PATH_INTIAL_END_CAP_NV,
+-- PATH_TERMINAL_END_CAP_NV, PATH_DASH_CAPS_NV, PATH_INITIAL_DASH_CAP_NV,
+-- and PATH_TERMINAL_DASH_CAP_NV:
+gl_SQUARE_NV :: GLint
+gl_SQUARE_NV = 0x90A3
+
+gl_ROUND_NV :: GLint
+gl_ROUND_NV = 0x90A4
+
+gl_TRIANGULAR_NV :: GLint
+gl_TRIANGULAR_NV = 0x90A5
+
+gl_BEVEL_NV :: GLint
+gl_BEVEL_NV = 0x90A6
+
+gl_MITER_REVERT_NV :: GLint
+gl_MITER_REVERT_NV = 0x90A7
+
+gl_MITER_TRUNCATE_NV :: GLint
+gl_MITER_TRUNCATE_NV = 0x90A8
+
+-- Accepted by the <value> parameter of PathParameterfNV,
+-- PathParameterfvNV, PathParameteriNV, and PathParameterivNV when
+-- <pname> is PATH_DASH_OFFSET_RESET_NV
+gl_MOVE_TO_RESETS_NV :: GLint
+gl_MOVE_TO_RESETS_NV = 0x90B5
+
+gl_MOVE_TO_CONTINUES_NV :: GLint
+gl_MOVE_TO_CONTINUES_NV = 0x90B6
+
+-- Accepted by the <fontStyle> parameter of PathStringNV:
+gl_BOLD_BIT_NV :: GLbitfield
+gl_BOLD_BIT_NV = 0x01
+
+gl_ITALIC_BIT_NV :: GLbitfield
+gl_ITALIC_BIT_NV = 0x02
+
+-- Accepted by the <pname> parameter of GetBooleanv, GetIntegerv,
+-- GetInteger64v, GetFloatv, and GetDoublev:
+gl_PATH_ERROR_POSITION_NV :: GLenum
+gl_PATH_ERROR_POSITION_NV = 0x90AB
+
+gl_PATH_FOG_GEN_MODE_NV :: GLenum
+gl_PATH_FOG_GEN_MODE_NV = 0x90AC
+
+gl_PATH_STENCIL_FUNC_NV :: GLenum
+gl_PATH_STENCIL_FUNC_NV = 0x90B7
+
+gl_PATH_STENCIL_REF_NV :: GLenum
+gl_PATH_STENCIL_REF_NV = 0x90B8
+
+gl_PATH_STENCIL_VALUE_MASK_NV :: GLenum
+gl_PATH_STENCIL_VALUE_MASK_NV = 0x90B9
+
+gl_PATH_STENCIL_DEPTH_OFFSET_FACTOR_NV :: GLenum
+gl_PATH_STENCIL_DEPTH_OFFSET_FACTOR_NV = 0x90BD
+
+gl_PATH_STENCIL_DEPTH_OFFSET_UNITS_NV :: GLenum
+gl_PATH_STENCIL_DEPTH_OFFSET_UNITS_NV = 0x90BE
+
+gl_PATH_COVER_DEPTH_FUNC_NV :: GLenum
+gl_PATH_COVER_DEPTH_FUNC_NV = 0x90BF
+
+-- Accepted as a bit within the <metricQueryMask> parameter of
+-- GetPathMetricRangeNV or GetPathMetricsNV:
+gl_GLYPH_WIDTH_BIT_NV :: GLbitfield
+gl_GLYPH_WIDTH_BIT_NV = 0x01
+
+gl_GLYPH_HEIGHT_BIT_NV :: GLbitfield
+gl_GLYPH_HEIGHT_BIT_NV = 0x02
+
+gl_GLYPH_HORIZONTAL_BEARING_X_BIT_NV :: GLbitfield
+gl_GLYPH_HORIZONTAL_BEARING_X_BIT_NV = 0x04
+
+gl_GLYPH_HORIZONTAL_BEARING_Y_BIT_NV :: GLbitfield
+gl_GLYPH_HORIZONTAL_BEARING_Y_BIT_NV = 0x08
+
+gl_GLYPH_HORIZONTAL_BEARING_ADVANCE_BIT_NV :: GLbitfield
+gl_GLYPH_HORIZONTAL_BEARING_ADVANCE_BIT_NV = 0x10
+
+gl_GLYPH_VERTICAL_BEARING_X_BIT_NV :: GLbitfield
+gl_GLYPH_VERTICAL_BEARING_X_BIT_NV = 0x20
+
+gl_GLYPH_VERTICAL_BEARING_Y_BIT_NV :: GLbitfield
+gl_GLYPH_VERTICAL_BEARING_Y_BIT_NV = 0x40
+
+gl_GLYPH_VERTICAL_BEARING_ADVANCE_BIT_NV :: GLbitfield
+gl_GLYPH_VERTICAL_BEARING_ADVANCE_BIT_NV = 0x80
+
+gl_GLYPH_HAS_KERNING_BIT_NV :: GLbitfield
+gl_GLYPH_HAS_KERNING_BIT_NV = 0x100
+
+gl_FONT_X_MIN_BOUNDS_BIT_NV :: GLbitfield
+gl_FONT_X_MIN_BOUNDS_BIT_NV = 0x00010000
+
+gl_FONT_Y_MIN_BOUNDS_BIT_NV :: GLbitfield
+gl_FONT_Y_MIN_BOUNDS_BIT_NV = 0x00020000
+
+gl_FONT_X_MAX_BOUNDS_BIT_NV :: GLbitfield
+gl_FONT_X_MAX_BOUNDS_BIT_NV = 0x00040000
+
+gl_FONT_Y_MAX_BOUNDS_BIT_NV :: GLbitfield
+gl_FONT_Y_MAX_BOUNDS_BIT_NV = 0x00080000
+
+gl_FONT_UNITS_PER_EM_BIT_NV :: GLbitfield
+gl_FONT_UNITS_PER_EM_BIT_NV = 0x00100000
+
+gl_FONT_ASCENDER_BIT_NV :: GLbitfield
+gl_FONT_ASCENDER_BIT_NV = 0x00200000
+
+gl_FONT_DESCENDER_BIT_NV :: GLbitfield
+gl_FONT_DESCENDER_BIT_NV = 0x00400000
+
+gl_FONT_HEIGHT_BIT_NV :: GLbitfield
+gl_FONT_HEIGHT_BIT_NV = 0x00800000
+
+gl_FONT_MAX_ADVANCE_WIDTH_BIT_NV :: GLbitfield
+gl_FONT_MAX_ADVANCE_WIDTH_BIT_NV = 0x01000000
+
+gl_FONT_MAX_ADVANCE_HEIGHT_BIT_NV :: GLbitfield
+gl_FONT_MAX_ADVANCE_HEIGHT_BIT_NV = 0x02000000
+
+gl_FONT_UNDERLINE_POSITION_BIT_NV :: GLbitfield
+gl_FONT_UNDERLINE_POSITION_BIT_NV = 0x04000000
+
+gl_FONT_UNDERLINE_THICKNESS_BIT_NV :: GLbitfield
+gl_FONT_UNDERLINE_THICKNESS_BIT_NV = 0x08000000
+
+gl_FONT_HAS_KERNING_BIT_NV :: GLbitfield
+gl_FONT_HAS_KERNING_BIT_NV = 0x10000000
+
+-- Accepted by the <pathListMode> parameter of GetPathSpacingNV:
+gl_ACCUM_ADJACENT_PAIRS_NV :: GLenum
+gl_ACCUM_ADJACENT_PAIRS_NV = 0x90AD
+
+gl_ADJACENT_PAIRS_NV :: GLenum
+gl_ADJACENT_PAIRS_NV = 0x90AE
+
+gl_FIRST_TO_REST_NV :: GLenum
+gl_FIRST_TO_REST_NV = 0x90AF
+
+-- Accepted by the <pname> parameter of GetPathColorGenivNV,
+-- GetPathColorGenfvNV, GetPathTexGenivNV and GetPathTexGenfvNV:
+gl_PATH_GEN_MODE_NV :: GLenum
+gl_PATH_GEN_MODE_NV = 0x90B0
+
+gl_PATH_GEN_COEFF_NV :: GLenum
+gl_PATH_GEN_COEFF_NV = 0x90B1
+
+gl_PATH_GEN_COLOR_FORMAT_NV :: GLenum
+gl_PATH_GEN_COLOR_FORMAT_NV = 0x90B2
+
+gl_PATH_GEN_COMPONENTS_NV :: GLenum
+gl_PATH_GEN_COMPONENTS_NV = 0x90B3
diff --git a/src/Graphics/Rendering/OpenGL/Raw/NV/PresentVideo.hs b/src/Graphics/Rendering/OpenGL/Raw/NV/PresentVideo.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/NV/PresentVideo.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/NV/PresentVideo.hs
@@ -35,7 +35,6 @@
 import Foreign.C.Types
 import Graphics.Rendering.OpenGL.Raw.Core32
 import Graphics.Rendering.OpenGL.Raw.Extensions
-import Graphics.Rendering.OpenGL.Raw.Core31.TypesInternal
 
 #include "HsOpenGLRaw.h"
 
diff --git a/src/Graphics/Rendering/OpenGL/Raw/NV/PrimitiveRestart.hs b/src/Graphics/Rendering/OpenGL/Raw/NV/PrimitiveRestart.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/NV/PrimitiveRestart.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/NV/PrimitiveRestart.hs
@@ -27,7 +27,7 @@
 ) where
 
 import Foreign.C.Types
-import Graphics.Rendering.OpenGL.Raw.Core31.TypesInternal
+import Graphics.Rendering.OpenGL.Raw.Core31.Types
 import Graphics.Rendering.OpenGL.Raw.Extensions
 
 #include "HsOpenGLRaw.h"
diff --git a/src/Graphics/Rendering/OpenGL/Raw/NV/RegisterCombiners.hs b/src/Graphics/Rendering/OpenGL/Raw/NV/RegisterCombiners.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/NV/RegisterCombiners.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/NV/RegisterCombiners.hs
@@ -87,7 +87,7 @@
 
 import Foreign.Ptr
 import Foreign.C.Types
-import Graphics.Rendering.OpenGL.Raw.Core31.TypesInternal
+import Graphics.Rendering.OpenGL.Raw.Core31.Types
 import Graphics.Rendering.OpenGL.Raw.ARB.Compatibility
 import Graphics.Rendering.OpenGL.Raw.Extensions
 
diff --git a/src/Graphics/Rendering/OpenGL/Raw/NV/RegisterCombiners2.hs b/src/Graphics/Rendering/OpenGL/Raw/NV/RegisterCombiners2.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/NV/RegisterCombiners2.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/NV/RegisterCombiners2.hs
@@ -35,7 +35,7 @@
 
 import Foreign.Ptr
 import Foreign.C.Types
-import Graphics.Rendering.OpenGL.Raw.Core31.TypesInternal
+import Graphics.Rendering.OpenGL.Raw.Core31.Types
 import Graphics.Rendering.OpenGL.Raw.Extensions
 import Graphics.Rendering.OpenGL.Raw.NV.RegisterCombiners
 
diff --git a/src/Graphics/Rendering/OpenGL/Raw/NV/TransformFeedback.hs b/src/Graphics/Rendering/OpenGL/Raw/NV/TransformFeedback.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/NV/TransformFeedback.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/NV/TransformFeedback.hs
@@ -74,7 +74,6 @@
 import Graphics.Rendering.OpenGL.Raw.Extensions
 import Graphics.Rendering.OpenGL.Raw.NV.ParameterBufferObject
 import Graphics.Rendering.OpenGL.Raw.NV.RegisterCombiners
-import Graphics.Rendering.OpenGL.Raw.Core31.TypesInternal
 
 #include "HsOpenGLRaw.h"
 
diff --git a/src/Graphics/Rendering/OpenGL/Raw/NV/TransformFeedback2.hs b/src/Graphics/Rendering/OpenGL/Raw/NV/TransformFeedback2.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/NV/TransformFeedback2.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/NV/TransformFeedback2.hs
@@ -34,7 +34,6 @@
 import Foreign.C.Types
 import Graphics.Rendering.OpenGL.Raw.Core32
 import Graphics.Rendering.OpenGL.Raw.Extensions
-import Graphics.Rendering.OpenGL.Raw.Core31.TypesInternal
 
 #include "HsOpenGLRaw.h"
 
diff --git a/src/Graphics/Rendering/OpenGL/Raw/NV/VertexArrayRange.hs b/src/Graphics/Rendering/OpenGL/Raw/NV/VertexArrayRange.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/NV/VertexArrayRange.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/NV/VertexArrayRange.hs
@@ -29,7 +29,7 @@
 
 import Foreign.Ptr
 import Foreign.C.Types
-import Graphics.Rendering.OpenGL.Raw.Core31.TypesInternal
+import Graphics.Rendering.OpenGL.Raw.Core31.Types
 import Graphics.Rendering.OpenGL.Raw.Extensions
 
 #include "HsOpenGLRaw.h"
diff --git a/src/Graphics/Rendering/OpenGL/Raw/NV/VertexProgram.hs b/src/Graphics/Rendering/OpenGL/Raw/NV/VertexProgram.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/NV/VertexProgram.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/NV/VertexProgram.hs
@@ -168,7 +168,7 @@
 
 import Foreign.Ptr
 import Foreign.C.Types
-import Graphics.Rendering.OpenGL.Raw.Core31.TypesInternal
+import Graphics.Rendering.OpenGL.Raw.Core31.Types
 import Graphics.Rendering.OpenGL.Raw.ARB.VertexProgram
 import Graphics.Rendering.OpenGL.Raw.Extensions
 
