diff --git a/OpenGLRaw.cabal b/OpenGLRaw.cabal
--- a/OpenGLRaw.cabal
+++ b/OpenGLRaw.cabal
@@ -1,5 +1,5 @@
 name: OpenGLRaw
-version: 2.0.0.0
+version: 2.1.0.0
 synopsis: A raw binding for the OpenGL graphics system
 description:
   OpenGLRaw is a raw Haskell binding for the OpenGL 3.2 graphics system and
@@ -51,54 +51,120 @@
 library
   exposed-modules:
     Graphics.Rendering.OpenGL.Raw
+    Graphics.Rendering.OpenGL.Raw.AMD
+    Graphics.Rendering.OpenGL.Raw.AMD.BlendMinmaxFactor
+    Graphics.Rendering.OpenGL.Raw.AMD.DebugOutput
+    Graphics.Rendering.OpenGL.Raw.AMD.DepthClampSeparate
+    Graphics.Rendering.OpenGL.Raw.AMD.DrawBuffersBlend
+    Graphics.Rendering.OpenGL.Raw.AMD.GPUShaderInt64
+    Graphics.Rendering.OpenGL.Raw.AMD.InterleavedElements
+    Graphics.Rendering.OpenGL.Raw.AMD.MultiDrawIndirect
+    Graphics.Rendering.OpenGL.Raw.AMD.NameGenDelete
+    Graphics.Rendering.OpenGL.Raw.AMD.OcclusionQueryEvent
+    Graphics.Rendering.OpenGL.Raw.AMD.PerformanceMonitor
+    Graphics.Rendering.OpenGL.Raw.AMD.PinnedMemory
+    Graphics.Rendering.OpenGL.Raw.AMD.QueryBufferObject
+    Graphics.Rendering.OpenGL.Raw.AMD.SamplePositions
+    Graphics.Rendering.OpenGL.Raw.AMD.SeamlessCubemapPerTexture
+    Graphics.Rendering.OpenGL.Raw.AMD.SparseTexture
+    Graphics.Rendering.OpenGL.Raw.AMD.StencilOperationExtended
+    Graphics.Rendering.OpenGL.Raw.AMD.TransformFeedback4
+    Graphics.Rendering.OpenGL.Raw.AMD.VertexShaderTessellator
     Graphics.Rendering.OpenGL.Raw.APPLE
+    Graphics.Rendering.OpenGL.Raw.APPLE.AuxDepthStencil
+    Graphics.Rendering.OpenGL.Raw.APPLE.ClientStorage
+    Graphics.Rendering.OpenGL.Raw.APPLE.ElementArray
+    Graphics.Rendering.OpenGL.Raw.APPLE.Fence
+    Graphics.Rendering.OpenGL.Raw.APPLE.FloatPixels
     Graphics.Rendering.OpenGL.Raw.APPLE.FlushBufferRange
+    Graphics.Rendering.OpenGL.Raw.APPLE.ObjectPurgeable
+    Graphics.Rendering.OpenGL.Raw.APPLE.RGB422
+    Graphics.Rendering.OpenGL.Raw.APPLE.RowBytes
+    Graphics.Rendering.OpenGL.Raw.APPLE.SpecularVector
+    Graphics.Rendering.OpenGL.Raw.APPLE.TextureRange
+    Graphics.Rendering.OpenGL.Raw.APPLE.TransformHint
     Graphics.Rendering.OpenGL.Raw.APPLE.VertexArrayObject
+    Graphics.Rendering.OpenGL.Raw.APPLE.VertexArrayRange
+    Graphics.Rendering.OpenGL.Raw.APPLE.VertexProgramEvaluators
+    Graphics.Rendering.OpenGL.Raw.APPLE.YCbCr422
     Graphics.Rendering.OpenGL.Raw.ARB
+    Graphics.Rendering.OpenGL.Raw.ARB.BaseInstance
+    Graphics.Rendering.OpenGL.Raw.ARB.BindlessTexture
     Graphics.Rendering.OpenGL.Raw.ARB.BlendFuncExtended
+    Graphics.Rendering.OpenGL.Raw.ARB.BufferStorage
+    Graphics.Rendering.OpenGL.Raw.ARB.CLEvent
+    Graphics.Rendering.OpenGL.Raw.ARB.ClearBufferObject
+    Graphics.Rendering.OpenGL.Raw.ARB.ClearTexture
+    Graphics.Rendering.OpenGL.Raw.ARB.ClipControl
     Graphics.Rendering.OpenGL.Raw.ARB.ColorBufferFloat
     Graphics.Rendering.OpenGL.Raw.ARB.Compatibility
+    Graphics.Rendering.OpenGL.Raw.ARB.CompressedTexturePixelStorage
     Graphics.Rendering.OpenGL.Raw.ARB.ComputeShader
+    Graphics.Rendering.OpenGL.Raw.ARB.ComputeVariableGroupSize
+    Graphics.Rendering.OpenGL.Raw.ARB.ConditionalRenderInverted
     Graphics.Rendering.OpenGL.Raw.ARB.CopyBuffer
-    Graphics.Rendering.OpenGL.Raw.ARB.CreateContextProfile
+    Graphics.Rendering.OpenGL.Raw.ARB.CopyImage
+    Graphics.Rendering.OpenGL.Raw.ARB.CullDistance
+    Graphics.Rendering.OpenGL.Raw.ARB.DebugOutput
     Graphics.Rendering.OpenGL.Raw.ARB.DepthBufferFloat
     Graphics.Rendering.OpenGL.Raw.ARB.DepthClamp
     Graphics.Rendering.OpenGL.Raw.ARB.DepthTexture
+    Graphics.Rendering.OpenGL.Raw.ARB.DirectStateAccess
     Graphics.Rendering.OpenGL.Raw.ARB.DrawBuffers
     Graphics.Rendering.OpenGL.Raw.ARB.DrawBuffersBlend
     Graphics.Rendering.OpenGL.Raw.ARB.DrawElementsBaseVertex
     Graphics.Rendering.OpenGL.Raw.ARB.DrawIndirect
     Graphics.Rendering.OpenGL.Raw.ARB.DrawInstanced
     Graphics.Rendering.OpenGL.Raw.ARB.ES2Compatibility
+    Graphics.Rendering.OpenGL.Raw.ARB.ES31Compatibility
     Graphics.Rendering.OpenGL.Raw.ARB.ES3Compatibility
+    Graphics.Rendering.OpenGL.Raw.ARB.EnhancedLayouts
+    Graphics.Rendering.OpenGL.Raw.ARB.ExplicitUniformLocation
     Graphics.Rendering.OpenGL.Raw.ARB.FragmentProgram
     Graphics.Rendering.OpenGL.Raw.ARB.FragmentShader
     Graphics.Rendering.OpenGL.Raw.ARB.FramebufferNoAttachments
-    Graphics.Rendering.OpenGL.Raw.ARB.FramebufferObject
+    Graphics.Rendering.OpenGL.Raw.ARB.FramebufferObjectCompatibility
+    Graphics.Rendering.OpenGL.Raw.ARB.FramebufferObjectCore
     Graphics.Rendering.OpenGL.Raw.ARB.FramebufferSRGB
     Graphics.Rendering.OpenGL.Raw.ARB.GPUShader5
     Graphics.Rendering.OpenGL.Raw.ARB.GPUShaderFP64
     Graphics.Rendering.OpenGL.Raw.ARB.GeometryShader4
     Graphics.Rendering.OpenGL.Raw.ARB.GetProgramBinary
+    Graphics.Rendering.OpenGL.Raw.ARB.GetTextureSubImage
     Graphics.Rendering.OpenGL.Raw.ARB.HalfFloatPixel
     Graphics.Rendering.OpenGL.Raw.ARB.HalfFloatVertex
+    Graphics.Rendering.OpenGL.Raw.ARB.ImagingCompatibility
+    Graphics.Rendering.OpenGL.Raw.ARB.ImagingCore
+    Graphics.Rendering.OpenGL.Raw.ARB.IndirectParameters
     Graphics.Rendering.OpenGL.Raw.ARB.InstancedArrays
+    Graphics.Rendering.OpenGL.Raw.ARB.InternalformatQuery
+    Graphics.Rendering.OpenGL.Raw.ARB.InternalformatQuery2
+    Graphics.Rendering.OpenGL.Raw.ARB.InvalidateSubdata
+    Graphics.Rendering.OpenGL.Raw.ARB.MapBufferAlignment
     Graphics.Rendering.OpenGL.Raw.ARB.MapBufferRange
     Graphics.Rendering.OpenGL.Raw.ARB.MatrixPalette
+    Graphics.Rendering.OpenGL.Raw.ARB.MultiBind
+    Graphics.Rendering.OpenGL.Raw.ARB.MultiDrawIndirect
     Graphics.Rendering.OpenGL.Raw.ARB.Multisample
     Graphics.Rendering.OpenGL.Raw.ARB.Multitexture
     Graphics.Rendering.OpenGL.Raw.ARB.OcclusionQuery
     Graphics.Rendering.OpenGL.Raw.ARB.OcclusionQuery2
+    Graphics.Rendering.OpenGL.Raw.ARB.PipelineStatisticsQuery
     Graphics.Rendering.OpenGL.Raw.ARB.PixelBufferObject
     Graphics.Rendering.OpenGL.Raw.ARB.PointParameters
     Graphics.Rendering.OpenGL.Raw.ARB.PointSprite
+    Graphics.Rendering.OpenGL.Raw.ARB.ProgramInterfaceQuery
     Graphics.Rendering.OpenGL.Raw.ARB.ProvokingVertex
     Graphics.Rendering.OpenGL.Raw.ARB.QueryBufferObject
+    Graphics.Rendering.OpenGL.Raw.ARB.RobustnessCompatibility
+    Graphics.Rendering.OpenGL.Raw.ARB.RobustnessCore
     Graphics.Rendering.OpenGL.Raw.ARB.SampleShading
     Graphics.Rendering.OpenGL.Raw.ARB.SamplerObjects
     Graphics.Rendering.OpenGL.Raw.ARB.SeamlessCubeMap
+    Graphics.Rendering.OpenGL.Raw.ARB.SeamlessCubemapPerTexture
     Graphics.Rendering.OpenGL.Raw.ARB.SeparateShaderObjects
     Graphics.Rendering.OpenGL.Raw.ARB.ShaderAtomicCounters
+    Graphics.Rendering.OpenGL.Raw.ARB.ShaderImageLoadStore
     Graphics.Rendering.OpenGL.Raw.ARB.ShaderObjects
     Graphics.Rendering.OpenGL.Raw.ARB.ShaderStorageBufferObject
     Graphics.Rendering.OpenGL.Raw.ARB.ShaderSubroutine
@@ -106,40 +172,73 @@
     Graphics.Rendering.OpenGL.Raw.ARB.ShadingLanguageInclude
     Graphics.Rendering.OpenGL.Raw.ARB.Shadow
     Graphics.Rendering.OpenGL.Raw.ARB.ShadowAmbient
+    Graphics.Rendering.OpenGL.Raw.ARB.SparseBuffer
+    Graphics.Rendering.OpenGL.Raw.ARB.SparseTexture
+    Graphics.Rendering.OpenGL.Raw.ARB.StencilTexturing
     Graphics.Rendering.OpenGL.Raw.ARB.Sync
     Graphics.Rendering.OpenGL.Raw.ARB.TessellationShader
+    Graphics.Rendering.OpenGL.Raw.ARB.TextureBarrier
     Graphics.Rendering.OpenGL.Raw.ARB.TextureBorderClamp
     Graphics.Rendering.OpenGL.Raw.ARB.TextureBufferObject
+    Graphics.Rendering.OpenGL.Raw.ARB.TextureBufferObjectRGB32
+    Graphics.Rendering.OpenGL.Raw.ARB.TextureBufferRange
     Graphics.Rendering.OpenGL.Raw.ARB.TextureCompression
     Graphics.Rendering.OpenGL.Raw.ARB.TextureCompressionBPTC
     Graphics.Rendering.OpenGL.Raw.ARB.TextureCompressionRGTC
     Graphics.Rendering.OpenGL.Raw.ARB.TextureCubeMap
     Graphics.Rendering.OpenGL.Raw.ARB.TextureCubeMapArray
-    Graphics.Rendering.OpenGL.Raw.ARB.TextureEnvAdd
     Graphics.Rendering.OpenGL.Raw.ARB.TextureEnvCombine
-    Graphics.Rendering.OpenGL.Raw.ARB.TextureEnvCrossbar
     Graphics.Rendering.OpenGL.Raw.ARB.TextureEnvDot3
     Graphics.Rendering.OpenGL.Raw.ARB.TextureFloat
     Graphics.Rendering.OpenGL.Raw.ARB.TextureGather
+    Graphics.Rendering.OpenGL.Raw.ARB.TextureMirrorClampToEdge
     Graphics.Rendering.OpenGL.Raw.ARB.TextureMirroredRepeat
     Graphics.Rendering.OpenGL.Raw.ARB.TextureMultisample
     Graphics.Rendering.OpenGL.Raw.ARB.TextureRG
     Graphics.Rendering.OpenGL.Raw.ARB.TextureRGB10A2UI
     Graphics.Rendering.OpenGL.Raw.ARB.TextureRectangle
+    Graphics.Rendering.OpenGL.Raw.ARB.TextureStencil8
+    Graphics.Rendering.OpenGL.Raw.ARB.TextureStorage
+    Graphics.Rendering.OpenGL.Raw.ARB.TextureStorageMultisample
     Graphics.Rendering.OpenGL.Raw.ARB.TextureSwizzle
+    Graphics.Rendering.OpenGL.Raw.ARB.TextureView
     Graphics.Rendering.OpenGL.Raw.ARB.TimerQuery
     Graphics.Rendering.OpenGL.Raw.ARB.TransformFeedback2
     Graphics.Rendering.OpenGL.Raw.ARB.TransformFeedback3
+    Graphics.Rendering.OpenGL.Raw.ARB.TransformFeedbackInstanced
+    Graphics.Rendering.OpenGL.Raw.ARB.TransformFeedbackOverflowQuery
     Graphics.Rendering.OpenGL.Raw.ARB.TransposeMatrix
     Graphics.Rendering.OpenGL.Raw.ARB.UniformBufferObject
+    Graphics.Rendering.OpenGL.Raw.ARB.VertexArrayBGRA
     Graphics.Rendering.OpenGL.Raw.ARB.VertexArrayObject
     Graphics.Rendering.OpenGL.Raw.ARB.VertexAttrib64Bit
+    Graphics.Rendering.OpenGL.Raw.ARB.VertexAttribBinding
     Graphics.Rendering.OpenGL.Raw.ARB.VertexBlend
     Graphics.Rendering.OpenGL.Raw.ARB.VertexBufferObject
     Graphics.Rendering.OpenGL.Raw.ARB.VertexProgram
     Graphics.Rendering.OpenGL.Raw.ARB.VertexShader
-    Graphics.Rendering.OpenGL.Raw.ARB.VertexType2101010Rev
+    Graphics.Rendering.OpenGL.Raw.ARB.VertexType10f11f11fRev
+    Graphics.Rendering.OpenGL.Raw.ARB.VertexType2101010RevCompatibility
+    Graphics.Rendering.OpenGL.Raw.ARB.VertexType2101010RevCore
+    Graphics.Rendering.OpenGL.Raw.ARB.ViewportArray
     Graphics.Rendering.OpenGL.Raw.ARB.WindowPos
+    Graphics.Rendering.OpenGL.Raw.ATI
+    Graphics.Rendering.OpenGL.Raw.ATI.DrawBuffers
+    Graphics.Rendering.OpenGL.Raw.ATI.ElementArray
+    Graphics.Rendering.OpenGL.Raw.ATI.EnvmapBumpmap
+    Graphics.Rendering.OpenGL.Raw.ATI.FragmentShader
+    Graphics.Rendering.OpenGL.Raw.ATI.MapObjectBuffer
+    Graphics.Rendering.OpenGL.Raw.ATI.Meminfo
+    Graphics.Rendering.OpenGL.Raw.ATI.PNTriangles
+    Graphics.Rendering.OpenGL.Raw.ATI.PixelFormatFloat
+    Graphics.Rendering.OpenGL.Raw.ATI.SeparateStencil
+    Graphics.Rendering.OpenGL.Raw.ATI.TextFragmentShader
+    Graphics.Rendering.OpenGL.Raw.ATI.TextureEnvCombine3
+    Graphics.Rendering.OpenGL.Raw.ATI.TextureFloat
+    Graphics.Rendering.OpenGL.Raw.ATI.TextureMirrorOnce
+    Graphics.Rendering.OpenGL.Raw.ATI.VertexArrayObject
+    Graphics.Rendering.OpenGL.Raw.ATI.VertexAttribArrayObject
+    Graphics.Rendering.OpenGL.Raw.ATI.VertexStreams
     Graphics.Rendering.OpenGL.Raw.Compatibility30
     Graphics.Rendering.OpenGL.Raw.Compatibility31
     Graphics.Rendering.OpenGL.Raw.Compatibility32
@@ -177,15 +276,18 @@
     Graphics.Rendering.OpenGL.Raw.EXT.CoordinateFrame
     Graphics.Rendering.OpenGL.Raw.EXT.CopyTexture
     Graphics.Rendering.OpenGL.Raw.EXT.CullVertex
+    Graphics.Rendering.OpenGL.Raw.EXT.DebugLabel
+    Graphics.Rendering.OpenGL.Raw.EXT.DebugMarker
     Graphics.Rendering.OpenGL.Raw.EXT.DepthBoundsTest
     Graphics.Rendering.OpenGL.Raw.EXT.DirectStateAccess
     Graphics.Rendering.OpenGL.Raw.EXT.DrawBuffers2
+    Graphics.Rendering.OpenGL.Raw.EXT.DrawInstanced
     Graphics.Rendering.OpenGL.Raw.EXT.DrawRangeElements
     Graphics.Rendering.OpenGL.Raw.EXT.FogCoord
     Graphics.Rendering.OpenGL.Raw.EXT.FourTwoTwoPixels
-    Graphics.Rendering.OpenGL.Raw.EXT.FragmentLighting
     Graphics.Rendering.OpenGL.Raw.EXT.FramebufferBlit
     Graphics.Rendering.OpenGL.Raw.EXT.FramebufferMultisample
+    Graphics.Rendering.OpenGL.Raw.EXT.FramebufferMultisampleBlitScaled
     Graphics.Rendering.OpenGL.Raw.EXT.FramebufferObject
     Graphics.Rendering.OpenGL.Raw.EXT.FramebufferSRGB
     Graphics.Rendering.OpenGL.Raw.EXT.GPUProgramParameters
@@ -202,14 +304,18 @@
     Graphics.Rendering.OpenGL.Raw.EXT.PackedFloat
     Graphics.Rendering.OpenGL.Raw.EXT.PackedPixels
     Graphics.Rendering.OpenGL.Raw.EXT.PalettedTexture
+    Graphics.Rendering.OpenGL.Raw.EXT.PixelBufferObject
     Graphics.Rendering.OpenGL.Raw.EXT.PixelTransform
     Graphics.Rendering.OpenGL.Raw.EXT.PointParameters
     Graphics.Rendering.OpenGL.Raw.EXT.PolygonOffset
+    Graphics.Rendering.OpenGL.Raw.EXT.PolygonOffsetClamp
     Graphics.Rendering.OpenGL.Raw.EXT.ProvokingVertex
+    Graphics.Rendering.OpenGL.Raw.EXT.RasterMultisample
     Graphics.Rendering.OpenGL.Raw.EXT.RescaleNormal
-    Graphics.Rendering.OpenGL.Raw.EXT.SceneMarker
     Graphics.Rendering.OpenGL.Raw.EXT.SecondaryColor
+    Graphics.Rendering.OpenGL.Raw.EXT.SeparateShaderObjects
     Graphics.Rendering.OpenGL.Raw.EXT.SeparateSpecularColor
+    Graphics.Rendering.OpenGL.Raw.EXT.ShaderImageLoadStore
     Graphics.Rendering.OpenGL.Raw.EXT.SharedTexturePalette
     Graphics.Rendering.OpenGL.Raw.EXT.StencilClearTag
     Graphics.Rendering.OpenGL.Raw.EXT.StencilTwoSide
@@ -218,73 +324,240 @@
     Graphics.Rendering.OpenGL.Raw.EXT.Texture
     Graphics.Rendering.OpenGL.Raw.EXT.Texture3D
     Graphics.Rendering.OpenGL.Raw.EXT.TextureArray
-    Graphics.Rendering.OpenGL.Raw.EXT.TextureCompressionDXT1
+    Graphics.Rendering.OpenGL.Raw.EXT.TextureBufferObject
     Graphics.Rendering.OpenGL.Raw.EXT.TextureCompressionLATC
     Graphics.Rendering.OpenGL.Raw.EXT.TextureCompressionRGTC
     Graphics.Rendering.OpenGL.Raw.EXT.TextureCompressionS3TC
-    Graphics.Rendering.OpenGL.Raw.EXT.TextureEnvAdd
+    Graphics.Rendering.OpenGL.Raw.EXT.TextureCubeMap
     Graphics.Rendering.OpenGL.Raw.EXT.TextureEnvCombine
     Graphics.Rendering.OpenGL.Raw.EXT.TextureEnvDot3
     Graphics.Rendering.OpenGL.Raw.EXT.TextureFilterAnisotropic
+    Graphics.Rendering.OpenGL.Raw.EXT.TextureFilterMinmax
     Graphics.Rendering.OpenGL.Raw.EXT.TextureInteger
     Graphics.Rendering.OpenGL.Raw.EXT.TextureLODBias
     Graphics.Rendering.OpenGL.Raw.EXT.TextureMirrorClamp
     Graphics.Rendering.OpenGL.Raw.EXT.TextureObject
     Graphics.Rendering.OpenGL.Raw.EXT.TexturePerturbNormal
+    Graphics.Rendering.OpenGL.Raw.EXT.TextureSNorm
     Graphics.Rendering.OpenGL.Raw.EXT.TextureSRGB
+    Graphics.Rendering.OpenGL.Raw.EXT.TextureSRGBDecode
     Graphics.Rendering.OpenGL.Raw.EXT.TextureSharedExponent
     Graphics.Rendering.OpenGL.Raw.EXT.TextureSwizzle
     Graphics.Rendering.OpenGL.Raw.EXT.TimerQuery
     Graphics.Rendering.OpenGL.Raw.EXT.TransformFeedback
     Graphics.Rendering.OpenGL.Raw.EXT.VertexArray
+    Graphics.Rendering.OpenGL.Raw.EXT.VertexArrayBGRA
+    Graphics.Rendering.OpenGL.Raw.EXT.VertexAttrib64Bit
     Graphics.Rendering.OpenGL.Raw.EXT.VertexShader
     Graphics.Rendering.OpenGL.Raw.EXT.VertexWeighting
+    Graphics.Rendering.OpenGL.Raw.EXT.X11SyncObject
     Graphics.Rendering.OpenGL.Raw.Functions
+    Graphics.Rendering.OpenGL.Raw.GREMEDY
+    Graphics.Rendering.OpenGL.Raw.GREMEDY.FrameTerminator
+    Graphics.Rendering.OpenGL.Raw.GREMEDY.StringMarker
     Graphics.Rendering.OpenGL.Raw.GetProcAddress
+    Graphics.Rendering.OpenGL.Raw.HP
+    Graphics.Rendering.OpenGL.Raw.HP.ConvolutionBorderModes
+    Graphics.Rendering.OpenGL.Raw.HP.ImageTransform
+    Graphics.Rendering.OpenGL.Raw.HP.OcclusionTest
+    Graphics.Rendering.OpenGL.Raw.HP.TextureLighting
+    Graphics.Rendering.OpenGL.Raw.IBM
+    Graphics.Rendering.OpenGL.Raw.IBM.CullVertex
+    Graphics.Rendering.OpenGL.Raw.IBM.MultimodeDrawArrays
+    Graphics.Rendering.OpenGL.Raw.IBM.RasterposClip
+    Graphics.Rendering.OpenGL.Raw.IBM.StaticData
+    Graphics.Rendering.OpenGL.Raw.IBM.TextureMirroredRepeat
+    Graphics.Rendering.OpenGL.Raw.IBM.VertexArrayLists
+    Graphics.Rendering.OpenGL.Raw.INGR
+    Graphics.Rendering.OpenGL.Raw.INGR.BlendFuncSeparate
+    Graphics.Rendering.OpenGL.Raw.INGR.ColorClamp
+    Graphics.Rendering.OpenGL.Raw.INGR.InterlaceRead
+    Graphics.Rendering.OpenGL.Raw.INTEL
+    Graphics.Rendering.OpenGL.Raw.INTEL.MapTexture
+    Graphics.Rendering.OpenGL.Raw.INTEL.ParallelArrays
+    Graphics.Rendering.OpenGL.Raw.INTEL.PerformanceQuery
+    Graphics.Rendering.OpenGL.Raw.KHR
+    Graphics.Rendering.OpenGL.Raw.KHR.BlendEquationAdvanced
+    Graphics.Rendering.OpenGL.Raw.KHR.BlendEquationAdvancedCoherent
+    Graphics.Rendering.OpenGL.Raw.KHR.ContextFlushControl
+    Graphics.Rendering.OpenGL.Raw.KHR.DebugCompatibility
+    Graphics.Rendering.OpenGL.Raw.KHR.DebugCore
+    Graphics.Rendering.OpenGL.Raw.KHR.Robustness
+    Graphics.Rendering.OpenGL.Raw.KHR.TextureCompressionASTCHDR
+    Graphics.Rendering.OpenGL.Raw.KHR.TextureCompressionASTCLDR
+    Graphics.Rendering.OpenGL.Raw.MESA
+    Graphics.Rendering.OpenGL.Raw.MESA.PackInvert
+    Graphics.Rendering.OpenGL.Raw.MESA.ResizeBuffers
+    Graphics.Rendering.OpenGL.Raw.MESA.WindowPos
+    Graphics.Rendering.OpenGL.Raw.MESA.YCbCrTexture
+    Graphics.Rendering.OpenGL.Raw.MESAX
+    Graphics.Rendering.OpenGL.Raw.MESAX.TextureStack
     Graphics.Rendering.OpenGL.Raw.NV
+    Graphics.Rendering.OpenGL.Raw.NV.BindlessMultiDrawIndirect
+    Graphics.Rendering.OpenGL.Raw.NV.BindlessMultiDrawIndirectCount
+    Graphics.Rendering.OpenGL.Raw.NV.BindlessTexture
+    Graphics.Rendering.OpenGL.Raw.NV.BlendEquationAdvanced
+    Graphics.Rendering.OpenGL.Raw.NV.BlendEquationAdvancedCoherent
+    Graphics.Rendering.OpenGL.Raw.NV.ComputeProgram5
     Graphics.Rendering.OpenGL.Raw.NV.ConditionalRender
+    Graphics.Rendering.OpenGL.Raw.NV.ConservativeRaster
     Graphics.Rendering.OpenGL.Raw.NV.CopyDepthToColor
+    Graphics.Rendering.OpenGL.Raw.NV.CopyImage
+    Graphics.Rendering.OpenGL.Raw.NV.DeepTexture3D
     Graphics.Rendering.OpenGL.Raw.NV.DepthBufferFloat
     Graphics.Rendering.OpenGL.Raw.NV.DepthClamp
+    Graphics.Rendering.OpenGL.Raw.NV.DrawTexture
+    Graphics.Rendering.OpenGL.Raw.NV.Evaluators
     Graphics.Rendering.OpenGL.Raw.NV.ExplicitMultisample
     Graphics.Rendering.OpenGL.Raw.NV.Fence
+    Graphics.Rendering.OpenGL.Raw.NV.FillRectangle
     Graphics.Rendering.OpenGL.Raw.NV.FloatBuffer
     Graphics.Rendering.OpenGL.Raw.NV.FogDistance
+    Graphics.Rendering.OpenGL.Raw.NV.FragmentCoverageToColor
     Graphics.Rendering.OpenGL.Raw.NV.FragmentProgram
     Graphics.Rendering.OpenGL.Raw.NV.FragmentProgram2
+    Graphics.Rendering.OpenGL.Raw.NV.FramebufferMixedSamples
     Graphics.Rendering.OpenGL.Raw.NV.FramebufferMultisampleCoverage
     Graphics.Rendering.OpenGL.Raw.NV.GPUProgram4
+    Graphics.Rendering.OpenGL.Raw.NV.GPUProgram5
+    Graphics.Rendering.OpenGL.Raw.NV.GPUShader5
     Graphics.Rendering.OpenGL.Raw.NV.GeometryProgram4
     Graphics.Rendering.OpenGL.Raw.NV.HalfFloat
+    Graphics.Rendering.OpenGL.Raw.NV.InternalformatSampleQuery
     Graphics.Rendering.OpenGL.Raw.NV.LightMaxExponent
+    Graphics.Rendering.OpenGL.Raw.NV.MultisampleCoverage
     Graphics.Rendering.OpenGL.Raw.NV.MultisampleFilterHint
     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.PathRenderingCompatibility
+    Graphics.Rendering.OpenGL.Raw.NV.PathRenderingCore
+    Graphics.Rendering.OpenGL.Raw.NV.PathRenderingSharedEdge
     Graphics.Rendering.OpenGL.Raw.NV.PixelDataRange
     Graphics.Rendering.OpenGL.Raw.NV.PointSprite
     Graphics.Rendering.OpenGL.Raw.NV.PresentVideo
     Graphics.Rendering.OpenGL.Raw.NV.PrimitiveRestart
     Graphics.Rendering.OpenGL.Raw.NV.RegisterCombiners
     Graphics.Rendering.OpenGL.Raw.NV.RegisterCombiners2
+    Graphics.Rendering.OpenGL.Raw.NV.SampleLocations
+    Graphics.Rendering.OpenGL.Raw.NV.ShaderBufferLoad
+    Graphics.Rendering.OpenGL.Raw.NV.ShaderBufferStore
+    Graphics.Rendering.OpenGL.Raw.NV.ShaderThreadGroup
+    Graphics.Rendering.OpenGL.Raw.NV.TessellationProgram5
     Graphics.Rendering.OpenGL.Raw.NV.TexgenEmboss
     Graphics.Rendering.OpenGL.Raw.NV.TexgenReflection
-    Graphics.Rendering.OpenGL.Raw.NV.TextureCompressionVTC
+    Graphics.Rendering.OpenGL.Raw.NV.TextureBarrier
     Graphics.Rendering.OpenGL.Raw.NV.TextureEnvCombine4
     Graphics.Rendering.OpenGL.Raw.NV.TextureExpandNormal
+    Graphics.Rendering.OpenGL.Raw.NV.TextureMultisample
     Graphics.Rendering.OpenGL.Raw.NV.TextureRectangle
     Graphics.Rendering.OpenGL.Raw.NV.TextureShader
     Graphics.Rendering.OpenGL.Raw.NV.TextureShader2
     Graphics.Rendering.OpenGL.Raw.NV.TextureShader3
     Graphics.Rendering.OpenGL.Raw.NV.TransformFeedback
     Graphics.Rendering.OpenGL.Raw.NV.TransformFeedback2
+    Graphics.Rendering.OpenGL.Raw.NV.UniformBufferUnifiedMemory
+    Graphics.Rendering.OpenGL.Raw.NV.VDPAUInterop
     Graphics.Rendering.OpenGL.Raw.NV.VertexArrayRange
     Graphics.Rendering.OpenGL.Raw.NV.VertexArrayRange2
+    Graphics.Rendering.OpenGL.Raw.NV.VertexAttribInteger64Bit
+    Graphics.Rendering.OpenGL.Raw.NV.VertexBufferUnifiedMemory
     Graphics.Rendering.OpenGL.Raw.NV.VertexProgram
     Graphics.Rendering.OpenGL.Raw.NV.VertexProgram2Option
     Graphics.Rendering.OpenGL.Raw.NV.VertexProgram3
     Graphics.Rendering.OpenGL.Raw.NV.VertexProgram4
+    Graphics.Rendering.OpenGL.Raw.NV.VideoCapture
+    Graphics.Rendering.OpenGL.Raw.NVX
+    Graphics.Rendering.OpenGL.Raw.NVX.ConditionalRender
+    Graphics.Rendering.OpenGL.Raw.NVX.GPUMemoryInfo
+    Graphics.Rendering.OpenGL.Raw.OES
+    Graphics.Rendering.OpenGL.Raw.OES.ByteCoordinates
+    Graphics.Rendering.OpenGL.Raw.OES.CompressedPalettedTexture
+    Graphics.Rendering.OpenGL.Raw.OES.FixedPoint
+    Graphics.Rendering.OpenGL.Raw.OES.QueryMatrix
+    Graphics.Rendering.OpenGL.Raw.OES.ReadFormat
+    Graphics.Rendering.OpenGL.Raw.OES.SinglePrecision
+    Graphics.Rendering.OpenGL.Raw.OML
+    Graphics.Rendering.OpenGL.Raw.OML.Interlace
+    Graphics.Rendering.OpenGL.Raw.OML.Resample
+    Graphics.Rendering.OpenGL.Raw.OML.Subsample
+    Graphics.Rendering.OpenGL.Raw.PGI
+    Graphics.Rendering.OpenGL.Raw.PGI.MiscHints
+    Graphics.Rendering.OpenGL.Raw.PGI.VertexHints
+    Graphics.Rendering.OpenGL.Raw.REND
+    Graphics.Rendering.OpenGL.Raw.REND.ScreenCoordinates
+    Graphics.Rendering.OpenGL.Raw.S3
+    Graphics.Rendering.OpenGL.Raw.S3.S3TC
+    Graphics.Rendering.OpenGL.Raw.SGI
+    Graphics.Rendering.OpenGL.Raw.SGI.ColorMatrix
+    Graphics.Rendering.OpenGL.Raw.SGI.ColorTable
+    Graphics.Rendering.OpenGL.Raw.SGI.TextureColorTable
+    Graphics.Rendering.OpenGL.Raw.SGIS
+    Graphics.Rendering.OpenGL.Raw.SGIS.DetailTexture
+    Graphics.Rendering.OpenGL.Raw.SGIS.FogFunction
+    Graphics.Rendering.OpenGL.Raw.SGIS.GenerateMipmap
+    Graphics.Rendering.OpenGL.Raw.SGIS.Multisample
+    Graphics.Rendering.OpenGL.Raw.SGIS.PixelTexture
+    Graphics.Rendering.OpenGL.Raw.SGIS.PointLineTexgen
+    Graphics.Rendering.OpenGL.Raw.SGIS.PointParameters
+    Graphics.Rendering.OpenGL.Raw.SGIS.SharpenTexture
+    Graphics.Rendering.OpenGL.Raw.SGIS.Texture4D
+    Graphics.Rendering.OpenGL.Raw.SGIS.TextureBorderClamp
+    Graphics.Rendering.OpenGL.Raw.SGIS.TextureColorMask
+    Graphics.Rendering.OpenGL.Raw.SGIS.TextureEdgeClamp
+    Graphics.Rendering.OpenGL.Raw.SGIS.TextureFilter4
+    Graphics.Rendering.OpenGL.Raw.SGIS.TextureLOD
+    Graphics.Rendering.OpenGL.Raw.SGIS.TextureSelect
+    Graphics.Rendering.OpenGL.Raw.SGIX
+    Graphics.Rendering.OpenGL.Raw.SGIX.Async
+    Graphics.Rendering.OpenGL.Raw.SGIX.AsyncHistogram
+    Graphics.Rendering.OpenGL.Raw.SGIX.AsyncPixel
+    Graphics.Rendering.OpenGL.Raw.SGIX.BlendAlphaMinmax
+    Graphics.Rendering.OpenGL.Raw.SGIX.CalligraphicFragment
+    Graphics.Rendering.OpenGL.Raw.SGIX.Clipmap
+    Graphics.Rendering.OpenGL.Raw.SGIX.ConvolutionAccuracy
+    Graphics.Rendering.OpenGL.Raw.SGIX.DepthTexture
+    Graphics.Rendering.OpenGL.Raw.SGIX.FlushRaster
+    Graphics.Rendering.OpenGL.Raw.SGIX.FogOffset
+    Graphics.Rendering.OpenGL.Raw.SGIX.FragmentLighting
+    Graphics.Rendering.OpenGL.Raw.SGIX.Framezoom
+    Graphics.Rendering.OpenGL.Raw.SGIX.IglooInterface
+    Graphics.Rendering.OpenGL.Raw.SGIX.Instruments
+    Graphics.Rendering.OpenGL.Raw.SGIX.Interlace
+    Graphics.Rendering.OpenGL.Raw.SGIX.IrInstrument1
+    Graphics.Rendering.OpenGL.Raw.SGIX.ListPriority
+    Graphics.Rendering.OpenGL.Raw.SGIX.PixelTexture
+    Graphics.Rendering.OpenGL.Raw.SGIX.PixelTiles
+    Graphics.Rendering.OpenGL.Raw.SGIX.PolynomialFFD
+    Graphics.Rendering.OpenGL.Raw.SGIX.ReferencePlane
+    Graphics.Rendering.OpenGL.Raw.SGIX.Resample
+    Graphics.Rendering.OpenGL.Raw.SGIX.ScalebiasHint
+    Graphics.Rendering.OpenGL.Raw.SGIX.Shadow
+    Graphics.Rendering.OpenGL.Raw.SGIX.ShadowAmbient
+    Graphics.Rendering.OpenGL.Raw.SGIX.Sprite
+    Graphics.Rendering.OpenGL.Raw.SGIX.Subsample
+    Graphics.Rendering.OpenGL.Raw.SGIX.TagSampleBuffer
+    Graphics.Rendering.OpenGL.Raw.SGIX.TextureAddEnv
+    Graphics.Rendering.OpenGL.Raw.SGIX.TextureCoordinateClamp
+    Graphics.Rendering.OpenGL.Raw.SGIX.TextureLODBias
+    Graphics.Rendering.OpenGL.Raw.SGIX.TextureMultiBuffer
+    Graphics.Rendering.OpenGL.Raw.SGIX.TextureScaleBias
+    Graphics.Rendering.OpenGL.Raw.SGIX.VertexPreclip
+    Graphics.Rendering.OpenGL.Raw.SGIX.YCrCb
+    Graphics.Rendering.OpenGL.Raw.SGIX.YCrCbA
+    Graphics.Rendering.OpenGL.Raw.SUN
+    Graphics.Rendering.OpenGL.Raw.SUN.ConvolutionBorderModes
+    Graphics.Rendering.OpenGL.Raw.SUN.GlobalAlpha
+    Graphics.Rendering.OpenGL.Raw.SUN.MeshArray
+    Graphics.Rendering.OpenGL.Raw.SUN.SliceAccum
+    Graphics.Rendering.OpenGL.Raw.SUN.TriangleList
+    Graphics.Rendering.OpenGL.Raw.SUN.Vertex
+    Graphics.Rendering.OpenGL.Raw.SUNX
+    Graphics.Rendering.OpenGL.Raw.SUNX.ConstantData
+    Graphics.Rendering.OpenGL.Raw.ThreeDFX
+    Graphics.Rendering.OpenGL.Raw.ThreeDFX.Multisample
+    Graphics.Rendering.OpenGL.Raw.ThreeDFX.Tbuffer
+    Graphics.Rendering.OpenGL.Raw.ThreeDFX.TextureCompressionFXT1
     Graphics.Rendering.OpenGL.Raw.Tokens
     Graphics.Rendering.OpenGL.Raw.Types
     Graphics.Rendering.OpenGL.Raw.Version10
@@ -295,6 +568,9 @@
     Graphics.Rendering.OpenGL.Raw.Version15
     Graphics.Rendering.OpenGL.Raw.Version20
     Graphics.Rendering.OpenGL.Raw.Version21
+    Graphics.Rendering.OpenGL.Raw.WIN
+    Graphics.Rendering.OpenGL.Raw.WIN.PhongShading
+    Graphics.Rendering.OpenGL.Raw.WIN.SpecularFog
   c-sources:
     cbits/HsOpenGLRaw.c
   hs-source-dirs: src
diff --git a/RegistryProcessor/RegistryProcessor.cabal b/RegistryProcessor/RegistryProcessor.cabal
--- a/RegistryProcessor/RegistryProcessor.cabal
+++ b/RegistryProcessor/RegistryProcessor.cabal
@@ -21,7 +21,7 @@
 executable RegistryProcessor
   main-is: Main.hs
   other-modules: DeclarationParser ManPages MangledRegistry Registry
-  build-depends: base >= 3 && < 5, containers >= 0.5 && < 0.6, hxt >= 9.3
+  build-depends: base >= 3 && < 5, containers >= 0.5 && < 0.6, hxt >= 9.3, directory, filepath
   hs-source-dirs: src
   default-language: Haskell2010
   ghc-options: -Wall
diff --git a/RegistryProcessor/src/Main.hs b/RegistryProcessor/src/Main.hs
--- a/RegistryProcessor/src/Main.hs
+++ b/RegistryProcessor/src/Main.hs
@@ -6,188 +6,272 @@
 import qualified Data.Map as M
 import qualified Data.Maybe as DM
 import qualified Data.Set as S
-import qualified System.Console.GetOpt as G
+import qualified System.Directory as D
 import qualified System.Environment as E
+import qualified System.FilePath as F
+import qualified System.IO as SI
 import MangledRegistry
 import ManPages
 
-data Option
-  = PrintFeature
-  | PrintTokens
-  | PrintFunctions
-  | UseApi API
-  | UseVersion Version
-  | UseProfile ProfileName
-  deriving Eq
-
-options :: [G.OptDescr Option]
-options =
-  [ G.Option ['F'] ["print-feature"] (G.NoArg PrintFeature) "print feature"
-  , G.Option ['t'] ["print-tokens"] (G.NoArg PrintTokens) "print tokens"
-  , G.Option ['f'] ["print-functions"] (G.NoArg PrintFunctions) "print functions"
-  , G.Option ['a'] ["api"] (G.ReqArg (UseApi . API) "API") "extract features for API (default: gl)"
-  , G.Option ['v'] ["version"] (G.ReqArg (UseVersion . read) "VERSION") "extract features for version (default: 4.5)"
-  , G.Option ['p'] ["profile"] (G.ReqArg (UseProfile . ProfileName) "PROFILE") "extract features for profile (default: compatibility)" ]
-
-getPaths :: IO ([Option], FilePath)
-getPaths = do
-  args <- E.getArgs
-  case G.getOpt G.Permute options args of
-    (opts, [path], []) -> return (opts, path)
-    (_, _, errs) -> do
-       n <- E.getProgName
-       let header = "Usage: " ++ n ++ " [OPTION]... file"
-       ioError (userError (concat errs ++ G.usageInfo header options))
-
 main :: IO ()
 main = do
-  (opts, path) <- getPaths
-  let api = head ([ a | UseApi a <- opts ] ++ [ API "gl" ])
-      version = head ([ v | UseVersion v <- opts ] ++ [ read "4.5" ])
-      profile = head ([ p | UseProfile p <- opts ] ++ [ ProfileName "compatibility" ])
-  res <- fmap parseRegistry $ readFile path
+  [registryPath] <- E.getArgs
+  let api = API "gl"
+  res <- fmap parseRegistry $ readFile registryPath
   case res of
-    Left msg -> putStrLn msg
+    Left msg -> SI.hPutStrLn SI.stderr msg
     Right registry -> do
-      CM.when (PrintFeature `elem` opts) $ do
-        let modName = "Graphics.Rendering.OpenGL.Raw." ++
-                      capitalize (unProfileName profile) ++
-                      show (major version) ++ show (minor version)
-        putStrLn "--------------------------------------------------------------------------------"
-        putStrLn "-- |"
-        putStrLn $ "-- Module      :  " ++ modName
-        putStrLn "-- Copyright   :  (c) Sven Panne 2015"
-        putStrLn "-- License     :  BSD3"
-        putStrLn "--"
-        putStrLn "-- Maintainer  :  Sven Panne <svenpanne@gmail.com>"
-        putStrLn "-- Stability   :  stable"
-        putStrLn "-- Portability :  portable"
-        putStrLn "--"
-        putStrLn "--------------------------------------------------------------------------------"
-        putStrLn ""
-        let (ts,es,cs) = fixedGetTyEnCo api version profile registry
-        putStrLn $ "module "++ modName ++ " ("
-        CM.unless (null ts) $ do
-          putStrLn "  -- * Types"
-          putStr $ separate unTypeName ts
-          putStrLn $ if null es && null cs then "" else ","
-        CM.unless (null es) $ do
-          putStrLn "  -- * Enums"
-          putStr $ separate (unEnumName . enumName) es
-          putStrLn $ if null cs then "" else ","
-        CM.unless (null cs) $ do
-          putStrLn "  -- * Functions"
-          putStr $ separate (unCommandName . commandName) cs
-        putStrLn ""
-        putStrLn ") where"
-        putStrLn ""
-        putStrLn "import Graphics.Rendering.OpenGL.Raw.Types"
-        putStrLn "import Graphics.Rendering.OpenGL.Raw.Tokens"
-        putStrLn "import Graphics.Rendering.OpenGL.Raw.Functions"
-      CM.when (PrintTokens `elem` opts) $ do
-        putStrLn "--------------------------------------------------------------------------------"
-        putStrLn "-- |"
-        putStrLn "-- Module      :  Graphics.Rendering.OpenGL.Raw.Tokens"
-        putStrLn "-- Copyright   :  (c) Sven Panne 2015"
-        putStrLn "-- License     :  BSD3"
-        putStrLn "--"
-        putStrLn "-- Maintainer  :  Sven Panne <svenpanne@gmail.com>"
-        putStrLn "-- Stability   :  stable"
-        putStrLn "-- Portability :  portable"
-        putStrLn "--"
-        putStrLn "-- All enumeration tokens from the OpenGL registry, see"
-        putStrLn "-- <http://www.opengl.org/registry/>."
-        putStrLn "--"
-        putStrLn "--------------------------------------------------------------------------------"
-        putStrLn ""
-        putStrLn "module Graphics.Rendering.OpenGL.Raw.Tokens where"
-        putStrLn ""
-        putStrLn "import Graphics.Rendering.OpenGL.Raw.Types"
-        putStrLn ""
-        mapM_ (putStrLn . unlines . convertEnum)
-          [ e
-          | es <- M.elems (enums registry)
-          , e <- es
-          , api `matches` enumAPI e ]
-      CM.when (PrintFunctions `elem` opts) $ do
-        putStrLn "{-# LANGUAGE CPP #-}"
-        putStrLn "--------------------------------------------------------------------------------"
-        putStrLn "-- |"
-        putStrLn "-- Module      :  Graphics.Rendering.OpenGL.Raw.Functions"
-        putStrLn "-- Copyright   :  (c) Sven Panne 2015"
-        putStrLn "-- License     :  BSD3"
-        putStrLn "--"
-        putStrLn "-- Maintainer  :  Sven Panne <svenpanne@gmail.com>"
-        putStrLn "-- Stability   :  stable"
-        putStrLn "-- Portability :  portable"
-        putStrLn "--"
-        putStrLn "-- All raw functions from the OpenGL registry, see"
-        putStrLn "-- <http://www.opengl.org/registry/>."
-        putStrLn "--"
-        putStrLn "--------------------------------------------------------------------------------"
-        putStrLn ""
-        putStrLn "module Graphics.Rendering.OpenGL.Raw.Functions ("
-        putStrLn . separate unCommandName . M.keys . commands $registry
-        putStrLn ") where"
-        putStrLn ""
-        putStrLn "import Foreign.C.Types"
-        putStrLn "import Foreign.Marshal.Error ( throwIf )"
-        putStrLn "import Foreign.Ptr ( Ptr, FunPtr, nullFunPtr )"
-        putStrLn "import System.IO.Unsafe ( unsafePerformIO )"
-        putStrLn ""
-        putStrLn "import Graphics.Rendering.OpenGL.Raw.GetProcAddress ( getProcAddress )"
-        putStrLn "import Graphics.Rendering.OpenGL.Raw.Types"
-        putStrLn ""
-        putStrLn "getCommand :: String -> IO (FunPtr a)"
-        putStrLn "getCommand cmd ="
-        putStrLn "  throwIfNullFunPtr (\"unknown OpenGL command \" ++ cmd) $ getProcAddress cmd"
-        putStrLn ""
-        putStrLn "throwIfNullFunPtr :: String -> IO (FunPtr a) -> IO (FunPtr a)"
-        putStrLn "throwIfNullFunPtr = throwIf (== nullFunPtr) . const"
-        putStrLn ""
-        mapM_ (putStrLn . showCommand api) (M.elems (commands registry))
+      printTokens api registry
+      printFunctions api registry
+      printExtensions api registry
+      CM.forM_ ["1.0", "1.1", "1.2", "1.3", "1.4", "1.5", "2.0", "2.1"] $ \v ->
+        printFeature api (read v) (ProfileName "version") registry
+      CM.forM_ ["3.0", "3.1", "3.2", "3.3", "4.0", "4.1", "4.2", "4.3", "4.4", "4.5"] $ \v -> do
+        printFeature api (read v) (ProfileName "core") registry
+        printFeature api (read v) (ProfileName "compatibility") registry
 
+printFeature :: API -> Version -> ProfileName -> Registry -> IO ()
+printFeature api version profile registry = do
+  let relName = capitalize (unProfileName profile) ++
+                show (major version) ++ show (minor version)
+  printExtension Nothing [relName] $ fixedReplay api version profile registry
+
+printTokens :: API -> Registry -> IO ()
+printTokens api registry = do
+  let comment =
+        ["All enumeration tokens from the",
+         "<http://www.opengl.org/registry/ OpenGL registry>."]
+  startModule Nothing ["Tokens"] Nothing comment $ \moduleName h -> do
+    SI.hPutStrLn h $ "module " ++ moduleName ++ " where"
+    SI.hPutStrLn h ""
+    SI.hPutStrLn h "import Graphics.Rendering.OpenGL.Raw.Types"
+    SI.hPutStrLn h ""
+    mapM_ (SI.hPutStrLn h . unlines . convertEnum)
+      [ e
+      | es <- M.elems (enums registry)
+      , e <- es
+      , api `matches` enumAPI e ]
+
+printFunctions :: API -> Registry -> IO ()
+printFunctions api registry = do
+  let comment =
+        ["All raw functions from the",
+         "<http://www.opengl.org/registry/ OpenGL registry>."]
+  startModule Nothing ["Functions"] (Just "{-# LANGUAGE CPP #-}") comment $ \moduleName h -> do
+    SI.hPutStrLn h $ "module " ++ moduleName ++ " ("
+    SI.hPutStrLn h . separate unCommandName . M.keys . commands $registry
+    SI.hPutStrLn h ") where"
+    SI.hPutStrLn h ""
+    SI.hPutStrLn h "import Foreign.C.Types"
+    SI.hPutStrLn h "import Foreign.Marshal.Error ( throwIf )"
+    SI.hPutStrLn h "import Foreign.Ptr ( Ptr, FunPtr, nullFunPtr )"
+    SI.hPutStrLn h "import System.IO.Unsafe ( unsafePerformIO )"
+    SI.hPutStrLn h ""
+    SI.hPutStrLn h "import Graphics.Rendering.OpenGL.Raw.GetProcAddress ( getProcAddress )"
+    SI.hPutStrLn h "import Graphics.Rendering.OpenGL.Raw.Types"
+    SI.hPutStrLn h ""
+    SI.hPutStrLn h "getCommand :: String -> IO (FunPtr a)"
+    SI.hPutStrLn h "getCommand cmd ="
+    SI.hPutStrLn h "  throwIfNullFunPtr (\"unknown OpenGL command \" ++ cmd) $ getProcAddress cmd"
+    SI.hPutStrLn h ""
+    SI.hPutStrLn h "throwIfNullFunPtr :: String -> IO (FunPtr a) -> IO (FunPtr a)"
+    SI.hPutStrLn h "throwIfNullFunPtr = throwIf (== nullFunPtr) . const"
+    SI.hPutStrLn h ""
+    mapM_ (SI.hPutStrLn h . showCommand api) (M.elems (commands registry))
+
+printExtensions :: API -> Registry -> IO ()
+printExtensions api registry = do
+  -- only consider non-empty supported extensions/modifications for the given API
+  let supportedExtensions =
+        [ nameAndMods
+        | ext <- extensions registry
+        , api `supports` extensionSupported ext
+        , nameAndMods@(_,(_:_)) <- [nameAndModifications api ext] ]
+  CM.forM_ supportedExtensions $ \(n,mods) -> do
+    let profileAndModName =
+          if any isProfileDependent mods
+            then [(ProfileName p, extendExtensionName n p)
+                 | p <- ["core", "compatibility"] ]
+            else [(ProfileName "core", n)]  -- the actual profile doesn't matter
+    CM.forM_ profileAndModName $ \(prof, modName) -> do
+      let ("GL":vendor:extWords) = splitBy (== '_') (unExtensionName modName)
+      printExtension (Just vendor) extWords $
+        executeModifications api prof registry mods
+
+isProfileDependent :: Modification -> Bool
+isProfileDependent = DM.isJust . modificationProfile
+
+extendExtensionName :: ExtensionName -> String -> ExtensionName
+extendExtensionName n profile =
+  ExtensionName . (++ ("_" ++ profile)). unExtensionName $ n
+
+startModule :: Maybe String -> [String] -> Maybe String -> [String] -> (String -> SI.Handle -> IO ()) -> IO ()
+startModule mbVendor extWords mbPragma comments action = do
+  let moduleNameParts =
+        ["Graphics", "Rendering", "OpenGL", "Raw"] ++
+        maybe [] (\vendor -> [fixVendor vendor]) mbVendor ++
+        [concat (zipWith fixExtensionWord extWords [0 ..])]
+      path = F.joinPath moduleNameParts `F.addExtension` "hs"
+      moduleName = L.intercalate "." moduleNameParts
+  D.createDirectoryIfMissing True $ F.takeDirectory path
+  SI.withFile path SI.WriteMode $ \h -> do
+    printModuleHeader h mbPragma moduleName comments
+    action moduleName h
+
+fixVendor :: String -> String
+fixVendor v = case v of
+  "3DFX" -> "ThreeDFX"
+  _ -> v
+
+fixExtensionWord :: String -> Int -> String
+fixExtensionWord w  pos = case w of
+  "422" | pos == 0-> "FourTwoTwo"
+  "64bit" -> "64Bit"
+  "ES2" -> "ES2"
+  "ES3" -> "ES3"
+  "FXT1" -> "FXT1"
+  "a2ui" -> "A2UI"
+  "abgr" -> "ABGR"
+  "astc" -> "ASTC"
+  "bgra" -> "BGRA"
+  "bptc" -> "BPTC"
+  "cl" -> "CL"
+  "cmyka" -> "CMYKA"
+  "dxt1" -> "DXT1"
+  "es" -> "ES"
+  "ffd" -> "FFD"
+  "fp64" -> "FP64"
+  "gpu" -> "GPU"
+  "hdr" -> "HDR"
+  "latc" -> "LATC"
+  "ldr" -> "LDR"
+  "lod" -> "LOD"
+  "pn" -> "PN"
+  "rg" -> "RG"
+  "rgb" -> "RGB"
+  "rgb10" -> "RGB10"
+  "rgb32" -> "RGB32"
+  "rgtc" -> "RGTC"
+  "s3tc" -> "S3TC"
+  "sRGB" -> "SRGB"
+  "snorm" -> "SNorm"
+  "texture3D" -> "Texture3D"
+  "texture4D" -> "Texture4D"
+  "vdpau" -> "VDPAU"
+  "ycbcr" -> "YCbCr"
+  "ycrcb" -> "YCrCb"
+  "ycrcba" -> "YCrCbA"
+  _ -> capitalize w
+
+nameAndModifications :: API -> Extension -> (ExtensionName, [Modification])
+nameAndModifications api e =
+  (extensionName e,
+   [ conditionalModificationModification cm
+   | cm <- extensionsRequireRemove e
+   , api `matches` conditionalModificationAPI cm ])
+
+supports :: API -> Maybe [API] -> Bool
+_ `supports` Nothing = True
+a `supports` Just apis = a `elem` apis
+
 capitalize :: String -> String
-capitalize str = C.toUpper (head str) : tail str
+capitalize str = C.toUpper (head str) : map C.toLower (tail str)
 
 separate :: (a -> String) -> [a] -> String
 separate f = L.intercalate ",\n" . map ("  " ++) . map f
 
+-- Note that we handle features just like extensions.
+printExtension :: Maybe String -> [String] -> ([TypeName], [Enum'], [Command]) -> IO ()
+printExtension mbVendor extWords (ts, es, cs) = do
+  let comment = maybe [] (makeExtensionURL extWords) mbVendor
+  startModule mbVendor extWords Nothing comment $ \moduleName h -> do
+    SI.hPutStrLn h $ "module "++ moduleName ++ " ("
+    CM.unless (null ts) $ do
+      SI.hPutStrLn h "  -- * Types"
+      SI.hPutStr h $ separate unTypeName ts
+      SI.hPutStrLn h $ if null es && null cs then "" else ","
+    CM.unless (null es) $ do
+      SI.hPutStrLn h "  -- * Enums"
+      SI.hPutStr h $ separate (unEnumName . enumName) es
+      SI.hPutStrLn h $ if null cs then "" else ","
+    CM.unless (null cs) $ do
+      SI.hPutStrLn h "  -- * Functions"
+      SI.hPutStr h $ separate (unCommandName . commandName) cs
+      SI.hPutStrLn h ""
+    SI.hPutStrLn h ") where"
+    SI.hPutStrLn h ""
+    CM.unless (null ts) $
+      SI.hPutStrLn h "import Graphics.Rendering.OpenGL.Raw.Types"
+    CM.unless (null es) $
+      SI.hPutStrLn h "import Graphics.Rendering.OpenGL.Raw.Tokens"
+    CM.unless (null cs) $
+      SI.hPutStrLn h "import Graphics.Rendering.OpenGL.Raw.Functions"
+
+makeExtensionURL :: [String] -> String -> [String]
+makeExtensionURL extWords vendor =
+  ["The <https://www.opengl.org/registry/specs/" ++
+   vendor ++ "/" ++ L.intercalate "_" extWords ++ ".txt " ++
+   L.intercalate "_" (vendor : extWords) ++ "> extension."]
+
+printModuleHeader :: SI.Handle -> Maybe String -> String -> [String] -> IO ()
+printModuleHeader h mbPragma moduleName comments = do
+  maybe (return ()) (SI.hPutStrLn h) mbPragma
+  SI.hPutStrLn h "--------------------------------------------------------------------------------"
+  SI.hPutStrLn h "-- |"
+  SI.hPutStrLn h $ "-- Module      :  " ++ moduleName
+  SI.hPutStrLn h "-- Copyright   :  (c) Sven Panne 2015"
+  SI.hPutStrLn h "-- License     :  BSD3"
+  SI.hPutStrLn h "--"
+  SI.hPutStrLn h "-- Maintainer  :  Sven Panne <svenpanne@gmail.com>"
+  SI.hPutStrLn h "-- Stability   :  stable"
+  SI.hPutStrLn h "-- Portability :  portable"
+  SI.hPutStrLn h "--"
+  CM.unless (null comments) $ do
+    mapM_ (SI.hPutStrLn h . ("-- " ++)) comments
+    SI.hPutStrLn h "--"
+  SI.hPutStrLn h "--------------------------------------------------------------------------------"
+  SI.hPutStrLn h ""
+
 -- Annoyingly enough, the OpenGL registry doesn't contain any enums for
--- OpenGL 1.0, so let's just use the OpenGL 1.1 ones.
-fixedGetTyEnCo :: API -> Version -> ProfileName -> Registry -> ([TypeName],[Enum'],[Command])
-fixedGetTyEnCo api version profile registry
-  | api == API "gl" && version == read "1.0" = (ts, es11, cs)
-  | otherwise = tec
-  where tec@(ts, _, cs) = getTyEnCo api version profile registry
-        (_, es11, _) = getTyEnCo api (read "1.1") profile registry
+-- OpenGL 1.0, so let's just use the OpenGL 1.1 ones. Furthermore, features
+-- don't explicitly list the types referenced by commands, so we add them.
+fixedReplay :: API -> Version -> ProfileName -> Registry -> ([TypeName], [Enum'], [Command])
+fixedReplay api version profile registry
+  | api == API "gl" && version == read "1.0" = (ts', es11, cs)
+  | otherwise = (ts', es, cs)
+  where (ts, es, cs) = replay api version profile registry
+        (_, es11, _) = replay api (read "1.1") profile registry
+        ts' = S.toList . S.unions  $ S.fromList ts : map referencedTypes cs
 
-getTyEnCo :: API -> Version -> ProfileName -> Registry -> ([TypeName],[Enum'],[Command])
-getTyEnCo api version profile registry = (ts', es, cs)
+-- Here is the heart of the feature construction logic: Chronologically replay
+-- the whole version history for the given API/version/profile triple.
+replay :: API -> Version -> ProfileName -> Registry -> ([TypeName], [Enum'], [Command])
+replay api version profile registry =
+  executeModifications api profile registry modifications
+  where modifications = concatMap modificationsFor history
+        modificationsFor = flip lookup' (features registry)
+        history = L.sort [ key
+                         | key@(a,v) <- M.keys (features registry)
+                         , a == api
+                         , v <= version ]
+
+executeModifications :: API -> ProfileName -> Registry -> [Modification] -> ([TypeName], [Enum'], [Command])
+executeModifications api profile registry modifications = (ts, es, cs)
   where ts = [ n | TypeElement n <- lst ]
         es = [ e | EnumElement n <- lst
                  , e <- lookup' n (enums registry)
                  , api `matches` enumAPI e ]
         cs = [ lookup' n (commands registry) | CommandElement n <- lst ]
-        -- Features don't explicitly list the types referenced by commands.
-        ts' = S.toList . S.unions  $ S.fromList ts : map referencedTypes cs
-        lst = S.toList $ interfaceElementsFor api version profile registry
+        lst = S.toList $ interfaceElementsFor profile modifications
 
--- Here is the heart of the feature construction logic: Chronologically replay
--- the whole version history for the given API/version/profile triple.
-interfaceElementsFor :: API -> Version -> ProfileName -> Registry -> S.Set InterfaceElement
-interfaceElementsFor api version profile registry =
+interfaceElementsFor :: ProfileName -> [Modification] -> S.Set InterfaceElement
+interfaceElementsFor profile modifications =
   foldl (flip ($)) S.empty modificationsFor
   where modificationsFor =
           [ op (modificationKind m) ie
-          | key <- L.sort keys
-          , m <- lookup' key (features registry)
+          | m <- modifications
           , profile `matches` modificationProfile m
           , ie <- modificationInterfaceElements m ]
-        keys = [ key
-               | key@(a,v) <- M.keys (features registry)
-               , a == api
-               , v <= version ]
         op Require = S.insert
         op Remove = S.delete
 
@@ -214,7 +298,7 @@
   showString ("  :: " ++ signature True) .
   showString (name ++ " = " ++ dyn_name ++ " " ++ ptr_name ++ "\n\n") .
 
-  showString ("foreign import CALLCONV unsafe \"dynamic\" " ++ dyn_name ++ "\n" ++
+  showString ("foreign import CALLCONV \"dynamic\" " ++ dyn_name ++ "\n" ++
               "  :: FunPtr (" ++ compactSignature ++ ")\n" ++
               "  ->         " ++ compactSignature ++ "\n\n") .
 
diff --git a/RegistryProcessor/src/MangledRegistry.hs b/RegistryProcessor/src/MangledRegistry.hs
--- a/RegistryProcessor/src/MangledRegistry.hs
+++ b/RegistryProcessor/src/MangledRegistry.hs
@@ -11,13 +11,16 @@
   R.ModificationKind(..),
   R.ProfileName(..),
   Extension(..),
+  ConditionalModification(..),
   InterfaceElement(..),
   GroupName(..),
   EnumName(..),
   EnumValue(..),
   CommandName(..),
+  ExtensionName(..),
   API(..),
-  Version(..)
+  Version(..),
+  splitBy
 ) where
 
 import qualified Data.Char as C
@@ -245,12 +248,29 @@
   modificationProfile = R.modificationProfileName m,
   modificationInterfaceElements = map toInterfaceElement (R.modificationInterfaceElements m) }
 
-data Extension = Extension
-  deriving (Eq, Ord, Show)
+data Extension = Extension {
+  extensionName :: ExtensionName,
+  extensionSupported :: Maybe [API],
+  extensionsRequireRemove :: [ConditionalModification]
+  } deriving (Eq, Ord, Show)
 
 toExtension :: R.Extension -> Extension
-toExtension _ = Extension
+toExtension e = Extension {
+  extensionName = ExtensionName . R.unName . R.extensionName $ e,
+  extensionSupported = supp `fmap` R.extensionSupported e,
+  extensionsRequireRemove = map toConditionalModification (R.extensionsRequireRemove e) }
+  where supp = map API . splitBy (== '|') . R.unStringGroup
 
+data ConditionalModification = ConditionalModification {
+  conditionalModificationAPI :: Maybe API,
+  conditionalModificationModification :: Modification
+  } deriving (Eq, Ord, Show)
+
+toConditionalModification :: R.ConditionalModification -> ConditionalModification
+toConditionalModification c = ConditionalModification {
+  conditionalModificationAPI = API `fmap` R.conditionalModificationAPI c,
+  conditionalModificationModification = toModification (R.conditionalModificationModification c) }
+
 data InterfaceElement
   = TypeElement R.TypeName
   | EnumElement EnumName
@@ -277,6 +297,8 @@
 newtype EnumValue = EnumValue { unEnumValue :: String } deriving (Eq, Ord, Show)
 
 newtype CommandName = CommandName { unCommandName :: String } deriving (Eq, Ord, Show)
+
+newtype ExtensionName = ExtensionName { unExtensionName :: String } deriving (Eq, Ord, Show)
 
 newtype API = API { unAPI :: String } deriving (Eq, Ord, Show)
 
diff --git a/src/Graphics/Rendering/OpenGL/Raw.hs b/src/Graphics/Rendering/OpenGL/Raw.hs
--- a/src/Graphics/Rendering/OpenGL/Raw.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw.hs
@@ -14,19 +14,63 @@
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw (
-   module Graphics.Rendering.OpenGL.Raw.Compatibility45,
-   module Graphics.Rendering.OpenGL.Raw.ARB,
-   module Graphics.Rendering.OpenGL.Raw.APPLE,
-   module Graphics.Rendering.OpenGL.Raw.EXT,
-   module Graphics.Rendering.OpenGL.Raw.NV,
-   module Graphics.Rendering.OpenGL.Raw.Types,
-   module Graphics.Rendering.OpenGL.Raw.GetProcAddress
+  module Graphics.Rendering.OpenGL.Raw.Compatibility45,
+  module Graphics.Rendering.OpenGL.Raw.GetProcAddress,
+  module Graphics.Rendering.OpenGL.Raw.AMD,
+  module Graphics.Rendering.OpenGL.Raw.APPLE,
+  module Graphics.Rendering.OpenGL.Raw.ARB,
+  module Graphics.Rendering.OpenGL.Raw.ATI,
+  module Graphics.Rendering.OpenGL.Raw.EXT,
+  module Graphics.Rendering.OpenGL.Raw.GREMEDY,
+  module Graphics.Rendering.OpenGL.Raw.HP,
+  module Graphics.Rendering.OpenGL.Raw.IBM,
+  module Graphics.Rendering.OpenGL.Raw.INGR,
+  module Graphics.Rendering.OpenGL.Raw.INTEL,
+  module Graphics.Rendering.OpenGL.Raw.KHR,
+  module Graphics.Rendering.OpenGL.Raw.MESA,
+  module Graphics.Rendering.OpenGL.Raw.MESAX,
+  module Graphics.Rendering.OpenGL.Raw.NV,
+  module Graphics.Rendering.OpenGL.Raw.NVX,
+  module Graphics.Rendering.OpenGL.Raw.OES,
+  module Graphics.Rendering.OpenGL.Raw.OML,
+  module Graphics.Rendering.OpenGL.Raw.PGI,
+  module Graphics.Rendering.OpenGL.Raw.REND,
+  module Graphics.Rendering.OpenGL.Raw.S3,
+  module Graphics.Rendering.OpenGL.Raw.SGI,
+  module Graphics.Rendering.OpenGL.Raw.SGIS,
+  module Graphics.Rendering.OpenGL.Raw.SGIX,
+  module Graphics.Rendering.OpenGL.Raw.SUN,
+  module Graphics.Rendering.OpenGL.Raw.SUNX,
+  module Graphics.Rendering.OpenGL.Raw.ThreeDFX,
+  module Graphics.Rendering.OpenGL.Raw.WIN
 ) where
 
 import Graphics.Rendering.OpenGL.Raw.Compatibility45
-import Graphics.Rendering.OpenGL.Raw.ARB
+import Graphics.Rendering.OpenGL.Raw.GetProcAddress
+import Graphics.Rendering.OpenGL.Raw.AMD
 import Graphics.Rendering.OpenGL.Raw.APPLE
+import Graphics.Rendering.OpenGL.Raw.ARB
+import Graphics.Rendering.OpenGL.Raw.ATI
 import Graphics.Rendering.OpenGL.Raw.EXT
+import Graphics.Rendering.OpenGL.Raw.GREMEDY
+import Graphics.Rendering.OpenGL.Raw.HP
+import Graphics.Rendering.OpenGL.Raw.IBM
+import Graphics.Rendering.OpenGL.Raw.INGR
+import Graphics.Rendering.OpenGL.Raw.INTEL
+import Graphics.Rendering.OpenGL.Raw.KHR
+import Graphics.Rendering.OpenGL.Raw.MESA
+import Graphics.Rendering.OpenGL.Raw.MESAX
 import Graphics.Rendering.OpenGL.Raw.NV
-import Graphics.Rendering.OpenGL.Raw.Types
-import Graphics.Rendering.OpenGL.Raw.GetProcAddress
+import Graphics.Rendering.OpenGL.Raw.NVX
+import Graphics.Rendering.OpenGL.Raw.OES
+import Graphics.Rendering.OpenGL.Raw.OML
+import Graphics.Rendering.OpenGL.Raw.PGI
+import Graphics.Rendering.OpenGL.Raw.REND
+import Graphics.Rendering.OpenGL.Raw.S3
+import Graphics.Rendering.OpenGL.Raw.SGI
+import Graphics.Rendering.OpenGL.Raw.SGIS
+import Graphics.Rendering.OpenGL.Raw.SGIX
+import Graphics.Rendering.OpenGL.Raw.SUN
+import Graphics.Rendering.OpenGL.Raw.SUNX
+import Graphics.Rendering.OpenGL.Raw.ThreeDFX
+import Graphics.Rendering.OpenGL.Raw.WIN
diff --git a/src/Graphics/Rendering/OpenGL/Raw/AMD.hs b/src/Graphics/Rendering/OpenGL/Raw/AMD.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/AMD.hs
@@ -0,0 +1,53 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.AMD
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- A convenience module, combining all raw modules containing AMD extensions.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.AMD (
+  module Graphics.Rendering.OpenGL.Raw.AMD.BlendMinmaxFactor,
+  module Graphics.Rendering.OpenGL.Raw.AMD.DebugOutput,
+  module Graphics.Rendering.OpenGL.Raw.AMD.DepthClampSeparate,
+  module Graphics.Rendering.OpenGL.Raw.AMD.DrawBuffersBlend,
+  module Graphics.Rendering.OpenGL.Raw.AMD.GPUShaderInt64,
+  module Graphics.Rendering.OpenGL.Raw.AMD.InterleavedElements,
+  module Graphics.Rendering.OpenGL.Raw.AMD.MultiDrawIndirect,
+  module Graphics.Rendering.OpenGL.Raw.AMD.NameGenDelete,
+  module Graphics.Rendering.OpenGL.Raw.AMD.OcclusionQueryEvent,
+  module Graphics.Rendering.OpenGL.Raw.AMD.PerformanceMonitor,
+  module Graphics.Rendering.OpenGL.Raw.AMD.PinnedMemory,
+  module Graphics.Rendering.OpenGL.Raw.AMD.QueryBufferObject,
+  module Graphics.Rendering.OpenGL.Raw.AMD.SamplePositions,
+  module Graphics.Rendering.OpenGL.Raw.AMD.SeamlessCubemapPerTexture,
+  module Graphics.Rendering.OpenGL.Raw.AMD.SparseTexture,
+  module Graphics.Rendering.OpenGL.Raw.AMD.StencilOperationExtended,
+  module Graphics.Rendering.OpenGL.Raw.AMD.TransformFeedback4,
+  module Graphics.Rendering.OpenGL.Raw.AMD.VertexShaderTessellator
+) where
+
+import Graphics.Rendering.OpenGL.Raw.AMD.BlendMinmaxFactor
+import Graphics.Rendering.OpenGL.Raw.AMD.DebugOutput
+import Graphics.Rendering.OpenGL.Raw.AMD.DepthClampSeparate
+import Graphics.Rendering.OpenGL.Raw.AMD.DrawBuffersBlend
+import Graphics.Rendering.OpenGL.Raw.AMD.GPUShaderInt64
+import Graphics.Rendering.OpenGL.Raw.AMD.InterleavedElements
+import Graphics.Rendering.OpenGL.Raw.AMD.MultiDrawIndirect
+import Graphics.Rendering.OpenGL.Raw.AMD.NameGenDelete
+import Graphics.Rendering.OpenGL.Raw.AMD.OcclusionQueryEvent
+import Graphics.Rendering.OpenGL.Raw.AMD.PerformanceMonitor
+import Graphics.Rendering.OpenGL.Raw.AMD.PinnedMemory
+import Graphics.Rendering.OpenGL.Raw.AMD.QueryBufferObject
+import Graphics.Rendering.OpenGL.Raw.AMD.SamplePositions
+import Graphics.Rendering.OpenGL.Raw.AMD.SeamlessCubemapPerTexture
+import Graphics.Rendering.OpenGL.Raw.AMD.SparseTexture
+import Graphics.Rendering.OpenGL.Raw.AMD.StencilOperationExtended
+import Graphics.Rendering.OpenGL.Raw.AMD.TransformFeedback4
+import Graphics.Rendering.OpenGL.Raw.AMD.VertexShaderTessellator
diff --git a/src/Graphics/Rendering/OpenGL/Raw/AMD/BlendMinmaxFactor.hs b/src/Graphics/Rendering/OpenGL/Raw/AMD/BlendMinmaxFactor.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/AMD/BlendMinmaxFactor.hs
@@ -0,0 +1,21 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.AMD.BlendMinmaxFactor
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/AMD/blend_minmax_factor.txt AMD_blend_minmax_factor> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.AMD.BlendMinmaxFactor (
+  -- * Enums
+  gl_FACTOR_MAX_AMD,
+  gl_FACTOR_MIN_AMD
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/AMD/DebugOutput.hs b/src/Graphics/Rendering/OpenGL/Raw/AMD/DebugOutput.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/AMD/DebugOutput.hs
@@ -0,0 +1,39 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.AMD.DebugOutput
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/AMD/debug_output.txt AMD_debug_output> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.AMD.DebugOutput (
+  -- * Enums
+  gl_DEBUG_CATEGORY_API_ERROR_AMD,
+  gl_DEBUG_CATEGORY_APPLICATION_AMD,
+  gl_DEBUG_CATEGORY_DEPRECATION_AMD,
+  gl_DEBUG_CATEGORY_OTHER_AMD,
+  gl_DEBUG_CATEGORY_PERFORMANCE_AMD,
+  gl_DEBUG_CATEGORY_SHADER_COMPILER_AMD,
+  gl_DEBUG_CATEGORY_UNDEFINED_BEHAVIOR_AMD,
+  gl_DEBUG_CATEGORY_WINDOW_SYSTEM_AMD,
+  gl_DEBUG_LOGGED_MESSAGES_AMD,
+  gl_DEBUG_SEVERITY_HIGH_AMD,
+  gl_DEBUG_SEVERITY_LOW_AMD,
+  gl_DEBUG_SEVERITY_MEDIUM_AMD,
+  gl_MAX_DEBUG_LOGGED_MESSAGES_AMD,
+  gl_MAX_DEBUG_MESSAGE_LENGTH_AMD,
+  -- * Functions
+  glDebugMessageCallbackAMD,
+  glDebugMessageEnableAMD,
+  glDebugMessageInsertAMD,
+  glGetDebugMessageLogAMD
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/AMD/DepthClampSeparate.hs b/src/Graphics/Rendering/OpenGL/Raw/AMD/DepthClampSeparate.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/AMD/DepthClampSeparate.hs
@@ -0,0 +1,21 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.AMD.DepthClampSeparate
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/AMD/depth_clamp_separate.txt AMD_depth_clamp_separate> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.AMD.DepthClampSeparate (
+  -- * Enums
+  gl_DEPTH_CLAMP_FAR_AMD,
+  gl_DEPTH_CLAMP_NEAR_AMD
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/AMD/DrawBuffersBlend.hs b/src/Graphics/Rendering/OpenGL/Raw/AMD/DrawBuffersBlend.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/AMD/DrawBuffersBlend.hs
@@ -0,0 +1,23 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.AMD.DrawBuffersBlend
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/AMD/draw_buffers_blend.txt AMD_draw_buffers_blend> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.AMD.DrawBuffersBlend (
+  -- * Functions
+  glBlendEquationIndexedAMD,
+  glBlendEquationSeparateIndexedAMD,
+  glBlendFuncIndexedAMD,
+  glBlendFuncSeparateIndexedAMD
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/AMD/GPUShaderInt64.hs b/src/Graphics/Rendering/OpenGL/Raw/AMD/GPUShaderInt64.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/AMD/GPUShaderInt64.hs
@@ -0,0 +1,83 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.AMD.GPUShaderInt64
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/AMD/gpu_shader_int64.txt AMD_gpu_shader_int64> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.AMD.GPUShaderInt64 (
+  -- * Enums
+  gl_FLOAT16_NV,
+  gl_FLOAT16_VEC2_NV,
+  gl_FLOAT16_VEC3_NV,
+  gl_FLOAT16_VEC4_NV,
+  gl_INT16_NV,
+  gl_INT16_VEC2_NV,
+  gl_INT16_VEC3_NV,
+  gl_INT16_VEC4_NV,
+  gl_INT64_NV,
+  gl_INT64_VEC2_NV,
+  gl_INT64_VEC3_NV,
+  gl_INT64_VEC4_NV,
+  gl_INT8_NV,
+  gl_INT8_VEC2_NV,
+  gl_INT8_VEC3_NV,
+  gl_INT8_VEC4_NV,
+  gl_UNSIGNED_INT16_NV,
+  gl_UNSIGNED_INT16_VEC2_NV,
+  gl_UNSIGNED_INT16_VEC3_NV,
+  gl_UNSIGNED_INT16_VEC4_NV,
+  gl_UNSIGNED_INT64_NV,
+  gl_UNSIGNED_INT64_VEC2_NV,
+  gl_UNSIGNED_INT64_VEC3_NV,
+  gl_UNSIGNED_INT64_VEC4_NV,
+  gl_UNSIGNED_INT8_NV,
+  gl_UNSIGNED_INT8_VEC2_NV,
+  gl_UNSIGNED_INT8_VEC3_NV,
+  gl_UNSIGNED_INT8_VEC4_NV,
+  -- * Functions
+  glGetUniformi64vNV,
+  glGetUniformui64vNV,
+  glProgramUniform1i64NV,
+  glProgramUniform1i64vNV,
+  glProgramUniform1ui64NV,
+  glProgramUniform1ui64vNV,
+  glProgramUniform2i64NV,
+  glProgramUniform2i64vNV,
+  glProgramUniform2ui64NV,
+  glProgramUniform2ui64vNV,
+  glProgramUniform3i64NV,
+  glProgramUniform3i64vNV,
+  glProgramUniform3ui64NV,
+  glProgramUniform3ui64vNV,
+  glProgramUniform4i64NV,
+  glProgramUniform4i64vNV,
+  glProgramUniform4ui64NV,
+  glProgramUniform4ui64vNV,
+  glUniform1i64NV,
+  glUniform1i64vNV,
+  glUniform1ui64NV,
+  glUniform1ui64vNV,
+  glUniform2i64NV,
+  glUniform2i64vNV,
+  glUniform2ui64NV,
+  glUniform2ui64vNV,
+  glUniform3i64NV,
+  glUniform3i64vNV,
+  glUniform3ui64NV,
+  glUniform3ui64vNV,
+  glUniform4i64NV,
+  glUniform4i64vNV,
+  glUniform4ui64NV,
+  glUniform4ui64vNV
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/AMD/InterleavedElements.hs b/src/Graphics/Rendering/OpenGL/Raw/AMD/InterleavedElements.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/AMD/InterleavedElements.hs
@@ -0,0 +1,31 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.AMD.InterleavedElements
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/AMD/interleaved_elements.txt AMD_interleaved_elements> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.AMD.InterleavedElements (
+  -- * Enums
+  gl_ALPHA,
+  gl_BLUE,
+  gl_GREEN,
+  gl_RED,
+  gl_RG16UI,
+  gl_RG8UI,
+  gl_RGBA8UI,
+  gl_VERTEX_ELEMENT_SWIZZLE_AMD,
+  gl_VERTEX_ID_SWIZZLE_AMD,
+  -- * Functions
+  glVertexAttribParameteriAMD
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/AMD/MultiDrawIndirect.hs b/src/Graphics/Rendering/OpenGL/Raw/AMD/MultiDrawIndirect.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/AMD/MultiDrawIndirect.hs
@@ -0,0 +1,21 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.AMD.MultiDrawIndirect
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/AMD/multi_draw_indirect.txt AMD_multi_draw_indirect> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.AMD.MultiDrawIndirect (
+  -- * Functions
+  glMultiDrawArraysIndirectAMD,
+  glMultiDrawElementsIndirectAMD
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/AMD/NameGenDelete.hs b/src/Graphics/Rendering/OpenGL/Raw/AMD/NameGenDelete.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/AMD/NameGenDelete.hs
@@ -0,0 +1,29 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.AMD.NameGenDelete
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/AMD/name_gen_delete.txt AMD_name_gen_delete> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.AMD.NameGenDelete (
+  -- * Enums
+  gl_DATA_BUFFER_AMD,
+  gl_PERFORMANCE_MONITOR_AMD,
+  gl_QUERY_OBJECT_AMD,
+  gl_SAMPLER_OBJECT_AMD,
+  gl_VERTEX_ARRAY_OBJECT_AMD,
+  -- * Functions
+  glDeleteNamesAMD,
+  glGenNamesAMD,
+  glIsNameAMD
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/AMD/OcclusionQueryEvent.hs b/src/Graphics/Rendering/OpenGL/Raw/AMD/OcclusionQueryEvent.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/AMD/OcclusionQueryEvent.hs
@@ -0,0 +1,28 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.AMD.OcclusionQueryEvent
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/AMD/occlusion_query_event.txt AMD_occlusion_query_event> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.AMD.OcclusionQueryEvent (
+  -- * Enums
+  gl_OCCLUSION_QUERY_EVENT_MASK_AMD,
+  gl_QUERY_ALL_EVENT_BITS_AMD,
+  gl_QUERY_DEPTH_BOUNDS_FAIL_EVENT_BIT_AMD,
+  gl_QUERY_DEPTH_FAIL_EVENT_BIT_AMD,
+  gl_QUERY_DEPTH_PASS_EVENT_BIT_AMD,
+  gl_QUERY_STENCIL_FAIL_EVENT_BIT_AMD,
+  -- * Functions
+  glQueryObjectParameteruiAMD
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/AMD/PerformanceMonitor.hs b/src/Graphics/Rendering/OpenGL/Raw/AMD/PerformanceMonitor.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/AMD/PerformanceMonitor.hs
@@ -0,0 +1,39 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.AMD.PerformanceMonitor
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/AMD/performance_monitor.txt AMD_performance_monitor> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.AMD.PerformanceMonitor (
+  -- * Enums
+  gl_COUNTER_RANGE_AMD,
+  gl_COUNTER_TYPE_AMD,
+  gl_PERCENTAGE_AMD,
+  gl_PERFMON_RESULT_AMD,
+  gl_PERFMON_RESULT_AVAILABLE_AMD,
+  gl_PERFMON_RESULT_SIZE_AMD,
+  gl_UNSIGNED_INT64_AMD,
+  -- * Functions
+  glBeginPerfMonitorAMD,
+  glDeletePerfMonitorsAMD,
+  glEndPerfMonitorAMD,
+  glGenPerfMonitorsAMD,
+  glGetPerfMonitorCounterDataAMD,
+  glGetPerfMonitorCounterInfoAMD,
+  glGetPerfMonitorCounterStringAMD,
+  glGetPerfMonitorCountersAMD,
+  glGetPerfMonitorGroupStringAMD,
+  glGetPerfMonitorGroupsAMD,
+  glSelectPerfMonitorCountersAMD
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/AMD/PinnedMemory.hs b/src/Graphics/Rendering/OpenGL/Raw/AMD/PinnedMemory.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/AMD/PinnedMemory.hs
@@ -0,0 +1,20 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.AMD.PinnedMemory
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/AMD/pinned_memory.txt AMD_pinned_memory> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.AMD.PinnedMemory (
+  -- * Enums
+  gl_EXTERNAL_VIRTUAL_MEMORY_BUFFER_AMD
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/AMD/QueryBufferObject.hs b/src/Graphics/Rendering/OpenGL/Raw/AMD/QueryBufferObject.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/AMD/QueryBufferObject.hs
@@ -0,0 +1,22 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.AMD.QueryBufferObject
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/AMD/query_buffer_object.txt AMD_query_buffer_object> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.AMD.QueryBufferObject (
+  -- * Enums
+  gl_QUERY_BUFFER_AMD,
+  gl_QUERY_BUFFER_BINDING_AMD,
+  gl_QUERY_RESULT_NO_WAIT_AMD
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/AMD/SamplePositions.hs b/src/Graphics/Rendering/OpenGL/Raw/AMD/SamplePositions.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/AMD/SamplePositions.hs
@@ -0,0 +1,23 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.AMD.SamplePositions
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/AMD/sample_positions.txt AMD_sample_positions> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.AMD.SamplePositions (
+  -- * Enums
+  gl_SUBSAMPLE_DISTANCE_AMD,
+  -- * Functions
+  glSetMultisamplefvAMD
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/AMD/SeamlessCubemapPerTexture.hs b/src/Graphics/Rendering/OpenGL/Raw/AMD/SeamlessCubemapPerTexture.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/AMD/SeamlessCubemapPerTexture.hs
@@ -0,0 +1,20 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.AMD.SeamlessCubemapPerTexture
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/AMD/seamless_cubemap_per_texture.txt AMD_seamless_cubemap_per_texture> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.AMD.SeamlessCubemapPerTexture (
+  -- * Enums
+  gl_TEXTURE_CUBE_MAP_SEAMLESS
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/AMD/SparseTexture.hs b/src/Graphics/Rendering/OpenGL/Raw/AMD/SparseTexture.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/AMD/SparseTexture.hs
@@ -0,0 +1,32 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.AMD.SparseTexture
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/AMD/sparse_texture.txt AMD_sparse_texture> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.AMD.SparseTexture (
+  -- * Enums
+  gl_MAX_SPARSE_3D_TEXTURE_SIZE_AMD,
+  gl_MAX_SPARSE_ARRAY_TEXTURE_LAYERS,
+  gl_MAX_SPARSE_TEXTURE_SIZE_AMD,
+  gl_MIN_LOD_WARNING_AMD,
+  gl_MIN_SPARSE_LEVEL_AMD,
+  gl_TEXTURE_STORAGE_SPARSE_BIT_AMD,
+  gl_VIRTUAL_PAGE_SIZE_X_AMD,
+  gl_VIRTUAL_PAGE_SIZE_Y_AMD,
+  gl_VIRTUAL_PAGE_SIZE_Z_AMD,
+  -- * Functions
+  glTexStorageSparseAMD,
+  glTextureStorageSparseAMD
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/AMD/StencilOperationExtended.hs b/src/Graphics/Rendering/OpenGL/Raw/AMD/StencilOperationExtended.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/AMD/StencilOperationExtended.hs
@@ -0,0 +1,26 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.AMD.StencilOperationExtended
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/AMD/stencil_operation_extended.txt AMD_stencil_operation_extended> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.AMD.StencilOperationExtended (
+  -- * Enums
+  gl_REPLACE_VALUE_AMD,
+  gl_SET_AMD,
+  gl_STENCIL_BACK_OP_VALUE_AMD,
+  gl_STENCIL_OP_VALUE_AMD,
+  -- * Functions
+  glStencilOpValueAMD
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/AMD/TransformFeedback4.hs b/src/Graphics/Rendering/OpenGL/Raw/AMD/TransformFeedback4.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/AMD/TransformFeedback4.hs
@@ -0,0 +1,20 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.AMD.TransformFeedback4
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/AMD/transform_feedback4.txt AMD_transform_feedback4> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.AMD.TransformFeedback4 (
+  -- * Enums
+  gl_STREAM_RASTERIZATION_AMD
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/AMD/VertexShaderTessellator.hs b/src/Graphics/Rendering/OpenGL/Raw/AMD/VertexShaderTessellator.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/AMD/VertexShaderTessellator.hs
@@ -0,0 +1,30 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.AMD.VertexShaderTessellator
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/AMD/vertex_shader_tessellator.txt AMD_vertex_shader_tessellator> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.AMD.VertexShaderTessellator (
+  -- * Enums
+  gl_CONTINUOUS_AMD,
+  gl_DISCRETE_AMD,
+  gl_INT_SAMPLER_BUFFER_AMD,
+  gl_SAMPLER_BUFFER_AMD,
+  gl_TESSELLATION_FACTOR_AMD,
+  gl_TESSELLATION_MODE_AMD,
+  gl_UNSIGNED_INT_SAMPLER_BUFFER_AMD,
+  -- * Functions
+  glTessellationFactorAMD,
+  glTessellationModeAMD
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/APPLE.hs b/src/Graphics/Rendering/OpenGL/Raw/APPLE.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/APPLE.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/APPLE.hs
@@ -1,7 +1,7 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.APPLE
--- Copyright   :  (c) Sven Panne 2014
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
@@ -13,49 +13,37 @@
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.APPLE (
-   -- module Graphics.Rendering.OpenGL.Raw.APPLE.SpecularVector,         -- # 159
-   -- module Graphics.Rendering.OpenGL.Raw.APPLE.TransformHint,          -- # 160
-   -- module Graphics.Rendering.OpenGL.Raw.APPLE.ClientStorage,          -- # 270
-   -- module Graphics.Rendering.OpenGL.Raw.APPLE.ElementArray,           -- # 271
-   -- module Graphics.Rendering.OpenGL.Raw.APPLE.Fence,                  -- # 272
-   module Graphics.Rendering.OpenGL.Raw.APPLE.VertexArrayObject,         -- # 273
-   -- module Graphics.Rendering.OpenGL.Raw.APPLE.VertexArrayRange,       -- # 274
-   -- module Graphics.Rendering.OpenGL.Raw.APPLE.YCBCR422,               -- # 275
-   module Graphics.Rendering.OpenGL.Raw.APPLE.FlushBufferRange,          -- # 321
-   -- module Graphics.Rendering.OpenGL.Raw.APPLE.TextureRange,           -- # 367
-   -- module Graphics.Rendering.OpenGL.Raw.APPLE.FloatPixels,            -- # 368
-   -- module Graphics.Rendering.OpenGL.Raw.APPLE.VertexProgramEvaluators,-- # 369
-   -- module Graphics.Rendering.OpenGL.Raw.APPLE.AuxDepthStencil,        -- # 370
-   -- module Graphics.Rendering.OpenGL.Raw.APPLE.ObjectPurgeable,        -- # 371
-   -- module Graphics.Rendering.OpenGL.Raw.APPLE.RowBytes,               -- # 372
-   -- module Graphics.Rendering.OpenGL.Raw.APPLE.RGB422,                 -- # 373
-   -- module Graphics.Rendering.OpenGL.Raw.APPLE.Texture2DLimitedNPOT,   -- # ES 59
-   -- module Graphics.Rendering.OpenGL.Raw.APPLE.FramebufferMultisample, -- # ES 78
-   -- module Graphics.Rendering.OpenGL.Raw.APPLE.TextureFormatBGRA8888,  -- # ES 79
-   -- module Graphics.Rendering.OpenGL.Raw.APPLE.TextureMaxLevel,        -- # ES 80
-   -- module Graphics.Rendering.OpenGL.Raw.APPLE.CopyTextureLevels,      -- # ES 123
-   -- module Graphics.Rendering.OpenGL.Raw.APPLE.Sync,                   -- # ES 124
+  module Graphics.Rendering.OpenGL.Raw.APPLE.AuxDepthStencil,
+  module Graphics.Rendering.OpenGL.Raw.APPLE.ClientStorage,
+  module Graphics.Rendering.OpenGL.Raw.APPLE.ElementArray,
+  module Graphics.Rendering.OpenGL.Raw.APPLE.Fence,
+  module Graphics.Rendering.OpenGL.Raw.APPLE.FloatPixels,
+  module Graphics.Rendering.OpenGL.Raw.APPLE.FlushBufferRange,
+  module Graphics.Rendering.OpenGL.Raw.APPLE.ObjectPurgeable,
+  module Graphics.Rendering.OpenGL.Raw.APPLE.RGB422,
+  module Graphics.Rendering.OpenGL.Raw.APPLE.RowBytes,
+  module Graphics.Rendering.OpenGL.Raw.APPLE.SpecularVector,
+  module Graphics.Rendering.OpenGL.Raw.APPLE.TextureRange,
+  module Graphics.Rendering.OpenGL.Raw.APPLE.TransformHint,
+  module Graphics.Rendering.OpenGL.Raw.APPLE.VertexArrayObject,
+  module Graphics.Rendering.OpenGL.Raw.APPLE.VertexArrayRange,
+  module Graphics.Rendering.OpenGL.Raw.APPLE.VertexProgramEvaluators,
+  module Graphics.Rendering.OpenGL.Raw.APPLE.YCbCr422
 ) where
 
--- import Graphics.Rendering.OpenGL.Raw.APPLE.SpecularVector
--- import Graphics.Rendering.OpenGL.Raw.APPLE.TransformHint
--- import Graphics.Rendering.OpenGL.Raw.APPLE.ClientStorage
--- import Graphics.Rendering.OpenGL.Raw.APPLE.ElementArray
--- import Graphics.Rendering.OpenGL.Raw.APPLE.Fence
-import Graphics.Rendering.OpenGL.Raw.APPLE.VertexArrayObject
--- import Graphics.Rendering.OpenGL.Raw.APPLE.VertexArrayRange
--- import Graphics.Rendering.OpenGL.Raw.APPLE.YCBCR422
+import Graphics.Rendering.OpenGL.Raw.APPLE.AuxDepthStencil
+import Graphics.Rendering.OpenGL.Raw.APPLE.ClientStorage
+import Graphics.Rendering.OpenGL.Raw.APPLE.ElementArray
+import Graphics.Rendering.OpenGL.Raw.APPLE.Fence
+import Graphics.Rendering.OpenGL.Raw.APPLE.FloatPixels
 import Graphics.Rendering.OpenGL.Raw.APPLE.FlushBufferRange
--- import Graphics.Rendering.OpenGL.Raw.APPLE.TextureRange
--- import Graphics.Rendering.OpenGL.Raw.APPLE.FloatPixels
--- import Graphics.Rendering.OpenGL.Raw.APPLE.VertexProgramEvaluators
--- import Graphics.Rendering.OpenGL.Raw.APPLE.AuxDepthStencil
--- import Graphics.Rendering.OpenGL.Raw.APPLE.ObjectPurgeable
--- import Graphics.Rendering.OpenGL.Raw.APPLE.RowBytes
--- import Graphics.Rendering.OpenGL.Raw.APPLE.RGB422
--- import Graphics.Rendering.OpenGL.Raw.APPLE.Texture2DLimitedNPOT
--- import Graphics.Rendering.OpenGL.Raw.APPLE.FramebufferMultisample
--- import Graphics.Rendering.OpenGL.Raw.APPLE.TextureFormatBGRA8888
--- import Graphics.Rendering.OpenGL.Raw.APPLE.TextureMaxLevel
--- import Graphics.Rendering.OpenGL.Raw.APPLE.CopyTextureLevels
--- import Graphics.Rendering.OpenGL.Raw.APPLE.Sync
+import Graphics.Rendering.OpenGL.Raw.APPLE.ObjectPurgeable
+import Graphics.Rendering.OpenGL.Raw.APPLE.RGB422
+import Graphics.Rendering.OpenGL.Raw.APPLE.RowBytes
+import Graphics.Rendering.OpenGL.Raw.APPLE.SpecularVector
+import Graphics.Rendering.OpenGL.Raw.APPLE.TextureRange
+import Graphics.Rendering.OpenGL.Raw.APPLE.TransformHint
+import Graphics.Rendering.OpenGL.Raw.APPLE.VertexArrayObject
+import Graphics.Rendering.OpenGL.Raw.APPLE.VertexArrayRange
+import Graphics.Rendering.OpenGL.Raw.APPLE.VertexProgramEvaluators
+import Graphics.Rendering.OpenGL.Raw.APPLE.YCbCr422
diff --git a/src/Graphics/Rendering/OpenGL/Raw/APPLE/AuxDepthStencil.hs b/src/Graphics/Rendering/OpenGL/Raw/APPLE/AuxDepthStencil.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/APPLE/AuxDepthStencil.hs
@@ -0,0 +1,20 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.APPLE.AuxDepthStencil
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/APPLE/aux_depth_stencil.txt APPLE_aux_depth_stencil> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.APPLE.AuxDepthStencil (
+  -- * Enums
+  gl_AUX_DEPTH_STENCIL_APPLE
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/APPLE/ClientStorage.hs b/src/Graphics/Rendering/OpenGL/Raw/APPLE/ClientStorage.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/APPLE/ClientStorage.hs
@@ -0,0 +1,20 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.APPLE.ClientStorage
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/APPLE/client_storage.txt APPLE_client_storage> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.APPLE.ClientStorage (
+  -- * Enums
+  gl_UNPACK_CLIENT_STORAGE_APPLE
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/APPLE/ElementArray.hs b/src/Graphics/Rendering/OpenGL/Raw/APPLE/ElementArray.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/APPLE/ElementArray.hs
@@ -0,0 +1,29 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.APPLE.ElementArray
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/APPLE/element_array.txt APPLE_element_array> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.APPLE.ElementArray (
+  -- * Enums
+  gl_ELEMENT_ARRAY_APPLE,
+  gl_ELEMENT_ARRAY_POINTER_APPLE,
+  gl_ELEMENT_ARRAY_TYPE_APPLE,
+  -- * Functions
+  glDrawElementArrayAPPLE,
+  glDrawRangeElementArrayAPPLE,
+  glElementPointerAPPLE,
+  glMultiDrawElementArrayAPPLE,
+  glMultiDrawRangeElementArrayAPPLE
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/APPLE/Fence.hs b/src/Graphics/Rendering/OpenGL/Raw/APPLE/Fence.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/APPLE/Fence.hs
@@ -0,0 +1,31 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.APPLE.Fence
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/APPLE/fence.txt APPLE_fence> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.APPLE.Fence (
+  -- * Enums
+  gl_DRAW_PIXELS_APPLE,
+  gl_FENCE_APPLE,
+  -- * Functions
+  glDeleteFencesAPPLE,
+  glFinishFenceAPPLE,
+  glFinishObjectAPPLE,
+  glGenFencesAPPLE,
+  glIsFenceAPPLE,
+  glSetFenceAPPLE,
+  glTestFenceAPPLE,
+  glTestObjectAPPLE
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/APPLE/FloatPixels.hs b/src/Graphics/Rendering/OpenGL/Raw/APPLE/FloatPixels.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/APPLE/FloatPixels.hs
@@ -0,0 +1,33 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.APPLE.FloatPixels
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/APPLE/float_pixels.txt APPLE_float_pixels> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.APPLE.FloatPixels (
+  -- * Enums
+  gl_ALPHA_FLOAT16_APPLE,
+  gl_ALPHA_FLOAT32_APPLE,
+  gl_COLOR_FLOAT_APPLE,
+  gl_HALF_APPLE,
+  gl_INTENSITY_FLOAT16_APPLE,
+  gl_INTENSITY_FLOAT32_APPLE,
+  gl_LUMINANCE_ALPHA_FLOAT16_APPLE,
+  gl_LUMINANCE_ALPHA_FLOAT32_APPLE,
+  gl_LUMINANCE_FLOAT16_APPLE,
+  gl_LUMINANCE_FLOAT32_APPLE,
+  gl_RGBA_FLOAT16_APPLE,
+  gl_RGBA_FLOAT32_APPLE,
+  gl_RGB_FLOAT16_APPLE,
+  gl_RGB_FLOAT32_APPLE
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/APPLE/FlushBufferRange.hs b/src/Graphics/Rendering/OpenGL/Raw/APPLE/FlushBufferRange.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/APPLE/FlushBufferRange.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/APPLE/FlushBufferRange.hs
@@ -1,44 +1,25 @@
-{-# LANGUAGE CPP #-}
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.APPLE.FlushBufferRange
--- Copyright   :  (c) Sven Panne 2014
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All raw functions and tokens from the APPLE_flush_buffer_range extension, see
--- <http://www.opengl.org/registry/specs/APPLE/flush_buffer_range.txt>.
+-- The <https://www.opengl.org/registry/specs/APPLE/flush_buffer_range.txt APPLE_flush_buffer_range> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.APPLE.FlushBufferRange (
-   -- * Functions
-   glBufferParameteri,
-   glFlushMappedBufferRange,
-
-   -- * Tokens
-   gl__BUFFER_SERIALIZED_MODIFY,
-   gl_BUFFER_FLUSHING_UNMAP
+  -- * Enums
+  gl_BUFFER_FLUSHING_UNMAP_APPLE,
+  gl_BUFFER_SERIALIZED_MODIFY_APPLE,
+  -- * Functions
+  glBufferParameteriAPPLE,
+  glFlushMappedBufferRangeAPPLE
 ) where
 
-import Foreign.C.Types
-import Graphics.Rendering.OpenGL.Raw.ARB.MapBufferRange
-import Graphics.Rendering.OpenGL.Raw.Types
-import Foreign.Ptr ( FunPtr )
-import Graphics.Rendering.OpenGL.Raw.GetProcAddress ( getExtensionChecked )
-import System.IO.Unsafe ( unsafePerformIO )
-
---------------------------------------------------------------------------------
-
-#include "HsOpenGLRaw.h"
-
-EXTENSION_ENTRY(dyn_glBufferParameteri,ptr_glBufferParameteri,"glBufferParameteri",glBufferParameteri, GLenum -> GLenum -> GLint -> IO ())
-
-gl__BUFFER_SERIALIZED_MODIFY :: GLenum
-gl__BUFFER_SERIALIZED_MODIFY = 0x8A12
-
-gl_BUFFER_FLUSHING_UNMAP :: GLenum
-gl_BUFFER_FLUSHING_UNMAP = 0x8A13
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/APPLE/ObjectPurgeable.hs b/src/Graphics/Rendering/OpenGL/Raw/APPLE/ObjectPurgeable.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/APPLE/ObjectPurgeable.hs
@@ -0,0 +1,30 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.APPLE.ObjectPurgeable
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/APPLE/object_purgeable.txt APPLE_object_purgeable> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.APPLE.ObjectPurgeable (
+  -- * Enums
+  gl_BUFFER_OBJECT_APPLE,
+  gl_PURGEABLE_APPLE,
+  gl_RELEASED_APPLE,
+  gl_RETAINED_APPLE,
+  gl_UNDEFINED_APPLE,
+  gl_VOLATILE_APPLE,
+  -- * Functions
+  glGetObjectParameterivAPPLE,
+  glObjectPurgeableAPPLE,
+  glObjectUnpurgeableAPPLE
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/APPLE/RGB422.hs b/src/Graphics/Rendering/OpenGL/Raw/APPLE/RGB422.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/APPLE/RGB422.hs
@@ -0,0 +1,23 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.APPLE.RGB422
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/APPLE/rgb_422.txt APPLE_rgb_422> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.APPLE.RGB422 (
+  -- * Enums
+  gl_RGB_422_APPLE,
+  gl_RGB_RAW_422_APPLE,
+  gl_UNSIGNED_SHORT_8_8_APPLE,
+  gl_UNSIGNED_SHORT_8_8_REV_APPLE
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/APPLE/RowBytes.hs b/src/Graphics/Rendering/OpenGL/Raw/APPLE/RowBytes.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/APPLE/RowBytes.hs
@@ -0,0 +1,21 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.APPLE.RowBytes
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/APPLE/row_bytes.txt APPLE_row_bytes> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.APPLE.RowBytes (
+  -- * Enums
+  gl_PACK_ROW_BYTES_APPLE,
+  gl_UNPACK_ROW_BYTES_APPLE
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/APPLE/SpecularVector.hs b/src/Graphics/Rendering/OpenGL/Raw/APPLE/SpecularVector.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/APPLE/SpecularVector.hs
@@ -0,0 +1,20 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.APPLE.SpecularVector
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/APPLE/specular_vector.txt APPLE_specular_vector> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.APPLE.SpecularVector (
+  -- * Enums
+  gl_LIGHT_MODEL_SPECULAR_VECTOR_APPLE
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/APPLE/TextureRange.hs b/src/Graphics/Rendering/OpenGL/Raw/APPLE/TextureRange.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/APPLE/TextureRange.hs
@@ -0,0 +1,29 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.APPLE.TextureRange
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/APPLE/texture_range.txt APPLE_texture_range> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.APPLE.TextureRange (
+  -- * Enums
+  gl_STORAGE_CACHED_APPLE,
+  gl_STORAGE_PRIVATE_APPLE,
+  gl_STORAGE_SHARED_APPLE,
+  gl_TEXTURE_RANGE_LENGTH_APPLE,
+  gl_TEXTURE_RANGE_POINTER_APPLE,
+  gl_TEXTURE_STORAGE_HINT_APPLE,
+  -- * Functions
+  glGetTexParameterPointervAPPLE,
+  glTextureRangeAPPLE
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/APPLE/TransformHint.hs b/src/Graphics/Rendering/OpenGL/Raw/APPLE/TransformHint.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/APPLE/TransformHint.hs
@@ -0,0 +1,20 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.APPLE.TransformHint
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/APPLE/transform_hint.txt APPLE_transform_hint> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.APPLE.TransformHint (
+  -- * Enums
+  gl_TRANSFORM_HINT_APPLE
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/APPLE/VertexArrayObject.hs b/src/Graphics/Rendering/OpenGL/Raw/APPLE/VertexArrayObject.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/APPLE/VertexArrayObject.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/APPLE/VertexArrayObject.hs
@@ -1,39 +1,26 @@
-{-# LANGUAGE CPP #-}
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.APPLE.VertexArrayObject
--- Copyright   :  (c) Sven Panne 2014
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All raw functions and tokens from the APPLE_vertex_array_object extension,
--- see <http://www.opengl.org/registry/specs/APPLE/vertex_array_object.txt>.
+-- The <https://www.opengl.org/registry/specs/APPLE/vertex_array_object.txt APPLE_vertex_array_object> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.APPLE.VertexArrayObject (
-   -- * Functions
-   glBindVertexArrayAPPLE,
-   glDeleteVertexArrays,
-   glGenVertexArrays,
-   glIsVertexArray,
-
-   -- * Tokens
-   gl_VERTEX_ARRAY_BINDING
+  -- * Enums
+  gl_VERTEX_ARRAY_BINDING_APPLE,
+  -- * Functions
+  glBindVertexArrayAPPLE,
+  glDeleteVertexArraysAPPLE,
+  glGenVertexArraysAPPLE,
+  glIsVertexArrayAPPLE
 ) where
 
-import Foreign.C.Types
-import Graphics.Rendering.OpenGL.Raw.ARB.VertexArrayObject
-import Graphics.Rendering.OpenGL.Raw.Types
-import Foreign.Ptr ( FunPtr )
-import Graphics.Rendering.OpenGL.Raw.GetProcAddress ( getExtensionChecked )
-import System.IO.Unsafe ( unsafePerformIO )
-
---------------------------------------------------------------------------------
-
-#include "HsOpenGLRaw.h"
-
-EXTENSION_ENTRY(dyn_glBindVertexArrayAPPLE,ptr_glBindVertexArrayAPPLE,"glBindVertexArrayAPPLE",glBindVertexArrayAPPLE,GLuint -> IO ())
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/APPLE/VertexArrayRange.hs b/src/Graphics/Rendering/OpenGL/Raw/APPLE/VertexArrayRange.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/APPLE/VertexArrayRange.hs
@@ -0,0 +1,31 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.APPLE.VertexArrayRange
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/APPLE/vertex_array_range.txt APPLE_vertex_array_range> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.APPLE.VertexArrayRange (
+  -- * Enums
+  gl_STORAGE_CACHED_APPLE,
+  gl_STORAGE_CLIENT_APPLE,
+  gl_STORAGE_SHARED_APPLE,
+  gl_VERTEX_ARRAY_RANGE_APPLE,
+  gl_VERTEX_ARRAY_RANGE_LENGTH_APPLE,
+  gl_VERTEX_ARRAY_RANGE_POINTER_APPLE,
+  gl_VERTEX_ARRAY_STORAGE_HINT_APPLE,
+  -- * Functions
+  glFlushVertexArrayRangeAPPLE,
+  glVertexArrayParameteriAPPLE,
+  glVertexArrayRangeAPPLE
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/APPLE/VertexProgramEvaluators.hs b/src/Graphics/Rendering/OpenGL/Raw/APPLE/VertexProgramEvaluators.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/APPLE/VertexProgramEvaluators.hs
@@ -0,0 +1,38 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.APPLE.VertexProgramEvaluators
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/APPLE/vertex_program_evaluators.txt APPLE_vertex_program_evaluators> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.APPLE.VertexProgramEvaluators (
+  -- * Enums
+  gl_VERTEX_ATTRIB_MAP1_APPLE,
+  gl_VERTEX_ATTRIB_MAP1_COEFF_APPLE,
+  gl_VERTEX_ATTRIB_MAP1_DOMAIN_APPLE,
+  gl_VERTEX_ATTRIB_MAP1_ORDER_APPLE,
+  gl_VERTEX_ATTRIB_MAP1_SIZE_APPLE,
+  gl_VERTEX_ATTRIB_MAP2_APPLE,
+  gl_VERTEX_ATTRIB_MAP2_COEFF_APPLE,
+  gl_VERTEX_ATTRIB_MAP2_DOMAIN_APPLE,
+  gl_VERTEX_ATTRIB_MAP2_ORDER_APPLE,
+  gl_VERTEX_ATTRIB_MAP2_SIZE_APPLE,
+  -- * Functions
+  glDisableVertexAttribAPPLE,
+  glEnableVertexAttribAPPLE,
+  glIsVertexAttribEnabledAPPLE,
+  glMapVertexAttrib1dAPPLE,
+  glMapVertexAttrib1fAPPLE,
+  glMapVertexAttrib2dAPPLE,
+  glMapVertexAttrib2fAPPLE
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/APPLE/YCbCr422.hs b/src/Graphics/Rendering/OpenGL/Raw/APPLE/YCbCr422.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/APPLE/YCbCr422.hs
@@ -0,0 +1,22 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.APPLE.YCbCr422
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/APPLE/ycbcr_422.txt APPLE_ycbcr_422> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.APPLE.YCbCr422 (
+  -- * Enums
+  gl_UNSIGNED_SHORT_8_8_APPLE,
+  gl_UNSIGNED_SHORT_8_8_REV_APPLE,
+  gl_YCBCR_422_APPLE
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/ARB.hs
@@ -1,7 +1,7 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.ARB
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
@@ -13,309 +13,273 @@
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.ARB (
-   module Graphics.Rendering.OpenGL.Raw.ARB.Multitexture,                -- #1
-   -- module Graphics.Rendering.OpenGL.Raw.ARB.GLX.GetProcAddress,       -- #2
-   module Graphics.Rendering.OpenGL.Raw.ARB.TransposeMatrix,             -- #3
-   -- module Graphics.Rendering.OpenGL.Raw.ARB.WGL.BufferRegion,         -- #4
-   module Graphics.Rendering.OpenGL.Raw.ARB.Multisample,                 -- #5
-   module Graphics.Rendering.OpenGL.Raw.ARB.TextureEnvAdd,               -- #6
-   module Graphics.Rendering.OpenGL.Raw.ARB.TextureCubeMap,              -- #7
-   -- module Graphics.Rendering.OpenGL.Raw.ARB.WGL.ExtensionsString,     -- #8
-   -- module Graphics.Rendering.OpenGL.Raw.ARB.WGL.PixelFormat,          -- #9
-   -- module Graphics.Rendering.OpenGL.Raw.ARB.WGL.MakeCurrentRead,      -- #10
-   -- module Graphics.Rendering.OpenGL.Raw.ARB.WGL.PBuffer,              -- #11
-   module Graphics.Rendering.OpenGL.Raw.ARB.TextureCompression,          -- #12
-   module Graphics.Rendering.OpenGL.Raw.ARB.TextureBorderClamp,          -- #13
-   module Graphics.Rendering.OpenGL.Raw.ARB.PointParameters,             -- #14
-   module Graphics.Rendering.OpenGL.Raw.ARB.VertexBlend,                 -- #15
-   module Graphics.Rendering.OpenGL.Raw.ARB.MatrixPalette,               -- #16
-   module Graphics.Rendering.OpenGL.Raw.ARB.TextureEnvCombine,           -- #17
-   module Graphics.Rendering.OpenGL.Raw.ARB.TextureEnvCrossbar,          -- #18
-   module Graphics.Rendering.OpenGL.Raw.ARB.TextureEnvDot3,              -- #19
-   -- module Graphics.Rendering.OpenGL.Raw.ARB.WGL.RenderTexture,        -- #20
-   module Graphics.Rendering.OpenGL.Raw.ARB.TextureMirroredRepeat,       -- #21
-   module Graphics.Rendering.OpenGL.Raw.ARB.DepthTexture,                -- #22
-   module Graphics.Rendering.OpenGL.Raw.ARB.Shadow,                      -- #23
-   module Graphics.Rendering.OpenGL.Raw.ARB.ShadowAmbient,               -- #24
-   module Graphics.Rendering.OpenGL.Raw.ARB.WindowPos,                   -- #25
-   module Graphics.Rendering.OpenGL.Raw.ARB.VertexProgram,               -- #26
-   module Graphics.Rendering.OpenGL.Raw.ARB.FragmentProgram,             -- #27
-   module Graphics.Rendering.OpenGL.Raw.ARB.VertexBufferObject,          -- #28
-   module Graphics.Rendering.OpenGL.Raw.ARB.OcclusionQuery,              -- #29
-   module Graphics.Rendering.OpenGL.Raw.ARB.ShaderObjects,               -- #30
-   module Graphics.Rendering.OpenGL.Raw.ARB.VertexShader,                -- #31
-   module Graphics.Rendering.OpenGL.Raw.ARB.FragmentShader,              -- #32
-   module Graphics.Rendering.OpenGL.Raw.ARB.ShadingLanguage100,          -- #33
-   -- module Graphics.Rendering.OpenGL.Raw.ARB.TextureNonPowerOfTwo,     -- #34
-   module Graphics.Rendering.OpenGL.Raw.ARB.PointSprite,                 -- #35
-   -- module Graphics.Rendering.OpenGL.Raw.ARB.FragmentProgramShadow,    -- #36
-   module Graphics.Rendering.OpenGL.Raw.ARB.DrawBuffers,                 -- #37
-   module Graphics.Rendering.OpenGL.Raw.ARB.TextureRectangle,            -- #38
-   module Graphics.Rendering.OpenGL.Raw.ARB.ColorBufferFloat,            -- #39
-   module Graphics.Rendering.OpenGL.Raw.ARB.HalfFloatPixel,              -- #40
-   module Graphics.Rendering.OpenGL.Raw.ARB.TextureFloat,                -- #41
-   module Graphics.Rendering.OpenGL.Raw.ARB.PixelBufferObject,           -- #42
-   module Graphics.Rendering.OpenGL.Raw.ARB.DepthBufferFloat,            -- #43
-   module Graphics.Rendering.OpenGL.Raw.ARB.DrawInstanced,               -- #44
-   module Graphics.Rendering.OpenGL.Raw.ARB.FramebufferObject,           -- #45
-   module Graphics.Rendering.OpenGL.Raw.ARB.FramebufferSRGB,             -- #46
-   module Graphics.Rendering.OpenGL.Raw.ARB.GeometryShader4,             -- #47
-   module Graphics.Rendering.OpenGL.Raw.ARB.HalfFloatVertex,             -- #48
-   module Graphics.Rendering.OpenGL.Raw.ARB.InstancedArrays,             -- #49
-   module Graphics.Rendering.OpenGL.Raw.ARB.MapBufferRange,              -- #50
-   module Graphics.Rendering.OpenGL.Raw.ARB.TextureBufferObject,         -- #51
-   module Graphics.Rendering.OpenGL.Raw.ARB.TextureCompressionRGTC,      -- #52
-   module Graphics.Rendering.OpenGL.Raw.ARB.TextureRG,                   -- #53
-   module Graphics.Rendering.OpenGL.Raw.ARB.VertexArrayObject,           -- #54
-   -- module Graphics.Rendering.OpenGL.Raw.ARB.WGL.CreateContext,        -- #55
-   -- module Graphics.Rendering.OpenGL.Raw.ARB.GLX.CreateContext,        -- #56
-   module Graphics.Rendering.OpenGL.Raw.ARB.UniformBufferObject,         -- #57
-   module Graphics.Rendering.OpenGL.Raw.ARB.Compatibility,               -- #58
-   module Graphics.Rendering.OpenGL.Raw.ARB.CopyBuffer,                  -- #59
-   -- module Graphics.Rendering.OpenGL.Raw.ARB.ShaderTextureLOD,         -- #60
-   module Graphics.Rendering.OpenGL.Raw.ARB.DepthClamp,                  -- #61
-   module Graphics.Rendering.OpenGL.Raw.ARB.DrawElementsBaseVertex,      -- #62
-   -- module Graphics.Rendering.OpenGL.Raw.ARB.FragmentCoordConventions, -- #63
-   module Graphics.Rendering.OpenGL.Raw.ARB.ProvokingVertex,             -- #64
-   module Graphics.Rendering.OpenGL.Raw.ARB.SeamlessCubeMap,             -- #65
-   module Graphics.Rendering.OpenGL.Raw.ARB.Sync,                        -- #66
-   module Graphics.Rendering.OpenGL.Raw.ARB.TextureMultisample,          -- #67
-   -- module Graphics.Rendering.OpenGL.Raw.ARB.VertexArrayBGRA,          -- #68
-   module Graphics.Rendering.OpenGL.Raw.ARB.DrawBuffersBlend,            -- #69
-   module Graphics.Rendering.OpenGL.Raw.ARB.SampleShading,               -- #70
-   module Graphics.Rendering.OpenGL.Raw.ARB.TextureCubeMapArray,         -- #71
-   module Graphics.Rendering.OpenGL.Raw.ARB.TextureGather,               -- #72
-   -- module Graphics.Rendering.OpenGL.Raw.ARB.TextureQueryLOD,          -- #73
-   -- module Graphics.Rendering.OpenGL.Raw.ARB.WGL.CreateContextProfile, -- #74
-   module Graphics.Rendering.OpenGL.Raw.ARB.CreateContextProfile,        -- #75
-   module Graphics.Rendering.OpenGL.Raw.ARB.ShadingLanguageInclude,      -- #76
-   module Graphics.Rendering.OpenGL.Raw.ARB.TextureCompressionBPTC,      -- #77
-   module Graphics.Rendering.OpenGL.Raw.ARB.BlendFuncExtended,           -- #78
-   -- module Graphics.Rendering.OpenGL.Raw.ARB.ExplicitAttribLocation,   -- #79
-   module Graphics.Rendering.OpenGL.Raw.ARB.OcclusionQuery2,             -- #80
-   module Graphics.Rendering.OpenGL.Raw.ARB.SamplerObjects,              -- #81
-   -- module Graphics.Rendering.OpenGL.Raw.ARB.ShaderBitEncoding,        -- #82
-   module Graphics.Rendering.OpenGL.Raw.ARB.TextureRGB10A2UI,            -- #83
-   module Graphics.Rendering.OpenGL.Raw.ARB.TextureSwizzle,              -- #84
-   module Graphics.Rendering.OpenGL.Raw.ARB.TimerQuery,                  -- #85
-   module Graphics.Rendering.OpenGL.Raw.ARB.VertexType2101010Rev,        -- #86
-   module Graphics.Rendering.OpenGL.Raw.ARB.DrawIndirect,                -- #87
-   module Graphics.Rendering.OpenGL.Raw.ARB.GPUShader5,                  -- #88
-   module Graphics.Rendering.OpenGL.Raw.ARB.GPUShaderFP64,               -- #89
-   module Graphics.Rendering.OpenGL.Raw.ARB.ShaderSubroutine,            -- #90
-   module Graphics.Rendering.OpenGL.Raw.ARB.TessellationShader,          -- #91
-   -- module Graphics.Rendering.OpenGL.Raw.ARB.TextureBufferObjectRGB32, -- #92
-   module Graphics.Rendering.OpenGL.Raw.ARB.TransformFeedback2,          -- #93
-   module Graphics.Rendering.OpenGL.Raw.ARB.TransformFeedback3,          -- #94
-   module Graphics.Rendering.OpenGL.Raw.ARB.ES2Compatibility,            -- #95
-   module Graphics.Rendering.OpenGL.Raw.ARB.GetProgramBinary,            -- #96
-   module Graphics.Rendering.OpenGL.Raw.ARB.SeparateShaderObjects,       -- #97
-   -- module Graphics.Rendering.OpenGL.Raw.ARB.ShaderPrecision,          -- #98
-   module Graphics.Rendering.OpenGL.Raw.ARB.VertexAttrib64Bit,           -- #99
-   -- module Graphics.Rendering.OpenGL.Raw.ARB.ViewportArray,            -- #100
-   -- module Graphics.Rendering.OpenGL.Raw.ARB.CLEvent,                  -- #103
-   -- module Graphics.Rendering.OpenGL.Raw.ARB.DebugOutput,              -- #104
-   -- module Graphics.Rendering.OpenGL.Raw.ARB.Robustness,               -- #105
-   -- module Graphics.Rendering.OpenGL.Raw.ARB.ShaderStencilExport,      -- #106
-   -- module Graphics.Rendering.OpenGL.Raw.ARB.BaseInstance,             -- #107
-   -- module Graphics.Rendering.OpenGL.Raw.ARB.ShadingLanguage420pack,   -- #108
-   -- module Graphics.Rendering.OpenGL.Raw.ARB.TransformFeedbackInstanced, -- #109
-   -- module Graphics.Rendering.OpenGL.Raw.ARB.CompressedTexturePixelStorage, -- #110
-   -- module Graphics.Rendering.OpenGL.Raw.ARB.ConservativeDepth,        -- #111
-   -- module Graphics.Rendering.OpenGL.Raw.ARB.InternalformatQuery,      -- #112
-   -- module Graphics.Rendering.OpenGL.Raw.ARB.MapBufferAlignment,       -- #113
-   module Graphics.Rendering.OpenGL.Raw.ARB.ShaderAtomicCounters,        -- #114
-   -- module Graphics.Rendering.OpenGL.Raw.ARB.ShaderImageLoadStore,     -- #115
-   -- module Graphics.Rendering.OpenGL.Raw.ARB.ShadingLanguagePacking,   -- #116
-   -- module Graphics.Rendering.OpenGL.Raw.ARB.TextureStorage,           -- #117
-   -- module Graphics.Rendering.OpenGL.Raw.ARB.ArraysOfArrays,           -- #120
-   -- module Graphics.Rendering.OpenGL.Raw.ARB.ClearBufferObject,        -- #121
-   module Graphics.Rendering.OpenGL.Raw.ARB.ComputeShader,               -- #122
-   -- module Graphics.Rendering.OpenGL.Raw.ARB.CopyImage,                -- #123
-   -- module Graphics.Rendering.OpenGL.Raw.ARB.TextureView,              -- #124
-   -- module Graphics.Rendering.OpenGL.Raw.ARB.VertexAttribBinding,      -- #125
-   -- module Graphics.Rendering.OpenGL.Raw.ARB.RobustnessIsolation,      -- #126
-   module Graphics.Rendering.OpenGL.Raw.ARB.ES3Compatibility,            -- #127
-   -- module Graphics.Rendering.OpenGL.Raw.ARB.ExplicitUniformLocation,  -- #128
-   -- module Graphics.Rendering.OpenGL.Raw.ARB.FragmentLayerViewport,    -- #129
-   module Graphics.Rendering.OpenGL.Raw.ARB.FramebufferNoAttachments,    -- #130
-   -- module Graphics.Rendering.OpenGL.Raw.ARB.InternalformatQuery2,     -- #131
-   -- module Graphics.Rendering.OpenGL.Raw.ARB.InvalidateSubdata,        -- #132
-   -- module Graphics.Rendering.OpenGL.Raw.ARB.MultiDrawIndirect,        -- #133
-   -- module Graphics.Rendering.OpenGL.Raw.ARB.ProgramInterfaceQuery,    -- #134
-   -- module Graphics.Rendering.OpenGL.Raw.ARB.RobustBufferAccessBehavior, -- #135
-   -- module Graphics.Rendering.OpenGL.Raw.ARB.ShaderImageSize,          -- #136
-   module Graphics.Rendering.OpenGL.Raw.ARB.ShaderStorageBufferObject,   -- #137
-   -- module Graphics.Rendering.OpenGL.Raw.ARB.StencilTexturing,         -- #138
-   -- module Graphics.Rendering.OpenGL.Raw.ARB.TextureBufferRange,       -- #139
-   -- module Graphics.Rendering.OpenGL.Raw.ARB.TextureQueryLevels,       -- #140
-   -- module Graphics.Rendering.OpenGL.Raw.ARB.TextureStorageMultisample,-- #141
-   -- module Graphics.Rendering.OpenGL.Raw.ARB.BufferStorage,            -- #144
-   -- module Graphics.Rendering.OpenGL.Raw.ARB.ClearTexture,             -- #145
-   -- module Graphics.Rendering.OpenGL.Raw.ARB.EnhancedLayouts,          -- #146
-   -- module Graphics.Rendering.OpenGL.Raw.ARB.MultiBind,                -- #147
-   module Graphics.Rendering.OpenGL.Raw.ARB.QueryBufferObject            -- #148
-   -- module Graphics.Rendering.OpenGL.Raw.ARB.TextureMirrorClampToEdge, -- #149
-   -- module Graphics.Rendering.OpenGL.Raw.ARB.TextureStencil8,          -- #150
-   -- module Graphics.Rendering.OpenGL.Raw.ARB.VertexType10f11f11fRev,   -- #151
-   -- module Graphics.Rendering.OpenGL.Raw.ARB.BindlessTexture,          -- #152
-   -- module Graphics.Rendering.OpenGL.Raw.ARB.ComputeVariableGroupSize, -- #153
-   -- module Graphics.Rendering.OpenGL.Raw.ARB.IndirectParameters,       -- #154
-   -- module Graphics.Rendering.OpenGL.Raw.ARB.SeamlessCubemapPerTexture,-- #155
-   -- module Graphics.Rendering.OpenGL.Raw.ARB.ShaderDrawParameters,     -- #156
-   -- module Graphics.Rendering.OpenGL.Raw.ARB.ShaderGroupVote,          -- #157
-   -- module Graphics.Rendering.OpenGL.Raw.ARB.SparseTexture             -- #158
+  module Graphics.Rendering.OpenGL.Raw.ARB.BaseInstance,
+  module Graphics.Rendering.OpenGL.Raw.ARB.BindlessTexture,
+  module Graphics.Rendering.OpenGL.Raw.ARB.BlendFuncExtended,
+  module Graphics.Rendering.OpenGL.Raw.ARB.BufferStorage,
+  module Graphics.Rendering.OpenGL.Raw.ARB.ClearBufferObject,
+  module Graphics.Rendering.OpenGL.Raw.ARB.ClearTexture,
+  module Graphics.Rendering.OpenGL.Raw.ARB.CLEvent,
+  module Graphics.Rendering.OpenGL.Raw.ARB.ClipControl,
+  module Graphics.Rendering.OpenGL.Raw.ARB.ColorBufferFloat,
+  module Graphics.Rendering.OpenGL.Raw.ARB.Compatibility,
+  module Graphics.Rendering.OpenGL.Raw.ARB.CompressedTexturePixelStorage,
+  module Graphics.Rendering.OpenGL.Raw.ARB.ComputeShader,
+  module Graphics.Rendering.OpenGL.Raw.ARB.ComputeVariableGroupSize,
+  module Graphics.Rendering.OpenGL.Raw.ARB.ConditionalRenderInverted,
+  module Graphics.Rendering.OpenGL.Raw.ARB.CopyBuffer,
+  module Graphics.Rendering.OpenGL.Raw.ARB.CopyImage,
+  module Graphics.Rendering.OpenGL.Raw.ARB.CullDistance,
+  module Graphics.Rendering.OpenGL.Raw.ARB.DebugOutput,
+  module Graphics.Rendering.OpenGL.Raw.ARB.DepthBufferFloat,
+  module Graphics.Rendering.OpenGL.Raw.ARB.DepthClamp,
+  module Graphics.Rendering.OpenGL.Raw.ARB.DepthTexture,
+  module Graphics.Rendering.OpenGL.Raw.ARB.DirectStateAccess,
+  module Graphics.Rendering.OpenGL.Raw.ARB.DrawBuffersBlend,
+  module Graphics.Rendering.OpenGL.Raw.ARB.DrawBuffers,
+  module Graphics.Rendering.OpenGL.Raw.ARB.DrawElementsBaseVertex,
+  module Graphics.Rendering.OpenGL.Raw.ARB.DrawIndirect,
+  module Graphics.Rendering.OpenGL.Raw.ARB.DrawInstanced,
+  module Graphics.Rendering.OpenGL.Raw.ARB.EnhancedLayouts,
+  module Graphics.Rendering.OpenGL.Raw.ARB.ES2Compatibility,
+  module Graphics.Rendering.OpenGL.Raw.ARB.ES31Compatibility,
+  module Graphics.Rendering.OpenGL.Raw.ARB.ES3Compatibility,
+  module Graphics.Rendering.OpenGL.Raw.ARB.ExplicitUniformLocation,
+  module Graphics.Rendering.OpenGL.Raw.ARB.FragmentProgram,
+  module Graphics.Rendering.OpenGL.Raw.ARB.FragmentShader,
+  module Graphics.Rendering.OpenGL.Raw.ARB.FramebufferNoAttachments,
+  module Graphics.Rendering.OpenGL.Raw.ARB.FramebufferObjectCompatibility,
+  module Graphics.Rendering.OpenGL.Raw.ARB.FramebufferObjectCore,
+  module Graphics.Rendering.OpenGL.Raw.ARB.FramebufferSRGB,
+  module Graphics.Rendering.OpenGL.Raw.ARB.GeometryShader4,
+  module Graphics.Rendering.OpenGL.Raw.ARB.GetProgramBinary,
+  module Graphics.Rendering.OpenGL.Raw.ARB.GetTextureSubImage,
+  module Graphics.Rendering.OpenGL.Raw.ARB.GPUShader5,
+  module Graphics.Rendering.OpenGL.Raw.ARB.GPUShaderFP64,
+  module Graphics.Rendering.OpenGL.Raw.ARB.HalfFloatPixel,
+  module Graphics.Rendering.OpenGL.Raw.ARB.HalfFloatVertex,
+  module Graphics.Rendering.OpenGL.Raw.ARB.ImagingCompatibility,
+  module Graphics.Rendering.OpenGL.Raw.ARB.ImagingCore,
+  module Graphics.Rendering.OpenGL.Raw.ARB.IndirectParameters,
+  module Graphics.Rendering.OpenGL.Raw.ARB.InstancedArrays,
+  module Graphics.Rendering.OpenGL.Raw.ARB.InternalformatQuery2,
+  module Graphics.Rendering.OpenGL.Raw.ARB.InternalformatQuery,
+  module Graphics.Rendering.OpenGL.Raw.ARB.InvalidateSubdata,
+  module Graphics.Rendering.OpenGL.Raw.ARB.MapBufferAlignment,
+  module Graphics.Rendering.OpenGL.Raw.ARB.MapBufferRange,
+  module Graphics.Rendering.OpenGL.Raw.ARB.MatrixPalette,
+  module Graphics.Rendering.OpenGL.Raw.ARB.MultiBind,
+  module Graphics.Rendering.OpenGL.Raw.ARB.MultiDrawIndirect,
+  module Graphics.Rendering.OpenGL.Raw.ARB.Multisample,
+  module Graphics.Rendering.OpenGL.Raw.ARB.Multitexture,
+  module Graphics.Rendering.OpenGL.Raw.ARB.OcclusionQuery2,
+  module Graphics.Rendering.OpenGL.Raw.ARB.OcclusionQuery,
+  module Graphics.Rendering.OpenGL.Raw.ARB.PipelineStatisticsQuery,
+  module Graphics.Rendering.OpenGL.Raw.ARB.PixelBufferObject,
+  module Graphics.Rendering.OpenGL.Raw.ARB.PointParameters,
+  module Graphics.Rendering.OpenGL.Raw.ARB.PointSprite,
+  module Graphics.Rendering.OpenGL.Raw.ARB.ProgramInterfaceQuery,
+  module Graphics.Rendering.OpenGL.Raw.ARB.ProvokingVertex,
+  module Graphics.Rendering.OpenGL.Raw.ARB.QueryBufferObject,
+  module Graphics.Rendering.OpenGL.Raw.ARB.RobustnessCompatibility,
+  module Graphics.Rendering.OpenGL.Raw.ARB.RobustnessCore,
+  module Graphics.Rendering.OpenGL.Raw.ARB.SamplerObjects,
+  module Graphics.Rendering.OpenGL.Raw.ARB.SampleShading,
+  module Graphics.Rendering.OpenGL.Raw.ARB.SeamlessCubeMap,
+  module Graphics.Rendering.OpenGL.Raw.ARB.SeamlessCubemapPerTexture,
+  module Graphics.Rendering.OpenGL.Raw.ARB.SeparateShaderObjects,
+  module Graphics.Rendering.OpenGL.Raw.ARB.ShaderAtomicCounters,
+  module Graphics.Rendering.OpenGL.Raw.ARB.ShaderImageLoadStore,
+  module Graphics.Rendering.OpenGL.Raw.ARB.ShaderObjects,
+  module Graphics.Rendering.OpenGL.Raw.ARB.ShaderStorageBufferObject,
+  module Graphics.Rendering.OpenGL.Raw.ARB.ShaderSubroutine,
+  module Graphics.Rendering.OpenGL.Raw.ARB.ShadingLanguage100,
+  module Graphics.Rendering.OpenGL.Raw.ARB.ShadingLanguageInclude,
+  module Graphics.Rendering.OpenGL.Raw.ARB.ShadowAmbient,
+  module Graphics.Rendering.OpenGL.Raw.ARB.Shadow,
+  module Graphics.Rendering.OpenGL.Raw.ARB.SparseBuffer,
+  module Graphics.Rendering.OpenGL.Raw.ARB.SparseTexture,
+  module Graphics.Rendering.OpenGL.Raw.ARB.StencilTexturing,
+  module Graphics.Rendering.OpenGL.Raw.ARB.Sync,
+  module Graphics.Rendering.OpenGL.Raw.ARB.TessellationShader,
+  module Graphics.Rendering.OpenGL.Raw.ARB.TextureBarrier,
+  module Graphics.Rendering.OpenGL.Raw.ARB.TextureBorderClamp,
+  module Graphics.Rendering.OpenGL.Raw.ARB.TextureBufferObject,
+  module Graphics.Rendering.OpenGL.Raw.ARB.TextureBufferObjectRGB32,
+  module Graphics.Rendering.OpenGL.Raw.ARB.TextureBufferRange,
+  module Graphics.Rendering.OpenGL.Raw.ARB.TextureCompressionBPTC,
+  module Graphics.Rendering.OpenGL.Raw.ARB.TextureCompression,
+  module Graphics.Rendering.OpenGL.Raw.ARB.TextureCompressionRGTC,
+  module Graphics.Rendering.OpenGL.Raw.ARB.TextureCubeMapArray,
+  module Graphics.Rendering.OpenGL.Raw.ARB.TextureCubeMap,
+  module Graphics.Rendering.OpenGL.Raw.ARB.TextureEnvCombine,
+  module Graphics.Rendering.OpenGL.Raw.ARB.TextureEnvDot3,
+  module Graphics.Rendering.OpenGL.Raw.ARB.TextureFloat,
+  module Graphics.Rendering.OpenGL.Raw.ARB.TextureGather,
+  module Graphics.Rendering.OpenGL.Raw.ARB.TextureMirrorClampToEdge,
+  module Graphics.Rendering.OpenGL.Raw.ARB.TextureMirroredRepeat,
+  module Graphics.Rendering.OpenGL.Raw.ARB.TextureMultisample,
+  module Graphics.Rendering.OpenGL.Raw.ARB.TextureRectangle,
+  module Graphics.Rendering.OpenGL.Raw.ARB.TextureRGB10A2UI,
+  module Graphics.Rendering.OpenGL.Raw.ARB.TextureRG,
+  module Graphics.Rendering.OpenGL.Raw.ARB.TextureStencil8,
+  module Graphics.Rendering.OpenGL.Raw.ARB.TextureStorage,
+  module Graphics.Rendering.OpenGL.Raw.ARB.TextureStorageMultisample,
+  module Graphics.Rendering.OpenGL.Raw.ARB.TextureSwizzle,
+  module Graphics.Rendering.OpenGL.Raw.ARB.TextureView,
+  module Graphics.Rendering.OpenGL.Raw.ARB.TimerQuery,
+  module Graphics.Rendering.OpenGL.Raw.ARB.TransformFeedback2,
+  module Graphics.Rendering.OpenGL.Raw.ARB.TransformFeedback3,
+  module Graphics.Rendering.OpenGL.Raw.ARB.TransformFeedbackInstanced,
+  module Graphics.Rendering.OpenGL.Raw.ARB.TransformFeedbackOverflowQuery,
+  module Graphics.Rendering.OpenGL.Raw.ARB.TransposeMatrix,
+  module Graphics.Rendering.OpenGL.Raw.ARB.UniformBufferObject,
+  module Graphics.Rendering.OpenGL.Raw.ARB.VertexArrayBGRA,
+  module Graphics.Rendering.OpenGL.Raw.ARB.VertexArrayObject,
+  module Graphics.Rendering.OpenGL.Raw.ARB.VertexAttrib64Bit,
+  module Graphics.Rendering.OpenGL.Raw.ARB.VertexAttribBinding,
+  module Graphics.Rendering.OpenGL.Raw.ARB.VertexBlend,
+  module Graphics.Rendering.OpenGL.Raw.ARB.VertexBufferObject,
+  module Graphics.Rendering.OpenGL.Raw.ARB.VertexProgram,
+  module Graphics.Rendering.OpenGL.Raw.ARB.VertexShader,
+  module Graphics.Rendering.OpenGL.Raw.ARB.VertexType10f11f11fRev,
+  module Graphics.Rendering.OpenGL.Raw.ARB.VertexType2101010RevCompatibility,
+  module Graphics.Rendering.OpenGL.Raw.ARB.VertexType2101010RevCore,
+  module Graphics.Rendering.OpenGL.Raw.ARB.ViewportArray,
+  module Graphics.Rendering.OpenGL.Raw.ARB.WindowPos
 ) where
 
-import Graphics.Rendering.OpenGL.Raw.ARB.Multitexture
--- import Graphics.Rendering.OpenGL.Raw.ARB.GLX.GetProcAddress
-import Graphics.Rendering.OpenGL.Raw.ARB.TransposeMatrix
--- import Graphics.Rendering.OpenGL.Raw.ARB.WGL.BufferRegion
-import Graphics.Rendering.OpenGL.Raw.ARB.Multisample
-import Graphics.Rendering.OpenGL.Raw.ARB.TextureEnvAdd
-import Graphics.Rendering.OpenGL.Raw.ARB.TextureCubeMap
--- import Graphics.Rendering.OpenGL.Raw.ARB.WGL.ExtensionsString
--- import Graphics.Rendering.OpenGL.Raw.ARB.WGL.PixelFormat
--- import Graphics.Rendering.OpenGL.Raw.ARB.WGL.MakeCurrentRead
--- import Graphics.Rendering.OpenGL.Raw.ARB.WGL.PBuffer
-import Graphics.Rendering.OpenGL.Raw.ARB.TextureCompression
-import Graphics.Rendering.OpenGL.Raw.ARB.TextureBorderClamp
-import Graphics.Rendering.OpenGL.Raw.ARB.PointParameters
-import Graphics.Rendering.OpenGL.Raw.ARB.VertexBlend
-import Graphics.Rendering.OpenGL.Raw.ARB.MatrixPalette
-import Graphics.Rendering.OpenGL.Raw.ARB.TextureEnvCombine
-import Graphics.Rendering.OpenGL.Raw.ARB.TextureEnvCrossbar
-import Graphics.Rendering.OpenGL.Raw.ARB.TextureEnvDot3
--- import Graphics.Rendering.OpenGL.Raw.ARB.WGL.RenderTexture
-import Graphics.Rendering.OpenGL.Raw.ARB.TextureMirroredRepeat
-import Graphics.Rendering.OpenGL.Raw.ARB.DepthTexture
-import Graphics.Rendering.OpenGL.Raw.ARB.Shadow
-import Graphics.Rendering.OpenGL.Raw.ARB.ShadowAmbient
-import Graphics.Rendering.OpenGL.Raw.ARB.WindowPos
-import Graphics.Rendering.OpenGL.Raw.ARB.VertexProgram
-import Graphics.Rendering.OpenGL.Raw.ARB.FragmentProgram
-import Graphics.Rendering.OpenGL.Raw.ARB.VertexBufferObject
-import Graphics.Rendering.OpenGL.Raw.ARB.OcclusionQuery
-import Graphics.Rendering.OpenGL.Raw.ARB.ShaderObjects
-import Graphics.Rendering.OpenGL.Raw.ARB.VertexShader
-import Graphics.Rendering.OpenGL.Raw.ARB.FragmentShader
-import Graphics.Rendering.OpenGL.Raw.ARB.ShadingLanguage100
--- import Graphics.Rendering.OpenGL.Raw.ARB.TextureNonPowerOfTwo
-import Graphics.Rendering.OpenGL.Raw.ARB.PointSprite
--- import Graphics.Rendering.OpenGL.Raw.ARB.FragmentProgramShadow
-import Graphics.Rendering.OpenGL.Raw.ARB.DrawBuffers
-import Graphics.Rendering.OpenGL.Raw.ARB.TextureRectangle
+import Graphics.Rendering.OpenGL.Raw.ARB.BaseInstance
+import Graphics.Rendering.OpenGL.Raw.ARB.BindlessTexture
+import Graphics.Rendering.OpenGL.Raw.ARB.BlendFuncExtended
+import Graphics.Rendering.OpenGL.Raw.ARB.BufferStorage
+import Graphics.Rendering.OpenGL.Raw.ARB.ClearBufferObject
+import Graphics.Rendering.OpenGL.Raw.ARB.ClearTexture
+import Graphics.Rendering.OpenGL.Raw.ARB.CLEvent
+import Graphics.Rendering.OpenGL.Raw.ARB.ClipControl
 import Graphics.Rendering.OpenGL.Raw.ARB.ColorBufferFloat
-import Graphics.Rendering.OpenGL.Raw.ARB.HalfFloatPixel
-import Graphics.Rendering.OpenGL.Raw.ARB.TextureFloat
-import Graphics.Rendering.OpenGL.Raw.ARB.PixelBufferObject
+import Graphics.Rendering.OpenGL.Raw.ARB.Compatibility
+import Graphics.Rendering.OpenGL.Raw.ARB.CompressedTexturePixelStorage
+import Graphics.Rendering.OpenGL.Raw.ARB.ComputeShader
+import Graphics.Rendering.OpenGL.Raw.ARB.ComputeVariableGroupSize
+import Graphics.Rendering.OpenGL.Raw.ARB.ConditionalRenderInverted
+import Graphics.Rendering.OpenGL.Raw.ARB.CopyBuffer
+import Graphics.Rendering.OpenGL.Raw.ARB.CopyImage
+import Graphics.Rendering.OpenGL.Raw.ARB.CullDistance
+import Graphics.Rendering.OpenGL.Raw.ARB.DebugOutput
 import Graphics.Rendering.OpenGL.Raw.ARB.DepthBufferFloat
+import Graphics.Rendering.OpenGL.Raw.ARB.DepthClamp
+import Graphics.Rendering.OpenGL.Raw.ARB.DepthTexture
+import Graphics.Rendering.OpenGL.Raw.ARB.DirectStateAccess
+import Graphics.Rendering.OpenGL.Raw.ARB.DrawBuffersBlend
+import Graphics.Rendering.OpenGL.Raw.ARB.DrawBuffers
+import Graphics.Rendering.OpenGL.Raw.ARB.DrawElementsBaseVertex
+import Graphics.Rendering.OpenGL.Raw.ARB.DrawIndirect
 import Graphics.Rendering.OpenGL.Raw.ARB.DrawInstanced
-import Graphics.Rendering.OpenGL.Raw.ARB.FramebufferObject
+import Graphics.Rendering.OpenGL.Raw.ARB.EnhancedLayouts
+import Graphics.Rendering.OpenGL.Raw.ARB.ES2Compatibility
+import Graphics.Rendering.OpenGL.Raw.ARB.ES31Compatibility
+import Graphics.Rendering.OpenGL.Raw.ARB.ES3Compatibility
+import Graphics.Rendering.OpenGL.Raw.ARB.ExplicitUniformLocation
+import Graphics.Rendering.OpenGL.Raw.ARB.FragmentProgram
+import Graphics.Rendering.OpenGL.Raw.ARB.FragmentShader
+import Graphics.Rendering.OpenGL.Raw.ARB.FramebufferNoAttachments
+import Graphics.Rendering.OpenGL.Raw.ARB.FramebufferObjectCompatibility
+import Graphics.Rendering.OpenGL.Raw.ARB.FramebufferObjectCore
 import Graphics.Rendering.OpenGL.Raw.ARB.FramebufferSRGB
 import Graphics.Rendering.OpenGL.Raw.ARB.GeometryShader4
+import Graphics.Rendering.OpenGL.Raw.ARB.GetProgramBinary
+import Graphics.Rendering.OpenGL.Raw.ARB.GetTextureSubImage
+import Graphics.Rendering.OpenGL.Raw.ARB.GPUShader5
+import Graphics.Rendering.OpenGL.Raw.ARB.GPUShaderFP64
+import Graphics.Rendering.OpenGL.Raw.ARB.HalfFloatPixel
 import Graphics.Rendering.OpenGL.Raw.ARB.HalfFloatVertex
+import Graphics.Rendering.OpenGL.Raw.ARB.ImagingCompatibility
+import Graphics.Rendering.OpenGL.Raw.ARB.ImagingCore
+import Graphics.Rendering.OpenGL.Raw.ARB.IndirectParameters
 import Graphics.Rendering.OpenGL.Raw.ARB.InstancedArrays
+import Graphics.Rendering.OpenGL.Raw.ARB.InternalformatQuery2
+import Graphics.Rendering.OpenGL.Raw.ARB.InternalformatQuery
+import Graphics.Rendering.OpenGL.Raw.ARB.InvalidateSubdata
+import Graphics.Rendering.OpenGL.Raw.ARB.MapBufferAlignment
 import Graphics.Rendering.OpenGL.Raw.ARB.MapBufferRange
-import Graphics.Rendering.OpenGL.Raw.ARB.TextureBufferObject
-import Graphics.Rendering.OpenGL.Raw.ARB.TextureCompressionRGTC
-import Graphics.Rendering.OpenGL.Raw.ARB.TextureRG
-import Graphics.Rendering.OpenGL.Raw.ARB.VertexArrayObject
--- import Graphics.Rendering.OpenGL.Raw.ARB.WGL.CreateContext
--- import Graphics.Rendering.OpenGL.Raw.ARB.GLX.CreateContext
-import Graphics.Rendering.OpenGL.Raw.ARB.UniformBufferObject
-import Graphics.Rendering.OpenGL.Raw.ARB.Compatibility
-import Graphics.Rendering.OpenGL.Raw.ARB.CopyBuffer
--- import Graphics.Rendering.OpenGL.Raw.ARB.ShaderTextureLOD
-import Graphics.Rendering.OpenGL.Raw.ARB.DepthClamp
-import Graphics.Rendering.OpenGL.Raw.ARB.DrawElementsBaseVertex
--- import Graphics.Rendering.OpenGL.Raw.ARB.FragmentCoordConventions
+import Graphics.Rendering.OpenGL.Raw.ARB.MatrixPalette
+import Graphics.Rendering.OpenGL.Raw.ARB.MultiBind
+import Graphics.Rendering.OpenGL.Raw.ARB.MultiDrawIndirect
+import Graphics.Rendering.OpenGL.Raw.ARB.Multisample
+import Graphics.Rendering.OpenGL.Raw.ARB.Multitexture
+import Graphics.Rendering.OpenGL.Raw.ARB.OcclusionQuery2
+import Graphics.Rendering.OpenGL.Raw.ARB.OcclusionQuery
+import Graphics.Rendering.OpenGL.Raw.ARB.PipelineStatisticsQuery
+import Graphics.Rendering.OpenGL.Raw.ARB.PixelBufferObject
+import Graphics.Rendering.OpenGL.Raw.ARB.PointParameters
+import Graphics.Rendering.OpenGL.Raw.ARB.PointSprite
+import Graphics.Rendering.OpenGL.Raw.ARB.ProgramInterfaceQuery
 import Graphics.Rendering.OpenGL.Raw.ARB.ProvokingVertex
+import Graphics.Rendering.OpenGL.Raw.ARB.QueryBufferObject
+import Graphics.Rendering.OpenGL.Raw.ARB.RobustnessCompatibility
+import Graphics.Rendering.OpenGL.Raw.ARB.RobustnessCore
+import Graphics.Rendering.OpenGL.Raw.ARB.SamplerObjects
+import Graphics.Rendering.OpenGL.Raw.ARB.SampleShading
 import Graphics.Rendering.OpenGL.Raw.ARB.SeamlessCubeMap
+import Graphics.Rendering.OpenGL.Raw.ARB.SeamlessCubemapPerTexture
+import Graphics.Rendering.OpenGL.Raw.ARB.SeparateShaderObjects
+import Graphics.Rendering.OpenGL.Raw.ARB.ShaderAtomicCounters
+import Graphics.Rendering.OpenGL.Raw.ARB.ShaderImageLoadStore
+import Graphics.Rendering.OpenGL.Raw.ARB.ShaderObjects
+import Graphics.Rendering.OpenGL.Raw.ARB.ShaderStorageBufferObject
+import Graphics.Rendering.OpenGL.Raw.ARB.ShaderSubroutine
+import Graphics.Rendering.OpenGL.Raw.ARB.ShadingLanguage100
+import Graphics.Rendering.OpenGL.Raw.ARB.ShadingLanguageInclude
+import Graphics.Rendering.OpenGL.Raw.ARB.ShadowAmbient
+import Graphics.Rendering.OpenGL.Raw.ARB.Shadow
+import Graphics.Rendering.OpenGL.Raw.ARB.SparseBuffer
+import Graphics.Rendering.OpenGL.Raw.ARB.SparseTexture
+import Graphics.Rendering.OpenGL.Raw.ARB.StencilTexturing
 import Graphics.Rendering.OpenGL.Raw.ARB.Sync
-import Graphics.Rendering.OpenGL.Raw.ARB.TextureMultisample
--- import Graphics.Rendering.OpenGL.Raw.ARB.VertexArrayBGRA
-import Graphics.Rendering.OpenGL.Raw.ARB.DrawBuffersBlend
-import Graphics.Rendering.OpenGL.Raw.ARB.SampleShading
+import Graphics.Rendering.OpenGL.Raw.ARB.TessellationShader
+import Graphics.Rendering.OpenGL.Raw.ARB.TextureBarrier
+import Graphics.Rendering.OpenGL.Raw.ARB.TextureBorderClamp
+import Graphics.Rendering.OpenGL.Raw.ARB.TextureBufferObject
+import Graphics.Rendering.OpenGL.Raw.ARB.TextureBufferObjectRGB32
+import Graphics.Rendering.OpenGL.Raw.ARB.TextureBufferRange
+import Graphics.Rendering.OpenGL.Raw.ARB.TextureCompressionBPTC
+import Graphics.Rendering.OpenGL.Raw.ARB.TextureCompression
+import Graphics.Rendering.OpenGL.Raw.ARB.TextureCompressionRGTC
 import Graphics.Rendering.OpenGL.Raw.ARB.TextureCubeMapArray
+import Graphics.Rendering.OpenGL.Raw.ARB.TextureCubeMap
+import Graphics.Rendering.OpenGL.Raw.ARB.TextureEnvCombine
+import Graphics.Rendering.OpenGL.Raw.ARB.TextureEnvDot3
+import Graphics.Rendering.OpenGL.Raw.ARB.TextureFloat
 import Graphics.Rendering.OpenGL.Raw.ARB.TextureGather
--- import Graphics.Rendering.OpenGL.Raw.ARB.TextureQueryLOD
--- import Graphics.Rendering.OpenGL.Raw.ARB.WGL.CreateContextProfile
-import Graphics.Rendering.OpenGL.Raw.ARB.CreateContextProfile
-import Graphics.Rendering.OpenGL.Raw.ARB.ShadingLanguageInclude
-import Graphics.Rendering.OpenGL.Raw.ARB.TextureCompressionBPTC
-import Graphics.Rendering.OpenGL.Raw.ARB.BlendFuncExtended
--- import Graphics.Rendering.OpenGL.Raw.ARB.ExplicitAttribLocation
-import Graphics.Rendering.OpenGL.Raw.ARB.OcclusionQuery2
-import Graphics.Rendering.OpenGL.Raw.ARB.SamplerObjects
--- import Graphics.Rendering.OpenGL.Raw.ARB.ShaderBitEncoding
+import Graphics.Rendering.OpenGL.Raw.ARB.TextureMirrorClampToEdge
+import Graphics.Rendering.OpenGL.Raw.ARB.TextureMirroredRepeat
+import Graphics.Rendering.OpenGL.Raw.ARB.TextureMultisample
+import Graphics.Rendering.OpenGL.Raw.ARB.TextureRectangle
 import Graphics.Rendering.OpenGL.Raw.ARB.TextureRGB10A2UI
+import Graphics.Rendering.OpenGL.Raw.ARB.TextureRG
+import Graphics.Rendering.OpenGL.Raw.ARB.TextureStencil8
+import Graphics.Rendering.OpenGL.Raw.ARB.TextureStorage
+import Graphics.Rendering.OpenGL.Raw.ARB.TextureStorageMultisample
 import Graphics.Rendering.OpenGL.Raw.ARB.TextureSwizzle
+import Graphics.Rendering.OpenGL.Raw.ARB.TextureView
 import Graphics.Rendering.OpenGL.Raw.ARB.TimerQuery
-import Graphics.Rendering.OpenGL.Raw.ARB.VertexType2101010Rev
-import Graphics.Rendering.OpenGL.Raw.ARB.DrawIndirect
-import Graphics.Rendering.OpenGL.Raw.ARB.GPUShader5
-import Graphics.Rendering.OpenGL.Raw.ARB.GPUShaderFP64
-import Graphics.Rendering.OpenGL.Raw.ARB.ShaderSubroutine
-import Graphics.Rendering.OpenGL.Raw.ARB.TessellationShader
--- import Graphics.Rendering.OpenGL.Raw.ARB.TextureBufferObjectRGB32
 import Graphics.Rendering.OpenGL.Raw.ARB.TransformFeedback2
 import Graphics.Rendering.OpenGL.Raw.ARB.TransformFeedback3
-import Graphics.Rendering.OpenGL.Raw.ARB.ES2Compatibility
-import Graphics.Rendering.OpenGL.Raw.ARB.GetProgramBinary
-import Graphics.Rendering.OpenGL.Raw.ARB.SeparateShaderObjects
--- import Graphics.Rendering.OpenGL.Raw.ARB.ShaderPrecision
+import Graphics.Rendering.OpenGL.Raw.ARB.TransformFeedbackInstanced
+import Graphics.Rendering.OpenGL.Raw.ARB.TransformFeedbackOverflowQuery
+import Graphics.Rendering.OpenGL.Raw.ARB.TransposeMatrix
+import Graphics.Rendering.OpenGL.Raw.ARB.UniformBufferObject
+import Graphics.Rendering.OpenGL.Raw.ARB.VertexArrayBGRA
+import Graphics.Rendering.OpenGL.Raw.ARB.VertexArrayObject
 import Graphics.Rendering.OpenGL.Raw.ARB.VertexAttrib64Bit
--- import Graphics.Rendering.OpenGL.Raw.ARB.ViewportArray
--- import Graphics.Rendering.OpenGL.Raw.ARB.CLEvent
--- import Graphics.Rendering.OpenGL.Raw.ARB.DebugOutput
--- import Graphics.Rendering.OpenGL.Raw.ARB.Robustness
--- import Graphics.Rendering.OpenGL.Raw.ARB.ShaderStencilExport
--- import Graphics.Rendering.OpenGL.Raw.ARB.BaseInstance
--- import Graphics.Rendering.OpenGL.Raw.ARB.ShadingLanguage420pack
--- import Graphics.Rendering.OpenGL.Raw.ARB.TransformFeedbackInstanced
--- import Graphics.Rendering.OpenGL.Raw.ARB.CompressedTexturePixelStorage
--- import Graphics.Rendering.OpenGL.Raw.ARB.ConservativeDepth
--- import Graphics.Rendering.OpenGL.Raw.ARB.InternalformatQuery
--- import Graphics.Rendering.OpenGL.Raw.ARB.MapBufferAlignment
-import Graphics.Rendering.OpenGL.Raw.ARB.ShaderAtomicCounters
--- import Graphics.Rendering.OpenGL.Raw.ARB.ShaderImageLoadStore
--- import Graphics.Rendering.OpenGL.Raw.ARB.ShadingLanguagePacking
--- import Graphics.Rendering.OpenGL.Raw.ARB.TextureStorage
--- import Graphics.Rendering.OpenGL.Raw.ARB.ArraysOfArrays
--- import Graphics.Rendering.OpenGL.Raw.ARB.ClearBufferObject
-import Graphics.Rendering.OpenGL.Raw.ARB.ComputeShader
--- import Graphics.Rendering.OpenGL.Raw.ARB.CopyImage
--- import Graphics.Rendering.OpenGL.Raw.ARB.TextureView
--- import Graphics.Rendering.OpenGL.Raw.ARB.VertexAttribBinding
--- import Graphics.Rendering.OpenGL.Raw.ARB.RobustnessIsolation
-import Graphics.Rendering.OpenGL.Raw.ARB.ES3Compatibility
--- import Graphics.Rendering.OpenGL.Raw.ARB.ExplicitUniformLocation
--- import Graphics.Rendering.OpenGL.Raw.ARB.FragmentLayerViewport
-import Graphics.Rendering.OpenGL.Raw.ARB.FramebufferNoAttachments
--- import Graphics.Rendering.OpenGL.Raw.ARB.InternalformatQuery2
--- import Graphics.Rendering.OpenGL.Raw.ARB.InvalidateSubdata
--- import Graphics.Rendering.OpenGL.Raw.ARB.MultiDrawIndirect
--- import Graphics.Rendering.OpenGL.Raw.ARB.ProgramInterfaceQuery
--- import Graphics.Rendering.OpenGL.Raw.ARB.RobustBufferAccessBehavior
--- import Graphics.Rendering.OpenGL.Raw.ARB.ShaderImageSize
-import Graphics.Rendering.OpenGL.Raw.ARB.ShaderStorageBufferObject
--- import Graphics.Rendering.OpenGL.Raw.ARB.StencilTexturing
--- import Graphics.Rendering.OpenGL.Raw.ARB.TextureBufferRange
--- import Graphics.Rendering.OpenGL.Raw.ARB.TextureQueryLevels
--- import Graphics.Rendering.OpenGL.Raw.ARB.TextureStorageMultisample
--- import Graphics.Rendering.OpenGL.Raw.ARB.BufferStorage
--- import Graphics.Rendering.OpenGL.Raw.ARB.ClearTexture
--- import Graphics.Rendering.OpenGL.Raw.ARB.EnhancedLayouts
--- import Graphics.Rendering.OpenGL.Raw.ARB.MultiBind
-import Graphics.Rendering.OpenGL.Raw.ARB.QueryBufferObject
--- import Graphics.Rendering.OpenGL.Raw.ARB.TextureMirrorClampToEdge
--- import Graphics.Rendering.OpenGL.Raw.ARB.TextureStencil8
--- import Graphics.Rendering.OpenGL.Raw.ARB.VertexType10f11f11fRev
--- import Graphics.Rendering.OpenGL.Raw.ARB.BindlessTexture
--- import Graphics.Rendering.OpenGL.Raw.ARB.ComputeVariableGroupSize
--- import Graphics.Rendering.OpenGL.Raw.ARB.IndirectParameters
--- import Graphics.Rendering.OpenGL.Raw.ARB.SeamlessCubemapPerTexture
--- import Graphics.Rendering.OpenGL.Raw.ARB.ShaderDrawParameters
--- import Graphics.Rendering.OpenGL.Raw.ARB.ShaderGroupVote
--- import Graphics.Rendering.OpenGL.Raw.ARB.SparseTexture
+import Graphics.Rendering.OpenGL.Raw.ARB.VertexAttribBinding
+import Graphics.Rendering.OpenGL.Raw.ARB.VertexBlend
+import Graphics.Rendering.OpenGL.Raw.ARB.VertexBufferObject
+import Graphics.Rendering.OpenGL.Raw.ARB.VertexProgram
+import Graphics.Rendering.OpenGL.Raw.ARB.VertexShader
+import Graphics.Rendering.OpenGL.Raw.ARB.VertexType10f11f11fRev
+import Graphics.Rendering.OpenGL.Raw.ARB.VertexType2101010RevCompatibility
+import Graphics.Rendering.OpenGL.Raw.ARB.VertexType2101010RevCore
+import Graphics.Rendering.OpenGL.Raw.ARB.ViewportArray
+import Graphics.Rendering.OpenGL.Raw.ARB.WindowPos
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/BaseInstance.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/BaseInstance.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/ARB/BaseInstance.hs
@@ -0,0 +1,22 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.BaseInstance
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/ARB/base_instance.txt ARB_base_instance> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.ARB.BaseInstance (
+  -- * Functions
+  glDrawArraysInstancedBaseInstance,
+  glDrawElementsInstancedBaseInstance,
+  glDrawElementsInstancedBaseVertexBaseInstance
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/BindlessTexture.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/BindlessTexture.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/ARB/BindlessTexture.hs
@@ -0,0 +1,38 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.BindlessTexture
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/ARB/bindless_texture.txt ARB_bindless_texture> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.ARB.BindlessTexture (
+  -- * Enums
+  gl_UNSIGNED_INT64_ARB,
+  -- * Functions
+  glGetImageHandleARB,
+  glGetTextureHandleARB,
+  glGetTextureSamplerHandleARB,
+  glGetVertexAttribLui64vARB,
+  glIsImageHandleResidentARB,
+  glIsTextureHandleResidentARB,
+  glMakeImageHandleNonResidentARB,
+  glMakeImageHandleResidentARB,
+  glMakeTextureHandleNonResidentARB,
+  glMakeTextureHandleResidentARB,
+  glProgramUniformHandleui64ARB,
+  glProgramUniformHandleui64vARB,
+  glUniformHandleui64ARB,
+  glUniformHandleui64vARB,
+  glVertexAttribL1ui64ARB,
+  glVertexAttribL1ui64vARB
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/BlendFuncExtended.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/BlendFuncExtended.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/BlendFuncExtended.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/ARB/BlendFuncExtended.hs
@@ -1,30 +1,28 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.BlendFuncExtended
--- Copyright   :  (c) Sven Panne 2014
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All raw functions and tokens from the ARB_blend_func_extended extension, see
--- <http://www.opengl.org/registry/specs/ARB/blend_func_extended.txt>.
+-- The <https://www.opengl.org/registry/specs/ARB/blend_func_extended.txt ARB_blend_func_extended> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.ARB.BlendFuncExtended (
-   -- * Functions
-   glBindFragDataLocationIndexed,
-   glGetFragDataIndex,
-
-   -- * Tokens
-   gl_SRC1_COLOR,
-   gl_SRC1_ALPHA,
-   gl_ONE_MINUS_SRC1_COLOR,
-   gl_ONE_MINUS_SRC1_ALPHA,
-   gl_MAX_DUAL_SOURCE_DRAW_BUFFERS
+  -- * Enums
+  gl_MAX_DUAL_SOURCE_DRAW_BUFFERS,
+  gl_ONE_MINUS_SRC1_ALPHA,
+  gl_ONE_MINUS_SRC1_COLOR,
+  gl_SRC1_ALPHA,
+  gl_SRC1_COLOR,
+  -- * Functions
+  glBindFragDataLocationIndexed,
+  glGetFragDataIndex
 ) where
 
-import Graphics.Rendering.OpenGL.Raw.Functions
 import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/BufferStorage.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/BufferStorage.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/ARB/BufferStorage.hs
@@ -0,0 +1,31 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.BufferStorage
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/ARB/buffer_storage.txt ARB_buffer_storage> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.ARB.BufferStorage (
+  -- * Enums
+  gl_BUFFER_IMMUTABLE_STORAGE,
+  gl_BUFFER_STORAGE_FLAGS,
+  gl_CLIENT_MAPPED_BUFFER_BARRIER_BIT,
+  gl_CLIENT_STORAGE_BIT,
+  gl_DYNAMIC_STORAGE_BIT,
+  gl_MAP_COHERENT_BIT,
+  gl_MAP_PERSISTENT_BIT,
+  gl_MAP_READ_BIT,
+  gl_MAP_WRITE_BIT,
+  -- * Functions
+  glBufferStorage
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/CLEvent.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/CLEvent.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/ARB/CLEvent.hs
@@ -0,0 +1,24 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.CLEvent
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/ARB/cl_event.txt ARB_cl_event> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.ARB.CLEvent (
+  -- * Enums
+  gl_SYNC_CL_EVENT_ARB,
+  gl_SYNC_CL_EVENT_COMPLETE_ARB,
+  -- * Functions
+  glCreateSyncFromCLeventARB
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/ClearBufferObject.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/ClearBufferObject.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/ARB/ClearBufferObject.hs
@@ -0,0 +1,21 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.ClearBufferObject
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/ARB/clear_buffer_object.txt ARB_clear_buffer_object> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.ARB.ClearBufferObject (
+  -- * Functions
+  glClearBufferData,
+  glClearBufferSubData
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/ClearTexture.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/ClearTexture.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/ARB/ClearTexture.hs
@@ -0,0 +1,24 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.ClearTexture
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/ARB/clear_texture.txt ARB_clear_texture> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.ARB.ClearTexture (
+  -- * Enums
+  gl_CLEAR_TEXTURE,
+  -- * Functions
+  glClearTexImage,
+  glClearTexSubImage
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/ClipControl.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/ClipControl.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/ARB/ClipControl.hs
@@ -0,0 +1,28 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.ClipControl
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/ARB/clip_control.txt ARB_clip_control> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.ARB.ClipControl (
+  -- * Enums
+  gl_CLIP_DEPTH_MODE,
+  gl_CLIP_ORIGIN,
+  gl_LOWER_LEFT,
+  gl_NEGATIVE_ONE_TO_ONE,
+  gl_UPPER_LEFT,
+  gl_ZERO_TO_ONE,
+  -- * Functions
+  glClipControl
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/ColorBufferFloat.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/ColorBufferFloat.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/ColorBufferFloat.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/ARB/ColorBufferFloat.hs
@@ -1,27 +1,27 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.ColorBufferFloat
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All tokens from the ARB_color_buffer_float extension, see
--- <http://www.opengl.org/registry/specs/ARB/color_buffer_float.txt>.
+-- The <https://www.opengl.org/registry/specs/ARB/color_buffer_float.txt ARB_color_buffer_float> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.ARB.ColorBufferFloat (
-   -- * Tokens
-   gl_RGBA_FLOAT_MODE,
-   gl_CLAMP_VERTEX_COLOR,
-   gl_CLAMP_FRAGMENT_COLOR,
-   gl_CLAMP_READ_COLOR,
-   gl_FIXED_ONLY
+  -- * Enums
+  gl_CLAMP_FRAGMENT_COLOR_ARB,
+  gl_CLAMP_READ_COLOR_ARB,
+  gl_CLAMP_VERTEX_COLOR_ARB,
+  gl_FIXED_ONLY_ARB,
+  gl_RGBA_FLOAT_MODE_ARB,
+  -- * Functions
+  glClampColorARB
 ) where
 
 import Graphics.Rendering.OpenGL.Raw.Tokens
-
-gl_RGBA_FLOAT_MODE = gl_RGBA_FLOAT_MODE_ARB
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/Compatibility.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/Compatibility.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/Compatibility.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/ARB/Compatibility.hs
@@ -1,906 +1,17 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.Compatibility
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All raw functions and tokens from the ARB_compatibility extension, see
--- <http://www.opengl.org/registry/specs/ARB/compatibility.txt>.
+-- The <https://www.opengl.org/registry/specs/ARB/compatibility.txt ARB_compatibility> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.ARB.Compatibility (
-   -- * Functions
-   glAccum,
-   glAlphaFunc,
-   glAreTexturesResident,
-   glArrayElement,
-   glBegin,
-   glBitmap,
-   glCallList,
-   glCallLists,
-   glClearAccum,
-   glClearIndex,
-   glClientActiveTexture,
-   glClipPlane,
-   glColor3b,
-   glColor3bv,
-   glColor3d,
-   glColor3dv,
-   glColor3f,
-   glColor3fv,
-   glColor3i,
-   glColor3iv,
-   glColor3s,
-   glColor3sv,
-   glColor3ub,
-   glColor3ubv,
-   glColor3ui,
-   glColor3uiv,
-   glColor3us,
-   glColor3usv,
-   glColor4b,
-   glColor4bv,
-   glColor4d,
-   glColor4dv,
-   glColor4f,
-   glColor4fv,
-   glColor4i,
-   glColor4iv,
-   glColor4s,
-   glColor4sv,
-   glColor4ub,
-   glColor4ubv,
-   glColor4ui,
-   glColor4uiv,
-   glColor4us,
-   glColor4usv,
-   glColorMaterial,
-   glColorPointer,
-   glColorSubTable,
-   glColorTable,
-   glColorTableParameterfv,
-   glColorTableParameteriv,
-   glConvolutionFilter1D,
-   glConvolutionFilter2D,
-   glConvolutionParameterf,
-   glConvolutionParameterfv,
-   glConvolutionParameteri,
-   glConvolutionParameteriv,
-   glCopyColorSubTable,
-   glCopyColorTable,
-   glCopyConvolutionFilter1D,
-   glCopyConvolutionFilter2D,
-   glCopyPixels,
-   glDeleteLists,
-   glDisableClientState,
-   glDrawPixels,
-   glEdgeFlag,
-   glEdgeFlagPointer,
-   glEdgeFlagv,
-   glEnableClientState,
-   glEnd,
-   glEndList,
-   glEvalCoord1d,
-   glEvalCoord1dv,
-   glEvalCoord1f,
-   glEvalCoord1fv,
-   glEvalCoord2d,
-   glEvalCoord2dv,
-   glEvalCoord2f,
-   glEvalCoord2fv,
-   glEvalMesh1,
-   glEvalMesh2,
-   glEvalPoint1,
-   glEvalPoint2,
-   glFeedbackBuffer,
-   glFogCoordPointer,
-   glFogCoordd,
-   glFogCoorddv,
-   glFogCoordf,
-   glFogCoordfv,
-   glFogf,
-   glFogfv,
-   glFogi,
-   glFogiv,
-   glFrustum,
-   glGenLists,
-   glGetClipPlane,
-   glGetColorTable,
-   glGetColorTableParameterfv,
-   glGetColorTableParameteriv,
-   glGetConvolutionFilter,
-   glGetConvolutionParameterfv,
-   glGetConvolutionParameteriv,
-   glGetHistogram,
-   glGetHistogramParameterfv,
-   glGetHistogramParameteriv,
-   glGetLightfv,
-   glGetLightiv,
-   glGetMapdv,
-   glGetMapfv,
-   glGetMapiv,
-   glGetMaterialfv,
-   glGetMaterialiv,
-   glGetMinmax,
-   glGetMinmaxParameterfv,
-   glGetMinmaxParameteriv,
-   glGetPixelMapfv,
-   glGetPixelMapuiv,
-   glGetPixelMapusv,
-   glGetPolygonStipple,
-   glGetSeparableFilter,
-   glGetTexEnvfv,
-   glGetTexEnviv,
-   glGetTexGendv,
-   glGetTexGenfv,
-   glGetTexGeniv,
-   glHistogram,
-   glIndexMask,
-   glIndexPointer,
-   glIndexd,
-   glIndexdv,
-   glIndexf,
-   glIndexfv,
-   glIndexi,
-   glIndexiv,
-   glIndexs,
-   glIndexsv,
-   glIndexub,
-   glIndexubv,
-   glInitNames,
-   glInterleavedArrays,
-   glIsList,
-   glLightModelf,
-   glLightModelfv,
-   glLightModeli,
-   glLightModeliv,
-   glLightf,
-   glLightfv,
-   glLighti,
-   glLightiv,
-   glLineStipple,
-   glListBase,
-   glLoadIdentity,
-   glLoadMatrixd,
-   glLoadMatrixf,
-   glLoadName,
-   glLoadTransposeMatrixd,
-   glLoadTransposeMatrixf,
-   glMap1d,
-   glMap1f,
-   glMap2d,
-   glMap2f,
-   glMapGrid1d,
-   glMapGrid1f,
-   glMapGrid2d,
-   glMapGrid2f,
-   glMaterialf,
-   glMaterialfv,
-   glMateriali,
-   glMaterialiv,
-   glMatrixMode,
-   glMinmax,
-   glMultMatrixd,
-   glMultMatrixf,
-   glMultTransposeMatrixd,
-   glMultTransposeMatrixf,
-   glMultiTexCoord1d,
-   glMultiTexCoord1dv,
-   glMultiTexCoord1f,
-   glMultiTexCoord1fv,
-   glMultiTexCoord1i,
-   glMultiTexCoord1iv,
-   glMultiTexCoord1s,
-   glMultiTexCoord1sv,
-   glMultiTexCoord2d,
-   glMultiTexCoord2dv,
-   glMultiTexCoord2f,
-   glMultiTexCoord2fv,
-   glMultiTexCoord2i,
-   glMultiTexCoord2iv,
-   glMultiTexCoord2s,
-   glMultiTexCoord2sv,
-   glMultiTexCoord3d,
-   glMultiTexCoord3dv,
-   glMultiTexCoord3f,
-   glMultiTexCoord3fv,
-   glMultiTexCoord3i,
-   glMultiTexCoord3iv,
-   glMultiTexCoord3s,
-   glMultiTexCoord3sv,
-   glMultiTexCoord4d,
-   glMultiTexCoord4dv,
-   glMultiTexCoord4f,
-   glMultiTexCoord4fv,
-   glMultiTexCoord4i,
-   glMultiTexCoord4iv,
-   glMultiTexCoord4s,
-   glMultiTexCoord4sv,
-   glNewList,
-   glNormal3b,
-   glNormal3bv,
-   glNormal3d,
-   glNormal3dv,
-   glNormal3f,
-   glNormal3fv,
-   glNormal3i,
-   glNormal3iv,
-   glNormal3s,
-   glNormal3sv,
-   glNormalPointer,
-   glOrtho,
-   glPassThrough,
-   glPixelMapfv,
-   glPixelMapuiv,
-   glPixelMapusv,
-   glPixelTransferf,
-   glPixelTransferi,
-   glPixelZoom,
-   glPolygonStipple,
-   glPopAttrib,
-   glPopClientAttrib,
-   glPopMatrix,
-   glPopName,
-   glPrioritizeTextures,
-   glPushAttrib,
-   glPushClientAttrib,
-   glPushMatrix,
-   glPushName,
-   glRasterPos2d,
-   glRasterPos2dv,
-   glRasterPos2f,
-   glRasterPos2fv,
-   glRasterPos2i,
-   glRasterPos2iv,
-   glRasterPos2s,
-   glRasterPos2sv,
-   glRasterPos3d,
-   glRasterPos3dv,
-   glRasterPos3f,
-   glRasterPos3fv,
-   glRasterPos3i,
-   glRasterPos3iv,
-   glRasterPos3s,
-   glRasterPos3sv,
-   glRasterPos4d,
-   glRasterPos4dv,
-   glRasterPos4f,
-   glRasterPos4fv,
-   glRasterPos4i,
-   glRasterPos4iv,
-   glRasterPos4s,
-   glRasterPos4sv,
-   glRectd,
-   glRectdv,
-   glRectf,
-   glRectfv,
-   glRecti,
-   glRectiv,
-   glRects,
-   glRectsv,
-   glRenderMode,
-   glResetHistogram,
-   glResetMinmax,
-   glRotated,
-   glRotatef,
-   glScaled,
-   glScalef,
-   glSecondaryColor3b,
-   glSecondaryColor3bv,
-   glSecondaryColor3d,
-   glSecondaryColor3dv,
-   glSecondaryColor3f,
-   glSecondaryColor3fv,
-   glSecondaryColor3i,
-   glSecondaryColor3iv,
-   glSecondaryColor3s,
-   glSecondaryColor3sv,
-   glSecondaryColor3ub,
-   glSecondaryColor3ubv,
-   glSecondaryColor3ui,
-   glSecondaryColor3uiv,
-   glSecondaryColor3us,
-   glSecondaryColor3usv,
-   glSecondaryColorPointer,
-   glSelectBuffer,
-   glSeparableFilter2D,
-   glShadeModel,
-   glTexCoord1d,
-   glTexCoord1dv,
-   glTexCoord1f,
-   glTexCoord1fv,
-   glTexCoord1i,
-   glTexCoord1iv,
-   glTexCoord1s,
-   glTexCoord1sv,
-   glTexCoord2d,
-   glTexCoord2dv,
-   glTexCoord2f,
-   glTexCoord2fv,
-   glTexCoord2i,
-   glTexCoord2iv,
-   glTexCoord2s,
-   glTexCoord2sv,
-   glTexCoord3d,
-   glTexCoord3dv,
-   glTexCoord3f,
-   glTexCoord3fv,
-   glTexCoord3i,
-   glTexCoord3iv,
-   glTexCoord3s,
-   glTexCoord3sv,
-   glTexCoord4d,
-   glTexCoord4dv,
-   glTexCoord4f,
-   glTexCoord4fv,
-   glTexCoord4i,
-   glTexCoord4iv,
-   glTexCoord4s,
-   glTexCoord4sv,
-   glTexCoordPointer,
-   glTexEnvf,
-   glTexEnvfv,
-   glTexEnvi,
-   glTexEnviv,
-   glTexGend,
-   glTexGendv,
-   glTexGenf,
-   glTexGenfv,
-   glTexGeni,
-   glTexGeniv,
-   glTranslated,
-   glTranslatef,
-   glVertex2d,
-   glVertex2dv,
-   glVertex2f,
-   glVertex2fv,
-   glVertex2i,
-   glVertex2iv,
-   glVertex2s,
-   glVertex2sv,
-   glVertex3d,
-   glVertex3dv,
-   glVertex3f,
-   glVertex3fv,
-   glVertex3i,
-   glVertex3iv,
-   glVertex3s,
-   glVertex3sv,
-   glVertex4d,
-   glVertex4dv,
-   glVertex4f,
-   glVertex4fv,
-   glVertex4i,
-   glVertex4iv,
-   glVertex4s,
-   glVertex4sv,
-   glVertexPointer,
-   glWindowPos2d,
-   glWindowPos2dv,
-   glWindowPos2f,
-   glWindowPos2fv,
-   glWindowPos2i,
-   glWindowPos2iv,
-   glWindowPos2s,
-   glWindowPos2sv,
-   glWindowPos3d,
-   glWindowPos3dv,
-   glWindowPos3f,
-   glWindowPos3fv,
-   glWindowPos3i,
-   glWindowPos3iv,
-   glWindowPos3s,
-   glWindowPos3sv,
-   -- * Tokens
-  gl_2D,
-  gl_2_BYTES,
-  gl_3D,
-  gl_3D_COLOR,
-  gl_3D_COLOR_TEXTURE,
-  gl_3_BYTES,
-  gl_4D_COLOR_TEXTURE,
-  gl_4_BYTES,
-  gl_ACCUM,
-  gl_ACCUM_ALPHA_BITS,
-  gl_ACCUM_BLUE_BITS,
-  gl_ACCUM_BUFFER_BIT,
-  gl_ACCUM_CLEAR_VALUE,
-  gl_ACCUM_GREEN_BITS,
-  gl_ACCUM_RED_BITS,
-  gl_ADD,
-  gl_ADD_SIGNED,
-  gl_ALIASED_POINT_SIZE_RANGE,
-  gl_ALL_ATTRIB_BITS,
-  gl_ALPHA12,
-  gl_ALPHA16,
-  gl_ALPHA4,
-  gl_ALPHA8,
-  gl_ALPHA_BIAS,
-  gl_ALPHA_BITS,
-  gl_ALPHA_INTEGER,
-  gl_ALPHA_SCALE,
-  gl_ALPHA_TEST,
-  gl_ALPHA_TEST_FUNC,
-  gl_ALPHA_TEST_REF,
-  gl_AMBIENT,
-  gl_AMBIENT_AND_DIFFUSE,
-  gl_ATTRIB_STACK_DEPTH,
-  gl_AUTO_NORMAL,
-  gl_AUX0,
-  gl_AUX1,
-  gl_AUX2,
-  gl_AUX3,
-  gl_AUX_BUFFERS,
-  gl_BITMAP,
-  gl_BITMAP_TOKEN,
-  gl_BLUE_BIAS,
-  gl_BLUE_BITS,
-  gl_BLUE_SCALE,
-  gl_C3F_V3F,
-  gl_C4F_N3F_V3F,
-  gl_C4UB_V2F,
-  gl_C4UB_V3F,
-  gl_CLAMP,
-  gl_CLAMP_FRAGMENT_COLOR,
-  gl_CLAMP_VERTEX_COLOR,
-  gl_CLIENT_ACTIVE_TEXTURE,
-  gl_CLIENT_ALL_ATTRIB_BITS,
-  gl_CLIENT_ATTRIB_STACK_DEPTH,
-  gl_CLIENT_PIXEL_STORE_BIT,
-  gl_CLIENT_VERTEX_ARRAY_BIT,
-  gl_CLIP_PLANE0,
-  gl_CLIP_PLANE1,
-  gl_CLIP_PLANE2,
-  gl_CLIP_PLANE3,
-  gl_CLIP_PLANE4,
-  gl_CLIP_PLANE5,
-  gl_COEFF,
-  gl_COLOR_ARRAY,
-  gl_COLOR_ARRAY_BUFFER_BINDING,
-  gl_COLOR_ARRAY_COUNT_EXT,
-  gl_COLOR_ARRAY_POINTER,
-  gl_COLOR_ARRAY_SIZE,
-  gl_COLOR_ARRAY_STRIDE,
-  gl_COLOR_ARRAY_TYPE,
-  gl_COLOR_INDEX,
-  gl_COLOR_INDEXES,
-  gl_COLOR_MATERIAL,
-  gl_COLOR_MATERIAL_FACE,
-  gl_COLOR_MATERIAL_PARAMETER,
-  gl_COLOR_MATRIX,
-  gl_COLOR_MATRIX_STACK_DEPTH,
-  gl_COLOR_SUM,
-  gl_COLOR_TABLE,
-  gl_COLOR_TABLE_ALPHA_SIZE,
-  gl_COLOR_TABLE_BIAS,
-  gl_COLOR_TABLE_BLUE_SIZE,
-  gl_COLOR_TABLE_FORMAT,
-  gl_COLOR_TABLE_GREEN_SIZE,
-  gl_COLOR_TABLE_INTENSITY_SIZE,
-  gl_COLOR_TABLE_LUMINANCE_SIZE,
-  gl_COLOR_TABLE_RED_SIZE,
-  gl_COLOR_TABLE_SCALE,
-  gl_COLOR_TABLE_WIDTH,
-  gl_COMBINE,
-  gl_COMBINE_ALPHA,
-  gl_COMBINE_RGB,
-  gl_COMPARE_R_TO_TEXTURE,
-  gl_COMPILE,
-  gl_COMPILE_AND_EXECUTE,
-  gl_COMPRESSED_ALPHA,
-  gl_COMPRESSED_INTENSITY,
-  gl_COMPRESSED_LUMINANCE,
-  gl_COMPRESSED_LUMINANCE_ALPHA,
-  gl_COMPRESSED_SLUMINANCE,
-  gl_COMPRESSED_SLUMINANCE_ALPHA,
-  gl_CONSTANT,
-  gl_CONSTANT_ATTENUATION,
-  gl_CONSTANT_BORDER,
-  gl_CONVOLUTION_1D,
-  gl_CONVOLUTION_2D,
-  gl_CONVOLUTION_BORDER_COLOR,
-  gl_CONVOLUTION_BORDER_MODE,
-  gl_CONVOLUTION_FILTER_BIAS,
-  gl_CONVOLUTION_FILTER_SCALE,
-  gl_CONVOLUTION_FORMAT,
-  gl_CONVOLUTION_HEIGHT,
-  gl_CONVOLUTION_WIDTH,
-  gl_COORD_REPLACE,
-  gl_COPY_PIXEL_TOKEN,
-  gl_CURRENT_BIT,
-  gl_CURRENT_COLOR,
-  gl_CURRENT_FOG_COORD,
-  gl_CURRENT_FOG_COORDINATE,
-  gl_CURRENT_INDEX,
-  gl_CURRENT_NORMAL,
-  gl_CURRENT_RASTER_COLOR,
-  gl_CURRENT_RASTER_DISTANCE,
-  gl_CURRENT_RASTER_INDEX,
-  gl_CURRENT_RASTER_POSITION,
-  gl_CURRENT_RASTER_POSITION_VALID,
-  gl_CURRENT_RASTER_SECONDARY_COLOR,
-  gl_CURRENT_RASTER_TEXTURE_COORDS,
-  gl_CURRENT_SECONDARY_COLOR,
-  gl_CURRENT_TEXTURE_COORDS,
-  gl_DECAL,
-  gl_DEPTH_BIAS,
-  gl_DEPTH_BITS,
-  gl_DEPTH_SCALE,
-  gl_DEPTH_TEXTURE_MODE,
-  gl_DIFFUSE,
-  gl_DOMAIN,
-  gl_DOT3_RGB,
-  gl_DOT3_RGBA,
-  gl_DRAW_PIXEL_TOKEN,
-  gl_EDGE_FLAG,
-  gl_EDGE_FLAG_ARRAY,
-  gl_EDGE_FLAG_ARRAY_BUFFER_BINDING,
-  gl_EDGE_FLAG_ARRAY_COUNT_EXT,
-  gl_EDGE_FLAG_ARRAY_POINTER,
-  gl_EDGE_FLAG_ARRAY_STRIDE,
-  gl_EMISSION,
-  gl_ENABLE_BIT,
-  gl_EVAL_BIT,
-  gl_EXP,
-  gl_EXP2,
-  gl_EYE_LINEAR,
-  gl_EYE_PLANE,
-  gl_FEEDBACK,
-  gl_FEEDBACK_BUFFER_POINTER,
-  gl_FEEDBACK_BUFFER_SIZE,
-  gl_FEEDBACK_BUFFER_TYPE,
-  gl_FLAT,
-  gl_FOG,
-  gl_FOG_BIT,
-  gl_FOG_COLOR,
-  gl_FOG_COORD,
-  gl_FOG_COORDINATE,
-  gl_FOG_COORDINATE_ARRAY,
-  gl_FOG_COORDINATE_ARRAY_BUFFER_BINDING,
-  gl_FOG_COORDINATE_ARRAY_POINTER,
-  gl_FOG_COORDINATE_ARRAY_STRIDE,
-  gl_FOG_COORDINATE_ARRAY_TYPE,
-  gl_FOG_COORDINATE_SOURCE,
-  gl_FOG_COORD_ARRAY,
-  gl_FOG_COORD_ARRAY_BUFFER_BINDING,
-  gl_FOG_COORD_ARRAY_POINTER,
-  gl_FOG_COORD_ARRAY_STRIDE,
-  gl_FOG_COORD_ARRAY_TYPE,
-  gl_FOG_COORD_SRC,
-  gl_FOG_DENSITY,
-  gl_FOG_END,
-  gl_FOG_HINT,
-  gl_FOG_INDEX,
-  gl_FOG_MODE,
-  gl_FOG_START,
-  gl_FRAGMENT_DEPTH,
-  gl_GENERATE_MIPMAP,
-  gl_GENERATE_MIPMAP_HINT,
-  gl_GREEN_BIAS,
-  gl_GREEN_BITS,
-  gl_GREEN_SCALE,
-  gl_HINT_BIT,
-  gl_HISTOGRAM,
-  gl_HISTOGRAM_ALPHA_SIZE,
-  gl_HISTOGRAM_BLUE_SIZE,
-  gl_HISTOGRAM_FORMAT,
-  gl_HISTOGRAM_GREEN_SIZE,
-  gl_HISTOGRAM_LUMINANCE_SIZE,
-  gl_HISTOGRAM_RED_SIZE,
-  gl_HISTOGRAM_SINK,
-  gl_HISTOGRAM_WIDTH,
-  gl_INDEX,
-  gl_INDEX_ARRAY,
-  gl_INDEX_ARRAY_BUFFER_BINDING,
-  gl_INDEX_ARRAY_COUNT_EXT,
-  gl_INDEX_ARRAY_POINTER,
-  gl_INDEX_ARRAY_STRIDE,
-  gl_INDEX_ARRAY_TYPE,
-  gl_INDEX_BITS,
-  gl_INDEX_CLEAR_VALUE,
-  gl_INDEX_LOGIC_OP,
-  gl_INDEX_MODE,
-  gl_INDEX_OFFSET,
-  gl_INDEX_SHIFT,
-  gl_INDEX_WRITEMASK,
-  gl_INTENSITY,
-  gl_INTENSITY12,
-  gl_INTENSITY16,
-  gl_INTENSITY4,
-  gl_INTENSITY8,
-  gl_INTERPOLATE,
-  gl_LIGHT0,
-  gl_LIGHT1,
-  gl_LIGHT2,
-  gl_LIGHT3,
-  gl_LIGHT4,
-  gl_LIGHT5,
-  gl_LIGHT6,
-  gl_LIGHT7,
-  gl_LIGHTING,
-  gl_LIGHTING_BIT,
-  gl_LIGHT_MODEL_AMBIENT,
-  gl_LIGHT_MODEL_COLOR_CONTROL,
-  gl_LIGHT_MODEL_LOCAL_VIEWER,
-  gl_LIGHT_MODEL_TWO_SIDE,
-  gl_LINEAR_ATTENUATION,
-  gl_LINE_BIT,
-  gl_LINE_RESET_TOKEN,
-  gl_LINE_STIPPLE,
-  gl_LINE_STIPPLE_PATTERN,
-  gl_LINE_STIPPLE_REPEAT,
-  gl_LINE_TOKEN,
-  gl_LIST_BASE,
-  gl_LIST_BIT,
-  gl_LIST_INDEX,
-  gl_LIST_MODE,
-  gl_LOAD,
-  gl_LOGIC_OP,
-  gl_LUMINANCE,
-  gl_LUMINANCE12,
-  gl_LUMINANCE12_ALPHA12,
-  gl_LUMINANCE12_ALPHA4,
-  gl_LUMINANCE16,
-  gl_LUMINANCE16_ALPHA16,
-  gl_LUMINANCE4,
-  gl_LUMINANCE4_ALPHA4,
-  gl_LUMINANCE6_ALPHA2,
-  gl_LUMINANCE8,
-  gl_LUMINANCE8_ALPHA8,
-  gl_LUMINANCE_ALPHA,
-  gl_MAP1_COLOR_4,
-  gl_MAP1_GRID_DOMAIN,
-  gl_MAP1_GRID_SEGMENTS,
-  gl_MAP1_INDEX,
-  gl_MAP1_NORMAL,
-  gl_MAP1_TEXTURE_COORD_1,
-  gl_MAP1_TEXTURE_COORD_2,
-  gl_MAP1_TEXTURE_COORD_3,
-  gl_MAP1_TEXTURE_COORD_4,
-  gl_MAP1_VERTEX_3,
-  gl_MAP1_VERTEX_4,
-  gl_MAP2_COLOR_4,
-  gl_MAP2_GRID_DOMAIN,
-  gl_MAP2_GRID_SEGMENTS,
-  gl_MAP2_INDEX,
-  gl_MAP2_NORMAL,
-  gl_MAP2_TEXTURE_COORD_1,
-  gl_MAP2_TEXTURE_COORD_2,
-  gl_MAP2_TEXTURE_COORD_3,
-  gl_MAP2_TEXTURE_COORD_4,
-  gl_MAP2_VERTEX_3,
-  gl_MAP2_VERTEX_4,
-  gl_MAP_COLOR,
-  gl_MAP_STENCIL,
-  gl_MATRIX_MODE,
-  gl_MAX_ATTRIB_STACK_DEPTH,
-  gl_MAX_CLIENT_ATTRIB_STACK_DEPTH,
-  gl_MAX_CLIP_PLANES,
-  gl_MAX_COLOR_MATRIX_STACK_DEPTH,
-  gl_MAX_CONVOLUTION_HEIGHT,
-  gl_MAX_CONVOLUTION_WIDTH,
-  gl_MAX_EVAL_ORDER,
-  gl_MAX_LIGHTS,
-  gl_MAX_LIST_NESTING,
-  gl_MAX_MODELVIEW_STACK_DEPTH,
-  gl_MAX_NAME_STACK_DEPTH,
-  gl_MAX_PIXEL_MAP_TABLE,
-  gl_MAX_PROJECTION_STACK_DEPTH,
-  gl_MAX_TEXTURE_COORDS,
-  gl_MAX_TEXTURE_STACK_DEPTH,
-  gl_MAX_TEXTURE_UNITS,
-  gl_MINMAX,
-  gl_MINMAX_FORMAT,
-  gl_MINMAX_SINK,
-  gl_MODELVIEW,
-  gl_MODELVIEW_MATRIX,
-  gl_MODELVIEW_STACK_DEPTH,
-  gl_MODULATE,
-  gl_MULT,
-  gl_MULTISAMPLE_BIT,
-  gl_N3F_V3F,
-  gl_NAME_STACK_DEPTH,
-  gl_NORMALIZE,
-  gl_NORMAL_ARRAY,
-  gl_NORMAL_ARRAY_BUFFER_BINDING,
-  gl_NORMAL_ARRAY_COUNT_EXT,
-  gl_NORMAL_ARRAY_POINTER,
-  gl_NORMAL_ARRAY_STRIDE,
-  gl_NORMAL_ARRAY_TYPE,
-  gl_NORMAL_MAP,
-  gl_OBJECT_LINEAR,
-  gl_OBJECT_PLANE,
-  gl_OPERAND0_ALPHA,
-  gl_OPERAND0_RGB,
-  gl_OPERAND1_ALPHA,
-  gl_OPERAND1_RGB,
-  gl_OPERAND2_ALPHA,
-  gl_OPERAND2_RGB,
-  gl_ORDER,
-  gl_PASS_THROUGH_TOKEN,
-  gl_PERSPECTIVE_CORRECTION_HINT,
-  gl_PIXEL_MAP_A_TO_A,
-  gl_PIXEL_MAP_A_TO_A_SIZE,
-  gl_PIXEL_MAP_B_TO_B,
-  gl_PIXEL_MAP_B_TO_B_SIZE,
-  gl_PIXEL_MAP_G_TO_G,
-  gl_PIXEL_MAP_G_TO_G_SIZE,
-  gl_PIXEL_MAP_I_TO_A,
-  gl_PIXEL_MAP_I_TO_A_SIZE,
-  gl_PIXEL_MAP_I_TO_B,
-  gl_PIXEL_MAP_I_TO_B_SIZE,
-  gl_PIXEL_MAP_I_TO_G,
-  gl_PIXEL_MAP_I_TO_G_SIZE,
-  gl_PIXEL_MAP_I_TO_I,
-  gl_PIXEL_MAP_I_TO_I_SIZE,
-  gl_PIXEL_MAP_I_TO_R,
-  gl_PIXEL_MAP_I_TO_R_SIZE,
-  gl_PIXEL_MAP_R_TO_R,
-  gl_PIXEL_MAP_R_TO_R_SIZE,
-  gl_PIXEL_MAP_S_TO_S,
-  gl_PIXEL_MAP_S_TO_S_SIZE,
-  gl_PIXEL_MODE_BIT,
-  gl_POINT_BIT,
-  gl_POINT_DISTANCE_ATTENUATION,
-  gl_POINT_SIZE_MAX,
-  gl_POINT_SIZE_MIN,
-  gl_POINT_SMOOTH,
-  gl_POINT_SMOOTH_HINT,
-  gl_POINT_SPRITE,
-  gl_POINT_TOKEN,
-  gl_POLYGON,
-  gl_POLYGON_BIT,
-  gl_POLYGON_MODE,
-  gl_POLYGON_STIPPLE,
-  gl_POLYGON_STIPPLE_BIT,
-  gl_POLYGON_TOKEN,
-  gl_POSITION,
-  gl_POST_COLOR_MATRIX_ALPHA_BIAS,
-  gl_POST_COLOR_MATRIX_ALPHA_SCALE,
-  gl_POST_COLOR_MATRIX_BLUE_BIAS,
-  gl_POST_COLOR_MATRIX_BLUE_SCALE,
-  gl_POST_COLOR_MATRIX_COLOR_TABLE,
-  gl_POST_COLOR_MATRIX_GREEN_BIAS,
-  gl_POST_COLOR_MATRIX_GREEN_SCALE,
-  gl_POST_COLOR_MATRIX_RED_BIAS,
-  gl_POST_COLOR_MATRIX_RED_SCALE,
-  gl_POST_CONVOLUTION_ALPHA_BIAS,
-  gl_POST_CONVOLUTION_ALPHA_SCALE,
-  gl_POST_CONVOLUTION_BLUE_BIAS,
-  gl_POST_CONVOLUTION_BLUE_SCALE,
-  gl_POST_CONVOLUTION_COLOR_TABLE,
-  gl_POST_CONVOLUTION_GREEN_BIAS,
-  gl_POST_CONVOLUTION_GREEN_SCALE,
-  gl_POST_CONVOLUTION_RED_BIAS,
-  gl_POST_CONVOLUTION_RED_SCALE,
-  gl_PREVIOUS,
-  gl_PRIMARY_COLOR,
-  gl_PROJECTION,
-  gl_PROJECTION_MATRIX,
-  gl_PROJECTION_STACK_DEPTH,
-  gl_PROXY_COLOR_TABLE,
-  gl_PROXY_HISTOGRAM,
-  gl_PROXY_POST_COLOR_MATRIX_COLOR_TABLE,
-  gl_PROXY_POST_CONVOLUTION_COLOR_TABLE,
-  gl_Q,
-  gl_QUADRATIC_ATTENUATION,
-  gl_QUADS,
-  gl_QUAD_STRIP,
-  gl_R,
-  gl_REDUCE,
-  gl_RED_BIAS,
-  gl_RED_BITS,
-  gl_RED_SCALE,
-  gl_REFLECTION_MAP,
-  gl_RENDER,
-  gl_RENDER_MODE,
-  gl_REPLICATE_BORDER,
-  gl_RESCALE_NORMAL,
-  gl_RETURN,
-  gl_RGBA_MODE,
-  gl_RGB_SCALE,
-  gl_S,
-  gl_SCISSOR_BIT,
-  gl_SECONDARY_COLOR_ARRAY,
-  gl_SECONDARY_COLOR_ARRAY_BUFFER_BINDING,
-  gl_SECONDARY_COLOR_ARRAY_POINTER,
-  gl_SECONDARY_COLOR_ARRAY_SIZE,
-  gl_SECONDARY_COLOR_ARRAY_STRIDE,
-  gl_SECONDARY_COLOR_ARRAY_TYPE,
-  gl_SELECT,
-  gl_SELECTION_BUFFER_POINTER,
-  gl_SELECTION_BUFFER_SIZE,
-  gl_SEPARABLE_2D,
-  gl_SEPARATE_SPECULAR_COLOR,
-  gl_SHADE_MODEL,
-  gl_SHININESS,
-  gl_SINGLE_COLOR,
-  gl_SLUMINANCE,
-  gl_SLUMINANCE8,
-  gl_SLUMINANCE8_ALPHA8,
-  gl_SLUMINANCE_ALPHA,
-  gl_SMOOTH,
-  gl_SOURCE0_ALPHA,
-  gl_SOURCE0_RGB,
-  gl_SOURCE1_ALPHA,
-  gl_SOURCE1_RGB,
-  gl_SOURCE2_ALPHA,
-  gl_SOURCE2_RGB,
-  gl_SPECULAR,
-  gl_SPHERE_MAP,
-  gl_SPOT_CUTOFF,
-  gl_SPOT_DIRECTION,
-  gl_SPOT_EXPONENT,
-  gl_SRC0_ALPHA,
-  gl_SRC0_RGB,
-  gl_SRC1_ALPHA,
-  gl_SRC1_RGB,
-  gl_SRC2_ALPHA,
-  gl_SRC2_RGB,
-  gl_STACK_OVERFLOW,
-  gl_STACK_UNDERFLOW,
-  gl_STENCIL_BITS,
-  gl_SUBTRACT,
-  gl_T,
-  gl_T2F_C3F_V3F,
-  gl_T2F_C4F_N3F_V3F,
-  gl_T2F_C4UB_V3F,
-  gl_T2F_N3F_V3F,
-  gl_T2F_V3F,
-  gl_T4F_C4F_N3F_V4F,
-  gl_T4F_V4F,
-  gl_TABLE_TOO_LARGE,
-  gl_TEXTURE_BIT,
-  gl_TEXTURE_COMPONENTS,
-  gl_TEXTURE_COORD_ARRAY,
-  gl_TEXTURE_COORD_ARRAY_BUFFER_BINDING,
-  gl_TEXTURE_COORD_ARRAY_COUNT_EXT,
-  gl_TEXTURE_COORD_ARRAY_POINTER,
-  gl_TEXTURE_COORD_ARRAY_SIZE,
-  gl_TEXTURE_COORD_ARRAY_STRIDE,
-  gl_TEXTURE_COORD_ARRAY_TYPE,
-  gl_TEXTURE_ENV,
-  gl_TEXTURE_ENV_COLOR,
-  gl_TEXTURE_ENV_MODE,
-  gl_TEXTURE_FILTER_CONTROL,
-  gl_TEXTURE_GEN_MODE,
-  gl_TEXTURE_GEN_Q,
-  gl_TEXTURE_GEN_R,
-  gl_TEXTURE_GEN_S,
-  gl_TEXTURE_GEN_T,
-  gl_TEXTURE_INTENSITY_SIZE,
-  gl_TEXTURE_INTENSITY_TYPE,
-  gl_TEXTURE_LUMINANCE_SIZE,
-  gl_TEXTURE_LUMINANCE_TYPE,
-  gl_TEXTURE_MATRIX,
-  gl_TEXTURE_PRIORITY,
-  gl_TEXTURE_RESIDENT,
-  gl_TEXTURE_STACK_DEPTH,
-  gl_TRANSFORM_BIT,
-  gl_TRANSPOSE_COLOR_MATRIX,
-  gl_TRANSPOSE_MODELVIEW_MATRIX,
-  gl_TRANSPOSE_PROJECTION_MATRIX,
-  gl_TRANSPOSE_TEXTURE_MATRIX,
-  gl_V2F,
-  gl_V3F,
-  gl_VERTEX_ARRAY,
-  gl_VERTEX_ARRAY_BUFFER_BINDING,
-  gl_VERTEX_ARRAY_COUNT_EXT,
-  gl_VERTEX_ARRAY_POINTER,
-  gl_VERTEX_ARRAY_SIZE,
-  gl_VERTEX_ARRAY_STRIDE,
-  gl_VERTEX_ARRAY_TYPE,
-  gl_VERTEX_PROGRAM_TWO_SIDE,
-  gl_VIEWPORT_BIT,
-  gl_WEIGHT_ARRAY_BUFFER_BINDING,
-  gl_ZOOM_X,
-  gl_ZOOM_Y
 ) where
 
-import Graphics.Rendering.OpenGL.Raw.Functions
-import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/CompressedTexturePixelStorage.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/CompressedTexturePixelStorage.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/ARB/CompressedTexturePixelStorage.hs
@@ -0,0 +1,27 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.CompressedTexturePixelStorage
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/ARB/compressed_texture_pixel_storage.txt ARB_compressed_texture_pixel_storage> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.ARB.CompressedTexturePixelStorage (
+  -- * Enums
+  gl_PACK_COMPRESSED_BLOCK_DEPTH,
+  gl_PACK_COMPRESSED_BLOCK_HEIGHT,
+  gl_PACK_COMPRESSED_BLOCK_SIZE,
+  gl_PACK_COMPRESSED_BLOCK_WIDTH,
+  gl_UNPACK_COMPRESSED_BLOCK_DEPTH,
+  gl_UNPACK_COMPRESSED_BLOCK_HEIGHT,
+  gl_UNPACK_COMPRESSED_BLOCK_SIZE,
+  gl_UNPACK_COMPRESSED_BLOCK_WIDTH
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/ComputeShader.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/ComputeShader.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/ComputeShader.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/ARB/ComputeShader.hs
@@ -1,43 +1,41 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.ComputeShader
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All raw functions and tokens from the ARB_compute_shader extension, see
--- <http://www.opengl.org/registry/specs/ARB/compute_shader.txt>.
+-- The <https://www.opengl.org/registry/specs/ARB/compute_shader.txt ARB_compute_shader> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.ARB.ComputeShader (
-   -- * Functions
-   glDispatchCompute,
-   glDispatchComputeIndirect,
-
-   -- * Tokens
-   gl_COMPUTE_SHADER,
-   gl_MAX_COMPUTE_UNIFORM_BLOCKS,
-   gl_MAX_COMPUTE_TEXTURE_IMAGE_UNITS,
-   gl_MAX_COMPUTE_IMAGE_UNIFORMS,
-   gl_MAX_COMPUTE_SHARED_MEMORY_SIZE,
-   gl_MAX_COMPUTE_UNIFORM_COMPONENTS,
-   gl_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS,
-   gl_MAX_COMPUTE_ATOMIC_COUNTERS,
-   gl_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS,
-   gl_MAX_COMPUTE_WORK_GROUP_INVOCATIONS,
-   gl_MAX_COMPUTE_WORK_GROUP_COUNT,
-   gl_MAX_COMPUTE_WORK_GROUP_SIZE,
-   gl_COMPUTE_WORK_GROUP_SIZE,
-   gl_UNIFORM_BLOCK_REFERENCED_BY_COMPUTE_SHADER,
-   gl_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_COMPUTE_SHADER,
-   gl_DISPATCH_INDIRECT_BUFFER,
-   gl_DISPATCH_INDIRECT_BUFFER_BINDING,
-   gl_COMPUTE_SHADER_BIT
+  -- * Enums
+  gl_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_COMPUTE_SHADER,
+  gl_COMPUTE_SHADER,
+  gl_COMPUTE_SHADER_BIT,
+  gl_COMPUTE_WORK_GROUP_SIZE,
+  gl_DISPATCH_INDIRECT_BUFFER,
+  gl_DISPATCH_INDIRECT_BUFFER_BINDING,
+  gl_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS,
+  gl_MAX_COMPUTE_ATOMIC_COUNTERS,
+  gl_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS,
+  gl_MAX_COMPUTE_IMAGE_UNIFORMS,
+  gl_MAX_COMPUTE_SHARED_MEMORY_SIZE,
+  gl_MAX_COMPUTE_TEXTURE_IMAGE_UNITS,
+  gl_MAX_COMPUTE_UNIFORM_BLOCKS,
+  gl_MAX_COMPUTE_UNIFORM_COMPONENTS,
+  gl_MAX_COMPUTE_WORK_GROUP_COUNT,
+  gl_MAX_COMPUTE_WORK_GROUP_INVOCATIONS,
+  gl_MAX_COMPUTE_WORK_GROUP_SIZE,
+  gl_UNIFORM_BLOCK_REFERENCED_BY_COMPUTE_SHADER,
+  -- * Functions
+  glDispatchCompute,
+  glDispatchComputeIndirect
 ) where
 
-import Graphics.Rendering.OpenGL.Raw.Functions
 import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/ComputeVariableGroupSize.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/ComputeVariableGroupSize.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/ARB/ComputeVariableGroupSize.hs
@@ -0,0 +1,26 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.ComputeVariableGroupSize
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/ARB/compute_variable_group_size.txt ARB_compute_variable_group_size> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.ARB.ComputeVariableGroupSize (
+  -- * Enums
+  gl_MAX_COMPUTE_FIXED_GROUP_INVOCATIONS_ARB,
+  gl_MAX_COMPUTE_FIXED_GROUP_SIZE_ARB,
+  gl_MAX_COMPUTE_VARIABLE_GROUP_INVOCATIONS_ARB,
+  gl_MAX_COMPUTE_VARIABLE_GROUP_SIZE_ARB,
+  -- * Functions
+  glDispatchComputeGroupSizeARB
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/ConditionalRenderInverted.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/ConditionalRenderInverted.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/ARB/ConditionalRenderInverted.hs
@@ -0,0 +1,23 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.ConditionalRenderInverted
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/ARB/conditional_render_inverted.txt ARB_conditional_render_inverted> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.ARB.ConditionalRenderInverted (
+  -- * Enums
+  gl_QUERY_BY_REGION_NO_WAIT_INVERTED,
+  gl_QUERY_BY_REGION_WAIT_INVERTED,
+  gl_QUERY_NO_WAIT_INVERTED,
+  gl_QUERY_WAIT_INVERTED
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
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
@@ -1,27 +1,24 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.CopyBuffer
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All raw functions and tokens from the ARB_copy_buffer extension, see
--- <http://www.opengl.org/registry/specs/ARB/copy_buffer.txt>.
+-- The <https://www.opengl.org/registry/specs/ARB/copy_buffer.txt ARB_copy_buffer> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.ARB.CopyBuffer (
-   -- * Functions
-   glCopyBufferSubData,
-   -- * Tokens
-   gl_COPY_READ_BUFFER_BINDING,
-   gl_COPY_READ_BUFFER,
-   gl_COPY_WRITE_BUFFER_BINDING,
-   gl_COPY_WRITE_BUFFER
+  -- * Enums
+  gl_COPY_READ_BUFFER,
+  gl_COPY_WRITE_BUFFER,
+  -- * Functions
+  glCopyBufferSubData
 ) where
 
-import Graphics.Rendering.OpenGL.Raw.Functions
 import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/CopyImage.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/CopyImage.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/ARB/CopyImage.hs
@@ -0,0 +1,20 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.CopyImage
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/ARB/copy_image.txt ARB_copy_image> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.ARB.CopyImage (
+  -- * Functions
+  glCopyImageSubData
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/CreateContextProfile.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/CreateContextProfile.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/CreateContextProfile.hs
+++ /dev/null
@@ -1,23 +0,0 @@
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.CreateContextProfile
--- Copyright   :  (c) Sven Panne 2013
--- License     :  BSD3
---
--- Maintainer  :  Sven Panne <svenpanne@gmail.com>
--- Stability   :  stable
--- Portability :  portable
---
--- All tokens from the ARB_create_context_profile extension, see
--- <http://www.opengl.org/registry/specs/ARB/create_context_profile.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.ARB.CreateContextProfile (
-   -- * Tokens
-   gl_CONTEXT_CORE_PROFILE_BIT,
-   gl_CONTEXT_COMPATIBILITY_PROFILE_BIT,
-   gl_CONTEXT_PROFILE_MASK
-) where
-
-import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/CullDistance.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/CullDistance.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/ARB/CullDistance.hs
@@ -0,0 +1,21 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.CullDistance
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/ARB/cull_distance.txt ARB_cull_distance> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.ARB.CullDistance (
+  -- * Enums
+  gl_MAX_COMBINED_CLIP_AND_CULL_DISTANCES,
+  gl_MAX_CULL_DISTANCES
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/DebugOutput.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/DebugOutput.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/ARB/DebugOutput.hs
@@ -0,0 +1,47 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.DebugOutput
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/ARB/debug_output.txt ARB_debug_output> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.ARB.DebugOutput (
+  -- * Enums
+  gl_DEBUG_CALLBACK_FUNCTION_ARB,
+  gl_DEBUG_CALLBACK_USER_PARAM_ARB,
+  gl_DEBUG_LOGGED_MESSAGES_ARB,
+  gl_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_ARB,
+  gl_DEBUG_OUTPUT_SYNCHRONOUS_ARB,
+  gl_DEBUG_SEVERITY_HIGH_ARB,
+  gl_DEBUG_SEVERITY_LOW_ARB,
+  gl_DEBUG_SEVERITY_MEDIUM_ARB,
+  gl_DEBUG_SOURCE_API_ARB,
+  gl_DEBUG_SOURCE_APPLICATION_ARB,
+  gl_DEBUG_SOURCE_OTHER_ARB,
+  gl_DEBUG_SOURCE_SHADER_COMPILER_ARB,
+  gl_DEBUG_SOURCE_THIRD_PARTY_ARB,
+  gl_DEBUG_SOURCE_WINDOW_SYSTEM_ARB,
+  gl_DEBUG_TYPE_DEPRECATED_BEHAVIOR_ARB,
+  gl_DEBUG_TYPE_ERROR_ARB,
+  gl_DEBUG_TYPE_OTHER_ARB,
+  gl_DEBUG_TYPE_PERFORMANCE_ARB,
+  gl_DEBUG_TYPE_PORTABILITY_ARB,
+  gl_DEBUG_TYPE_UNDEFINED_BEHAVIOR_ARB,
+  gl_MAX_DEBUG_LOGGED_MESSAGES_ARB,
+  gl_MAX_DEBUG_MESSAGE_LENGTH_ARB,
+  -- * Functions
+  glDebugMessageCallbackARB,
+  glDebugMessageControlARB,
+  glDebugMessageInsertARB,
+  glGetDebugMessageLogARB
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/DepthBufferFloat.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/DepthBufferFloat.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/DepthBufferFloat.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/ARB/DepthBufferFloat.hs
@@ -1,23 +1,22 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.DepthBufferFloat
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All tokens from the ARB_depth_buffer_float extension, see
--- <http://www.opengl.org/registry/specs/ARB/depth_buffer_float.txt>.
+-- The <https://www.opengl.org/registry/specs/ARB/depth_buffer_float.txt ARB_depth_buffer_float> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.ARB.DepthBufferFloat (
-   -- * Tokens
-   gl_DEPTH_COMPONENT32F,
-   gl_DEPTH32F_STENCIL8,
-   gl_FLOAT_32_UNSIGNED_INT_24_8_REV
+  -- * Enums
+  gl_DEPTH32F_STENCIL8,
+  gl_DEPTH_COMPONENT32F,
+  gl_FLOAT_32_UNSIGNED_INT_24_8_REV
 ) where
 
-import Graphics.Rendering.OpenGL.Raw.Core32
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/DepthClamp.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/DepthClamp.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/DepthClamp.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/ARB/DepthClamp.hs
@@ -1,22 +1,20 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.DepthClamp
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All tokens from the ARB_depth_clamp extension, see
--- <http://www.opengl.org/registry/specs/ARB/depth_clamp.txt>.
+-- The <https://www.opengl.org/registry/specs/ARB/depth_clamp.txt ARB_depth_clamp> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.ARB.DepthClamp (
-   -- * Tokens
-   gl_DEPTH_CLAMP
+  -- * Enums
+  gl_DEPTH_CLAMP
 ) where
 
 import Graphics.Rendering.OpenGL.Raw.Tokens
-
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/DepthTexture.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/DepthTexture.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/DepthTexture.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/ARB/DepthTexture.hs
@@ -1,27 +1,24 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.DepthTexture
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All tokens from the ARB_depth_texture extension extension, see
--- <http://www.opengl.org/registry/specs/ARB/depth_texture.txt>.
+-- The <https://www.opengl.org/registry/specs/ARB/depth_texture.txt ARB_depth_texture> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.ARB.DepthTexture (
-   -- * Tokens
-   gl_DEPTH_COMPONENT,
-   gl_DEPTH_COMPONENT16,
-   gl_DEPTH_COMPONENT24,
-   gl_DEPTH_COMPONENT32,
-   gl_TEXTURE_DEPTH_SIZE,
-   gl_DEPTH_TEXTURE_MODE
+  -- * Enums
+  gl_DEPTH_COMPONENT16_ARB,
+  gl_DEPTH_COMPONENT24_ARB,
+  gl_DEPTH_COMPONENT32_ARB,
+  gl_DEPTH_TEXTURE_MODE_ARB,
+  gl_TEXTURE_DEPTH_SIZE_ARB
 ) where
 
-import Graphics.Rendering.OpenGL.Raw.ARB.Compatibility
-import Graphics.Rendering.OpenGL.Raw.Core32
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/DirectStateAccess.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/DirectStateAccess.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/ARB/DirectStateAccess.hs
@@ -0,0 +1,131 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.DirectStateAccess
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/ARB/direct_state_access.txt ARB_direct_state_access> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.ARB.DirectStateAccess (
+  -- * Enums
+  gl_QUERY_TARGET,
+  gl_TEXTURE_BINDING_1D,
+  gl_TEXTURE_BINDING_1D_ARRAY,
+  gl_TEXTURE_BINDING_2D,
+  gl_TEXTURE_BINDING_2D_ARRAY,
+  gl_TEXTURE_BINDING_2D_MULTISAMPLE,
+  gl_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY,
+  gl_TEXTURE_BINDING_3D,
+  gl_TEXTURE_BINDING_BUFFER,
+  gl_TEXTURE_BINDING_CUBE_MAP,
+  gl_TEXTURE_BINDING_CUBE_MAP_ARRAY,
+  gl_TEXTURE_BINDING_RECTANGLE,
+  gl_TEXTURE_TARGET,
+  -- * Functions
+  glBindTextureUnit,
+  glBlitNamedFramebuffer,
+  glCheckNamedFramebufferStatus,
+  glClearNamedBufferData,
+  glClearNamedBufferSubData,
+  glClearNamedFramebufferfi,
+  glClearNamedFramebufferfv,
+  glClearNamedFramebufferiv,
+  glClearNamedFramebufferuiv,
+  glCompressedTextureSubImage1D,
+  glCompressedTextureSubImage2D,
+  glCompressedTextureSubImage3D,
+  glCopyNamedBufferSubData,
+  glCopyTextureSubImage1D,
+  glCopyTextureSubImage2D,
+  glCopyTextureSubImage3D,
+  glCreateBuffers,
+  glCreateFramebuffers,
+  glCreateProgramPipelines,
+  glCreateQueries,
+  glCreateRenderbuffers,
+  glCreateSamplers,
+  glCreateTextures,
+  glCreateTransformFeedbacks,
+  glCreateVertexArrays,
+  glDisableVertexArrayAttrib,
+  glEnableVertexArrayAttrib,
+  glFlushMappedNamedBufferRange,
+  glGenerateTextureMipmap,
+  glGetCompressedTextureImage,
+  glGetNamedBufferParameteri64v,
+  glGetNamedBufferParameteriv,
+  glGetNamedBufferPointerv,
+  glGetNamedBufferSubData,
+  glGetNamedFramebufferAttachmentParameteriv,
+  glGetNamedFramebufferParameteriv,
+  glGetNamedRenderbufferParameteriv,
+  glGetQueryBufferObjecti64v,
+  glGetQueryBufferObjectiv,
+  glGetQueryBufferObjectui64v,
+  glGetQueryBufferObjectuiv,
+  glGetTextureImage,
+  glGetTextureLevelParameterfv,
+  glGetTextureLevelParameteriv,
+  glGetTextureParameterIiv,
+  glGetTextureParameterIuiv,
+  glGetTextureParameterfv,
+  glGetTextureParameteriv,
+  glGetTransformFeedbacki64_v,
+  glGetTransformFeedbacki_v,
+  glGetTransformFeedbackiv,
+  glGetVertexArrayIndexed64iv,
+  glGetVertexArrayIndexediv,
+  glGetVertexArrayiv,
+  glInvalidateNamedFramebufferData,
+  glInvalidateNamedFramebufferSubData,
+  glMapNamedBuffer,
+  glMapNamedBufferRange,
+  glNamedBufferData,
+  glNamedBufferStorage,
+  glNamedBufferSubData,
+  glNamedFramebufferDrawBuffer,
+  glNamedFramebufferDrawBuffers,
+  glNamedFramebufferParameteri,
+  glNamedFramebufferReadBuffer,
+  glNamedFramebufferRenderbuffer,
+  glNamedFramebufferTexture,
+  glNamedFramebufferTextureLayer,
+  glNamedRenderbufferStorage,
+  glNamedRenderbufferStorageMultisample,
+  glTextureBuffer,
+  glTextureBufferRange,
+  glTextureParameterIiv,
+  glTextureParameterIuiv,
+  glTextureParameterf,
+  glTextureParameterfv,
+  glTextureParameteri,
+  glTextureParameteriv,
+  glTextureStorage1D,
+  glTextureStorage2D,
+  glTextureStorage2DMultisample,
+  glTextureStorage3D,
+  glTextureStorage3DMultisample,
+  glTextureSubImage1D,
+  glTextureSubImage2D,
+  glTextureSubImage3D,
+  glTransformFeedbackBufferBase,
+  glTransformFeedbackBufferRange,
+  glUnmapNamedBuffer,
+  glVertexArrayAttribBinding,
+  glVertexArrayAttribFormat,
+  glVertexArrayAttribIFormat,
+  glVertexArrayAttribLFormat,
+  glVertexArrayBindingDivisor,
+  glVertexArrayElementBuffer,
+  glVertexArrayVertexBuffer,
+  glVertexArrayVertexBuffers
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/DrawBuffers.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/DrawBuffers.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/DrawBuffers.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/ARB/DrawBuffers.hs
@@ -1,39 +1,39 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.DrawBuffers
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All raw functions and tokens from the ARB_point_sprite extension, see
--- <http://www.opengl.org/registry/specs/ARB/point_sprite.txt>.
+-- The <https://www.opengl.org/registry/specs/ARB/draw_buffers.txt ARB_draw_buffers> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.ARB.DrawBuffers (
-   -- * Functions
-   glDrawBuffers,
-   -- * Tokens
-   gl_MAX_DRAW_BUFFERS,
-   gl_DRAW_BUFFER0,
-   gl_DRAW_BUFFER1,
-   gl_DRAW_BUFFER2,
-   gl_DRAW_BUFFER3,
-   gl_DRAW_BUFFER4,
-   gl_DRAW_BUFFER5,
-   gl_DRAW_BUFFER6,
-   gl_DRAW_BUFFER7,
-   gl_DRAW_BUFFER8,
-   gl_DRAW_BUFFER9,
-   gl_DRAW_BUFFER10,
-   gl_DRAW_BUFFER11,
-   gl_DRAW_BUFFER12,
-   gl_DRAW_BUFFER13,
-   gl_DRAW_BUFFER14,
-   gl_DRAW_BUFFER15
+  -- * Enums
+  gl_DRAW_BUFFER0_ARB,
+  gl_DRAW_BUFFER10_ARB,
+  gl_DRAW_BUFFER11_ARB,
+  gl_DRAW_BUFFER12_ARB,
+  gl_DRAW_BUFFER13_ARB,
+  gl_DRAW_BUFFER14_ARB,
+  gl_DRAW_BUFFER15_ARB,
+  gl_DRAW_BUFFER1_ARB,
+  gl_DRAW_BUFFER2_ARB,
+  gl_DRAW_BUFFER3_ARB,
+  gl_DRAW_BUFFER4_ARB,
+  gl_DRAW_BUFFER5_ARB,
+  gl_DRAW_BUFFER6_ARB,
+  gl_DRAW_BUFFER7_ARB,
+  gl_DRAW_BUFFER8_ARB,
+  gl_DRAW_BUFFER9_ARB,
+  gl_MAX_DRAW_BUFFERS_ARB,
+  -- * Functions
+  glDrawBuffersARB
 ) where
 
-import Graphics.Rendering.OpenGL.Raw.Core32
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
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
@@ -1,24 +1,23 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.DrawBuffersBlend
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All raw functions from the ARB_draw_buffers_blend extension, see
--- <http://www.opengl.org/registry/specs/ARB/draw_buffers_blend.txt>.
+-- The <https://www.opengl.org/registry/specs/ARB/draw_buffers_blend.txt ARB_draw_buffers_blend> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.ARB.DrawBuffersBlend (
-   -- * Functions
-   glBlendEquationi,
-   glBlendEquationSeparatei,
-   glBlendFunci,
-   glBlendFuncSeparatei
+  -- * Functions
+  glBlendEquationSeparateiARB,
+  glBlendEquationiARB,
+  glBlendFuncSeparateiARB,
+  glBlendFunciARB
 ) where
 
 import Graphics.Rendering.OpenGL.Raw.Functions
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
@@ -1,24 +1,23 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.DrawElementsBaseVertex
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All raw functions from the ARB_draw_elements_base_vertex extension, see
--- <http://www.opengl.org/registry/specs/ARB/draw_elements_base_vertex.txt>.
+-- The <https://www.opengl.org/registry/specs/ARB/draw_elements_base_vertex.txt ARB_draw_elements_base_vertex> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.ARB.DrawElementsBaseVertex (
-   -- * Functions
-   glDrawElementsBaseVertex,
-   glDrawRangeElementsBaseVertex,
-   glDrawElementsInstancedBaseVertex,
-   glMultiDrawElementsBaseVertex
+  -- * Functions
+  glDrawElementsBaseVertex,
+  glDrawElementsInstancedBaseVertex,
+  glDrawRangeElementsBaseVertex,
+  glMultiDrawElementsBaseVertex
 ) where
 
 import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/DrawIndirect.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/DrawIndirect.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/DrawIndirect.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/ARB/DrawIndirect.hs
@@ -1,28 +1,25 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.DrawIndirect
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All raw functions and tokens from the ARB_draw_indirect extension, see
--- <http://www.opengl.org/registry/specs/ARB/draw_indirect.txt>.
+-- The <https://www.opengl.org/registry/specs/ARB/draw_indirect.txt ARB_draw_indirect> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.ARB.DrawIndirect (
-   -- * Functions
-   glDrawArraysIndirect,
-   glDrawElementsIndirect,
-
-   -- * Tokens
-   gl_DRAW_INDIRECT_BUFFER,
-   gl_DRAW_INDIRECT_BUFFER_BINDING
-
+  -- * Enums
+  gl_DRAW_INDIRECT_BUFFER,
+  gl_DRAW_INDIRECT_BUFFER_BINDING,
+  -- * Functions
+  glDrawArraysIndirect,
+  glDrawElementsIndirect
 ) where
 
-import Graphics.Rendering.OpenGL.Raw.Functions
 import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
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
@@ -1,22 +1,21 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.DrawInstanced
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All raw functions from the ARB_draw_instanced extension, see
--- <http://www.opengl.org/registry/specs/ARB/draw_instanced.txt>.
+-- The <https://www.opengl.org/registry/specs/ARB/draw_instanced.txt ARB_draw_instanced> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.ARB.DrawInstanced (
-   -- * Functions
-   glDrawArraysInstanced,
-   glDrawElementsInstanced
+  -- * Functions
+  glDrawArraysInstancedARB,
+  glDrawElementsInstancedARB
 ) where
 
 import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/ES2Compatibility.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/ES2Compatibility.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/ES2Compatibility.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/ARB/ES2Compatibility.hs
@@ -1,44 +1,42 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.ES2Compatibility
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All raw functions, tokens and types from the ARB_ES2_compatibility extension,
--- see <http://www.opengl.org/registry/specs/ARB/ES2_compatibility.txt>.
+-- The <https://www.opengl.org/registry/specs/ARB/ES2_compatibility.txt ARB_ES2_compatibility> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.ARB.ES2Compatibility (
-   -- * Functions
-   glReleaseShaderCompiler,
-   glShaderBinary,
-   glGetShaderPrecisionFormat,
-   glDepthRangef,
-   glClearDepthf,
-
-   -- * Tokens
-   gl_FIXED,
-   gl_IMPLEMENTATION_COLOR_READ_TYPE,
-   gl_IMPLEMENTATION_COLOR_READ_FORMAT,
-   gl_LOW_FLOAT,
-   gl_MEDIUM_FLOAT,
-   gl_HIGH_FLOAT,
-   gl_LOW_INT,
-   gl_MEDIUM_INT,
-   gl_HIGH_INT,
-   gl_SHADER_COMPILER,
-   gl_SHADER_BINARY_FORMATS,
-   gl_NUM_SHADER_BINARY_FORMATS,
-   gl_MAX_VERTEX_UNIFORM_VECTORS,
-   gl_MAX_VARYING_VECTORS,
-   gl_MAX_FRAGMENT_UNIFORM_VECTORS,
-   gl_RGB565
+  -- * Enums
+  gl_FIXED,
+  gl_HIGH_FLOAT,
+  gl_HIGH_INT,
+  gl_IMPLEMENTATION_COLOR_READ_FORMAT,
+  gl_IMPLEMENTATION_COLOR_READ_TYPE,
+  gl_LOW_FLOAT,
+  gl_LOW_INT,
+  gl_MAX_FRAGMENT_UNIFORM_VECTORS,
+  gl_MAX_VARYING_VECTORS,
+  gl_MAX_VERTEX_UNIFORM_VECTORS,
+  gl_MEDIUM_FLOAT,
+  gl_MEDIUM_INT,
+  gl_NUM_SHADER_BINARY_FORMATS,
+  gl_RGB565,
+  gl_SHADER_BINARY_FORMATS,
+  gl_SHADER_COMPILER,
+  -- * Functions
+  glClearDepthf,
+  glDepthRangef,
+  glGetShaderPrecisionFormat,
+  glReleaseShaderCompiler,
+  glShaderBinary
 ) where
 
-import Graphics.Rendering.OpenGL.Raw.Functions
 import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/ES31Compatibility.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/ES31Compatibility.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/ARB/ES31Compatibility.hs
@@ -0,0 +1,23 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.ES31Compatibility
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/ARB/ES3_1_compatibility.txt ARB_ES3_1_compatibility> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.ARB.ES31Compatibility (
+  -- * Enums
+  gl_BACK,
+  -- * Functions
+  glMemoryBarrierByRegion
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/ES3Compatibility.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/ES3Compatibility.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/ES3Compatibility.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/ARB/ES3Compatibility.hs
@@ -1,33 +1,32 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.ES3Compatibility
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All raw functions, tokens and types from the ARB_ES3_compatibility extension,
--- see <http://www.opengl.org/registry/specs/ARB/ES3_compatibility.txt>.
+-- The <https://www.opengl.org/registry/specs/ARB/ES3_compatibility.txt ARB_ES3_compatibility> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.ARB.ES3Compatibility (
-   -- * Tokens
-   gl_COMPRESSED_RGB8_ETC2,
-   gl_COMPRESSED_SRGB8_ETC2,
-   gl_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2,
-   gl_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2,
-   gl_COMPRESSED_RGBA8_ETC2_EAC,
-   gl_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC,
-   gl_COMPRESSED_R11_EAC,
-   gl_COMPRESSED_SIGNED_R11_EAC,
-   gl_COMPRESSED_RG11_EAC,
-   gl_COMPRESSED_SIGNED_RG11_EAC,
-   gl_PRIMITIVE_RESTART_FIXED_INDEX,
-   gl_ANY_SAMPLES_PASSED_CONSERVATIVE,
-   gl_MAX_ELEMENT_INDEX
+  -- * Enums
+  gl_ANY_SAMPLES_PASSED_CONSERVATIVE,
+  gl_COMPRESSED_R11_EAC,
+  gl_COMPRESSED_RG11_EAC,
+  gl_COMPRESSED_RGB8_ETC2,
+  gl_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2,
+  gl_COMPRESSED_RGBA8_ETC2_EAC,
+  gl_COMPRESSED_SIGNED_R11_EAC,
+  gl_COMPRESSED_SIGNED_RG11_EAC,
+  gl_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC,
+  gl_COMPRESSED_SRGB8_ETC2,
+  gl_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2,
+  gl_MAX_ELEMENT_INDEX,
+  gl_PRIMITIVE_RESTART_FIXED_INDEX
 ) where
 
 import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/EnhancedLayouts.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/EnhancedLayouts.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/ARB/EnhancedLayouts.hs
@@ -0,0 +1,23 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.EnhancedLayouts
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/ARB/enhanced_layouts.txt ARB_enhanced_layouts> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.ARB.EnhancedLayouts (
+  -- * Enums
+  gl_LOCATION_COMPONENT,
+  gl_TRANSFORM_FEEDBACK_BUFFER,
+  gl_TRANSFORM_FEEDBACK_BUFFER_INDEX,
+  gl_TRANSFORM_FEEDBACK_BUFFER_STRIDE
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/ExplicitUniformLocation.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/ExplicitUniformLocation.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/ARB/ExplicitUniformLocation.hs
@@ -0,0 +1,20 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.ExplicitUniformLocation
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/ARB/explicit_uniform_location.txt ARB_explicit_uniform_location> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.ARB.ExplicitUniformLocation (
+  -- * Enums
+  gl_MAX_UNIFORM_LOCATIONS
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/FragmentProgram.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/FragmentProgram.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/FragmentProgram.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/ARB/FragmentProgram.hs
@@ -1,215 +1,118 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.FragmentProgram
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All raw functions and tokens from the ARB_fragment_program extension, see
--- <http://www.opengl.org/registry/specs/ARB/fragment_program.txt>.
+-- The <https://www.opengl.org/registry/specs/ARB/fragment_program.txt ARB_fragment_program> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.ARB.FragmentProgram (
-   -- * Functions
-   glProgramString,
-   glBindProgram,
-   glDeletePrograms,
-   glGenPrograms,
-   glProgramEnvParameter4d,
-   glProgramEnvParameter4dv,
-   glProgramEnvParameter4f,
-   glProgramEnvParameter4fv,
-   glProgramLocalParameter4d,
-   glProgramLocalParameter4dv,
-   glProgramLocalParameter4f,
-   glProgramLocalParameter4fv,
-   glGetProgramEnvParameterdv,
-   glGetProgramEnvParameterfv,
-   glGetProgramLocalParameterdv,
-   glGetProgramLocalParameterfv,
-   glGetProgramiv,
-   glGetProgramString,
-   glIsProgram,
-   -- * Tokens
-   gl_FRAGMENT_PROGRAM,
-   gl_PROGRAM_FORMAT_ASCII,
-   gl_PROGRAM_LENGTH,
-   gl_PROGRAM_FORMAT,
-   gl_PROGRAM_BINDING,
-   gl_PROGRAM_INSTRUCTIONS,
-   gl_MAX_PROGRAM_INSTRUCTIONS,
-   gl_PROGRAM_NATIVE_INSTRUCTIONS,
-   gl_MAX_PROGRAM_NATIVE_INSTRUCTIONS,
-   gl_PROGRAM_TEMPORARIES,
-   gl_MAX_PROGRAM_TEMPORARIES,
-   gl_PROGRAM_NATIVE_TEMPORARIES,
-   gl_MAX_PROGRAM_NATIVE_TEMPORARIES,
-   gl_PROGRAM_PARAMETERS,
-   gl_MAX_PROGRAM_PARAMETERS,
-   gl_PROGRAM_NATIVE_PARAMETERS,
-   gl_MAX_PROGRAM_NATIVE_PARAMETERS,
-   gl_PROGRAM_ATTRIBS,
-   gl_MAX_PROGRAM_ATTRIBS,
-   gl_PROGRAM_NATIVE_ATTRIBS,
-   gl_MAX_PROGRAM_NATIVE_ATTRIBS,
-   gl_MAX_PROGRAM_LOCAL_PARAMETERS,
-   gl_MAX_PROGRAM_ENV_PARAMETERS,
-   gl_PROGRAM_UNDER_NATIVE_LIMITS,
-   gl_PROGRAM_ALU_INSTRUCTIONS,
-   gl_PROGRAM_TEX_INSTRUCTIONS,
-   gl_PROGRAM_TEX_INDIRECTIONS,
-   gl_PROGRAM_NATIVE_ALU_INSTRUCTIONS,
-   gl_PROGRAM_NATIVE_TEX_INSTRUCTIONS,
-   gl_PROGRAM_NATIVE_TEX_INDIRECTIONS,
-   gl_MAX_PROGRAM_ALU_INSTRUCTIONS,
-   gl_MAX_PROGRAM_TEX_INSTRUCTIONS,
-   gl_MAX_PROGRAM_TEX_INDIRECTIONS,
-   gl_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS,
-   gl_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS,
-   gl_MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS,
-   gl_PROGRAM_STRING,
-   gl_PROGRAM_ERROR_POSITION,
-   gl_CURRENT_MATRIX,
-   gl_TRANSPOSE_CURRENT_MATRIX,
-   gl_CURRENT_MATRIX_STACK_DEPTH,
-   gl_MAX_PROGRAM_MATRICES,
-   gl_MAX_PROGRAM_MATRIX_STACK_DEPTH,
-   gl_MAX_TEXTURE_COORDS,
-   gl_MAX_TEXTURE_IMAGE_UNITS,
-   gl_PROGRAM_ERROR_STRING,
-   gl_MATRIX0,
-   gl_MATRIX1,
-   gl_MATRIX2,
-   gl_MATRIX3,
-   gl_MATRIX4,
-   gl_MATRIX5,
-   gl_MATRIX6,
-   gl_MATRIX7,
-   gl_MATRIX8,
-   gl_MATRIX9,
-   gl_MATRIX10,
-   gl_MATRIX11,
-   gl_MATRIX12,
-   gl_MATRIX13,
-   gl_MATRIX14,
-   gl_MATRIX15,
-   gl_MATRIX16,
-   gl_MATRIX17,
-   gl_MATRIX18,
-   gl_MATRIX19,
-   gl_MATRIX20,
-   gl_MATRIX21,
-   gl_MATRIX22,
-   gl_MATRIX23,
-   gl_MATRIX24,
-   gl_MATRIX25,
-   gl_MATRIX26,
-   gl_MATRIX27,
-   gl_MATRIX28,
-   gl_MATRIX29,
-   gl_MATRIX30,
-   gl_MATRIX31
+  -- * Enums
+  gl_CURRENT_MATRIX_ARB,
+  gl_CURRENT_MATRIX_STACK_DEPTH_ARB,
+  gl_FRAGMENT_PROGRAM_ARB,
+  gl_MATRIX0_ARB,
+  gl_MATRIX10_ARB,
+  gl_MATRIX11_ARB,
+  gl_MATRIX12_ARB,
+  gl_MATRIX13_ARB,
+  gl_MATRIX14_ARB,
+  gl_MATRIX15_ARB,
+  gl_MATRIX16_ARB,
+  gl_MATRIX17_ARB,
+  gl_MATRIX18_ARB,
+  gl_MATRIX19_ARB,
+  gl_MATRIX1_ARB,
+  gl_MATRIX20_ARB,
+  gl_MATRIX21_ARB,
+  gl_MATRIX22_ARB,
+  gl_MATRIX23_ARB,
+  gl_MATRIX24_ARB,
+  gl_MATRIX25_ARB,
+  gl_MATRIX26_ARB,
+  gl_MATRIX27_ARB,
+  gl_MATRIX28_ARB,
+  gl_MATRIX29_ARB,
+  gl_MATRIX2_ARB,
+  gl_MATRIX30_ARB,
+  gl_MATRIX31_ARB,
+  gl_MATRIX3_ARB,
+  gl_MATRIX4_ARB,
+  gl_MATRIX5_ARB,
+  gl_MATRIX6_ARB,
+  gl_MATRIX7_ARB,
+  gl_MATRIX8_ARB,
+  gl_MATRIX9_ARB,
+  gl_MAX_PROGRAM_ALU_INSTRUCTIONS_ARB,
+  gl_MAX_PROGRAM_ATTRIBS_ARB,
+  gl_MAX_PROGRAM_ENV_PARAMETERS_ARB,
+  gl_MAX_PROGRAM_INSTRUCTIONS_ARB,
+  gl_MAX_PROGRAM_LOCAL_PARAMETERS_ARB,
+  gl_MAX_PROGRAM_MATRICES_ARB,
+  gl_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB,
+  gl_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB,
+  gl_MAX_PROGRAM_NATIVE_ATTRIBS_ARB,
+  gl_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB,
+  gl_MAX_PROGRAM_NATIVE_PARAMETERS_ARB,
+  gl_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB,
+  gl_MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB,
+  gl_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB,
+  gl_MAX_PROGRAM_PARAMETERS_ARB,
+  gl_MAX_PROGRAM_TEMPORARIES_ARB,
+  gl_MAX_PROGRAM_TEX_INDIRECTIONS_ARB,
+  gl_MAX_PROGRAM_TEX_INSTRUCTIONS_ARB,
+  gl_MAX_TEXTURE_COORDS_ARB,
+  gl_MAX_TEXTURE_IMAGE_UNITS_ARB,
+  gl_PROGRAM_ALU_INSTRUCTIONS_ARB,
+  gl_PROGRAM_ATTRIBS_ARB,
+  gl_PROGRAM_BINDING_ARB,
+  gl_PROGRAM_ERROR_POSITION_ARB,
+  gl_PROGRAM_ERROR_STRING_ARB,
+  gl_PROGRAM_FORMAT_ARB,
+  gl_PROGRAM_FORMAT_ASCII_ARB,
+  gl_PROGRAM_INSTRUCTIONS_ARB,
+  gl_PROGRAM_LENGTH_ARB,
+  gl_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB,
+  gl_PROGRAM_NATIVE_ATTRIBS_ARB,
+  gl_PROGRAM_NATIVE_INSTRUCTIONS_ARB,
+  gl_PROGRAM_NATIVE_PARAMETERS_ARB,
+  gl_PROGRAM_NATIVE_TEMPORARIES_ARB,
+  gl_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB,
+  gl_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB,
+  gl_PROGRAM_PARAMETERS_ARB,
+  gl_PROGRAM_STRING_ARB,
+  gl_PROGRAM_TEMPORARIES_ARB,
+  gl_PROGRAM_TEX_INDIRECTIONS_ARB,
+  gl_PROGRAM_TEX_INSTRUCTIONS_ARB,
+  gl_PROGRAM_UNDER_NATIVE_LIMITS_ARB,
+  gl_TRANSPOSE_CURRENT_MATRIX_ARB,
+  -- * Functions
+  glBindProgramARB,
+  glDeleteProgramsARB,
+  glGenProgramsARB,
+  glGetProgramEnvParameterdvARB,
+  glGetProgramEnvParameterfvARB,
+  glGetProgramLocalParameterdvARB,
+  glGetProgramLocalParameterfvARB,
+  glGetProgramStringARB,
+  glGetProgramivARB,
+  glIsProgramARB,
+  glProgramEnvParameter4dARB,
+  glProgramEnvParameter4dvARB,
+  glProgramEnvParameter4fARB,
+  glProgramEnvParameter4fvARB,
+  glProgramLocalParameter4dARB,
+  glProgramLocalParameter4dvARB,
+  glProgramLocalParameter4fARB,
+  glProgramLocalParameter4fvARB,
+  glProgramStringARB
 ) where
 
-import Graphics.Rendering.OpenGL.Raw.Functions
 import Graphics.Rendering.OpenGL.Raw.Tokens
-
-glProgramString = glProgramStringARB
-glBindProgram = glBindProgramARB
-glDeletePrograms = glDeleteProgramsARB
-glGenPrograms = glGenProgramsARB
-glProgramEnvParameter4d = glProgramEnvParameter4dARB
-glProgramEnvParameter4dv = glProgramEnvParameter4dvARB
-glProgramEnvParameter4f = glProgramEnvParameter4fARB
-glProgramEnvParameter4fv = glProgramEnvParameter4fvARB
-glProgramLocalParameter4d = glProgramLocalParameter4dARB
-glProgramLocalParameter4dv = glProgramLocalParameter4dvARB
-glProgramLocalParameter4f = glProgramLocalParameter4fARB
-glProgramLocalParameter4fv = glProgramLocalParameter4fvARB
-glGetProgramEnvParameterdv = glGetProgramEnvParameterdvARB
-glGetProgramEnvParameterfv = glGetProgramEnvParameterfvARB
-glGetProgramLocalParameterdv = glGetProgramLocalParameterdvARB
-glGetProgramLocalParameterfv = glGetProgramLocalParameterfvARB
-glGetProgramString = glGetProgramStringARB
-
-gl_FRAGMENT_PROGRAM = gl_FRAGMENT_PROGRAM_ARB
-gl_PROGRAM_FORMAT_ASCII = gl_PROGRAM_FORMAT_ASCII_ARB
-gl_PROGRAM_LENGTH = gl_PROGRAM_LENGTH_ARB
-gl_PROGRAM_FORMAT = gl_PROGRAM_FORMAT_ARB
-gl_PROGRAM_BINDING = gl_PROGRAM_BINDING_ARB
-gl_PROGRAM_INSTRUCTIONS = gl_PROGRAM_INSTRUCTIONS_ARB
-gl_MAX_PROGRAM_INSTRUCTIONS = gl_MAX_PROGRAM_INSTRUCTIONS_ARB
-gl_PROGRAM_NATIVE_INSTRUCTIONS = gl_PROGRAM_NATIVE_INSTRUCTIONS_ARB
-gl_MAX_PROGRAM_NATIVE_INSTRUCTIONS = gl_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB
-gl_PROGRAM_TEMPORARIES = gl_PROGRAM_TEMPORARIES_ARB
-gl_MAX_PROGRAM_TEMPORARIES = gl_MAX_PROGRAM_TEMPORARIES_ARB
-gl_PROGRAM_NATIVE_TEMPORARIES = gl_PROGRAM_NATIVE_TEMPORARIES_ARB
-gl_MAX_PROGRAM_NATIVE_TEMPORARIES = gl_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB
-gl_PROGRAM_PARAMETERS = gl_PROGRAM_PARAMETERS_ARB
-gl_MAX_PROGRAM_PARAMETERS = gl_MAX_PROGRAM_PARAMETERS_ARB
-gl_PROGRAM_NATIVE_PARAMETERS = gl_PROGRAM_NATIVE_PARAMETERS_ARB
-gl_MAX_PROGRAM_NATIVE_PARAMETERS = gl_MAX_PROGRAM_NATIVE_PARAMETERS_ARB
-gl_PROGRAM_ATTRIBS = gl_PROGRAM_ATTRIBS_ARB
-gl_MAX_PROGRAM_ATTRIBS = gl_MAX_PROGRAM_ATTRIBS_ARB
-gl_PROGRAM_NATIVE_ATTRIBS = gl_PROGRAM_NATIVE_ATTRIBS_ARB
-gl_MAX_PROGRAM_NATIVE_ATTRIBS = gl_MAX_PROGRAM_NATIVE_ATTRIBS_ARB
-gl_MAX_PROGRAM_LOCAL_PARAMETERS = gl_MAX_PROGRAM_LOCAL_PARAMETERS_ARB
-gl_MAX_PROGRAM_ENV_PARAMETERS = gl_MAX_PROGRAM_ENV_PARAMETERS_ARB
-gl_PROGRAM_UNDER_NATIVE_LIMITS = gl_PROGRAM_UNDER_NATIVE_LIMITS_ARB
-gl_PROGRAM_ALU_INSTRUCTIONS = gl_PROGRAM_ALU_INSTRUCTIONS_ARB
-gl_PROGRAM_TEX_INSTRUCTIONS = gl_PROGRAM_TEX_INSTRUCTIONS_ARB
-gl_PROGRAM_TEX_INDIRECTIONS = gl_PROGRAM_TEX_INDIRECTIONS_ARB
-gl_PROGRAM_NATIVE_ALU_INSTRUCTIONS = gl_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB
-gl_PROGRAM_NATIVE_TEX_INSTRUCTIONS = gl_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB
-gl_PROGRAM_NATIVE_TEX_INDIRECTIONS = gl_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB
-gl_MAX_PROGRAM_ALU_INSTRUCTIONS = gl_MAX_PROGRAM_ALU_INSTRUCTIONS_ARB
-gl_MAX_PROGRAM_TEX_INSTRUCTIONS = gl_MAX_PROGRAM_TEX_INSTRUCTIONS_ARB
-gl_MAX_PROGRAM_TEX_INDIRECTIONS = gl_MAX_PROGRAM_TEX_INDIRECTIONS_ARB
-gl_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS = gl_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB
-gl_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS = gl_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB
-gl_MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS = gl_MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB
-gl_PROGRAM_STRING = gl_PROGRAM_STRING_ARB
-gl_PROGRAM_ERROR_POSITION = gl_PROGRAM_ERROR_POSITION_ARB
-gl_CURRENT_MATRIX = gl_CURRENT_MATRIX_ARB
-gl_TRANSPOSE_CURRENT_MATRIX = gl_TRANSPOSE_CURRENT_MATRIX_ARB
-gl_CURRENT_MATRIX_STACK_DEPTH = gl_CURRENT_MATRIX_STACK_DEPTH_ARB
-gl_MAX_PROGRAM_MATRICES = gl_MAX_PROGRAM_MATRICES_ARB
-gl_MAX_PROGRAM_MATRIX_STACK_DEPTH = gl_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB
-gl_PROGRAM_ERROR_STRING = gl_PROGRAM_ERROR_STRING_ARB
-
-gl_MATRIX0 = gl_MATRIX0_ARB
-gl_MATRIX1 = gl_MATRIX1_ARB
-gl_MATRIX2 = gl_MATRIX2_ARB
-gl_MATRIX3 = gl_MATRIX3_ARB
-gl_MATRIX4 = gl_MATRIX4_ARB
-gl_MATRIX5 = gl_MATRIX5_ARB
-gl_MATRIX6 = gl_MATRIX6_ARB
-gl_MATRIX7 = gl_MATRIX7_ARB
-gl_MATRIX8 = gl_MATRIX8_ARB
-gl_MATRIX9 = gl_MATRIX9_ARB
-gl_MATRIX10 = gl_MATRIX10_ARB
-gl_MATRIX11 = gl_MATRIX11_ARB
-gl_MATRIX12 = gl_MATRIX12_ARB
-gl_MATRIX13 = gl_MATRIX13_ARB
-gl_MATRIX14 = gl_MATRIX14_ARB
-gl_MATRIX15 = gl_MATRIX15_ARB
-gl_MATRIX16 = gl_MATRIX16_ARB
-gl_MATRIX17 = gl_MATRIX17_ARB
-gl_MATRIX18 = gl_MATRIX18_ARB
-gl_MATRIX19 = gl_MATRIX19_ARB
-gl_MATRIX20 = gl_MATRIX20_ARB
-gl_MATRIX21 = gl_MATRIX21_ARB
-gl_MATRIX22 = gl_MATRIX22_ARB
-gl_MATRIX23 = gl_MATRIX23_ARB
-gl_MATRIX24 = gl_MATRIX24_ARB
-gl_MATRIX25 = gl_MATRIX25_ARB
-gl_MATRIX26 = gl_MATRIX26_ARB
-gl_MATRIX27 = gl_MATRIX27_ARB
-gl_MATRIX28 = gl_MATRIX28_ARB
-gl_MATRIX29 = gl_MATRIX29_ARB
-gl_MATRIX30 = gl_MATRIX30_ARB
-gl_MATRIX31 = gl_MATRIX31_ARB
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/FragmentShader.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/FragmentShader.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/FragmentShader.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/ARB/FragmentShader.hs
@@ -1,26 +1,22 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.FragmentShader
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All tokens from the ARB_fragment_shader extension, see
--- <http://www.opengl.org/registry/specs/ARB/fragment_shader.txt>.
+-- The <https://www.opengl.org/registry/specs/ARB/fragment_shader.txt ARB_fragment_shader> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.ARB.FragmentShader (
-   -- * Tokens
-   gl_FRAGMENT_SHADER,
-   gl_MAX_FRAGMENT_UNIFORM_COMPONENTS,
-   gl_MAX_TEXTURE_COORDS,
-   gl_MAX_TEXTURE_IMAGE_UNITS,
-   gl_FRAGMENT_SHADER_DERIVATIVE_HINT
+  -- * Enums
+  gl_FRAGMENT_SHADER_ARB,
+  gl_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB,
+  gl_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB
 ) where
 
-import Graphics.Rendering.OpenGL.Raw.ARB.Compatibility
-import Graphics.Rendering.OpenGL.Raw.Core32
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/FramebufferNoAttachments.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/FramebufferNoAttachments.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/FramebufferNoAttachments.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/ARB/FramebufferNoAttachments.hs
@@ -1,35 +1,32 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.FramebufferNoAttachments
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All raw functions and tokens from the ARB_framebuffer_no_attachments
--- extension, see
--- <http://www.opengl.org/registry/specs/ARB/framebuffer_no_attachments.txt>.
+-- The <https://www.opengl.org/registry/specs/ARB/framebuffer_no_attachments.txt ARB_framebuffer_no_attachments> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.ARB.FramebufferNoAttachments (
-   -- * Functions
-   glFramebufferParameteri,
-   glGetFramebufferParameteriv,
-
-   -- * Tokens
-   gl_FRAMEBUFFER_DEFAULT_WIDTH,
-   gl_FRAMEBUFFER_DEFAULT_HEIGHT,
-   gl_FRAMEBUFFER_DEFAULT_LAYERS,
-   gl_FRAMEBUFFER_DEFAULT_SAMPLES,
-   gl_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS,
-   gl_MAX_FRAMEBUFFER_WIDTH,
-   gl_MAX_FRAMEBUFFER_HEIGHT,
-   gl_MAX_FRAMEBUFFER_LAYERS,
-   gl_MAX_FRAMEBUFFER_SAMPLES
+  -- * Enums
+  gl_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS,
+  gl_FRAMEBUFFER_DEFAULT_HEIGHT,
+  gl_FRAMEBUFFER_DEFAULT_LAYERS,
+  gl_FRAMEBUFFER_DEFAULT_SAMPLES,
+  gl_FRAMEBUFFER_DEFAULT_WIDTH,
+  gl_MAX_FRAMEBUFFER_HEIGHT,
+  gl_MAX_FRAMEBUFFER_LAYERS,
+  gl_MAX_FRAMEBUFFER_SAMPLES,
+  gl_MAX_FRAMEBUFFER_WIDTH,
+  -- * Functions
+  glFramebufferParameteri,
+  glGetFramebufferParameteriv
 ) where
 
-import Graphics.Rendering.OpenGL.Raw.Functions
 import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/FramebufferObject.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/FramebufferObject.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/FramebufferObject.hs
+++ /dev/null
@@ -1,117 +0,0 @@
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.FramebufferObject
--- Copyright   :  (c) Sven Panne 2013
--- License     :  BSD3
---
--- Maintainer  :  Sven Panne <svenpanne@gmail.com>
--- Stability   :  stable
--- Portability :  portable
---
--- All raw functions and tokens from the ARB_framebuffer_object extension, see
--- <http://www.opengl.org/registry/specs/ARB/framebuffer_object.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.ARB.FramebufferObject (
-   -- * Functions
-   glIsRenderbuffer,
-   glBindRenderbuffer,
-   glDeleteRenderbuffers,
-   glGenRenderbuffers,
-   glRenderbufferStorage,
-   glRenderbufferStorageMultisample,
-   glGetRenderbufferParameteriv,
-   glIsFramebuffer,
-   glBindFramebuffer,
-   glDeleteFramebuffers,
-   glGenFramebuffers,
-   glCheckFramebufferStatus,
-   glFramebufferTexture1D,
-   glFramebufferTexture2D,
-   glFramebufferTexture3D,
-   glFramebufferTextureLayer,
-   glFramebufferRenderbuffer,
-   glGetFramebufferAttachmentParameteriv,
-   glBlitFramebuffer,
-   glGenerateMipmap,
-   -- * Tokens
-   gl_FRAMEBUFFER,
-   gl_READ_FRAMEBUFFER,
-   gl_DRAW_FRAMEBUFFER,
-   gl_RENDERBUFFER,
-   gl_STENCIL_INDEX1,
-   gl_STENCIL_INDEX4,
-   gl_STENCIL_INDEX8,
-   gl_STENCIL_INDEX16,
-   gl_RENDERBUFFER_WIDTH,
-   gl_RENDERBUFFER_HEIGHT,
-   gl_RENDERBUFFER_INTERNAL_FORMAT,
-   gl_RENDERBUFFER_RED_SIZE,
-   gl_RENDERBUFFER_GREEN_SIZE,
-   gl_RENDERBUFFER_BLUE_SIZE,
-   gl_RENDERBUFFER_ALPHA_SIZE,
-   gl_RENDERBUFFER_DEPTH_SIZE,
-   gl_RENDERBUFFER_STENCIL_SIZE,
-   gl_RENDERBUFFER_SAMPLES,
-   gl_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE,
-   gl_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME,
-   gl_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL,
-   gl_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE,
-   gl_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER,
-   gl_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING,
-   gl_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE,
-   gl_FRAMEBUFFER_ATTACHMENT_RED_SIZE,
-   gl_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE,
-   gl_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE,
-   gl_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE,
-   gl_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE,
-   gl_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE,
-   gl_SRGB,
-   gl_UNSIGNED_NORMALIZED,
-   gl_FRAMEBUFFER_DEFAULT,
-   gl_INDEX,
-   gl_COLOR_ATTACHMENT0,
-   gl_COLOR_ATTACHMENT1,
-   gl_COLOR_ATTACHMENT2,
-   gl_COLOR_ATTACHMENT3,
-   gl_COLOR_ATTACHMENT4,
-   gl_COLOR_ATTACHMENT5,
-   gl_COLOR_ATTACHMENT6,
-   gl_COLOR_ATTACHMENT7,
-   gl_COLOR_ATTACHMENT8,
-   gl_COLOR_ATTACHMENT9,
-   gl_COLOR_ATTACHMENT10,
-   gl_COLOR_ATTACHMENT11,
-   gl_COLOR_ATTACHMENT12,
-   gl_COLOR_ATTACHMENT13,
-   gl_COLOR_ATTACHMENT14,
-   gl_COLOR_ATTACHMENT15,
-   gl_DEPTH_ATTACHMENT,
-   gl_STENCIL_ATTACHMENT,
-   gl_DEPTH_STENCIL_ATTACHMENT,
-   gl_MAX_SAMPLES,
-   gl_FRAMEBUFFER_COMPLETE,
-   gl_FRAMEBUFFER_INCOMPLETE_ATTACHMENT,
-   gl_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT,
-   gl_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER,
-   gl_FRAMEBUFFER_INCOMPLETE_READ_BUFFER,
-   gl_FRAMEBUFFER_UNSUPPORTED,
-   gl_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE,
-   gl_FRAMEBUFFER_UNDEFINED,
-   gl_FRAMEBUFFER_BINDING,
-   gl_DRAW_FRAMEBUFFER_BINDING,
-   gl_READ_FRAMEBUFFER_BINDING,
-   gl_RENDERBUFFER_BINDING,
-   gl_MAX_COLOR_ATTACHMENTS,
-   gl_MAX_RENDERBUFFER_SIZE,
-   gl_INVALID_FRAMEBUFFER_OPERATION,
-   gl_DEPTH_STENCIL,
-   gl_UNSIGNED_INT_24_8,
-   gl_DEPTH24_STENCIL8,
-   gl_TEXTURE_STENCIL_SIZE
-) where
-
-import Graphics.Rendering.OpenGL.Raw.ARB.Compatibility
-import Graphics.Rendering.OpenGL.Raw.Functions
-import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/FramebufferObjectCompatibility.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/FramebufferObjectCompatibility.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/ARB/FramebufferObjectCompatibility.hs
@@ -0,0 +1,114 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.FramebufferObjectCompatibility
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/ARB/framebuffer_object_compatibility.txt ARB_framebuffer_object_compatibility> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.ARB.FramebufferObjectCompatibility (
+  -- * Enums
+  gl_COLOR_ATTACHMENT0,
+  gl_COLOR_ATTACHMENT1,
+  gl_COLOR_ATTACHMENT10,
+  gl_COLOR_ATTACHMENT11,
+  gl_COLOR_ATTACHMENT12,
+  gl_COLOR_ATTACHMENT13,
+  gl_COLOR_ATTACHMENT14,
+  gl_COLOR_ATTACHMENT15,
+  gl_COLOR_ATTACHMENT2,
+  gl_COLOR_ATTACHMENT3,
+  gl_COLOR_ATTACHMENT4,
+  gl_COLOR_ATTACHMENT5,
+  gl_COLOR_ATTACHMENT6,
+  gl_COLOR_ATTACHMENT7,
+  gl_COLOR_ATTACHMENT8,
+  gl_COLOR_ATTACHMENT9,
+  gl_DEPTH24_STENCIL8,
+  gl_DEPTH_ATTACHMENT,
+  gl_DEPTH_STENCIL,
+  gl_DEPTH_STENCIL_ATTACHMENT,
+  gl_DRAW_FRAMEBUFFER,
+  gl_DRAW_FRAMEBUFFER_BINDING,
+  gl_FRAMEBUFFER,
+  gl_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE,
+  gl_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE,
+  gl_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING,
+  gl_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE,
+  gl_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE,
+  gl_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE,
+  gl_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME,
+  gl_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE,
+  gl_FRAMEBUFFER_ATTACHMENT_RED_SIZE,
+  gl_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE,
+  gl_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE,
+  gl_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER,
+  gl_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL,
+  gl_FRAMEBUFFER_BINDING,
+  gl_FRAMEBUFFER_COMPLETE,
+  gl_FRAMEBUFFER_DEFAULT,
+  gl_FRAMEBUFFER_INCOMPLETE_ATTACHMENT,
+  gl_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER,
+  gl_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT,
+  gl_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE,
+  gl_FRAMEBUFFER_INCOMPLETE_READ_BUFFER,
+  gl_FRAMEBUFFER_UNDEFINED,
+  gl_FRAMEBUFFER_UNSUPPORTED,
+  gl_INDEX,
+  gl_INVALID_FRAMEBUFFER_OPERATION,
+  gl_MAX_COLOR_ATTACHMENTS,
+  gl_MAX_RENDERBUFFER_SIZE,
+  gl_MAX_SAMPLES,
+  gl_READ_FRAMEBUFFER,
+  gl_READ_FRAMEBUFFER_BINDING,
+  gl_RENDERBUFFER,
+  gl_RENDERBUFFER_ALPHA_SIZE,
+  gl_RENDERBUFFER_BINDING,
+  gl_RENDERBUFFER_BLUE_SIZE,
+  gl_RENDERBUFFER_DEPTH_SIZE,
+  gl_RENDERBUFFER_GREEN_SIZE,
+  gl_RENDERBUFFER_HEIGHT,
+  gl_RENDERBUFFER_INTERNAL_FORMAT,
+  gl_RENDERBUFFER_RED_SIZE,
+  gl_RENDERBUFFER_SAMPLES,
+  gl_RENDERBUFFER_STENCIL_SIZE,
+  gl_RENDERBUFFER_WIDTH,
+  gl_STENCIL_ATTACHMENT,
+  gl_STENCIL_INDEX1,
+  gl_STENCIL_INDEX16,
+  gl_STENCIL_INDEX4,
+  gl_STENCIL_INDEX8,
+  gl_TEXTURE_STENCIL_SIZE,
+  gl_UNSIGNED_INT_24_8,
+  gl_UNSIGNED_NORMALIZED,
+  -- * Functions
+  glBindFramebuffer,
+  glBindRenderbuffer,
+  glBlitFramebuffer,
+  glCheckFramebufferStatus,
+  glDeleteFramebuffers,
+  glDeleteRenderbuffers,
+  glFramebufferRenderbuffer,
+  glFramebufferTexture1D,
+  glFramebufferTexture2D,
+  glFramebufferTexture3D,
+  glFramebufferTextureLayer,
+  glGenFramebuffers,
+  glGenRenderbuffers,
+  glGenerateMipmap,
+  glGetFramebufferAttachmentParameteriv,
+  glGetRenderbufferParameteriv,
+  glIsFramebuffer,
+  glIsRenderbuffer,
+  glRenderbufferStorage,
+  glRenderbufferStorageMultisample
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/FramebufferObjectCore.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/FramebufferObjectCore.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/ARB/FramebufferObjectCore.hs
@@ -0,0 +1,113 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.FramebufferObjectCore
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/ARB/framebuffer_object_core.txt ARB_framebuffer_object_core> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.ARB.FramebufferObjectCore (
+  -- * Enums
+  gl_COLOR_ATTACHMENT0,
+  gl_COLOR_ATTACHMENT1,
+  gl_COLOR_ATTACHMENT10,
+  gl_COLOR_ATTACHMENT11,
+  gl_COLOR_ATTACHMENT12,
+  gl_COLOR_ATTACHMENT13,
+  gl_COLOR_ATTACHMENT14,
+  gl_COLOR_ATTACHMENT15,
+  gl_COLOR_ATTACHMENT2,
+  gl_COLOR_ATTACHMENT3,
+  gl_COLOR_ATTACHMENT4,
+  gl_COLOR_ATTACHMENT5,
+  gl_COLOR_ATTACHMENT6,
+  gl_COLOR_ATTACHMENT7,
+  gl_COLOR_ATTACHMENT8,
+  gl_COLOR_ATTACHMENT9,
+  gl_DEPTH24_STENCIL8,
+  gl_DEPTH_ATTACHMENT,
+  gl_DEPTH_STENCIL,
+  gl_DEPTH_STENCIL_ATTACHMENT,
+  gl_DRAW_FRAMEBUFFER,
+  gl_DRAW_FRAMEBUFFER_BINDING,
+  gl_FRAMEBUFFER,
+  gl_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE,
+  gl_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE,
+  gl_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING,
+  gl_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE,
+  gl_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE,
+  gl_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE,
+  gl_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME,
+  gl_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE,
+  gl_FRAMEBUFFER_ATTACHMENT_RED_SIZE,
+  gl_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE,
+  gl_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE,
+  gl_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER,
+  gl_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL,
+  gl_FRAMEBUFFER_BINDING,
+  gl_FRAMEBUFFER_COMPLETE,
+  gl_FRAMEBUFFER_DEFAULT,
+  gl_FRAMEBUFFER_INCOMPLETE_ATTACHMENT,
+  gl_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER,
+  gl_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT,
+  gl_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE,
+  gl_FRAMEBUFFER_INCOMPLETE_READ_BUFFER,
+  gl_FRAMEBUFFER_UNDEFINED,
+  gl_FRAMEBUFFER_UNSUPPORTED,
+  gl_INVALID_FRAMEBUFFER_OPERATION,
+  gl_MAX_COLOR_ATTACHMENTS,
+  gl_MAX_RENDERBUFFER_SIZE,
+  gl_MAX_SAMPLES,
+  gl_READ_FRAMEBUFFER,
+  gl_READ_FRAMEBUFFER_BINDING,
+  gl_RENDERBUFFER,
+  gl_RENDERBUFFER_ALPHA_SIZE,
+  gl_RENDERBUFFER_BINDING,
+  gl_RENDERBUFFER_BLUE_SIZE,
+  gl_RENDERBUFFER_DEPTH_SIZE,
+  gl_RENDERBUFFER_GREEN_SIZE,
+  gl_RENDERBUFFER_HEIGHT,
+  gl_RENDERBUFFER_INTERNAL_FORMAT,
+  gl_RENDERBUFFER_RED_SIZE,
+  gl_RENDERBUFFER_SAMPLES,
+  gl_RENDERBUFFER_STENCIL_SIZE,
+  gl_RENDERBUFFER_WIDTH,
+  gl_STENCIL_ATTACHMENT,
+  gl_STENCIL_INDEX1,
+  gl_STENCIL_INDEX16,
+  gl_STENCIL_INDEX4,
+  gl_STENCIL_INDEX8,
+  gl_TEXTURE_STENCIL_SIZE,
+  gl_UNSIGNED_INT_24_8,
+  gl_UNSIGNED_NORMALIZED,
+  -- * Functions
+  glBindFramebuffer,
+  glBindRenderbuffer,
+  glBlitFramebuffer,
+  glCheckFramebufferStatus,
+  glDeleteFramebuffers,
+  glDeleteRenderbuffers,
+  glFramebufferRenderbuffer,
+  glFramebufferTexture1D,
+  glFramebufferTexture2D,
+  glFramebufferTexture3D,
+  glFramebufferTextureLayer,
+  glGenFramebuffers,
+  glGenRenderbuffers,
+  glGenerateMipmap,
+  glGetFramebufferAttachmentParameteriv,
+  glGetRenderbufferParameteriv,
+  glIsFramebuffer,
+  glIsRenderbuffer,
+  glRenderbufferStorage,
+  glRenderbufferStorageMultisample
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/FramebufferSRGB.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/FramebufferSRGB.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/FramebufferSRGB.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/ARB/FramebufferSRGB.hs
@@ -1,22 +1,20 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.FramebufferSRGB
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All tokens from the ARB_framebuffer_sRGB extension, see
--- <http://www.opengl.org/registry/specs/ARB/framebuffer_sRGB.txt>.
+-- The <https://www.opengl.org/registry/specs/ARB/framebuffer_sRGB.txt ARB_framebuffer_sRGB> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.ARB.FramebufferSRGB (
-   -- * Tokens
-   gl_FRAMEBUFFER_SRGB
-
+  -- * Enums
+  gl_FRAMEBUFFER_SRGB
 ) where
 
-import Graphics.Rendering.OpenGL.Raw.Core32
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/GPUShader5.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/GPUShader5.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/GPUShader5.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/ARB/GPUShader5.hs
@@ -1,26 +1,25 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.GPUShader5
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All raw functions and tokens from the ARB_gpu_shader5 extension, see
--- <http://www.opengl.org/registry/specs/ARB/gpu_shader5.txt>.
+-- The <https://www.opengl.org/registry/specs/ARB/gpu_shader5.txt ARB_gpu_shader5> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.ARB.GPUShader5 (
-   -- * Tokens
-   gl_GEOMETRY_SHADER_INVOCATIONS,
-   gl_MAX_GEOMETRY_SHADER_INVOCATIONS,
-   gl_MIN_FRAGMENT_INTERPOLATION_OFFSET,
-   gl_MAX_FRAGMENT_INTERPOLATION_OFFSET,
-   gl_FRAGMENT_INTERPOLATION_OFFSET_BITS,
-   gl_MAX_VERTEX_STREAMS
+  -- * Enums
+  gl_FRAGMENT_INTERPOLATION_OFFSET_BITS,
+  gl_GEOMETRY_SHADER_INVOCATIONS,
+  gl_MAX_FRAGMENT_INTERPOLATION_OFFSET,
+  gl_MAX_GEOMETRY_SHADER_INVOCATIONS,
+  gl_MAX_VERTEX_STREAMS,
+  gl_MIN_FRAGMENT_INTERPOLATION_OFFSET
 ) where
 
 import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/GPUShaderFP64.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/GPUShaderFP64.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/GPUShaderFP64.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/ARB/GPUShaderFP64.hs
@@ -1,53 +1,52 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.GPUShaderFP64
--- Copyright   :  (c) Sven Panne 2014
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All raw functions and tokens from the ARB_gpu_shader_fp64 extension, see
--- <http://www.opengl.org/registry/specs/ARB/gpu_shader_fp64.txt>.
+-- The <https://www.opengl.org/registry/specs/ARB/gpu_shader_fp64.txt ARB_gpu_shader_fp64> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.ARB.GPUShaderFP64 (
-   -- * Functions
-   glUniform1d,
-   glUniform2d,
-   glUniform3d,
-   glUniform4d,
-   glUniform1dv,
-   glUniform2dv,
-   glUniform3dv,
-   glUniform4dv,
-   glUniformMatrix2dv,
-   glUniformMatrix3dv,
-   glUniformMatrix4dv,
-   glUniformMatrix2x3dv,
-   glUniformMatrix2x4dv,
-   glUniformMatrix3x2dv,
-   glUniformMatrix3x4dv,
-   glUniformMatrix4x2dv,
-   glUniformMatrix4x3dv,
-   glGetUniformdv,
-
-   -- * Tokens
-   gl_DOUBLE_VEC2,
-   gl_DOUBLE_VEC3,
-   gl_DOUBLE_VEC4,
-   gl_DOUBLE_MAT2,
-   gl_DOUBLE_MAT3,
-   gl_DOUBLE_MAT4,
-   gl_DOUBLE_MAT2x3,
-   gl_DOUBLE_MAT2x4,
-   gl_DOUBLE_MAT3x2,
-   gl_DOUBLE_MAT3x4,
-   gl_DOUBLE_MAT4x2, 
-   gl_DOUBLE_MAT4x3
+  -- * Enums
+  gl_DOUBLE,
+  gl_DOUBLE_MAT2,
+  gl_DOUBLE_MAT2x3,
+  gl_DOUBLE_MAT2x4,
+  gl_DOUBLE_MAT3,
+  gl_DOUBLE_MAT3x2,
+  gl_DOUBLE_MAT3x4,
+  gl_DOUBLE_MAT4,
+  gl_DOUBLE_MAT4x2,
+  gl_DOUBLE_MAT4x3,
+  gl_DOUBLE_VEC2,
+  gl_DOUBLE_VEC3,
+  gl_DOUBLE_VEC4,
+  -- * Functions
+  glGetUniformdv,
+  glUniform1d,
+  glUniform1dv,
+  glUniform2d,
+  glUniform2dv,
+  glUniform3d,
+  glUniform3dv,
+  glUniform4d,
+  glUniform4dv,
+  glUniformMatrix2dv,
+  glUniformMatrix2x3dv,
+  glUniformMatrix2x4dv,
+  glUniformMatrix3dv,
+  glUniformMatrix3x2dv,
+  glUniformMatrix3x4dv,
+  glUniformMatrix4dv,
+  glUniformMatrix4x2dv,
+  glUniformMatrix4x3dv
 ) where
 
-import Graphics.Rendering.OpenGL.Raw.Functions
 import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
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
@@ -1,53 +1,45 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.GeometryShader4
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All raw functions and tokens from the ARB_geometry_shader4 extension, see
--- <http://www.opengl.org/registry/specs/ARB/geometry_shader4.txt>.
+-- The <https://www.opengl.org/registry/specs/ARB/geometry_shader4.txt ARB_geometry_shader4> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.ARB.GeometryShader4 (
-   -- * Functions
-   glProgramParameteri,
-   glFramebufferTexture,
-   glFramebufferTextureLayer,
-   glFramebufferTextureFace,
-
-   -- * Tokens
-   gl_LINES_ADJACENCY,
-   gl_LINE_STRIP_ADJACENCY,
-   gl_TRIANGLES_ADJACENCY,
-   gl_TRIANGLE_STRIP_ADJACENCY,
-   gl_PROGRAM_POINT_SIZE,
-   gl_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS,
-   gl_FRAMEBUFFER_ATTACHMENT_LAYERED,
-   gl_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS,
-   gl_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT,
-   gl_GEOMETRY_SHADER,
-   gl_GEOMETRY_VERTICES_OUT,
-   gl_GEOMETRY_INPUT_TYPE,
-   gl_GEOMETRY_OUTPUT_TYPE,
-   gl_MAX_GEOMETRY_VARYING_COMPONENTS,
-   gl_MAX_VERTEX_VARYING_COMPONENTS,
-   gl_MAX_GEOMETRY_UNIFORM_COMPONENTS,
-   gl_MAX_GEOMETRY_OUTPUT_VERTICES,
-   gl_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS,
-   gl_MAX_VARYING_COMPONENTS,
-   gl_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER
+  -- * Enums
+  gl_FRAMEBUFFER_ATTACHMENT_LAYERED_ARB,
+  gl_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER,
+  gl_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_ARB,
+  gl_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_ARB,
+  gl_GEOMETRY_INPUT_TYPE_ARB,
+  gl_GEOMETRY_OUTPUT_TYPE_ARB,
+  gl_GEOMETRY_SHADER_ARB,
+  gl_GEOMETRY_VERTICES_OUT_ARB,
+  gl_LINES_ADJACENCY_ARB,
+  gl_LINE_STRIP_ADJACENCY_ARB,
+  gl_MAX_GEOMETRY_OUTPUT_VERTICES_ARB,
+  gl_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_ARB,
+  gl_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_ARB,
+  gl_MAX_GEOMETRY_UNIFORM_COMPONENTS_ARB,
+  gl_MAX_GEOMETRY_VARYING_COMPONENTS_ARB,
+  gl_MAX_VARYING_COMPONENTS,
+  gl_MAX_VERTEX_VARYING_COMPONENTS_ARB,
+  gl_PROGRAM_POINT_SIZE_ARB,
+  gl_TRIANGLES_ADJACENCY_ARB,
+  gl_TRIANGLE_STRIP_ADJACENCY_ARB,
+  -- * Functions
+  glFramebufferTextureARB,
+  glFramebufferTextureFaceARB,
+  glFramebufferTextureLayerARB,
+  glProgramParameteriARB
 ) where
 
-import Graphics.Rendering.OpenGL.Raw.Functions
 import Graphics.Rendering.OpenGL.Raw.Tokens
-
-glFramebufferTextureFace = glFramebufferTextureFaceARB
-
-gl_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT = gl_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_ARB
-gl_MAX_GEOMETRY_VARYING_COMPONENTS = gl_MAX_GEOMETRY_VARYING_COMPONENTS_ARB
-gl_MAX_VERTEX_VARYING_COMPONENTS = gl_MAX_VERTEX_VARYING_COMPONENTS_ARB
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/GetProgramBinary.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/GetProgramBinary.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/GetProgramBinary.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/ARB/GetProgramBinary.hs
@@ -1,31 +1,28 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.GetProgramBinary
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All raw functions and tokens from the ARB_get_program_binary extension, see
--- <http://www.opengl.org/registry/specs/ARB/get_program_binary.txt>.
+-- The <https://www.opengl.org/registry/specs/ARB/get_program_binary.txt ARB_get_program_binary> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.ARB.GetProgramBinary (
-   -- * Functions
-   glGetProgramBinary,
-   glProgramBinary,
-   glProgramParameteri,
-
-   -- * Tokens
-   gl_PROGRAM_BINARY_RETRIEVABLE_HINT,
-   gl_PROGRAM_BINARY_LENGTH,
-   gl_NUM_PROGRAM_BINARY_FORMATS,
-   gl_PROGRAM_BINARY_FORMATS
-
+  -- * Enums
+  gl_NUM_PROGRAM_BINARY_FORMATS,
+  gl_PROGRAM_BINARY_FORMATS,
+  gl_PROGRAM_BINARY_LENGTH,
+  gl_PROGRAM_BINARY_RETRIEVABLE_HINT,
+  -- * Functions
+  glGetProgramBinary,
+  glProgramBinary,
+  glProgramParameteri
 ) where
 
-import Graphics.Rendering.OpenGL.Raw.Functions
 import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/GetTextureSubImage.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/GetTextureSubImage.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/ARB/GetTextureSubImage.hs
@@ -0,0 +1,21 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.GetTextureSubImage
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/ARB/get_texture_sub_image.txt ARB_get_texture_sub_image> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.ARB.GetTextureSubImage (
+  -- * Functions
+  glGetCompressedTextureSubImage,
+  glGetTextureSubImage
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/HalfFloatPixel.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/HalfFloatPixel.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/HalfFloatPixel.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/ARB/HalfFloatPixel.hs
@@ -1,21 +1,23 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.HalfFloatPixel
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All tokens from the ARB_half_float_pixel extension, see
--- <http://www.opengl.org/registry/specs/ARB/half_float_pixel.txt>.
+-- The <https://www.opengl.org/registry/specs/ARB/half_float_pixel.txt ARB_half_float_pixel> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.ARB.HalfFloatPixel (
-   -- * Tokens
-   gl_HALF_FLOAT
+  -- * Types
+  GLhalfARB,
+  -- * Enums
+  gl_HALF_FLOAT_ARB
 ) where
 
-import Graphics.Rendering.OpenGL.Raw.Core32
+import Graphics.Rendering.OpenGL.Raw.Types
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/HalfFloatVertex.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/HalfFloatVertex.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/HalfFloatVertex.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/ARB/HalfFloatVertex.hs
@@ -1,21 +1,23 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.HalfFloatVertex
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All tokens from the ARB_half_float_vertex extension, see
--- <http://www.opengl.org/registry/specs/ARB/half_float_vertex.txt>.
+-- The <https://www.opengl.org/registry/specs/ARB/half_float_vertex.txt ARB_half_float_vertex> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.ARB.HalfFloatVertex (
-   -- * Tokens
-   gl_HALF_FLOAT
+  -- * Types
+  GLhalf,
+  -- * Enums
+  gl_HALF_FLOAT
 ) where
 
-import Graphics.Rendering.OpenGL.Raw.Core32
+import Graphics.Rendering.OpenGL.Raw.Types
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/ImagingCompatibility.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/ImagingCompatibility.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/ARB/ImagingCompatibility.hs
@@ -0,0 +1,130 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.ImagingCompatibility
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/ARB/imaging_compatibility.txt ARB_imaging_compatibility> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.ARB.ImagingCompatibility (
+  -- * Enums
+  gl_BLEND_COLOR,
+  gl_BLEND_EQUATION,
+  gl_COLOR_MATRIX,
+  gl_COLOR_MATRIX_STACK_DEPTH,
+  gl_COLOR_TABLE,
+  gl_COLOR_TABLE_ALPHA_SIZE,
+  gl_COLOR_TABLE_BIAS,
+  gl_COLOR_TABLE_BLUE_SIZE,
+  gl_COLOR_TABLE_FORMAT,
+  gl_COLOR_TABLE_GREEN_SIZE,
+  gl_COLOR_TABLE_INTENSITY_SIZE,
+  gl_COLOR_TABLE_LUMINANCE_SIZE,
+  gl_COLOR_TABLE_RED_SIZE,
+  gl_COLOR_TABLE_SCALE,
+  gl_COLOR_TABLE_WIDTH,
+  gl_CONSTANT_ALPHA,
+  gl_CONSTANT_BORDER,
+  gl_CONSTANT_COLOR,
+  gl_CONVOLUTION_1D,
+  gl_CONVOLUTION_2D,
+  gl_CONVOLUTION_BORDER_COLOR,
+  gl_CONVOLUTION_BORDER_MODE,
+  gl_CONVOLUTION_FILTER_BIAS,
+  gl_CONVOLUTION_FILTER_SCALE,
+  gl_CONVOLUTION_FORMAT,
+  gl_CONVOLUTION_HEIGHT,
+  gl_CONVOLUTION_WIDTH,
+  gl_FUNC_ADD,
+  gl_FUNC_REVERSE_SUBTRACT,
+  gl_FUNC_SUBTRACT,
+  gl_HISTOGRAM,
+  gl_HISTOGRAM_ALPHA_SIZE,
+  gl_HISTOGRAM_BLUE_SIZE,
+  gl_HISTOGRAM_FORMAT,
+  gl_HISTOGRAM_GREEN_SIZE,
+  gl_HISTOGRAM_LUMINANCE_SIZE,
+  gl_HISTOGRAM_RED_SIZE,
+  gl_HISTOGRAM_SINK,
+  gl_HISTOGRAM_WIDTH,
+  gl_MAX,
+  gl_MAX_COLOR_MATRIX_STACK_DEPTH,
+  gl_MAX_CONVOLUTION_HEIGHT,
+  gl_MAX_CONVOLUTION_WIDTH,
+  gl_MIN,
+  gl_MINMAX,
+  gl_MINMAX_FORMAT,
+  gl_MINMAX_SINK,
+  gl_ONE_MINUS_CONSTANT_ALPHA,
+  gl_ONE_MINUS_CONSTANT_COLOR,
+  gl_POST_COLOR_MATRIX_ALPHA_BIAS,
+  gl_POST_COLOR_MATRIX_ALPHA_SCALE,
+  gl_POST_COLOR_MATRIX_BLUE_BIAS,
+  gl_POST_COLOR_MATRIX_BLUE_SCALE,
+  gl_POST_COLOR_MATRIX_COLOR_TABLE,
+  gl_POST_COLOR_MATRIX_GREEN_BIAS,
+  gl_POST_COLOR_MATRIX_GREEN_SCALE,
+  gl_POST_COLOR_MATRIX_RED_BIAS,
+  gl_POST_COLOR_MATRIX_RED_SCALE,
+  gl_POST_CONVOLUTION_ALPHA_BIAS,
+  gl_POST_CONVOLUTION_ALPHA_SCALE,
+  gl_POST_CONVOLUTION_BLUE_BIAS,
+  gl_POST_CONVOLUTION_BLUE_SCALE,
+  gl_POST_CONVOLUTION_COLOR_TABLE,
+  gl_POST_CONVOLUTION_GREEN_BIAS,
+  gl_POST_CONVOLUTION_GREEN_SCALE,
+  gl_POST_CONVOLUTION_RED_BIAS,
+  gl_POST_CONVOLUTION_RED_SCALE,
+  gl_PROXY_COLOR_TABLE,
+  gl_PROXY_HISTOGRAM,
+  gl_PROXY_POST_COLOR_MATRIX_COLOR_TABLE,
+  gl_PROXY_POST_CONVOLUTION_COLOR_TABLE,
+  gl_REDUCE,
+  gl_REPLICATE_BORDER,
+  gl_SEPARABLE_2D,
+  gl_TABLE_TOO_LARGE,
+  -- * Functions
+  glBlendColor,
+  glBlendEquation,
+  glColorSubTable,
+  glColorTable,
+  glColorTableParameterfv,
+  glColorTableParameteriv,
+  glConvolutionFilter1D,
+  glConvolutionFilter2D,
+  glConvolutionParameterf,
+  glConvolutionParameterfv,
+  glConvolutionParameteri,
+  glConvolutionParameteriv,
+  glCopyColorSubTable,
+  glCopyColorTable,
+  glCopyConvolutionFilter1D,
+  glCopyConvolutionFilter2D,
+  glGetColorTable,
+  glGetColorTableParameterfv,
+  glGetColorTableParameteriv,
+  glGetConvolutionFilter,
+  glGetConvolutionParameterfv,
+  glGetConvolutionParameteriv,
+  glGetHistogram,
+  glGetHistogramParameterfv,
+  glGetHistogramParameteriv,
+  glGetMinmax,
+  glGetMinmaxParameterfv,
+  glGetMinmaxParameteriv,
+  glGetSeparableFilter,
+  glHistogram,
+  glMinmax,
+  glResetHistogram,
+  glResetMinmax,
+  glSeparableFilter2D
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/ImagingCore.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/ImagingCore.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/ARB/ImagingCore.hs
@@ -0,0 +1,34 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.ImagingCore
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/ARB/imaging_core.txt ARB_imaging_core> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.ARB.ImagingCore (
+  -- * Enums
+  gl_BLEND_COLOR,
+  gl_BLEND_EQUATION,
+  gl_CONSTANT_ALPHA,
+  gl_CONSTANT_COLOR,
+  gl_FUNC_ADD,
+  gl_FUNC_REVERSE_SUBTRACT,
+  gl_FUNC_SUBTRACT,
+  gl_MAX,
+  gl_MIN,
+  gl_ONE_MINUS_CONSTANT_ALPHA,
+  gl_ONE_MINUS_CONSTANT_COLOR,
+  -- * Functions
+  glBlendColor,
+  glBlendEquation
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/IndirectParameters.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/IndirectParameters.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/ARB/IndirectParameters.hs
@@ -0,0 +1,25 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.IndirectParameters
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/ARB/indirect_parameters.txt ARB_indirect_parameters> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.ARB.IndirectParameters (
+  -- * Enums
+  gl_PARAMETER_BUFFER_ARB,
+  gl_PARAMETER_BUFFER_BINDING_ARB,
+  -- * Functions
+  glMultiDrawArraysIndirectCountARB,
+  glMultiDrawElementsIndirectCountARB
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
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
@@ -1,24 +1,23 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.InstancedArrays
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All raw functions and tokens from the ARB_instanced_arrays extension, see
--- <http://www.opengl.org/registry/specs/ARB/instanced_arrays.txt>.
+-- The <https://www.opengl.org/registry/specs/ARB/instanced_arrays.txt ARB_instanced_arrays> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.ARB.InstancedArrays (
-   -- * Functions
-   glVertexAttribDivisor,
-   -- * Tokens
-   gl_VERTEX_ATTRIB_ARRAY_DIVISOR
+  -- * Enums
+  gl_VERTEX_ATTRIB_ARRAY_DIVISOR_ARB,
+  -- * Functions
+  glVertexAttribDivisorARB
 ) where
 
-import Graphics.Rendering.OpenGL.Raw.Functions
 import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/InternalformatQuery.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/InternalformatQuery.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/ARB/InternalformatQuery.hs
@@ -0,0 +1,23 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.InternalformatQuery
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/ARB/internalformat_query.txt ARB_internalformat_query> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.ARB.InternalformatQuery (
+  -- * Enums
+  gl_NUM_SAMPLE_COUNTS,
+  -- * Functions
+  glGetInternalformativ
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/InternalformatQuery2.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/InternalformatQuery2.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/ARB/InternalformatQuery2.hs
@@ -0,0 +1,137 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.InternalformatQuery2
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/ARB/internalformat_query2.txt ARB_internalformat_query2> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.ARB.InternalformatQuery2 (
+  -- * Enums
+  gl_AUTO_GENERATE_MIPMAP,
+  gl_CAVEAT_SUPPORT,
+  gl_CLEAR_BUFFER,
+  gl_COLOR_COMPONENTS,
+  gl_COLOR_ENCODING,
+  gl_COLOR_RENDERABLE,
+  gl_COMPUTE_TEXTURE,
+  gl_DEPTH_COMPONENTS,
+  gl_DEPTH_RENDERABLE,
+  gl_FILTER,
+  gl_FRAGMENT_TEXTURE,
+  gl_FRAMEBUFFER_BLEND,
+  gl_FRAMEBUFFER_RENDERABLE,
+  gl_FRAMEBUFFER_RENDERABLE_LAYERED,
+  gl_FULL_SUPPORT,
+  gl_GEOMETRY_TEXTURE,
+  gl_GET_TEXTURE_IMAGE_FORMAT,
+  gl_GET_TEXTURE_IMAGE_TYPE,
+  gl_IMAGE_CLASS_10_10_10_2,
+  gl_IMAGE_CLASS_11_11_10,
+  gl_IMAGE_CLASS_1_X_16,
+  gl_IMAGE_CLASS_1_X_32,
+  gl_IMAGE_CLASS_1_X_8,
+  gl_IMAGE_CLASS_2_X_16,
+  gl_IMAGE_CLASS_2_X_32,
+  gl_IMAGE_CLASS_2_X_8,
+  gl_IMAGE_CLASS_4_X_16,
+  gl_IMAGE_CLASS_4_X_32,
+  gl_IMAGE_CLASS_4_X_8,
+  gl_IMAGE_COMPATIBILITY_CLASS,
+  gl_IMAGE_FORMAT_COMPATIBILITY_TYPE,
+  gl_IMAGE_PIXEL_FORMAT,
+  gl_IMAGE_PIXEL_TYPE,
+  gl_IMAGE_TEXEL_SIZE,
+  gl_INTERNALFORMAT_ALPHA_SIZE,
+  gl_INTERNALFORMAT_ALPHA_TYPE,
+  gl_INTERNALFORMAT_BLUE_SIZE,
+  gl_INTERNALFORMAT_BLUE_TYPE,
+  gl_INTERNALFORMAT_DEPTH_SIZE,
+  gl_INTERNALFORMAT_DEPTH_TYPE,
+  gl_INTERNALFORMAT_GREEN_SIZE,
+  gl_INTERNALFORMAT_GREEN_TYPE,
+  gl_INTERNALFORMAT_PREFERRED,
+  gl_INTERNALFORMAT_RED_SIZE,
+  gl_INTERNALFORMAT_RED_TYPE,
+  gl_INTERNALFORMAT_SHARED_SIZE,
+  gl_INTERNALFORMAT_STENCIL_SIZE,
+  gl_INTERNALFORMAT_STENCIL_TYPE,
+  gl_INTERNALFORMAT_SUPPORTED,
+  gl_MANUAL_GENERATE_MIPMAP,
+  gl_MAX_COMBINED_DIMENSIONS,
+  gl_MAX_DEPTH,
+  gl_MAX_HEIGHT,
+  gl_MAX_LAYERS,
+  gl_MAX_WIDTH,
+  gl_MIPMAP,
+  gl_NUM_SAMPLE_COUNTS,
+  gl_READ_PIXELS,
+  gl_READ_PIXELS_FORMAT,
+  gl_READ_PIXELS_TYPE,
+  gl_RENDERBUFFER,
+  gl_SAMPLES,
+  gl_SHADER_IMAGE_ATOMIC,
+  gl_SHADER_IMAGE_LOAD,
+  gl_SHADER_IMAGE_STORE,
+  gl_SIMULTANEOUS_TEXTURE_AND_DEPTH_TEST,
+  gl_SIMULTANEOUS_TEXTURE_AND_DEPTH_WRITE,
+  gl_SIMULTANEOUS_TEXTURE_AND_STENCIL_TEST,
+  gl_SIMULTANEOUS_TEXTURE_AND_STENCIL_WRITE,
+  gl_SRGB_DECODE_ARB,
+  gl_SRGB_READ,
+  gl_SRGB_WRITE,
+  gl_STENCIL_COMPONENTS,
+  gl_STENCIL_RENDERABLE,
+  gl_TESS_CONTROL_TEXTURE,
+  gl_TESS_EVALUATION_TEXTURE,
+  gl_TEXTURE_1D,
+  gl_TEXTURE_1D_ARRAY,
+  gl_TEXTURE_2D,
+  gl_TEXTURE_2D_ARRAY,
+  gl_TEXTURE_2D_MULTISAMPLE,
+  gl_TEXTURE_2D_MULTISAMPLE_ARRAY,
+  gl_TEXTURE_3D,
+  gl_TEXTURE_BUFFER,
+  gl_TEXTURE_COMPRESSED,
+  gl_TEXTURE_COMPRESSED_BLOCK_HEIGHT,
+  gl_TEXTURE_COMPRESSED_BLOCK_SIZE,
+  gl_TEXTURE_COMPRESSED_BLOCK_WIDTH,
+  gl_TEXTURE_CUBE_MAP,
+  gl_TEXTURE_CUBE_MAP_ARRAY,
+  gl_TEXTURE_GATHER,
+  gl_TEXTURE_GATHER_SHADOW,
+  gl_TEXTURE_IMAGE_FORMAT,
+  gl_TEXTURE_IMAGE_TYPE,
+  gl_TEXTURE_RECTANGLE,
+  gl_TEXTURE_SHADOW,
+  gl_TEXTURE_VIEW,
+  gl_VERTEX_TEXTURE,
+  gl_VIEW_CLASS_128_BITS,
+  gl_VIEW_CLASS_16_BITS,
+  gl_VIEW_CLASS_24_BITS,
+  gl_VIEW_CLASS_32_BITS,
+  gl_VIEW_CLASS_48_BITS,
+  gl_VIEW_CLASS_64_BITS,
+  gl_VIEW_CLASS_8_BITS,
+  gl_VIEW_CLASS_96_BITS,
+  gl_VIEW_CLASS_BPTC_FLOAT,
+  gl_VIEW_CLASS_BPTC_UNORM,
+  gl_VIEW_CLASS_RGTC1_RED,
+  gl_VIEW_CLASS_RGTC2_RG,
+  gl_VIEW_CLASS_S3TC_DXT1_RGB,
+  gl_VIEW_CLASS_S3TC_DXT1_RGBA,
+  gl_VIEW_CLASS_S3TC_DXT3_RGBA,
+  gl_VIEW_CLASS_S3TC_DXT5_RGBA,
+  gl_VIEW_COMPATIBILITY_CLASS,
+  -- * Functions
+  glGetInternalformati64v
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/InvalidateSubdata.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/InvalidateSubdata.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/ARB/InvalidateSubdata.hs
@@ -0,0 +1,25 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.InvalidateSubdata
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/ARB/invalidate_subdata.txt ARB_invalidate_subdata> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.ARB.InvalidateSubdata (
+  -- * Functions
+  glInvalidateBufferData,
+  glInvalidateBufferSubData,
+  glInvalidateFramebuffer,
+  glInvalidateSubFramebuffer,
+  glInvalidateTexImage,
+  glInvalidateTexSubImage
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/MapBufferAlignment.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/MapBufferAlignment.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/ARB/MapBufferAlignment.hs
@@ -0,0 +1,20 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.MapBufferAlignment
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/ARB/map_buffer_alignment.txt ARB_map_buffer_alignment> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.ARB.MapBufferAlignment (
+  -- * Enums
+  gl_MIN_MAP_BUFFER_ALIGNMENT
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/MapBufferRange.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/MapBufferRange.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/MapBufferRange.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/ARB/MapBufferRange.hs
@@ -1,29 +1,29 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.MapBufferRange
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All raw functions and tokens from the ARB_map_buffer_range extension, see
--- <http://www.opengl.org/registry/specs/ARB/map_buffer_range.txt>.
+-- The <https://www.opengl.org/registry/specs/ARB/map_buffer_range.txt ARB_map_buffer_range> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.ARB.MapBufferRange (
-   -- * Functions
-   glMapBufferRange,
-   glFlushMappedBufferRange,
-   -- * Tokens
-   gl_MAP_READ_BIT,
-   gl_MAP_WRITE_BIT,
-   gl_MAP_INVALIDATE_RANGE_BIT,
-   gl_MAP_INVALIDATE_BUFFER_BIT,
-   gl_MAP_FLUSH_EXPLICIT_BIT,
-   gl_MAP_UNSYNCHRONIZED_BIT
+  -- * Enums
+  gl_MAP_FLUSH_EXPLICIT_BIT,
+  gl_MAP_INVALIDATE_BUFFER_BIT,
+  gl_MAP_INVALIDATE_RANGE_BIT,
+  gl_MAP_READ_BIT,
+  gl_MAP_UNSYNCHRONIZED_BIT,
+  gl_MAP_WRITE_BIT,
+  -- * Functions
+  glFlushMappedBufferRange,
+  glMapBufferRange
 ) where
 
-import Graphics.Rendering.OpenGL.Raw.Core32
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
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
@@ -1,54 +1,36 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.MatrixPalette
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All raw functions and tokens from the ARB_matrix_palette extension, see
--- <http://www.opengl.org/registry/specs/ARB/matrix_palette.txt>.
+-- The <https://www.opengl.org/registry/specs/ARB/matrix_palette.txt ARB_matrix_palette> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.ARB.MatrixPalette (
-   -- * Functions
-   glCurrentPaletteMatrix,
-   glMatrixIndexubv,
-   glMatrixIndexusv,
-   glMatrixIndexuiv,
-   glMatrixIndexPointer,
-   -- * Tokens
-   gl_MATRIX_PALETTE,
-   gl_MAX_MATRIX_PALETTE_STACK_DEPTH,
-   gl_MAX_PALETTE_MATRICES,
-   gl_CURRENT_PALETTE_MATRIX,
-   gl_MATRIX_INDEX_ARRAY,
-   gl_CURRENT_MATRIX_INDEX,
-   gl_MATRIX_INDEX_ARRAY_SIZE,
-   gl_MATRIX_INDEX_ARRAY_TYPE,
-   gl_MATRIX_INDEX_ARRAY_STRIDE,
-   gl_MATRIX_INDEX_ARRAY_POINTER
+  -- * Enums
+  gl_CURRENT_MATRIX_INDEX_ARB,
+  gl_CURRENT_PALETTE_MATRIX_ARB,
+  gl_MATRIX_INDEX_ARRAY_ARB,
+  gl_MATRIX_INDEX_ARRAY_POINTER_ARB,
+  gl_MATRIX_INDEX_ARRAY_SIZE_ARB,
+  gl_MATRIX_INDEX_ARRAY_STRIDE_ARB,
+  gl_MATRIX_INDEX_ARRAY_TYPE_ARB,
+  gl_MATRIX_PALETTE_ARB,
+  gl_MAX_MATRIX_PALETTE_STACK_DEPTH_ARB,
+  gl_MAX_PALETTE_MATRICES_ARB,
+  -- * Functions
+  glCurrentPaletteMatrixARB,
+  glMatrixIndexPointerARB,
+  glMatrixIndexubvARB,
+  glMatrixIndexuivARB,
+  glMatrixIndexusvARB
 ) where
 
-import Graphics.Rendering.OpenGL.Raw.Functions
 import Graphics.Rendering.OpenGL.Raw.Tokens
-
-glCurrentPaletteMatrix = glCurrentPaletteMatrixARB
-glMatrixIndexubv = glMatrixIndexubvARB
-glMatrixIndexusv = glMatrixIndexusvARB
-glMatrixIndexuiv = glMatrixIndexuivARB
-glMatrixIndexPointer = glMatrixIndexPointerARB
-
-gl_MATRIX_PALETTE = gl_MATRIX_PALETTE_ARB
-gl_MAX_MATRIX_PALETTE_STACK_DEPTH = gl_MAX_MATRIX_PALETTE_STACK_DEPTH_ARB
-gl_MAX_PALETTE_MATRICES = gl_MAX_PALETTE_MATRICES_ARB
-gl_CURRENT_PALETTE_MATRIX = gl_CURRENT_PALETTE_MATRIX_ARB
-gl_MATRIX_INDEX_ARRAY = gl_MATRIX_INDEX_ARRAY_ARB
-gl_CURRENT_MATRIX_INDEX = gl_CURRENT_MATRIX_INDEX_ARB
-gl_MATRIX_INDEX_ARRAY_SIZE = gl_MATRIX_INDEX_ARRAY_SIZE_ARB
-gl_MATRIX_INDEX_ARRAY_TYPE = gl_MATRIX_INDEX_ARRAY_TYPE_ARB
-gl_MATRIX_INDEX_ARRAY_STRIDE = gl_MATRIX_INDEX_ARRAY_STRIDE_ARB
-gl_MATRIX_INDEX_ARRAY_POINTER = gl_MATRIX_INDEX_ARRAY_POINTER_ARB
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/MultiBind.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/MultiBind.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/ARB/MultiBind.hs
@@ -0,0 +1,25 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.MultiBind
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/ARB/multi_bind.txt ARB_multi_bind> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.ARB.MultiBind (
+  -- * Functions
+  glBindBuffersBase,
+  glBindBuffersRange,
+  glBindImageTextures,
+  glBindSamplers,
+  glBindTextures,
+  glBindVertexBuffers
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/MultiDrawIndirect.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/MultiDrawIndirect.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/ARB/MultiDrawIndirect.hs
@@ -0,0 +1,21 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.MultiDrawIndirect
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/ARB/multi_draw_indirect.txt ARB_multi_draw_indirect> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.ARB.MultiDrawIndirect (
+  -- * Functions
+  glMultiDrawArraysIndirect,
+  glMultiDrawElementsIndirect
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/Multisample.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/Multisample.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/Multisample.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/ARB/Multisample.hs
@@ -1,32 +1,31 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.Multisample
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All raw functions and tokens from the ARB_multisample extension, see
--- <http://www.opengl.org/registry/specs/ARB/multisample.txt>.
+-- The <https://www.opengl.org/registry/specs/ARB/multisample.txt ARB_multisample> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.ARB.Multisample (
-   -- * Functions
-   glSampleCoverage,
-   -- * Tokens
-   gl_MULTISAMPLE,
-   gl_SAMPLE_ALPHA_TO_COVERAGE,
-   gl_SAMPLE_ALPHA_TO_ONE,
-   gl_SAMPLE_COVERAGE,
-   gl_MULTISAMPLE_BIT,
-   gl_SAMPLE_BUFFERS,
-   gl_SAMPLES,
-   gl_SAMPLE_COVERAGE_VALUE,
-   gl_SAMPLE_COVERAGE_INVERT
+  -- * Enums
+  gl_MULTISAMPLE_ARB,
+  gl_MULTISAMPLE_BIT_ARB,
+  gl_SAMPLES_ARB,
+  gl_SAMPLE_ALPHA_TO_COVERAGE_ARB,
+  gl_SAMPLE_ALPHA_TO_ONE_ARB,
+  gl_SAMPLE_BUFFERS_ARB,
+  gl_SAMPLE_COVERAGE_ARB,
+  gl_SAMPLE_COVERAGE_INVERT_ARB,
+  gl_SAMPLE_COVERAGE_VALUE_ARB,
+  -- * Functions
+  glSampleCoverageARB
 ) where
 
-import Graphics.Rendering.OpenGL.Raw.ARB.Compatibility
-import Graphics.Rendering.OpenGL.Raw.Core32
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/Multitexture.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/Multitexture.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/Multitexture.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/ARB/Multitexture.hs
@@ -1,91 +1,90 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.Multitexture
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All raw functions and tokens from the ARB_multitexture extension, see
--- <http://www.opengl.org/registry/specs/ARB/multitexture.txt>.
+-- The <https://www.opengl.org/registry/specs/ARB/multitexture.txt ARB_multitexture> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.ARB.Multitexture (
-   -- * Functions
-   glActiveTexture,
-   glClientActiveTexture,
-   glMultiTexCoord1d,
-   glMultiTexCoord1dv,
-   glMultiTexCoord1f,
-   glMultiTexCoord1fv,
-   glMultiTexCoord1i,
-   glMultiTexCoord1iv,
-   glMultiTexCoord1s,
-   glMultiTexCoord1sv,
-   glMultiTexCoord2d,
-   glMultiTexCoord2dv,
-   glMultiTexCoord2f,
-   glMultiTexCoord2fv,
-   glMultiTexCoord2i,
-   glMultiTexCoord2iv,
-   glMultiTexCoord2s,
-   glMultiTexCoord2sv,
-   glMultiTexCoord3d,
-   glMultiTexCoord3dv,
-   glMultiTexCoord3f,
-   glMultiTexCoord3fv,
-   glMultiTexCoord3i,
-   glMultiTexCoord3iv,
-   glMultiTexCoord3s,
-   glMultiTexCoord3sv,
-   glMultiTexCoord4d,
-   glMultiTexCoord4dv,
-   glMultiTexCoord4f,
-   glMultiTexCoord4fv,
-   glMultiTexCoord4i,
-   glMultiTexCoord4iv,
-   glMultiTexCoord4s,
-   glMultiTexCoord4sv,
-   -- * Tokens
-   gl_ACTIVE_TEXTURE,
-   gl_CLIENT_ACTIVE_TEXTURE,
-   gl_MAX_TEXTURE_UNITS,
-   gl_TEXTURE0,
-   gl_TEXTURE1,
-   gl_TEXTURE10,
-   gl_TEXTURE11,
-   gl_TEXTURE12,
-   gl_TEXTURE13,
-   gl_TEXTURE14,
-   gl_TEXTURE15,
-   gl_TEXTURE16,
-   gl_TEXTURE17,
-   gl_TEXTURE18,
-   gl_TEXTURE19,
-   gl_TEXTURE2,
-   gl_TEXTURE20,
-   gl_TEXTURE21,
-   gl_TEXTURE22,
-   gl_TEXTURE23,
-   gl_TEXTURE24,
-   gl_TEXTURE25,
-   gl_TEXTURE26,
-   gl_TEXTURE27,
-   gl_TEXTURE28,
-   gl_TEXTURE29,
-   gl_TEXTURE3,
-   gl_TEXTURE30,
-   gl_TEXTURE31,
-   gl_TEXTURE4,
-   gl_TEXTURE5,
-   gl_TEXTURE6,
-   gl_TEXTURE7,
-   gl_TEXTURE8,
-   gl_TEXTURE9
+  -- * Enums
+  gl_ACTIVE_TEXTURE_ARB,
+  gl_CLIENT_ACTIVE_TEXTURE_ARB,
+  gl_MAX_TEXTURE_UNITS_ARB,
+  gl_TEXTURE0_ARB,
+  gl_TEXTURE10_ARB,
+  gl_TEXTURE11_ARB,
+  gl_TEXTURE12_ARB,
+  gl_TEXTURE13_ARB,
+  gl_TEXTURE14_ARB,
+  gl_TEXTURE15_ARB,
+  gl_TEXTURE16_ARB,
+  gl_TEXTURE17_ARB,
+  gl_TEXTURE18_ARB,
+  gl_TEXTURE19_ARB,
+  gl_TEXTURE1_ARB,
+  gl_TEXTURE20_ARB,
+  gl_TEXTURE21_ARB,
+  gl_TEXTURE22_ARB,
+  gl_TEXTURE23_ARB,
+  gl_TEXTURE24_ARB,
+  gl_TEXTURE25_ARB,
+  gl_TEXTURE26_ARB,
+  gl_TEXTURE27_ARB,
+  gl_TEXTURE28_ARB,
+  gl_TEXTURE29_ARB,
+  gl_TEXTURE2_ARB,
+  gl_TEXTURE30_ARB,
+  gl_TEXTURE31_ARB,
+  gl_TEXTURE3_ARB,
+  gl_TEXTURE4_ARB,
+  gl_TEXTURE5_ARB,
+  gl_TEXTURE6_ARB,
+  gl_TEXTURE7_ARB,
+  gl_TEXTURE8_ARB,
+  gl_TEXTURE9_ARB,
+  -- * Functions
+  glActiveTextureARB,
+  glClientActiveTextureARB,
+  glMultiTexCoord1dARB,
+  glMultiTexCoord1dvARB,
+  glMultiTexCoord1fARB,
+  glMultiTexCoord1fvARB,
+  glMultiTexCoord1iARB,
+  glMultiTexCoord1ivARB,
+  glMultiTexCoord1sARB,
+  glMultiTexCoord1svARB,
+  glMultiTexCoord2dARB,
+  glMultiTexCoord2dvARB,
+  glMultiTexCoord2fARB,
+  glMultiTexCoord2fvARB,
+  glMultiTexCoord2iARB,
+  glMultiTexCoord2ivARB,
+  glMultiTexCoord2sARB,
+  glMultiTexCoord2svARB,
+  glMultiTexCoord3dARB,
+  glMultiTexCoord3dvARB,
+  glMultiTexCoord3fARB,
+  glMultiTexCoord3fvARB,
+  glMultiTexCoord3iARB,
+  glMultiTexCoord3ivARB,
+  glMultiTexCoord3sARB,
+  glMultiTexCoord3svARB,
+  glMultiTexCoord4dARB,
+  glMultiTexCoord4dvARB,
+  glMultiTexCoord4fARB,
+  glMultiTexCoord4fvARB,
+  glMultiTexCoord4iARB,
+  glMultiTexCoord4ivARB,
+  glMultiTexCoord4sARB,
+  glMultiTexCoord4svARB
 ) where
 
-import Graphics.Rendering.OpenGL.Raw.ARB.Compatibility
-import Graphics.Rendering.OpenGL.Raw.Core32
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/OcclusionQuery.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/OcclusionQuery.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/OcclusionQuery.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/ARB/OcclusionQuery.hs
@@ -1,34 +1,34 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.OcclusionQuery
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All raw functions and tokens from the ARB_occlusion_query extension, see
--- <http://www.opengl.org/registry/specs/ARB/occlusion_query.txt>.
+-- The <https://www.opengl.org/registry/specs/ARB/occlusion_query.txt ARB_occlusion_query> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.ARB.OcclusionQuery (
-   -- * Functions
-   glGenQueries,
-   glDeleteQueries,
-   glIsQuery,
-   glBeginQuery,
-   glEndQuery,
-   glGetQueryiv,
-   glGetQueryObjectiv,
-   glGetQueryObjectuiv,
-   -- * Tokens
-   gl_SAMPLES_PASSED,
-   gl_QUERY_COUNTER_BITS,
-   gl_CURRENT_QUERY,
-   gl_QUERY_RESULT,
-   gl_QUERY_RESULT_AVAILABLE
+  -- * Enums
+  gl_CURRENT_QUERY_ARB,
+  gl_QUERY_COUNTER_BITS_ARB,
+  gl_QUERY_RESULT_ARB,
+  gl_QUERY_RESULT_AVAILABLE_ARB,
+  gl_SAMPLES_PASSED_ARB,
+  -- * Functions
+  glBeginQueryARB,
+  glDeleteQueriesARB,
+  glEndQueryARB,
+  glGenQueriesARB,
+  glGetQueryObjectivARB,
+  glGetQueryObjectuivARB,
+  glGetQueryivARB,
+  glIsQueryARB
 ) where
 
-import Graphics.Rendering.OpenGL.Raw.Core32
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/OcclusionQuery2.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/OcclusionQuery2.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/OcclusionQuery2.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/ARB/OcclusionQuery2.hs
@@ -1,21 +1,20 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.OcclusionQuery2
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All raw functions and tokens from the ARB_occlusion_query2 extension, see
--- <http://www.opengl.org/registry/specs/ARB/occlusion_query2.txt>.
+-- The <https://www.opengl.org/registry/specs/ARB/occlusion_query2.txt ARB_occlusion_query2> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.ARB.OcclusionQuery2 (
-   -- * Tokens
-   gl_ANY_SAMPLES_PASSED
+  -- * Enums
+  gl_ANY_SAMPLES_PASSED
 ) where
 
 import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/PipelineStatisticsQuery.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/PipelineStatisticsQuery.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/ARB/PipelineStatisticsQuery.hs
@@ -0,0 +1,30 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.PipelineStatisticsQuery
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/ARB/pipeline_statistics_query.txt ARB_pipeline_statistics_query> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.ARB.PipelineStatisticsQuery (
+  -- * Enums
+  gl_CLIPPING_INPUT_PRIMITIVES_ARB,
+  gl_CLIPPING_OUTPUT_PRIMITIVES_ARB,
+  gl_COMPUTE_SHADER_INVOCATIONS_ARB,
+  gl_FRAGMENT_SHADER_INVOCATIONS_ARB,
+  gl_GEOMETRY_SHADER_INVOCATIONS,
+  gl_GEOMETRY_SHADER_PRIMITIVES_EMITTED_ARB,
+  gl_PRIMITIVES_SUBMITTED_ARB,
+  gl_TESS_CONTROL_SHADER_PATCHES_ARB,
+  gl_TESS_EVALUATION_SHADER_INVOCATIONS_ARB,
+  gl_VERTEX_SHADER_INVOCATIONS_ARB,
+  gl_VERTICES_SUBMITTED_ARB
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/PixelBufferObject.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/PixelBufferObject.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/PixelBufferObject.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/ARB/PixelBufferObject.hs
@@ -1,24 +1,23 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.PixelBufferObject
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All tokens from the ARB_pixel_buffer_object extension, see
--- <http://www.opengl.org/registry/specs/ARB/pixel_buffer_object.txt>.
+-- The <https://www.opengl.org/registry/specs/ARB/pixel_buffer_object.txt ARB_pixel_buffer_object> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.ARB.PixelBufferObject (
-   -- * Tokens
-   gl_PIXEL_PACK_BUFFER,
-   gl_PIXEL_UNPACK_BUFFER,
-   gl_PIXEL_PACK_BUFFER_BINDING,
-   gl_PIXEL_UNPACK_BUFFER_BINDING
+  -- * Enums
+  gl_PIXEL_PACK_BUFFER_ARB,
+  gl_PIXEL_PACK_BUFFER_BINDING_ARB,
+  gl_PIXEL_UNPACK_BUFFER_ARB,
+  gl_PIXEL_UNPACK_BUFFER_BINDING_ARB
 ) where
 
-import Graphics.Rendering.OpenGL.Raw.Core32
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/PointParameters.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/PointParameters.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/PointParameters.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/ARB/PointParameters.hs
@@ -1,28 +1,27 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.PointParameters
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All raw functions and tokens from the ARB_point_parameters extension, see
--- <http://www.opengl.org/registry/specs/ARB/point_parameters.txt>.
+-- The <https://www.opengl.org/registry/specs/ARB/point_parameters.txt ARB_point_parameters> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.ARB.PointParameters (
-   -- * Functions
-   glPointParameterf,
-   glPointParameterfv,
-   -- * Tokens
-   gl_POINT_SIZE_MIN,
-   gl_POINT_SIZE_MAX,
-   gl_POINT_FADE_THRESHOLD_SIZE,
-   gl_POINT_DISTANCE_ATTENUATION,
+  -- * Enums
+  gl_POINT_DISTANCE_ATTENUATION_ARB,
+  gl_POINT_FADE_THRESHOLD_SIZE_ARB,
+  gl_POINT_SIZE_MAX_ARB,
+  gl_POINT_SIZE_MIN_ARB,
+  -- * Functions
+  glPointParameterfARB,
+  glPointParameterfvARB
 ) where
 
-import Graphics.Rendering.OpenGL.Raw.ARB.Compatibility
-import Graphics.Rendering.OpenGL.Raw.Core32
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/PointSprite.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/PointSprite.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/PointSprite.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/ARB/PointSprite.hs
@@ -1,22 +1,21 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.PointSprite
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All tokens from the ARB_point_sprite extension, see
--- <http://www.opengl.org/registry/specs/ARB/point_sprite.txt>.
+-- The <https://www.opengl.org/registry/specs/ARB/point_sprite.txt ARB_point_sprite> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.ARB.PointSprite (
-   -- * Tokens
-   gl_POINT_SPRITE,
-   gl_COORD_REPLACE
+  -- * Enums
+  gl_COORD_REPLACE_ARB,
+  gl_POINT_SPRITE_ARB
 ) where
 
-import Graphics.Rendering.OpenGL.Raw.ARB.Compatibility
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/ProgramInterfaceQuery.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/ProgramInterfaceQuery.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/ARB/ProgramInterfaceQuery.hs
@@ -0,0 +1,77 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.ProgramInterfaceQuery
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/ARB/program_interface_query.txt ARB_program_interface_query> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.ARB.ProgramInterfaceQuery (
+  -- * Enums
+  gl_ACTIVE_RESOURCES,
+  gl_ACTIVE_VARIABLES,
+  gl_ARRAY_SIZE,
+  gl_ARRAY_STRIDE,
+  gl_ATOMIC_COUNTER_BUFFER,
+  gl_ATOMIC_COUNTER_BUFFER_INDEX,
+  gl_BLOCK_INDEX,
+  gl_BUFFER_BINDING,
+  gl_BUFFER_DATA_SIZE,
+  gl_BUFFER_VARIABLE,
+  gl_COMPATIBLE_SUBROUTINES,
+  gl_COMPUTE_SUBROUTINE,
+  gl_COMPUTE_SUBROUTINE_UNIFORM,
+  gl_FRAGMENT_SUBROUTINE,
+  gl_FRAGMENT_SUBROUTINE_UNIFORM,
+  gl_GEOMETRY_SUBROUTINE,
+  gl_GEOMETRY_SUBROUTINE_UNIFORM,
+  gl_IS_PER_PATCH,
+  gl_IS_ROW_MAJOR,
+  gl_LOCATION,
+  gl_LOCATION_INDEX,
+  gl_MATRIX_STRIDE,
+  gl_MAX_NAME_LENGTH,
+  gl_MAX_NUM_ACTIVE_VARIABLES,
+  gl_MAX_NUM_COMPATIBLE_SUBROUTINES,
+  gl_NAME_LENGTH,
+  gl_NUM_ACTIVE_VARIABLES,
+  gl_NUM_COMPATIBLE_SUBROUTINES,
+  gl_OFFSET,
+  gl_PROGRAM_INPUT,
+  gl_PROGRAM_OUTPUT,
+  gl_REFERENCED_BY_COMPUTE_SHADER,
+  gl_REFERENCED_BY_FRAGMENT_SHADER,
+  gl_REFERENCED_BY_GEOMETRY_SHADER,
+  gl_REFERENCED_BY_TESS_CONTROL_SHADER,
+  gl_REFERENCED_BY_TESS_EVALUATION_SHADER,
+  gl_REFERENCED_BY_VERTEX_SHADER,
+  gl_SHADER_STORAGE_BLOCK,
+  gl_TESS_CONTROL_SUBROUTINE,
+  gl_TESS_CONTROL_SUBROUTINE_UNIFORM,
+  gl_TESS_EVALUATION_SUBROUTINE,
+  gl_TESS_EVALUATION_SUBROUTINE_UNIFORM,
+  gl_TOP_LEVEL_ARRAY_SIZE,
+  gl_TOP_LEVEL_ARRAY_STRIDE,
+  gl_TRANSFORM_FEEDBACK_VARYING,
+  gl_TYPE,
+  gl_UNIFORM,
+  gl_UNIFORM_BLOCK,
+  gl_VERTEX_SUBROUTINE,
+  gl_VERTEX_SUBROUTINE_UNIFORM,
+  -- * Functions
+  glGetProgramInterfaceiv,
+  glGetProgramResourceIndex,
+  glGetProgramResourceLocation,
+  glGetProgramResourceLocationIndex,
+  glGetProgramResourceName,
+  glGetProgramResourceiv
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
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
@@ -1,27 +1,26 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.ProvokingVertex
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All raw functions and tokens from the ARB_provoking_vertex extension, see
--- <http://www.opengl.org/registry/specs/ARB/provoking_vertex.txt>.
+-- The <https://www.opengl.org/registry/specs/ARB/provoking_vertex.txt ARB_provoking_vertex> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.ARB.ProvokingVertex (
-   -- * Functions
-   glProvokingVertex,
-   -- * Tokens
-   gl_FIRST_VERTEX_CONVENTION,
-   gl_LAST_VERTEX_CONVENTION,
-   gl_PROVOKING_VERTEX,
-   gl_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION
+  -- * Enums
+  gl_FIRST_VERTEX_CONVENTION,
+  gl_LAST_VERTEX_CONVENTION,
+  gl_PROVOKING_VERTEX,
+  gl_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION,
+  -- * Functions
+  glProvokingVertex
 ) where
 
-import Graphics.Rendering.OpenGL.Raw.Functions
 import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/QueryBufferObject.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/QueryBufferObject.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/QueryBufferObject.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/ARB/QueryBufferObject.hs
@@ -1,24 +1,23 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.QueryBufferObject
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All raw functions and tokens from the ARB_query_buffer_object extension, see
--- <http://www.opengl.org/registry/specs/ARB/query_buffer_object.txt>.
+-- The <https://www.opengl.org/registry/specs/ARB/query_buffer_object.txt ARB_query_buffer_object> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.ARB.QueryBufferObject (
-   -- * Tokens
-   gl_QUERY_BUFFER,
-   gl_QUERY_BUFFER_BINDING,
-   gl_QUERY_RESULT_NO_WAIT,
-   gl_QUERY_BUFFER_BARRIER_BIT
+  -- * Enums
+  gl_QUERY_BUFFER,
+  gl_QUERY_BUFFER_BARRIER_BIT,
+  gl_QUERY_BUFFER_BINDING,
+  gl_QUERY_RESULT_NO_WAIT
 ) where
 
 import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/RobustnessCompatibility.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/RobustnessCompatibility.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/ARB/RobustnessCompatibility.hs
@@ -0,0 +1,49 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.RobustnessCompatibility
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/ARB/robustness_compatibility.txt ARB_robustness_compatibility> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.ARB.RobustnessCompatibility (
+  -- * Enums
+  gl_CONTEXT_FLAG_ROBUST_ACCESS_BIT_ARB,
+  gl_GUILTY_CONTEXT_RESET_ARB,
+  gl_INNOCENT_CONTEXT_RESET_ARB,
+  gl_LOSE_CONTEXT_ON_RESET_ARB,
+  gl_NO_ERROR,
+  gl_NO_RESET_NOTIFICATION_ARB,
+  gl_RESET_NOTIFICATION_STRATEGY_ARB,
+  gl_UNKNOWN_CONTEXT_RESET_ARB,
+  -- * Functions
+  glGetGraphicsResetStatusARB,
+  glGetnColorTableARB,
+  glGetnCompressedTexImageARB,
+  glGetnConvolutionFilterARB,
+  glGetnHistogramARB,
+  glGetnMapdvARB,
+  glGetnMapfvARB,
+  glGetnMapivARB,
+  glGetnMinmaxARB,
+  glGetnPixelMapfvARB,
+  glGetnPixelMapuivARB,
+  glGetnPixelMapusvARB,
+  glGetnPolygonStippleARB,
+  glGetnSeparableFilterARB,
+  glGetnTexImageARB,
+  glGetnUniformdvARB,
+  glGetnUniformfvARB,
+  glGetnUniformivARB,
+  glGetnUniformuivARB,
+  glReadnPixelsARB
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/RobustnessCore.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/RobustnessCore.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/ARB/RobustnessCore.hs
@@ -0,0 +1,37 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.RobustnessCore
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/ARB/robustness_core.txt ARB_robustness_core> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.ARB.RobustnessCore (
+  -- * Enums
+  gl_CONTEXT_FLAG_ROBUST_ACCESS_BIT_ARB,
+  gl_GUILTY_CONTEXT_RESET_ARB,
+  gl_INNOCENT_CONTEXT_RESET_ARB,
+  gl_LOSE_CONTEXT_ON_RESET_ARB,
+  gl_NO_ERROR,
+  gl_NO_RESET_NOTIFICATION_ARB,
+  gl_RESET_NOTIFICATION_STRATEGY_ARB,
+  gl_UNKNOWN_CONTEXT_RESET_ARB,
+  -- * Functions
+  glGetGraphicsResetStatusARB,
+  glGetnCompressedTexImageARB,
+  glGetnTexImageARB,
+  glGetnUniformdvARB,
+  glGetnUniformfvARB,
+  glGetnUniformivARB,
+  glGetnUniformuivARB,
+  glReadnPixelsARB
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
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
@@ -1,25 +1,24 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.SampleShading
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All raw functions and tokens from the ARB_sample_shading extension, see
--- <http://www.opengl.org/registry/specs/ARB/sample_shading.txt>.
+-- The <https://www.opengl.org/registry/specs/ARB/sample_shading.txt ARB_sample_shading> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.ARB.SampleShading (
-   -- * Functions
-   glMinSampleShading,
-   -- * Tokens
-   gl_SAMPLE_SHADING,
-   gl_MIN_SAMPLE_SHADING_VALUE
+  -- * Enums
+  gl_MIN_SAMPLE_SHADING_VALUE_ARB,
+  gl_SAMPLE_SHADING_ARB,
+  -- * Functions
+  glMinSampleShadingARB
 ) where
 
-import Graphics.Rendering.OpenGL.Raw.Functions
 import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/SamplerObjects.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/SamplerObjects.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/SamplerObjects.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/ARB/SamplerObjects.hs
@@ -1,38 +1,36 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.SamplerObjects
--- Copyright   :  (c) Sven Panne 2014
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All raw functions and tokens from the ARB_sampler_objects extension, see
--- <http://www.opengl.org/registry/specs/ARB/sampler_objects.txt>.
+-- The <https://www.opengl.org/registry/specs/ARB/sampler_objects.txt ARB_sampler_objects> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.ARB.SamplerObjects (
-   -- * Functions
-   glGenSamplers,
-   glDeleteSamplers,
-   glIsSampler,
-   glBindSampler,
-   glSamplerParameteri,
-   glSamplerParameteriv,
-   glSamplerParameterf,
-   glSamplerParameterfv,
-   glSamplerParameterIiv,
-   glSamplerParameterIuiv,
-   glGetSamplerParameteriv,
-   glGetSamplerParameterIiv,
-   glGetSamplerParameterfv,
-   glGetSamplerParameterIuiv,
-
-   -- * Tokens
-   gl_SAMPLER_BINDING
+  -- * Enums
+  gl_SAMPLER_BINDING,
+  -- * Functions
+  glBindSampler,
+  glDeleteSamplers,
+  glGenSamplers,
+  glGetSamplerParameterIiv,
+  glGetSamplerParameterIuiv,
+  glGetSamplerParameterfv,
+  glGetSamplerParameteriv,
+  glIsSampler,
+  glSamplerParameterIiv,
+  glSamplerParameterIuiv,
+  glSamplerParameterf,
+  glSamplerParameterfv,
+  glSamplerParameteri,
+  glSamplerParameteriv
 ) where
 
-import Graphics.Rendering.OpenGL.Raw.Functions
 import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/SeamlessCubeMap.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/SeamlessCubeMap.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/SeamlessCubeMap.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/ARB/SeamlessCubeMap.hs
@@ -1,21 +1,20 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.SeamlessCubeMap
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All tokens from the ARB_seamless_cube_map extension, see
--- <http://www.opengl.org/registry/specs/ARB/seamless_cube_map.txt>.
+-- The <https://www.opengl.org/registry/specs/ARB/seamless_cube_map.txt ARB_seamless_cube_map> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.ARB.SeamlessCubeMap (
-   -- * Tokens
-   gl_TEXTURE_CUBE_MAP_SEAMLESS
+  -- * Enums
+  gl_TEXTURE_CUBE_MAP_SEAMLESS
 ) where
 
 import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/SeamlessCubemapPerTexture.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/SeamlessCubemapPerTexture.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/ARB/SeamlessCubemapPerTexture.hs
@@ -0,0 +1,20 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.SeamlessCubemapPerTexture
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/ARB/seamless_cubemap_per_texture.txt ARB_seamless_cubemap_per_texture> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.ARB.SeamlessCubemapPerTexture (
+  -- * Enums
+  gl_TEXTURE_CUBE_MAP_SEAMLESS
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/SeparateShaderObjects.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/SeparateShaderObjects.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/SeparateShaderObjects.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/ARB/SeparateShaderObjects.hs
@@ -1,92 +1,90 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.SeparateShaderObjects
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All raw functions and tokens from the separate_shader_objects, see
--- <http://www.opengl.org/registry/specs/ARB/separate_shader_objects.txt>.
+-- The <https://www.opengl.org/registry/specs/ARB/separate_shader_objects.txt ARB_separate_shader_objects> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.ARB.SeparateShaderObjects (
-   -- * Functions
-   glUseProgramStages,
-   glActiveShaderProgram,
-   glCreateShaderProgramv,
-   glBindProgramPipeline,
-   glDeleteProgramPipelines,
-   glGenProgramPipelines,
-   glIsProgramPipeline,
-   glGetProgramPipelineiv,
-   glProgramUniform1i,
-   glProgramUniform1iv,
-   glProgramUniform1f,
-   glProgramUniform1fv,
-   glProgramUniform1d,
-   glProgramUniform1dv,
-   glProgramUniform1ui,
-   glProgramUniform1uiv,
-   glProgramUniform2i,
-   glProgramUniform2iv,
-   glProgramUniform2f,
-   glProgramUniform2fv,
-   glProgramUniform2d,
-   glProgramUniform2dv,
-   glProgramUniform2ui,
-   glProgramUniform2uiv,
-   glProgramUniform3i,
-   glProgramUniform3iv,
-   glProgramUniform3f,
-   glProgramUniform3fv,
-   glProgramUniform3d,
-   glProgramUniform3dv,
-   glProgramUniform3ui,
-   glProgramUniform3uiv,
-   glProgramUniform4i,
-   glProgramUniform4iv,
-   glProgramUniform4f,
-   glProgramUniform4fv,
-   glProgramUniform4d,
-   glProgramUniform4dv,
-   glProgramUniform4ui,
-   glProgramUniform4uiv,
-   glProgramUniformMatrix2fv,
-   glProgramUniformMatrix3fv,
-   glProgramUniformMatrix4fv,
-   glProgramUniformMatrix2dv,
-   glProgramUniformMatrix3dv,
-   glProgramUniformMatrix4dv,
-   glProgramUniformMatrix2x3fv,
-   glProgramUniformMatrix3x2fv,
-   glProgramUniformMatrix2x4fv,
-   glProgramUniformMatrix4x2fv,
-   glProgramUniformMatrix3x4fv,
-   glProgramUniformMatrix4x3fv,
-   glProgramUniformMatrix2x3dv,
-   glProgramUniformMatrix3x2dv,
-   glProgramUniformMatrix2x4dv,
-   glProgramUniformMatrix4x2dv,
-   glProgramUniformMatrix3x4dv,
-   glProgramUniformMatrix4x3dv,
-   glValidateProgramPipeline,
-   glGetProgramPipelineInfoLog,
-
-   -- * Tokens
-   gl_VERTEX_SHADER_BIT,
-   gl_FRAGMENT_SHADER_BIT,
-   gl_GEOMETRY_SHADER_BIT,
-   gl_TESS_CONTROL_SHADER_BIT,
-   gl_TESS_EVALUATION_SHADER_BIT,
-   gl_ALL_SHADER_BITS,
-   gl_PROGRAM_SEPARABLE,
-   gl_ACTIVE_PROGRAM,
-   gl_PROGRAM_PIPELINE_BINDING
+  -- * Enums
+  gl_ACTIVE_PROGRAM,
+  gl_ALL_SHADER_BITS,
+  gl_FRAGMENT_SHADER_BIT,
+  gl_GEOMETRY_SHADER_BIT,
+  gl_PROGRAM_PIPELINE_BINDING,
+  gl_PROGRAM_SEPARABLE,
+  gl_TESS_CONTROL_SHADER_BIT,
+  gl_TESS_EVALUATION_SHADER_BIT,
+  gl_VERTEX_SHADER_BIT,
+  -- * Functions
+  glActiveShaderProgram,
+  glBindProgramPipeline,
+  glCreateShaderProgramv,
+  glDeleteProgramPipelines,
+  glGenProgramPipelines,
+  glGetProgramPipelineInfoLog,
+  glGetProgramPipelineiv,
+  glIsProgramPipeline,
+  glProgramUniform1d,
+  glProgramUniform1dv,
+  glProgramUniform1f,
+  glProgramUniform1fv,
+  glProgramUniform1i,
+  glProgramUniform1iv,
+  glProgramUniform1ui,
+  glProgramUniform1uiv,
+  glProgramUniform2d,
+  glProgramUniform2dv,
+  glProgramUniform2f,
+  glProgramUniform2fv,
+  glProgramUniform2i,
+  glProgramUniform2iv,
+  glProgramUniform2ui,
+  glProgramUniform2uiv,
+  glProgramUniform3d,
+  glProgramUniform3dv,
+  glProgramUniform3f,
+  glProgramUniform3fv,
+  glProgramUniform3i,
+  glProgramUniform3iv,
+  glProgramUniform3ui,
+  glProgramUniform3uiv,
+  glProgramUniform4d,
+  glProgramUniform4dv,
+  glProgramUniform4f,
+  glProgramUniform4fv,
+  glProgramUniform4i,
+  glProgramUniform4iv,
+  glProgramUniform4ui,
+  glProgramUniform4uiv,
+  glProgramUniformMatrix2dv,
+  glProgramUniformMatrix2fv,
+  glProgramUniformMatrix2x3dv,
+  glProgramUniformMatrix2x3fv,
+  glProgramUniformMatrix2x4dv,
+  glProgramUniformMatrix2x4fv,
+  glProgramUniformMatrix3dv,
+  glProgramUniformMatrix3fv,
+  glProgramUniformMatrix3x2dv,
+  glProgramUniformMatrix3x2fv,
+  glProgramUniformMatrix3x4dv,
+  glProgramUniformMatrix3x4fv,
+  glProgramUniformMatrix4dv,
+  glProgramUniformMatrix4fv,
+  glProgramUniformMatrix4x2dv,
+  glProgramUniformMatrix4x2fv,
+  glProgramUniformMatrix4x3dv,
+  glProgramUniformMatrix4x3fv,
+  glUseProgramStages,
+  glValidateProgramPipeline
 ) where
 
-import Graphics.Rendering.OpenGL.Raw.Functions
 import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/ShaderAtomicCounters.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/ShaderAtomicCounters.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/ShaderAtomicCounters.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/ARB/ShaderAtomicCounters.hs
@@ -1,52 +1,51 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.ShaderAtomicCounters
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All raw functions and tokens from the ARB_shader_atomic_counters extension,
--- see <http://www.opengl.org/registry/specs/ARB/shader_atomic_counters.txt>.
+-- The <https://www.opengl.org/registry/specs/ARB/shader_atomic_counters.txt ARB_shader_atomic_counters> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.ARB.ShaderAtomicCounters (
-   -- * Functions
-   glGetActiveAtomicCounterBufferiv,
-   -- * Tokens
-   gl_ATOMIC_COUNTER_BUFFER,
-   gl_ATOMIC_COUNTER_BUFFER_BINDING,
-   gl_ATOMIC_COUNTER_BUFFER_START,
-   gl_ATOMIC_COUNTER_BUFFER_SIZE,
-   gl_ATOMIC_COUNTER_BUFFER_DATA_SIZE,
-   gl_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS,
-   gl_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTER_INDICES,
-   gl_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER,
-   gl_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_CONTROL_SHADER,
-   gl_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_EVALUATION_SHADER,
-   gl_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_GEOMETRY_SHADER,
-   gl_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_FRAGMENT_SHADER,
-   gl_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS,
-   gl_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS,
-   gl_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS,
-   gl_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS,
-   gl_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS,
-   gl_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS,
-   gl_MAX_VERTEX_ATOMIC_COUNTERS,
-   gl_MAX_TESS_CONTROL_ATOMIC_COUNTERS,
-   gl_MAX_TESS_EVALUATION_ATOMIC_COUNTERS,
-   gl_MAX_GEOMETRY_ATOMIC_COUNTERS,
-   gl_MAX_FRAGMENT_ATOMIC_COUNTERS,
-   gl_MAX_COMBINED_ATOMIC_COUNTERS,
-   gl_MAX_ATOMIC_COUNTER_BUFFER_SIZE,
-   gl_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS,
-   gl_ACTIVE_ATOMIC_COUNTER_BUFFERS,
-   gl_UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX,
-   gl_UNSIGNED_INT_ATOMIC_COUNTER
+  -- * Enums
+  gl_ACTIVE_ATOMIC_COUNTER_BUFFERS,
+  gl_ATOMIC_COUNTER_BUFFER,
+  gl_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS,
+  gl_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTER_INDICES,
+  gl_ATOMIC_COUNTER_BUFFER_BINDING,
+  gl_ATOMIC_COUNTER_BUFFER_DATA_SIZE,
+  gl_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_FRAGMENT_SHADER,
+  gl_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_GEOMETRY_SHADER,
+  gl_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_CONTROL_SHADER,
+  gl_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_EVALUATION_SHADER,
+  gl_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER,
+  gl_ATOMIC_COUNTER_BUFFER_SIZE,
+  gl_ATOMIC_COUNTER_BUFFER_START,
+  gl_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS,
+  gl_MAX_ATOMIC_COUNTER_BUFFER_SIZE,
+  gl_MAX_COMBINED_ATOMIC_COUNTERS,
+  gl_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS,
+  gl_MAX_FRAGMENT_ATOMIC_COUNTERS,
+  gl_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS,
+  gl_MAX_GEOMETRY_ATOMIC_COUNTERS,
+  gl_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS,
+  gl_MAX_TESS_CONTROL_ATOMIC_COUNTERS,
+  gl_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS,
+  gl_MAX_TESS_EVALUATION_ATOMIC_COUNTERS,
+  gl_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS,
+  gl_MAX_VERTEX_ATOMIC_COUNTERS,
+  gl_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS,
+  gl_UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX,
+  gl_UNSIGNED_INT_ATOMIC_COUNTER,
+  -- * Functions
+  glGetActiveAtomicCounterBufferiv
 ) where
 
-import Graphics.Rendering.OpenGL.Raw.Functions
 import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/ShaderImageLoadStore.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/ShaderImageLoadStore.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/ARB/ShaderImageLoadStore.hs
@@ -0,0 +1,87 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.ShaderImageLoadStore
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/ARB/shader_image_load_store.txt ARB_shader_image_load_store> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.ARB.ShaderImageLoadStore (
+  -- * Enums
+  gl_ALL_BARRIER_BITS,
+  gl_ATOMIC_COUNTER_BARRIER_BIT,
+  gl_BUFFER_UPDATE_BARRIER_BIT,
+  gl_COMMAND_BARRIER_BIT,
+  gl_ELEMENT_ARRAY_BARRIER_BIT,
+  gl_FRAMEBUFFER_BARRIER_BIT,
+  gl_IMAGE_1D,
+  gl_IMAGE_1D_ARRAY,
+  gl_IMAGE_2D,
+  gl_IMAGE_2D_ARRAY,
+  gl_IMAGE_2D_MULTISAMPLE,
+  gl_IMAGE_2D_MULTISAMPLE_ARRAY,
+  gl_IMAGE_2D_RECT,
+  gl_IMAGE_3D,
+  gl_IMAGE_BINDING_ACCESS,
+  gl_IMAGE_BINDING_FORMAT,
+  gl_IMAGE_BINDING_LAYER,
+  gl_IMAGE_BINDING_LAYERED,
+  gl_IMAGE_BINDING_LEVEL,
+  gl_IMAGE_BINDING_NAME,
+  gl_IMAGE_BUFFER,
+  gl_IMAGE_CUBE,
+  gl_IMAGE_CUBE_MAP_ARRAY,
+  gl_IMAGE_FORMAT_COMPATIBILITY_BY_CLASS,
+  gl_IMAGE_FORMAT_COMPATIBILITY_BY_SIZE,
+  gl_IMAGE_FORMAT_COMPATIBILITY_TYPE,
+  gl_INT_IMAGE_1D,
+  gl_INT_IMAGE_1D_ARRAY,
+  gl_INT_IMAGE_2D,
+  gl_INT_IMAGE_2D_ARRAY,
+  gl_INT_IMAGE_2D_MULTISAMPLE,
+  gl_INT_IMAGE_2D_MULTISAMPLE_ARRAY,
+  gl_INT_IMAGE_2D_RECT,
+  gl_INT_IMAGE_3D,
+  gl_INT_IMAGE_BUFFER,
+  gl_INT_IMAGE_CUBE,
+  gl_INT_IMAGE_CUBE_MAP_ARRAY,
+  gl_MAX_COMBINED_IMAGE_UNIFORMS,
+  gl_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS,
+  gl_MAX_FRAGMENT_IMAGE_UNIFORMS,
+  gl_MAX_GEOMETRY_IMAGE_UNIFORMS,
+  gl_MAX_IMAGE_SAMPLES,
+  gl_MAX_IMAGE_UNITS,
+  gl_MAX_TESS_CONTROL_IMAGE_UNIFORMS,
+  gl_MAX_TESS_EVALUATION_IMAGE_UNIFORMS,
+  gl_MAX_VERTEX_IMAGE_UNIFORMS,
+  gl_PIXEL_BUFFER_BARRIER_BIT,
+  gl_SHADER_IMAGE_ACCESS_BARRIER_BIT,
+  gl_TEXTURE_FETCH_BARRIER_BIT,
+  gl_TEXTURE_UPDATE_BARRIER_BIT,
+  gl_TRANSFORM_FEEDBACK_BARRIER_BIT,
+  gl_UNIFORM_BARRIER_BIT,
+  gl_UNSIGNED_INT_IMAGE_1D,
+  gl_UNSIGNED_INT_IMAGE_1D_ARRAY,
+  gl_UNSIGNED_INT_IMAGE_2D,
+  gl_UNSIGNED_INT_IMAGE_2D_ARRAY,
+  gl_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE,
+  gl_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY,
+  gl_UNSIGNED_INT_IMAGE_2D_RECT,
+  gl_UNSIGNED_INT_IMAGE_3D,
+  gl_UNSIGNED_INT_IMAGE_BUFFER,
+  gl_UNSIGNED_INT_IMAGE_CUBE,
+  gl_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY,
+  gl_VERTEX_ATTRIB_ARRAY_BARRIER_BIT,
+  -- * Functions
+  glBindImageTexture,
+  glMemoryBarrier
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
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
@@ -1,127 +1,94 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.ShaderObjects
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All raw functions, tokens and types from the ARB_shader_objects extension,
--- see <http://www.opengl.org/registry/specs/ARB/shader_objects.txt>.
+-- The <https://www.opengl.org/registry/specs/ARB/shader_objects.txt ARB_shader_objects> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.ARB.ShaderObjects (
-   -- * Functions
-   glDeleteObject,
-   glGetHandle,
-   glDetachObject,
-   glCreateShaderObject,
-   glShaderSource,
-   glCompileShader,
-   glCreateProgramObject,
-   glAttachObject,
-   glLinkProgram,
-   glUseProgramObject,
-   glValidateProgram,
-   glUniform1f,
-   glUniform2f,
-   glUniform3f,
-   glUniform4f,
-   glUniform1i,
-   glUniform2i,
-   glUniform3i,
-   glUniform4i,
-   glUniform1fv,
-   glUniform2fv,
-   glUniform3fv,
-   glUniform4fv,
-   glUniform1iv,
-   glUniform2iv,
-   glUniform3iv,
-   glUniform4iv,
-   glUniformMatrix2fv,
-   glUniformMatrix3fv,
-   glUniformMatrix4fv,
-   glGetObjectParameterfv,
-   glGetObjectParameteriv,
-   glGetInfoLog,
-   glGetAttachedObjects,
-   glGetUniformLocation,
-   glGetActiveUniform,
-   glGetUniformfv,
-   glGetUniformiv,
-   glGetShaderSource,
-   -- * Tokens
-   gl_PROGRAM_OBJECT,
-   gl_OBJECT_TYPE_ARB,
-   gl_OBJECT_SUBTYPE,
-   gl_OBJECT_DELETE_STATUS,
-   gl_OBJECT_COMPILE_STATUS,
-   gl_OBJECT_LINK_STATUS,
-   gl_OBJECT_VALIDATE_STATUS,
-   gl_OBJECT_INFO_LOG_LENGTH,
-   gl_OBJECT_ATTACHED_OBJECTS,
-   gl_OBJECT_ACTIVE_UNIFORMS,
-   gl_OBJECT_ACTIVE_UNIFORM_MAX_LENGTH,
-   gl_OBJECT_SHADER_SOURCE_LENGTH,
-   gl_SHADER_OBJECT,
-   gl_FLOAT,
-   gl_FLOAT_VEC2,
-   gl_FLOAT_VEC3,
-   gl_FLOAT_VEC4,
-   gl_INT,
-   gl_INT_VEC2,
-   gl_INT_VEC3,
-   gl_INT_VEC4,
-   gl_BOOL,
-   gl_BOOL_VEC2,
-   gl_BOOL_VEC3,
-   gl_BOOL_VEC4,
-   gl_FLOAT_MAT2,
-   gl_FLOAT_MAT3,
-   gl_FLOAT_MAT4,
-   gl_SAMPLER_1D,
-   gl_SAMPLER_2D,
-   gl_SAMPLER_3D,
-   gl_SAMPLER_CUBE,
-   gl_SAMPLER_1D_SHADOW,
-   gl_SAMPLER_2D_SHADOW,
-   gl_SAMPLER_2D_RECT,
-   gl_SAMPLER_2D_RECT_SHADOW,
-   -- * Types
-   GLhandle
+  -- * Enums
+  gl_BOOL_ARB,
+  gl_BOOL_VEC2_ARB,
+  gl_BOOL_VEC3_ARB,
+  gl_BOOL_VEC4_ARB,
+  gl_FLOAT_MAT2_ARB,
+  gl_FLOAT_MAT3_ARB,
+  gl_FLOAT_MAT4_ARB,
+  gl_FLOAT_VEC2_ARB,
+  gl_FLOAT_VEC3_ARB,
+  gl_FLOAT_VEC4_ARB,
+  gl_INT_VEC2_ARB,
+  gl_INT_VEC3_ARB,
+  gl_INT_VEC4_ARB,
+  gl_OBJECT_ACTIVE_UNIFORMS_ARB,
+  gl_OBJECT_ACTIVE_UNIFORM_MAX_LENGTH_ARB,
+  gl_OBJECT_ATTACHED_OBJECTS_ARB,
+  gl_OBJECT_COMPILE_STATUS_ARB,
+  gl_OBJECT_DELETE_STATUS_ARB,
+  gl_OBJECT_INFO_LOG_LENGTH_ARB,
+  gl_OBJECT_LINK_STATUS_ARB,
+  gl_OBJECT_SHADER_SOURCE_LENGTH_ARB,
+  gl_OBJECT_SUBTYPE_ARB,
+  gl_OBJECT_TYPE_ARB,
+  gl_OBJECT_VALIDATE_STATUS_ARB,
+  gl_PROGRAM_OBJECT_ARB,
+  gl_SAMPLER_1D_ARB,
+  gl_SAMPLER_1D_SHADOW_ARB,
+  gl_SAMPLER_2D_ARB,
+  gl_SAMPLER_2D_RECT_ARB,
+  gl_SAMPLER_2D_RECT_SHADOW_ARB,
+  gl_SAMPLER_2D_SHADOW_ARB,
+  gl_SAMPLER_3D_ARB,
+  gl_SAMPLER_CUBE_ARB,
+  gl_SHADER_OBJECT_ARB,
+  -- * Functions
+  glAttachObjectARB,
+  glCompileShaderARB,
+  glCreateProgramObjectARB,
+  glCreateShaderObjectARB,
+  glDeleteObjectARB,
+  glDetachObjectARB,
+  glGetActiveUniformARB,
+  glGetAttachedObjectsARB,
+  glGetHandleARB,
+  glGetInfoLogARB,
+  glGetObjectParameterfvARB,
+  glGetObjectParameterivARB,
+  glGetShaderSourceARB,
+  glGetUniformLocationARB,
+  glGetUniformfvARB,
+  glGetUniformivARB,
+  glLinkProgramARB,
+  glShaderSourceARB,
+  glUniform1fARB,
+  glUniform1fvARB,
+  glUniform1iARB,
+  glUniform1ivARB,
+  glUniform2fARB,
+  glUniform2fvARB,
+  glUniform2iARB,
+  glUniform2ivARB,
+  glUniform3fARB,
+  glUniform3fvARB,
+  glUniform3iARB,
+  glUniform3ivARB,
+  glUniform4fARB,
+  glUniform4fvARB,
+  glUniform4iARB,
+  glUniform4ivARB,
+  glUniformMatrix2fvARB,
+  glUniformMatrix3fvARB,
+  glUniformMatrix4fvARB,
+  glUseProgramObjectARB,
+  glValidateProgramARB
 ) where
 
-import Graphics.Rendering.OpenGL.Raw.Functions
 import Graphics.Rendering.OpenGL.Raw.Tokens
-import Graphics.Rendering.OpenGL.Raw.Types
-
-glDeleteObject = glDeleteObjectARB
-glGetHandle = glGetHandleARB
-glDetachObject = glDetachObjectARB
-glCreateShaderObject = glCreateShaderObjectARB
-glCreateProgramObject = glCreateProgramObjectARB
-glAttachObject = glAttachObjectARB
-glUseProgramObject = glUseProgramObjectARB
-glGetObjectParameterfv = glGetObjectParameterfvARB
-glGetObjectParameteriv = glGetObjectParameterivARB
-glGetInfoLog = glGetInfoLogARB
-glGetAttachedObjects = glGetAttachedObjectsARB
-
-gl_PROGRAM_OBJECT = gl_PROGRAM_OBJECT_ARB
-gl_OBJECT_SUBTYPE = gl_OBJECT_SUBTYPE_ARB
-gl_OBJECT_DELETE_STATUS = gl_OBJECT_DELETE_STATUS_ARB
-gl_OBJECT_COMPILE_STATUS = gl_OBJECT_COMPILE_STATUS_ARB
-gl_OBJECT_LINK_STATUS = gl_OBJECT_LINK_STATUS_ARB
-gl_OBJECT_VALIDATE_STATUS = gl_OBJECT_VALIDATE_STATUS_ARB
-gl_OBJECT_INFO_LOG_LENGTH = gl_OBJECT_INFO_LOG_LENGTH_ARB
-gl_OBJECT_ATTACHED_OBJECTS = gl_OBJECT_ATTACHED_OBJECTS_ARB
-gl_OBJECT_ACTIVE_UNIFORMS = gl_OBJECT_ACTIVE_UNIFORMS_ARB
-gl_OBJECT_ACTIVE_UNIFORM_MAX_LENGTH = gl_OBJECT_ACTIVE_UNIFORM_MAX_LENGTH_ARB
-gl_OBJECT_SHADER_SOURCE_LENGTH = gl_OBJECT_SHADER_SOURCE_LENGTH_ARB
-gl_SHADER_OBJECT = gl_SHADER_OBJECT_ARB
-
-type GLhandle = GLhandleARB
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/ShaderStorageBufferObject.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/ShaderStorageBufferObject.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/ShaderStorageBufferObject.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/ARB/ShaderStorageBufferObject.hs
@@ -1,41 +1,39 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.ShaderStorageBufferObject
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All raw functions and tokens from the ARB_shader_storage_buffer_object, see
--- <http://www.opengl.org/registry/specs/ARB/shader_storage_buffer_object.txt>.
+-- The <https://www.opengl.org/registry/specs/ARB/shader_storage_buffer_object.txt ARB_shader_storage_buffer_object> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.ARB.ShaderStorageBufferObject (
-   -- * Functions
-   glShaderStorageBlockBinding,
-
-   -- * Tokens
-   gl_SHADER_STORAGE_BUFFER,
-   gl_SHADER_STORAGE_BUFFER_BINDING,
-   gl_SHADER_STORAGE_BUFFER_START,
-   gl_SHADER_STORAGE_BUFFER_SIZE,
-   gl_MAX_VERTEX_SHADER_STORAGE_BLOCKS,
-   gl_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS,
-   gl_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS,
-   gl_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS,
-   gl_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS,
-   gl_MAX_COMPUTE_SHADER_STORAGE_BLOCKS,
-   gl_MAX_COMBINED_SHADER_STORAGE_BLOCKS,
-   gl_MAX_SHADER_STORAGE_BUFFER_BINDINGS,
-   gl_MAX_SHADER_STORAGE_BLOCK_SIZE,
-   gl_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT,
-   gl_SHADER_STORAGE_BARRIER_BIT,
-   gl_MAX_COMBINED_SHADER_OUTPUT_RESOURCES,
-   gl_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS
+  -- * Enums
+  gl_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS,
+  gl_MAX_COMBINED_SHADER_OUTPUT_RESOURCES,
+  gl_MAX_COMBINED_SHADER_STORAGE_BLOCKS,
+  gl_MAX_COMPUTE_SHADER_STORAGE_BLOCKS,
+  gl_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS,
+  gl_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS,
+  gl_MAX_SHADER_STORAGE_BLOCK_SIZE,
+  gl_MAX_SHADER_STORAGE_BUFFER_BINDINGS,
+  gl_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS,
+  gl_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS,
+  gl_MAX_VERTEX_SHADER_STORAGE_BLOCKS,
+  gl_SHADER_STORAGE_BARRIER_BIT,
+  gl_SHADER_STORAGE_BUFFER,
+  gl_SHADER_STORAGE_BUFFER_BINDING,
+  gl_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT,
+  gl_SHADER_STORAGE_BUFFER_SIZE,
+  gl_SHADER_STORAGE_BUFFER_START,
+  -- * Functions
+  glShaderStorageBlockBinding
 ) where
 
-import Graphics.Rendering.OpenGL.Raw.Functions
 import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/ShaderSubroutine.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/ShaderSubroutine.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/ShaderSubroutine.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/ARB/ShaderSubroutine.hs
@@ -1,42 +1,40 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.ShaderSubroutine
--- Copyright   :  (c) Sven Panne 2014
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All raw functions and tokens from the ARB_shader_subroutine extension, see
--- <http://www.opengl.org/registry/specs/ARB/shader_subroutine.txt>.
+-- The <https://www.opengl.org/registry/specs/ARB/shader_subroutine.txt ARB_shader_subroutine> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.ARB.ShaderSubroutine (
-   -- * Functions
-   glGetSubroutineUniformLocation,
-   glGetSubroutineIndex,
-   glGetActiveSubroutineUniformiv,
-   glGetActiveSubroutineUniformName,
-   glGetActiveSubroutineName,
-   glUniformSubroutinesuiv,
-   glGetUniformSubroutineuiv,
-   glGetProgramStageiv,
-
-   -- * Tokens
-   gl_ACTIVE_SUBROUTINES,
-   gl_ACTIVE_SUBROUTINE_UNIFORMS,
-   gl_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS,
-   gl_ACTIVE_SUBROUTINE_MAX_LENGTH,
-   gl_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH,
-   gl_MAX_SUBROUTINES,
-   gl_MAX_SUBROUTINE_UNIFORM_LOCATIONS,
-   gl_NUM_COMPATIBLE_SUBROUTINES,
-   gl_COMPATIBLE_SUBROUTINES,
-   gl_UNIFORM_SIZE,
-   gl_UNIFORM_NAME_LENGTH
+  -- * Enums
+  gl_ACTIVE_SUBROUTINES,
+  gl_ACTIVE_SUBROUTINE_MAX_LENGTH,
+  gl_ACTIVE_SUBROUTINE_UNIFORMS,
+  gl_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS,
+  gl_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH,
+  gl_COMPATIBLE_SUBROUTINES,
+  gl_MAX_SUBROUTINES,
+  gl_MAX_SUBROUTINE_UNIFORM_LOCATIONS,
+  gl_NUM_COMPATIBLE_SUBROUTINES,
+  gl_UNIFORM_NAME_LENGTH,
+  gl_UNIFORM_SIZE,
+  -- * Functions
+  glGetActiveSubroutineName,
+  glGetActiveSubroutineUniformName,
+  glGetActiveSubroutineUniformiv,
+  glGetProgramStageiv,
+  glGetSubroutineIndex,
+  glGetSubroutineUniformLocation,
+  glGetUniformSubroutineuiv,
+  glUniformSubroutinesuiv
 ) where
 
-import Graphics.Rendering.OpenGL.Raw.Functions
 import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/ShadingLanguage100.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/ShadingLanguage100.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/ShadingLanguage100.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/ARB/ShadingLanguage100.hs
@@ -1,21 +1,20 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.ShadingLanguage100
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All tokens from the ARB_shading_language_100 extension, see
--- <http://www.opengl.org/registry/specs/ARB/shading_language_100.txt>.
+-- The <https://www.opengl.org/registry/specs/ARB/shading_language_100.txt ARB_shading_language_100> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.ARB.ShadingLanguage100 (
-   -- * Tokens
-   gl_SHADING_LANGUAGE_VERSION
+  -- * Enums
+  gl_SHADING_LANGUAGE_VERSION_ARB
 ) where
 
-import Graphics.Rendering.OpenGL.Raw.Core32
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/ShadingLanguageInclude.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/ShadingLanguageInclude.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/ShadingLanguageInclude.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/ARB/ShadingLanguageInclude.hs
@@ -1,43 +1,30 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.ShadingLanguageInclude
--- Copyright   :  (c) Sven Panne 2014
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All raw functions and tokens from the ARB_shading_language_include extension,
--- see <http://www.opengl.org/registry/specs/ARB/shading_language_include.txt>.
+-- The <https://www.opengl.org/registry/specs/ARB/shading_language_include.txt ARB_shading_language_include> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.ARB.ShadingLanguageInclude (
-   -- * Functions
-   glNamedString,
-   glDeleteNamedString,
-   glCompileShaderInclude,
-   glIsNamedString,
-   glGetNamedString,
-   glGetNamedStringiv,
-
-   -- * Tokens
-   gl_SHADER_INCLUDE,
-   gl_NAMED_STRING_LENGTH,
-   gl_NAMED_STRING_TYPE
+  -- * Enums
+  gl_NAMED_STRING_LENGTH_ARB,
+  gl_NAMED_STRING_TYPE_ARB,
+  gl_SHADER_INCLUDE_ARB,
+  -- * Functions
+  glCompileShaderIncludeARB,
+  glDeleteNamedStringARB,
+  glGetNamedStringARB,
+  glGetNamedStringivARB,
+  glIsNamedStringARB,
+  glNamedStringARB
 ) where
 
-import Graphics.Rendering.OpenGL.Raw.Functions
 import Graphics.Rendering.OpenGL.Raw.Tokens
-
-glNamedString = glNamedStringARB
-glDeleteNamedString = glDeleteNamedStringARB
-glCompileShaderInclude = glCompileShaderIncludeARB
-glIsNamedString = glIsNamedStringARB
-glGetNamedString = glGetNamedStringARB
-glGetNamedStringiv = glGetNamedStringivARB
-
-gl_SHADER_INCLUDE = gl_SHADER_INCLUDE_ARB
-gl_NAMED_STRING_LENGTH = gl_NAMED_STRING_LENGTH_ARB
-gl_NAMED_STRING_TYPE = gl_NAMED_STRING_TYPE_ARB
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/Shadow.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/Shadow.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/Shadow.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/ARB/Shadow.hs
@@ -1,24 +1,22 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.Shadow
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All tokens from the ARB_shadow extension, see
--- <http://www.opengl.org/registry/specs/ARB/shadow.txt>.
+-- The <https://www.opengl.org/registry/specs/ARB/shadow.txt ARB_shadow> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.ARB.Shadow (
-   -- * Tokens
-   gl_TEXTURE_COMPARE_MODE,
-   gl_TEXTURE_COMPARE_FUNC,
-   gl_COMPARE_R_TO_TEXTURE
+  -- * Enums
+  gl_COMPARE_R_TO_TEXTURE_ARB,
+  gl_TEXTURE_COMPARE_FUNC_ARB,
+  gl_TEXTURE_COMPARE_MODE_ARB
 ) where
 
-import Graphics.Rendering.OpenGL.Raw.ARB.Compatibility
-import Graphics.Rendering.OpenGL.Raw.Core32
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/ShadowAmbient.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/ShadowAmbient.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/ShadowAmbient.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/ARB/ShadowAmbient.hs
@@ -1,23 +1,20 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.ShadowAmbient
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All tokens from the ARB_shadow_ambient extension, see
--- <http://www.opengl.org/registry/specs/ARB/shadow_ambient.txt>.
+-- The <https://www.opengl.org/registry/specs/ARB/shadow_ambient.txt ARB_shadow_ambient> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.ARB.ShadowAmbient (
-   -- * Tokens
-   gl_TEXTURE_COMPARE_FAIL_VALUE
+  -- * Enums
+  gl_TEXTURE_COMPARE_FAIL_VALUE_ARB
 ) where
 
 import Graphics.Rendering.OpenGL.Raw.Tokens
-
-gl_TEXTURE_COMPARE_FAIL_VALUE = gl_TEXTURE_COMPARE_FAIL_VALUE_ARB
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/SparseBuffer.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/SparseBuffer.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/ARB/SparseBuffer.hs
@@ -0,0 +1,26 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.SparseBuffer
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/ARB/sparse_buffer.txt ARB_sparse_buffer> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.ARB.SparseBuffer (
+  -- * Enums
+  gl_SPARSE_BUFFER_PAGE_SIZE_ARB,
+  gl_SPARSE_STORAGE_BIT_ARB,
+  -- * Functions
+  glBufferPageCommitmentARB,
+  glNamedBufferPageCommitmentARB,
+  glNamedBufferPageCommitmentEXT
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/SparseTexture.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/SparseTexture.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/ARB/SparseTexture.hs
@@ -0,0 +1,33 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.SparseTexture
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/ARB/sparse_texture.txt ARB_sparse_texture> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.ARB.SparseTexture (
+  -- * Enums
+  gl_MAX_SPARSE_3D_TEXTURE_SIZE_ARB,
+  gl_MAX_SPARSE_ARRAY_TEXTURE_LAYERS_ARB,
+  gl_MAX_SPARSE_TEXTURE_SIZE_ARB,
+  gl_NUM_SPARSE_LEVELS_ARB,
+  gl_NUM_VIRTUAL_PAGE_SIZES_ARB,
+  gl_SPARSE_TEXTURE_FULL_ARRAY_CUBE_MIPMAPS_ARB,
+  gl_TEXTURE_SPARSE_ARB,
+  gl_VIRTUAL_PAGE_SIZE_INDEX_ARB,
+  gl_VIRTUAL_PAGE_SIZE_X_ARB,
+  gl_VIRTUAL_PAGE_SIZE_Y_ARB,
+  gl_VIRTUAL_PAGE_SIZE_Z_ARB,
+  -- * Functions
+  glTexPageCommitmentARB
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/StencilTexturing.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/StencilTexturing.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/ARB/StencilTexturing.hs
@@ -0,0 +1,20 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.StencilTexturing
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/ARB/stencil_texturing.txt ARB_stencil_texturing> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.ARB.StencilTexturing (
+  -- * Enums
+  gl_DEPTH_STENCIL_TEXTURE_MODE
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
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
@@ -1,49 +1,43 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.Sync
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All raw functions, tokens and types from the ARB_sync extension, see
--- <http://www.opengl.org/registry/specs/ARB/sync.txt>.
+-- The <https://www.opengl.org/registry/specs/ARB/sync.txt ARB_sync> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.ARB.Sync (
-   -- * Functions
-   glFenceSync,
-   glIsSync,
-   glDeleteSync,
-   glClientWaitSync,
-   glWaitSync,
-   glGetInteger64v,
-   glGetSynciv,
-   -- * Tokens
-   gl_MAX_SERVER_WAIT_TIMEOUT,
-   gl_OBJECT_TYPE,
-   gl_SYNC_CONDITION,
-   gl_SYNC_STATUS,
-   gl_SYNC_FLAGS,
-   gl_SYNC_FENCE,
-   gl_SYNC_GPU_COMMANDS_COMPLETE,
-   gl_UNSIGNALED,
-   gl_SIGNALED,
-   gl_SYNC_FLUSH_COMMANDS_BIT,
-   gl_TIMEOUT_IGNORED,
-   gl_ALREADY_SIGNALED,
-   gl_TIMEOUT_EXPIRED,
-   gl_CONDITION_SATISFIED,
-   gl_WAIT_FAILED,
-   -- * Types
-   GLint64,
-   GLuint64,
-   GLsync
+  -- * Enums
+  gl_ALREADY_SIGNALED,
+  gl_CONDITION_SATISFIED,
+  gl_MAX_SERVER_WAIT_TIMEOUT,
+  gl_OBJECT_TYPE,
+  gl_SIGNALED,
+  gl_SYNC_CONDITION,
+  gl_SYNC_FENCE,
+  gl_SYNC_FLAGS,
+  gl_SYNC_FLUSH_COMMANDS_BIT,
+  gl_SYNC_GPU_COMMANDS_COMPLETE,
+  gl_SYNC_STATUS,
+  gl_TIMEOUT_EXPIRED,
+  gl_TIMEOUT_IGNORED,
+  gl_UNSIGNALED,
+  gl_WAIT_FAILED,
+  -- * Functions
+  glClientWaitSync,
+  glDeleteSync,
+  glFenceSync,
+  glGetInteger64v,
+  glGetSynciv,
+  glIsSync,
+  glWaitSync
 ) where
 
-import Graphics.Rendering.OpenGL.Raw.Functions
 import Graphics.Rendering.OpenGL.Raw.Tokens
-import Graphics.Rendering.OpenGL.Raw.Types
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/TessellationShader.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/TessellationShader.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/TessellationShader.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/ARB/TessellationShader.hs
@@ -1,62 +1,60 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.TessellationShader
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All raw functions and tokens from the ARB_tessellation_shader extension, see
--- <http://www.opengl.org/registry/specs/ARB/tessellation_shader.txt>.
+-- The <https://www.opengl.org/registry/specs/ARB/tessellation_shader.txt ARB_tessellation_shader> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.ARB.TessellationShader (
-   -- * Functions
-   glPatchParameteri,
-   glPatchParameterfv,
-
-   -- * Tokens
-   gl_PATCHES,
-   gl_PATCH_VERTICES,
-   gl_PATCH_DEFAULT_INNER_LEVEL,
-   gl_PATCH_DEFAULT_OUTER_LEVEL,
-   gl_TESS_CONTROL_OUTPUT_VERTICES,
-   gl_TESS_GEN_MODE,
-   gl_TESS_GEN_SPACING,
-   gl_TESS_GEN_VERTEX_ORDER,
-   gl_TESS_GEN_POINT_MODE,
-   gl_TRIANGLES,
-   gl_ISOLINES,
-   gl_QUADS,
-   gl_EQUAL,
-   gl_FRACTIONAL_ODD,
-   gl_FRACTIONAL_EVEN,
-   gl_CCW,
-   gl_CW,
-   gl_MAX_PATCH_VERTICES,
-   gl_MAX_TESS_GEN_LEVEL,
-   gl_MAX_TESS_CONTROL_UNIFORM_COMPONENTS,
-   gl_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS,
-   gl_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS,
-   gl_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS,
-   gl_MAX_TESS_CONTROL_OUTPUT_COMPONENTS,
-   gl_MAX_TESS_PATCH_COMPONENTS,
-   gl_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS,
-   gl_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS,
-   gl_MAX_TESS_CONTROL_UNIFORM_BLOCKS,
-   gl_MAX_TESS_EVALUATION_UNIFORM_BLOCKS,
-   gl_MAX_TESS_CONTROL_INPUT_COMPONENTS,
-   gl_MAX_TESS_EVALUATION_INPUT_COMPONENTS,
-   gl_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS,
-   gl_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS,
-   gl_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER,
-   gl_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER,
-   gl_TESS_EVALUATION_SHADER,
-   gl_TESS_CONTROL_SHADER
+  -- * Enums
+  gl_CCW,
+  gl_CW,
+  gl_EQUAL,
+  gl_FRACTIONAL_EVEN,
+  gl_FRACTIONAL_ODD,
+  gl_ISOLINES,
+  gl_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS,
+  gl_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS,
+  gl_MAX_PATCH_VERTICES,
+  gl_MAX_TESS_CONTROL_INPUT_COMPONENTS,
+  gl_MAX_TESS_CONTROL_OUTPUT_COMPONENTS,
+  gl_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS,
+  gl_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS,
+  gl_MAX_TESS_CONTROL_UNIFORM_BLOCKS,
+  gl_MAX_TESS_CONTROL_UNIFORM_COMPONENTS,
+  gl_MAX_TESS_EVALUATION_INPUT_COMPONENTS,
+  gl_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS,
+  gl_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS,
+  gl_MAX_TESS_EVALUATION_UNIFORM_BLOCKS,
+  gl_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS,
+  gl_MAX_TESS_GEN_LEVEL,
+  gl_MAX_TESS_PATCH_COMPONENTS,
+  gl_PATCHES,
+  gl_PATCH_DEFAULT_INNER_LEVEL,
+  gl_PATCH_DEFAULT_OUTER_LEVEL,
+  gl_PATCH_VERTICES,
+  gl_QUADS,
+  gl_TESS_CONTROL_OUTPUT_VERTICES,
+  gl_TESS_CONTROL_SHADER,
+  gl_TESS_EVALUATION_SHADER,
+  gl_TESS_GEN_MODE,
+  gl_TESS_GEN_POINT_MODE,
+  gl_TESS_GEN_SPACING,
+  gl_TESS_GEN_VERTEX_ORDER,
+  gl_TRIANGLES,
+  gl_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER,
+  gl_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER,
+  -- * Functions
+  glPatchParameterfv,
+  glPatchParameteri
 ) where
 
-import Graphics.Rendering.OpenGL.Raw.Functions
 import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/TextureBarrier.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/TextureBarrier.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/ARB/TextureBarrier.hs
@@ -0,0 +1,20 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.TextureBarrier
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/ARB/texture_barrier.txt ARB_texture_barrier> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.ARB.TextureBarrier (
+  -- * Functions
+  glTextureBarrier
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/TextureBorderClamp.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/TextureBorderClamp.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/TextureBorderClamp.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/ARB/TextureBorderClamp.hs
@@ -1,21 +1,20 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.TextureBorderClamp
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All raw functions and tokens from the ARB_texture_border_clamp extension, see
--- <http://www.opengl.org/registry/specs/ARB/texture_border_clamp.txt>.
+-- The <https://www.opengl.org/registry/specs/ARB/texture_border_clamp.txt ARB_texture_border_clamp> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.ARB.TextureBorderClamp (
-   -- * Tokens
- gl_CLAMP_TO_BORDER
+  -- * Enums
+  gl_CLAMP_TO_BORDER_ARB
 ) where
 
-import Graphics.Rendering.OpenGL.Raw.Core32
+import Graphics.Rendering.OpenGL.Raw.Tokens
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
@@ -1,33 +1,27 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.TextureBufferObject
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All raw functions and tokens from the ARB_texture_buffer_object, see
--- <http://www.opengl.org/registry/specs/ARB/texture_buffer_object.txt>.
+-- The <https://www.opengl.org/registry/specs/ARB/texture_buffer_object.txt ARB_texture_buffer_object> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.ARB.TextureBufferObject (
-   -- * Functions
-   glTexBuffer,
-   -- * Tokens
-   gl_TEXTURE_BUFFER,
-   gl_MAX_TEXTURE_BUFFER_SIZE,
-   gl_TEXTURE_BINDING_BUFFER,
-   gl_TEXTURE_BUFFER_DATA_STORE_BINDING,
-   gl_TEXTURE_BUFFER_FORMAT
+  -- * Enums
+  gl_MAX_TEXTURE_BUFFER_SIZE_ARB,
+  gl_TEXTURE_BINDING_BUFFER_ARB,
+  gl_TEXTURE_BUFFER_ARB,
+  gl_TEXTURE_BUFFER_DATA_STORE_BINDING_ARB,
+  gl_TEXTURE_BUFFER_FORMAT_ARB,
+  -- * Functions
+  glTexBufferARB
 ) where
 
-import Graphics.Rendering.OpenGL.Raw.Types
-import Graphics.Rendering.OpenGL.Raw.Functions
 import Graphics.Rendering.OpenGL.Raw.Tokens
-
-gl_TEXTURE_BUFFER_FORMAT :: GLenum
-gl_TEXTURE_BUFFER_FORMAT = gl_TEXTURE_BUFFER_FORMAT_ARB
-
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/TextureBufferObjectRGB32.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/TextureBufferObjectRGB32.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/ARB/TextureBufferObjectRGB32.hs
@@ -0,0 +1,22 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.TextureBufferObjectRGB32
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/ARB/texture_buffer_object_rgb32.txt ARB_texture_buffer_object_rgb32> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.ARB.TextureBufferObjectRGB32 (
+  -- * Enums
+  gl_RGB32F,
+  gl_RGB32I,
+  gl_RGB32UI
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/TextureBufferRange.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/TextureBufferRange.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/ARB/TextureBufferRange.hs
@@ -0,0 +1,25 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.TextureBufferRange
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/ARB/texture_buffer_range.txt ARB_texture_buffer_range> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.ARB.TextureBufferRange (
+  -- * Enums
+  gl_TEXTURE_BUFFER_OFFSET,
+  gl_TEXTURE_BUFFER_OFFSET_ALIGNMENT,
+  gl_TEXTURE_BUFFER_SIZE,
+  -- * Functions
+  glTexBufferRange
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/TextureCompression.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/TextureCompression.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/TextureCompression.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/ARB/TextureCompression.hs
@@ -1,40 +1,39 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.TextureCompression
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All raw functions and tokens from the ARB_texture_compression extension, see
--- <http://www.opengl.org/registry/specs/ARB/texture_compression.txt>.
+-- The <https://www.opengl.org/registry/specs/ARB/texture_compression.txt ARB_texture_compression> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.ARB.TextureCompression (
-   -- * Functions
-   glCompressedTexImage3D,
-   glCompressedTexImage2D,
-   glCompressedTexImage1D,
-   glCompressedTexSubImage3D,
-   glCompressedTexSubImage2D,
-   glCompressedTexSubImage1D,
-   glGetCompressedTexImage,
-   -- * Tokens
-   gl_COMPRESSED_ALPHA,
-   gl_COMPRESSED_LUMINANCE,
-   gl_COMPRESSED_LUMINANCE_ALPHA,
-   gl_COMPRESSED_INTENSITY,
-   gl_COMPRESSED_RGB,
-   gl_COMPRESSED_RGBA,
-   gl_TEXTURE_COMPRESSION_HINT,
-   gl_TEXTURE_COMPRESSED_IMAGE_SIZE,
-   gl_TEXTURE_COMPRESSED,
-   gl_NUM_COMPRESSED_TEXTURE_FORMATS,
-   gl_COMPRESSED_TEXTURE_FORMATS
+  -- * Enums
+  gl_COMPRESSED_ALPHA_ARB,
+  gl_COMPRESSED_INTENSITY_ARB,
+  gl_COMPRESSED_LUMINANCE_ALPHA_ARB,
+  gl_COMPRESSED_LUMINANCE_ARB,
+  gl_COMPRESSED_RGBA_ARB,
+  gl_COMPRESSED_RGB_ARB,
+  gl_COMPRESSED_TEXTURE_FORMATS_ARB,
+  gl_NUM_COMPRESSED_TEXTURE_FORMATS_ARB,
+  gl_TEXTURE_COMPRESSED_ARB,
+  gl_TEXTURE_COMPRESSED_IMAGE_SIZE_ARB,
+  gl_TEXTURE_COMPRESSION_HINT_ARB,
+  -- * Functions
+  glCompressedTexImage1DARB,
+  glCompressedTexImage2DARB,
+  glCompressedTexImage3DARB,
+  glCompressedTexSubImage1DARB,
+  glCompressedTexSubImage2DARB,
+  glCompressedTexSubImage3DARB,
+  glGetCompressedTexImageARB
 ) where
 
-import Graphics.Rendering.OpenGL.Raw.ARB.Compatibility
-import Graphics.Rendering.OpenGL.Raw.Core32
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/TextureCompressionBPTC.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/TextureCompressionBPTC.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/TextureCompressionBPTC.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/ARB/TextureCompressionBPTC.hs
@@ -1,24 +1,23 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.TextureCompressionBPTC
--- Copyright   :  (c) Sven Panne 2014
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All raw functions and tokens from the ARB_texture_compression_bptc extension,
--- see <http://www.opengl.org/registry/specs/ARB/texture_compression_bptc.txt>.
+-- The <https://www.opengl.org/registry/specs/ARB/texture_compression_bptc.txt ARB_texture_compression_bptc> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.ARB.TextureCompressionBPTC (
-   -- * Tokens
-   gl_COMPRESSED_RGBA_BPTC_UNORM,
-   gl_COMPRESSED_SRGB_ALPHA_BPTC_UNORM,
-   gl_COMPRESSED_RGB_BPTC_SIGNED_FLOAT,
-   gl_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT
+  -- * Enums
+  gl_COMPRESSED_RGBA_BPTC_UNORM_ARB,
+  gl_COMPRESSED_RGB_BPTC_SIGNED_FLOAT_ARB,
+  gl_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_ARB,
+  gl_COMPRESSED_SRGB_ALPHA_BPTC_UNORM_ARB
 ) where
 
 import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/TextureCompressionRGTC.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/TextureCompressionRGTC.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/TextureCompressionRGTC.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/ARB/TextureCompressionRGTC.hs
@@ -1,24 +1,23 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.TextureCompressionRGTC
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All tokens from the ARB_texture_compression_rgtc extension, see
--- <http://www.opengl.org/registry/specs/ARB/texture_compression_rgtc.txt>.
+-- The <https://www.opengl.org/registry/specs/ARB/texture_compression_rgtc.txt ARB_texture_compression_rgtc> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.ARB.TextureCompressionRGTC (
-   -- * Tokens
-   gl_COMPRESSED_RED_RGTC1,
-   gl_COMPRESSED_SIGNED_RED_RGTC1,
-   gl_COMPRESSED_RG_RGTC2,
-   gl_COMPRESSED_SIGNED_RG_RGTC2
+  -- * Enums
+  gl_COMPRESSED_RED_RGTC1,
+  gl_COMPRESSED_RG_RGTC2,
+  gl_COMPRESSED_SIGNED_RED_RGTC1,
+  gl_COMPRESSED_SIGNED_RG_RGTC2
 ) where
 
-import Graphics.Rendering.OpenGL.Raw.Core32
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/TextureCubeMap.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/TextureCubeMap.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/TextureCubeMap.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/ARB/TextureCubeMap.hs
@@ -1,33 +1,31 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.TextureCubeMap
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All raw functions and tokens from the ARB_texture_cube_map extension, see
--- <http://www.opengl.org/registry/specs/ARB/texture_cube_map.txt>.
+-- The <https://www.opengl.org/registry/specs/ARB/texture_cube_map.txt ARB_texture_cube_map> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.ARB.TextureCubeMap (
-   -- * Tokens
-   gl_NORMAL_MAP,
-   gl_REFLECTION_MAP,
-   gl_TEXTURE_CUBE_MAP,
-   gl_TEXTURE_BINDING_CUBE_MAP,
-   gl_TEXTURE_CUBE_MAP_POSITIVE_X,
-   gl_TEXTURE_CUBE_MAP_NEGATIVE_X,
-   gl_TEXTURE_CUBE_MAP_POSITIVE_Y,
-   gl_TEXTURE_CUBE_MAP_NEGATIVE_Y,
-   gl_TEXTURE_CUBE_MAP_POSITIVE_Z,
-   gl_TEXTURE_CUBE_MAP_NEGATIVE_Z,
-   gl_PROXY_TEXTURE_CUBE_MAP,
-   gl_MAX_CUBE_MAP_TEXTURE_SIZE
+  -- * Enums
+  gl_MAX_CUBE_MAP_TEXTURE_SIZE_ARB,
+  gl_NORMAL_MAP_ARB,
+  gl_PROXY_TEXTURE_CUBE_MAP_ARB,
+  gl_REFLECTION_MAP_ARB,
+  gl_TEXTURE_BINDING_CUBE_MAP_ARB,
+  gl_TEXTURE_CUBE_MAP_ARB,
+  gl_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB,
+  gl_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB,
+  gl_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB,
+  gl_TEXTURE_CUBE_MAP_POSITIVE_X_ARB,
+  gl_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB,
+  gl_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB
 ) where
 
-import Graphics.Rendering.OpenGL.Raw.ARB.Compatibility
-import Graphics.Rendering.OpenGL.Raw.Core32
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/TextureCubeMapArray.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/TextureCubeMapArray.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/TextureCubeMapArray.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/ARB/TextureCubeMapArray.hs
@@ -1,27 +1,26 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.TextureCubeMapArray
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All tokens from the ARB_texture_cube_map_array extension, see
--- <http://www.opengl.org/registry/specs/ARB/texture_cube_map_array.txt>.
+-- The <https://www.opengl.org/registry/specs/ARB/texture_cube_map_array.txt ARB_texture_cube_map_array> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.ARB.TextureCubeMapArray (
-   -- * Tokens
-   gl_TEXTURE_CUBE_MAP_ARRAY,
-   gl_TEXTURE_BINDING_CUBE_MAP_ARRAY,
-   gl_PROXY_TEXTURE_CUBE_MAP_ARRAY,
-   gl_SAMPLER_CUBE_MAP_ARRAY,
-   gl_SAMPLER_CUBE_MAP_ARRAY_SHADOW,
-   gl_INT_SAMPLER_CUBE_MAP_ARRAY,
-   gl_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY
+  -- * Enums
+  gl_INT_SAMPLER_CUBE_MAP_ARRAY_ARB,
+  gl_PROXY_TEXTURE_CUBE_MAP_ARRAY_ARB,
+  gl_SAMPLER_CUBE_MAP_ARRAY_ARB,
+  gl_SAMPLER_CUBE_MAP_ARRAY_SHADOW_ARB,
+  gl_TEXTURE_BINDING_CUBE_MAP_ARRAY_ARB,
+  gl_TEXTURE_CUBE_MAP_ARRAY_ARB,
+  gl_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY_ARB
 ) where
 
 import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/TextureEnvAdd.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/TextureEnvAdd.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/TextureEnvAdd.hs
+++ /dev/null
@@ -1,21 +0,0 @@
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.TextureEnvAdd
--- Copyright   :  (c) Sven Panne 2013
--- License     :  BSD3
---
--- Maintainer  :  Sven Panne <svenpanne@gmail.com>
--- Stability   :  stable
--- Portability :  portable
---
--- All tokens from the ARB_texture_env_add extension, see
--- <http://www.opengl.org/registry/specs/ARB/texture_env_add.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.ARB.TextureEnvAdd (
-   -- * Tokens
-   gl_ADD
-) where
-
-import Graphics.Rendering.OpenGL.Raw.ARB.Compatibility
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/TextureEnvCombine.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/TextureEnvCombine.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/TextureEnvCombine.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/ARB/TextureEnvCombine.hs
@@ -1,52 +1,41 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.TextureEnvCombine
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All tokens from the ARB_texture_env_combine extension, see
--- <http://www.opengl.org/registry/specs/ARB/texture_env_combine.txt>.
+-- The <https://www.opengl.org/registry/specs/ARB/texture_env_combine.txt ARB_texture_env_combine> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.ARB.TextureEnvCombine (
-   -- * Tokens
-   gl_COMBINE,
-   gl_COMBINE_RGB,
-   gl_COMBINE_ALPHA,
-   gl_SOURCE0_RGB,
-   gl_SOURCE1_RGB,
-   gl_SOURCE2_RGB,
-   gl_SOURCE0_ALPHA,
-   gl_SOURCE1_ALPHA,
-   gl_SOURCE2_ALPHA,
-   gl_OPERAND0_RGB,
-   gl_OPERAND1_RGB,
-   gl_OPERAND2_RGB,
-   gl_OPERAND0_ALPHA,
-   gl_OPERAND1_ALPHA,
-   gl_OPERAND2_ALPHA,
-   gl_RGB_SCALE,
-   gl_ALPHA_SCALE,
-   gl_REPLACE,
-   gl_MODULATE,
-   gl_ADD,
-   gl_ADD_SIGNED,
-   gl_INTERPOLATE,
-   gl_SUBTRACT,
-   gl_TEXTURE,
-   gl_CONSTANT,
-   gl_PRIMARY_COLOR,
-   gl_PREVIOUS,
-   gl_SRC_COLOR,
-   gl_ONE_MINUS_SRC_COLOR,
-   gl_SRC_ALPHA,
-   gl_ONE_MINUS_SRC_ALPHA
+  -- * Enums
+  gl_ADD_SIGNED_ARB,
+  gl_COMBINE_ALPHA_ARB,
+  gl_COMBINE_ARB,
+  gl_COMBINE_RGB_ARB,
+  gl_CONSTANT_ARB,
+  gl_INTERPOLATE_ARB,
+  gl_OPERAND0_ALPHA_ARB,
+  gl_OPERAND0_RGB_ARB,
+  gl_OPERAND1_ALPHA_ARB,
+  gl_OPERAND1_RGB_ARB,
+  gl_OPERAND2_ALPHA_ARB,
+  gl_OPERAND2_RGB_ARB,
+  gl_PREVIOUS_ARB,
+  gl_PRIMARY_COLOR_ARB,
+  gl_RGB_SCALE_ARB,
+  gl_SOURCE0_ALPHA_ARB,
+  gl_SOURCE0_RGB_ARB,
+  gl_SOURCE1_ALPHA_ARB,
+  gl_SOURCE1_RGB_ARB,
+  gl_SOURCE2_ALPHA_ARB,
+  gl_SOURCE2_RGB_ARB,
+  gl_SUBTRACT_ARB
 ) where
 
-import Graphics.Rendering.OpenGL.Raw.ARB.Compatibility
-import Graphics.Rendering.OpenGL.Raw.Core32
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/TextureEnvCrossbar.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/TextureEnvCrossbar.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/TextureEnvCrossbar.hs
+++ /dev/null
@@ -1,52 +0,0 @@
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.TextureEnvCrossbar
--- Copyright   :  (c) Sven Panne 2013
--- License     :  BSD3
---
--- Maintainer  :  Sven Panne <svenpanne@gmail.com>
--- Stability   :  stable
--- Portability :  portable
---
--- All tokens from the ARB_texture_env_crossbar extension, see
--- <http://www.opengl.org/registry/specs/ARB/texture_env_crossbar.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.ARB.TextureEnvCrossbar (
-   -- * Tokens
-   gl_TEXTURE0,
-   gl_TEXTURE1,
-   gl_TEXTURE10,
-   gl_TEXTURE11,
-   gl_TEXTURE12,
-   gl_TEXTURE13,
-   gl_TEXTURE14,
-   gl_TEXTURE15,
-   gl_TEXTURE16,
-   gl_TEXTURE17,
-   gl_TEXTURE18,
-   gl_TEXTURE19,
-   gl_TEXTURE2,
-   gl_TEXTURE20,
-   gl_TEXTURE21,
-   gl_TEXTURE22,
-   gl_TEXTURE23,
-   gl_TEXTURE24,
-   gl_TEXTURE25,
-   gl_TEXTURE26,
-   gl_TEXTURE27,
-   gl_TEXTURE28,
-   gl_TEXTURE29,
-   gl_TEXTURE3,
-   gl_TEXTURE30,
-   gl_TEXTURE31,
-   gl_TEXTURE4,
-   gl_TEXTURE5,
-   gl_TEXTURE6,
-   gl_TEXTURE7,
-   gl_TEXTURE8,
-   gl_TEXTURE9
-) where
-
-import Graphics.Rendering.OpenGL.Raw.Core32
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/TextureEnvDot3.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/TextureEnvDot3.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/TextureEnvDot3.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/ARB/TextureEnvDot3.hs
@@ -1,22 +1,21 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.TextureEnvDot3
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All tokens from the ARB_texture_env_dot3 extension, see
--- <http://www.opengl.org/registry/specs/ARB/texture_env_dot3.txt>.
+-- The <https://www.opengl.org/registry/specs/ARB/texture_env_dot3.txt ARB_texture_env_dot3> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.ARB.TextureEnvDot3 (
-   -- * Tokens
-   gl_DOT3_RGB,
-   gl_DOT3_RGBA
+  -- * Enums
+  gl_DOT3_RGBA_ARB,
+  gl_DOT3_RGB_ARB
 ) where
 
-import Graphics.Rendering.OpenGL.Raw.ARB.Compatibility
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/TextureFloat.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/TextureFloat.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/TextureFloat.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/ARB/TextureFloat.hs
@@ -1,49 +1,39 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.TextureFloat
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All tokens from the ARB_texture_float extension, see
--- <http://www.opengl.org/registry/specs/ARB/texture_float.txt>.
+-- The <https://www.opengl.org/registry/specs/ARB/texture_float.txt ARB_texture_float> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.ARB.TextureFloat (
-   -- * Tokens
-   gl_TEXTURE_RED_TYPE,
-   gl_TEXTURE_GREEN_TYPE,
-   gl_TEXTURE_BLUE_TYPE,
-   gl_TEXTURE_ALPHA_TYPE,
-   gl_TEXTURE_LUMINANCE_TYPE,
-   gl_TEXTURE_INTENSITY_TYPE,
-   gl_TEXTURE_DEPTH_TYPE,
-   gl_UNSIGNED_NORMALIZED,
-   gl_RGBA32F,
-   gl_RGB32F,
-   gl_ALPHA32F,
-   gl_INTENSITY32F,
-   gl_LUMINANCE32F,
-   gl_LUMINANCE_ALPHA32F,
-   gl_RGBA16F,
-   gl_RGB16F,
-   gl_ALPHA16F,
-   gl_INTENSITY16F,
-   gl_LUMINANCE16F,
-   gl_LUMINANCE_ALPHA16F
+  -- * Enums
+  gl_ALPHA16F_ARB,
+  gl_ALPHA32F_ARB,
+  gl_INTENSITY16F_ARB,
+  gl_INTENSITY32F_ARB,
+  gl_LUMINANCE16F_ARB,
+  gl_LUMINANCE32F_ARB,
+  gl_LUMINANCE_ALPHA16F_ARB,
+  gl_LUMINANCE_ALPHA32F_ARB,
+  gl_RGB16F_ARB,
+  gl_RGB32F_ARB,
+  gl_RGBA16F_ARB,
+  gl_RGBA32F_ARB,
+  gl_TEXTURE_ALPHA_TYPE_ARB,
+  gl_TEXTURE_BLUE_TYPE_ARB,
+  gl_TEXTURE_DEPTH_TYPE_ARB,
+  gl_TEXTURE_GREEN_TYPE_ARB,
+  gl_TEXTURE_INTENSITY_TYPE_ARB,
+  gl_TEXTURE_LUMINANCE_TYPE_ARB,
+  gl_TEXTURE_RED_TYPE_ARB,
+  gl_UNSIGNED_NORMALIZED_ARB
 ) where
 
 import Graphics.Rendering.OpenGL.Raw.Tokens
-
-gl_ALPHA32F = gl_ALPHA32F_ARB
-gl_INTENSITY32F = gl_INTENSITY32F_ARB
-gl_LUMINANCE32F = gl_LUMINANCE32F_ARB
-gl_LUMINANCE_ALPHA32F = gl_LUMINANCE_ALPHA32F_ARB
-gl_ALPHA16F = gl_ALPHA16F_ARB
-gl_INTENSITY16F = gl_INTENSITY16F_ARB
-gl_LUMINANCE16F = gl_LUMINANCE16F_ARB
-gl_LUMINANCE_ALPHA16F = gl_LUMINANCE_ALPHA16F_ARB
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/TextureGather.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/TextureGather.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/TextureGather.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/ARB/TextureGather.hs
@@ -1,27 +1,22 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.TextureGather
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All tokens from the ARB_texture_gather extension, see
--- <http://www.opengl.org/registry/specs/ARB/.txt>.
+-- The <https://www.opengl.org/registry/specs/ARB/texture_gather.txt ARB_texture_gather> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.ARB.TextureGather (
-   -- * Tokens
-   gl_MIN_PROGRAM_TEXTURE_GATHER_OFFSET,
-   gl_MAX_PROGRAM_TEXTURE_GATHER_OFFSET,
-   gl_MAX_PROGRAM_TEXTURE_GATHER_COMPONENTS
+  -- * Enums
+  gl_MAX_PROGRAM_TEXTURE_GATHER_COMPONENTS_ARB,
+  gl_MAX_PROGRAM_TEXTURE_GATHER_OFFSET_ARB,
+  gl_MIN_PROGRAM_TEXTURE_GATHER_OFFSET_ARB
 ) where
 
-import Graphics.Rendering.OpenGL.Raw.Types
 import Graphics.Rendering.OpenGL.Raw.Tokens
-
-gl_MAX_PROGRAM_TEXTURE_GATHER_COMPONENTS :: GLenum
-gl_MAX_PROGRAM_TEXTURE_GATHER_COMPONENTS = gl_MAX_PROGRAM_TEXTURE_GATHER_COMPONENTS_ARB
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/TextureMirrorClampToEdge.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/TextureMirrorClampToEdge.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/ARB/TextureMirrorClampToEdge.hs
@@ -0,0 +1,20 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.TextureMirrorClampToEdge
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/ARB/texture_mirror_clamp_to_edge.txt ARB_texture_mirror_clamp_to_edge> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.ARB.TextureMirrorClampToEdge (
+  -- * Enums
+  gl_MIRROR_CLAMP_TO_EDGE
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/TextureMirroredRepeat.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/TextureMirroredRepeat.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/TextureMirroredRepeat.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/ARB/TextureMirroredRepeat.hs
@@ -1,21 +1,20 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.TextureMirroredRepeat
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All tokens from the ARB_texture_mirrored_repeat extension, see
--- <http://www.opengl.org/registry/specs/ARB/texture_mirrored_repeat.txt>.
+-- The <https://www.opengl.org/registry/specs/ARB/texture_mirrored_repeat.txt ARB_texture_mirrored_repeat> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.ARB.TextureMirroredRepeat (
-   -- * Tokens
-   gl_MIRRORED_REPEAT
+  -- * Enums
+  gl_MIRRORED_REPEAT_ARB
 ) where
 
-import Graphics.Rendering.OpenGL.Raw.Core32
+import Graphics.Rendering.OpenGL.Raw.Tokens
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
@@ -1,47 +1,46 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.TextureMultisample
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All raw functions and tokens from the ARB_texture_multisample extension, see
--- <http://www.opengl.org/registry/specs/ARB/texture_multisample.txt>.
+-- The <https://www.opengl.org/registry/specs/ARB/texture_multisample.txt ARB_texture_multisample> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.ARB.TextureMultisample (
-   -- * Functions
-   glTexImage2DMultisample,
-   glTexImage3DMultisample,
-   glGetMultisamplefv,
-   glSampleMaski,
-   -- * Tokens
-   gl_SAMPLE_POSITION,
-   gl_SAMPLE_MASK,
-   gl_SAMPLE_MASK_VALUE,
-   gl_TEXTURE_2D_MULTISAMPLE,
-   gl_PROXY_TEXTURE_2D_MULTISAMPLE,
-   gl_TEXTURE_2D_MULTISAMPLE_ARRAY,
-   gl_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY,
-   gl_MAX_SAMPLE_MASK_WORDS,
-   gl_MAX_COLOR_TEXTURE_SAMPLES,
-   gl_MAX_DEPTH_TEXTURE_SAMPLES,
-   gl_MAX_INTEGER_SAMPLES,
-   gl_TEXTURE_BINDING_2D_MULTISAMPLE,
-   gl_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY,
-   gl_TEXTURE_SAMPLES,
-   gl_TEXTURE_FIXED_SAMPLE_LOCATIONS,
-   gl_SAMPLER_2D_MULTISAMPLE,
-   gl_INT_SAMPLER_2D_MULTISAMPLE,
-   gl_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE,
-   gl_SAMPLER_2D_MULTISAMPLE_ARRAY,
-   gl_INT_SAMPLER_2D_MULTISAMPLE_ARRAY,
-   gl_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY
+  -- * Enums
+  gl_INT_SAMPLER_2D_MULTISAMPLE,
+  gl_INT_SAMPLER_2D_MULTISAMPLE_ARRAY,
+  gl_MAX_COLOR_TEXTURE_SAMPLES,
+  gl_MAX_DEPTH_TEXTURE_SAMPLES,
+  gl_MAX_INTEGER_SAMPLES,
+  gl_MAX_SAMPLE_MASK_WORDS,
+  gl_PROXY_TEXTURE_2D_MULTISAMPLE,
+  gl_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY,
+  gl_SAMPLER_2D_MULTISAMPLE,
+  gl_SAMPLER_2D_MULTISAMPLE_ARRAY,
+  gl_SAMPLE_MASK,
+  gl_SAMPLE_MASK_VALUE,
+  gl_SAMPLE_POSITION,
+  gl_TEXTURE_2D_MULTISAMPLE,
+  gl_TEXTURE_2D_MULTISAMPLE_ARRAY,
+  gl_TEXTURE_BINDING_2D_MULTISAMPLE,
+  gl_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY,
+  gl_TEXTURE_FIXED_SAMPLE_LOCATIONS,
+  gl_TEXTURE_SAMPLES,
+  gl_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE,
+  gl_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY,
+  -- * Functions
+  glGetMultisamplefv,
+  glSampleMaski,
+  glTexImage2DMultisample,
+  glTexImage3DMultisample
 ) where
 
-import Graphics.Rendering.OpenGL.Raw.Functions
 import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/TextureRG.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/TextureRG.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/TextureRG.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/ARB/TextureRG.hs
@@ -1,45 +1,41 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.TextureRG
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All tokens from the ARB_texture_rg extension, see
--- <http://www.opengl.org/registry/specs/ARB/texture_rg.txt>.
+-- The <https://www.opengl.org/registry/specs/ARB/texture_rg.txt ARB_texture_rg> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.ARB.TextureRG (
-   -- * Tokens
-   gl_R8,
-   gl_R16,
-   gl_RG8,
-   gl_RG16,
-   gl_R16F,
-   gl_R32F,
-   gl_RG16F,
-   gl_RG32F,
-   gl_R8I,
-   gl_R8UI,
-   gl_R16I,
-   gl_R16UI,
-   gl_R32I,
-   gl_R32UI,
-   gl_RG8I,
-   gl_RG8UI,
-   gl_RG16I,
-   gl_RG16UI,
-   gl_RG32I,
-   gl_RG32UI,
-   gl_RED,
-   gl_RG,
-   gl_COMPRESSED_RED,
-   gl_COMPRESSED_RG,
-   gl_RG_INTEGER
+  -- * Enums
+  gl_R16,
+  gl_R16F,
+  gl_R16I,
+  gl_R16UI,
+  gl_R32F,
+  gl_R32I,
+  gl_R32UI,
+  gl_R8,
+  gl_R8I,
+  gl_R8UI,
+  gl_RG,
+  gl_RG16,
+  gl_RG16F,
+  gl_RG16I,
+  gl_RG16UI,
+  gl_RG32F,
+  gl_RG32I,
+  gl_RG32UI,
+  gl_RG8,
+  gl_RG8I,
+  gl_RG8UI,
+  gl_RG_INTEGER
 ) where
 
-import Graphics.Rendering.OpenGL.Raw.Core32
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/TextureRGB10A2UI.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/TextureRGB10A2UI.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/TextureRGB10A2UI.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/ARB/TextureRGB10A2UI.hs
@@ -1,21 +1,20 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.TextureRGB10A2UI
--- Copyright   :  (c) Sven Panne 2014
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All raw functions and tokens from the ARB_texture_rgb10_a2ui extension, see
--- <http://www.opengl.org/registry/specs/ARB/texture_rgb10_a2ui.txt>.
+-- The <https://www.opengl.org/registry/specs/ARB/texture_rgb10_a2ui.txt ARB_texture_rgb10_a2ui> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.ARB.TextureRGB10A2UI (
-   -- * Tokens
-   gl_RGB10_A2UI
+  -- * Enums
+  gl_RGB10_A2UI
 ) where
 
 import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/TextureRectangle.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/TextureRectangle.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/TextureRectangle.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/ARB/TextureRectangle.hs
@@ -1,26 +1,23 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.TextureRectangle
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All tokens from the ARB_texture_rectangle extension, see
--- <http://www.opengl.org/registry/specs/ARB/texture_rectangle.txt>.
+-- The <https://www.opengl.org/registry/specs/ARB/texture_rectangle.txt ARB_texture_rectangle> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.ARB.TextureRectangle (
-   -- * Tokens
-   gl_TEXTURE_RECTANGLE,
-   gl_TEXTURE_BINDING_RECTANGLE,
-   gl_PROXY_TEXTURE_RECTANGLE,
-   gl_MAX_RECTANGLE_TEXTURE_SIZE,
-   gl_SAMPLER_2D_RECT,
-   gl_SAMPLER_2D_RECT_SHADOW
+  -- * Enums
+  gl_MAX_RECTANGLE_TEXTURE_SIZE_ARB,
+  gl_PROXY_TEXTURE_RECTANGLE_ARB,
+  gl_TEXTURE_BINDING_RECTANGLE_ARB,
+  gl_TEXTURE_RECTANGLE_ARB
 ) where
 
 import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/TextureStencil8.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/TextureStencil8.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/ARB/TextureStencil8.hs
@@ -0,0 +1,21 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.TextureStencil8
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/ARB/texture_stencil8.txt ARB_texture_stencil8> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.ARB.TextureStencil8 (
+  -- * Enums
+  gl_STENCIL_INDEX,
+  gl_STENCIL_INDEX8
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/TextureStorage.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/TextureStorage.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/ARB/TextureStorage.hs
@@ -0,0 +1,25 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.TextureStorage
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/ARB/texture_storage.txt ARB_texture_storage> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.ARB.TextureStorage (
+  -- * Enums
+  gl_TEXTURE_IMMUTABLE_FORMAT,
+  -- * Functions
+  glTexStorage1D,
+  glTexStorage2D,
+  glTexStorage3D
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/TextureStorageMultisample.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/TextureStorageMultisample.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/ARB/TextureStorageMultisample.hs
@@ -0,0 +1,21 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.TextureStorageMultisample
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/ARB/texture_storage_multisample.txt ARB_texture_storage_multisample> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.ARB.TextureStorageMultisample (
+  -- * Functions
+  glTexStorage2DMultisample,
+  glTexStorage3DMultisample
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/TextureSwizzle.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/TextureSwizzle.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/TextureSwizzle.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/ARB/TextureSwizzle.hs
@@ -1,24 +1,24 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.TextureSwizzle
--- Copyright   :  (c) Sven Panne 2014
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All raw functions and tokens from the ARB_texture_swizzle extension, see
--- <http://www.opengl.org/registry/specs/ARB/texture_swizzle.txt>.
+-- The <https://www.opengl.org/registry/specs/ARB/texture_swizzle.txt ARB_texture_swizzle> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.ARB.TextureSwizzle (
-   gl_TEXTURE_SWIZZLE_R,
-   gl_TEXTURE_SWIZZLE_G,
-   gl_TEXTURE_SWIZZLE_B,
-   gl_TEXTURE_SWIZZLE_A,
-   gl_TEXTURE_SWIZZLE_RGBA
+  -- * Enums
+  gl_TEXTURE_SWIZZLE_A,
+  gl_TEXTURE_SWIZZLE_B,
+  gl_TEXTURE_SWIZZLE_G,
+  gl_TEXTURE_SWIZZLE_R,
+  gl_TEXTURE_SWIZZLE_RGBA
 ) where
 
 import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/TextureView.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/TextureView.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/ARB/TextureView.hs
@@ -0,0 +1,27 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.TextureView
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/ARB/texture_view.txt ARB_texture_view> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.ARB.TextureView (
+  -- * Enums
+  gl_TEXTURE_IMMUTABLE_LEVELS,
+  gl_TEXTURE_VIEW_MIN_LAYER,
+  gl_TEXTURE_VIEW_MIN_LEVEL,
+  gl_TEXTURE_VIEW_NUM_LAYERS,
+  gl_TEXTURE_VIEW_NUM_LEVELS,
+  -- * Functions
+  glTextureView
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/TimerQuery.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/TimerQuery.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/TimerQuery.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/ARB/TimerQuery.hs
@@ -1,28 +1,26 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.TimerQuery
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All raw functions, tokens and types from the ARB_timer_query, see
--- <http://www.opengl.org/registry/specs/ARB/timer_query.txt>.
+-- The <https://www.opengl.org/registry/specs/ARB/timer_query.txt ARB_timer_query> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.ARB.TimerQuery (
-   -- * Functions
-   glQueryCounter,
-   glGetQueryObjecti64v,
-   glGetQueryObjectui64v,
-
-   -- * Tokens
-   gl_TIME_ELAPSED,
-   gl_TIMESTAMP
+  -- * Enums
+  gl_TIMESTAMP,
+  gl_TIME_ELAPSED,
+  -- * Functions
+  glGetQueryObjecti64v,
+  glGetQueryObjectui64v,
+  glQueryCounter
 ) where
 
-import Graphics.Rendering.OpenGL.Raw.Functions
 import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/TransformFeedback2.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/TransformFeedback2.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/TransformFeedback2.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/ARB/TransformFeedback2.hs
@@ -1,36 +1,32 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.TransformFeedback2
--- Copyright   :  (c) Sven Panne 2014
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All raw functions and tokens from the ARB_transform_feedback2 extension, see
--- <http://www.opengl.org/registry/specs/ARB/transform_feedback2.txt>.
+-- The <https://www.opengl.org/registry/specs/ARB/transform_feedback2.txt ARB_transform_feedback2> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.ARB.TransformFeedback2 (
-   -- * Functions
-   glBindTransformFeedback,
-   glDeleteTransformFeedbacks,
-   glGenTransformFeedbacks,
-   glIsTransformFeedback,
-   glPauseTransformFeedback,
-   glResumeTransformFeedback,
-   glDrawTransformFeedback,
-
-   -- * Tokens
-   gl_TRANSFORM_FEEDBACK,
-   gl_TRANSFORM_FEEDBACK_PAUSED,
-   gl_TRANSFORM_FEEDBACK_BUFFER_PAUSED,
-   gl_TRANSFORM_FEEDBACK_ACTIVE,
-   gl_TRANSFORM_FEEDBACK_BUFFER_ACTIVE,
-   gl_TRANSFORM_FEEDBACK_BINDING
+  -- * Enums
+  gl_TRANSFORM_FEEDBACK,
+  gl_TRANSFORM_FEEDBACK_BINDING,
+  gl_TRANSFORM_FEEDBACK_BUFFER_ACTIVE,
+  gl_TRANSFORM_FEEDBACK_BUFFER_PAUSED,
+  -- * Functions
+  glBindTransformFeedback,
+  glDeleteTransformFeedbacks,
+  glDrawTransformFeedback,
+  glGenTransformFeedbacks,
+  glIsTransformFeedback,
+  glPauseTransformFeedback,
+  glResumeTransformFeedback
 ) where
 
-import Graphics.Rendering.OpenGL.Raw.Functions
 import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/TransformFeedback3.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/TransformFeedback3.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/TransformFeedback3.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/ARB/TransformFeedback3.hs
@@ -1,30 +1,27 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.TransformFeedback3
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All raw functions, tokens and types from the ARB_transform_feedback3
--- extension, see
--- <http://www.opengl.org/registry/specs/ARB/transform_feedback3.txt>.
+-- The <https://www.opengl.org/registry/specs/ARB/transform_feedback3.txt ARB_transform_feedback3> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.ARB.TransformFeedback3 (
-   -- * Functions
-   glDrawTransformFeedbackStream,
-   glBeginQueryIndexed,
-   glEndQueryIndexed,
-   glGetQueryIndexediv,
-
-   -- * Tokens
-   gl_MAX_TRANSFORM_FEEDBACK_BUFFERS,
-   gl_MAX_VERTEX_STREAMS
+  -- * Enums
+  gl_MAX_TRANSFORM_FEEDBACK_BUFFERS,
+  gl_MAX_VERTEX_STREAMS,
+  -- * Functions
+  glBeginQueryIndexed,
+  glDrawTransformFeedbackStream,
+  glEndQueryIndexed,
+  glGetQueryIndexediv
 ) where
 
-import Graphics.Rendering.OpenGL.Raw.Functions
 import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/TransformFeedbackInstanced.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/TransformFeedbackInstanced.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/ARB/TransformFeedbackInstanced.hs
@@ -0,0 +1,21 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.TransformFeedbackInstanced
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/ARB/transform_feedback_instanced.txt ARB_transform_feedback_instanced> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.ARB.TransformFeedbackInstanced (
+  -- * Functions
+  glDrawTransformFeedbackInstanced,
+  glDrawTransformFeedbackStreamInstanced
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/TransformFeedbackOverflowQuery.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/TransformFeedbackOverflowQuery.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/ARB/TransformFeedbackOverflowQuery.hs
@@ -0,0 +1,21 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.TransformFeedbackOverflowQuery
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/ARB/transform_feedback_overflow_query.txt ARB_transform_feedback_overflow_query> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.ARB.TransformFeedbackOverflowQuery (
+  -- * Enums
+  gl_TRANSFORM_FEEDBACK_OVERFLOW_ARB,
+  gl_TRANSFORM_FEEDBACK_STREAM_OVERFLOW_ARB
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/TransposeMatrix.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/TransposeMatrix.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/TransposeMatrix.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/ARB/TransposeMatrix.hs
@@ -1,29 +1,29 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.TransposeMatrix
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All raw functions and tokens from the ARB_transpose_matrix extension, see
--- <http://www.opengl.org/registry/specs/ARB/transpose_matrix.txt>.
+-- The <https://www.opengl.org/registry/specs/ARB/transpose_matrix.txt ARB_transpose_matrix> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.ARB.TransposeMatrix (
-   -- * Functions
-   glLoadTransposeMatrixf,
-   glLoadTransposeMatrixd,
-   glMultTransposeMatrixf,
-   glMultTransposeMatrixd,
-   -- * Tokens
-   gl_TRANSPOSE_MODELVIEW_MATRIX,
-   gl_TRANSPOSE_PROJECTION_MATRIX,
-   gl_TRANSPOSE_TEXTURE_MATRIX,
-   gl_TRANSPOSE_COLOR_MATRIX
+  -- * Enums
+  gl_TRANSPOSE_COLOR_MATRIX_ARB,
+  gl_TRANSPOSE_MODELVIEW_MATRIX_ARB,
+  gl_TRANSPOSE_PROJECTION_MATRIX_ARB,
+  gl_TRANSPOSE_TEXTURE_MATRIX_ARB,
+  -- * Functions
+  glLoadTransposeMatrixdARB,
+  glLoadTransposeMatrixfARB,
+  glMultTransposeMatrixdARB,
+  glMultTransposeMatrixfARB
 ) where
 
-import Graphics.Rendering.OpenGL.Raw.ARB.Compatibility
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
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
@@ -1,65 +1,61 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.UniformBufferObject
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All raw functions and tokens from the ARB_uniform_buffer_object extension, see
--- <http://www.opengl.org/registry/specs/ARB/uniform_buffer_object.txt>.
+-- The <https://www.opengl.org/registry/specs/ARB/uniform_buffer_object.txt ARB_uniform_buffer_object> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.ARB.UniformBufferObject (
-   -- * Functions
-   glGetUniformIndices,
-   glGetActiveUniformsiv,
-   glGetActiveUniformName,
-   glGetUniformBlockIndex,
-   glGetActiveUniformBlockiv,
-   glGetActiveUniformBlockName,
-   glBindBufferRange,
-   glBindBufferBase,
-   glGetIntegeri_v,
-   glUniformBlockBinding,
-   -- * Tokens
-   gl_UNIFORM_BUFFER,
-   gl_UNIFORM_BUFFER_BINDING,
-   gl_UNIFORM_BUFFER_START,
-   gl_UNIFORM_BUFFER_SIZE,
-   gl_MAX_VERTEX_UNIFORM_BLOCKS,
-   gl_MAX_GEOMETRY_UNIFORM_BLOCKS,
-   gl_MAX_FRAGMENT_UNIFORM_BLOCKS,
-   gl_MAX_COMBINED_UNIFORM_BLOCKS,
-   gl_MAX_UNIFORM_BUFFER_BINDINGS,
-   gl_MAX_UNIFORM_BLOCK_SIZE,
-   gl_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS,
-   gl_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS,
-   gl_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS,
-   gl_UNIFORM_BUFFER_OFFSET_ALIGNMENT,
-   gl_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH,
-   gl_ACTIVE_UNIFORM_BLOCKS,
-   gl_UNIFORM_TYPE,
-   gl_UNIFORM_SIZE,
-   gl_UNIFORM_NAME_LENGTH,
-   gl_UNIFORM_BLOCK_INDEX,
-   gl_UNIFORM_OFFSET,
-   gl_UNIFORM_ARRAY_STRIDE,
-   gl_UNIFORM_MATRIX_STRIDE,
-   gl_UNIFORM_IS_ROW_MAJOR,
-   gl_UNIFORM_BLOCK_BINDING,
-   gl_UNIFORM_BLOCK_DATA_SIZE,
-   gl_UNIFORM_BLOCK_NAME_LENGTH,
-   gl_UNIFORM_BLOCK_ACTIVE_UNIFORMS,
-   gl_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES,
-   gl_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER,
-   gl_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER,
-   gl_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER,
-   gl_INVALID_INDEX
+  -- * Enums
+  gl_ACTIVE_UNIFORM_BLOCKS,
+  gl_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH,
+  gl_INVALID_INDEX,
+  gl_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS,
+  gl_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS,
+  gl_MAX_COMBINED_UNIFORM_BLOCKS,
+  gl_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS,
+  gl_MAX_FRAGMENT_UNIFORM_BLOCKS,
+  gl_MAX_GEOMETRY_UNIFORM_BLOCKS,
+  gl_MAX_UNIFORM_BLOCK_SIZE,
+  gl_MAX_UNIFORM_BUFFER_BINDINGS,
+  gl_MAX_VERTEX_UNIFORM_BLOCKS,
+  gl_UNIFORM_ARRAY_STRIDE,
+  gl_UNIFORM_BLOCK_ACTIVE_UNIFORMS,
+  gl_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES,
+  gl_UNIFORM_BLOCK_BINDING,
+  gl_UNIFORM_BLOCK_DATA_SIZE,
+  gl_UNIFORM_BLOCK_INDEX,
+  gl_UNIFORM_BLOCK_NAME_LENGTH,
+  gl_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER,
+  gl_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER,
+  gl_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER,
+  gl_UNIFORM_BUFFER,
+  gl_UNIFORM_BUFFER_BINDING,
+  gl_UNIFORM_BUFFER_OFFSET_ALIGNMENT,
+  gl_UNIFORM_BUFFER_SIZE,
+  gl_UNIFORM_BUFFER_START,
+  gl_UNIFORM_IS_ROW_MAJOR,
+  gl_UNIFORM_MATRIX_STRIDE,
+  gl_UNIFORM_NAME_LENGTH,
+  gl_UNIFORM_OFFSET,
+  gl_UNIFORM_SIZE,
+  gl_UNIFORM_TYPE,
+  -- * Functions
+  glGetActiveUniformBlockName,
+  glGetActiveUniformBlockiv,
+  glGetActiveUniformName,
+  glGetActiveUniformsiv,
+  glGetUniformBlockIndex,
+  glGetUniformIndices,
+  glUniformBlockBinding
 ) where
 
-import Graphics.Rendering.OpenGL.Raw.Functions
 import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/VertexArrayBGRA.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/VertexArrayBGRA.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/ARB/VertexArrayBGRA.hs
@@ -0,0 +1,20 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.VertexArrayBGRA
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/ARB/vertex_array_bgra.txt ARB_vertex_array_bgra> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.ARB.VertexArrayBGRA (
+  -- * Enums
+  gl_BGRA
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/VertexArrayObject.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/VertexArrayObject.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/VertexArrayObject.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/ARB/VertexArrayObject.hs
@@ -1,26 +1,26 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.VertexArrayObject
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All raw functions and tokens from the ARB_vertex_array_object extension, see
--- <http://www.opengl.org/registry/specs/ARB/vertex_array_object.txt>.
+-- The <https://www.opengl.org/registry/specs/ARB/vertex_array_object.txt ARB_vertex_array_object> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.ARB.VertexArrayObject (
-   -- * Functions
-   glBindVertexArray,
-   glDeleteVertexArrays,
-   glGenVertexArrays,
-   glIsVertexArray,
-   -- * Tokens
-   gl_VERTEX_ARRAY_BINDING
+  -- * Enums
+  gl_VERTEX_ARRAY_BINDING,
+  -- * Functions
+  glBindVertexArray,
+  glDeleteVertexArrays,
+  glGenVertexArrays,
+  glIsVertexArray
 ) where
 
-import Graphics.Rendering.OpenGL.Raw.Core32
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/VertexAttrib64Bit.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/VertexAttrib64Bit.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/VertexAttrib64Bit.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/ARB/VertexAttrib64Bit.hs
@@ -1,46 +1,44 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.VertexAttrib64Bit
--- Copyright   :  (c) Sven Panne 2014
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All raw functions and tokens from the ARB_vertex_attrib_64bit extension, see
--- <http://www.opengl.org/registry/specs/ARB/vertex_attrib_64bit.txt>.
+-- The <https://www.opengl.org/registry/specs/ARB/vertex_attrib_64bit.txt ARB_vertex_attrib_64bit> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.ARB.VertexAttrib64Bit (
-   -- * Functions
-   glVertexAttribL1d,
-   glVertexAttribL2d,
-   glVertexAttribL3d,
-   glVertexAttribL4d,
-   glVertexAttribL1dv,
-   glVertexAttribL2dv,
-   glVertexAttribL3dv,
-   glVertexAttribL4dv,
-   glVertexAttribLPointer,
-   glGetVertexAttribLdv,
-
-   -- * Tokens
-   gl_RGB32I,
-   gl_DOUBLE_VEC2,
-   gl_DOUBLE_VEC3,
-   gl_DOUBLE_VEC4,
-   gl_DOUBLE_MAT2,
-   gl_DOUBLE_MAT3,
-   gl_DOUBLE_MAT4,
-   gl_DOUBLE_MAT2x3,
-   gl_DOUBLE_MAT2x4,
-   gl_DOUBLE_MAT3x2,
-   gl_DOUBLE_MAT3x4,
-   gl_DOUBLE_MAT4x2,
-   gl_DOUBLE_MAT4x3
+  -- * Enums
+  gl_DOUBLE_MAT2,
+  gl_DOUBLE_MAT2x3,
+  gl_DOUBLE_MAT2x4,
+  gl_DOUBLE_MAT3,
+  gl_DOUBLE_MAT3x2,
+  gl_DOUBLE_MAT3x4,
+  gl_DOUBLE_MAT4,
+  gl_DOUBLE_MAT4x2,
+  gl_DOUBLE_MAT4x3,
+  gl_DOUBLE_VEC2,
+  gl_DOUBLE_VEC3,
+  gl_DOUBLE_VEC4,
+  gl_RGB32I,
+  -- * Functions
+  glGetVertexAttribLdv,
+  glVertexAttribL1d,
+  glVertexAttribL1dv,
+  glVertexAttribL2d,
+  glVertexAttribL2dv,
+  glVertexAttribL3d,
+  glVertexAttribL3dv,
+  glVertexAttribL4d,
+  glVertexAttribL4dv,
+  glVertexAttribLPointer
 ) where
 
-import Graphics.Rendering.OpenGL.Raw.Functions
 import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/VertexAttribBinding.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/VertexAttribBinding.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/ARB/VertexAttribBinding.hs
@@ -0,0 +1,34 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.VertexAttribBinding
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/ARB/vertex_attrib_binding.txt ARB_vertex_attrib_binding> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.ARB.VertexAttribBinding (
+  -- * Enums
+  gl_MAX_VERTEX_ATTRIB_BINDINGS,
+  gl_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET,
+  gl_VERTEX_ATTRIB_BINDING,
+  gl_VERTEX_ATTRIB_RELATIVE_OFFSET,
+  gl_VERTEX_BINDING_DIVISOR,
+  gl_VERTEX_BINDING_OFFSET,
+  gl_VERTEX_BINDING_STRIDE,
+  -- * Functions
+  glBindVertexBuffer,
+  glVertexAttribBinding,
+  glVertexAttribFormat,
+  glVertexAttribIFormat,
+  glVertexAttribLFormat,
+  glVertexBindingDivisor
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
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
@@ -1,128 +1,73 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.VertexBlend
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All raw functions and tokens from the ARB_vertex_blend extension, see
--- <http://www.opengl.org/registry/specs/ARB/vertex_blend.txt>.
+-- The <https://www.opengl.org/registry/specs/ARB/vertex_blend.txt ARB_vertex_blend> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.ARB.VertexBlend (
-   -- * Functions
-   glWeightbv,
-   glWeightsv,
-   glWeightiv,
-   glWeightfv,
-   glWeightdv,
-   glWeightubv,
-   glWeightusv,
-   glWeightuiv,
-   glWeightPointer,
-   glVertexBlend,
-   -- * Tokens
-   gl_MAX_VERTEX_UNITS,
-   gl_ACTIVE_VERTEX_UNITS,
-   gl_WEIGHT_SUM_UNITY,
-   gl_VERTEX_BLEND,
-   gl_MODELVIEW0,
-   gl_MODELVIEW1,
-   gl_MODELVIEW2,
-   gl_MODELVIEW3,
-   gl_MODELVIEW4,
-   gl_MODELVIEW5,
-   gl_MODELVIEW6,
-   gl_MODELVIEW7,
-   gl_MODELVIEW8,
-   gl_MODELVIEW9,
-   gl_MODELVIEW10,
-   gl_MODELVIEW11,
-   gl_MODELVIEW12,
-   gl_MODELVIEW13,
-   gl_MODELVIEW14,
-   gl_MODELVIEW15,
-   gl_MODELVIEW16,
-   gl_MODELVIEW17,
-   gl_MODELVIEW18,
-   gl_MODELVIEW19,
-   gl_MODELVIEW20,
-   gl_MODELVIEW21,
-   gl_MODELVIEW22,
-   gl_MODELVIEW23,
-   gl_MODELVIEW24,
-   gl_MODELVIEW25,
-   gl_MODELVIEW26,
-   gl_MODELVIEW27,
-   gl_MODELVIEW28,
-   gl_MODELVIEW29,
-   gl_MODELVIEW30,
-   gl_MODELVIEW31,
-   gl_CURRENT_WEIGHT,
-   gl_WEIGHT_ARRAY_TYPE,
-   gl_WEIGHT_ARRAY_STRIDE,
-   gl_WEIGHT_ARRAY_SIZE,
-   gl_WEIGHT_ARRAY_POINTER,
-   gl_WEIGHT_ARRAY
+  -- * Enums
+  gl_ACTIVE_VERTEX_UNITS_ARB,
+  gl_CURRENT_WEIGHT_ARB,
+  gl_MAX_VERTEX_UNITS_ARB,
+  gl_MODELVIEW0_ARB,
+  gl_MODELVIEW10_ARB,
+  gl_MODELVIEW11_ARB,
+  gl_MODELVIEW12_ARB,
+  gl_MODELVIEW13_ARB,
+  gl_MODELVIEW14_ARB,
+  gl_MODELVIEW15_ARB,
+  gl_MODELVIEW16_ARB,
+  gl_MODELVIEW17_ARB,
+  gl_MODELVIEW18_ARB,
+  gl_MODELVIEW19_ARB,
+  gl_MODELVIEW1_ARB,
+  gl_MODELVIEW20_ARB,
+  gl_MODELVIEW21_ARB,
+  gl_MODELVIEW22_ARB,
+  gl_MODELVIEW23_ARB,
+  gl_MODELVIEW24_ARB,
+  gl_MODELVIEW25_ARB,
+  gl_MODELVIEW26_ARB,
+  gl_MODELVIEW27_ARB,
+  gl_MODELVIEW28_ARB,
+  gl_MODELVIEW29_ARB,
+  gl_MODELVIEW2_ARB,
+  gl_MODELVIEW30_ARB,
+  gl_MODELVIEW31_ARB,
+  gl_MODELVIEW3_ARB,
+  gl_MODELVIEW4_ARB,
+  gl_MODELVIEW5_ARB,
+  gl_MODELVIEW6_ARB,
+  gl_MODELVIEW7_ARB,
+  gl_MODELVIEW8_ARB,
+  gl_MODELVIEW9_ARB,
+  gl_VERTEX_BLEND_ARB,
+  gl_WEIGHT_ARRAY_ARB,
+  gl_WEIGHT_ARRAY_POINTER_ARB,
+  gl_WEIGHT_ARRAY_SIZE_ARB,
+  gl_WEIGHT_ARRAY_STRIDE_ARB,
+  gl_WEIGHT_ARRAY_TYPE_ARB,
+  gl_WEIGHT_SUM_UNITY_ARB,
+  -- * Functions
+  glVertexBlendARB,
+  glWeightPointerARB,
+  glWeightbvARB,
+  glWeightdvARB,
+  glWeightfvARB,
+  glWeightivARB,
+  glWeightsvARB,
+  glWeightubvARB,
+  glWeightuivARB,
+  glWeightusvARB
 ) where
 
-import Graphics.Rendering.OpenGL.Raw.Functions
 import Graphics.Rendering.OpenGL.Raw.Tokens
-
-glWeightbv = glWeightbvARB
-glWeightsv = glWeightsvARB
-glWeightiv = glWeightivARB
-glWeightfv = glWeightfvARB
-glWeightdv = glWeightdvARB
-glWeightubv = glWeightubvARB
-glWeightusv = glWeightusvARB
-glWeightuiv = glWeightuivARB
-glWeightPointer = glWeightPointerARB
-glVertexBlend = glVertexBlendARB
-
-gl_MAX_VERTEX_UNITS = gl_MAX_VERTEX_UNITS_ARB
-gl_ACTIVE_VERTEX_UNITS = gl_ACTIVE_VERTEX_UNITS_ARB
-gl_WEIGHT_SUM_UNITY = gl_WEIGHT_SUM_UNITY_ARB
-gl_VERTEX_BLEND = gl_VERTEX_BLEND_ARB
-gl_MODELVIEW0 = gl_MODELVIEW0_ARB
-gl_MODELVIEW1 = gl_MODELVIEW1_ARB
-gl_MODELVIEW2 = gl_MODELVIEW2_ARB
-gl_MODELVIEW3 = gl_MODELVIEW3_ARB
-gl_MODELVIEW4 = gl_MODELVIEW4_ARB
-gl_MODELVIEW5 = gl_MODELVIEW5_ARB
-gl_MODELVIEW6 = gl_MODELVIEW6_ARB
-gl_MODELVIEW7 = gl_MODELVIEW7_ARB
-gl_MODELVIEW8 = gl_MODELVIEW8_ARB
-gl_MODELVIEW9 = gl_MODELVIEW9_ARB
-gl_MODELVIEW10 = gl_MODELVIEW10_ARB
-gl_MODELVIEW11 = gl_MODELVIEW11_ARB
-gl_MODELVIEW12 = gl_MODELVIEW12_ARB
-gl_MODELVIEW13 = gl_MODELVIEW13_ARB
-gl_MODELVIEW14 = gl_MODELVIEW14_ARB
-gl_MODELVIEW15 = gl_MODELVIEW15_ARB
-gl_MODELVIEW16 = gl_MODELVIEW16_ARB
-gl_MODELVIEW17 = gl_MODELVIEW17_ARB
-gl_MODELVIEW18 = gl_MODELVIEW18_ARB
-gl_MODELVIEW19 = gl_MODELVIEW19_ARB
-gl_MODELVIEW20 = gl_MODELVIEW20_ARB
-gl_MODELVIEW21 = gl_MODELVIEW21_ARB
-gl_MODELVIEW22 = gl_MODELVIEW22_ARB
-gl_MODELVIEW23 = gl_MODELVIEW23_ARB
-gl_MODELVIEW24 = gl_MODELVIEW24_ARB
-gl_MODELVIEW25 = gl_MODELVIEW25_ARB
-gl_MODELVIEW26 = gl_MODELVIEW26_ARB
-gl_MODELVIEW27 = gl_MODELVIEW27_ARB
-gl_MODELVIEW28 = gl_MODELVIEW28_ARB
-gl_MODELVIEW29 = gl_MODELVIEW29_ARB
-gl_MODELVIEW30 = gl_MODELVIEW30_ARB
-gl_MODELVIEW31 = gl_MODELVIEW31_ARB
-gl_CURRENT_WEIGHT = gl_CURRENT_WEIGHT_ARB
-gl_WEIGHT_ARRAY_TYPE = gl_WEIGHT_ARRAY_TYPE_ARB
-gl_WEIGHT_ARRAY_STRIDE = gl_WEIGHT_ARRAY_STRIDE_ARB
-gl_WEIGHT_ARRAY_SIZE = gl_WEIGHT_ARRAY_SIZE_ARB
-gl_WEIGHT_ARRAY_POINTER = gl_WEIGHT_ARRAY_POINTER_ARB
-gl_WEIGHT_ARRAY = gl_WEIGHT_ARRAY_ARB
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/VertexBufferObject.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/VertexBufferObject.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/VertexBufferObject.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/ARB/VertexBufferObject.hs
@@ -1,64 +1,63 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.VertexBufferObject
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All raw functions and tokens from the ARB_vertex_buffer_object extension, see
--- <http://www.opengl.org/registry/specs/ARB/vertex_buffer_object.txt>.
+-- The <https://www.opengl.org/registry/specs/ARB/vertex_buffer_object.txt ARB_vertex_buffer_object> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.ARB.VertexBufferObject (
-   -- * Functions
-   glBindBuffer,
-   glDeleteBuffers,
-   glGenBuffers,
-   glIsBuffer,
-   glBufferData,
-   glBufferSubData,
-   glGetBufferSubData,
-   glMapBuffer,
-   glUnmapBuffer,
-   glGetBufferParameteriv,
-   glGetBufferPointerv,
-   -- * Tokens
-   gl_ARRAY_BUFFER,
-   gl_ELEMENT_ARRAY_BUFFER,
-   gl_ARRAY_BUFFER_BINDING,
-   gl_ELEMENT_ARRAY_BUFFER_BINDING,
-   gl_VERTEX_ARRAY_BUFFER_BINDING,
-   gl_NORMAL_ARRAY_BUFFER_BINDING,
-   gl_COLOR_ARRAY_BUFFER_BINDING,
-   gl_INDEX_ARRAY_BUFFER_BINDING,
-   gl_TEXTURE_COORD_ARRAY_BUFFER_BINDING,
-   gl_EDGE_FLAG_ARRAY_BUFFER_BINDING,
-   gl_SECONDARY_COLOR_ARRAY_BUFFER_BINDING,
-   gl_FOG_COORDINATE_ARRAY_BUFFER_BINDING,
-   gl_WEIGHT_ARRAY_BUFFER_BINDING,
-   gl_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING,
-   gl_STREAM_DRAW,
-   gl_STREAM_READ,
-   gl_STREAM_COPY,
-   gl_STATIC_DRAW,
-   gl_STATIC_READ,
-   gl_STATIC_COPY,
-   gl_DYNAMIC_DRAW,
-   gl_DYNAMIC_READ,
-   gl_DYNAMIC_COPY,
-   gl_READ_ONLY,
-   gl_WRITE_ONLY,
-   gl_READ_WRITE,
-   gl_BUFFER_SIZE,
-   gl_BUFFER_USAGE,
-   gl_BUFFER_ACCESS,
-   gl_BUFFER_MAPPED,
-   gl_BUFFER_MAP_POINTER
+  -- * Enums
+  gl_ARRAY_BUFFER_ARB,
+  gl_ARRAY_BUFFER_BINDING_ARB,
+  gl_BUFFER_ACCESS_ARB,
+  gl_BUFFER_MAPPED_ARB,
+  gl_BUFFER_MAP_POINTER_ARB,
+  gl_BUFFER_SIZE_ARB,
+  gl_BUFFER_USAGE_ARB,
+  gl_COLOR_ARRAY_BUFFER_BINDING_ARB,
+  gl_DYNAMIC_COPY_ARB,
+  gl_DYNAMIC_DRAW_ARB,
+  gl_DYNAMIC_READ_ARB,
+  gl_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB,
+  gl_ELEMENT_ARRAY_BUFFER_ARB,
+  gl_ELEMENT_ARRAY_BUFFER_BINDING_ARB,
+  gl_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB,
+  gl_INDEX_ARRAY_BUFFER_BINDING_ARB,
+  gl_NORMAL_ARRAY_BUFFER_BINDING_ARB,
+  gl_READ_ONLY_ARB,
+  gl_READ_WRITE_ARB,
+  gl_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB,
+  gl_STATIC_COPY_ARB,
+  gl_STATIC_DRAW_ARB,
+  gl_STATIC_READ_ARB,
+  gl_STREAM_COPY_ARB,
+  gl_STREAM_DRAW_ARB,
+  gl_STREAM_READ_ARB,
+  gl_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB,
+  gl_VERTEX_ARRAY_BUFFER_BINDING_ARB,
+  gl_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB,
+  gl_WEIGHT_ARRAY_BUFFER_BINDING_ARB,
+  gl_WRITE_ONLY_ARB,
+  -- * Functions
+  glBindBufferARB,
+  glBufferDataARB,
+  glBufferSubDataARB,
+  glDeleteBuffersARB,
+  glGenBuffersARB,
+  glGetBufferParameterivARB,
+  glGetBufferPointervARB,
+  glGetBufferSubDataARB,
+  glIsBufferARB,
+  glMapBufferARB,
+  glUnmapBufferARB
 ) where
 
-import Graphics.Rendering.OpenGL.Raw.ARB.Compatibility
-import Graphics.Rendering.OpenGL.Raw.Core32
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
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
@@ -1,170 +1,162 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.VertexProgram
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All raw functions and tokens from the ARB_vertex_program extension, see
--- <http://www.opengl.org/registry/specs/ARB/vertex_program.txt>.
+-- The <https://www.opengl.org/registry/specs/ARB/vertex_program.txt ARB_vertex_program> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.ARB.VertexProgram (
-   -- * Functions
-   glVertexAttrib1s,
-   glVertexAttrib1f,
-   glVertexAttrib1d,
-   glVertexAttrib2s,
-   glVertexAttrib2f,
-   glVertexAttrib2d,
-   glVertexAttrib3s,
-   glVertexAttrib3f,
-   glVertexAttrib3d,
-   glVertexAttrib4s,
-   glVertexAttrib4f,
-   glVertexAttrib4d,
-   glVertexAttrib4Nub,
-   glVertexAttrib1sv,
-   glVertexAttrib1fv,
-   glVertexAttrib1dv,
-   glVertexAttrib2sv,
-   glVertexAttrib2fv,
-   glVertexAttrib2dv,
-   glVertexAttrib3sv,
-   glVertexAttrib3fv,
-   glVertexAttrib3dv,
-   glVertexAttrib4bv,
-   glVertexAttrib4sv,
-   glVertexAttrib4iv,
-   glVertexAttrib4ubv,
-   glVertexAttrib4usv,
-   glVertexAttrib4uiv,
-   glVertexAttrib4fv,
-   glVertexAttrib4dv,
-   glVertexAttrib4Nbv,
-   glVertexAttrib4Nsv,
-   glVertexAttrib4Niv,
-   glVertexAttrib4Nubv,
-   glVertexAttrib4Nusv,
-   glVertexAttrib4Nuiv,
-   glVertexAttribPointer,
-   glEnableVertexAttribArray,
-   glDisableVertexAttribArray,
-   glProgramString,
-   glBindProgram,
-   glDeletePrograms,
-   glGenPrograms,
-   glProgramEnvParameter4d,
-   glProgramEnvParameter4dv,
-   glProgramEnvParameter4f,
-   glProgramEnvParameter4fv,
-   glProgramLocalParameter4d,
-   glProgramLocalParameter4dv,
-   glProgramLocalParameter4f,
-   glProgramLocalParameter4fv,
-   glGetProgramEnvParameterdv,
-   glGetProgramEnvParameterfv,
-   glGetProgramLocalParameterdv,
-   glGetProgramLocalParameterfv,
-   glGetProgramiv,
-   glGetProgramString,
-   glGetVertexAttribdv,
-   glGetVertexAttribfv,
-   glGetVertexAttribiv,
-   glGetVertexAttribPointerv,
-   glIsProgram,
-   -- * Tokens
-   gl_VERTEX_PROGRAM,
-   gl_VERTEX_PROGRAM_POINT_SIZE,
-   gl_VERTEX_PROGRAM_TWO_SIDE,
-   gl_COLOR_SUM,
-   gl_PROGRAM_FORMAT_ASCII,
-   gl_VERTEX_ATTRIB_ARRAY_ENABLED,
-   gl_VERTEX_ATTRIB_ARRAY_SIZE,
-   gl_VERTEX_ATTRIB_ARRAY_STRIDE,
-   gl_VERTEX_ATTRIB_ARRAY_TYPE,
-   gl_VERTEX_ATTRIB_ARRAY_NORMALIZED,
-   gl_CURRENT_VERTEX_ATTRIB,
-   gl_VERTEX_ATTRIB_ARRAY_POINTER,
-   gl_PROGRAM_LENGTH,
-   gl_PROGRAM_FORMAT,
-   gl_PROGRAM_BINDING,
-   gl_PROGRAM_INSTRUCTIONS,
-   gl_MAX_PROGRAM_INSTRUCTIONS,
-   gl_PROGRAM_NATIVE_INSTRUCTIONS,
-   gl_MAX_PROGRAM_NATIVE_INSTRUCTIONS,
-   gl_PROGRAM_TEMPORARIES,
-   gl_MAX_PROGRAM_TEMPORARIES,
-   gl_PROGRAM_NATIVE_TEMPORARIES,
-   gl_MAX_PROGRAM_NATIVE_TEMPORARIES,
-   gl_PROGRAM_PARAMETERS,
-   gl_MAX_PROGRAM_PARAMETERS,
-   gl_PROGRAM_NATIVE_PARAMETERS,
-   gl_MAX_PROGRAM_NATIVE_PARAMETERS,
-   gl_PROGRAM_ATTRIBS,
-   gl_MAX_PROGRAM_ATTRIBS,
-   gl_PROGRAM_NATIVE_ATTRIBS,
-   gl_MAX_PROGRAM_NATIVE_ATTRIBS,
-   gl_PROGRAM_ADDRESS_REGISTERS,
-   gl_MAX_PROGRAM_ADDRESS_REGISTERS,
-   gl_PROGRAM_NATIVE_ADDRESS_REGISTERS,
-   gl_MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS,
-   gl_MAX_PROGRAM_LOCAL_PARAMETERS,
-   gl_MAX_PROGRAM_ENV_PARAMETERS,
-   gl_PROGRAM_UNDER_NATIVE_LIMITS,
-   gl_PROGRAM_STRING,
-   gl_PROGRAM_ERROR_POSITION,
-   gl_CURRENT_MATRIX,
-   gl_TRANSPOSE_CURRENT_MATRIX,
-   gl_CURRENT_MATRIX_STACK_DEPTH,
-   gl_MAX_VERTEX_ATTRIBS,
-   gl_MAX_PROGRAM_MATRICES,
-   gl_MAX_PROGRAM_MATRIX_STACK_DEPTH,
-   gl_PROGRAM_ERROR_STRING,
-   gl_MATRIX0,
-   gl_MATRIX1,
-   gl_MATRIX2,
-   gl_MATRIX3,
-   gl_MATRIX4,
-   gl_MATRIX5,
-   gl_MATRIX6,
-   gl_MATRIX7,
-   gl_MATRIX8,
-   gl_MATRIX9,
-   gl_MATRIX10,
-   gl_MATRIX11,
-   gl_MATRIX12,
-   gl_MATRIX13,
-   gl_MATRIX14,
-   gl_MATRIX15,
-   gl_MATRIX16,
-   gl_MATRIX17,
-   gl_MATRIX18,
-   gl_MATRIX19,
-   gl_MATRIX20,
-   gl_MATRIX21,
-   gl_MATRIX22,
-   gl_MATRIX23,
-   gl_MATRIX24,
-   gl_MATRIX25,
-   gl_MATRIX26,
-   gl_MATRIX27,
-   gl_MATRIX28,
-   gl_MATRIX29,
-   gl_MATRIX30,
-   gl_MATRIX31
+  -- * Enums
+  gl_COLOR_SUM_ARB,
+  gl_CURRENT_MATRIX_ARB,
+  gl_CURRENT_MATRIX_STACK_DEPTH_ARB,
+  gl_CURRENT_VERTEX_ATTRIB_ARB,
+  gl_MATRIX0_ARB,
+  gl_MATRIX10_ARB,
+  gl_MATRIX11_ARB,
+  gl_MATRIX12_ARB,
+  gl_MATRIX13_ARB,
+  gl_MATRIX14_ARB,
+  gl_MATRIX15_ARB,
+  gl_MATRIX16_ARB,
+  gl_MATRIX17_ARB,
+  gl_MATRIX18_ARB,
+  gl_MATRIX19_ARB,
+  gl_MATRIX1_ARB,
+  gl_MATRIX20_ARB,
+  gl_MATRIX21_ARB,
+  gl_MATRIX22_ARB,
+  gl_MATRIX23_ARB,
+  gl_MATRIX24_ARB,
+  gl_MATRIX25_ARB,
+  gl_MATRIX26_ARB,
+  gl_MATRIX27_ARB,
+  gl_MATRIX28_ARB,
+  gl_MATRIX29_ARB,
+  gl_MATRIX2_ARB,
+  gl_MATRIX30_ARB,
+  gl_MATRIX31_ARB,
+  gl_MATRIX3_ARB,
+  gl_MATRIX4_ARB,
+  gl_MATRIX5_ARB,
+  gl_MATRIX6_ARB,
+  gl_MATRIX7_ARB,
+  gl_MATRIX8_ARB,
+  gl_MATRIX9_ARB,
+  gl_MAX_PROGRAM_ADDRESS_REGISTERS_ARB,
+  gl_MAX_PROGRAM_ATTRIBS_ARB,
+  gl_MAX_PROGRAM_ENV_PARAMETERS_ARB,
+  gl_MAX_PROGRAM_INSTRUCTIONS_ARB,
+  gl_MAX_PROGRAM_LOCAL_PARAMETERS_ARB,
+  gl_MAX_PROGRAM_MATRICES_ARB,
+  gl_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB,
+  gl_MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB,
+  gl_MAX_PROGRAM_NATIVE_ATTRIBS_ARB,
+  gl_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB,
+  gl_MAX_PROGRAM_NATIVE_PARAMETERS_ARB,
+  gl_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB,
+  gl_MAX_PROGRAM_PARAMETERS_ARB,
+  gl_MAX_PROGRAM_TEMPORARIES_ARB,
+  gl_MAX_VERTEX_ATTRIBS_ARB,
+  gl_PROGRAM_ADDRESS_REGISTERS_ARB,
+  gl_PROGRAM_ATTRIBS_ARB,
+  gl_PROGRAM_BINDING_ARB,
+  gl_PROGRAM_ERROR_POSITION_ARB,
+  gl_PROGRAM_ERROR_STRING_ARB,
+  gl_PROGRAM_FORMAT_ARB,
+  gl_PROGRAM_FORMAT_ASCII_ARB,
+  gl_PROGRAM_INSTRUCTIONS_ARB,
+  gl_PROGRAM_LENGTH_ARB,
+  gl_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB,
+  gl_PROGRAM_NATIVE_ATTRIBS_ARB,
+  gl_PROGRAM_NATIVE_INSTRUCTIONS_ARB,
+  gl_PROGRAM_NATIVE_PARAMETERS_ARB,
+  gl_PROGRAM_NATIVE_TEMPORARIES_ARB,
+  gl_PROGRAM_PARAMETERS_ARB,
+  gl_PROGRAM_STRING_ARB,
+  gl_PROGRAM_TEMPORARIES_ARB,
+  gl_PROGRAM_UNDER_NATIVE_LIMITS_ARB,
+  gl_TRANSPOSE_CURRENT_MATRIX_ARB,
+  gl_VERTEX_ATTRIB_ARRAY_ENABLED_ARB,
+  gl_VERTEX_ATTRIB_ARRAY_NORMALIZED_ARB,
+  gl_VERTEX_ATTRIB_ARRAY_POINTER_ARB,
+  gl_VERTEX_ATTRIB_ARRAY_SIZE_ARB,
+  gl_VERTEX_ATTRIB_ARRAY_STRIDE_ARB,
+  gl_VERTEX_ATTRIB_ARRAY_TYPE_ARB,
+  gl_VERTEX_PROGRAM_ARB,
+  gl_VERTEX_PROGRAM_POINT_SIZE_ARB,
+  gl_VERTEX_PROGRAM_TWO_SIDE_ARB,
+  -- * Functions
+  glBindProgramARB,
+  glDeleteProgramsARB,
+  glDisableVertexAttribArrayARB,
+  glEnableVertexAttribArrayARB,
+  glGenProgramsARB,
+  glGetProgramEnvParameterdvARB,
+  glGetProgramEnvParameterfvARB,
+  glGetProgramLocalParameterdvARB,
+  glGetProgramLocalParameterfvARB,
+  glGetProgramStringARB,
+  glGetProgramivARB,
+  glGetVertexAttribPointervARB,
+  glGetVertexAttribdvARB,
+  glGetVertexAttribfvARB,
+  glGetVertexAttribivARB,
+  glIsProgramARB,
+  glProgramEnvParameter4dARB,
+  glProgramEnvParameter4dvARB,
+  glProgramEnvParameter4fARB,
+  glProgramEnvParameter4fvARB,
+  glProgramLocalParameter4dARB,
+  glProgramLocalParameter4dvARB,
+  glProgramLocalParameter4fARB,
+  glProgramLocalParameter4fvARB,
+  glProgramStringARB,
+  glVertexAttrib1dARB,
+  glVertexAttrib1dvARB,
+  glVertexAttrib1fARB,
+  glVertexAttrib1fvARB,
+  glVertexAttrib1sARB,
+  glVertexAttrib1svARB,
+  glVertexAttrib2dARB,
+  glVertexAttrib2dvARB,
+  glVertexAttrib2fARB,
+  glVertexAttrib2fvARB,
+  glVertexAttrib2sARB,
+  glVertexAttrib2svARB,
+  glVertexAttrib3dARB,
+  glVertexAttrib3dvARB,
+  glVertexAttrib3fARB,
+  glVertexAttrib3fvARB,
+  glVertexAttrib3sARB,
+  glVertexAttrib3svARB,
+  glVertexAttrib4NbvARB,
+  glVertexAttrib4NivARB,
+  glVertexAttrib4NsvARB,
+  glVertexAttrib4NubARB,
+  glVertexAttrib4NubvARB,
+  glVertexAttrib4NuivARB,
+  glVertexAttrib4NusvARB,
+  glVertexAttrib4bvARB,
+  glVertexAttrib4dARB,
+  glVertexAttrib4dvARB,
+  glVertexAttrib4fARB,
+  glVertexAttrib4fvARB,
+  glVertexAttrib4ivARB,
+  glVertexAttrib4sARB,
+  glVertexAttrib4svARB,
+  glVertexAttrib4ubvARB,
+  glVertexAttrib4uivARB,
+  glVertexAttrib4usvARB,
+  glVertexAttribPointerARB
 ) where
 
-import Graphics.Rendering.OpenGL.Raw.Functions
 import Graphics.Rendering.OpenGL.Raw.Tokens
-import Graphics.Rendering.OpenGL.Raw.ARB.FragmentProgram
-
-gl_VERTEX_PROGRAM = gl_VERTEX_PROGRAM_ARB
-gl_PROGRAM_ADDRESS_REGISTERS = gl_PROGRAM_ADDRESS_REGISTERS_ARB
-gl_MAX_PROGRAM_ADDRESS_REGISTERS = gl_MAX_PROGRAM_ADDRESS_REGISTERS_ARB
-gl_PROGRAM_NATIVE_ADDRESS_REGISTERS = gl_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB
-gl_MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS = gl_MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/VertexShader.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/VertexShader.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/VertexShader.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/ARB/VertexShader.hs
@@ -1,97 +1,93 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.VertexShader
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All raw functions and tokens from the ARB_vertex_shader extension, see
--- <http://www.opengl.org/registry/specs/ARB/vertex_shader.txt>.
+-- The <https://www.opengl.org/registry/specs/ARB/vertex_shader.txt ARB_vertex_shader> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.ARB.VertexShader (
-   -- * Functions
-   glVertexAttrib1f,
-   glVertexAttrib1s,
-   glVertexAttrib1d,
-   glVertexAttrib2f,
-   glVertexAttrib2s,
-   glVertexAttrib2d,
-   glVertexAttrib3f,
-   glVertexAttrib3s,
-   glVertexAttrib3d,
-   glVertexAttrib4f,
-   glVertexAttrib4s,
-   glVertexAttrib4d,
-   glVertexAttrib4Nub,
-   glVertexAttrib1fv,
-   glVertexAttrib1sv,
-   glVertexAttrib1dv,
-   glVertexAttrib2fv,
-   glVertexAttrib2sv,
-   glVertexAttrib2dv,
-   glVertexAttrib3fv,
-   glVertexAttrib3sv,
-   glVertexAttrib3dv,
-   glVertexAttrib4fv,
-   glVertexAttrib4sv,
-   glVertexAttrib4dv,
-   glVertexAttrib4iv,
-   glVertexAttrib4bv,
-   glVertexAttrib4ubv,
-   glVertexAttrib4usv,
-   glVertexAttrib4uiv,
-   glVertexAttrib4Nbv,
-   glVertexAttrib4Nsv,
-   glVertexAttrib4Niv,
-   glVertexAttrib4Nubv,
-   glVertexAttrib4Nusv,
-   glVertexAttrib4Nuiv,
-   glVertexAttribPointer,
-   glEnableVertexAttribArray,
-   glDisableVertexAttribArray,
-   glBindAttribLocation,
-   glGetActiveAttrib,
-   glGetAttribLocation,
-   glGetVertexAttribdv,
-   glGetVertexAttribfv,
-   glGetVertexAttribiv,
-   glGetVertexAttribPointerv,
-   -- * Tokens
-   gl_VERTEX_SHADER,
-   gl_MAX_VERTEX_UNIFORM_COMPONENTS,
-   gl_MAX_VARYING_FLOATS,
-   gl_MAX_VERTEX_ATTRIBS,
-   gl_MAX_TEXTURE_IMAGE_UNITS,
-   gl_MAX_VERTEX_TEXTURE_IMAGE_UNITS,
-   gl_MAX_COMBINED_TEXTURE_IMAGE_UNITS,
-   gl_MAX_TEXTURE_COORDS,
-   gl_VERTEX_PROGRAM_POINT_SIZE,
-   gl_VERTEX_PROGRAM_TWO_SIDE,
-   gl_OBJECT_ACTIVE_ATTRIBUTES,
-   gl_OBJECT_ACTIVE_ATTRIBUTE_MAX_LENGTH,
-   gl_VERTEX_ATTRIB_ARRAY_ENABLED,
-   gl_VERTEX_ATTRIB_ARRAY_SIZE,
-   gl_VERTEX_ATTRIB_ARRAY_STRIDE,
-   gl_VERTEX_ATTRIB_ARRAY_TYPE,
-   gl_VERTEX_ATTRIB_ARRAY_NORMALIZED,
-   gl_CURRENT_VERTEX_ATTRIB,
-   gl_VERTEX_ATTRIB_ARRAY_POINTER,
-   gl_FLOAT,
-   gl_FLOAT_VEC2,
-   gl_FLOAT_VEC3,
-   gl_FLOAT_VEC4,
-   gl_FLOAT_MAT2,
-   gl_FLOAT_MAT3,
-   gl_FLOAT_MAT4
+  -- * Enums
+  gl_CURRENT_VERTEX_ATTRIB_ARB,
+  gl_FLOAT,
+  gl_FLOAT_MAT2_ARB,
+  gl_FLOAT_MAT3_ARB,
+  gl_FLOAT_MAT4_ARB,
+  gl_FLOAT_VEC2_ARB,
+  gl_FLOAT_VEC3_ARB,
+  gl_FLOAT_VEC4_ARB,
+  gl_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB,
+  gl_MAX_TEXTURE_COORDS_ARB,
+  gl_MAX_TEXTURE_IMAGE_UNITS_ARB,
+  gl_MAX_VARYING_FLOATS_ARB,
+  gl_MAX_VERTEX_ATTRIBS_ARB,
+  gl_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB,
+  gl_MAX_VERTEX_UNIFORM_COMPONENTS_ARB,
+  gl_OBJECT_ACTIVE_ATTRIBUTES_ARB,
+  gl_OBJECT_ACTIVE_ATTRIBUTE_MAX_LENGTH_ARB,
+  gl_VERTEX_ATTRIB_ARRAY_ENABLED_ARB,
+  gl_VERTEX_ATTRIB_ARRAY_NORMALIZED_ARB,
+  gl_VERTEX_ATTRIB_ARRAY_POINTER_ARB,
+  gl_VERTEX_ATTRIB_ARRAY_SIZE_ARB,
+  gl_VERTEX_ATTRIB_ARRAY_STRIDE_ARB,
+  gl_VERTEX_ATTRIB_ARRAY_TYPE_ARB,
+  gl_VERTEX_PROGRAM_POINT_SIZE_ARB,
+  gl_VERTEX_PROGRAM_TWO_SIDE_ARB,
+  gl_VERTEX_SHADER_ARB,
+  -- * Functions
+  glBindAttribLocationARB,
+  glDisableVertexAttribArrayARB,
+  glEnableVertexAttribArrayARB,
+  glGetActiveAttribARB,
+  glGetAttribLocationARB,
+  glGetVertexAttribPointervARB,
+  glGetVertexAttribdvARB,
+  glGetVertexAttribfvARB,
+  glGetVertexAttribivARB,
+  glVertexAttrib1dARB,
+  glVertexAttrib1dvARB,
+  glVertexAttrib1fARB,
+  glVertexAttrib1fvARB,
+  glVertexAttrib1sARB,
+  glVertexAttrib1svARB,
+  glVertexAttrib2dARB,
+  glVertexAttrib2dvARB,
+  glVertexAttrib2fARB,
+  glVertexAttrib2fvARB,
+  glVertexAttrib2sARB,
+  glVertexAttrib2svARB,
+  glVertexAttrib3dARB,
+  glVertexAttrib3dvARB,
+  glVertexAttrib3fARB,
+  glVertexAttrib3fvARB,
+  glVertexAttrib3sARB,
+  glVertexAttrib3svARB,
+  glVertexAttrib4NbvARB,
+  glVertexAttrib4NivARB,
+  glVertexAttrib4NsvARB,
+  glVertexAttrib4NubARB,
+  glVertexAttrib4NubvARB,
+  glVertexAttrib4NuivARB,
+  glVertexAttrib4NusvARB,
+  glVertexAttrib4bvARB,
+  glVertexAttrib4dARB,
+  glVertexAttrib4dvARB,
+  glVertexAttrib4fARB,
+  glVertexAttrib4fvARB,
+  glVertexAttrib4ivARB,
+  glVertexAttrib4sARB,
+  glVertexAttrib4svARB,
+  glVertexAttrib4ubvARB,
+  glVertexAttrib4uivARB,
+  glVertexAttrib4usvARB,
+  glVertexAttribPointerARB
 ) where
 
-import Graphics.Rendering.OpenGL.Raw.Functions
 import Graphics.Rendering.OpenGL.Raw.Tokens
-
-gl_OBJECT_ACTIVE_ATTRIBUTES = gl_OBJECT_ACTIVE_ATTRIBUTES_ARB
-gl_OBJECT_ACTIVE_ATTRIBUTE_MAX_LENGTH = gl_OBJECT_ACTIVE_ATTRIBUTE_MAX_LENGTH_ARB
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/VertexType10f11f11fRev.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/VertexType10f11f11fRev.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/ARB/VertexType10f11f11fRev.hs
@@ -0,0 +1,20 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.VertexType10f11f11fRev
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/ARB/vertex_type_10f_11f_11f_rev.txt ARB_vertex_type_10f_11f_11f_rev> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.ARB.VertexType10f11f11fRev (
+  -- * Enums
+  gl_UNSIGNED_INT_10F_11F_11F_REV
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/VertexType2101010Rev.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/VertexType2101010Rev.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/VertexType2101010Rev.hs
+++ /dev/null
@@ -1,64 +0,0 @@
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.VertexType2101010Rev
--- Copyright   :  (c) Sven Panne 2014
--- License     :  BSD3
---
--- Maintainer  :  Sven Panne <svenpanne@gmail.com>
--- Stability   :  stable
--- Portability :  portable
---
--- All raw functions and tokens from the ARB_vertex_type_2_10_10_10_rev
--- extension, see
--- <http://www.opengl.org/registry/specs/ARB/vertex_type_2_10_10_10_rev.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.ARB.VertexType2101010Rev (
-   -- * Functions
-   glVertexAttribP1ui,
-   glVertexAttribP1uiv,
-   glVertexAttribP2ui,
-   glVertexAttribP2uiv,
-   glVertexAttribP3ui,
-   glVertexAttribP3uiv,
-   glVertexAttribP4ui,
-   glVertexAttribP4uiv,
-   glVertexP2ui,
-   glVertexP2uiv,
-   glVertexP3ui,
-   glVertexP3uiv,
-   glVertexP4ui,
-   glVertexP4uiv,
-   glTexCoordP1ui,
-   glTexCoordP1uiv,
-   glTexCoordP2ui,
-   glTexCoordP2uiv,
-   glTexCoordP3ui,
-   glTexCoordP3uiv,
-   glTexCoordP4ui,
-   glTexCoordP4uiv,
-   glMultiTexCoordP1ui,
-   glMultiTexCoordP1uiv,
-   glMultiTexCoordP2ui,
-   glMultiTexCoordP2uiv,
-   glMultiTexCoordP3ui,
-   glMultiTexCoordP3uiv,
-   glMultiTexCoordP4ui,
-   glMultiTexCoordP4uiv,
-   glNormalP3ui,
-   glNormalP3uiv,
-   glColorP3ui,
-   glColorP3uiv,
-   glColorP4ui,
-   glColorP4uiv,
-   glSecondaryColorP3ui,
-   glSecondaryColorP3uiv,
-
-   -- * Tokens
-   gl_UNSIGNED_INT_2_10_10_10_REV,
-   gl_INT_2_10_10_10_REV
-) where
-
-import Graphics.Rendering.OpenGL.Raw.Functions
-import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/VertexType2101010RevCompatibility.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/VertexType2101010RevCompatibility.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/ARB/VertexType2101010RevCompatibility.hs
@@ -0,0 +1,61 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.VertexType2101010RevCompatibility
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/ARB/vertex_type_2_10_10_10_rev_compatibility.txt ARB_vertex_type_2_10_10_10_rev_compatibility> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.ARB.VertexType2101010RevCompatibility (
+  -- * Enums
+  gl_INT_2_10_10_10_REV,
+  gl_UNSIGNED_INT_2_10_10_10_REV,
+  -- * Functions
+  glColorP3ui,
+  glColorP3uiv,
+  glColorP4ui,
+  glColorP4uiv,
+  glMultiTexCoordP1ui,
+  glMultiTexCoordP1uiv,
+  glMultiTexCoordP2ui,
+  glMultiTexCoordP2uiv,
+  glMultiTexCoordP3ui,
+  glMultiTexCoordP3uiv,
+  glMultiTexCoordP4ui,
+  glMultiTexCoordP4uiv,
+  glNormalP3ui,
+  glNormalP3uiv,
+  glSecondaryColorP3ui,
+  glSecondaryColorP3uiv,
+  glTexCoordP1ui,
+  glTexCoordP1uiv,
+  glTexCoordP2ui,
+  glTexCoordP2uiv,
+  glTexCoordP3ui,
+  glTexCoordP3uiv,
+  glTexCoordP4ui,
+  glTexCoordP4uiv,
+  glVertexAttribP1ui,
+  glVertexAttribP1uiv,
+  glVertexAttribP2ui,
+  glVertexAttribP2uiv,
+  glVertexAttribP3ui,
+  glVertexAttribP3uiv,
+  glVertexAttribP4ui,
+  glVertexAttribP4uiv,
+  glVertexP2ui,
+  glVertexP2uiv,
+  glVertexP3ui,
+  glVertexP3uiv,
+  glVertexP4ui,
+  glVertexP4uiv
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/VertexType2101010RevCore.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/VertexType2101010RevCore.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/ARB/VertexType2101010RevCore.hs
@@ -0,0 +1,31 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.VertexType2101010RevCore
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/ARB/vertex_type_2_10_10_10_rev_core.txt ARB_vertex_type_2_10_10_10_rev_core> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.ARB.VertexType2101010RevCore (
+  -- * Enums
+  gl_INT_2_10_10_10_REV,
+  gl_UNSIGNED_INT_2_10_10_10_REV,
+  -- * Functions
+  glVertexAttribP1ui,
+  glVertexAttribP1uiv,
+  glVertexAttribP2ui,
+  glVertexAttribP2uiv,
+  glVertexAttribP3ui,
+  glVertexAttribP3uiv,
+  glVertexAttribP4ui,
+  glVertexAttribP4uiv
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/ViewportArray.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/ViewportArray.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/ARB/ViewportArray.hs
@@ -0,0 +1,44 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.ViewportArray
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/ARB/viewport_array.txt ARB_viewport_array> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.ARB.ViewportArray (
+  -- * Enums
+  gl_DEPTH_RANGE,
+  gl_FIRST_VERTEX_CONVENTION,
+  gl_LAST_VERTEX_CONVENTION,
+  gl_LAYER_PROVOKING_VERTEX,
+  gl_MAX_VIEWPORTS,
+  gl_PROVOKING_VERTEX,
+  gl_SCISSOR_BOX,
+  gl_SCISSOR_TEST,
+  gl_UNDEFINED_VERTEX,
+  gl_VIEWPORT,
+  gl_VIEWPORT_BOUNDS_RANGE,
+  gl_VIEWPORT_INDEX_PROVOKING_VERTEX,
+  gl_VIEWPORT_SUBPIXEL_BITS,
+  -- * Functions
+  glDepthRangeArrayv,
+  glDepthRangeIndexed,
+  glGetDoublei_v,
+  glGetFloati_v,
+  glScissorArrayv,
+  glScissorIndexed,
+  glScissorIndexedv,
+  glViewportArrayv,
+  glViewportIndexedf,
+  glViewportIndexedfv
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/WindowPos.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/WindowPos.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/WindowPos.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/ARB/WindowPos.hs
@@ -1,36 +1,35 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.WindowPos
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All raw functions from the ARB_shadow extension, see
--- <http://www.opengl.org/registry/specs/ARB/shadow.txt>.
+-- The <https://www.opengl.org/registry/specs/ARB/window_pos.txt ARB_window_pos> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.ARB.WindowPos (
-   -- * Functions
-   glWindowPos2d,
-   glWindowPos2f,
-   glWindowPos2i,
-   glWindowPos2s,
-   glWindowPos2dv,
-   glWindowPos2fv,
-   glWindowPos2iv,
-   glWindowPos2sv,
-   glWindowPos3d,
-   glWindowPos3f,
-   glWindowPos3i,
-   glWindowPos3s,
-   glWindowPos3dv,
-   glWindowPos3fv,
-   glWindowPos3iv,
-   glWindowPos3sv
+  -- * Functions
+  glWindowPos2dARB,
+  glWindowPos2dvARB,
+  glWindowPos2fARB,
+  glWindowPos2fvARB,
+  glWindowPos2iARB,
+  glWindowPos2ivARB,
+  glWindowPos2sARB,
+  glWindowPos2svARB,
+  glWindowPos3dARB,
+  glWindowPos3dvARB,
+  glWindowPos3fARB,
+  glWindowPos3fvARB,
+  glWindowPos3iARB,
+  glWindowPos3ivARB,
+  glWindowPos3sARB,
+  glWindowPos3svARB
 ) where
 
-import Graphics.Rendering.OpenGL.Raw.ARB.Compatibility
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ATI.hs b/src/Graphics/Rendering/OpenGL/Raw/ATI.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/ATI.hs
@@ -0,0 +1,49 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.ATI
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- A convenience module, combining all raw modules containing ATI extensions.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.ATI (
+  module Graphics.Rendering.OpenGL.Raw.ATI.DrawBuffers,
+  module Graphics.Rendering.OpenGL.Raw.ATI.ElementArray,
+  module Graphics.Rendering.OpenGL.Raw.ATI.EnvmapBumpmap,
+  module Graphics.Rendering.OpenGL.Raw.ATI.FragmentShader,
+  module Graphics.Rendering.OpenGL.Raw.ATI.MapObjectBuffer,
+  module Graphics.Rendering.OpenGL.Raw.ATI.Meminfo,
+  module Graphics.Rendering.OpenGL.Raw.ATI.PixelFormatFloat,
+  module Graphics.Rendering.OpenGL.Raw.ATI.PNTriangles,
+  module Graphics.Rendering.OpenGL.Raw.ATI.SeparateStencil,
+  module Graphics.Rendering.OpenGL.Raw.ATI.TextFragmentShader,
+  module Graphics.Rendering.OpenGL.Raw.ATI.TextureEnvCombine3,
+  module Graphics.Rendering.OpenGL.Raw.ATI.TextureFloat,
+  module Graphics.Rendering.OpenGL.Raw.ATI.TextureMirrorOnce,
+  module Graphics.Rendering.OpenGL.Raw.ATI.VertexArrayObject,
+  module Graphics.Rendering.OpenGL.Raw.ATI.VertexAttribArrayObject,
+  module Graphics.Rendering.OpenGL.Raw.ATI.VertexStreams
+) where
+
+import Graphics.Rendering.OpenGL.Raw.ATI.DrawBuffers
+import Graphics.Rendering.OpenGL.Raw.ATI.ElementArray
+import Graphics.Rendering.OpenGL.Raw.ATI.EnvmapBumpmap
+import Graphics.Rendering.OpenGL.Raw.ATI.FragmentShader
+import Graphics.Rendering.OpenGL.Raw.ATI.MapObjectBuffer
+import Graphics.Rendering.OpenGL.Raw.ATI.Meminfo
+import Graphics.Rendering.OpenGL.Raw.ATI.PixelFormatFloat
+import Graphics.Rendering.OpenGL.Raw.ATI.PNTriangles
+import Graphics.Rendering.OpenGL.Raw.ATI.SeparateStencil
+import Graphics.Rendering.OpenGL.Raw.ATI.TextFragmentShader
+import Graphics.Rendering.OpenGL.Raw.ATI.TextureEnvCombine3
+import Graphics.Rendering.OpenGL.Raw.ATI.TextureFloat
+import Graphics.Rendering.OpenGL.Raw.ATI.TextureMirrorOnce
+import Graphics.Rendering.OpenGL.Raw.ATI.VertexArrayObject
+import Graphics.Rendering.OpenGL.Raw.ATI.VertexAttribArrayObject
+import Graphics.Rendering.OpenGL.Raw.ATI.VertexStreams
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ATI/DrawBuffers.hs b/src/Graphics/Rendering/OpenGL/Raw/ATI/DrawBuffers.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/ATI/DrawBuffers.hs
@@ -0,0 +1,39 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.ATI.DrawBuffers
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/ATI/draw_buffers.txt ATI_draw_buffers> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.ATI.DrawBuffers (
+  -- * Enums
+  gl_DRAW_BUFFER0_ATI,
+  gl_DRAW_BUFFER10_ATI,
+  gl_DRAW_BUFFER11_ATI,
+  gl_DRAW_BUFFER12_ATI,
+  gl_DRAW_BUFFER13_ATI,
+  gl_DRAW_BUFFER14_ATI,
+  gl_DRAW_BUFFER15_ATI,
+  gl_DRAW_BUFFER1_ATI,
+  gl_DRAW_BUFFER2_ATI,
+  gl_DRAW_BUFFER3_ATI,
+  gl_DRAW_BUFFER4_ATI,
+  gl_DRAW_BUFFER5_ATI,
+  gl_DRAW_BUFFER6_ATI,
+  gl_DRAW_BUFFER7_ATI,
+  gl_DRAW_BUFFER8_ATI,
+  gl_DRAW_BUFFER9_ATI,
+  gl_MAX_DRAW_BUFFERS_ATI,
+  -- * Functions
+  glDrawBuffersATI
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ATI/ElementArray.hs b/src/Graphics/Rendering/OpenGL/Raw/ATI/ElementArray.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/ATI/ElementArray.hs
@@ -0,0 +1,27 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.ATI.ElementArray
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/ATI/element_array.txt ATI_element_array> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.ATI.ElementArray (
+  -- * Enums
+  gl_ELEMENT_ARRAY_ATI,
+  gl_ELEMENT_ARRAY_POINTER_ATI,
+  gl_ELEMENT_ARRAY_TYPE_ATI,
+  -- * Functions
+  glDrawElementArrayATI,
+  glDrawRangeElementArrayATI,
+  glElementPointerATI
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ATI/EnvmapBumpmap.hs b/src/Graphics/Rendering/OpenGL/Raw/ATI/EnvmapBumpmap.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/ATI/EnvmapBumpmap.hs
@@ -0,0 +1,33 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.ATI.EnvmapBumpmap
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/ATI/envmap_bumpmap.txt ATI_envmap_bumpmap> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.ATI.EnvmapBumpmap (
+  -- * Enums
+  gl_BUMP_ENVMAP_ATI,
+  gl_BUMP_NUM_TEX_UNITS_ATI,
+  gl_BUMP_ROT_MATRIX_ATI,
+  gl_BUMP_ROT_MATRIX_SIZE_ATI,
+  gl_BUMP_TARGET_ATI,
+  gl_BUMP_TEX_UNITS_ATI,
+  gl_DU8DV8_ATI,
+  gl_DUDV_ATI,
+  -- * Functions
+  glGetTexBumpParameterfvATI,
+  glGetTexBumpParameterivATI,
+  glTexBumpParameterfvATI,
+  glTexBumpParameterivATI
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ATI/FragmentShader.hs b/src/Graphics/Rendering/OpenGL/Raw/ATI/FragmentShader.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/ATI/FragmentShader.hs
@@ -0,0 +1,139 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.ATI.FragmentShader
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/ATI/fragment_shader.txt ATI_fragment_shader> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.ATI.FragmentShader (
+  -- * Enums
+  gl_2X_BIT_ATI,
+  gl_4X_BIT_ATI,
+  gl_8X_BIT_ATI,
+  gl_ADD_ATI,
+  gl_BIAS_BIT_ATI,
+  gl_BLUE_BIT_ATI,
+  gl_CND0_ATI,
+  gl_CND_ATI,
+  gl_COLOR_ALPHA_PAIRING_ATI,
+  gl_COMP_BIT_ATI,
+  gl_CON_0_ATI,
+  gl_CON_10_ATI,
+  gl_CON_11_ATI,
+  gl_CON_12_ATI,
+  gl_CON_13_ATI,
+  gl_CON_14_ATI,
+  gl_CON_15_ATI,
+  gl_CON_16_ATI,
+  gl_CON_17_ATI,
+  gl_CON_18_ATI,
+  gl_CON_19_ATI,
+  gl_CON_1_ATI,
+  gl_CON_20_ATI,
+  gl_CON_21_ATI,
+  gl_CON_22_ATI,
+  gl_CON_23_ATI,
+  gl_CON_24_ATI,
+  gl_CON_25_ATI,
+  gl_CON_26_ATI,
+  gl_CON_27_ATI,
+  gl_CON_28_ATI,
+  gl_CON_29_ATI,
+  gl_CON_2_ATI,
+  gl_CON_30_ATI,
+  gl_CON_31_ATI,
+  gl_CON_3_ATI,
+  gl_CON_4_ATI,
+  gl_CON_5_ATI,
+  gl_CON_6_ATI,
+  gl_CON_7_ATI,
+  gl_CON_8_ATI,
+  gl_CON_9_ATI,
+  gl_DOT2_ADD_ATI,
+  gl_DOT3_ATI,
+  gl_DOT4_ATI,
+  gl_EIGHTH_BIT_ATI,
+  gl_FRAGMENT_SHADER_ATI,
+  gl_GREEN_BIT_ATI,
+  gl_HALF_BIT_ATI,
+  gl_LERP_ATI,
+  gl_MAD_ATI,
+  gl_MOV_ATI,
+  gl_MUL_ATI,
+  gl_NEGATE_BIT_ATI,
+  gl_NUM_FRAGMENT_CONSTANTS_ATI,
+  gl_NUM_FRAGMENT_REGISTERS_ATI,
+  gl_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI,
+  gl_NUM_INSTRUCTIONS_PER_PASS_ATI,
+  gl_NUM_INSTRUCTIONS_TOTAL_ATI,
+  gl_NUM_LOOPBACK_COMPONENTS_ATI,
+  gl_NUM_PASSES_ATI,
+  gl_QUARTER_BIT_ATI,
+  gl_RED_BIT_ATI,
+  gl_REG_0_ATI,
+  gl_REG_10_ATI,
+  gl_REG_11_ATI,
+  gl_REG_12_ATI,
+  gl_REG_13_ATI,
+  gl_REG_14_ATI,
+  gl_REG_15_ATI,
+  gl_REG_16_ATI,
+  gl_REG_17_ATI,
+  gl_REG_18_ATI,
+  gl_REG_19_ATI,
+  gl_REG_1_ATI,
+  gl_REG_20_ATI,
+  gl_REG_21_ATI,
+  gl_REG_22_ATI,
+  gl_REG_23_ATI,
+  gl_REG_24_ATI,
+  gl_REG_25_ATI,
+  gl_REG_26_ATI,
+  gl_REG_27_ATI,
+  gl_REG_28_ATI,
+  gl_REG_29_ATI,
+  gl_REG_2_ATI,
+  gl_REG_30_ATI,
+  gl_REG_31_ATI,
+  gl_REG_3_ATI,
+  gl_REG_4_ATI,
+  gl_REG_5_ATI,
+  gl_REG_6_ATI,
+  gl_REG_7_ATI,
+  gl_REG_8_ATI,
+  gl_REG_9_ATI,
+  gl_SATURATE_BIT_ATI,
+  gl_SECONDARY_INTERPOLATOR_ATI,
+  gl_SUB_ATI,
+  gl_SWIZZLE_STQ_ATI,
+  gl_SWIZZLE_STQ_DQ_ATI,
+  gl_SWIZZLE_STRQ_ATI,
+  gl_SWIZZLE_STRQ_DQ_ATI,
+  gl_SWIZZLE_STR_ATI,
+  gl_SWIZZLE_STR_DR_ATI,
+  -- * Functions
+  glAlphaFragmentOp1ATI,
+  glAlphaFragmentOp2ATI,
+  glAlphaFragmentOp3ATI,
+  glBeginFragmentShaderATI,
+  glBindFragmentShaderATI,
+  glColorFragmentOp1ATI,
+  glColorFragmentOp2ATI,
+  glColorFragmentOp3ATI,
+  glDeleteFragmentShaderATI,
+  glEndFragmentShaderATI,
+  glGenFragmentShadersATI,
+  glPassTexCoordATI,
+  glSampleMapATI,
+  glSetFragmentShaderConstantATI
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ATI/MapObjectBuffer.hs b/src/Graphics/Rendering/OpenGL/Raw/ATI/MapObjectBuffer.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/ATI/MapObjectBuffer.hs
@@ -0,0 +1,21 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.ATI.MapObjectBuffer
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/ATI/map_object_buffer.txt ATI_map_object_buffer> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.ATI.MapObjectBuffer (
+  -- * Functions
+  glMapObjectBufferATI,
+  glUnmapObjectBufferATI
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ATI/Meminfo.hs b/src/Graphics/Rendering/OpenGL/Raw/ATI/Meminfo.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/ATI/Meminfo.hs
@@ -0,0 +1,22 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.ATI.Meminfo
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/ATI/meminfo.txt ATI_meminfo> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.ATI.Meminfo (
+  -- * Enums
+  gl_RENDERBUFFER_FREE_MEMORY_ATI,
+  gl_TEXTURE_FREE_MEMORY_ATI,
+  gl_VBO_FREE_MEMORY_ATI
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ATI/PNTriangles.hs b/src/Graphics/Rendering/OpenGL/Raw/ATI/PNTriangles.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/ATI/PNTriangles.hs
@@ -0,0 +1,32 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.ATI.PNTriangles
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/ATI/pn_triangles.txt ATI_pn_triangles> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.ATI.PNTriangles (
+  -- * Enums
+  gl_MAX_PN_TRIANGLES_TESSELATION_LEVEL_ATI,
+  gl_PN_TRIANGLES_ATI,
+  gl_PN_TRIANGLES_NORMAL_MODE_ATI,
+  gl_PN_TRIANGLES_NORMAL_MODE_LINEAR_ATI,
+  gl_PN_TRIANGLES_NORMAL_MODE_QUADRATIC_ATI,
+  gl_PN_TRIANGLES_POINT_MODE_ATI,
+  gl_PN_TRIANGLES_POINT_MODE_CUBIC_ATI,
+  gl_PN_TRIANGLES_POINT_MODE_LINEAR_ATI,
+  gl_PN_TRIANGLES_TESSELATION_LEVEL_ATI,
+  -- * Functions
+  glPNTrianglesfATI,
+  glPNTrianglesiATI
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ATI/PixelFormatFloat.hs b/src/Graphics/Rendering/OpenGL/Raw/ATI/PixelFormatFloat.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/ATI/PixelFormatFloat.hs
@@ -0,0 +1,21 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.ATI.PixelFormatFloat
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/ATI/pixel_format_float.txt ATI_pixel_format_float> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.ATI.PixelFormatFloat (
+  -- * Enums
+  gl_COLOR_CLEAR_UNCLAMPED_VALUE_ATI,
+  gl_RGBA_FLOAT_MODE_ATI
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ATI/SeparateStencil.hs b/src/Graphics/Rendering/OpenGL/Raw/ATI/SeparateStencil.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/ATI/SeparateStencil.hs
@@ -0,0 +1,27 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.ATI.SeparateStencil
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/ATI/separate_stencil.txt ATI_separate_stencil> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.ATI.SeparateStencil (
+  -- * Enums
+  gl_STENCIL_BACK_FAIL_ATI,
+  gl_STENCIL_BACK_FUNC_ATI,
+  gl_STENCIL_BACK_PASS_DEPTH_FAIL_ATI,
+  gl_STENCIL_BACK_PASS_DEPTH_PASS_ATI,
+  -- * Functions
+  glStencilFuncSeparateATI,
+  glStencilOpSeparateATI
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ATI/TextFragmentShader.hs b/src/Graphics/Rendering/OpenGL/Raw/ATI/TextFragmentShader.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/ATI/TextFragmentShader.hs
@@ -0,0 +1,20 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.ATI.TextFragmentShader
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/ATI/text_fragment_shader.txt ATI_text_fragment_shader> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.ATI.TextFragmentShader (
+  -- * Enums
+  gl_TEXT_FRAGMENT_SHADER_ATI
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ATI/TextureEnvCombine3.hs b/src/Graphics/Rendering/OpenGL/Raw/ATI/TextureEnvCombine3.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/ATI/TextureEnvCombine3.hs
@@ -0,0 +1,22 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.ATI.TextureEnvCombine3
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/ATI/texture_env_combine3.txt ATI_texture_env_combine3> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.ATI.TextureEnvCombine3 (
+  -- * Enums
+  gl_MODULATE_ADD_ATI,
+  gl_MODULATE_SIGNED_ADD_ATI,
+  gl_MODULATE_SUBTRACT_ATI
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ATI/TextureFloat.hs b/src/Graphics/Rendering/OpenGL/Raw/ATI/TextureFloat.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/ATI/TextureFloat.hs
@@ -0,0 +1,31 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.ATI.TextureFloat
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/ATI/texture_float.txt ATI_texture_float> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.ATI.TextureFloat (
+  -- * Enums
+  gl_ALPHA_FLOAT16_ATI,
+  gl_ALPHA_FLOAT32_ATI,
+  gl_INTENSITY_FLOAT16_ATI,
+  gl_INTENSITY_FLOAT32_ATI,
+  gl_LUMINANCE_ALPHA_FLOAT16_ATI,
+  gl_LUMINANCE_ALPHA_FLOAT32_ATI,
+  gl_LUMINANCE_FLOAT16_ATI,
+  gl_LUMINANCE_FLOAT32_ATI,
+  gl_RGBA_FLOAT16_ATI,
+  gl_RGBA_FLOAT32_ATI,
+  gl_RGB_FLOAT16_ATI,
+  gl_RGB_FLOAT32_ATI
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ATI/TextureMirrorOnce.hs b/src/Graphics/Rendering/OpenGL/Raw/ATI/TextureMirrorOnce.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/ATI/TextureMirrorOnce.hs
@@ -0,0 +1,21 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.ATI.TextureMirrorOnce
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/ATI/texture_mirror_once.txt ATI_texture_mirror_once> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.ATI.TextureMirrorOnce (
+  -- * Enums
+  gl_MIRROR_CLAMP_ATI,
+  gl_MIRROR_CLAMP_TO_EDGE_ATI
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ATI/VertexArrayObject.hs b/src/Graphics/Rendering/OpenGL/Raw/ATI/VertexArrayObject.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/ATI/VertexArrayObject.hs
@@ -0,0 +1,41 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.ATI.VertexArrayObject
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/ATI/vertex_array_object.txt ATI_vertex_array_object> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.ATI.VertexArrayObject (
+  -- * Enums
+  gl_ARRAY_OBJECT_BUFFER_ATI,
+  gl_ARRAY_OBJECT_OFFSET_ATI,
+  gl_DISCARD_ATI,
+  gl_DYNAMIC_ATI,
+  gl_OBJECT_BUFFER_SIZE_ATI,
+  gl_OBJECT_BUFFER_USAGE_ATI,
+  gl_PRESERVE_ATI,
+  gl_STATIC_ATI,
+  -- * Functions
+  glArrayObjectATI,
+  glFreeObjectBufferATI,
+  glGetArrayObjectfvATI,
+  glGetArrayObjectivATI,
+  glGetObjectBufferfvATI,
+  glGetObjectBufferivATI,
+  glGetVariantArrayObjectfvATI,
+  glGetVariantArrayObjectivATI,
+  glIsObjectBufferATI,
+  glNewObjectBufferATI,
+  glUpdateObjectBufferATI,
+  glVariantArrayObjectATI
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ATI/VertexAttribArrayObject.hs b/src/Graphics/Rendering/OpenGL/Raw/ATI/VertexAttribArrayObject.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/ATI/VertexAttribArrayObject.hs
@@ -0,0 +1,22 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.ATI.VertexAttribArrayObject
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/ATI/vertex_attrib_array_object.txt ATI_vertex_attrib_array_object> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.ATI.VertexAttribArrayObject (
+  -- * Functions
+  glGetVertexAttribArrayObjectfvATI,
+  glGetVertexAttribArrayObjectivATI,
+  glVertexAttribArrayObjectATI
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ATI/VertexStreams.hs b/src/Graphics/Rendering/OpenGL/Raw/ATI/VertexStreams.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/ATI/VertexStreams.hs
@@ -0,0 +1,76 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.ATI.VertexStreams
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/ATI/vertex_streams.txt ATI_vertex_streams> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.ATI.VertexStreams (
+  -- * Enums
+  gl_MAX_VERTEX_STREAMS_ATI,
+  gl_VERTEX_SOURCE_ATI,
+  gl_VERTEX_STREAM0_ATI,
+  gl_VERTEX_STREAM1_ATI,
+  gl_VERTEX_STREAM2_ATI,
+  gl_VERTEX_STREAM3_ATI,
+  gl_VERTEX_STREAM4_ATI,
+  gl_VERTEX_STREAM5_ATI,
+  gl_VERTEX_STREAM6_ATI,
+  gl_VERTEX_STREAM7_ATI,
+  -- * Functions
+  glClientActiveVertexStreamATI,
+  glNormalStream3bATI,
+  glNormalStream3bvATI,
+  glNormalStream3dATI,
+  glNormalStream3dvATI,
+  glNormalStream3fATI,
+  glNormalStream3fvATI,
+  glNormalStream3iATI,
+  glNormalStream3ivATI,
+  glNormalStream3sATI,
+  glNormalStream3svATI,
+  glVertexBlendEnvfATI,
+  glVertexBlendEnviATI,
+  glVertexStream1dATI,
+  glVertexStream1dvATI,
+  glVertexStream1fATI,
+  glVertexStream1fvATI,
+  glVertexStream1iATI,
+  glVertexStream1ivATI,
+  glVertexStream1sATI,
+  glVertexStream1svATI,
+  glVertexStream2dATI,
+  glVertexStream2dvATI,
+  glVertexStream2fATI,
+  glVertexStream2fvATI,
+  glVertexStream2iATI,
+  glVertexStream2ivATI,
+  glVertexStream2sATI,
+  glVertexStream2svATI,
+  glVertexStream3dATI,
+  glVertexStream3dvATI,
+  glVertexStream3fATI,
+  glVertexStream3fvATI,
+  glVertexStream3iATI,
+  glVertexStream3ivATI,
+  glVertexStream3sATI,
+  glVertexStream3svATI,
+  glVertexStream4dATI,
+  glVertexStream4dvATI,
+  glVertexStream4fATI,
+  glVertexStream4fvATI,
+  glVertexStream4iATI,
+  glVertexStream4ivATI,
+  glVertexStream4sATI,
+  glVertexStream4svATI
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/EXT.hs
@@ -1,7 +1,7 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.EXT
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
@@ -13,183 +13,187 @@
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.EXT (
-   module Graphics.Rendering.OpenGL.Raw.EXT.ABGR,
-   module Graphics.Rendering.OpenGL.Raw.EXT.BlendColor,
-   module Graphics.Rendering.OpenGL.Raw.EXT.PolygonOffset,
-   module Graphics.Rendering.OpenGL.Raw.EXT.Texture,
-   module Graphics.Rendering.OpenGL.Raw.EXT.Texture3D,
-   module Graphics.Rendering.OpenGL.Raw.EXT.Subtexture,
-   module Graphics.Rendering.OpenGL.Raw.EXT.CopyTexture,
-   module Graphics.Rendering.OpenGL.Raw.EXT.Histogram,
-   module Graphics.Rendering.OpenGL.Raw.EXT.Convolution,
-   module Graphics.Rendering.OpenGL.Raw.EXT.CMYKA,
-   module Graphics.Rendering.OpenGL.Raw.EXT.TextureObject,
-   module Graphics.Rendering.OpenGL.Raw.EXT.PackedPixels,
-   module Graphics.Rendering.OpenGL.Raw.EXT.RescaleNormal,
-   module Graphics.Rendering.OpenGL.Raw.EXT.VertexArray,
-   -- module Graphics.Rendering.OpenGL.Raw.EXT.MiscAttribute,
-   module Graphics.Rendering.OpenGL.Raw.EXT.BlendMinmax,
-   module Graphics.Rendering.OpenGL.Raw.EXT.BlendSubtract,
-   -- module Graphics.Rendering.OpenGL.Raw.EXT.BlendLogicOp,
-   module Graphics.Rendering.OpenGL.Raw.EXT.PointParameters,
-   module Graphics.Rendering.OpenGL.Raw.EXT.ColorSubtable,
-   module Graphics.Rendering.OpenGL.Raw.EXT.PalettedTexture,
-   module Graphics.Rendering.OpenGL.Raw.EXT.ClipVolumeHint,
-   -- module Graphics.Rendering.OpenGL.Raw.EXT.IndexTexture,
-   module Graphics.Rendering.OpenGL.Raw.EXT.IndexMaterial,
-   module Graphics.Rendering.OpenGL.Raw.EXT.IndexFunc,
-   module Graphics.Rendering.OpenGL.Raw.EXT.IndexArrayFormats,
-   module Graphics.Rendering.OpenGL.Raw.EXT.CompiledVertexArray,
-   module Graphics.Rendering.OpenGL.Raw.EXT.CullVertex,
-   module Graphics.Rendering.OpenGL.Raw.EXT.FragmentLighting,
-   module Graphics.Rendering.OpenGL.Raw.EXT.DrawRangeElements,
-   module Graphics.Rendering.OpenGL.Raw.EXT.LightTexture,
-   module Graphics.Rendering.OpenGL.Raw.EXT.SceneMarker,
-   module Graphics.Rendering.OpenGL.Raw.EXT.BGRA,
-   module Graphics.Rendering.OpenGL.Raw.EXT.PixelTransform,
-   -- module Graphics.Rendering.OpenGL.Raw.EXT.PixelTransformColorTable,
-   module Graphics.Rendering.OpenGL.Raw.EXT.SharedTexturePalette,
-   module Graphics.Rendering.OpenGL.Raw.EXT.SeparateSpecularColor,
-   module Graphics.Rendering.OpenGL.Raw.EXT.SecondaryColor,
-   -- module Graphics.Rendering.OpenGL.Raw.EXT.TextureEnv,
-   module Graphics.Rendering.OpenGL.Raw.EXT.TexturePerturbNormal,
-   module Graphics.Rendering.OpenGL.Raw.EXT.MultiDrawArrays,
-   module Graphics.Rendering.OpenGL.Raw.EXT.FogCoord,
-   module Graphics.Rendering.OpenGL.Raw.EXT.CoordinateFrame,
-   module Graphics.Rendering.OpenGL.Raw.EXT.TextureEnvCombine,
-   module Graphics.Rendering.OpenGL.Raw.EXT.BlendFuncSeparate,
-   module Graphics.Rendering.OpenGL.Raw.EXT.StencilWrap,
-   module Graphics.Rendering.OpenGL.Raw.EXT.FourTwoTwoPixels,
-   module Graphics.Rendering.OpenGL.Raw.EXT.TextureEnvAdd,
-   module Graphics.Rendering.OpenGL.Raw.EXT.TextureLODBias,
-   module Graphics.Rendering.OpenGL.Raw.EXT.TextureFilterAnisotropic,
-   module Graphics.Rendering.OpenGL.Raw.EXT.VertexWeighting,
-   module Graphics.Rendering.OpenGL.Raw.EXT.TextureCompressionS3TC,
-   module Graphics.Rendering.OpenGL.Raw.EXT.Multisample,
-   module Graphics.Rendering.OpenGL.Raw.EXT.TextureEnvDot3,
-   module Graphics.Rendering.OpenGL.Raw.EXT.VertexShader,
-   -- module Graphics.Rendering.OpenGL.Raw.EXT.ShadowFuncs,
-   module Graphics.Rendering.OpenGL.Raw.EXT.StencilTwoSide,
-   module Graphics.Rendering.OpenGL.Raw.EXT.DepthBoundsTest,
-   module Graphics.Rendering.OpenGL.Raw.EXT.TextureMirrorClamp,
-   module Graphics.Rendering.OpenGL.Raw.EXT.BlendEquationSeparate,
-   -- module Graphics.Rendering.OpenGL.Raw.EXT.PixelBufferObject,
-   module Graphics.Rendering.OpenGL.Raw.EXT.TextureCompressionDXT1,
-   module Graphics.Rendering.OpenGL.Raw.EXT.FramebufferObject,
-   module Graphics.Rendering.OpenGL.Raw.EXT.PackedDepthStencil,
-   module Graphics.Rendering.OpenGL.Raw.EXT.StencilClearTag,
-   module Graphics.Rendering.OpenGL.Raw.EXT.TextureSRGB,
-   module Graphics.Rendering.OpenGL.Raw.EXT.FramebufferBlit,
-   module Graphics.Rendering.OpenGL.Raw.EXT.FramebufferMultisample,
-   module Graphics.Rendering.OpenGL.Raw.EXT.TimerQuery,
-   module Graphics.Rendering.OpenGL.Raw.EXT.GPUProgramParameters,
-   module Graphics.Rendering.OpenGL.Raw.EXT.GeometryShader4,
-   module Graphics.Rendering.OpenGL.Raw.EXT.GPUShader4,
-   -- module Graphics.Rendering.OpenGL.Raw.EXT.DrawInstanced,
-   module Graphics.Rendering.OpenGL.Raw.EXT.PackedFloat,
-   module Graphics.Rendering.OpenGL.Raw.EXT.TextureArray,
-   -- module Graphics.Rendering.OpenGL.Raw.EXT.TextureBufferObject,
-   module Graphics.Rendering.OpenGL.Raw.EXT.TextureCompressionLATC,
-   module Graphics.Rendering.OpenGL.Raw.EXT.TextureCompressionRGTC,
-   module Graphics.Rendering.OpenGL.Raw.EXT.TextureSharedExponent,
-   module Graphics.Rendering.OpenGL.Raw.EXT.FramebufferSRGB,
-   module Graphics.Rendering.OpenGL.Raw.EXT.DrawBuffers2,
-   module Graphics.Rendering.OpenGL.Raw.EXT.BindableUniform,
-   module Graphics.Rendering.OpenGL.Raw.EXT.TextureInteger,
-   module Graphics.Rendering.OpenGL.Raw.EXT.TransformFeedback,
-   module Graphics.Rendering.OpenGL.Raw.EXT.DirectStateAccess,
-   -- module Graphics.Rendering.OpenGL.Raw.EXT.VertexArrayBGRA,
-   module Graphics.Rendering.OpenGL.Raw.EXT.TextureSwizzle,
-   module Graphics.Rendering.OpenGL.Raw.EXT.ProvokingVertex
-   -- module Graphics.Rendering.OpenGL.Raw.EXT.TextureSnorm
+  module Graphics.Rendering.OpenGL.Raw.EXT.ABGR,
+  module Graphics.Rendering.OpenGL.Raw.EXT.BGRA,
+  module Graphics.Rendering.OpenGL.Raw.EXT.BindableUniform,
+  module Graphics.Rendering.OpenGL.Raw.EXT.BlendColor,
+  module Graphics.Rendering.OpenGL.Raw.EXT.BlendEquationSeparate,
+  module Graphics.Rendering.OpenGL.Raw.EXT.BlendFuncSeparate,
+  module Graphics.Rendering.OpenGL.Raw.EXT.BlendMinmax,
+  module Graphics.Rendering.OpenGL.Raw.EXT.BlendSubtract,
+  module Graphics.Rendering.OpenGL.Raw.EXT.ClipVolumeHint,
+  module Graphics.Rendering.OpenGL.Raw.EXT.CMYKA,
+  module Graphics.Rendering.OpenGL.Raw.EXT.ColorSubtable,
+  module Graphics.Rendering.OpenGL.Raw.EXT.CompiledVertexArray,
+  module Graphics.Rendering.OpenGL.Raw.EXT.Convolution,
+  module Graphics.Rendering.OpenGL.Raw.EXT.CoordinateFrame,
+  module Graphics.Rendering.OpenGL.Raw.EXT.CopyTexture,
+  module Graphics.Rendering.OpenGL.Raw.EXT.CullVertex,
+  module Graphics.Rendering.OpenGL.Raw.EXT.DebugLabel,
+  module Graphics.Rendering.OpenGL.Raw.EXT.DebugMarker,
+  module Graphics.Rendering.OpenGL.Raw.EXT.DepthBoundsTest,
+  module Graphics.Rendering.OpenGL.Raw.EXT.DirectStateAccess,
+  module Graphics.Rendering.OpenGL.Raw.EXT.DrawBuffers2,
+  module Graphics.Rendering.OpenGL.Raw.EXT.DrawInstanced,
+  module Graphics.Rendering.OpenGL.Raw.EXT.DrawRangeElements,
+  module Graphics.Rendering.OpenGL.Raw.EXT.FogCoord,
+  module Graphics.Rendering.OpenGL.Raw.EXT.FourTwoTwoPixels,
+  module Graphics.Rendering.OpenGL.Raw.EXT.FramebufferBlit,
+  module Graphics.Rendering.OpenGL.Raw.EXT.FramebufferMultisampleBlitScaled,
+  module Graphics.Rendering.OpenGL.Raw.EXT.FramebufferMultisample,
+  module Graphics.Rendering.OpenGL.Raw.EXT.FramebufferObject,
+  module Graphics.Rendering.OpenGL.Raw.EXT.FramebufferSRGB,
+  module Graphics.Rendering.OpenGL.Raw.EXT.GeometryShader4,
+  module Graphics.Rendering.OpenGL.Raw.EXT.GPUProgramParameters,
+  module Graphics.Rendering.OpenGL.Raw.EXT.GPUShader4,
+  module Graphics.Rendering.OpenGL.Raw.EXT.Histogram,
+  module Graphics.Rendering.OpenGL.Raw.EXT.IndexArrayFormats,
+  module Graphics.Rendering.OpenGL.Raw.EXT.IndexFunc,
+  module Graphics.Rendering.OpenGL.Raw.EXT.IndexMaterial,
+  module Graphics.Rendering.OpenGL.Raw.EXT.LightTexture,
+  module Graphics.Rendering.OpenGL.Raw.EXT.MultiDrawArrays,
+  module Graphics.Rendering.OpenGL.Raw.EXT.Multisample,
+  module Graphics.Rendering.OpenGL.Raw.EXT.PackedDepthStencil,
+  module Graphics.Rendering.OpenGL.Raw.EXT.PackedFloat,
+  module Graphics.Rendering.OpenGL.Raw.EXT.PackedPixels,
+  module Graphics.Rendering.OpenGL.Raw.EXT.PalettedTexture,
+  module Graphics.Rendering.OpenGL.Raw.EXT.PixelBufferObject,
+  module Graphics.Rendering.OpenGL.Raw.EXT.PixelTransform,
+  module Graphics.Rendering.OpenGL.Raw.EXT.PointParameters,
+  module Graphics.Rendering.OpenGL.Raw.EXT.PolygonOffsetClamp,
+  module Graphics.Rendering.OpenGL.Raw.EXT.PolygonOffset,
+  module Graphics.Rendering.OpenGL.Raw.EXT.ProvokingVertex,
+  module Graphics.Rendering.OpenGL.Raw.EXT.RasterMultisample,
+  module Graphics.Rendering.OpenGL.Raw.EXT.RescaleNormal,
+  module Graphics.Rendering.OpenGL.Raw.EXT.SecondaryColor,
+  module Graphics.Rendering.OpenGL.Raw.EXT.SeparateShaderObjects,
+  module Graphics.Rendering.OpenGL.Raw.EXT.SeparateSpecularColor,
+  module Graphics.Rendering.OpenGL.Raw.EXT.ShaderImageLoadStore,
+  module Graphics.Rendering.OpenGL.Raw.EXT.SharedTexturePalette,
+  module Graphics.Rendering.OpenGL.Raw.EXT.StencilClearTag,
+  module Graphics.Rendering.OpenGL.Raw.EXT.StencilTwoSide,
+  module Graphics.Rendering.OpenGL.Raw.EXT.StencilWrap,
+  module Graphics.Rendering.OpenGL.Raw.EXT.Subtexture,
+  module Graphics.Rendering.OpenGL.Raw.EXT.Texture3D,
+  module Graphics.Rendering.OpenGL.Raw.EXT.TextureArray,
+  module Graphics.Rendering.OpenGL.Raw.EXT.TextureBufferObject,
+  module Graphics.Rendering.OpenGL.Raw.EXT.TextureCompressionLATC,
+  module Graphics.Rendering.OpenGL.Raw.EXT.TextureCompressionRGTC,
+  module Graphics.Rendering.OpenGL.Raw.EXT.TextureCompressionS3TC,
+  module Graphics.Rendering.OpenGL.Raw.EXT.TextureCubeMap,
+  module Graphics.Rendering.OpenGL.Raw.EXT.TextureEnvCombine,
+  module Graphics.Rendering.OpenGL.Raw.EXT.TextureEnvDot3,
+  module Graphics.Rendering.OpenGL.Raw.EXT.TextureFilterAnisotropic,
+  module Graphics.Rendering.OpenGL.Raw.EXT.TextureFilterMinmax,
+  module Graphics.Rendering.OpenGL.Raw.EXT.Texture,
+  module Graphics.Rendering.OpenGL.Raw.EXT.TextureInteger,
+  module Graphics.Rendering.OpenGL.Raw.EXT.TextureLODBias,
+  module Graphics.Rendering.OpenGL.Raw.EXT.TextureMirrorClamp,
+  module Graphics.Rendering.OpenGL.Raw.EXT.TextureObject,
+  module Graphics.Rendering.OpenGL.Raw.EXT.TexturePerturbNormal,
+  module Graphics.Rendering.OpenGL.Raw.EXT.TextureSharedExponent,
+  module Graphics.Rendering.OpenGL.Raw.EXT.TextureSNorm,
+  module Graphics.Rendering.OpenGL.Raw.EXT.TextureSRGBDecode,
+  module Graphics.Rendering.OpenGL.Raw.EXT.TextureSRGB,
+  module Graphics.Rendering.OpenGL.Raw.EXT.TextureSwizzle,
+  module Graphics.Rendering.OpenGL.Raw.EXT.TimerQuery,
+  module Graphics.Rendering.OpenGL.Raw.EXT.TransformFeedback,
+  module Graphics.Rendering.OpenGL.Raw.EXT.VertexArrayBGRA,
+  module Graphics.Rendering.OpenGL.Raw.EXT.VertexArray,
+  module Graphics.Rendering.OpenGL.Raw.EXT.VertexAttrib64Bit,
+  module Graphics.Rendering.OpenGL.Raw.EXT.VertexShader,
+  module Graphics.Rendering.OpenGL.Raw.EXT.VertexWeighting,
+  module Graphics.Rendering.OpenGL.Raw.EXT.X11SyncObject
 ) where
 
 import Graphics.Rendering.OpenGL.Raw.EXT.ABGR
+import Graphics.Rendering.OpenGL.Raw.EXT.BGRA
+import Graphics.Rendering.OpenGL.Raw.EXT.BindableUniform
 import Graphics.Rendering.OpenGL.Raw.EXT.BlendColor
-import Graphics.Rendering.OpenGL.Raw.EXT.PolygonOffset
-import Graphics.Rendering.OpenGL.Raw.EXT.Texture
-import Graphics.Rendering.OpenGL.Raw.EXT.Texture3D
-import Graphics.Rendering.OpenGL.Raw.EXT.Subtexture
-import Graphics.Rendering.OpenGL.Raw.EXT.CopyTexture
-import Graphics.Rendering.OpenGL.Raw.EXT.Histogram
-import Graphics.Rendering.OpenGL.Raw.EXT.Convolution
-import Graphics.Rendering.OpenGL.Raw.EXT.CMYKA
-import Graphics.Rendering.OpenGL.Raw.EXT.TextureObject
-import Graphics.Rendering.OpenGL.Raw.EXT.PackedPixels
-import Graphics.Rendering.OpenGL.Raw.EXT.RescaleNormal
-import Graphics.Rendering.OpenGL.Raw.EXT.VertexArray
--- import Graphics.Rendering.OpenGL.Raw.EXT.MiscAttribute
+import Graphics.Rendering.OpenGL.Raw.EXT.BlendEquationSeparate
+import Graphics.Rendering.OpenGL.Raw.EXT.BlendFuncSeparate
 import Graphics.Rendering.OpenGL.Raw.EXT.BlendMinmax
 import Graphics.Rendering.OpenGL.Raw.EXT.BlendSubtract
--- import Graphics.Rendering.OpenGL.Raw.EXT.BlendLogicOp
-import Graphics.Rendering.OpenGL.Raw.EXT.PointParameters
-import Graphics.Rendering.OpenGL.Raw.EXT.ColorSubtable
-import Graphics.Rendering.OpenGL.Raw.EXT.PalettedTexture
 import Graphics.Rendering.OpenGL.Raw.EXT.ClipVolumeHint
--- import Graphics.Rendering.OpenGL.Raw.EXT.IndexTexture
-import Graphics.Rendering.OpenGL.Raw.EXT.IndexMaterial
-import Graphics.Rendering.OpenGL.Raw.EXT.IndexFunc
-import Graphics.Rendering.OpenGL.Raw.EXT.IndexArrayFormats
+import Graphics.Rendering.OpenGL.Raw.EXT.CMYKA
+import Graphics.Rendering.OpenGL.Raw.EXT.ColorSubtable
 import Graphics.Rendering.OpenGL.Raw.EXT.CompiledVertexArray
+import Graphics.Rendering.OpenGL.Raw.EXT.Convolution
+import Graphics.Rendering.OpenGL.Raw.EXT.CoordinateFrame
+import Graphics.Rendering.OpenGL.Raw.EXT.CopyTexture
 import Graphics.Rendering.OpenGL.Raw.EXT.CullVertex
-import Graphics.Rendering.OpenGL.Raw.EXT.FragmentLighting
+import Graphics.Rendering.OpenGL.Raw.EXT.DebugLabel
+import Graphics.Rendering.OpenGL.Raw.EXT.DebugMarker
+import Graphics.Rendering.OpenGL.Raw.EXT.DepthBoundsTest
+import Graphics.Rendering.OpenGL.Raw.EXT.DirectStateAccess
+import Graphics.Rendering.OpenGL.Raw.EXT.DrawBuffers2
+import Graphics.Rendering.OpenGL.Raw.EXT.DrawInstanced
 import Graphics.Rendering.OpenGL.Raw.EXT.DrawRangeElements
-import Graphics.Rendering.OpenGL.Raw.EXT.LightTexture
-import Graphics.Rendering.OpenGL.Raw.EXT.SceneMarker
-import Graphics.Rendering.OpenGL.Raw.EXT.BGRA
-import Graphics.Rendering.OpenGL.Raw.EXT.PixelTransform
--- import Graphics.Rendering.OpenGL.Raw.EXT.PixelTransformColorTable
-import Graphics.Rendering.OpenGL.Raw.EXT.SharedTexturePalette
-import Graphics.Rendering.OpenGL.Raw.EXT.SeparateSpecularColor
-import Graphics.Rendering.OpenGL.Raw.EXT.SecondaryColor
--- import Graphics.Rendering.OpenGL.Raw.EXT.TextureEnv
-import Graphics.Rendering.OpenGL.Raw.EXT.TexturePerturbNormal
-import Graphics.Rendering.OpenGL.Raw.EXT.MultiDrawArrays
 import Graphics.Rendering.OpenGL.Raw.EXT.FogCoord
-import Graphics.Rendering.OpenGL.Raw.EXT.CoordinateFrame
-import Graphics.Rendering.OpenGL.Raw.EXT.TextureEnvCombine
-import Graphics.Rendering.OpenGL.Raw.EXT.BlendFuncSeparate
-import Graphics.Rendering.OpenGL.Raw.EXT.StencilWrap
 import Graphics.Rendering.OpenGL.Raw.EXT.FourTwoTwoPixels
-import Graphics.Rendering.OpenGL.Raw.EXT.TextureEnvAdd
-import Graphics.Rendering.OpenGL.Raw.EXT.TextureLODBias
-import Graphics.Rendering.OpenGL.Raw.EXT.TextureFilterAnisotropic
-import Graphics.Rendering.OpenGL.Raw.EXT.VertexWeighting
-import Graphics.Rendering.OpenGL.Raw.EXT.TextureCompressionS3TC
-import Graphics.Rendering.OpenGL.Raw.EXT.Multisample
-import Graphics.Rendering.OpenGL.Raw.EXT.TextureEnvDot3
-import Graphics.Rendering.OpenGL.Raw.EXT.VertexShader
--- import Graphics.Rendering.OpenGL.Raw.EXT.ShadowFuncs
-import Graphics.Rendering.OpenGL.Raw.EXT.StencilTwoSide
-import Graphics.Rendering.OpenGL.Raw.EXT.DepthBoundsTest
-import Graphics.Rendering.OpenGL.Raw.EXT.TextureMirrorClamp
-import Graphics.Rendering.OpenGL.Raw.EXT.BlendEquationSeparate
--- import Graphics.Rendering.OpenGL.Raw.EXT.PixelBufferObject
-import Graphics.Rendering.OpenGL.Raw.EXT.TextureCompressionDXT1
-import Graphics.Rendering.OpenGL.Raw.EXT.FramebufferObject
-import Graphics.Rendering.OpenGL.Raw.EXT.PackedDepthStencil
-import Graphics.Rendering.OpenGL.Raw.EXT.StencilClearTag
-import Graphics.Rendering.OpenGL.Raw.EXT.TextureSRGB
 import Graphics.Rendering.OpenGL.Raw.EXT.FramebufferBlit
+import Graphics.Rendering.OpenGL.Raw.EXT.FramebufferMultisampleBlitScaled
 import Graphics.Rendering.OpenGL.Raw.EXT.FramebufferMultisample
-import Graphics.Rendering.OpenGL.Raw.EXT.TimerQuery
-import Graphics.Rendering.OpenGL.Raw.EXT.GPUProgramParameters
+import Graphics.Rendering.OpenGL.Raw.EXT.FramebufferObject
+import Graphics.Rendering.OpenGL.Raw.EXT.FramebufferSRGB
 import Graphics.Rendering.OpenGL.Raw.EXT.GeometryShader4
+import Graphics.Rendering.OpenGL.Raw.EXT.GPUProgramParameters
 import Graphics.Rendering.OpenGL.Raw.EXT.GPUShader4
--- import Graphics.Rendering.OpenGL.Raw.EXT.DrawInstanced
+import Graphics.Rendering.OpenGL.Raw.EXT.Histogram
+import Graphics.Rendering.OpenGL.Raw.EXT.IndexArrayFormats
+import Graphics.Rendering.OpenGL.Raw.EXT.IndexFunc
+import Graphics.Rendering.OpenGL.Raw.EXT.IndexMaterial
+import Graphics.Rendering.OpenGL.Raw.EXT.LightTexture
+import Graphics.Rendering.OpenGL.Raw.EXT.MultiDrawArrays
+import Graphics.Rendering.OpenGL.Raw.EXT.Multisample
+import Graphics.Rendering.OpenGL.Raw.EXT.PackedDepthStencil
 import Graphics.Rendering.OpenGL.Raw.EXT.PackedFloat
+import Graphics.Rendering.OpenGL.Raw.EXT.PackedPixels
+import Graphics.Rendering.OpenGL.Raw.EXT.PalettedTexture
+import Graphics.Rendering.OpenGL.Raw.EXT.PixelBufferObject
+import Graphics.Rendering.OpenGL.Raw.EXT.PixelTransform
+import Graphics.Rendering.OpenGL.Raw.EXT.PointParameters
+import Graphics.Rendering.OpenGL.Raw.EXT.PolygonOffsetClamp
+import Graphics.Rendering.OpenGL.Raw.EXT.PolygonOffset
+import Graphics.Rendering.OpenGL.Raw.EXT.ProvokingVertex
+import Graphics.Rendering.OpenGL.Raw.EXT.RasterMultisample
+import Graphics.Rendering.OpenGL.Raw.EXT.RescaleNormal
+import Graphics.Rendering.OpenGL.Raw.EXT.SecondaryColor
+import Graphics.Rendering.OpenGL.Raw.EXT.SeparateShaderObjects
+import Graphics.Rendering.OpenGL.Raw.EXT.SeparateSpecularColor
+import Graphics.Rendering.OpenGL.Raw.EXT.ShaderImageLoadStore
+import Graphics.Rendering.OpenGL.Raw.EXT.SharedTexturePalette
+import Graphics.Rendering.OpenGL.Raw.EXT.StencilClearTag
+import Graphics.Rendering.OpenGL.Raw.EXT.StencilTwoSide
+import Graphics.Rendering.OpenGL.Raw.EXT.StencilWrap
+import Graphics.Rendering.OpenGL.Raw.EXT.Subtexture
+import Graphics.Rendering.OpenGL.Raw.EXT.Texture3D
 import Graphics.Rendering.OpenGL.Raw.EXT.TextureArray
--- import Graphics.Rendering.OpenGL.Raw.EXT.TextureBufferObject
+import Graphics.Rendering.OpenGL.Raw.EXT.TextureBufferObject
 import Graphics.Rendering.OpenGL.Raw.EXT.TextureCompressionLATC
 import Graphics.Rendering.OpenGL.Raw.EXT.TextureCompressionRGTC
-import Graphics.Rendering.OpenGL.Raw.EXT.TextureSharedExponent
-import Graphics.Rendering.OpenGL.Raw.EXT.FramebufferSRGB
-import Graphics.Rendering.OpenGL.Raw.EXT.DrawBuffers2
-import Graphics.Rendering.OpenGL.Raw.EXT.BindableUniform
+import Graphics.Rendering.OpenGL.Raw.EXT.TextureCompressionS3TC
+import Graphics.Rendering.OpenGL.Raw.EXT.TextureCubeMap
+import Graphics.Rendering.OpenGL.Raw.EXT.TextureEnvCombine
+import Graphics.Rendering.OpenGL.Raw.EXT.TextureEnvDot3
+import Graphics.Rendering.OpenGL.Raw.EXT.TextureFilterAnisotropic
+import Graphics.Rendering.OpenGL.Raw.EXT.TextureFilterMinmax
+import Graphics.Rendering.OpenGL.Raw.EXT.Texture
 import Graphics.Rendering.OpenGL.Raw.EXT.TextureInteger
-import Graphics.Rendering.OpenGL.Raw.EXT.TransformFeedback
-import Graphics.Rendering.OpenGL.Raw.EXT.DirectStateAccess
--- import Graphics.Rendering.OpenGL.Raw.EXT.VertexArrayBGRA
+import Graphics.Rendering.OpenGL.Raw.EXT.TextureLODBias
+import Graphics.Rendering.OpenGL.Raw.EXT.TextureMirrorClamp
+import Graphics.Rendering.OpenGL.Raw.EXT.TextureObject
+import Graphics.Rendering.OpenGL.Raw.EXT.TexturePerturbNormal
+import Graphics.Rendering.OpenGL.Raw.EXT.TextureSharedExponent
+import Graphics.Rendering.OpenGL.Raw.EXT.TextureSNorm
+import Graphics.Rendering.OpenGL.Raw.EXT.TextureSRGBDecode
+import Graphics.Rendering.OpenGL.Raw.EXT.TextureSRGB
 import Graphics.Rendering.OpenGL.Raw.EXT.TextureSwizzle
-import Graphics.Rendering.OpenGL.Raw.EXT.ProvokingVertex
--- import Graphics.Rendering.OpenGL.Raw.EXT.TextureSnorm
+import Graphics.Rendering.OpenGL.Raw.EXT.TimerQuery
+import Graphics.Rendering.OpenGL.Raw.EXT.TransformFeedback
+import Graphics.Rendering.OpenGL.Raw.EXT.VertexArrayBGRA
+import Graphics.Rendering.OpenGL.Raw.EXT.VertexArray
+import Graphics.Rendering.OpenGL.Raw.EXT.VertexAttrib64Bit
+import Graphics.Rendering.OpenGL.Raw.EXT.VertexShader
+import Graphics.Rendering.OpenGL.Raw.EXT.VertexWeighting
+import Graphics.Rendering.OpenGL.Raw.EXT.X11SyncObject
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/ABGR.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/ABGR.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT/ABGR.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/EXT/ABGR.hs
@@ -1,24 +1,20 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.ABGR
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All tokens from the EXT_abgr extension, see
--- <http://www.opengl.org/registry/specs/EXT/abgr.txt>.
+-- The <https://www.opengl.org/registry/specs/EXT/abgr.txt EXT_abgr> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.EXT.ABGR (
-   -- * Tokens
-   gl_ABGR
+  -- * Enums
+  gl_ABGR_EXT
 ) where
 
-import Graphics.Rendering.OpenGL.Raw.Core32
-
-gl_ABGR :: GLenum
-gl_ABGR = 0x8000
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/BGRA.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/BGRA.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT/BGRA.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/EXT/BGRA.hs
@@ -1,22 +1,21 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.BGRA
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All tokens from the EXT_bgra extension, see
--- <http://www.opengl.org/registry/specs/EXT/bgra.txt>.
+-- The <https://www.opengl.org/registry/specs/EXT/bgra.txt EXT_bgra> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.EXT.BGRA (
-   -- * Tokens
-   gl_BGR,
-   gl_BGRA
+  -- * Enums
+  gl_BGRA_EXT,
+  gl_BGR_EXT
 ) where
 
-import Graphics.Rendering.OpenGL.Raw.Core32
+import Graphics.Rendering.OpenGL.Raw.Tokens
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
@@ -1,64 +1,30 @@
-{-# LANGUAGE ForeignFunctionInterface, CPP #-}
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.BindableUniform
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All raw functions and tokens from the EXT_bindable_uniform extension not
--- already in the OpenGL 3.1 core, see
--- <http://www.opengl.org/registry/specs/EXT/bindable_uniform.txt>.
+-- The <https://www.opengl.org/registry/specs/EXT/bindable_uniform.txt EXT_bindable_uniform> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.EXT.BindableUniform (
-   -- * Functions
-   glUniformBuffer,
-   glGetUniformBufferSize,
-   glGetUniformOffset,
-   -- * Tokens
-   gl_MAX_VERTEX_BINDABLE_UNIFORMS,
-   gl_MAX_FRAGMENT_BINDABLE_UNIFORMS,
-   gl_MAX_GEOMETRY_BINDABLE_UNIFORMS,
-   gl_MAX_BINDABLE_UNIFORM_SIZE,
-   gl_UNIFORM_BUFFER_BINDING_EXT,
-   gl_UNIFORM_BUFFER_EXT
+  -- * Enums
+  gl_MAX_BINDABLE_UNIFORM_SIZE_EXT,
+  gl_MAX_FRAGMENT_BINDABLE_UNIFORMS_EXT,
+  gl_MAX_GEOMETRY_BINDABLE_UNIFORMS_EXT,
+  gl_MAX_VERTEX_BINDABLE_UNIFORMS_EXT,
+  gl_UNIFORM_BUFFER_BINDING_EXT,
+  gl_UNIFORM_BUFFER_EXT,
+  -- * Functions
+  glGetUniformBufferSizeEXT,
+  glGetUniformOffsetEXT,
+  glUniformBufferEXT
 ) where
 
-import Foreign.C.Types
-import Graphics.Rendering.OpenGL.Raw.Types
-import Foreign.Ptr ( FunPtr )
-import Graphics.Rendering.OpenGL.Raw.GetProcAddress ( getExtensionChecked )
-import System.IO.Unsafe ( unsafePerformIO )
-
-#include "HsOpenGLRaw.h"
-
-EXTENSION_ENTRY(dyn_glUniformBuffer,ptr_glUniformBuffer,"glUniformBuffer",glUniformBuffer,GLuint -> GLint -> GLuint -> IO ())
-EXTENSION_ENTRY(dyn_glGetUniformBufferSize,ptr_glGetUniformBufferSize,"glGetUniformBufferSize",glGetUniformBufferSize,GLuint -> GLint -> IO GLint)
-EXTENSION_ENTRY(dyn_glGetUniformOffset,ptr_glGetUniformOffset,"glGetUniformOffset",glGetUniformOffset,GLuint -> GLint -> IO GLintptr)
-
-gl_MAX_VERTEX_BINDABLE_UNIFORMS :: GLenum
-gl_MAX_VERTEX_BINDABLE_UNIFORMS = 0x8DE2
-
-gl_MAX_FRAGMENT_BINDABLE_UNIFORMS :: GLenum
-gl_MAX_FRAGMENT_BINDABLE_UNIFORMS = 0x8DE3
-
-gl_MAX_GEOMETRY_BINDABLE_UNIFORMS :: GLenum
-gl_MAX_GEOMETRY_BINDABLE_UNIFORMS = 0x8DE4
-
-gl_MAX_BINDABLE_UNIFORM_SIZE :: GLenum
-gl_MAX_BINDABLE_UNIFORM_SIZE = 0x8DED
-
--- | NOTE: The OpenGL 3.1 core has the same token with a different value, so we
--- use a suffix here.
-gl_UNIFORM_BUFFER_BINDING_EXT :: GLenum
-gl_UNIFORM_BUFFER_BINDING_EXT = 0x8DEF
-
--- | NOTE: The OpenGL 3.1 core has the same token with a different value, so we
--- use a suffix here.
-gl_UNIFORM_BUFFER_EXT :: GLenum
-gl_UNIFORM_BUFFER_EXT = 0x8DEE
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/BlendColor.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/BlendColor.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT/BlendColor.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/EXT/BlendColor.hs
@@ -1,28 +1,27 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.BlendColor
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All raw functions and tokens from the EXT_blend_color extension, see
--- <http://www.opengl.org/registry/specs/EXT/blend_color.txt>.
+-- The <https://www.opengl.org/registry/specs/EXT/blend_color.txt EXT_blend_color> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.EXT.BlendColor (
-   -- * Functions
-   glBlendColor,
-   -- * Tokens
-   gl_CONSTANT_COLOR,
-   gl_ONE_MINUS_CONSTANT_COLOR,
-   gl_CONSTANT_ALPHA,
-   gl_ONE_MINUS_CONSTANT_ALPHA,
-   gl_BLEND_COLOR
+  -- * Enums
+  gl_BLEND_COLOR_EXT,
+  gl_CONSTANT_ALPHA_EXT,
+  gl_CONSTANT_COLOR_EXT,
+  gl_ONE_MINUS_CONSTANT_ALPHA_EXT,
+  gl_ONE_MINUS_CONSTANT_COLOR_EXT,
+  -- * Functions
+  glBlendColorEXT
 ) where
 
-import Graphics.Rendering.OpenGL.Raw.Functions
 import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/BlendEquationSeparate.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/BlendEquationSeparate.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT/BlendEquationSeparate.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/EXT/BlendEquationSeparate.hs
@@ -1,24 +1,24 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.BlendEquationSeparate
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All raw functions and tokens from the EXT_blend_equation_separate extension, see
--- <http://www.opengl.org/registry/specs/EXT/blend_equation_separate.txt>.
+-- The <https://www.opengl.org/registry/specs/EXT/blend_equation_separate.txt EXT_blend_equation_separate> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.EXT.BlendEquationSeparate (
-   -- * Functions
-   glBlendEquationSeparate,
-   -- * Tokens
-   gl_BLEND_EQUATION_RGB,
-   gl_BLEND_EQUATION_ALPHA
+  -- * Enums
+  gl_BLEND_EQUATION_ALPHA_EXT,
+  gl_BLEND_EQUATION_RGB_EXT,
+  -- * Functions
+  glBlendEquationSeparateEXT
 ) where
 
-import Graphics.Rendering.OpenGL.Raw.Core32
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/BlendFuncSeparate.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/BlendFuncSeparate.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT/BlendFuncSeparate.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/EXT/BlendFuncSeparate.hs
@@ -1,26 +1,26 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.BlendFuncSeparate
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All raw functions and tokens from the EXT_blend_func_separate extension, see
--- <http://www.opengl.org/registry/specs/EXT/blend_func_separate.txt>.
+-- The <https://www.opengl.org/registry/specs/EXT/blend_func_separate.txt EXT_blend_func_separate> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.EXT.BlendFuncSeparate (
-   -- * Functions
-   glBlendFuncSeparate,
-   -- * Tokens
-   gl_BLEND_DST_RGB,
-   gl_BLEND_SRC_RGB,
-   gl_BLEND_DST_ALPHA,
-   gl_BLEND_SRC_ALPHA
+  -- * Enums
+  gl_BLEND_DST_ALPHA_EXT,
+  gl_BLEND_DST_RGB_EXT,
+  gl_BLEND_SRC_ALPHA_EXT,
+  gl_BLEND_SRC_RGB_EXT,
+  -- * Functions
+  glBlendFuncSeparateEXT
 ) where
 
-import Graphics.Rendering.OpenGL.Raw.Core32
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/BlendMinmax.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/BlendMinmax.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT/BlendMinmax.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/EXT/BlendMinmax.hs
@@ -1,27 +1,26 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.BlendMinmax
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All raw functions and tokens from the EXT_blend_minmax extension, see
--- <http://www.opengl.org/registry/specs/EXT/blend_minmax.txt>.
+-- The <https://www.opengl.org/registry/specs/EXT/blend_minmax.txt EXT_blend_minmax> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.EXT.BlendMinmax (
-   -- * Functions
-   glBlendEquation,
-   -- * Tokens
-   gl_FUNC_ADD,
-   gl_MIN,
-   gl_MAX,
-   gl_BLEND_EQUATION
+  -- * Enums
+  gl_BLEND_EQUATION_EXT,
+  gl_FUNC_ADD_EXT,
+  gl_MAX_EXT,
+  gl_MIN_EXT,
+  -- * Functions
+  glBlendEquationEXT
 ) where
 
-import Graphics.Rendering.OpenGL.Raw.Functions
 import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/BlendSubtract.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/BlendSubtract.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT/BlendSubtract.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/EXT/BlendSubtract.hs
@@ -1,22 +1,21 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.BlendSubtract
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All tokens from the EXT_blend_subtract extension, see
--- <http://www.opengl.org/registry/specs/EXT/blend_subtract.txt>.
+-- The <https://www.opengl.org/registry/specs/EXT/blend_subtract.txt EXT_blend_subtract> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.EXT.BlendSubtract (
-   -- * Tokens
-   gl_FUNC_SUBTRACT,
-   gl_FUNC_REVERSE_SUBTRACT
+  -- * Enums
+  gl_FUNC_REVERSE_SUBTRACT_EXT,
+  gl_FUNC_SUBTRACT_EXT
 ) where
 
-import Graphics.Rendering.OpenGL.Raw.Core32
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/CMYKA.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/CMYKA.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT/CMYKA.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/EXT/CMYKA.hs
@@ -1,36 +1,23 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.CMYKA
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All tokens from the EXT_cmyka extension, see
--- <http://www.opengl.org/registry/specs/EXT/cmyka.txt>.
+-- The <https://www.opengl.org/registry/specs/EXT/cmyka.txt EXT_cmyka> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.EXT.CMYKA (
-   -- * Tokens
-   gl_CMYK,
-   gl_CMYKA,
-   gl_PACK_CMYK_HINT,
-   gl_UNPACK_CMYK_HINT
+  -- * Enums
+  gl_CMYKA_EXT,
+  gl_CMYK_EXT,
+  gl_PACK_CMYK_HINT_EXT,
+  gl_UNPACK_CMYK_HINT_EXT
 ) where
 
-import Graphics.Rendering.OpenGL.Raw.Core32
-
-gl_CMYK :: GLenum
-gl_CMYK = 0x800C
-
-gl_CMYKA :: GLenum
-gl_CMYKA = 0x800D
-
-gl_PACK_CMYK_HINT :: GLenum
-gl_PACK_CMYK_HINT = 0x800E
-
-gl_UNPACK_CMYK_HINT :: GLenum
-gl_UNPACK_CMYK_HINT = 0x800F
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/ClipVolumeHint.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/ClipVolumeHint.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT/ClipVolumeHint.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/EXT/ClipVolumeHint.hs
@@ -1,24 +1,20 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.ClipVolumeHint
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All raw functions and tokens from the EXT_clip_volume_hint extension, see
--- <http://www.opengl.org/registry/specs/EXT/clip_volume_hint.txt>.
+-- The <https://www.opengl.org/registry/specs/EXT/clip_volume_hint.txt EXT_clip_volume_hint> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.EXT.ClipVolumeHint (
-   -- * Tokens
-   gl_CLIP_VOLUME_CLIPPING_HINT
+  -- * Enums
+  gl_CLIP_VOLUME_CLIPPING_HINT_EXT
 ) where
 
-import Graphics.Rendering.OpenGL.Raw.Core32
-
-gl_CLIP_VOLUME_CLIPPING_HINT :: GLenum
-gl_CLIP_VOLUME_CLIPPING_HINT = 0x80F0
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/ColorSubtable.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/ColorSubtable.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT/ColorSubtable.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/EXT/ColorSubtable.hs
@@ -1,22 +1,21 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.ColorSubtable
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All raw functions and tokens from the EXT_color_subtable extension, see
--- <http://www.opengl.org/registry/specs/EXT/color_subtable.txt>.
+-- The <https://www.opengl.org/registry/specs/EXT/color_subtable.txt EXT_color_subtable> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.EXT.ColorSubtable (
-   -- * Functions
-   glColorSubTable,
-   glCopyColorSubTable
+  -- * Functions
+  glColorSubTableEXT,
+  glCopyColorSubTableEXT
 ) where
 
-import Graphics.Rendering.OpenGL.Raw.ARB.Compatibility
+import Graphics.Rendering.OpenGL.Raw.Functions
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
@@ -1,42 +1,25 @@
-{-# LANGUAGE ForeignFunctionInterface, CPP #-}
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.CompiledVertexArray
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All raw functions and tokens from the EXT_compiled_vertex_array extension,
--- see
--- <http://www.opengl.org/registry/specs/EXT/compiled_vertex_array.txt>.
+-- The <https://www.opengl.org/registry/specs/EXT/compiled_vertex_array.txt EXT_compiled_vertex_array> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.EXT.CompiledVertexArray (
-   -- * Functions
-   glLockArrays,
-   glUnlockArrays,
-   -- * Tokens
-   gl_ARRAY_ELEMENT_LOCK_FIRST,
-   gl_ARRAY_ELEMENT_LOCK_COUNT
+  -- * Enums
+  gl_ARRAY_ELEMENT_LOCK_COUNT_EXT,
+  gl_ARRAY_ELEMENT_LOCK_FIRST_EXT,
+  -- * Functions
+  glLockArraysEXT,
+  glUnlockArraysEXT
 ) where
 
-import Foreign.C.Types
-import Graphics.Rendering.OpenGL.Raw.Core32
-import Foreign.Ptr ( FunPtr )
-import Graphics.Rendering.OpenGL.Raw.GetProcAddress ( getExtensionChecked )
-import System.IO.Unsafe ( unsafePerformIO )
-
-#include "HsOpenGLRaw.h"
-
-EXTENSION_ENTRY(dyn_glLockArrays,ptr_glLockArrays,"glLockArrays",glLockArrays,GLint -> GLsizei -> IO ())
-EXTENSION_ENTRY(dyn_glUnlockArrays,ptr_glUnlockArrays,"glUnlockArrays",glUnlockArrays,IO ())
-
-gl_ARRAY_ELEMENT_LOCK_FIRST :: GLenum
-gl_ARRAY_ELEMENT_LOCK_FIRST = 0x81A8
-
-gl_ARRAY_ELEMENT_LOCK_COUNT :: GLenum
-gl_ARRAY_ELEMENT_LOCK_COUNT = 0x81A9
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/Convolution.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/Convolution.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT/Convolution.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/EXT/Convolution.hs
@@ -1,54 +1,54 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.Convolution
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All raw functions and tokens from the EXT_convolution extension, see
--- <http://www.opengl.org/registry/specs/EXT/convolution.txt>.
+-- The <https://www.opengl.org/registry/specs/EXT/convolution.txt EXT_convolution> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.EXT.Convolution (
-   -- * Functions
-   glConvolutionFilter1D,
-   glConvolutionFilter2D,
-   glCopyConvolutionFilter1D,
-   glCopyConvolutionFilter2D,
-   glGetConvolutionFilter,
-   glSeparableFilter2D,
-   glGetSeparableFilter,
-   glConvolutionParameteri,
-   glConvolutionParameteriv,
-   glConvolutionParameterf,
-   glConvolutionParameterfv,
-   glGetConvolutionParameteriv,
-   glGetConvolutionParameterfv,
-   -- * Tokens
-   gl_CONVOLUTION_1D,
-   gl_CONVOLUTION_2D,
-   gl_SEPARABLE_2D,
-   gl_CONVOLUTION_BORDER_MODE,
-   gl_CONVOLUTION_FILTER_SCALE,
-   gl_CONVOLUTION_FILTER_BIAS,
-   gl_REDUCE,
-   gl_CONVOLUTION_FORMAT,
-   gl_CONVOLUTION_WIDTH,
-   gl_CONVOLUTION_HEIGHT,
-   gl_MAX_CONVOLUTION_WIDTH,
-   gl_MAX_CONVOLUTION_HEIGHT,
-   gl_POST_CONVOLUTION_RED_SCALE,
-   gl_POST_CONVOLUTION_GREEN_SCALE,
-   gl_POST_CONVOLUTION_BLUE_SCALE,
-   gl_POST_CONVOLUTION_ALPHA_SCALE,
-   gl_POST_CONVOLUTION_RED_BIAS,
-   gl_POST_CONVOLUTION_GREEN_BIAS,
-   gl_POST_CONVOLUTION_BLUE_BIAS,
-   gl_POST_CONVOLUTION_ALPHA_BIAS
+  -- * Enums
+  gl_CONVOLUTION_1D_EXT,
+  gl_CONVOLUTION_2D_EXT,
+  gl_CONVOLUTION_BORDER_MODE_EXT,
+  gl_CONVOLUTION_FILTER_BIAS_EXT,
+  gl_CONVOLUTION_FILTER_SCALE_EXT,
+  gl_CONVOLUTION_FORMAT_EXT,
+  gl_CONVOLUTION_HEIGHT_EXT,
+  gl_CONVOLUTION_WIDTH_EXT,
+  gl_MAX_CONVOLUTION_HEIGHT_EXT,
+  gl_MAX_CONVOLUTION_WIDTH_EXT,
+  gl_POST_CONVOLUTION_ALPHA_BIAS_EXT,
+  gl_POST_CONVOLUTION_ALPHA_SCALE_EXT,
+  gl_POST_CONVOLUTION_BLUE_BIAS_EXT,
+  gl_POST_CONVOLUTION_BLUE_SCALE_EXT,
+  gl_POST_CONVOLUTION_GREEN_BIAS_EXT,
+  gl_POST_CONVOLUTION_GREEN_SCALE_EXT,
+  gl_POST_CONVOLUTION_RED_BIAS_EXT,
+  gl_POST_CONVOLUTION_RED_SCALE_EXT,
+  gl_REDUCE_EXT,
+  gl_SEPARABLE_2D_EXT,
+  -- * Functions
+  glConvolutionFilter1DEXT,
+  glConvolutionFilter2DEXT,
+  glConvolutionParameterfEXT,
+  glConvolutionParameterfvEXT,
+  glConvolutionParameteriEXT,
+  glConvolutionParameterivEXT,
+  glCopyConvolutionFilter1DEXT,
+  glCopyConvolutionFilter2DEXT,
+  glGetConvolutionFilterEXT,
+  glGetConvolutionParameterfvEXT,
+  glGetConvolutionParameterivEXT,
+  glGetSeparableFilterEXT,
+  glSeparableFilter2DEXT
 ) where
 
-import Graphics.Rendering.OpenGL.Raw.ARB.Compatibility
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
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
@@ -1,129 +1,57 @@
-{-# LANGUAGE ForeignFunctionInterface, CPP #-}
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.CoordinateFrame
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All raw functions and tokens from the EXT_coordinate_frame extension, see
--- <http://www.opengl.org/registry/specs/EXT/coordinate_frame.txt>.
+-- The <https://www.opengl.org/registry/specs/EXT/coordinate_frame.txt EXT_coordinate_frame> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.EXT.CoordinateFrame (
-   -- * Functions
-   glTangent3b,
-   glTangent3d,
-   glTangent3f,
-   glTangent3i,
-   glTangent3s,
-   glTangent3bv,
-   glTangent3dv,
-   glTangent3fv,
-   glTangent3iv,
-   glTangent3sv,
-   glBinormal3b,
-   glBinormal3d,
-   glBinormal3f,
-   glBinormal3i,
-   glBinormal3s,
-   glBinormal3bv,
-   glBinormal3dv,
-   glBinormal3fv,
-   glBinormal3iv,
-   glBinormal3sv,
-   glTangentPointer,
-   glBinormalPointer,
-   -- * Tokens
-   gl_TANGENT_ARRAY,
-   gl_BINORMAL_ARRAY,
-   gl_CURRENT_TANGENT,
-   gl_CURRENT_BINORMAL,
-   gl_TANGENT_ARRAY_TYPE,
-   gl_TANGENT_ARRAY_STRIDE,
-   gl_BINORMAL_ARRAY_TYPE,
-   gl_BINORMAL_ARRAY_STRIDE,
-   gl_TANGENT_ARRAY_POINTER,
-   gl_BINORMAL_ARRAY_POINTER,
-   gl_MAP1_TANGENT,
-   gl_MAP2_TANGENT,
-   gl_MAP1_BINORMAL,
-   gl_MAP2_BINORMAL
+  -- * Enums
+  gl_BINORMAL_ARRAY_EXT,
+  gl_BINORMAL_ARRAY_POINTER_EXT,
+  gl_BINORMAL_ARRAY_STRIDE_EXT,
+  gl_BINORMAL_ARRAY_TYPE_EXT,
+  gl_CURRENT_BINORMAL_EXT,
+  gl_CURRENT_TANGENT_EXT,
+  gl_MAP1_BINORMAL_EXT,
+  gl_MAP1_TANGENT_EXT,
+  gl_MAP2_BINORMAL_EXT,
+  gl_MAP2_TANGENT_EXT,
+  gl_TANGENT_ARRAY_EXT,
+  gl_TANGENT_ARRAY_POINTER_EXT,
+  gl_TANGENT_ARRAY_STRIDE_EXT,
+  gl_TANGENT_ARRAY_TYPE_EXT,
+  -- * Functions
+  glBinormal3bEXT,
+  glBinormal3bvEXT,
+  glBinormal3dEXT,
+  glBinormal3dvEXT,
+  glBinormal3fEXT,
+  glBinormal3fvEXT,
+  glBinormal3iEXT,
+  glBinormal3ivEXT,
+  glBinormal3sEXT,
+  glBinormal3svEXT,
+  glBinormalPointerEXT,
+  glTangent3bEXT,
+  glTangent3bvEXT,
+  glTangent3dEXT,
+  glTangent3dvEXT,
+  glTangent3fEXT,
+  glTangent3fvEXT,
+  glTangent3iEXT,
+  glTangent3ivEXT,
+  glTangent3sEXT,
+  glTangent3svEXT,
+  glTangentPointerEXT
 ) where
 
-import Foreign.C.Types
-import Graphics.Rendering.OpenGL.Raw.Types
-import Foreign.Ptr ( Ptr, FunPtr )
-import Graphics.Rendering.OpenGL.Raw.GetProcAddress ( getExtensionChecked )
-import System.IO.Unsafe ( unsafePerformIO )
-
-#include "HsOpenGLRaw.h"
-
-EXTENSION_ENTRY(dyn_glTangent3b,ptr_glTangent3b,"glTangent3b",glTangent3b,GLbyte -> IO ())
-EXTENSION_ENTRY(dyn_glTangent3d,ptr_glTangent3d,"glTangent3d",glTangent3d,GLdouble -> IO ())
-EXTENSION_ENTRY(dyn_glTangent3f,ptr_glTangent3f,"glTangent3f",glTangent3f,GLfloat -> IO ())
-EXTENSION_ENTRY(dyn_glTangent3i,ptr_glTangent3i,"glTangent3i",glTangent3i,GLint -> IO ())
-EXTENSION_ENTRY(dyn_glTangent3s,ptr_glTangent3s,"glTangent3s",glTangent3s,GLshort -> IO ())
-EXTENSION_ENTRY(dyn_glTangent3bv,ptr_glTangent3bv,"glTangent3bv",glTangent3bv,Ptr GLbyte -> IO ())
-EXTENSION_ENTRY(dyn_glTangent3dv,ptr_glTangent3dv,"glTangent3dv",glTangent3dv,Ptr GLdouble -> IO ())
-EXTENSION_ENTRY(dyn_glTangent3fv,ptr_glTangent3fv,"glTangent3fv",glTangent3fv,Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(dyn_glTangent3iv,ptr_glTangent3iv,"glTangent3iv",glTangent3iv,Ptr GLint -> IO ())
-EXTENSION_ENTRY(dyn_glTangent3sv,ptr_glTangent3sv,"glTangent3sv",glTangent3sv,Ptr GLshort -> IO ())
-EXTENSION_ENTRY(dyn_glBinormal3b,ptr_glBinormal3b,"glBinormal3b",glBinormal3b,GLbyte -> IO ())
-EXTENSION_ENTRY(dyn_glBinormal3d,ptr_glBinormal3d,"glBinormal3d",glBinormal3d,GLdouble -> IO ())
-EXTENSION_ENTRY(dyn_glBinormal3f,ptr_glBinormal3f,"glBinormal3f",glBinormal3f,GLfloat -> IO ())
-EXTENSION_ENTRY(dyn_glBinormal3i,ptr_glBinormal3i,"glBinormal3i",glBinormal3i,GLint -> IO ())
-EXTENSION_ENTRY(dyn_glBinormal3s,ptr_glBinormal3s,"glBinormal3s",glBinormal3s,GLshort -> IO ())
-EXTENSION_ENTRY(dyn_glBinormal3bv,ptr_glBinormal3bv,"glBinormal3bv",glBinormal3bv,Ptr GLbyte -> IO ())
-EXTENSION_ENTRY(dyn_glBinormal3dv,ptr_glBinormal3dv,"glBinormal3dv",glBinormal3dv,Ptr GLdouble -> IO ())
-EXTENSION_ENTRY(dyn_glBinormal3fv,ptr_glBinormal3fv,"glBinormal3fv",glBinormal3fv,Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(dyn_glBinormal3iv,ptr_glBinormal3iv,"glBinormal3iv",glBinormal3iv,Ptr GLint -> IO ())
-EXTENSION_ENTRY(dyn_glBinormal3sv,ptr_glBinormal3sv,"glBinormal3sv",glBinormal3sv,Ptr GLshort -> IO ())
-EXTENSION_ENTRY(dyn_glTangentPointer,ptr_glTangentPointer,"glTangentPointer",glTangentPointer,GLenum -> GLsizei -> Ptr a -> IO ())
-EXTENSION_ENTRY(dyn_glBinormalPointer,ptr_glBinormalPointer,"glBinormalPointer",glBinormalPointer,GLenum -> GLsizei -> Ptr a -> IO ())
-
-gl_TANGENT_ARRAY :: GLenum
-gl_TANGENT_ARRAY = 0x8439
-
-gl_BINORMAL_ARRAY :: GLenum
-gl_BINORMAL_ARRAY = 0x843A
-
-gl_CURRENT_TANGENT :: GLenum
-gl_CURRENT_TANGENT = 0x843B
-
-gl_CURRENT_BINORMAL :: GLenum
-gl_CURRENT_BINORMAL = 0x843C
-
-gl_TANGENT_ARRAY_TYPE :: GLenum
-gl_TANGENT_ARRAY_TYPE = 0x843E
-
-gl_TANGENT_ARRAY_STRIDE :: GLenum
-gl_TANGENT_ARRAY_STRIDE = 0x843F
-
-gl_BINORMAL_ARRAY_TYPE :: GLenum
-gl_BINORMAL_ARRAY_TYPE = 0x8440
-
-gl_BINORMAL_ARRAY_STRIDE :: GLenum
-gl_BINORMAL_ARRAY_STRIDE = 0x8441
-
-gl_TANGENT_ARRAY_POINTER :: GLenum
-gl_TANGENT_ARRAY_POINTER = 0x8442
-
-gl_BINORMAL_ARRAY_POINTER :: GLenum
-gl_BINORMAL_ARRAY_POINTER = 0x8443
-
-gl_MAP1_TANGENT :: GLenum
-gl_MAP1_TANGENT = 0x8444
-
-gl_MAP2_TANGENT :: GLenum
-gl_MAP2_TANGENT = 0x8445
-
-gl_MAP1_BINORMAL :: GLenum
-gl_MAP1_BINORMAL = 0x8446
-
-gl_MAP2_BINORMAL :: GLenum
-gl_MAP2_BINORMAL = 0x8447
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/CopyTexture.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/CopyTexture.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT/CopyTexture.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/EXT/CopyTexture.hs
@@ -1,25 +1,24 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.CopyTexture
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All raw functions from the EXT_copy_texture extension, see
--- <http://www.opengl.org/registry/specs/EXT/copy_texture.txt>.
+-- The <https://www.opengl.org/registry/specs/EXT/copy_texture.txt EXT_copy_texture> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.EXT.CopyTexture (
-   -- * Functions
-   glCopyTexImage1D,
-   glCopyTexImage2D,
-   glCopyTexSubImage1D,
-   glCopyTexSubImage2D,
-   glCopyTexSubImage3D,
+  -- * Functions
+  glCopyTexImage1DEXT,
+  glCopyTexImage2DEXT,
+  glCopyTexSubImage1DEXT,
+  glCopyTexSubImage2DEXT,
+  glCopyTexSubImage3DEXT
 ) where
 
-import Graphics.Rendering.OpenGL.Raw.Core32
+import Graphics.Rendering.OpenGL.Raw.Functions
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
@@ -1,46 +1,26 @@
-{-# LANGUAGE ForeignFunctionInterface, CPP #-}
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.CullVertex
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All raw functions and tokens from the EXT_cull_vertex extension, see
--- <http://www.opengl.org/registry/specs/EXT/cull_vertex.txt>.
+-- The <https://www.opengl.org/registry/specs/EXT/cull_vertex.txt EXT_cull_vertex> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.EXT.CullVertex (
-   -- * Functions
-   glCullParameterfv,
-   glCullParameterdv,
-   -- * Tokens
-   gl_CULL_VERTEX,
-   gl_CULL_VERTEX_EYE_POSITION,
-   gl_CULL_VERTEX_OBJECT_POSITION
+  -- * Enums
+  gl_CULL_VERTEX_EXT,
+  gl_CULL_VERTEX_EYE_POSITION_EXT,
+  gl_CULL_VERTEX_OBJECT_POSITION_EXT,
+  -- * Functions
+  glCullParameterdvEXT,
+  glCullParameterfvEXT
 ) where
 
-import Foreign.C.Types
-import Graphics.Rendering.OpenGL.Raw.Core32
-import Foreign.Ptr ( Ptr, FunPtr )
-import Graphics.Rendering.OpenGL.Raw.GetProcAddress ( getExtensionChecked )
-import System.IO.Unsafe ( unsafePerformIO )
-
-#include "HsOpenGLRaw.h"
-
-EXTENSION_ENTRY(dyn_glCullParameterfv,ptr_glCullParameterfv,"glCullParameterfv",glCullParameterfv,GLenum -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(dyn_glCullParameterdv,ptr_glCullParameterdv,"glCullParameterdv",glCullParameterdv,GLenum -> Ptr GLdouble -> IO ())
-
-
-gl_CULL_VERTEX :: GLenum
-gl_CULL_VERTEX = 0x81AA
-
-gl_CULL_VERTEX_EYE_POSITION :: GLenum
-gl_CULL_VERTEX_EYE_POSITION = 0x81AB
-
-gl_CULL_VERTEX_OBJECT_POSITION :: GLenum
-gl_CULL_VERTEX_OBJECT_POSITION = 0x81AC
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/DebugLabel.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/DebugLabel.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/EXT/DebugLabel.hs
@@ -0,0 +1,31 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.DebugLabel
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/EXT/debug_label.txt EXT_debug_label> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.EXT.DebugLabel (
+  -- * Enums
+  gl_BUFFER_OBJECT_EXT,
+  gl_PROGRAM_OBJECT_EXT,
+  gl_PROGRAM_PIPELINE_OBJECT_EXT,
+  gl_QUERY_OBJECT_EXT,
+  gl_SAMPLER,
+  gl_SHADER_OBJECT_EXT,
+  gl_TRANSFORM_FEEDBACK,
+  gl_VERTEX_ARRAY_OBJECT_EXT,
+  -- * Functions
+  glGetObjectLabelEXT,
+  glLabelObjectEXT
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/DebugMarker.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/DebugMarker.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/EXT/DebugMarker.hs
@@ -0,0 +1,22 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.DebugMarker
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/EXT/debug_marker.txt EXT_debug_marker> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.EXT.DebugMarker (
+  -- * Functions
+  glInsertEventMarkerEXT,
+  glPopGroupMarkerEXT,
+  glPushGroupMarkerEXT
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Functions
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
@@ -1,39 +1,24 @@
-{-# LANGUAGE ForeignFunctionInterface, CPP #-}
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.DepthBoundsTest
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All raw functions and tokens from the EXT_depth_bounds_test extension, see
--- <http://www.opengl.org/registry/specs/EXT/depth_bounds_test.txt>.
+-- The <https://www.opengl.org/registry/specs/EXT/depth_bounds_test.txt EXT_depth_bounds_test> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.EXT.DepthBoundsTest (
-   -- * Functions
-   glDepthBounds,
-   -- * Tokens
-   gl_DEPTH_BOUNDS_TEST,
-   gl_DEPTH_BOUNDS
+  -- * Enums
+  gl_DEPTH_BOUNDS_EXT,
+  gl_DEPTH_BOUNDS_TEST_EXT,
+  -- * Functions
+  glDepthBoundsEXT
 ) where
 
-import Foreign.C.Types
-import Graphics.Rendering.OpenGL.Raw.Types
-import Foreign.Ptr ( FunPtr )
-import Graphics.Rendering.OpenGL.Raw.GetProcAddress ( getExtensionChecked )
-import System.IO.Unsafe ( unsafePerformIO )
-
-#include "HsOpenGLRaw.h"
-
-EXTENSION_ENTRY(dyn_glDepthBounds,ptr_glDepthBounds,"glDepthBounds",glDepthBounds,GLclampd -> GLclampd -> IO())
-
-gl_DEPTH_BOUNDS_TEST :: GLenum
-gl_DEPTH_BOUNDS_TEST = 0x8890
-
-gl_DEPTH_BOUNDS :: GLenum
-gl_DEPTH_BOUNDS = 0x8891
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
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
@@ -1,346 +1,279 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.DirectStateAccess
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All raw functions and tokens from the EXT_direct_state_access extension not
--- already in the OpenGL 3.1 core, see
--- <http://www.opengl.org/registry/specs/EXT/direct_state_access.txt>.
+-- The <https://www.opengl.org/registry/specs/EXT/direct_state_access.txt EXT_direct_state_access> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.EXT.DirectStateAccess (
-   -- * Functions
-   glClientAttribDefault,
-   glPushClientAttribDefault,
-   glMatrixLoadf,
-   glMatrixLoadd,
-   glMatrixMultf,
-   glMatrixMultd,
-   glMatrixLoadIdentity,
-   glMatrixRotatef,
-   glMatrixRotated,
-   glMatrixScalef,
-   glMatrixScaled,
-   glMatrixTranslatef,
-   glMatrixTranslated,
-   glMatrixOrtho,
-   glMatrixFrustum,
-   glMatrixPush,
-   glMatrixPop,
-   glTextureParameteri,
-   glTextureParameteriv,
-   glTextureParameterf,
-   glTextureParameterfv,
-   glTextureImage1D,
-   glTextureImage2D,
-   glTextureSubImage1D,
-   glTextureSubImage2D,
-   glCopyTextureImage1D,
-   glCopyTextureImage2D,
-   glCopyTextureSubImage1D,
-   glCopyTextureSubImage2D,
-   glGetTextureImage,
-   glGetTextureParameterfv,
-   glGetTextureParameteriv,
-   glGetTextureLevelParameterfv,
-   glGetTextureLevelParameteriv,
-   glTextureImage3D,
-   glTextureSubImage3D,
-   glCopyTextureSubImage3D,
-   glBindMultiTexture,
-   glMultiTexCoordPointer,
-   glMultiTexEnvf,
-   glMultiTexEnvfv,
-   glMultiTexEnvi,
-   glMultiTexEnviv,
-   glMultiTexGend,
-   glMultiTexGendv,
-   glMultiTexGenf,
-   glMultiTexGenfv,
-   glMultiTexGeni,
-   glMultiTexGeniv,
-   glGetMultiTexEnvfv,
-   glGetMultiTexEnviv,
-   glGetMultiTexGendv,
-   glGetMultiTexGenfv,
-   glGetMultiTexGeniv,
-   glMultiTexParameteri,
-   glMultiTexParameteriv,
-   glMultiTexParameterf,
-   glMultiTexParameterfv,
-   glMultiTexImage1D,
-   glMultiTexImage2D,
-   glMultiTexSubImage1D,
-   glMultiTexSubImage2D,
-   glCopyMultiTexImage1D,
-   glCopyMultiTexImage2D,
-   glCopyMultiTexSubImage1D,
-   glCopyMultiTexSubImage2D,
-   glGetMultiTexImage,
-   glGetMultiTexParameterfv,
-   glGetMultiTexParameteriv,
-   glGetMultiTexLevelParameterfv,
-   glGetMultiTexLevelParameteriv,
-   glMultiTexImage3D,
-   glMultiTexSubImage3D,
-   glCopyMultiTexSubImage3D,
-   glEnableClientStateIndexed,
-   glDisableClientStateIndexed,
-   glGetFloatIndexedv,
-   glGetDoubleIndexedv,
-   glGetPointerIndexedv,
-   glEnableIndexed,
-   glDisableIndexed,
-   glIsEnabledIndexed,
-   glGetIntegerIndexedv,
-   glGetBooleanIndexedv,
-   glNamedProgramString,
-   glNamedProgramLocalParameter4d,
-   glNamedProgramLocalParameter4dv,
-   glNamedProgramLocalParameter4f,
-   glNamedProgramLocalParameter4fv,
-   glGetNamedProgramLocalParameterdv,
-   glGetNamedProgramLocalParameterfv,
-   glGetNamedProgramiv,
-   glGetNamedProgramString,
-   glCompressedTextureImage3D,
-   glCompressedTextureImage2D,
-   glCompressedTextureImage1D,
-   glCompressedTextureSubImage3D,
-   glCompressedTextureSubImage2D,
-   glCompressedTextureSubImage1D,
-   glGetCompressedTextureImage,
-   glCompressedMultiTexImage3D,
-   glCompressedMultiTexImage2D,
-   glCompressedMultiTexImage1D,
-   glCompressedMultiTexSubImage3D,
-   glCompressedMultiTexSubImage2D,
-   glCompressedMultiTexSubImage1D,
-   glGetCompressedMultiTexImage,
-   glMatrixLoadTransposef,
-   glMatrixLoadTransposed,
-   glMatrixMultTransposef,
-   glMatrixMultTransposed,
-   glNamedBufferData,
-   glNamedBufferSubData,
-   glMapNamedBuffer,
-   glUnmapNamedBuffer,
-   glGetNamedBufferParameteriv,
-   glGetNamedBufferPointerv,
-   glGetNamedBufferSubData,
-   glProgramUniform1f,
-   glProgramUniform2f,
-   glProgramUniform3f,
-   glProgramUniform4f,
-   glProgramUniform1i,
-   glProgramUniform2i,
-   glProgramUniform3i,
-   glProgramUniform4i,
-   glProgramUniform1fv,
-   glProgramUniform2fv,
-   glProgramUniform3fv,
-   glProgramUniform4fv,
-   glProgramUniform1iv,
-   glProgramUniform2iv,
-   glProgramUniform3iv,
-   glProgramUniform4iv,
-   glProgramUniformMatrix2fv,
-   glProgramUniformMatrix3fv,
-   glProgramUniformMatrix4fv,
-   glProgramUniformMatrix2x3fv,
-   glProgramUniformMatrix3x2fv,
-   glProgramUniformMatrix2x4fv,
-   glProgramUniformMatrix4x2fv,
-   glProgramUniformMatrix3x4fv,
-   glProgramUniformMatrix4x3fv,
-   glTextureBuffer,
-   glMultiTexBuffer,
-   glTextureParameterIiv,
-   glTextureParameterIuiv,
-   glGetTextureParameterIiv,
-   glGetTextureParameterIuiv,
-   glMultiTexParameterIiv,
-   glMultiTexParameterIuiv,
-   glGetMultiTexParameterIiv,
-   glGetMultiTexParameterIuiv,
-   glProgramUniform1ui,
-   glProgramUniform2ui,
-   glProgramUniform3ui,
-   glProgramUniform4ui,
-   glProgramUniform1uiv,
-   glProgramUniform2uiv,
-   glProgramUniform3uiv,
-   glProgramUniform4uiv,
-   glNamedProgramLocalParameters4fv,
-   glNamedProgramLocalParameterI4i,
-   glNamedProgramLocalParameterI4iv,
-   glNamedProgramLocalParametersI4iv,
-   glNamedProgramLocalParameterI4ui,
-   glNamedProgramLocalParameterI4uiv,
-   glNamedProgramLocalParametersI4uiv,
-   glGetNamedProgramLocalParameterIiv,
-   glGetNamedProgramLocalParameterIuiv,
-   glNamedRenderbufferStorage,
-   glGetNamedRenderbufferParameteriv,
-   glNamedRenderbufferStorageMultisample,
-   glNamedRenderbufferStorageMultisampleCoverage,
-   glCheckNamedFramebufferStatus,
-   glNamedFramebufferTexture1D,
-   glNamedFramebufferTexture2D,
-   glNamedFramebufferTexture3D,
-   glNamedFramebufferRenderbuffer,
-   glGetNamedFramebufferAttachmentParameteriv,
-   glGenerateTextureMipmap,
-   glGenerateMultiTexMipmap,
-   glFramebufferDrawBuffer,
-   glFramebufferDrawBuffers,
-   glFramebufferReadBuffer,
-   glGetFramebufferParameteriv,
-   glNamedFramebufferTexture,
-   glNamedFramebufferTextureLayer,
-   glNamedFramebufferTextureFace,
-   glTextureRenderbuffer,
-   glMultiTexRenderbuffer,
-   -- * Tokens
-   gl_PROGRAM_MATRIX,
-   gl_TRANSPOSE_PROGRAM_MATRIX,
-   gl_PROGRAM_MATRIX_STACK_DEPTH
+  -- * Enums
+  gl_PROGRAM_MATRIX_EXT,
+  gl_PROGRAM_MATRIX_STACK_DEPTH_EXT,
+  gl_TRANSPOSE_PROGRAM_MATRIX_EXT,
+  -- * Functions
+  glBindMultiTextureEXT,
+  glCheckNamedFramebufferStatusEXT,
+  glClearNamedBufferDataEXT,
+  glClearNamedBufferSubDataEXT,
+  glClientAttribDefaultEXT,
+  glCompressedMultiTexImage1DEXT,
+  glCompressedMultiTexImage2DEXT,
+  glCompressedMultiTexImage3DEXT,
+  glCompressedMultiTexSubImage1DEXT,
+  glCompressedMultiTexSubImage2DEXT,
+  glCompressedMultiTexSubImage3DEXT,
+  glCompressedTextureImage1DEXT,
+  glCompressedTextureImage2DEXT,
+  glCompressedTextureImage3DEXT,
+  glCompressedTextureSubImage1DEXT,
+  glCompressedTextureSubImage2DEXT,
+  glCompressedTextureSubImage3DEXT,
+  glCopyMultiTexImage1DEXT,
+  glCopyMultiTexImage2DEXT,
+  glCopyMultiTexSubImage1DEXT,
+  glCopyMultiTexSubImage2DEXT,
+  glCopyMultiTexSubImage3DEXT,
+  glCopyTextureImage1DEXT,
+  glCopyTextureImage2DEXT,
+  glCopyTextureSubImage1DEXT,
+  glCopyTextureSubImage2DEXT,
+  glCopyTextureSubImage3DEXT,
+  glDisableClientStateIndexedEXT,
+  glDisableClientStateiEXT,
+  glDisableIndexedEXT,
+  glDisableVertexArrayAttribEXT,
+  glDisableVertexArrayEXT,
+  glEnableClientStateIndexedEXT,
+  glEnableClientStateiEXT,
+  glEnableIndexedEXT,
+  glEnableVertexArrayAttribEXT,
+  glEnableVertexArrayEXT,
+  glFlushMappedNamedBufferRangeEXT,
+  glFramebufferDrawBufferEXT,
+  glFramebufferDrawBuffersEXT,
+  glFramebufferReadBufferEXT,
+  glGenerateMultiTexMipmapEXT,
+  glGenerateTextureMipmapEXT,
+  glGetBooleanIndexedvEXT,
+  glGetCompressedMultiTexImageEXT,
+  glGetCompressedTextureImageEXT,
+  glGetDoubleIndexedvEXT,
+  glGetDoublei_vEXT,
+  glGetFloatIndexedvEXT,
+  glGetFloati_vEXT,
+  glGetFramebufferParameterivEXT,
+  glGetIntegerIndexedvEXT,
+  glGetMultiTexEnvfvEXT,
+  glGetMultiTexEnvivEXT,
+  glGetMultiTexGendvEXT,
+  glGetMultiTexGenfvEXT,
+  glGetMultiTexGenivEXT,
+  glGetMultiTexImageEXT,
+  glGetMultiTexLevelParameterfvEXT,
+  glGetMultiTexLevelParameterivEXT,
+  glGetMultiTexParameterIivEXT,
+  glGetMultiTexParameterIuivEXT,
+  glGetMultiTexParameterfvEXT,
+  glGetMultiTexParameterivEXT,
+  glGetNamedBufferParameterivEXT,
+  glGetNamedBufferPointervEXT,
+  glGetNamedBufferSubDataEXT,
+  glGetNamedFramebufferAttachmentParameterivEXT,
+  glGetNamedFramebufferParameterivEXT,
+  glGetNamedProgramLocalParameterIivEXT,
+  glGetNamedProgramLocalParameterIuivEXT,
+  glGetNamedProgramLocalParameterdvEXT,
+  glGetNamedProgramLocalParameterfvEXT,
+  glGetNamedProgramStringEXT,
+  glGetNamedProgramivEXT,
+  glGetNamedRenderbufferParameterivEXT,
+  glGetPointerIndexedvEXT,
+  glGetPointeri_vEXT,
+  glGetTextureImageEXT,
+  glGetTextureLevelParameterfvEXT,
+  glGetTextureLevelParameterivEXT,
+  glGetTextureParameterIivEXT,
+  glGetTextureParameterIuivEXT,
+  glGetTextureParameterfvEXT,
+  glGetTextureParameterivEXT,
+  glGetVertexArrayIntegeri_vEXT,
+  glGetVertexArrayIntegervEXT,
+  glGetVertexArrayPointeri_vEXT,
+  glGetVertexArrayPointervEXT,
+  glIsEnabledIndexedEXT,
+  glMapNamedBufferEXT,
+  glMapNamedBufferRangeEXT,
+  glMatrixFrustumEXT,
+  glMatrixLoadIdentityEXT,
+  glMatrixLoadTransposedEXT,
+  glMatrixLoadTransposefEXT,
+  glMatrixLoaddEXT,
+  glMatrixLoadfEXT,
+  glMatrixMultTransposedEXT,
+  glMatrixMultTransposefEXT,
+  glMatrixMultdEXT,
+  glMatrixMultfEXT,
+  glMatrixOrthoEXT,
+  glMatrixPopEXT,
+  glMatrixPushEXT,
+  glMatrixRotatedEXT,
+  glMatrixRotatefEXT,
+  glMatrixScaledEXT,
+  glMatrixScalefEXT,
+  glMatrixTranslatedEXT,
+  glMatrixTranslatefEXT,
+  glMultiTexBufferEXT,
+  glMultiTexCoordPointerEXT,
+  glMultiTexEnvfEXT,
+  glMultiTexEnvfvEXT,
+  glMultiTexEnviEXT,
+  glMultiTexEnvivEXT,
+  glMultiTexGendEXT,
+  glMultiTexGendvEXT,
+  glMultiTexGenfEXT,
+  glMultiTexGenfvEXT,
+  glMultiTexGeniEXT,
+  glMultiTexGenivEXT,
+  glMultiTexImage1DEXT,
+  glMultiTexImage2DEXT,
+  glMultiTexImage3DEXT,
+  glMultiTexParameterIivEXT,
+  glMultiTexParameterIuivEXT,
+  glMultiTexParameterfEXT,
+  glMultiTexParameterfvEXT,
+  glMultiTexParameteriEXT,
+  glMultiTexParameterivEXT,
+  glMultiTexRenderbufferEXT,
+  glMultiTexSubImage1DEXT,
+  glMultiTexSubImage2DEXT,
+  glMultiTexSubImage3DEXT,
+  glNamedBufferDataEXT,
+  glNamedBufferStorageEXT,
+  glNamedBufferSubDataEXT,
+  glNamedCopyBufferSubDataEXT,
+  glNamedFramebufferParameteriEXT,
+  glNamedFramebufferRenderbufferEXT,
+  glNamedFramebufferTexture1DEXT,
+  glNamedFramebufferTexture2DEXT,
+  glNamedFramebufferTexture3DEXT,
+  glNamedFramebufferTextureEXT,
+  glNamedFramebufferTextureFaceEXT,
+  glNamedFramebufferTextureLayerEXT,
+  glNamedProgramLocalParameter4dEXT,
+  glNamedProgramLocalParameter4dvEXT,
+  glNamedProgramLocalParameter4fEXT,
+  glNamedProgramLocalParameter4fvEXT,
+  glNamedProgramLocalParameterI4iEXT,
+  glNamedProgramLocalParameterI4ivEXT,
+  glNamedProgramLocalParameterI4uiEXT,
+  glNamedProgramLocalParameterI4uivEXT,
+  glNamedProgramLocalParameters4fvEXT,
+  glNamedProgramLocalParametersI4ivEXT,
+  glNamedProgramLocalParametersI4uivEXT,
+  glNamedProgramStringEXT,
+  glNamedRenderbufferStorageEXT,
+  glNamedRenderbufferStorageMultisampleCoverageEXT,
+  glNamedRenderbufferStorageMultisampleEXT,
+  glProgramUniform1dEXT,
+  glProgramUniform1dvEXT,
+  glProgramUniform1fEXT,
+  glProgramUniform1fvEXT,
+  glProgramUniform1iEXT,
+  glProgramUniform1ivEXT,
+  glProgramUniform1uiEXT,
+  glProgramUniform1uivEXT,
+  glProgramUniform2dEXT,
+  glProgramUniform2dvEXT,
+  glProgramUniform2fEXT,
+  glProgramUniform2fvEXT,
+  glProgramUniform2iEXT,
+  glProgramUniform2ivEXT,
+  glProgramUniform2uiEXT,
+  glProgramUniform2uivEXT,
+  glProgramUniform3dEXT,
+  glProgramUniform3dvEXT,
+  glProgramUniform3fEXT,
+  glProgramUniform3fvEXT,
+  glProgramUniform3iEXT,
+  glProgramUniform3ivEXT,
+  glProgramUniform3uiEXT,
+  glProgramUniform3uivEXT,
+  glProgramUniform4dEXT,
+  glProgramUniform4dvEXT,
+  glProgramUniform4fEXT,
+  glProgramUniform4fvEXT,
+  glProgramUniform4iEXT,
+  glProgramUniform4ivEXT,
+  glProgramUniform4uiEXT,
+  glProgramUniform4uivEXT,
+  glProgramUniformMatrix2dvEXT,
+  glProgramUniformMatrix2fvEXT,
+  glProgramUniformMatrix2x3dvEXT,
+  glProgramUniformMatrix2x3fvEXT,
+  glProgramUniformMatrix2x4dvEXT,
+  glProgramUniformMatrix2x4fvEXT,
+  glProgramUniformMatrix3dvEXT,
+  glProgramUniformMatrix3fvEXT,
+  glProgramUniformMatrix3x2dvEXT,
+  glProgramUniformMatrix3x2fvEXT,
+  glProgramUniformMatrix3x4dvEXT,
+  glProgramUniformMatrix3x4fvEXT,
+  glProgramUniformMatrix4dvEXT,
+  glProgramUniformMatrix4fvEXT,
+  glProgramUniformMatrix4x2dvEXT,
+  glProgramUniformMatrix4x2fvEXT,
+  glProgramUniformMatrix4x3dvEXT,
+  glProgramUniformMatrix4x3fvEXT,
+  glPushClientAttribDefaultEXT,
+  glTextureBufferEXT,
+  glTextureBufferRangeEXT,
+  glTextureImage1DEXT,
+  glTextureImage2DEXT,
+  glTextureImage3DEXT,
+  glTexturePageCommitmentEXT,
+  glTextureParameterIivEXT,
+  glTextureParameterIuivEXT,
+  glTextureParameterfEXT,
+  glTextureParameterfvEXT,
+  glTextureParameteriEXT,
+  glTextureParameterivEXT,
+  glTextureRenderbufferEXT,
+  glTextureStorage1DEXT,
+  glTextureStorage2DEXT,
+  glTextureStorage2DMultisampleEXT,
+  glTextureStorage3DEXT,
+  glTextureStorage3DMultisampleEXT,
+  glTextureSubImage1DEXT,
+  glTextureSubImage2DEXT,
+  glTextureSubImage3DEXT,
+  glUnmapNamedBufferEXT,
+  glVertexArrayBindVertexBufferEXT,
+  glVertexArrayColorOffsetEXT,
+  glVertexArrayEdgeFlagOffsetEXT,
+  glVertexArrayFogCoordOffsetEXT,
+  glVertexArrayIndexOffsetEXT,
+  glVertexArrayMultiTexCoordOffsetEXT,
+  glVertexArrayNormalOffsetEXT,
+  glVertexArraySecondaryColorOffsetEXT,
+  glVertexArrayTexCoordOffsetEXT,
+  glVertexArrayVertexAttribBindingEXT,
+  glVertexArrayVertexAttribDivisorEXT,
+  glVertexArrayVertexAttribFormatEXT,
+  glVertexArrayVertexAttribIFormatEXT,
+  glVertexArrayVertexAttribIOffsetEXT,
+  glVertexArrayVertexAttribLFormatEXT,
+  glVertexArrayVertexAttribLOffsetEXT,
+  glVertexArrayVertexAttribOffsetEXT,
+  glVertexArrayVertexBindingDivisorEXT,
+  glVertexArrayVertexOffsetEXT
 ) where
 
-import Graphics.Rendering.OpenGL.Raw.Types
-import Graphics.Rendering.OpenGL.Raw.Functions
 import Graphics.Rendering.OpenGL.Raw.Tokens
-
-glClientAttribDefault = glClientAttribDefaultEXT
-glPushClientAttribDefault = glPushClientAttribDefaultEXT
-glMatrixLoadf = glMatrixLoadfEXT
-glMatrixLoadd = glMatrixLoaddEXT
-glMatrixMultf = glMatrixMultfEXT
-glMatrixMultd = glMatrixMultdEXT
-glMatrixLoadIdentity = glMatrixLoadIdentityEXT
-glMatrixRotatef = glMatrixRotatefEXT
-glMatrixRotated = glMatrixRotatedEXT
-glMatrixScalef = glMatrixScalefEXT
-glMatrixScaled = glMatrixScaledEXT
-glMatrixTranslatef = glMatrixTranslatefEXT
-glMatrixTranslated = glMatrixTranslatedEXT
-glMatrixOrtho = glMatrixOrthoEXT
-glMatrixFrustum = glMatrixFrustumEXT
-glMatrixPush = glMatrixPushEXT
-glMatrixPop = glMatrixPopEXT
-glTextureImage1D = glTextureImage1DEXT
-glTextureImage2D = glTextureImage2DEXT
-glCopyTextureImage1D = glCopyTextureImage1DEXT
-glCopyTextureImage2D = glCopyTextureImage2DEXT
-glTextureImage3D = glTextureImage3DEXT
-glBindMultiTexture = glBindMultiTextureEXT
-glMultiTexCoordPointer = glMultiTexCoordPointerEXT
-glMultiTexEnvf = glMultiTexEnvfEXT
-glMultiTexEnvfv = glMultiTexEnvfvEXT
-glMultiTexEnvi = glMultiTexEnviEXT
-glMultiTexEnviv = glMultiTexEnvivEXT
-glMultiTexGend = glMultiTexGendEXT
-glMultiTexGendv = glMultiTexGendvEXT
-glMultiTexGenf = glMultiTexGenfEXT
-glMultiTexGenfv = glMultiTexGenfvEXT
-glMultiTexGeni = glMultiTexGeniEXT
-glMultiTexGeniv = glMultiTexGenivEXT
-glGetMultiTexEnvfv = glGetMultiTexEnvfvEXT
-glGetMultiTexEnviv = glGetMultiTexEnvivEXT
-glGetMultiTexGendv = glGetMultiTexGendvEXT
-glGetMultiTexGenfv = glGetMultiTexGenfvEXT
-glGetMultiTexGeniv = glGetMultiTexGenivEXT
-glMultiTexParameteri = glMultiTexParameteriEXT
-glMultiTexParameteriv = glMultiTexParameterivEXT
-glMultiTexParameterf = glMultiTexParameterfEXT
-glMultiTexParameterfv = glMultiTexParameterfvEXT
-glMultiTexImage1D = glMultiTexImage1DEXT
-glMultiTexImage2D = glMultiTexImage2DEXT
-glMultiTexSubImage1D = glMultiTexSubImage1DEXT
-glMultiTexSubImage2D = glMultiTexSubImage2DEXT
-glCopyMultiTexImage1D = glCopyMultiTexImage1DEXT
-glCopyMultiTexImage2D = glCopyMultiTexImage2DEXT
-glCopyMultiTexSubImage1D = glCopyMultiTexSubImage1DEXT
-glCopyMultiTexSubImage2D = glCopyMultiTexSubImage2DEXT
-glGetMultiTexImage = glGetMultiTexImageEXT
-glGetMultiTexParameterfv = glGetMultiTexParameterfvEXT
-glGetMultiTexParameteriv = glGetMultiTexParameterivEXT
-glGetMultiTexLevelParameterfv = glGetMultiTexLevelParameterfvEXT
-glGetMultiTexLevelParameteriv = glGetMultiTexLevelParameterivEXT
-glMultiTexImage3D = glMultiTexImage3DEXT
-glMultiTexSubImage3D = glMultiTexSubImage3DEXT
-glCopyMultiTexSubImage3D = glCopyMultiTexSubImage3DEXT
-glEnableClientStateIndexed = glEnableClientStateIndexedEXT
-glDisableClientStateIndexed = glDisableClientStateIndexedEXT
-glGetFloatIndexedv = glGetFloatIndexedvEXT
-glGetDoubleIndexedv = glGetDoubleIndexedvEXT
-glGetPointerIndexedv = glGetPointerIndexedvEXT
-glEnableIndexed = glEnableIndexedEXT
-glDisableIndexed = glDisableIndexedEXT
-glIsEnabledIndexed = glIsEnabledIndexedEXT
-glGetIntegerIndexedv = glGetIntegerIndexedvEXT
-glGetBooleanIndexedv = glGetBooleanIndexedvEXT
-glNamedProgramString = glNamedProgramStringEXT
-glNamedProgramLocalParameter4d = glNamedProgramLocalParameter4dEXT
-glNamedProgramLocalParameter4dv = glNamedProgramLocalParameter4dvEXT
-glNamedProgramLocalParameter4f = glNamedProgramLocalParameter4fEXT
-glNamedProgramLocalParameter4fv = glNamedProgramLocalParameter4fvEXT
-glGetNamedProgramLocalParameterdv = glGetNamedProgramLocalParameterdvEXT
-glGetNamedProgramLocalParameterfv = glGetNamedProgramLocalParameterfvEXT
-glGetNamedProgramiv = glGetNamedProgramivEXT
-glGetNamedProgramString = glGetNamedProgramStringEXT
-glCompressedTextureImage3D = glCompressedTextureImage3DEXT
-glCompressedTextureImage2D = glCompressedTextureImage2DEXT
-glCompressedTextureImage1D = glCompressedTextureImage1DEXT
-glCompressedMultiTexImage3D = glCompressedMultiTexImage3DEXT
-glCompressedMultiTexImage2D = glCompressedMultiTexImage2DEXT
-glCompressedMultiTexImage1D = glCompressedMultiTexImage1DEXT
-glCompressedMultiTexSubImage3D = glCompressedMultiTexSubImage3DEXT
-glCompressedMultiTexSubImage2D = glCompressedMultiTexSubImage2DEXT
-glCompressedMultiTexSubImage1D = glCompressedMultiTexSubImage1DEXT
-glGetCompressedMultiTexImage = glGetCompressedMultiTexImageEXT
-glMatrixLoadTransposef = glMatrixLoadTransposefEXT
-glMatrixLoadTransposed = glMatrixLoadTransposedEXT
-glMatrixMultTransposef = glMatrixMultTransposefEXT
-glMatrixMultTransposed = glMatrixMultTransposedEXT
-glMultiTexBuffer = glMultiTexBufferEXT
-glMultiTexParameterIiv = glMultiTexParameterIivEXT
-glMultiTexParameterIuiv = glMultiTexParameterIuivEXT
-glGetMultiTexParameterIiv = glGetMultiTexParameterIivEXT
-glGetMultiTexParameterIuiv = glGetMultiTexParameterIuivEXT
-glNamedProgramLocalParameters4fv = glNamedProgramLocalParameters4fvEXT
-glNamedProgramLocalParameterI4i = glNamedProgramLocalParameterI4iEXT
-glNamedProgramLocalParameterI4iv = glNamedProgramLocalParameterI4ivEXT
-glNamedProgramLocalParametersI4iv = glNamedProgramLocalParametersI4ivEXT
-glNamedProgramLocalParameterI4ui = glNamedProgramLocalParameterI4uiEXT
-glNamedProgramLocalParameterI4uiv = glNamedProgramLocalParameterI4uivEXT
-glNamedProgramLocalParametersI4uiv = glNamedProgramLocalParametersI4uivEXT
-glGetNamedProgramLocalParameterIiv = glGetNamedProgramLocalParameterIivEXT
-glGetNamedProgramLocalParameterIuiv = glGetNamedProgramLocalParameterIuivEXT
-glNamedRenderbufferStorageMultisampleCoverage = glNamedRenderbufferStorageMultisampleCoverageEXT
-glNamedFramebufferTexture1D = glNamedFramebufferTexture1DEXT
-glNamedFramebufferTexture2D = glNamedFramebufferTexture2DEXT
-glNamedFramebufferTexture3D = glNamedFramebufferTexture3DEXT
-glGenerateMultiTexMipmap = glGenerateMultiTexMipmapEXT
-glFramebufferDrawBuffer = glFramebufferDrawBufferEXT
-glFramebufferDrawBuffers = glFramebufferDrawBuffersEXT
-glFramebufferReadBuffer = glFramebufferReadBufferEXT
-glNamedFramebufferTextureFace = glNamedFramebufferTextureFaceEXT
-glTextureRenderbuffer = glTextureRenderbufferEXT
-glMultiTexRenderbuffer = glMultiTexRenderbufferEXT
-
-
-gl_PROGRAM_MATRIX :: GLenum
-gl_PROGRAM_MATRIX = gl_PROGRAM_MATRIX_EXT
-
-gl_TRANSPOSE_PROGRAM_MATRIX :: GLenum
-gl_TRANSPOSE_PROGRAM_MATRIX = gl_TRANSPOSE_PROGRAM_MATRIX_EXT
-
-gl_PROGRAM_MATRIX_STACK_DEPTH :: GLenum
-gl_PROGRAM_MATRIX_STACK_DEPTH = gl_PROGRAM_MATRIX_STACK_DEPTH_EXT
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/DrawBuffers2.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/DrawBuffers2.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT/DrawBuffers2.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/EXT/DrawBuffers2.hs
@@ -1,36 +1,25 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.DrawBuffers2
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All raw functions from the EXT_draw_buffers2 extension, see
--- <http://www.opengl.org/registry/specs/EXT/draw_buffers2.txt>.
+-- The <https://www.opengl.org/registry/specs/EXT/draw_buffers2.txt EXT_draw_buffers2> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.EXT.DrawBuffers2 (
-   -- * Functions
-   glColorMaskIndexed,
-   glGetBooleanIndexedv,
-   glGetIntegerIndexedv,
-   glEnableIndexed,
-   glDisableIndexed,
-   glIsEnabledIndexed
+  -- * Functions
+  glColorMaskIndexedEXT,
+  glDisableIndexedEXT,
+  glEnableIndexedEXT,
+  glGetBooleanIndexedvEXT,
+  glGetIntegerIndexedvEXT,
+  glIsEnabledIndexedEXT
 ) where
 
-import Graphics.Rendering.OpenGL.Raw.Core31
-import Graphics.Rendering.OpenGL.Raw.EXT.DirectStateAccess
-
-glColorMaskIndexed :: GLuint -> GLboolean -> GLboolean -> GLboolean -> GLboolean -> IO ()
-glColorMaskIndexed = glColorMaski
-
--- glGetBooleanIndexedv = glGetBooleani_v
--- glGetIntegerIndexedv = glGetIntegeri_v
--- glEnableIndexed = glEnablei
--- glDisableIndexed = glDisablei
--- glIsEnabledIndexed = glIsEnabledi
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/DrawInstanced.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/DrawInstanced.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/EXT/DrawInstanced.hs
@@ -0,0 +1,21 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.DrawInstanced
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/EXT/draw_instanced.txt EXT_draw_instanced> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.EXT.DrawInstanced (
+  -- * Functions
+  glDrawArraysInstancedEXT,
+  glDrawElementsInstancedEXT
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/DrawRangeElements.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/DrawRangeElements.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT/DrawRangeElements.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/EXT/DrawRangeElements.hs
@@ -1,24 +1,24 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.DrawRangeElements
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All raw functions and tokens from the EXT_draw_range_elements extension, see
--- <http://www.opengl.org/registry/specs/EXT/draw_range_elements.txt>.
+-- The <https://www.opengl.org/registry/specs/EXT/draw_range_elements.txt EXT_draw_range_elements> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.EXT.DrawRangeElements (
-   -- * Functions
-   glDrawRangeElements,
-   -- * Tokens
-   gl_MAX_ELEMENTS_VERTICES,
-   gl_MAX_ELEMENTS_INDICES
+  -- * Enums
+  gl_MAX_ELEMENTS_INDICES_EXT,
+  gl_MAX_ELEMENTS_VERTICES_EXT,
+  -- * Functions
+  glDrawRangeElementsEXT
 ) where
 
-import Graphics.Rendering.OpenGL.Raw.Core32
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/FogCoord.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/FogCoord.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT/FogCoord.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/EXT/FogCoord.hs
@@ -1,34 +1,34 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.FogCoord
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All raw functions and tokens from the EXT_fog_coord extension, see
--- <http://www.opengl.org/registry/specs/EXT/fog_coord.txt>.
+-- The <https://www.opengl.org/registry/specs/EXT/fog_coord.txt EXT_fog_coord> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.EXT.FogCoord (
-   -- * Functions
-   glFogCoordf,
-   glFogCoordd,
-   glFogCoordfv,
-   glFogCoorddv,
-   glFogCoordPointer,
-   -- * Tokens
-   gl_FOG_COORDINATE_SOURCE,
-   gl_FOG_COORDINATE,
-   gl_FRAGMENT_DEPTH,
-   gl_CURRENT_FOG_COORDINATE,
-   gl_FOG_COORDINATE_ARRAY_TYPE,
-   gl_FOG_COORDINATE_ARRAY_STRIDE,
-   gl_FOG_COORDINATE_ARRAY_POINTER,
-   gl_FOG_COORDINATE_ARRAY
+  -- * Enums
+  gl_CURRENT_FOG_COORDINATE_EXT,
+  gl_FOG_COORDINATE_ARRAY_EXT,
+  gl_FOG_COORDINATE_ARRAY_POINTER_EXT,
+  gl_FOG_COORDINATE_ARRAY_STRIDE_EXT,
+  gl_FOG_COORDINATE_ARRAY_TYPE_EXT,
+  gl_FOG_COORDINATE_EXT,
+  gl_FOG_COORDINATE_SOURCE_EXT,
+  gl_FRAGMENT_DEPTH_EXT,
+  -- * Functions
+  glFogCoordPointerEXT,
+  glFogCoorddEXT,
+  glFogCoorddvEXT,
+  glFogCoordfEXT,
+  glFogCoordfvEXT
 ) where
 
-import Graphics.Rendering.OpenGL.Raw.ARB.Compatibility
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/FourTwoTwoPixels.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/FourTwoTwoPixels.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT/FourTwoTwoPixels.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/EXT/FourTwoTwoPixels.hs
@@ -1,36 +1,23 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.FourTwoTwoPixels
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All tokens from the EXT_422_pixels extension, see
--- <http://www.opengl.org/registry/specs/EXT/422_pixels.txt>.
+-- The <https://www.opengl.org/registry/specs/EXT/422_pixels.txt EXT_422_pixels> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.EXT.FourTwoTwoPixels (
-   -- * Tokens
-   gl_422,
-   gl_422_REV,
-   gl_422_AVERAGE,
-   gl_422_REV_AVERAGE
+  -- * Enums
+  gl_422_AVERAGE_EXT,
+  gl_422_EXT,
+  gl_422_REV_AVERAGE_EXT,
+  gl_422_REV_EXT
 ) where
 
-import Graphics.Rendering.OpenGL.Raw.Core32
-
-gl_422 :: GLenum
-gl_422 = 0x80CC
-
-gl_422_REV :: GLenum
-gl_422_REV = 0x80CD
-
-gl_422_AVERAGE :: GLenum
-gl_422_AVERAGE = 0x80CE
-
-gl_422_REV_AVERAGE :: GLenum
-gl_422_REV_AVERAGE = 0x80CF
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/FragmentLighting.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/FragmentLighting.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT/FragmentLighting.hs
+++ /dev/null
@@ -1,146 +0,0 @@
-{-# LANGUAGE ForeignFunctionInterface, CPP #-}
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.FragmentLighting
--- Copyright   :  (c) Sven Panne 2013
--- License     :  BSD3
---
--- Maintainer  :  Sven Panne <svenpanne@gmail.com>
--- Stability   :  stable
--- Portability :  portable
---
--- All raw functions and tokens from the EXT_fragment_lighting extension, see
--- <http://www.opengl.org/registry/specs/EXT/fragment_lighting.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.EXT.FragmentLighting (
-   -- * Functions
-   glFragmentLightModeli,
-   glFragmentLightModelf,
-   glFragmentLightModeliv,
-   glFragmentLightModelfv,
-   glFragmentLighti,
-   glFragmentLightf,
-   glFragmentLightiv,
-   glFragmentLightfv,
-   glGetFragmentLightiv,
-   glGetFragmentLightfv,
-   glFragmentMaterialf,
-   glFragmentMateriali,
-   glFragmentMaterialfv,
-   glFragmentMaterialiv,
-   glFragmentColorMaterial,
-   glGetFragmentMaterialfv,
-   glGetFragmentMaterialiv,
-   glLightEnvi,
-   -- * Tokens
-   gl_FRAGMENT_LIGHTING,
-   gl_FRAGMENT_COLOR_MATERIAL,
-   gl_FRAGMENT_COLOR_MATERIAL_FACE,
-   gl_FRAGMENT_COLOR_MATERIAL_PARAMETER,
-   gl_MAX_FRAGMENT_LIGHTS,
-   gl_MAX_ACTIVE_LIGHTS,
-   gl_CURRENT_RASTER_NORMAL,
-   gl_LIGHT_ENV_MODE,
-   gl_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER,
-   gl_FRAGMENT_LIGHT_MODEL_TWO_SIDE,
-   gl_FRAGMENT_LIGHT_MODEL_AMBIENT,
-   gl_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION,
-   gl_FRAGMENT_LIGHT0,
-   gl_FRAGMENT_LIGHT1,
-   gl_FRAGMENT_LIGHT2,
-   gl_FRAGMENT_LIGHT3,
-   gl_FRAGMENT_LIGHT4,
-   gl_FRAGMENT_LIGHT5,
-   gl_FRAGMENT_LIGHT6,
-   gl_FRAGMENT_LIGHT7
-) where
-
-import Foreign.C.Types
-import Graphics.Rendering.OpenGL.Raw.Core32
-import Foreign.Ptr ( Ptr, FunPtr )
-import Graphics.Rendering.OpenGL.Raw.GetProcAddress ( getExtensionChecked )
-import System.IO.Unsafe ( unsafePerformIO )
-
-#include "HsOpenGLRaw.h"
-
-EXTENSION_ENTRY(dyn_glFragmentLightModeli,ptr_glFragmentLightModeli,"glFragmentLightModeli",glFragmentLightModeli,GLenum -> GLint -> IO ())
-EXTENSION_ENTRY(dyn_glFragmentLightModelf,ptr_glFragmentLightModelf,"glFragmentLightModelf",glFragmentLightModelf,GLenum -> GLfloat -> IO ())
-EXTENSION_ENTRY(dyn_glFragmentLightModeliv,ptr_glFragmentLightModeliv,"glFragmentLightModeliv",glFragmentLightModeliv,GLenum -> Ptr GLint -> IO ())
-EXTENSION_ENTRY(dyn_glFragmentLightModelfv,ptr_glFragmentLightModelfv,"glFragmentLightModelfv",glFragmentLightModelfv,GLenum -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(dyn_glFragmentLighti,ptr_glFragmentLighti,"glFragmentLighti",glFragmentLighti,GLenum -> GLenum -> GLint -> IO ())
-EXTENSION_ENTRY(dyn_glFragmentLightf,ptr_glFragmentLightf,"glFragmentLightf",glFragmentLightf,GLenum -> GLenum -> GLfloat -> IO ())
-EXTENSION_ENTRY(dyn_glFragmentLightiv,ptr_glFragmentLightiv,"glFragmentLightiv",glFragmentLightiv,GLenum -> GLenum -> Ptr GLint -> IO ())
-EXTENSION_ENTRY(dyn_glFragmentLightfv,ptr_glFragmentLightfv,"glFragmentLightfv",glFragmentLightfv,GLenum -> GLenum -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(dyn_glGetFragmentLightiv,ptr_glGetFragmentLightiv,"glGetFragmentLightiv",glGetFragmentLightiv,GLenum -> GLenum -> Ptr GLint -> IO ())
-EXTENSION_ENTRY(dyn_glGetFragmentLightfv,ptr_glGetFragmentLightfv,"glGetFragmentLightfv",glGetFragmentLightfv,GLenum -> GLenum -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(dyn_glFragmentMaterialf,ptr_glFragmentMaterialf,"glFragmentMaterialf",glFragmentMaterialf,GLenum -> GLenum -> GLfloat -> IO ())
-EXTENSION_ENTRY(dyn_glFragmentMateriali,ptr_glFragmentMateriali,"glFragmentMateriali",glFragmentMateriali,GLenum -> GLenum -> GLint -> IO ())
-EXTENSION_ENTRY(dyn_glFragmentMaterialfv,ptr_glFragmentMaterialfv,"glFragmentMaterialfv",glFragmentMaterialfv,GLenum -> GLenum -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(dyn_glFragmentMaterialiv,ptr_glFragmentMaterialiv,"glFragmentMaterialiv",glFragmentMaterialiv,GLenum -> GLenum -> Ptr GLint -> IO ())
-EXTENSION_ENTRY(dyn_glFragmentColorMaterial,ptr_glFragmentColorMaterial,"glFragmentColorMaterial",glFragmentColorMaterial,GLenum -> GLenum -> IO ())
-EXTENSION_ENTRY(dyn_glGetFragmentMaterialfv,ptr_glGetFragmentMaterialfv,"glGetFragmentMaterialfv",glGetFragmentMaterialfv,GLenum -> GLenum -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(dyn_glGetFragmentMaterialiv,ptr_glGetFragmentMaterialiv,"glGetFragmentMaterialiv",glGetFragmentMaterialiv,GLenum -> GLenum -> Ptr GLint -> IO ())
-EXTENSION_ENTRY(dyn_glLightEnvi,ptr_glLightEnvi,"glLightEnvi",glLightEnvi,GLenum -> GLint -> IO ())
-
-gl_FRAGMENT_LIGHTING :: GLenum
-gl_FRAGMENT_LIGHTING = 0x8400
-
-gl_FRAGMENT_COLOR_MATERIAL :: GLenum
-gl_FRAGMENT_COLOR_MATERIAL = 0x8401
-
-gl_FRAGMENT_COLOR_MATERIAL_FACE :: GLenum
-gl_FRAGMENT_COLOR_MATERIAL_FACE = 0x8402
-
-gl_FRAGMENT_COLOR_MATERIAL_PARAMETER :: GLenum
-gl_FRAGMENT_COLOR_MATERIAL_PARAMETER = 0x8403
-
-gl_MAX_FRAGMENT_LIGHTS :: GLenum
-gl_MAX_FRAGMENT_LIGHTS = 0x8404
-
-gl_MAX_ACTIVE_LIGHTS :: GLenum
-gl_MAX_ACTIVE_LIGHTS = 0x8405
-
-gl_CURRENT_RASTER_NORMAL :: GLenum
-gl_CURRENT_RASTER_NORMAL = 0x8406
-
-gl_LIGHT_ENV_MODE :: GLenum
-gl_LIGHT_ENV_MODE = 0x8407
-
-gl_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER :: GLenum
-gl_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER = 0x8408
-
-gl_FRAGMENT_LIGHT_MODEL_TWO_SIDE :: GLenum
-gl_FRAGMENT_LIGHT_MODEL_TWO_SIDE = 0x8409
-
-gl_FRAGMENT_LIGHT_MODEL_AMBIENT :: GLenum
-gl_FRAGMENT_LIGHT_MODEL_AMBIENT = 0x840A
-
-gl_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION :: GLenum
-gl_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION = 0x840B
-
-gl_FRAGMENT_LIGHT0 :: GLenum
-gl_FRAGMENT_LIGHT0 = 0x840C
-
-gl_FRAGMENT_LIGHT1 :: GLenum
-gl_FRAGMENT_LIGHT1 = 0x840D
-
-gl_FRAGMENT_LIGHT2 :: GLenum
-gl_FRAGMENT_LIGHT2 = 0x840E
-
-gl_FRAGMENT_LIGHT3 :: GLenum
-gl_FRAGMENT_LIGHT3 = 0x840F
-
-gl_FRAGMENT_LIGHT4 :: GLenum
-gl_FRAGMENT_LIGHT4 = 0x8410
-
-gl_FRAGMENT_LIGHT5 :: GLenum
-gl_FRAGMENT_LIGHT5 = 0x8411
-
-gl_FRAGMENT_LIGHT6 :: GLenum
-gl_FRAGMENT_LIGHT6 = 0x8412
-
-gl_FRAGMENT_LIGHT7 :: GLenum
-gl_FRAGMENT_LIGHT7 = 0x8413
-
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/FramebufferBlit.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/FramebufferBlit.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT/FramebufferBlit.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/EXT/FramebufferBlit.hs
@@ -1,27 +1,26 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.FramebufferBlit
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All raw functions and tokens from the EXT_framebuffer_blit extension, see
--- <http://www.opengl.org/registry/specs/EXT/framebuffer_blit.txt>.
+-- The <https://www.opengl.org/registry/specs/EXT/framebuffer_blit.txt EXT_framebuffer_blit> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.EXT.FramebufferBlit (
-   -- * Functions
-   glBlitFramebuffer,
-
-   -- * Tokens
-   gl_READ_FRAMEBUFFER,
-   gl_DRAW_FRAMEBUFFER,
-   gl_DRAW_FRAMEBUFFER_BINDING,
-   gl_READ_FRAMEBUFFER_BINDING
+  -- * Enums
+  gl_DRAW_FRAMEBUFFER_BINDING_EXT,
+  gl_DRAW_FRAMEBUFFER_EXT,
+  gl_READ_FRAMEBUFFER_BINDING_EXT,
+  gl_READ_FRAMEBUFFER_EXT,
+  -- * Functions
+  glBlitFramebufferEXT
 ) where
 
-import Graphics.Rendering.OpenGL.Raw.Core32
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/FramebufferMultisample.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/FramebufferMultisample.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT/FramebufferMultisample.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/EXT/FramebufferMultisample.hs
@@ -1,26 +1,25 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.FramebufferMultisample
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All raw functions and tokens from the EXT_framebuffer_multisample extension,
--- see <http://www.opengl.org/registry/specs/EXT/framebuffer_multisample.txt>.
+-- The <https://www.opengl.org/registry/specs/EXT/framebuffer_multisample.txt EXT_framebuffer_multisample> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.EXT.FramebufferMultisample (
-   -- * Functions
-   glRenderbufferStorageMultisample,
-
-   -- * Tokens
-   gl_RENDERBUFFER_SAMPLES,
-   gl_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE,
-   gl_MAX_SAMPLES
+  -- * Enums
+  gl_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT,
+  gl_MAX_SAMPLES_EXT,
+  gl_RENDERBUFFER_SAMPLES_EXT,
+  -- * Functions
+  glRenderbufferStorageMultisampleEXT
 ) where
 
-import Graphics.Rendering.OpenGL.Raw.Core32
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/FramebufferMultisampleBlitScaled.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/FramebufferMultisampleBlitScaled.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/EXT/FramebufferMultisampleBlitScaled.hs
@@ -0,0 +1,21 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.FramebufferMultisampleBlitScaled
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/EXT/framebuffer_multisample_blit_scaled.txt EXT_framebuffer_multisample_blit_scaled> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.EXT.FramebufferMultisampleBlitScaled (
+  -- * Enums
+  gl_SCALED_RESOLVE_FASTEST_EXT,
+  gl_SCALED_RESOLVE_NICEST_EXT
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/FramebufferObject.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/FramebufferObject.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT/FramebufferObject.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/EXT/FramebufferObject.hs
@@ -1,29 +1,89 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.FramebufferObject
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All raw functions and tokens from the EXT_framebuffer_object extension not
--- already in the OpenGL 3.1 core, see
--- <http://www.opengl.org/registry/specs/EXT/framebuffer_object.txt>.
+-- The <https://www.opengl.org/registry/specs/EXT/framebuffer_object.txt EXT_framebuffer_object> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.EXT.FramebufferObject (
-   -- * Tokens
-   gl_FRAMEBUFFER_INCOMPLETE_DIMENSIONS,
-   gl_FRAMEBUFFER_INCOMPLETE_FORMATS
+  -- * Enums
+  gl_COLOR_ATTACHMENT0_EXT,
+  gl_COLOR_ATTACHMENT10_EXT,
+  gl_COLOR_ATTACHMENT11_EXT,
+  gl_COLOR_ATTACHMENT12_EXT,
+  gl_COLOR_ATTACHMENT13_EXT,
+  gl_COLOR_ATTACHMENT14_EXT,
+  gl_COLOR_ATTACHMENT15_EXT,
+  gl_COLOR_ATTACHMENT1_EXT,
+  gl_COLOR_ATTACHMENT2_EXT,
+  gl_COLOR_ATTACHMENT3_EXT,
+  gl_COLOR_ATTACHMENT4_EXT,
+  gl_COLOR_ATTACHMENT5_EXT,
+  gl_COLOR_ATTACHMENT6_EXT,
+  gl_COLOR_ATTACHMENT7_EXT,
+  gl_COLOR_ATTACHMENT8_EXT,
+  gl_COLOR_ATTACHMENT9_EXT,
+  gl_DEPTH_ATTACHMENT_EXT,
+  gl_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_EXT,
+  gl_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_EXT,
+  gl_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_EXT,
+  gl_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_EXT,
+  gl_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_EXT,
+  gl_FRAMEBUFFER_BINDING_EXT,
+  gl_FRAMEBUFFER_COMPLETE_EXT,
+  gl_FRAMEBUFFER_EXT,
+  gl_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT,
+  gl_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT,
+  gl_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT,
+  gl_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT,
+  gl_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT,
+  gl_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT,
+  gl_FRAMEBUFFER_UNSUPPORTED_EXT,
+  gl_INVALID_FRAMEBUFFER_OPERATION_EXT,
+  gl_MAX_COLOR_ATTACHMENTS_EXT,
+  gl_MAX_RENDERBUFFER_SIZE_EXT,
+  gl_RENDERBUFFER_ALPHA_SIZE_EXT,
+  gl_RENDERBUFFER_BINDING_EXT,
+  gl_RENDERBUFFER_BLUE_SIZE_EXT,
+  gl_RENDERBUFFER_DEPTH_SIZE_EXT,
+  gl_RENDERBUFFER_EXT,
+  gl_RENDERBUFFER_GREEN_SIZE_EXT,
+  gl_RENDERBUFFER_HEIGHT_EXT,
+  gl_RENDERBUFFER_INTERNAL_FORMAT_EXT,
+  gl_RENDERBUFFER_RED_SIZE_EXT,
+  gl_RENDERBUFFER_STENCIL_SIZE_EXT,
+  gl_RENDERBUFFER_WIDTH_EXT,
+  gl_STENCIL_ATTACHMENT_EXT,
+  gl_STENCIL_INDEX16_EXT,
+  gl_STENCIL_INDEX1_EXT,
+  gl_STENCIL_INDEX4_EXT,
+  gl_STENCIL_INDEX8_EXT,
+  -- * Functions
+  glBindFramebufferEXT,
+  glBindRenderbufferEXT,
+  glCheckFramebufferStatusEXT,
+  glDeleteFramebuffersEXT,
+  glDeleteRenderbuffersEXT,
+  glFramebufferRenderbufferEXT,
+  glFramebufferTexture1DEXT,
+  glFramebufferTexture2DEXT,
+  glFramebufferTexture3DEXT,
+  glGenFramebuffersEXT,
+  glGenRenderbuffersEXT,
+  glGenerateMipmapEXT,
+  glGetFramebufferAttachmentParameterivEXT,
+  glGetRenderbufferParameterivEXT,
+  glIsFramebufferEXT,
+  glIsRenderbufferEXT,
+  glRenderbufferStorageEXT
 ) where
 
-import Graphics.Rendering.OpenGL.Raw.Core32
-
-gl_FRAMEBUFFER_INCOMPLETE_DIMENSIONS :: GLenum
-gl_FRAMEBUFFER_INCOMPLETE_DIMENSIONS = 0x8CD9
-
-gl_FRAMEBUFFER_INCOMPLETE_FORMATS :: GLenum
-gl_FRAMEBUFFER_INCOMPLETE_FORMATS = 0x8CDA
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/FramebufferSRGB.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/FramebufferSRGB.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT/FramebufferSRGB.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/EXT/FramebufferSRGB.hs
@@ -1,25 +1,21 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.FramebufferSRGB
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All raw functions and tokens from the EXT_framebuffer_sRGB extension not
--- already in the OpenGL 3.1 core, see
--- <http://www.opengl.org/registry/specs/EXT/framebuffer_sRGB.txt>.
+-- The <https://www.opengl.org/registry/specs/EXT/framebuffer_sRGB.txt EXT_framebuffer_sRGB> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.EXT.FramebufferSRGB (
-   -- * Tokens
-   gl_FRAMEBUFFER_SRGB_CAPABLE
+  -- * Enums
+  gl_FRAMEBUFFER_SRGB_CAPABLE_EXT,
+  gl_FRAMEBUFFER_SRGB_EXT
 ) where
 
-import Graphics.Rendering.OpenGL.Raw.Core32
-
-gl_FRAMEBUFFER_SRGB_CAPABLE :: GLenum
-gl_FRAMEBUFFER_SRGB_CAPABLE = 0x8DBA
+import Graphics.Rendering.OpenGL.Raw.Tokens
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
@@ -1,33 +1,21 @@
-{-# LANGUAGE ForeignFunctionInterface, CPP #-}
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.GPUProgramParameters
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All raw functions and tokens from the EXT_gpu_program_parameters extension
--- not already in the OpenGL 3.1 core, see
--- <http://www.opengl.org/registry/specs/EXT/gpu_program_parameters.txt>.
+-- The <https://www.opengl.org/registry/specs/EXT/gpu_program_parameters.txt EXT_gpu_program_parameters> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.EXT.GPUProgramParameters (
-   -- * Functions
-   glProgramEnvParameters4fv,
-   glProgramLocalParameters4fv
+  -- * Functions
+  glProgramEnvParameters4fvEXT,
+  glProgramLocalParameters4fvEXT
 ) where
 
-import Foreign.C.Types
-import Graphics.Rendering.OpenGL.Raw.Types
-import Foreign.Ptr ( Ptr, FunPtr )
-import Graphics.Rendering.OpenGL.Raw.GetProcAddress ( getExtensionChecked )
-import System.IO.Unsafe ( unsafePerformIO )
-
-#include "HsOpenGLRaw.h"
-
-EXTENSION_ENTRY(dyn_glProgramEnvParameters4fv,ptr_glProgramEnvParameters4fv,"glProgramEnvParameters4fv",glProgramEnvParameters4fv,GLenum -> GLuint -> GLsizei -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(dyn_glProgramLocalParameters4fv,ptr_glProgramLocalParameters4fv,"glProgramLocalParameters4fv",glProgramLocalParameters4fv,GLenum -> GLuint -> GLsizei -> Ptr GLfloat -> IO ())
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/GPUShader4.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/GPUShader4.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT/GPUShader4.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/EXT/GPUShader4.hs
@@ -1,61 +1,60 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.GPUShader4
--- Copyright   :  (c) Sven Panne 2014
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All raw functions and tokens from the EXT_gpu_shader4 extension, see
--- <http://www.opengl.org/registry/specs/EXT/gpu_shader4.txt>.
+-- The <https://www.opengl.org/registry/specs/EXT/gpu_shader4.txt EXT_gpu_shader4> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.EXT.GPUShader4 (
-   -- * Functions
-   glGetUniformuiv,
-   glBindFragDataLocation,
-   glGetFragDataLocation,
-   glUniform1ui,
-   glUniform2ui,
-   glUniform3ui,
-   glUniform4ui,
-   glUniform1uiv,
-   glUniform2uiv,
-   glUniform3uiv,
-   glUniform4uiv,
-
-   -- * Tokens
-   gl_VERTEX_ATTRIB_ARRAY_INTEGER,
-   gl_SAMPLER_1D_ARRAY,
-   gl_SAMPLER_2D_ARRAY,
-   gl_SAMPLER_BUFFER,
-   gl_SAMPLER_1D_ARRAY_SHADOW,
-   gl_SAMPLER_2D_ARRAY_SHADOW,
-   gl_SAMPLER_CUBE_SHADOW,
-   gl_UNSIGNED_INT_VEC2,
-   gl_UNSIGNED_INT_VEC3,
-   gl_UNSIGNED_INT_VEC4,
-   gl_INT_SAMPLER_1D,
-   gl_INT_SAMPLER_2D,
-   gl_INT_SAMPLER_3D,
-   gl_INT_SAMPLER_CUBE,
-   gl_INT_SAMPLER_2D_RECT,
-   gl_INT_SAMPLER_1D_ARRAY,
-   gl_INT_SAMPLER_2D_ARRAY,
-   gl_INT_SAMPLER_BUFFER,
-   gl_UNSIGNED_INT_SAMPLER_1D,
-   gl_UNSIGNED_INT_SAMPLER_2D,
-   gl_UNSIGNED_INT_SAMPLER_3D,
-   gl_UNSIGNED_INT_SAMPLER_CUBE,
-   gl_UNSIGNED_INT_SAMPLER_2D_RECT,
-   gl_UNSIGNED_INT_SAMPLER_1D_ARRAY,
-   gl_UNSIGNED_INT_SAMPLER_2D_ARRAY,
-   gl_UNSIGNED_INT_SAMPLER_BUFFER,
-   gl_MIN_PROGRAM_TEXEL_OFFSET,
-   gl_MAX_PROGRAM_TEXEL_OFFSET
+  -- * Enums
+  gl_INT_SAMPLER_1D_ARRAY_EXT,
+  gl_INT_SAMPLER_1D_EXT,
+  gl_INT_SAMPLER_2D_ARRAY_EXT,
+  gl_INT_SAMPLER_2D_EXT,
+  gl_INT_SAMPLER_2D_RECT_EXT,
+  gl_INT_SAMPLER_3D_EXT,
+  gl_INT_SAMPLER_BUFFER_EXT,
+  gl_INT_SAMPLER_CUBE_EXT,
+  gl_MAX_PROGRAM_TEXEL_OFFSET_EXT,
+  gl_MIN_PROGRAM_TEXEL_OFFSET_EXT,
+  gl_SAMPLER_1D_ARRAY_EXT,
+  gl_SAMPLER_1D_ARRAY_SHADOW_EXT,
+  gl_SAMPLER_2D_ARRAY_EXT,
+  gl_SAMPLER_2D_ARRAY_SHADOW_EXT,
+  gl_SAMPLER_BUFFER_EXT,
+  gl_SAMPLER_CUBE_SHADOW_EXT,
+  gl_UNSIGNED_INT_SAMPLER_1D_ARRAY_EXT,
+  gl_UNSIGNED_INT_SAMPLER_1D_EXT,
+  gl_UNSIGNED_INT_SAMPLER_2D_ARRAY_EXT,
+  gl_UNSIGNED_INT_SAMPLER_2D_EXT,
+  gl_UNSIGNED_INT_SAMPLER_2D_RECT_EXT,
+  gl_UNSIGNED_INT_SAMPLER_3D_EXT,
+  gl_UNSIGNED_INT_SAMPLER_BUFFER_EXT,
+  gl_UNSIGNED_INT_SAMPLER_CUBE_EXT,
+  gl_UNSIGNED_INT_VEC2_EXT,
+  gl_UNSIGNED_INT_VEC3_EXT,
+  gl_UNSIGNED_INT_VEC4_EXT,
+  gl_VERTEX_ATTRIB_ARRAY_INTEGER_EXT,
+  -- * Functions
+  glBindFragDataLocationEXT,
+  glGetFragDataLocationEXT,
+  glGetUniformuivEXT,
+  glUniform1uiEXT,
+  glUniform1uivEXT,
+  glUniform2uiEXT,
+  glUniform2uivEXT,
+  glUniform3uiEXT,
+  glUniform3uivEXT,
+  glUniform4uiEXT,
+  glUniform4uivEXT
 ) where
 
-import Graphics.Rendering.OpenGL.Raw.Core32
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/GeometryShader4.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/GeometryShader4.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT/GeometryShader4.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/EXT/GeometryShader4.hs
@@ -1,42 +1,42 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.GeometryShader4
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All raw functions and tokens from the EXT_geometry_shader4 extension, see
--- <http://www.opengl.org/registry/specs/EXT/geometry_shader4.txt>.
+-- The <https://www.opengl.org/registry/specs/EXT/geometry_shader4.txt EXT_geometry_shader4> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.EXT.GeometryShader4 (
-   -- * Functions
-   glProgramParameteri,
-   glFramebufferTexture,
-   glFramebufferTextureFace,
-   -- * Tokens
-   gl_GEOMETRY_SHADER,
-   gl_GEOMETRY_VERTICES_OUT,
-   gl_GEOMETRY_INPUT_TYPE,
-   gl_GEOMETRY_OUTPUT_TYPE,
-   gl_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS,
-   gl_MAX_GEOMETRY_VARYING_COMPONENTS,
-   gl_MAX_VERTEX_VARYING_COMPONENTS,
-   gl_MAX_GEOMETRY_UNIFORM_COMPONENTS,
-   gl_MAX_GEOMETRY_OUTPUT_VERTICES,
-   gl_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS,
-   gl_LINES_ADJACENCY,
-   gl_LINE_STRIP_ADJACENCY,
-   gl_TRIANGLES_ADJACENCY,
-   gl_TRIANGLE_STRIP_ADJACENCY,
-   gl_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS,
-   gl_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT,
-   gl_FRAMEBUFFER_ATTACHMENT_LAYERED,
-   gl_PROGRAM_POINT_SIZE
+  -- * Enums
+  gl_FRAMEBUFFER_ATTACHMENT_LAYERED_EXT,
+  gl_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT,
+  gl_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_EXT,
+  gl_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_EXT,
+  gl_GEOMETRY_INPUT_TYPE_EXT,
+  gl_GEOMETRY_OUTPUT_TYPE_EXT,
+  gl_GEOMETRY_SHADER_EXT,
+  gl_GEOMETRY_VERTICES_OUT_EXT,
+  gl_LINES_ADJACENCY_EXT,
+  gl_LINE_STRIP_ADJACENCY_EXT,
+  gl_MAX_GEOMETRY_OUTPUT_VERTICES_EXT,
+  gl_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_EXT,
+  gl_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_EXT,
+  gl_MAX_GEOMETRY_UNIFORM_COMPONENTS_EXT,
+  gl_MAX_GEOMETRY_VARYING_COMPONENTS_EXT,
+  gl_MAX_VARYING_COMPONENTS_EXT,
+  gl_MAX_VERTEX_VARYING_COMPONENTS_EXT,
+  gl_PROGRAM_POINT_SIZE_EXT,
+  gl_TRIANGLES_ADJACENCY_EXT,
+  gl_TRIANGLE_STRIP_ADJACENCY_EXT,
+  -- * Functions
+  glProgramParameteriEXT
 ) where
 
-import Graphics.Rendering.OpenGL.Raw.ARB.GeometryShader4
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/Histogram.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/Histogram.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT/Histogram.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/EXT/Histogram.hs
@@ -1,44 +1,45 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.Histogram
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All raw functions and tokens from the EXT_histogram extension, see
--- <http://www.opengl.org/registry/specs/EXT/histogram.txt>.
+-- The <https://www.opengl.org/registry/specs/EXT/histogram.txt EXT_histogram> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.EXT.Histogram (
-   -- * Functions
-   glHistogram,
-   glResetHistogram,
-   glGetHistogram,
-   glGetHistogramParameteriv,
-   glGetHistogramParameterfv,
-   glMinmax,
-   glResetMinmax,
-   glGetMinmax,
-   glGetMinmaxParameteriv,
-   glGetMinmaxParameterfv,
-   -- * Tokens
-   gl_HISTOGRAM,
-   gl_PROXY_HISTOGRAM,
-   gl_HISTOGRAM_WIDTH,
-   gl_HISTOGRAM_FORMAT,
-   gl_HISTOGRAM_RED_SIZE,
-   gl_HISTOGRAM_GREEN_SIZE,
-   gl_HISTOGRAM_BLUE_SIZE,
-   gl_HISTOGRAM_ALPHA_SIZE,
-   gl_HISTOGRAM_LUMINANCE_SIZE,
-   gl_HISTOGRAM_SINK,
-   gl_MINMAX,
-   gl_MINMAX_FORMAT,
-   gl_MINMAX_SINK
+  -- * Enums
+  gl_HISTOGRAM_ALPHA_SIZE_EXT,
+  gl_HISTOGRAM_BLUE_SIZE_EXT,
+  gl_HISTOGRAM_EXT,
+  gl_HISTOGRAM_FORMAT_EXT,
+  gl_HISTOGRAM_GREEN_SIZE_EXT,
+  gl_HISTOGRAM_LUMINANCE_SIZE_EXT,
+  gl_HISTOGRAM_RED_SIZE_EXT,
+  gl_HISTOGRAM_SINK_EXT,
+  gl_HISTOGRAM_WIDTH_EXT,
+  gl_MINMAX_EXT,
+  gl_MINMAX_FORMAT_EXT,
+  gl_MINMAX_SINK_EXT,
+  gl_PROXY_HISTOGRAM_EXT,
+  gl_TABLE_TOO_LARGE_EXT,
+  -- * Functions
+  glGetHistogramEXT,
+  glGetHistogramParameterfvEXT,
+  glGetHistogramParameterivEXT,
+  glGetMinmaxEXT,
+  glGetMinmaxParameterfvEXT,
+  glGetMinmaxParameterivEXT,
+  glHistogramEXT,
+  glMinmaxEXT,
+  glResetHistogramEXT,
+  glResetMinmaxEXT
 ) where
 
-import Graphics.Rendering.OpenGL.Raw.ARB.Compatibility
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/IndexArrayFormats.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/IndexArrayFormats.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT/IndexArrayFormats.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/EXT/IndexArrayFormats.hs
@@ -1,52 +1,27 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.IndexArrayFormats
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All tokens from the EXT_index_array_formats extension, see
--- <http://www.opengl.org/registry/specs/EXT/index_array_formats.txt>.
+-- The <https://www.opengl.org/registry/specs/EXT/index_array_formats.txt EXT_index_array_formats> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.EXT.IndexArrayFormats (
-   -- * Tokens
-   gl_IUI_V2F,
-   gl_IUI_V3F,
-   gl_IUI_N3F_V2F,
-   gl_IUI_N3F_V3F,
-   gl_T2F_IUI_V2F,
-   gl_T2F_IUI_V3F,
-   gl_T2F_IUI_N3F_V2F,
-   gl_T2F_IUI_N3F_V3F
+  -- * Enums
+  gl_IUI_N3F_V2F_EXT,
+  gl_IUI_N3F_V3F_EXT,
+  gl_IUI_V2F_EXT,
+  gl_IUI_V3F_EXT,
+  gl_T2F_IUI_N3F_V2F_EXT,
+  gl_T2F_IUI_N3F_V3F_EXT,
+  gl_T2F_IUI_V2F_EXT,
+  gl_T2F_IUI_V3F_EXT
 ) where
 
-import Graphics.Rendering.OpenGL.Raw.Core32
-
-gl_IUI_V2F :: GLenum
-gl_IUI_V2F = 0x81AD
-
-gl_IUI_V3F :: GLenum
-gl_IUI_V3F = 0x81AE
-
-gl_IUI_N3F_V2F :: GLenum
-gl_IUI_N3F_V2F = 0x81AF
-
-gl_IUI_N3F_V3F :: GLenum
-gl_IUI_N3F_V3F = 0x81B0
-
-gl_T2F_IUI_V2F :: GLenum
-gl_T2F_IUI_V2F = 0x81B1
-
-gl_T2F_IUI_V3F :: GLenum
-gl_T2F_IUI_V3F = 0x81B2
-
-gl_T2F_IUI_N3F_V2F :: GLenum
-gl_T2F_IUI_N3F_V2F = 0x81B3
-
-gl_T2F_IUI_N3F_V3F :: GLenum
-gl_T2F_IUI_N3F_V3F = 0x81B4
+import Graphics.Rendering.OpenGL.Raw.Tokens
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
@@ -1,43 +1,25 @@
-{-# LANGUAGE ForeignFunctionInterface, CPP #-}
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.IndexFunc
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All raw functions and tokens from the EXT_index_func extension, see
--- <http://www.opengl.org/registry/specs/EXT/index_func.txt>.
+-- The <https://www.opengl.org/registry/specs/EXT/index_func.txt EXT_index_func> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.EXT.IndexFunc (
-   -- * Functions
-   glIndexFunc,
-   -- * Tokens
-   gl_INDEX_TEST,
-   gl_INDEX_TEST_FUNC,
-   gl_INDEX_TEST_REF
+  -- * Enums
+  gl_INDEX_TEST_EXT,
+  gl_INDEX_TEST_FUNC_EXT,
+  gl_INDEX_TEST_REF_EXT,
+  -- * Functions
+  glIndexFuncEXT
 ) where
 
-import Foreign.C.Types
-import Graphics.Rendering.OpenGL.Raw.Core32
-import Foreign.Ptr ( FunPtr )
-import Graphics.Rendering.OpenGL.Raw.GetProcAddress ( getExtensionChecked )
-import System.IO.Unsafe ( unsafePerformIO )
-
-#include "HsOpenGLRaw.h"
-
-EXTENSION_ENTRY(dyn_glIndexFunc,ptr_glIndexFunc,"glIndexFunc",glIndexFunc,GLenum -> GLfloat -> IO ())
-
-gl_INDEX_TEST :: GLenum
-gl_INDEX_TEST = 0x81B5
-
-gl_INDEX_TEST_FUNC :: GLenum
-gl_INDEX_TEST_FUNC = 0x81B6
-
-gl_INDEX_TEST_REF :: GLenum
-gl_INDEX_TEST_REF = 0x81B7
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
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
@@ -1,43 +1,25 @@
-{-# LANGUAGE ForeignFunctionInterface, CPP #-}
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.IndexMaterial
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All raw functions and tokens from the EXT_index_material extension, see
--- <http://www.opengl.org/registry/specs/EXT/index_material.txt>.
+-- The <https://www.opengl.org/registry/specs/EXT/index_material.txt EXT_index_material> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.EXT.IndexMaterial (
-   -- * Functions
-   glIndexMaterial,
-   -- * Tokens
-   gl_INDEX_MATERIAL,
-   gl_INDEX_MATERIAL_PARAMETER,
-   gl_INDEX_MATERIAL_FACE
+  -- * Enums
+  gl_INDEX_MATERIAL_EXT,
+  gl_INDEX_MATERIAL_FACE_EXT,
+  gl_INDEX_MATERIAL_PARAMETER_EXT,
+  -- * Functions
+  glIndexMaterialEXT
 ) where
 
-import Foreign.C.Types
-import Graphics.Rendering.OpenGL.Raw.Types
-import Foreign.Ptr ( FunPtr )
-import Graphics.Rendering.OpenGL.Raw.GetProcAddress ( getExtensionChecked )
-import System.IO.Unsafe ( unsafePerformIO )
-
-#include "HsOpenGLRaw.h"
-
-EXTENSION_ENTRY(dyn_glIndexMaterial,ptr_glIndexMaterial,"glIndexMaterial",glIndexMaterial,GLenum -> GLenum -> IO ())
-
-gl_INDEX_MATERIAL :: GLenum
-gl_INDEX_MATERIAL = 0x81B8
-
-gl_INDEX_MATERIAL_PARAMETER :: GLenum
-gl_INDEX_MATERIAL_PARAMETER = 0x81B9
-
-gl_INDEX_MATERIAL_FACE :: GLenum
-gl_INDEX_MATERIAL_FACE = 0x81BA
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
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
@@ -1,73 +1,34 @@
-{-# LANGUAGE ForeignFunctionInterface, CPP #-}
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.LightTexture
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All raw functions and tokens from the EXT_light_texture extension, see
--- <http://www.opengl.org/registry/specs/EXT/light_texture.txt>.
+-- The <https://www.opengl.org/registry/specs/EXT/light_texture.txt EXT_light_texture> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.EXT.LightTexture (
-   -- * Functions
-   glApplyTexture,
-   glTextureLight,
-   glTextureMaterial,
-   -- * Tokens
-   gl_FRAGMENT_MATERIAL,
-   gl_FRAGMENT_NORMAL,
-   gl_FRAGMENT_DEPTH,
-   gl_FRAGMENT_COLOR,
-   gl_ATTENUATION,
-   gl_SHADOW_ATTENUATION,
-   gl_TEXTURE_APPLICATION_MODE,
-   gl_TEXTURE_LIGHT,
-   gl_TEXTURE_MATERIAL_FACE,
-   gl_TEXTURE_MATERIAL_PARAMETER
+  -- * Enums
+  gl_ATTENUATION_EXT,
+  gl_FRAGMENT_COLOR_EXT,
+  gl_FRAGMENT_DEPTH_EXT,
+  gl_FRAGMENT_MATERIAL_EXT,
+  gl_FRAGMENT_NORMAL_EXT,
+  gl_SHADOW_ATTENUATION_EXT,
+  gl_TEXTURE_APPLICATION_MODE_EXT,
+  gl_TEXTURE_LIGHT_EXT,
+  gl_TEXTURE_MATERIAL_FACE_EXT,
+  gl_TEXTURE_MATERIAL_PARAMETER_EXT,
+  -- * Functions
+  glApplyTextureEXT,
+  glTextureLightEXT,
+  glTextureMaterialEXT
 ) where
 
-import Foreign.C.Types
-import Graphics.Rendering.OpenGL.Raw.ARB.Compatibility
-import Graphics.Rendering.OpenGL.Raw.Core32
-import Foreign.Ptr ( FunPtr )
-import Graphics.Rendering.OpenGL.Raw.GetProcAddress ( getExtensionChecked )
-import System.IO.Unsafe ( unsafePerformIO )
-
-#include "HsOpenGLRaw.h"
-
-EXTENSION_ENTRY(dyn_glApplyTexture,ptr_glApplyTexture,"glApplyTexture",glApplyTexture,GLenum -> IO ())
-EXTENSION_ENTRY(dyn_glTextureLight,ptr_glTextureLight,"glTextureLight",glTextureLight,GLenum -> IO ())
-EXTENSION_ENTRY(dyn_glTextureMaterial,ptr_glTextureMaterial,"glTextureMaterial",glTextureMaterial,GLenum -> GLenum -> IO ())
-
-gl_FRAGMENT_MATERIAL :: GLenum
-gl_FRAGMENT_MATERIAL = 0x8349
-
-gl_FRAGMENT_NORMAL :: GLenum
-gl_FRAGMENT_NORMAL = 0x834A
-
-gl_FRAGMENT_COLOR :: GLenum
-gl_FRAGMENT_COLOR = 0x834C
-
-gl_ATTENUATION :: GLenum
-gl_ATTENUATION = 0x834D
-
-gl_SHADOW_ATTENUATION :: GLenum
-gl_SHADOW_ATTENUATION = 0x834E
-
-gl_TEXTURE_APPLICATION_MODE :: GLenum
-gl_TEXTURE_APPLICATION_MODE = 0x834F
-
-gl_TEXTURE_LIGHT :: GLenum
-gl_TEXTURE_LIGHT = 0x8350
-
-gl_TEXTURE_MATERIAL_FACE :: GLenum
-gl_TEXTURE_MATERIAL_FACE = 0x8351
-
-gl_TEXTURE_MATERIAL_PARAMETER :: GLenum
-gl_TEXTURE_MATERIAL_PARAMETER = 0x8352
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/MultiDrawArrays.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/MultiDrawArrays.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT/MultiDrawArrays.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/EXT/MultiDrawArrays.hs
@@ -1,22 +1,21 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.MultiDrawArrays
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All raw functions and tokens from the EXT_multi_draw_arrays extension, see
--- <http://www.opengl.org/registry/specs/EXT/multi_draw_arrays.txt>.
+-- The <https://www.opengl.org/registry/specs/EXT/multi_draw_arrays.txt EXT_multi_draw_arrays> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.EXT.MultiDrawArrays (
-   -- * Functions
-   glMultiDrawArrays,
-   glMultiDrawElements
+  -- * Functions
+  glMultiDrawArraysEXT,
+  glMultiDrawElementsEXT
 ) where
 
-import Graphics.Rendering.OpenGL.Raw.Core32
+import Graphics.Rendering.OpenGL.Raw.Functions
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
@@ -1,90 +1,40 @@
-{-# LANGUAGE ForeignFunctionInterface, CPP #-}
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.Multisample
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All raw functions and tokens from the EXT_multisample extension, see
--- <http://www.opengl.org/registry/specs/EXT/multisample.txt>.
+-- The <https://www.opengl.org/registry/specs/EXT/multisample.txt EXT_multisample> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.EXT.Multisample (
-   -- * Functions
-   glSampleMask,
-   glSamplePattern,
-   -- * Tokens
-   gl_MULTISAMPLE,
-   gl_SAMPLE_ALPHA_TO_MASK,
-   gl_SAMPLE_ALPHA_TO_ONE,
-   gl_SAMPLE_MASK_EXT,
-   gl_MULTISAMPLE_BIT,
-   gl_1PASS,
-   gl_2PASS_0,
-   gl_2PASS_1,
-   gl_4PASS_0,
-   gl_4PASS_1,
-   gl_4PASS_2,
-   gl_4PASS_3,
-   gl_SAMPLE_BUFFERS,
-   gl_SAMPLES,
-   gl_SAMPLE_MASK_VALUE_EXT,
-   gl_SAMPLE_MASK_INVERT,
-   gl_SAMPLE_PATTERN
+  -- * Enums
+  gl_1PASS_EXT,
+  gl_2PASS_0_EXT,
+  gl_2PASS_1_EXT,
+  gl_4PASS_0_EXT,
+  gl_4PASS_1_EXT,
+  gl_4PASS_2_EXT,
+  gl_4PASS_3_EXT,
+  gl_MULTISAMPLE_BIT_EXT,
+  gl_MULTISAMPLE_EXT,
+  gl_SAMPLES_EXT,
+  gl_SAMPLE_ALPHA_TO_MASK_EXT,
+  gl_SAMPLE_ALPHA_TO_ONE_EXT,
+  gl_SAMPLE_BUFFERS_EXT,
+  gl_SAMPLE_MASK_EXT,
+  gl_SAMPLE_MASK_INVERT_EXT,
+  gl_SAMPLE_MASK_VALUE_EXT,
+  gl_SAMPLE_PATTERN_EXT,
+  -- * Functions
+  glSampleMaskEXT,
+  glSamplePatternEXT
 ) where
 
-import Foreign.C.Types
-import Graphics.Rendering.OpenGL.Raw.Types
-import Graphics.Rendering.OpenGL.Raw.ARB.Compatibility
-import Graphics.Rendering.OpenGL.Raw.Core32
-import Foreign.Ptr ( FunPtr )
-import Graphics.Rendering.OpenGL.Raw.GetProcAddress ( getExtensionChecked )
-import System.IO.Unsafe ( unsafePerformIO )
-
-#include "HsOpenGLRaw.h"
-
-EXTENSION_ENTRY(dyn_glSampleMask,ptr_glSampleMask,"glSampleMask",glSampleMask,GLclampf -> GLboolean -> IO ())
-EXTENSION_ENTRY(dyn_glSamplePattern,ptr_glSamplePattern,"glSamplePattern",glSamplePattern,GLenum -> IO ())
-
-gl_SAMPLE_ALPHA_TO_MASK :: GLenum
-gl_SAMPLE_ALPHA_TO_MASK = 0x809E
-
--- | Note: We use the EXT suffix here, because the name clashes with the ARB_texture_multisample extension.
-gl_SAMPLE_MASK_EXT :: GLenum
-gl_SAMPLE_MASK_EXT = 0x80A0
-
-gl_1PASS :: GLenum
-gl_1PASS = 0x80A1
-
-gl_2PASS_0 :: GLenum
-gl_2PASS_0 = 0x80A2
-
-gl_2PASS_1 :: GLenum
-gl_2PASS_1 = 0x80A3
-
-gl_4PASS_0 :: GLenum
-gl_4PASS_0 = 0x80A4
-
-gl_4PASS_1 :: GLenum
-gl_4PASS_1 = 0x80A5
-
-gl_4PASS_2 :: GLenum
-gl_4PASS_2 = 0x80A6
-
-gl_4PASS_3 :: GLenum
-gl_4PASS_3 = 0x80A7
-
--- | Note: We use the EXT suffix here, because the name clashes with the ARB_texture_multisample extension.
-gl_SAMPLE_MASK_VALUE_EXT :: GLenum
-gl_SAMPLE_MASK_VALUE_EXT = 0x80AA
-
-gl_SAMPLE_MASK_INVERT :: GLenum
-gl_SAMPLE_MASK_INVERT = 0x80AB
-
-gl_SAMPLE_PATTERN :: GLenum
-gl_SAMPLE_PATTERN = 0x80AC
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/PackedDepthStencil.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/PackedDepthStencil.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT/PackedDepthStencil.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/EXT/PackedDepthStencil.hs
@@ -1,24 +1,23 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.PackedDepthStencil
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All raw functions and tokens from the EXT_packed_depth_stencil extension, see
--- <http://www.opengl.org/registry/specs/EXT/packed_depth_stencil.txt>.
+-- The <https://www.opengl.org/registry/specs/EXT/packed_depth_stencil.txt EXT_packed_depth_stencil> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.EXT.PackedDepthStencil (
-   -- * Tokens
-   gl_DEPTH_STENCIL,
-   gl_UNSIGNED_INT_24_8,
-   gl_DEPTH24_STENCIL8,
-   gl_TEXTURE_STENCIL_SIZE
+  -- * Enums
+  gl_DEPTH24_STENCIL8_EXT,
+  gl_DEPTH_STENCIL_EXT,
+  gl_TEXTURE_STENCIL_SIZE_EXT,
+  gl_UNSIGNED_INT_24_8_EXT
 ) where
 
 import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/PackedFloat.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/PackedFloat.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT/PackedFloat.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/EXT/PackedFloat.hs
@@ -1,25 +1,22 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.PackedFloat
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All raw functions and tokens from the EXT_packed_float extension not already
--- in the OpenGL 3.1 core, see
--- <http://www.opengl.org/registry/specs/EXT/packed_float.txt>.
+-- The <https://www.opengl.org/registry/specs/EXT/packed_float.txt EXT_packed_float> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.EXT.PackedFloat (
-   -- * Tokens
-   gl_RGBA_SIGNED_COMPONENTS
+  -- * Enums
+  gl_R11F_G11F_B10F_EXT,
+  gl_RGBA_SIGNED_COMPONENTS_EXT,
+  gl_UNSIGNED_INT_10F_11F_11F_REV_EXT
 ) where
 
-import Graphics.Rendering.OpenGL.Raw.Core32
-
-gl_RGBA_SIGNED_COMPONENTS :: GLenum
-gl_RGBA_SIGNED_COMPONENTS = 0x8C3C
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/PackedPixels.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/PackedPixels.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT/PackedPixels.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/EXT/PackedPixels.hs
@@ -1,25 +1,24 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.PackedPixels
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All tokens from the EXT_packed_pixel extension, see
--- <http://www.opengl.org/registry/specs/EXT/packed_pixel.txt>.
+-- The <https://www.opengl.org/registry/specs/EXT/packed_pixels.txt EXT_packed_pixels> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.EXT.PackedPixels (
-   -- * Tokens
-   gl_UNSIGNED_BYTE_3_3_2,
-   gl_UNSIGNED_SHORT_4_4_4_4,
-   gl_UNSIGNED_SHORT_5_5_5_1,
-   gl_UNSIGNED_INT_8_8_8_8,
-   gl_UNSIGNED_INT_10_10_10_2
+  -- * Enums
+  gl_UNSIGNED_BYTE_3_3_2_EXT,
+  gl_UNSIGNED_INT_10_10_10_2_EXT,
+  gl_UNSIGNED_INT_8_8_8_8_EXT,
+  gl_UNSIGNED_SHORT_4_4_4_4_EXT,
+  gl_UNSIGNED_SHORT_5_5_5_1_EXT
 ) where
 
-import Graphics.Rendering.OpenGL.Raw.Core32
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/PalettedTexture.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/PalettedTexture.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT/PalettedTexture.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/EXT/PalettedTexture.hs
@@ -1,71 +1,32 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.PalettedTexture
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All raw functions and tokens from the EXT_paletted_texture extension, see
--- <http://www.opengl.org/registry/specs/EXT/paletted_texture.txt>.
+-- The <https://www.opengl.org/registry/specs/EXT/paletted_texture.txt EXT_paletted_texture> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.EXT.PalettedTexture (
-   -- * Functions
-   glColorTable,
-   glColorSubTable,
-   glGetColorTable,
-   glGetColorTableParameteriv,
-   glGetColorTableParameterfv,
-   -- * Tokens
-   gl_COLOR_INDEX1,
-   gl_COLOR_INDEX2,
-   gl_COLOR_INDEX4,
-   gl_COLOR_INDEX8,
-   gl_COLOR_INDEX12,
-   gl_COLOR_INDEX16,
-   gl_COLOR_TABLE_FORMAT,
-   gl_COLOR_TABLE_WIDTH,
-   gl_COLOR_TABLE_RED_SIZE,
-   gl_COLOR_TABLE_GREEN_SIZE,
-   gl_COLOR_TABLE_BLUE_SIZE,
-   gl_COLOR_TABLE_ALPHA_SIZE,
-   gl_COLOR_TABLE_LUMINANCE_SIZE,
-   gl_COLOR_TABLE_INTENSITY_SIZE,
-   gl_TEXTURE_INDEX_SIZE,
-   gl_TEXTURE_1D,
-   gl_TEXTURE_2D,
-   gl_TEXTURE_3D,
-   gl_TEXTURE_CUBE_MAP,
-   gl_PROXY_TEXTURE_1D,
-   gl_PROXY_TEXTURE_2D,
-   gl_PROXY_TEXTURE_3D,
-   gl_PROXY_TEXTURE_CUBE_MAP
+  -- * Enums
+  gl_COLOR_INDEX12_EXT,
+  gl_COLOR_INDEX16_EXT,
+  gl_COLOR_INDEX1_EXT,
+  gl_COLOR_INDEX2_EXT,
+  gl_COLOR_INDEX4_EXT,
+  gl_COLOR_INDEX8_EXT,
+  gl_TEXTURE_INDEX_SIZE_EXT,
+  -- * Functions
+  glColorTableEXT,
+  glGetColorTableEXT,
+  glGetColorTableParameterfvEXT,
+  glGetColorTableParameterivEXT
 ) where
 
-import Graphics.Rendering.OpenGL.Raw.ARB.Compatibility
-import Graphics.Rendering.OpenGL.Raw.Core32
-
-gl_COLOR_INDEX1 :: GLenum
-gl_COLOR_INDEX1 = 0x80E2
-
-gl_COLOR_INDEX2 :: GLenum
-gl_COLOR_INDEX2 = 0x80E3
-
-gl_COLOR_INDEX4 :: GLenum
-gl_COLOR_INDEX4 = 0x80E4
-
-gl_COLOR_INDEX8 :: GLenum
-gl_COLOR_INDEX8 = 0x80E5
-
-gl_COLOR_INDEX12 :: GLenum
-gl_COLOR_INDEX12 = 0x80E6
-
-gl_COLOR_INDEX16 :: GLenum
-gl_COLOR_INDEX16 = 0x80E7
-
-gl_TEXTURE_INDEX_SIZE :: GLenum
-gl_TEXTURE_INDEX_SIZE = 0x80ED
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/PixelBufferObject.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/PixelBufferObject.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/EXT/PixelBufferObject.hs
@@ -0,0 +1,23 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.PixelBufferObject
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/EXT/pixel_buffer_object.txt EXT_pixel_buffer_object> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.EXT.PixelBufferObject (
+  -- * Enums
+  gl_PIXEL_PACK_BUFFER_BINDING_EXT,
+  gl_PIXEL_PACK_BUFFER_EXT,
+  gl_PIXEL_UNPACK_BUFFER_BINDING_EXT,
+  gl_PIXEL_UNPACK_BUFFER_EXT
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
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
@@ -1,77 +1,36 @@
-{-# LANGUAGE ForeignFunctionInterface, CPP #-}
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.PixelTransform
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All raw functions and tokens from the EXT_pixel_transform extension, see
--- <http://www.opengl.org/registry/specs/EXT/pixel_transform.txt>.
+-- The <https://www.opengl.org/registry/specs/EXT/pixel_transform.txt EXT_pixel_transform> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.EXT.PixelTransform (
-   -- * Functions
-   glPixelTransformParameteri,
-   glPixelTransformParameterf,
-   glPixelTransformParameteriv,
-   glPixelTransformParameterfv,
-   glGetPixelTransformParameteriv,
-   glGetPixelTransformParameterfv,
-   -- * Tokens
-   gl_PIXEL_MAG_FILTER,
-   gl_PIXEL_MIN_FILTER,
-   gl_PIXEL_CUBIC_WEIGHT,
-   gl_CUBIC,
-   gl_AVERAGE,
-   gl_PIXEL_TRANSFORM_2D,
-   gl_PIXEL_TRANSFORM_2D_STACK_DEPTH,
-   gl_MAX_PIXEL_TRANSFORM_2D_STACK_DEPTH,
-   gl_PIXEL_TRANSFORM_2D_MATRIX
+  -- * Enums
+  gl_AVERAGE_EXT,
+  gl_CUBIC_EXT,
+  gl_MAX_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT,
+  gl_PIXEL_CUBIC_WEIGHT_EXT,
+  gl_PIXEL_MAG_FILTER_EXT,
+  gl_PIXEL_MIN_FILTER_EXT,
+  gl_PIXEL_TRANSFORM_2D_EXT,
+  gl_PIXEL_TRANSFORM_2D_MATRIX_EXT,
+  gl_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT,
+  -- * Functions
+  glGetPixelTransformParameterfvEXT,
+  glGetPixelTransformParameterivEXT,
+  glPixelTransformParameterfEXT,
+  glPixelTransformParameterfvEXT,
+  glPixelTransformParameteriEXT,
+  glPixelTransformParameterivEXT
 ) where
 
-import Foreign.C.Types
-import Graphics.Rendering.OpenGL.Raw.Core32
-import Foreign.Ptr ( Ptr, FunPtr )
-import Graphics.Rendering.OpenGL.Raw.GetProcAddress ( getExtensionChecked )
-import System.IO.Unsafe ( unsafePerformIO )
-
-#include "HsOpenGLRaw.h"
-
-EXTENSION_ENTRY(dyn_glPixelTransformParameteri,ptr_glPixelTransformParameteri,"glPixelTransformParameteri",glPixelTransformParameteri,GLenum -> GLenum -> GLint -> IO ())
-EXTENSION_ENTRY(dyn_glPixelTransformParameterf,ptr_glPixelTransformParameterf,"glPixelTransformParameterf",glPixelTransformParameterf,GLenum -> GLenum -> GLfloat -> IO ())
-EXTENSION_ENTRY(dyn_glPixelTransformParameteriv,ptr_glPixelTransformParameteriv,"glPixelTransformParameteriv",glPixelTransformParameteriv,GLenum -> GLenum -> Ptr GLint -> IO ())
-EXTENSION_ENTRY(dyn_glPixelTransformParameterfv,ptr_glPixelTransformParameterfv,"glPixelTransformParameterfv",glPixelTransformParameterfv,GLenum -> GLenum -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(dyn_glGetPixelTransformParameteriv,ptr_glGetPixelTransformParameteriv,"glGetPixelTransformParameteriv",glGetPixelTransformParameteriv,GLenum -> GLenum -> Ptr GLint -> IO ())
-EXTENSION_ENTRY(dyn_glGetPixelTransformParameterfv,ptr_glGetPixelTransformParameterfv,"glGetPixelTransformParameterfv",glGetPixelTransformParameterfv,GLenum -> GLenum -> Ptr GLfloat -> IO ())
-
-gl_PIXEL_MAG_FILTER :: GLenum
-gl_PIXEL_MAG_FILTER = 0x8331
-
-gl_PIXEL_MIN_FILTER :: GLenum
-gl_PIXEL_MIN_FILTER = 0x8332
-
-gl_PIXEL_CUBIC_WEIGHT :: GLenum
-gl_PIXEL_CUBIC_WEIGHT = 0x8333
-
-gl_CUBIC :: GLenum
-gl_CUBIC = 0x8334
-
-gl_AVERAGE :: GLenum
-gl_AVERAGE = 0x8335
-
-gl_PIXEL_TRANSFORM_2D :: GLenum
-gl_PIXEL_TRANSFORM_2D = 0x8330
-
-gl_PIXEL_TRANSFORM_2D_STACK_DEPTH :: GLenum
-gl_PIXEL_TRANSFORM_2D_STACK_DEPTH = 0x8336
-
-gl_MAX_PIXEL_TRANSFORM_2D_STACK_DEPTH :: GLenum
-gl_MAX_PIXEL_TRANSFORM_2D_STACK_DEPTH = 0x8337
-
-gl_PIXEL_TRANSFORM_2D_MATRIX :: GLenum
-gl_PIXEL_TRANSFORM_2D_MATRIX = 0x8338
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/PointParameters.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/PointParameters.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT/PointParameters.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/EXT/PointParameters.hs
@@ -1,31 +1,27 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.PointParameters
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All raw functions and tokens from the EXT_point_parameters extension, see
--- <http://www.opengl.org/registry/specs/EXT/point_parameters.txt>.
+-- The <https://www.opengl.org/registry/specs/EXT/point_parameters.txt EXT_point_parameters> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.EXT.PointParameters (
-   -- * Functions
-   glPointParameterf,
-   glPointParameterfv,
-   -- * Tokens
-   gl_POINT_SIZE_MIN,
-   gl_POINT_SIZE_MAX,
-   gl_POINT_FADE_THRESHOLD_SIZE,
-   gl_DISTANCE_ATTENUATION
+  -- * Enums
+  gl_DISTANCE_ATTENUATION_EXT,
+  gl_POINT_FADE_THRESHOLD_SIZE_EXT,
+  gl_POINT_SIZE_MAX_EXT,
+  gl_POINT_SIZE_MIN_EXT,
+  -- * Functions
+  glPointParameterfEXT,
+  glPointParameterfvEXT
 ) where
 
-import Graphics.Rendering.OpenGL.Raw.ARB.Compatibility
-import Graphics.Rendering.OpenGL.Raw.Core32
-
-gl_DISTANCE_ATTENUATION :: GLenum
-gl_DISTANCE_ATTENUATION = gl_POINT_DISTANCE_ATTENUATION
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/PolygonOffset.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/PolygonOffset.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT/PolygonOffset.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/EXT/PolygonOffset.hs
@@ -1,26 +1,25 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.PolygonOffset
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All raw functions and tokens from the EXT_polygon_offset extension, see
---  <http://www.opengl.org/registry/specs/EXT/polygon_offset.txt>.
+-- The <https://www.opengl.org/registry/specs/EXT/polygon_offset.txt EXT_polygon_offset> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.EXT.PolygonOffset (
-   -- * Functions
-   glPolygonOffset,
-   -- * Tokens
-   gl_POLYGON_OFFSET_BIAS
+  -- * Enums
+  gl_POLYGON_OFFSET_BIAS_EXT,
+  gl_POLYGON_OFFSET_EXT,
+  gl_POLYGON_OFFSET_FACTOR_EXT,
+  -- * Functions
+  glPolygonOffsetEXT
 ) where
 
-import Graphics.Rendering.OpenGL.Raw.Core32
-
-gl_POLYGON_OFFSET_BIAS :: GLenum
-gl_POLYGON_OFFSET_BIAS = 0x8039
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/PolygonOffsetClamp.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/PolygonOffsetClamp.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/EXT/PolygonOffsetClamp.hs
@@ -0,0 +1,23 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.PolygonOffsetClamp
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/EXT/polygon_offset_clamp.txt EXT_polygon_offset_clamp> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.EXT.PolygonOffsetClamp (
+  -- * Enums
+  gl_POLYGON_OFFSET_CLAMP_EXT,
+  -- * Functions
+  glPolygonOffsetClampEXT
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/ProvokingVertex.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/ProvokingVertex.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT/ProvokingVertex.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/EXT/ProvokingVertex.hs
@@ -1,26 +1,26 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.ProvokingVertex
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All raw functions and tokens from the EXT_provoking_vertex, see
--- <http://www.opengl.org/registry/specs/EXT/EXT_provoking_vertex.txt>.
+-- The <https://www.opengl.org/registry/specs/EXT/provoking_vertex.txt EXT_provoking_vertex> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.EXT.ProvokingVertex (
-   -- * Functions
-   glProvokingVertex,
-   -- * Tokens
-   gl_FIRST_VERTEX_CONVENTION,
-   gl_LAST_VERTEX_CONVENTION,
-   gl_PROVOKING_VERTEX,
-   gl_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION
+  -- * Enums
+  gl_FIRST_VERTEX_CONVENTION_EXT,
+  gl_LAST_VERTEX_CONVENTION_EXT,
+  gl_PROVOKING_VERTEX_EXT,
+  gl_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION_EXT,
+  -- * Functions
+  glProvokingVertexEXT
 ) where
 
-import Graphics.Rendering.OpenGL.Raw.ARB.ProvokingVertex
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/RasterMultisample.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/RasterMultisample.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/EXT/RasterMultisample.hs
@@ -0,0 +1,28 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.RasterMultisample
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/EXT/raster_multisample.txt EXT_raster_multisample> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.EXT.RasterMultisample (
+  -- * Enums
+  gl_EFFECTIVE_RASTER_SAMPLES_EXT,
+  gl_MAX_RASTER_SAMPLES_EXT,
+  gl_MULTISAMPLE_RASTERIZATION_ALLOWED_EXT,
+  gl_RASTER_FIXED_SAMPLE_LOCATIONS_EXT,
+  gl_RASTER_MULTISAMPLE_EXT,
+  gl_RASTER_SAMPLES_EXT,
+  -- * Functions
+  glRasterSamplesEXT
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/RescaleNormal.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/RescaleNormal.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT/RescaleNormal.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/EXT/RescaleNormal.hs
@@ -1,21 +1,20 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.RescaleNormal
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All tokens from the EXT_rescale_normal extension, see
--- <http://www.opengl.org/registry/specs/EXT/rescale_normal.txt>.
+-- The <https://www.opengl.org/registry/specs/EXT/rescale_normal.txt EXT_rescale_normal> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.EXT.RescaleNormal (
-   -- * Tokens
-   gl_RESCALE_NORMAL
+  -- * Enums
+  gl_RESCALE_NORMAL_EXT
 ) where
 
-import Graphics.Rendering.OpenGL.Raw.ARB.Compatibility
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/SceneMarker.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/SceneMarker.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT/SceneMarker.hs
+++ /dev/null
@@ -1,30 +0,0 @@
-{-# LANGUAGE ForeignFunctionInterface, CPP #-}
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.SceneMarker
--- Copyright   :  (c) Sven Panne 2013
--- License     :  BSD3
---
--- Maintainer  :  Sven Panne <svenpanne@gmail.com>
--- Stability   :  stable
--- Portability :  portable
---
--- All raw functions from the EXT_scene_marker extension, see
--- <http://www.opengl.org/registry/specs/EXT/scene_marker.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.EXT.SceneMarker (
-   -- * Functions
-   glBeginScene,
-   glEndScene
-) where
-
-import Foreign.Ptr ( FunPtr )
-import Graphics.Rendering.OpenGL.Raw.GetProcAddress ( getExtensionChecked )
-import System.IO.Unsafe ( unsafePerformIO )
-
-#include "HsOpenGLRaw.h"
-
-EXTENSION_ENTRY(dyn_glBeginScene,ptr_glBeginScene,"glBeginScene",glBeginScene,IO ())
-EXTENSION_ENTRY(dyn_glEndScene,ptr_glEndScene,"glEndScene",glEndScene,IO ())
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/SecondaryColor.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/SecondaryColor.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT/SecondaryColor.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/EXT/SecondaryColor.hs
@@ -1,45 +1,45 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.SecondaryColor
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All raw functions and tokens from the EXT_secondary_color extension, see
--- <http://www.opengl.org/registry/specs/EXT/secondary_color.txt>.
+-- The <https://www.opengl.org/registry/specs/EXT/secondary_color.txt EXT_secondary_color> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.EXT.SecondaryColor (
-   -- * Functions
-   glSecondaryColor3b,
-   glSecondaryColor3s,
-   glSecondaryColor3i,
-   glSecondaryColor3f,
-   glSecondaryColor3d,
-   glSecondaryColor3ub,
-   glSecondaryColor3us,
-   glSecondaryColor3ui,
-   glSecondaryColor3bv,
-   glSecondaryColor3sv,
-   glSecondaryColor3iv,
-   glSecondaryColor3fv,
-   glSecondaryColor3dv,
-   glSecondaryColor3ubv,
-   glSecondaryColor3usv,
-   glSecondaryColor3uiv,
-   glSecondaryColorPointer,
-   -- * Tokens
-   gl_COLOR_SUM,
-   gl_CURRENT_SECONDARY_COLOR,
-   gl_SECONDARY_COLOR_ARRAY_SIZE,
-   gl_SECONDARY_COLOR_ARRAY_TYPE,
-   gl_SECONDARY_COLOR_ARRAY_STRIDE,
-   gl_SECONDARY_COLOR_ARRAY_POINTER,
-   gl_SECONDARY_COLOR_ARRAY
+  -- * Enums
+  gl_COLOR_SUM_EXT,
+  gl_CURRENT_SECONDARY_COLOR_EXT,
+  gl_SECONDARY_COLOR_ARRAY_EXT,
+  gl_SECONDARY_COLOR_ARRAY_POINTER_EXT,
+  gl_SECONDARY_COLOR_ARRAY_SIZE_EXT,
+  gl_SECONDARY_COLOR_ARRAY_STRIDE_EXT,
+  gl_SECONDARY_COLOR_ARRAY_TYPE_EXT,
+  -- * Functions
+  glSecondaryColor3bEXT,
+  glSecondaryColor3bvEXT,
+  glSecondaryColor3dEXT,
+  glSecondaryColor3dvEXT,
+  glSecondaryColor3fEXT,
+  glSecondaryColor3fvEXT,
+  glSecondaryColor3iEXT,
+  glSecondaryColor3ivEXT,
+  glSecondaryColor3sEXT,
+  glSecondaryColor3svEXT,
+  glSecondaryColor3ubEXT,
+  glSecondaryColor3ubvEXT,
+  glSecondaryColor3uiEXT,
+  glSecondaryColor3uivEXT,
+  glSecondaryColor3usEXT,
+  glSecondaryColor3usvEXT,
+  glSecondaryColorPointerEXT
 ) where
 
-import Graphics.Rendering.OpenGL.Raw.ARB.Compatibility
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/SeparateShaderObjects.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/SeparateShaderObjects.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/EXT/SeparateShaderObjects.hs
@@ -0,0 +1,25 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.SeparateShaderObjects
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/EXT/separate_shader_objects.txt EXT_separate_shader_objects> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.EXT.SeparateShaderObjects (
+  -- * Enums
+  gl_ACTIVE_PROGRAM_EXT,
+  -- * Functions
+  glActiveProgramEXT,
+  glCreateShaderProgramEXT,
+  glUseShaderProgramEXT
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/SeparateSpecularColor.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/SeparateSpecularColor.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT/SeparateSpecularColor.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/EXT/SeparateSpecularColor.hs
@@ -1,23 +1,22 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.SeparateSpecularColor
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All tokens from the EXT_separate_specular_color extension, see
--- <http://www.opengl.org/registry/specs/EXT/separate_specular_color.txt>.
+-- The <https://www.opengl.org/registry/specs/EXT/separate_specular_color.txt EXT_separate_specular_color> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.EXT.SeparateSpecularColor (
-   -- * Tokens
-   gl_LIGHT_MODEL_COLOR_CONTROL,
-   gl_SINGLE_COLOR,
-   gl_SEPARATE_SPECULAR_COLOR
+  -- * Enums
+  gl_LIGHT_MODEL_COLOR_CONTROL_EXT,
+  gl_SEPARATE_SPECULAR_COLOR_EXT,
+  gl_SINGLE_COLOR_EXT
 ) where
 
-import Graphics.Rendering.OpenGL.Raw.ARB.Compatibility
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/ShaderImageLoadStore.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/ShaderImageLoadStore.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/EXT/ShaderImageLoadStore.hs
@@ -0,0 +1,78 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.ShaderImageLoadStore
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/EXT/shader_image_load_store.txt EXT_shader_image_load_store> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.EXT.ShaderImageLoadStore (
+  -- * Enums
+  gl_ALL_BARRIER_BITS_EXT,
+  gl_ATOMIC_COUNTER_BARRIER_BIT_EXT,
+  gl_BUFFER_UPDATE_BARRIER_BIT_EXT,
+  gl_COMMAND_BARRIER_BIT_EXT,
+  gl_ELEMENT_ARRAY_BARRIER_BIT_EXT,
+  gl_FRAMEBUFFER_BARRIER_BIT_EXT,
+  gl_IMAGE_1D_ARRAY_EXT,
+  gl_IMAGE_1D_EXT,
+  gl_IMAGE_2D_ARRAY_EXT,
+  gl_IMAGE_2D_EXT,
+  gl_IMAGE_2D_MULTISAMPLE_ARRAY_EXT,
+  gl_IMAGE_2D_MULTISAMPLE_EXT,
+  gl_IMAGE_2D_RECT_EXT,
+  gl_IMAGE_3D_EXT,
+  gl_IMAGE_BINDING_ACCESS_EXT,
+  gl_IMAGE_BINDING_FORMAT_EXT,
+  gl_IMAGE_BINDING_LAYERED_EXT,
+  gl_IMAGE_BINDING_LAYER_EXT,
+  gl_IMAGE_BINDING_LEVEL_EXT,
+  gl_IMAGE_BINDING_NAME_EXT,
+  gl_IMAGE_BUFFER_EXT,
+  gl_IMAGE_CUBE_EXT,
+  gl_IMAGE_CUBE_MAP_ARRAY_EXT,
+  gl_INT_IMAGE_1D_ARRAY_EXT,
+  gl_INT_IMAGE_1D_EXT,
+  gl_INT_IMAGE_2D_ARRAY_EXT,
+  gl_INT_IMAGE_2D_EXT,
+  gl_INT_IMAGE_2D_MULTISAMPLE_ARRAY_EXT,
+  gl_INT_IMAGE_2D_MULTISAMPLE_EXT,
+  gl_INT_IMAGE_2D_RECT_EXT,
+  gl_INT_IMAGE_3D_EXT,
+  gl_INT_IMAGE_BUFFER_EXT,
+  gl_INT_IMAGE_CUBE_EXT,
+  gl_INT_IMAGE_CUBE_MAP_ARRAY_EXT,
+  gl_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS_EXT,
+  gl_MAX_IMAGE_SAMPLES_EXT,
+  gl_MAX_IMAGE_UNITS_EXT,
+  gl_PIXEL_BUFFER_BARRIER_BIT_EXT,
+  gl_SHADER_IMAGE_ACCESS_BARRIER_BIT_EXT,
+  gl_TEXTURE_FETCH_BARRIER_BIT_EXT,
+  gl_TEXTURE_UPDATE_BARRIER_BIT_EXT,
+  gl_TRANSFORM_FEEDBACK_BARRIER_BIT_EXT,
+  gl_UNIFORM_BARRIER_BIT_EXT,
+  gl_UNSIGNED_INT_IMAGE_1D_ARRAY_EXT,
+  gl_UNSIGNED_INT_IMAGE_1D_EXT,
+  gl_UNSIGNED_INT_IMAGE_2D_ARRAY_EXT,
+  gl_UNSIGNED_INT_IMAGE_2D_EXT,
+  gl_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY_EXT,
+  gl_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_EXT,
+  gl_UNSIGNED_INT_IMAGE_2D_RECT_EXT,
+  gl_UNSIGNED_INT_IMAGE_3D_EXT,
+  gl_UNSIGNED_INT_IMAGE_BUFFER_EXT,
+  gl_UNSIGNED_INT_IMAGE_CUBE_EXT,
+  gl_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY_EXT,
+  gl_VERTEX_ATTRIB_ARRAY_BARRIER_BIT_EXT,
+  -- * Functions
+  glBindImageTextureEXT,
+  glMemoryBarrierEXT
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/SharedTexturePalette.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/SharedTexturePalette.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT/SharedTexturePalette.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/EXT/SharedTexturePalette.hs
@@ -1,24 +1,20 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.SharedTexturePalette
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All tokens from the EXT_shared_texture_palette extension, see
--- <http://www.opengl.org/registry/specs/EXT/shared_texture_palette.txt>.
+-- The <https://www.opengl.org/registry/specs/EXT/shared_texture_palette.txt EXT_shared_texture_palette> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.EXT.SharedTexturePalette (
-   -- * Tokens
-   gl_SHARED_TEXTURE_PALETTE
+  -- * Enums
+  gl_SHARED_TEXTURE_PALETTE_EXT
 ) where
 
-import Graphics.Rendering.OpenGL.Raw.Core32
-
-gl_SHARED_TEXTURE_PALETTE :: GLenum
-gl_SHARED_TEXTURE_PALETTE = 0x81FB
+import Graphics.Rendering.OpenGL.Raw.Tokens
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
@@ -1,40 +1,24 @@
-{-# LANGUAGE ForeignFunctionInterface, CPP #-}
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.StencilClearTag
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All raw functions and tokens from the EXT_stencil_clear_tag extension not
--- already in the OpenGL 3.1 core, see
--- <http://www.opengl.org/registry/specs/EXT/stencil_clear_tag.txt>.
+-- The <https://www.opengl.org/registry/specs/EXT/stencil_clear_tag.txt EXT_stencil_clear_tag> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.EXT.StencilClearTag (
-   -- * Functions
-   glStencilClearTag,
-   -- * Tokens
-   gl_STENCIL_TAG_BITS,
-   gl_STENCIL_CLEAR_TAG_VALUE
+  -- * Enums
+  gl_STENCIL_CLEAR_TAG_VALUE_EXT,
+  gl_STENCIL_TAG_BITS_EXT,
+  -- * Functions
+  glStencilClearTagEXT
 ) where
 
-import Foreign.C.Types
-import Graphics.Rendering.OpenGL.Raw.Types
-import Foreign.Ptr ( FunPtr )
-import Graphics.Rendering.OpenGL.Raw.GetProcAddress ( getExtensionChecked )
-import System.IO.Unsafe ( unsafePerformIO )
-
-#include "HsOpenGLRaw.h"
-
-EXTENSION_ENTRY(dyn_glStencilClearTag,ptr_glStencilClearTag,"glStencilClearTag",glStencilClearTag,GLsizei -> GLuint -> IO ())
-
-gl_STENCIL_TAG_BITS :: GLenum
-gl_STENCIL_TAG_BITS = 0x88F2
-
-gl_STENCIL_CLEAR_TAG_VALUE :: GLenum
-gl_STENCIL_CLEAR_TAG_VALUE = 0x88F3
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
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
@@ -1,39 +1,24 @@
-{-# LANGUAGE ForeignFunctionInterface, CPP #-}
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.StencilTwoSide
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All raw functions and tokens from the EXT_stencil_two_side extension, see
--- <http://www.opengl.org/registry/specs/EXT/stencil_two_side.txt>.
+-- The <https://www.opengl.org/registry/specs/EXT/stencil_two_side.txt EXT_stencil_two_side> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.EXT.StencilTwoSide (
-   -- * Functions
-   glActiveStencilFace,
-   -- * Tokens
-   gl_STENCIL_TEST_TWO_SIDE,
-   gl_ACTIVE_STENCIL_FACE
+  -- * Enums
+  gl_ACTIVE_STENCIL_FACE_EXT,
+  gl_STENCIL_TEST_TWO_SIDE_EXT,
+  -- * Functions
+  glActiveStencilFaceEXT
 ) where
 
-import Foreign.C.Types
-import Graphics.Rendering.OpenGL.Raw.Types
-import Foreign.Ptr ( FunPtr )
-import Graphics.Rendering.OpenGL.Raw.GetProcAddress ( getExtensionChecked )
-import System.IO.Unsafe ( unsafePerformIO )
-
-#include "HsOpenGLRaw.h"
-
-EXTENSION_ENTRY(dyn_glActiveStencilFace,ptr_glActiveStencilFace,"glActiveStencilFace",glActiveStencilFace,GLenum -> IO ())
-
-gl_STENCIL_TEST_TWO_SIDE :: GLenum
-gl_STENCIL_TEST_TWO_SIDE = 0x8910
-
-gl_ACTIVE_STENCIL_FACE :: GLenum
-gl_ACTIVE_STENCIL_FACE = 0x8911
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/StencilWrap.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/StencilWrap.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT/StencilWrap.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/EXT/StencilWrap.hs
@@ -1,23 +1,21 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.StencilWrap
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All tokens from the EXT_stencil_wrap extension, see
--- <http://www.opengl.org/registry/specs/EXT/stencil_wrap.txt>.
+-- The <https://www.opengl.org/registry/specs/EXT/stencil_wrap.txt EXT_stencil_wrap> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.EXT.StencilWrap (
-   -- * Tokens
-   gl_INCR_WRAP,
-   gl_DECR_WRAP
-
+  -- * Enums
+  gl_DECR_WRAP_EXT,
+  gl_INCR_WRAP_EXT
 ) where
 
-import Graphics.Rendering.OpenGL.Raw.Core32
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/Subtexture.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/Subtexture.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT/Subtexture.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/EXT/Subtexture.hs
@@ -1,23 +1,21 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.Subtexture
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All raw functions from the EXT_subtexture extension, see
--- <http://www.opengl.org/registry/specs/EXT/subtexture.txt>.
+-- The <https://www.opengl.org/registry/specs/EXT/subtexture.txt EXT_subtexture> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.EXT.Subtexture (
-   -- * Functions
-   glTexSubImage1D,
-   glTexSubImage2D,
-   glTexSubImage3D
+  -- * Functions
+  glTexSubImage1DEXT,
+  glTexSubImage2DEXT
 ) where
 
-import Graphics.Rendering.OpenGL.Raw.Core32
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/Texture.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/Texture.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT/Texture.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/EXT/Texture.hs
@@ -1,70 +1,62 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.Texture
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All raw functions and tokens from the EXT_texture extension, see
--- <http://www.opengl.org/registry/specs/EXT/texture.txt>.
+-- The <https://www.opengl.org/registry/specs/EXT/texture.txt EXT_texture> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.EXT.Texture (
-   -- * Tokens
-   gl_ALPHA4,
-   gl_ALPHA8,
-   gl_ALPHA12,
-   gl_ALPHA16,
-   gl_LUMINANCE4,
-   gl_LUMINANCE8,
-   gl_LUMINANCE12,
-   gl_LUMINANCE16,
-   gl_LUMINANCE4_ALPHA4,
-   gl_LUMINANCE6_ALPHA2,
-   gl_LUMINANCE8_ALPHA8,
-   gl_LUMINANCE12_ALPHA4,
-   gl_LUMINANCE12_ALPHA12,
-   gl_LUMINANCE16_ALPHA16,
-   gl_INTENSITY,
-   gl_INTENSITY4,
-   gl_INTENSITY8,
-   gl_INTENSITY12,
-   gl_INTENSITY16,
-   gl_RGB2,
-   gl_RGB4,
-   gl_RGB5,
-   gl_RGB8,
-   gl_RGB10,
-   gl_RGB12,
-   gl_RGB16,
-   gl_RGBA2,
-   gl_RGBA4,
-   gl_RGB5_A1,
-   gl_RGBA8,
-   gl_RGB10_A2,
-   gl_RGBA12,
-   gl_RGBA16,
-   gl_TEXTURE_RED_SIZE,
-   gl_TEXTURE_GREEN_SIZE,
-   gl_TEXTURE_BLUE_SIZE,
-   gl_TEXTURE_ALPHA_SIZE,
-   gl_TEXTURE_LUMINANCE_SIZE,
-   gl_TEXTURE_INTENSITY_SIZE,
-   gl_REPLACE,
-   gl_PROXY_TEXTURE_1D,
-   gl_PROXY_TEXTURE_2D,
-   gl_TEXTURE_TOO_LARGE
+  -- * Enums
+  gl_ALPHA12_EXT,
+  gl_ALPHA16_EXT,
+  gl_ALPHA4_EXT,
+  gl_ALPHA8_EXT,
+  gl_INTENSITY12_EXT,
+  gl_INTENSITY16_EXT,
+  gl_INTENSITY4_EXT,
+  gl_INTENSITY8_EXT,
+  gl_INTENSITY_EXT,
+  gl_LUMINANCE12_ALPHA12_EXT,
+  gl_LUMINANCE12_ALPHA4_EXT,
+  gl_LUMINANCE12_EXT,
+  gl_LUMINANCE16_ALPHA16_EXT,
+  gl_LUMINANCE16_EXT,
+  gl_LUMINANCE4_ALPHA4_EXT,
+  gl_LUMINANCE4_EXT,
+  gl_LUMINANCE6_ALPHA2_EXT,
+  gl_LUMINANCE8_ALPHA8_EXT,
+  gl_LUMINANCE8_EXT,
+  gl_PROXY_TEXTURE_1D_EXT,
+  gl_PROXY_TEXTURE_2D_EXT,
+  gl_REPLACE_EXT,
+  gl_RGB10_A2_EXT,
+  gl_RGB10_EXT,
+  gl_RGB12_EXT,
+  gl_RGB16_EXT,
+  gl_RGB2_EXT,
+  gl_RGB4_EXT,
+  gl_RGB5_A1_EXT,
+  gl_RGB5_EXT,
+  gl_RGB8_EXT,
+  gl_RGBA12_EXT,
+  gl_RGBA16_EXT,
+  gl_RGBA2_EXT,
+  gl_RGBA4_EXT,
+  gl_RGBA8_EXT,
+  gl_TEXTURE_ALPHA_SIZE_EXT,
+  gl_TEXTURE_BLUE_SIZE_EXT,
+  gl_TEXTURE_GREEN_SIZE_EXT,
+  gl_TEXTURE_INTENSITY_SIZE_EXT,
+  gl_TEXTURE_LUMINANCE_SIZE_EXT,
+  gl_TEXTURE_RED_SIZE_EXT,
+  gl_TEXTURE_TOO_LARGE_EXT
 ) where
 
-import Graphics.Rendering.OpenGL.Raw.ARB.Compatibility
-import Graphics.Rendering.OpenGL.Raw.Core32
-
-gl_RGB2 :: GLenum
-gl_RGB2 = 0x804E
-
-gl_TEXTURE_TOO_LARGE :: GLenum
-gl_TEXTURE_TOO_LARGE = 0x8065
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/Texture3D.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/Texture3D.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT/Texture3D.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/EXT/Texture3D.hs
@@ -1,31 +1,32 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.Texture3D
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All raw functions and tokens from the EXT_texture3d extension, see
--- <http://www.opengl.org/registry/specs/EXT/texture3d.txt>.
+-- The <https://www.opengl.org/registry/specs/EXT/texture3D.txt EXT_texture3D> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.EXT.Texture3D (
-   -- * Functions
-   glTexImage3D,
-   -- * Tokens
-   gl_PACK_SKIP_IMAGES,
-   gl_PACK_IMAGE_HEIGHT,
-   gl_UNPACK_SKIP_IMAGES,
-   gl_UNPACK_IMAGE_HEIGHT,
-   gl_TEXTURE_3D,
-   gl_PROXY_TEXTURE_3D,
-   gl_TEXTURE_DEPTH,
-   gl_TEXTURE_WRAP_R,
-   gl_MAX_3D_TEXTURE_SIZE
+  -- * Enums
+  gl_MAX_3D_TEXTURE_SIZE_EXT,
+  gl_PACK_IMAGE_HEIGHT_EXT,
+  gl_PACK_SKIP_IMAGES_EXT,
+  gl_PROXY_TEXTURE_3D_EXT,
+  gl_TEXTURE_3D_EXT,
+  gl_TEXTURE_DEPTH_EXT,
+  gl_TEXTURE_WRAP_R_EXT,
+  gl_UNPACK_IMAGE_HEIGHT_EXT,
+  gl_UNPACK_SKIP_IMAGES_EXT,
+  -- * Functions
+  glTexImage3DEXT,
+  glTexSubImage3DEXT
 ) where
 
-import Graphics.Rendering.OpenGL.Raw.Core32
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/TextureArray.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/TextureArray.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT/TextureArray.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/EXT/TextureArray.hs
@@ -1,33 +1,31 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.TextureArray
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All tokens from the EXT_abgr extension, see
--- <http://www.opengl.org/registry/specs/EXT/texture_array.txt>.
+-- The <https://www.opengl.org/registry/specs/EXT/texture_array.txt EXT_texture_array> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.EXT.TextureArray (
-   -- * Tokens
-   gl_TEXTURE_1D_ARRAY,
-   gl_PROXY_TEXTURE_1D_ARRAY,
-   gl_TEXTURE_2D_ARRAY,
-   gl_PROXY_TEXTURE_2D_ARRAY,
-   gl_TEXTURE_BINDING_1D_ARRAY,
-   gl_TEXTURE_BINDING_2D_ARRAY,
-   gl_MAX_ARRAY_TEXTURE_LAYERS,
-   gl_COMPARE_REF_DEPTH_TO_TEXTURE,
-   gl_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER
+  -- * Enums
+  gl_COMPARE_REF_DEPTH_TO_TEXTURE_EXT,
+  gl_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT,
+  gl_MAX_ARRAY_TEXTURE_LAYERS_EXT,
+  gl_PROXY_TEXTURE_1D_ARRAY_EXT,
+  gl_PROXY_TEXTURE_2D_ARRAY_EXT,
+  gl_TEXTURE_1D_ARRAY_EXT,
+  gl_TEXTURE_2D_ARRAY_EXT,
+  gl_TEXTURE_BINDING_1D_ARRAY_EXT,
+  gl_TEXTURE_BINDING_2D_ARRAY_EXT,
+  -- * Functions
+  glFramebufferTextureLayerEXT
 ) where
 
-import Graphics.Rendering.OpenGL.Raw.Core32
-
--- Same as gl_COMPARE_REF_TO_TEXTURE and gl_COMPARE_R_TO_TEXTURE.
-gl_COMPARE_REF_DEPTH_TO_TEXTURE :: GLenum
-gl_COMPARE_REF_DEPTH_TO_TEXTURE = 0x884E
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/TextureBufferObject.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/TextureBufferObject.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/EXT/TextureBufferObject.hs
@@ -0,0 +1,27 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.TextureBufferObject
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/EXT/texture_buffer_object.txt EXT_texture_buffer_object> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.EXT.TextureBufferObject (
+  -- * Enums
+  gl_MAX_TEXTURE_BUFFER_SIZE_EXT,
+  gl_TEXTURE_BINDING_BUFFER_EXT,
+  gl_TEXTURE_BUFFER_DATA_STORE_BINDING_EXT,
+  gl_TEXTURE_BUFFER_EXT,
+  gl_TEXTURE_BUFFER_FORMAT_EXT,
+  -- * Functions
+  glTexBufferEXT
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/TextureCompressionDXT1.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/TextureCompressionDXT1.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT/TextureCompressionDXT1.hs
+++ /dev/null
@@ -1,23 +0,0 @@
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.TextureCompressionDXT1
--- Copyright   :  (c) Sven Panne 2013
--- License     :  BSD3
---
--- Maintainer  :  Sven Panne <svenpanne@gmail.com>
--- Stability   :  stable
--- Portability :  portable
---
--- All raw functions and tokens from the EXT_texture_compression_dxt1 extension
--- not already in the OpenGL 3.1 core, see
--- <http://www.opengl.org/registry/specs/EXT/texture_compression_dxt1.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.EXT.TextureCompressionDXT1 (
-   -- * Tokens
-   gl_COMPRESSED_RGB_S3TC_DXT1,
-   gl_COMPRESSED_RGBA_S3TC_DXT1
-) where
-
-import Graphics.Rendering.OpenGL.Raw.EXT.TextureCompressionS3TC
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/TextureCompressionLATC.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/TextureCompressionLATC.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT/TextureCompressionLATC.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/EXT/TextureCompressionLATC.hs
@@ -1,37 +1,23 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.TextureCompressionLATC
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All raw functions and tokens from the EXT_texture_compression_latc extension
--- not already in the OpenGL 3.1 core, see
--- <http://www.opengl.org/registry/specs/EXT/texture_compression_latc.txt>.
+-- The <https://www.opengl.org/registry/specs/EXT/texture_compression_latc.txt EXT_texture_compression_latc> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.EXT.TextureCompressionLATC (
-   -- * Tokens
-   gl_COMPRESSED_LUMINANCE_LATC1,
-   gl_COMPRESSED_SIGNED_LUMINANCE_LATC1,
-   gl_COMPRESSED_LUMINANCE_ALPHA_LATC2,
-   gl_COMPRESSED_SIGNED_LUMINANCE_ALPHA_LATC2
+  -- * Enums
+  gl_COMPRESSED_LUMINANCE_ALPHA_LATC2_EXT,
+  gl_COMPRESSED_LUMINANCE_LATC1_EXT,
+  gl_COMPRESSED_SIGNED_LUMINANCE_ALPHA_LATC2_EXT,
+  gl_COMPRESSED_SIGNED_LUMINANCE_LATC1_EXT
 ) where
 
-import Graphics.Rendering.OpenGL.Raw.Core32
-
-gl_COMPRESSED_LUMINANCE_LATC1 :: GLenum
-gl_COMPRESSED_LUMINANCE_LATC1 = 0x8C70
-
-gl_COMPRESSED_SIGNED_LUMINANCE_LATC1 :: GLenum
-gl_COMPRESSED_SIGNED_LUMINANCE_LATC1 = 0x8C71
-
-gl_COMPRESSED_LUMINANCE_ALPHA_LATC2 :: GLenum
-gl_COMPRESSED_LUMINANCE_ALPHA_LATC2 = 0x8C72
-
-gl_COMPRESSED_SIGNED_LUMINANCE_ALPHA_LATC2 :: GLenum
-gl_COMPRESSED_SIGNED_LUMINANCE_ALPHA_LATC2 = 0x8C73
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/TextureCompressionRGTC.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/TextureCompressionRGTC.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT/TextureCompressionRGTC.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/EXT/TextureCompressionRGTC.hs
@@ -1,30 +1,23 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.TextureCompressionRGTC
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All raw functions and tokens from the EXT_texture_compression_rgtc extension,
--- see <http://www.opengl.org/registry/specs/EXT/texture_compression_rgtc.txt>.
+-- The <https://www.opengl.org/registry/specs/EXT/texture_compression_rgtc.txt EXT_texture_compression_rgtc> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.EXT.TextureCompressionRGTC (
-   -- * Tokens
-   gl_COMPRESSED_RED_RGTC1,
-   gl_COMPRESSED_SIGNED_RED_RGTC1,
-   gl_COMPRESSED_RED_GREEN_RGTC2,
-   gl_COMPRESSED_SIGNED_RED_GREEN_RGTC2
+  -- * Enums
+  gl_COMPRESSED_RED_GREEN_RGTC2_EXT,
+  gl_COMPRESSED_RED_RGTC1_EXT,
+  gl_COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT,
+  gl_COMPRESSED_SIGNED_RED_RGTC1_EXT
 ) where
 
-import Graphics.Rendering.OpenGL.Raw.Core32
-
-gl_COMPRESSED_RED_GREEN_RGTC2 :: GLenum
-gl_COMPRESSED_RED_GREEN_RGTC2 = 0x8DBD
-
-gl_COMPRESSED_SIGNED_RED_GREEN_RGTC2 :: GLenum
-gl_COMPRESSED_SIGNED_RED_GREEN_RGTC2 = 0x8DBE
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/TextureCompressionS3TC.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/TextureCompressionS3TC.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT/TextureCompressionS3TC.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/EXT/TextureCompressionS3TC.hs
@@ -1,36 +1,23 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.TextureCompressionS3TC
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All tokens from the EXT_texture_compression_s3tc extension, see
--- <http://www.opengl.org/registry/specs/EXT/texture_compression_s3tc.txt>.
+-- The <https://www.opengl.org/registry/specs/EXT/texture_compression_s3tc.txt EXT_texture_compression_s3tc> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.EXT.TextureCompressionS3TC (
-   -- * Tokens
-   gl_COMPRESSED_RGB_S3TC_DXT1,
-   gl_COMPRESSED_RGBA_S3TC_DXT1,
-   gl_COMPRESSED_RGBA_S3TC_DXT3,
-   gl_COMPRESSED_RGBA_S3TC_DXT5
+  -- * Enums
+  gl_COMPRESSED_RGBA_S3TC_DXT1_EXT,
+  gl_COMPRESSED_RGBA_S3TC_DXT3_EXT,
+  gl_COMPRESSED_RGBA_S3TC_DXT5_EXT,
+  gl_COMPRESSED_RGB_S3TC_DXT1_EXT
 ) where
 
-import Graphics.Rendering.OpenGL.Raw.Core32
-
-gl_COMPRESSED_RGB_S3TC_DXT1 :: GLenum
-gl_COMPRESSED_RGB_S3TC_DXT1 = 0x83F0
-
-gl_COMPRESSED_RGBA_S3TC_DXT1 :: GLenum
-gl_COMPRESSED_RGBA_S3TC_DXT1 = 0x83F1
-
-gl_COMPRESSED_RGBA_S3TC_DXT3 :: GLenum
-gl_COMPRESSED_RGBA_S3TC_DXT3 = 0x83F2
-
-gl_COMPRESSED_RGBA_S3TC_DXT5 :: GLenum
-gl_COMPRESSED_RGBA_S3TC_DXT5 = 0x83F3
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/TextureCubeMap.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/TextureCubeMap.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/EXT/TextureCubeMap.hs
@@ -0,0 +1,31 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.TextureCubeMap
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/EXT/texture_cube_map.txt EXT_texture_cube_map> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.EXT.TextureCubeMap (
+  -- * Enums
+  gl_MAX_CUBE_MAP_TEXTURE_SIZE_EXT,
+  gl_NORMAL_MAP_EXT,
+  gl_PROXY_TEXTURE_CUBE_MAP_EXT,
+  gl_REFLECTION_MAP_EXT,
+  gl_TEXTURE_BINDING_CUBE_MAP_EXT,
+  gl_TEXTURE_CUBE_MAP_EXT,
+  gl_TEXTURE_CUBE_MAP_NEGATIVE_X_EXT,
+  gl_TEXTURE_CUBE_MAP_NEGATIVE_Y_EXT,
+  gl_TEXTURE_CUBE_MAP_NEGATIVE_Z_EXT,
+  gl_TEXTURE_CUBE_MAP_POSITIVE_X_EXT,
+  gl_TEXTURE_CUBE_MAP_POSITIVE_Y_EXT,
+  gl_TEXTURE_CUBE_MAP_POSITIVE_Z_EXT
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/TextureEnvAdd.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/TextureEnvAdd.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT/TextureEnvAdd.hs
+++ /dev/null
@@ -1,21 +0,0 @@
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.TextureEnvAdd
--- Copyright   :  (c) Sven Panne 2013
--- License     :  BSD3
---
--- Maintainer  :  Sven Panne <svenpanne@gmail.com>
--- Stability   :  stable
--- Portability :  portable
---
--- All tokens from the EXT_texture_env_add extension, see
--- <http://www.opengl.org/registry/specs/EXT/texture_env_add.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.EXT.TextureEnvAdd (
-   -- * Tokens
-   gl_ADD
-) where
-
-import Graphics.Rendering.OpenGL.Raw.ARB.Compatibility
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/TextureEnvCombine.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/TextureEnvCombine.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT/TextureEnvCombine.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/EXT/TextureEnvCombine.hs
@@ -1,42 +1,40 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.TextureEnvCombine
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All raw functions and tokens from the EXT_texture_env_combine extension not
--- already in the OpenGL 3.1 core, see
--- <http://www.opengl.org/registry/specs/EXT/texture_env_combine.txt>.
+-- The <https://www.opengl.org/registry/specs/EXT/texture_env_combine.txt EXT_texture_env_combine> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.EXT.TextureEnvCombine (
-   -- * Tokens
-   gl_COMBINE,
-   gl_COMBINE_RGB,
-   gl_COMBINE_ALPHA,
-   gl_SOURCE0_RGB,
-   gl_SOURCE1_RGB,
-   gl_SOURCE2_RGB,
-   gl_SOURCE0_ALPHA,
-   gl_SOURCE1_ALPHA,
-   gl_SOURCE2_ALPHA,
-   gl_OPERAND0_RGB,
-   gl_OPERAND1_RGB,
-   gl_OPERAND2_RGB,
-   gl_OPERAND0_ALPHA,
-   gl_OPERAND1_ALPHA,
-   gl_OPERAND2_ALPHA,
-   gl_RGB_SCALE,
-   gl_ADD_SIGNED,
-   gl_INTERPOLATE,
-   gl_CONSTANT,
-   gl_PRIMARY_COLOR,
-   gl_PREVIOUS
+  -- * Enums
+  gl_ADD_SIGNED_EXT,
+  gl_COMBINE_ALPHA_EXT,
+  gl_COMBINE_EXT,
+  gl_COMBINE_RGB_EXT,
+  gl_CONSTANT_EXT,
+  gl_INTERPOLATE_EXT,
+  gl_OPERAND0_ALPHA_EXT,
+  gl_OPERAND0_RGB_EXT,
+  gl_OPERAND1_ALPHA_EXT,
+  gl_OPERAND1_RGB_EXT,
+  gl_OPERAND2_ALPHA_EXT,
+  gl_OPERAND2_RGB_EXT,
+  gl_PREVIOUS_EXT,
+  gl_PRIMARY_COLOR_EXT,
+  gl_RGB_SCALE_EXT,
+  gl_SOURCE0_ALPHA_EXT,
+  gl_SOURCE0_RGB_EXT,
+  gl_SOURCE1_ALPHA_EXT,
+  gl_SOURCE1_RGB_EXT,
+  gl_SOURCE2_ALPHA_EXT,
+  gl_SOURCE2_RGB_EXT
 ) where
 
-import Graphics.Rendering.OpenGL.Raw.ARB.Compatibility
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/TextureEnvDot3.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/TextureEnvDot3.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT/TextureEnvDot3.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/EXT/TextureEnvDot3.hs
@@ -1,23 +1,21 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.TextureEnvDot3
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All raw functions and tokens from the EXT_texture_env_dot3 extension not
--- already in the OpenGL 3.1 core, see
--- <http://www.opengl.org/registry/specs/EXT/texture_env_dot3.txt>.
+-- The <https://www.opengl.org/registry/specs/EXT/texture_env_dot3.txt EXT_texture_env_dot3> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.EXT.TextureEnvDot3 (
-   -- * Tokens
-   gl_DOT3_RGB,
-   gl_DOT3_RGBA
+  -- * Enums
+  gl_DOT3_RGBA_EXT,
+  gl_DOT3_RGB_EXT
 ) where
 
-import Graphics.Rendering.OpenGL.Raw.ARB.Compatibility
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/TextureFilterAnisotropic.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/TextureFilterAnisotropic.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT/TextureFilterAnisotropic.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/EXT/TextureFilterAnisotropic.hs
@@ -1,28 +1,21 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.TextureFilterAnisotropic
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All tokens from the EXT_texture_filter_anisotropic, see
--- <http://www.opengl.org/registry/specs/EXT/texture_filter_anisotropic.txt>.
+-- The <https://www.opengl.org/registry/specs/EXT/texture_filter_anisotropic.txt EXT_texture_filter_anisotropic> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.EXT.TextureFilterAnisotropic (
-   -- * Tokens
-   gl_TEXTURE_MAX_ANISOTROPY,
-   gl_MAX_TEXTURE_MAX_ANISOTROPY
+  -- * Enums
+  gl_MAX_TEXTURE_MAX_ANISOTROPY_EXT,
+  gl_TEXTURE_MAX_ANISOTROPY_EXT
 ) where
 
-import Graphics.Rendering.OpenGL.Raw.Core32
-
-gl_TEXTURE_MAX_ANISOTROPY :: GLenum
-gl_TEXTURE_MAX_ANISOTROPY = 0x84FE
-
-gl_MAX_TEXTURE_MAX_ANISOTROPY :: GLenum
-gl_MAX_TEXTURE_MAX_ANISOTROPY = 0x84FF
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/TextureFilterMinmax.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/TextureFilterMinmax.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/EXT/TextureFilterMinmax.hs
@@ -0,0 +1,28 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.TextureFilterMinmax
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/EXT/texture_filter_minmax.txt EXT_texture_filter_minmax> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.EXT.TextureFilterMinmax (
+  -- * Enums
+  gl_EFFECTIVE_RASTER_SAMPLES_EXT,
+  gl_MAX_RASTER_SAMPLES_EXT,
+  gl_MULTISAMPLE_RASTERIZATION_ALLOWED_EXT,
+  gl_RASTER_FIXED_SAMPLE_LOCATIONS_EXT,
+  gl_RASTER_MULTISAMPLE_EXT,
+  gl_RASTER_SAMPLES_EXT,
+  -- * Functions
+  glRasterSamplesEXT
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
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
@@ -1,140 +1,74 @@
-{-# LANGUAGE ForeignFunctionInterface, CPP #-}
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.TextureInteger
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All raw functions and tokens from the EXT_texture_integer extension not
--- already in the OpenGL 3.1 core, see
--- <http://www.opengl.org/registry/specs/EXT/texture_integer.txt>.
+-- The <https://www.opengl.org/registry/specs/EXT/texture_integer.txt EXT_texture_integer> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.EXT.TextureInteger (
-   -- * Functions
-   glClearColorIi,
-   glClearColorIui,
-   -- * Tokens
-   gl_ALPHA32UI,
-   gl_INTENSITY32UI,
-   gl_LUMINANCE32UI,
-   gl_LUMINANCE_ALPHA32UI,
-   gl_ALPHA16UI,
-   gl_INTENSITY16UI,
-   gl_LUMINANCE16UI,
-   gl_LUMINANCE_ALPHA16UI,
-   gl_ALPHA8UI,
-   gl_INTENSITY8UI,
-   gl_LUMINANCE8UI,
-   gl_LUMINANCE_ALPHA8UI,
-   gl_ALPHA32I,
-   gl_INTENSITY32I,
-   gl_LUMINANCE32I,
-   gl_LUMINANCE_ALPHA32I,
-   gl_ALPHA16I,
-   gl_INTENSITY16I,
-   gl_LUMINANCE16I,
-   gl_LUMINANCE_ALPHA16I,
-   gl_ALPHA8I,
-   gl_INTENSITY8I,
-   gl_LUMINANCE8I,
-   gl_LUMINANCE_ALPHA8I,
-   gl_ALPHA_INTEGER,
-   gl_LUMINANCE_INTEGER,
-   gl_LUMINANCE_ALPHA_INTEGER
+  -- * Enums
+  gl_ALPHA16I_EXT,
+  gl_ALPHA16UI_EXT,
+  gl_ALPHA32I_EXT,
+  gl_ALPHA32UI_EXT,
+  gl_ALPHA8I_EXT,
+  gl_ALPHA8UI_EXT,
+  gl_ALPHA_INTEGER_EXT,
+  gl_BGRA_INTEGER_EXT,
+  gl_BGR_INTEGER_EXT,
+  gl_BLUE_INTEGER_EXT,
+  gl_GREEN_INTEGER_EXT,
+  gl_INTENSITY16I_EXT,
+  gl_INTENSITY16UI_EXT,
+  gl_INTENSITY32I_EXT,
+  gl_INTENSITY32UI_EXT,
+  gl_INTENSITY8I_EXT,
+  gl_INTENSITY8UI_EXT,
+  gl_LUMINANCE16I_EXT,
+  gl_LUMINANCE16UI_EXT,
+  gl_LUMINANCE32I_EXT,
+  gl_LUMINANCE32UI_EXT,
+  gl_LUMINANCE8I_EXT,
+  gl_LUMINANCE8UI_EXT,
+  gl_LUMINANCE_ALPHA16I_EXT,
+  gl_LUMINANCE_ALPHA16UI_EXT,
+  gl_LUMINANCE_ALPHA32I_EXT,
+  gl_LUMINANCE_ALPHA32UI_EXT,
+  gl_LUMINANCE_ALPHA8I_EXT,
+  gl_LUMINANCE_ALPHA8UI_EXT,
+  gl_LUMINANCE_ALPHA_INTEGER_EXT,
+  gl_LUMINANCE_INTEGER_EXT,
+  gl_RED_INTEGER_EXT,
+  gl_RGB16I_EXT,
+  gl_RGB16UI_EXT,
+  gl_RGB32I_EXT,
+  gl_RGB32UI_EXT,
+  gl_RGB8I_EXT,
+  gl_RGB8UI_EXT,
+  gl_RGBA16I_EXT,
+  gl_RGBA16UI_EXT,
+  gl_RGBA32I_EXT,
+  gl_RGBA32UI_EXT,
+  gl_RGBA8I_EXT,
+  gl_RGBA8UI_EXT,
+  gl_RGBA_INTEGER_EXT,
+  gl_RGBA_INTEGER_MODE_EXT,
+  gl_RGB_INTEGER_EXT,
+  -- * Functions
+  glClearColorIiEXT,
+  glClearColorIuiEXT,
+  glGetTexParameterIivEXT,
+  glGetTexParameterIuivEXT,
+  glTexParameterIivEXT,
+  glTexParameterIuivEXT
 ) where
 
-import Foreign.C.Types
-import Graphics.Rendering.OpenGL.Raw.Types
-import Graphics.Rendering.OpenGL.Raw.ARB.Compatibility
-import Foreign.Ptr ( FunPtr )
-import Graphics.Rendering.OpenGL.Raw.GetProcAddress ( getExtensionChecked )
-import System.IO.Unsafe ( unsafePerformIO )
-
-#include "HsOpenGLRaw.h"
-
-EXTENSION_ENTRY(dyn_glClearColorIi,ptr_glClearColorIi,"glClearColorIi",glClearColorIi,GLint -> GLint -> GLint -> GLint -> IO ())
-EXTENSION_ENTRY(dyn_glClearColorIui,ptr_glClearColorIui,"glClearColorIui",glClearColorIui,GLuint -> GLuint -> GLuint -> GLuint -> IO ())
-
-gl_ALPHA32UI :: GLenum
-gl_ALPHA32UI = 0x8D72
-
-gl_INTENSITY32UI :: GLenum
-gl_INTENSITY32UI = 0x8D73
-
-gl_LUMINANCE32UI :: GLenum
-gl_LUMINANCE32UI = 0x8D74
-
-gl_LUMINANCE_ALPHA32UI :: GLenum
-gl_LUMINANCE_ALPHA32UI = 0x8D75
-
-gl_ALPHA16UI :: GLenum
-gl_ALPHA16UI = 0x8D78
-
-gl_INTENSITY16UI :: GLenum
-gl_INTENSITY16UI = 0x8D79
-
-gl_LUMINANCE16UI :: GLenum
-gl_LUMINANCE16UI = 0x8D7A
-
-gl_LUMINANCE_ALPHA16UI :: GLenum
-gl_LUMINANCE_ALPHA16UI = 0x8D7B
-
-gl_ALPHA8UI :: GLenum
-gl_ALPHA8UI = 0x8D7E
-
-gl_INTENSITY8UI :: GLenum
-gl_INTENSITY8UI = 0x8D7F
-
-gl_LUMINANCE8UI :: GLenum
-gl_LUMINANCE8UI = 0x8D80
-
-gl_LUMINANCE_ALPHA8UI :: GLenum
-gl_LUMINANCE_ALPHA8UI = 0x8D81
-
-gl_ALPHA32I :: GLenum
-gl_ALPHA32I = 0x8D84
-
-gl_INTENSITY32I :: GLenum
-gl_INTENSITY32I = 0x8D85
-
-gl_LUMINANCE32I :: GLenum
-gl_LUMINANCE32I = 0x8D86
-
-gl_LUMINANCE_ALPHA32I :: GLenum
-gl_LUMINANCE_ALPHA32I = 0x8D87
-
-gl_ALPHA16I :: GLenum
-gl_ALPHA16I = 0x8D8A
-
-gl_INTENSITY16I :: GLenum
-gl_INTENSITY16I = 0x8D8B
-
-gl_LUMINANCE16I :: GLenum
-gl_LUMINANCE16I = 0x8D8C
-
-gl_LUMINANCE_ALPHA16I :: GLenum
-gl_LUMINANCE_ALPHA16I = 0x8D8D
-
-gl_ALPHA8I :: GLenum
-gl_ALPHA8I = 0x8D90
-
-gl_INTENSITY8I :: GLenum
-gl_INTENSITY8I = 0x8D91
-
-gl_LUMINANCE8I :: GLenum
-gl_LUMINANCE8I = 0x8D92
-
-gl_LUMINANCE_ALPHA8I :: GLenum
-gl_LUMINANCE_ALPHA8I = 0x8D93
-
-gl_LUMINANCE_INTEGER :: GLenum
-gl_LUMINANCE_INTEGER = 0x8D9C
-
-gl_LUMINANCE_ALPHA_INTEGER :: GLenum
-gl_LUMINANCE_ALPHA_INTEGER = 0x8D9D
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/TextureLODBias.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/TextureLODBias.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT/TextureLODBias.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/EXT/TextureLODBias.hs
@@ -1,24 +1,22 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.TextureLODBias
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All tokens from the EXT_texture_lod_bias extension, see
--- <http://www.opengl.org/registry/specs/EXT/texture_lod_bias.txt>.
+-- The <https://www.opengl.org/registry/specs/EXT/texture_lod_bias.txt EXT_texture_lod_bias> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.EXT.TextureLODBias (
-   -- * Tokens
-   gl_TEXTURE_FILTER_CONTROL,
-   gl_TEXTURE_LOD_BIAS,
-   gl_MAX_TEXTURE_LOD_BIAS
+  -- * Enums
+  gl_MAX_TEXTURE_LOD_BIAS_EXT,
+  gl_TEXTURE_FILTER_CONTROL_EXT,
+  gl_TEXTURE_LOD_BIAS_EXT
 ) where
 
-import Graphics.Rendering.OpenGL.Raw.ARB.Compatibility
-import Graphics.Rendering.OpenGL.Raw.Core32
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/TextureMirrorClamp.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/TextureMirrorClamp.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT/TextureMirrorClamp.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/EXT/TextureMirrorClamp.hs
@@ -1,30 +1,22 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.TextureMirrorClamp
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All raw functions and tokens from the EXT_texture_mirror_clamp extension, see
--- <http://www.opengl.org/registry/specs/EXT/texture_mirror_clamp.txt>.
+-- The <https://www.opengl.org/registry/specs/EXT/texture_mirror_clamp.txt EXT_texture_mirror_clamp> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.EXT.TextureMirrorClamp (
-   -- * Tokens
-  gl_MIRROR_CLAMP,
-  gl_MIRROR_CLAMP_TO_EDGE,
-  gl_MIRROR_CLAMP_TO_BORDER
+  -- * Enums
+  gl_MIRROR_CLAMP_EXT,
+  gl_MIRROR_CLAMP_TO_BORDER_EXT,
+  gl_MIRROR_CLAMP_TO_EDGE_EXT
 ) where
 
-import Graphics.Rendering.OpenGL.Raw.Types
 import Graphics.Rendering.OpenGL.Raw.Tokens
-
-gl_MIRROR_CLAMP :: GLenum
-gl_MIRROR_CLAMP = 0x8742
-
-gl_MIRROR_CLAMP_TO_BORDER :: GLenum
-gl_MIRROR_CLAMP_TO_BORDER = 0x8912
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/TextureObject.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/TextureObject.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT/TextureObject.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/EXT/TextureObject.hs
@@ -1,42 +1,32 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.TextureObject
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All raw functions and tokens from the EXT_texture_object extension, see
--- <http://www.opengl.org/registry/specs/EXT/texture_object.txt>.
+-- The <https://www.opengl.org/registry/specs/EXT/texture_object.txt EXT_texture_object> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.EXT.TextureObject (
-   -- * Functions
-   glGenTextures,
-   glDeleteTextures,
-   glBindTexture,
-   glPrioritizeTextures,
-   glAreTexturesResident,
-   glIsTexture,
-   -- * Tokens
-   gl_TEXTURE_PRIORITY,
-   gl_TEXTURE_RESIDENT,
-   gl_TEXTURE_1D_BINDING,
-   gl_TEXTURE_2D_BINDING,
-   gl_TEXTURE_3D_BINDING
+  -- * Enums
+  gl_TEXTURE_1D_BINDING_EXT,
+  gl_TEXTURE_2D_BINDING_EXT,
+  gl_TEXTURE_3D_BINDING_EXT,
+  gl_TEXTURE_PRIORITY_EXT,
+  gl_TEXTURE_RESIDENT_EXT,
+  -- * Functions
+  glAreTexturesResidentEXT,
+  glBindTextureEXT,
+  glDeleteTexturesEXT,
+  glGenTexturesEXT,
+  glIsTextureEXT,
+  glPrioritizeTexturesEXT
 ) where
 
-import Graphics.Rendering.OpenGL.Raw.ARB.Compatibility
-import Graphics.Rendering.OpenGL.Raw.Core32
-
-gl_TEXTURE_1D_BINDING :: GLenum
-gl_TEXTURE_1D_BINDING = gl_TEXTURE_BINDING_1D
-
-gl_TEXTURE_2D_BINDING :: GLenum
-gl_TEXTURE_2D_BINDING = gl_TEXTURE_BINDING_2D
-
-gl_TEXTURE_3D_BINDING :: GLenum
-gl_TEXTURE_3D_BINDING = gl_TEXTURE_BINDING_3D
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
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
@@ -1,39 +1,24 @@
-{-# LANGUAGE ForeignFunctionInterface, CPP #-}
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.TexturePerturbNormal
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All raw functions and tokens from the EXT_texture_perturb_normal, see
--- <http://www.opengl.org/registry/specs/EXT/perturb_normal.txt>.
+-- The <https://www.opengl.org/registry/specs/EXT/texture_perturb_normal.txt EXT_texture_perturb_normal> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.EXT.TexturePerturbNormal (
-   -- * Functions
-   glTextureNormal,
-   -- * Tokens
-   gl_PERTURB,
-   gl_TEXTURE_NORMAL
+  -- * Enums
+  gl_PERTURB_EXT,
+  gl_TEXTURE_NORMAL_EXT,
+  -- * Functions
+  glTextureNormalEXT
 ) where
 
-import Foreign.C.Types
-import Graphics.Rendering.OpenGL.Raw.Types
-import Foreign.Ptr ( FunPtr )
-import Graphics.Rendering.OpenGL.Raw.GetProcAddress ( getExtensionChecked )
-import System.IO.Unsafe ( unsafePerformIO )
-
-#include "HsOpenGLRaw.h"
-
-EXTENSION_ENTRY(dyn_glTextureNormal,ptr_glTextureNormal,"glTextureNormal",glTextureNormal,GLenum -> IO ())
-
-gl_PERTURB :: GLenum
-gl_PERTURB = 0x85AE
-
-gl_TEXTURE_NORMAL :: GLenum
-gl_TEXTURE_NORMAL = 0x85AF
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/TextureSNorm.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/TextureSNorm.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/EXT/TextureSNorm.hs
@@ -0,0 +1,44 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.TextureSNorm
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/EXT/texture_snorm.txt EXT_texture_snorm> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.EXT.TextureSNorm (
+  -- * Enums
+  gl_ALPHA16_SNORM,
+  gl_ALPHA8_SNORM,
+  gl_ALPHA_SNORM,
+  gl_INTENSITY16_SNORM,
+  gl_INTENSITY8_SNORM,
+  gl_INTENSITY_SNORM,
+  gl_LUMINANCE16_ALPHA16_SNORM,
+  gl_LUMINANCE16_SNORM,
+  gl_LUMINANCE8_ALPHA8_SNORM,
+  gl_LUMINANCE8_SNORM,
+  gl_LUMINANCE_ALPHA_SNORM,
+  gl_LUMINANCE_SNORM,
+  gl_R16_SNORM,
+  gl_R8_SNORM,
+  gl_RED_SNORM,
+  gl_RG16_SNORM,
+  gl_RG8_SNORM,
+  gl_RGB16_SNORM,
+  gl_RGB8_SNORM,
+  gl_RGBA16_SNORM,
+  gl_RGBA8_SNORM,
+  gl_RGBA_SNORM,
+  gl_RGB_SNORM,
+  gl_RG_SNORM,
+  gl_SIGNED_NORMALIZED
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/TextureSRGB.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/TextureSRGB.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT/TextureSRGB.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/EXT/TextureSRGB.hs
@@ -1,44 +1,35 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.TextureSRGB
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All raw functions and tokens from the EXT_texture_sRGB extension not already
--- in the OpenGL 3.1 core, see
--- <http://www.opengl.org/registry/specs/EXT/texture_sRGB.txt>.
+-- The <https://www.opengl.org/registry/specs/EXT/texture_sRGB.txt EXT_texture_sRGB> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.EXT.TextureSRGB (
-   -- * Tokens
-   gl_SLUMINANCE_ALPHA,
-   gl_SLUMINANCE8_ALPHA8,
-   gl_SLUMINANCE,
-   gl_SLUMINANCE8,
-   gl_COMPRESSED_SLUMINANCE,
-   gl_COMPRESSED_SLUMINANCE_ALPHA,
-   gl_COMPRESSED_SRGB_S3TC_DXT1,
-   gl_COMPRESSED_SRGB_ALPHA_S3TC_DXT1,
-   gl_COMPRESSED_SRGB_ALPHA_S3TC_DXT3,
-   gl_COMPRESSED_SRGB_ALPHA_S3TC_DXT5
+  -- * Enums
+  gl_COMPRESSED_SLUMINANCE_ALPHA_EXT,
+  gl_COMPRESSED_SLUMINANCE_EXT,
+  gl_COMPRESSED_SRGB_ALPHA_EXT,
+  gl_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT,
+  gl_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT,
+  gl_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT,
+  gl_COMPRESSED_SRGB_EXT,
+  gl_COMPRESSED_SRGB_S3TC_DXT1_EXT,
+  gl_SLUMINANCE8_ALPHA8_EXT,
+  gl_SLUMINANCE8_EXT,
+  gl_SLUMINANCE_ALPHA_EXT,
+  gl_SLUMINANCE_EXT,
+  gl_SRGB8_ALPHA8_EXT,
+  gl_SRGB8_EXT,
+  gl_SRGB_ALPHA_EXT,
+  gl_SRGB_EXT
 ) where
 
-import Graphics.Rendering.OpenGL.Raw.ARB.Compatibility
-import Graphics.Rendering.OpenGL.Raw.Core32
-
-gl_COMPRESSED_SRGB_S3TC_DXT1 :: GLenum
-gl_COMPRESSED_SRGB_S3TC_DXT1 = 0x8C4C
-
-gl_COMPRESSED_SRGB_ALPHA_S3TC_DXT1 :: GLenum
-gl_COMPRESSED_SRGB_ALPHA_S3TC_DXT1 = 0x8C4D
-
-gl_COMPRESSED_SRGB_ALPHA_S3TC_DXT3 :: GLenum
-gl_COMPRESSED_SRGB_ALPHA_S3TC_DXT3 = 0x8C4E
-
-gl_COMPRESSED_SRGB_ALPHA_S3TC_DXT5 :: GLenum
-gl_COMPRESSED_SRGB_ALPHA_S3TC_DXT5 = 0x8C4F
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/TextureSRGBDecode.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/TextureSRGBDecode.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/EXT/TextureSRGBDecode.hs
@@ -0,0 +1,22 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.TextureSRGBDecode
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/EXT/texture_sRGB_decode.txt EXT_texture_sRGB_decode> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.EXT.TextureSRGBDecode (
+  -- * Enums
+  gl_DECODE_EXT,
+  gl_SKIP_DECODE_EXT,
+  gl_TEXTURE_SRGB_DECODE_EXT
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/TextureSharedExponent.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/TextureSharedExponent.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT/TextureSharedExponent.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/EXT/TextureSharedExponent.hs
@@ -1,23 +1,22 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.TextureSharedExponent
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All raw tokens from the EXT_texture_shared_exponent extension, see
--- <http://www.opengl.org/registry/specs/EXT/texture_shared_exponent.txt>.
+-- The <https://www.opengl.org/registry/specs/EXT/texture_shared_exponent.txt EXT_texture_shared_exponent> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.EXT.TextureSharedExponent (
-   -- * Tokens
-   gl_RGB9_E5,
-   gl_UNSIGNED_INT_5_9_9_9_REV,
-   gl_TEXTURE_SHARED_SIZE
+  -- * Enums
+  gl_RGB9_E5_EXT,
+  gl_TEXTURE_SHARED_SIZE_EXT,
+  gl_UNSIGNED_INT_5_9_9_9_REV_EXT
 ) where
 
 import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/TextureSwizzle.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/TextureSwizzle.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT/TextureSwizzle.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/EXT/TextureSwizzle.hs
@@ -1,26 +1,24 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.TextureSwizzle
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All raw functions and tokens from the EXT_texture_swizzle extension not
--- already in the OpenGL 3.1 core, see
--- <http://www.opengl.org/registry/specs/EXT/texture_swizzle.txt>.
+-- The <https://www.opengl.org/registry/specs/EXT/texture_swizzle.txt EXT_texture_swizzle> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.EXT.TextureSwizzle (
-   -- * Tokens
-   gl_TEXTURE_SWIZZLE_R,
-   gl_TEXTURE_SWIZZLE_G,
-   gl_TEXTURE_SWIZZLE_B,
-   gl_TEXTURE_SWIZZLE_A,
-   gl_TEXTURE_SWIZZLE_RGBA
+  -- * Enums
+  gl_TEXTURE_SWIZZLE_A_EXT,
+  gl_TEXTURE_SWIZZLE_B_EXT,
+  gl_TEXTURE_SWIZZLE_G_EXT,
+  gl_TEXTURE_SWIZZLE_RGBA_EXT,
+  gl_TEXTURE_SWIZZLE_R_EXT
 ) where
 
-import Graphics.Rendering.OpenGL.Raw.ARB.TextureSwizzle
+import Graphics.Rendering.OpenGL.Raw.Tokens
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
@@ -1,28 +1,24 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.TimerQuery
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All raw functions, tokens and type from the EXT_timer_query extension, see
--- <http://www.opengl.org/registry/specs/EXT/timer_query.txt>.
+-- The <https://www.opengl.org/registry/specs/EXT/timer_query.txt EXT_timer_query> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.EXT.TimerQuery (
-   -- * Functions
-   glGetQueryObjecti64v,
-   glGetQueryObjectui64v,
-   -- * Tokens
-   gl_TIME_ELAPSED,
-   -- * Types
-   GLint64,
-   GLuint64
+  -- * Enums
+  gl_TIME_ELAPSED_EXT,
+  -- * Functions
+  glGetQueryObjecti64vEXT,
+  glGetQueryObjectui64vEXT
 ) where
 
-import Graphics.Rendering.OpenGL.Raw.Types
-import Graphics.Rendering.OpenGL.Raw.ARB.TimerQuery
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/TransformFeedback.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/TransformFeedback.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT/TransformFeedback.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/EXT/TransformFeedback.hs
@@ -1,45 +1,43 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.TransformFeedback
--- Copyright   :  (c) Sven Panne 2014
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All raw functions and tokens from the EXT_transform_feedback extension,
--- see <http://www.opengl.org/registry/specs/EXT/transform_feedback.txt>.
+-- The <https://www.opengl.org/registry/specs/EXT/transform_feedback.txt EXT_transform_feedback> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.EXT.TransformFeedback (
-   -- * Functions
-   glBeginTransformFeedback,
-   glEndTransformFeedback,
-   glBindBufferRange,
-   glBindBufferOffset,
-   glBindBufferBase,
-   glTransformFeedbackVaryings,
-   glGetTransformFeedbackVarying,
-
-   -- * Tokens
-   gl_TRANSFORM_FEEDBACK_BUFFER,
-   gl_TRANSFORM_FEEDBACK_BUFFER_START,
-   gl_TRANSFORM_FEEDBACK_BUFFER_SIZE,
-   gl_TRANSFORM_FEEDBACK_BUFFER_BINDING,
-   gl_INTERLEAVED_ATTRIBS,
-   gl_SEPARATE_ATTRIBS,
-   gl_PRIMITIVES_GENERATED,
-   gl_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN,
-   gl_RASTERIZER_DISCARD,
-   gl_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS,
-   gl_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS,
-   gl_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS,
-   gl_TRANSFORM_FEEDBACK_VARYINGS,
-   gl_TRANSFORM_FEEDBACK_BUFFER_MODE,
-   gl_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH
+  -- * Enums
+  gl_INTERLEAVED_ATTRIBS_EXT,
+  gl_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_EXT,
+  gl_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_EXT,
+  gl_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_EXT,
+  gl_PRIMITIVES_GENERATED_EXT,
+  gl_RASTERIZER_DISCARD_EXT,
+  gl_SEPARATE_ATTRIBS_EXT,
+  gl_TRANSFORM_FEEDBACK_BUFFER_BINDING_EXT,
+  gl_TRANSFORM_FEEDBACK_BUFFER_EXT,
+  gl_TRANSFORM_FEEDBACK_BUFFER_MODE_EXT,
+  gl_TRANSFORM_FEEDBACK_BUFFER_SIZE_EXT,
+  gl_TRANSFORM_FEEDBACK_BUFFER_START_EXT,
+  gl_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_EXT,
+  gl_TRANSFORM_FEEDBACK_VARYINGS_EXT,
+  gl_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH_EXT,
+  -- * Functions
+  glBeginTransformFeedbackEXT,
+  glBindBufferBaseEXT,
+  glBindBufferOffsetEXT,
+  glBindBufferRangeEXT,
+  glEndTransformFeedbackEXT,
+  glGetTransformFeedbackVaryingEXT,
+  glTransformFeedbackVaryingsEXT
 ) where
 
-import Graphics.Rendering.OpenGL.Raw.Core32
-import Graphics.Rendering.OpenGL.Raw.NV.ParameterBufferObject
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/VertexArray.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/VertexArray.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT/VertexArray.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/EXT/VertexArray.hs
@@ -1,63 +1,62 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.VertexArray
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All raw functions and tokens from the EXT_vertex_array extension, see
--- <http://www.opengl.org/registry/specs/EXT/vertex_array.txt>.
+-- The <https://www.opengl.org/registry/specs/EXT/vertex_array.txt EXT_vertex_array> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.EXT.VertexArray (
-   -- * Functions
-   glDrawArrays,
-   glVertexPointer,
-   glNormalPointer,
-   glColorPointer,
-   glIndexPointer,
-   glTexCoordPointer,
-   glEdgeFlagPointer,
-   glGetPointerv,
-   -- * Tokens
-   gl_VERTEX_ARRAY,
-   gl_NORMAL_ARRAY,
-   gl_COLOR_ARRAY,
-   gl_INDEX_ARRAY,
-   gl_TEXTURE_COORD_ARRAY,
-   gl_EDGE_FLAG_ARRAY,
-   gl_DOUBLE,
-   gl_VERTEX_ARRAY_SIZE,
-   gl_VERTEX_ARRAY_TYPE,
-   gl_VERTEX_ARRAY_STRIDE,
-   gl_VERTEX_ARRAY_COUNT_EXT,
-   gl_NORMAL_ARRAY_TYPE,
-   gl_NORMAL_ARRAY_STRIDE,
-   gl_NORMAL_ARRAY_COUNT_EXT,
-   gl_COLOR_ARRAY_SIZE,
-   gl_COLOR_ARRAY_TYPE,
-   gl_COLOR_ARRAY_STRIDE,
-   gl_COLOR_ARRAY_COUNT_EXT,
-   gl_INDEX_ARRAY_TYPE,
-   gl_INDEX_ARRAY_STRIDE,
-   gl_INDEX_ARRAY_COUNT_EXT,
-   gl_TEXTURE_COORD_ARRAY_SIZE,
-   gl_TEXTURE_COORD_ARRAY_TYPE,
-   gl_TEXTURE_COORD_ARRAY_STRIDE,
-   gl_TEXTURE_COORD_ARRAY_COUNT_EXT,
-   gl_EDGE_FLAG_ARRAY_STRIDE,
-   gl_EDGE_FLAG_ARRAY_COUNT_EXT,
-   gl_VERTEX_ARRAY_POINTER,
-   gl_NORMAL_ARRAY_POINTER,
-   gl_COLOR_ARRAY_POINTER,
-   gl_INDEX_ARRAY_POINTER,
-   gl_TEXTURE_COORD_ARRAY_POINTER,
-   gl_EDGE_FLAG_ARRAY_POINTER
+  -- * Enums
+  gl_COLOR_ARRAY_COUNT_EXT,
+  gl_COLOR_ARRAY_EXT,
+  gl_COLOR_ARRAY_POINTER_EXT,
+  gl_COLOR_ARRAY_SIZE_EXT,
+  gl_COLOR_ARRAY_STRIDE_EXT,
+  gl_COLOR_ARRAY_TYPE_EXT,
+  gl_EDGE_FLAG_ARRAY_COUNT_EXT,
+  gl_EDGE_FLAG_ARRAY_EXT,
+  gl_EDGE_FLAG_ARRAY_POINTER_EXT,
+  gl_EDGE_FLAG_ARRAY_STRIDE_EXT,
+  gl_INDEX_ARRAY_COUNT_EXT,
+  gl_INDEX_ARRAY_EXT,
+  gl_INDEX_ARRAY_POINTER_EXT,
+  gl_INDEX_ARRAY_STRIDE_EXT,
+  gl_INDEX_ARRAY_TYPE_EXT,
+  gl_NORMAL_ARRAY_COUNT_EXT,
+  gl_NORMAL_ARRAY_EXT,
+  gl_NORMAL_ARRAY_POINTER_EXT,
+  gl_NORMAL_ARRAY_STRIDE_EXT,
+  gl_NORMAL_ARRAY_TYPE_EXT,
+  gl_TEXTURE_COORD_ARRAY_COUNT_EXT,
+  gl_TEXTURE_COORD_ARRAY_EXT,
+  gl_TEXTURE_COORD_ARRAY_POINTER_EXT,
+  gl_TEXTURE_COORD_ARRAY_SIZE_EXT,
+  gl_TEXTURE_COORD_ARRAY_STRIDE_EXT,
+  gl_TEXTURE_COORD_ARRAY_TYPE_EXT,
+  gl_VERTEX_ARRAY_COUNT_EXT,
+  gl_VERTEX_ARRAY_EXT,
+  gl_VERTEX_ARRAY_POINTER_EXT,
+  gl_VERTEX_ARRAY_SIZE_EXT,
+  gl_VERTEX_ARRAY_STRIDE_EXT,
+  gl_VERTEX_ARRAY_TYPE_EXT,
+  -- * Functions
+  glArrayElementEXT,
+  glColorPointerEXT,
+  glDrawArraysEXT,
+  glEdgeFlagPointerEXT,
+  glGetPointervEXT,
+  glIndexPointerEXT,
+  glNormalPointerEXT,
+  glTexCoordPointerEXT,
+  glVertexPointerEXT
 ) where
 
-import Graphics.Rendering.OpenGL.Raw.Functions
 import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/VertexArrayBGRA.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/VertexArrayBGRA.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/EXT/VertexArrayBGRA.hs
@@ -0,0 +1,20 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.VertexArrayBGRA
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/EXT/vertex_array_bgra.txt EXT_vertex_array_bgra> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.EXT.VertexArrayBGRA (
+  -- * Enums
+  gl_BGRA
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/VertexAttrib64Bit.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/VertexAttrib64Bit.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/EXT/VertexAttrib64Bit.hs
@@ -0,0 +1,44 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.VertexAttrib64Bit
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/EXT/vertex_attrib_64bit.txt EXT_vertex_attrib_64bit> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.EXT.VertexAttrib64Bit (
+  -- * Enums
+  gl_DOUBLE,
+  gl_DOUBLE_MAT2_EXT,
+  gl_DOUBLE_MAT2x3_EXT,
+  gl_DOUBLE_MAT2x4_EXT,
+  gl_DOUBLE_MAT3_EXT,
+  gl_DOUBLE_MAT3x2_EXT,
+  gl_DOUBLE_MAT3x4_EXT,
+  gl_DOUBLE_MAT4_EXT,
+  gl_DOUBLE_MAT4x2_EXT,
+  gl_DOUBLE_MAT4x3_EXT,
+  gl_DOUBLE_VEC2_EXT,
+  gl_DOUBLE_VEC3_EXT,
+  gl_DOUBLE_VEC4_EXT,
+  -- * Functions
+  glGetVertexAttribLdvEXT,
+  glVertexAttribL1dEXT,
+  glVertexAttribL1dvEXT,
+  glVertexAttribL2dEXT,
+  glVertexAttribL2dvEXT,
+  glVertexAttribL3dEXT,
+  glVertexAttribL3dvEXT,
+  glVertexAttribL4dEXT,
+  glVertexAttribL4dvEXT,
+  glVertexAttribLPointerEXT
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
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
@@ -1,545 +1,173 @@
-{-# LANGUAGE ForeignFunctionInterface, CPP #-}
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.VertexShader
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All raw functions and tokens from the EXT_vertex_shader extension, see
--- <http://www.opengl.org/registry/specs/EXT/vertex_shader.txt>.
+-- The <https://www.opengl.org/registry/specs/EXT/vertex_shader.txt EXT_vertex_shader> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.EXT.VertexShader (
-   -- * Functions
-   glBeginVertexShader,
-   glEndVertexShader,
-   glBindVertexShader,
-   glGenVertexShaders,
-   glDeleteVertexShader,
-   glShaderOp1,
-   glShaderOp2,
-   glShaderOp3,
-   glSwizzle,
-   glWriteMask,
-   glInsertComponent,
-   glExtractComponent,
-   glGenSymbols,
-   glSetInvariant,
-   glSetLocalConstant,
-   glVariantbv,
-   glVariantsv,
-   glVariantiv,
-   glVariantfv,
-   glVariantdv,
-   glVariantubv,
-   glVariantusv,
-   glVariantuiv,
-   glVariantPointer,
-   glEnableVariantClientState,
-   glDisableVariantClientState,
-   glBindLightParameter,
-   glBindMaterialParameter,
-   glBindTexGenParameter,
-   glBindTextureUnitParameter,
-   glBindParameter,
-   glIsVariantEnabled,
-   glGetVariantBooleanv,
-   glGetVariantIntegerv,
-   glGetVariantFloatv,
-   glGetVariantPointerv,
-   glGetInvariantBooleanv,
-   glGetInvariantIntegerv,
-   glGetInvariantFloatv,
-   glGetLocalConstantBooleanv,
-   glGetLocalConstantIntegerv,
-   glGetLocalConstantFloatv,
-   -- * Tokens
-   gl_VERTEX_SHADER,
-   gl_VARIANT_VALUE,
-   gl_VARIANT_DATATYPE,
-   gl_VARIANT_ARRAY_STRIDE,
-   gl_VARIANT_ARRAY_TYPE,
-   gl_VARIANT_ARRAY,
-   gl_VARIANT_ARRAY_POINTER,
-   gl_INVARIANT_VALUE,
-   gl_INVARIANT_DATATYPE,
-   gl_LOCAL_CONSTANT_VALUE,
-   gl_LOCAL_CONSTANT_DATATYPE,
-   gl_OP_INDEX,
-   gl_OP_NEGATE,
-   gl_OP_DOT3,
-   gl_OP_DOT4,
-   gl_OP_MUL,
-   gl_OP_ADD,
-   gl_OP_MADD,
-   gl_OP_FRAC,
-   gl_OP_MAX,
-   gl_OP_MIN,
-   gl_OP_SET_GE,
-   gl_OP_SET_LT,
-   gl_OP_CLAMP,
-   gl_OP_FLOOR,
-   gl_OP_ROUND,
-   gl_OP_EXP_BASE_2,
-   gl_OP_LOG_BASE_2,
-   gl_OP_POWER,
-   gl_OP_RECIP,
-   gl_OP_RECIP_SQRT,
-   gl_OP_SUB,
-   gl_OP_CROSS_PRODUCT,
-   gl_OP_MULTIPLY_MATRIX,
-   gl_OP_MOV,
-   gl_OUTPUT_VERTEX,
-   gl_OUTPUT_COLOR0,
-   gl_OUTPUT_COLOR1,
-   gl_OUTPUT_TEXTURE_COORD0,
-   gl_OUTPUT_TEXTURE_COORD1,
-   gl_OUTPUT_TEXTURE_COORD2,
-   gl_OUTPUT_TEXTURE_COORD3,
-   gl_OUTPUT_TEXTURE_COORD4,
-   gl_OUTPUT_TEXTURE_COORD5,
-   gl_OUTPUT_TEXTURE_COORD6,
-   gl_OUTPUT_TEXTURE_COORD7,
-   gl_OUTPUT_TEXTURE_COORD8,
-   gl_OUTPUT_TEXTURE_COORD9,
-   gl_OUTPUT_TEXTURE_COORD10,
-   gl_OUTPUT_TEXTURE_COORD11,
-   gl_OUTPUT_TEXTURE_COORD12,
-   gl_OUTPUT_TEXTURE_COORD13,
-   gl_OUTPUT_TEXTURE_COORD14,
-   gl_OUTPUT_TEXTURE_COORD15,
-   gl_OUTPUT_TEXTURE_COORD16,
-   gl_OUTPUT_TEXTURE_COORD17,
-   gl_OUTPUT_TEXTURE_COORD18,
-   gl_OUTPUT_TEXTURE_COORD19,
-   gl_OUTPUT_TEXTURE_COORD20,
-   gl_OUTPUT_TEXTURE_COORD21,
-   gl_OUTPUT_TEXTURE_COORD22,
-   gl_OUTPUT_TEXTURE_COORD23,
-   gl_OUTPUT_TEXTURE_COORD24,
-   gl_OUTPUT_TEXTURE_COORD25,
-   gl_OUTPUT_TEXTURE_COORD26,
-   gl_OUTPUT_TEXTURE_COORD27,
-   gl_OUTPUT_TEXTURE_COORD28,
-   gl_OUTPUT_TEXTURE_COORD29,
-   gl_OUTPUT_TEXTURE_COORD30,
-   gl_OUTPUT_TEXTURE_COORD31,
-   gl_OUTPUT_FOG,
-   gl_SCALAR,
-   gl_VECTOR,
-   gl_MATRIX,
-   gl_VARIANT,
-   gl_INVARIANT,
-   gl_LOCAL_CONSTANT,
-   gl_LOCAL,
-   gl_MAX_VERTEX_SHADER_INSTRUCTIONS,
-   gl_MAX_VERTEX_SHADER_VARIANTS,
-   gl_MAX_VERTEX_SHADER_INVARIANTS,
-   gl_MAX_VERTEX_SHADER_LOCAL_CONSTANTS,
-   gl_MAX_VERTEX_SHADER_LOCALS,
-   gl_MAX_OPTIMIZED_VERTEX_SHADER_INSTRUCTIONS,
-   gl_MAX_OPTIMIZED_VERTEX_SHADER_VARIANTS,
-   gl_MAX_OPTIMIZED_VERTEX_SHADER_LOCAL_CONSTANTS,
-   gl_MAX_OPTIMIZED_VERTEX_SHADER_INARIANTS,
-   gl_MAX_OPTIMIZED_VERTEX_SHADER_LOCALS,
-   gl_VERTEX_SHADER_INSTRUCTIONS,
-   gl_VERTEX_SHADER_VARIANTS,
-   gl_VERTEX_SHADER_INVARIANTS,
-   gl_VERTEX_SHADER_LOCAL_CONSTANTS,
-   gl_VERTEX_SHADER_LOCALS,
-   gl_VERTEX_SHADER_BINDING,
-   gl_VERTEX_SHADER_OPTIMIZED,
-   gl_X,
-   gl_Y,
-   gl_Z,
-   gl_W,
-   gl_NEGATIVE_X,
-   gl_NEGATIVE_Y,
-   gl_NEGATIVE_Z,
-   gl_NEGATIVE_W,
-   gl_ZERO,
-   gl_ONE,
-   gl_NEGATIVE_ONE,
-   gl_NORMALIZED_RANGE,
-   gl_FULL_RANGE,
-   gl_CURRENT_VERTEX,
-   gl_MVP_MATRIX
+  -- * Enums
+  gl_CURRENT_VERTEX_EXT,
+  gl_FULL_RANGE_EXT,
+  gl_INVARIANT_DATATYPE_EXT,
+  gl_INVARIANT_EXT,
+  gl_INVARIANT_VALUE_EXT,
+  gl_LOCAL_CONSTANT_DATATYPE_EXT,
+  gl_LOCAL_CONSTANT_EXT,
+  gl_LOCAL_CONSTANT_VALUE_EXT,
+  gl_LOCAL_EXT,
+  gl_MATRIX_EXT,
+  gl_MAX_OPTIMIZED_VERTEX_SHADER_INSTRUCTIONS_EXT,
+  gl_MAX_OPTIMIZED_VERTEX_SHADER_INVARIANTS_EXT,
+  gl_MAX_OPTIMIZED_VERTEX_SHADER_LOCALS_EXT,
+  gl_MAX_OPTIMIZED_VERTEX_SHADER_LOCAL_CONSTANTS_EXT,
+  gl_MAX_OPTIMIZED_VERTEX_SHADER_VARIANTS_EXT,
+  gl_MAX_VERTEX_SHADER_INSTRUCTIONS_EXT,
+  gl_MAX_VERTEX_SHADER_INVARIANTS_EXT,
+  gl_MAX_VERTEX_SHADER_LOCALS_EXT,
+  gl_MAX_VERTEX_SHADER_LOCAL_CONSTANTS_EXT,
+  gl_MAX_VERTEX_SHADER_VARIANTS_EXT,
+  gl_MVP_MATRIX_EXT,
+  gl_NEGATIVE_ONE_EXT,
+  gl_NEGATIVE_W_EXT,
+  gl_NEGATIVE_X_EXT,
+  gl_NEGATIVE_Y_EXT,
+  gl_NEGATIVE_Z_EXT,
+  gl_NORMALIZED_RANGE_EXT,
+  gl_ONE_EXT,
+  gl_OP_ADD_EXT,
+  gl_OP_CLAMP_EXT,
+  gl_OP_CROSS_PRODUCT_EXT,
+  gl_OP_DOT3_EXT,
+  gl_OP_DOT4_EXT,
+  gl_OP_EXP_BASE_2_EXT,
+  gl_OP_FLOOR_EXT,
+  gl_OP_FRAC_EXT,
+  gl_OP_INDEX_EXT,
+  gl_OP_LOG_BASE_2_EXT,
+  gl_OP_MADD_EXT,
+  gl_OP_MAX_EXT,
+  gl_OP_MIN_EXT,
+  gl_OP_MOV_EXT,
+  gl_OP_MULTIPLY_MATRIX_EXT,
+  gl_OP_MUL_EXT,
+  gl_OP_NEGATE_EXT,
+  gl_OP_POWER_EXT,
+  gl_OP_RECIP_EXT,
+  gl_OP_RECIP_SQRT_EXT,
+  gl_OP_ROUND_EXT,
+  gl_OP_SET_GE_EXT,
+  gl_OP_SET_LT_EXT,
+  gl_OP_SUB_EXT,
+  gl_OUTPUT_COLOR0_EXT,
+  gl_OUTPUT_COLOR1_EXT,
+  gl_OUTPUT_FOG_EXT,
+  gl_OUTPUT_TEXTURE_COORD0_EXT,
+  gl_OUTPUT_TEXTURE_COORD10_EXT,
+  gl_OUTPUT_TEXTURE_COORD11_EXT,
+  gl_OUTPUT_TEXTURE_COORD12_EXT,
+  gl_OUTPUT_TEXTURE_COORD13_EXT,
+  gl_OUTPUT_TEXTURE_COORD14_EXT,
+  gl_OUTPUT_TEXTURE_COORD15_EXT,
+  gl_OUTPUT_TEXTURE_COORD16_EXT,
+  gl_OUTPUT_TEXTURE_COORD17_EXT,
+  gl_OUTPUT_TEXTURE_COORD18_EXT,
+  gl_OUTPUT_TEXTURE_COORD19_EXT,
+  gl_OUTPUT_TEXTURE_COORD1_EXT,
+  gl_OUTPUT_TEXTURE_COORD20_EXT,
+  gl_OUTPUT_TEXTURE_COORD21_EXT,
+  gl_OUTPUT_TEXTURE_COORD22_EXT,
+  gl_OUTPUT_TEXTURE_COORD23_EXT,
+  gl_OUTPUT_TEXTURE_COORD24_EXT,
+  gl_OUTPUT_TEXTURE_COORD25_EXT,
+  gl_OUTPUT_TEXTURE_COORD26_EXT,
+  gl_OUTPUT_TEXTURE_COORD27_EXT,
+  gl_OUTPUT_TEXTURE_COORD28_EXT,
+  gl_OUTPUT_TEXTURE_COORD29_EXT,
+  gl_OUTPUT_TEXTURE_COORD2_EXT,
+  gl_OUTPUT_TEXTURE_COORD30_EXT,
+  gl_OUTPUT_TEXTURE_COORD31_EXT,
+  gl_OUTPUT_TEXTURE_COORD3_EXT,
+  gl_OUTPUT_TEXTURE_COORD4_EXT,
+  gl_OUTPUT_TEXTURE_COORD5_EXT,
+  gl_OUTPUT_TEXTURE_COORD6_EXT,
+  gl_OUTPUT_TEXTURE_COORD7_EXT,
+  gl_OUTPUT_TEXTURE_COORD8_EXT,
+  gl_OUTPUT_TEXTURE_COORD9_EXT,
+  gl_OUTPUT_VERTEX_EXT,
+  gl_SCALAR_EXT,
+  gl_VARIANT_ARRAY_EXT,
+  gl_VARIANT_ARRAY_POINTER_EXT,
+  gl_VARIANT_ARRAY_STRIDE_EXT,
+  gl_VARIANT_ARRAY_TYPE_EXT,
+  gl_VARIANT_DATATYPE_EXT,
+  gl_VARIANT_EXT,
+  gl_VARIANT_VALUE_EXT,
+  gl_VECTOR_EXT,
+  gl_VERTEX_SHADER_BINDING_EXT,
+  gl_VERTEX_SHADER_EXT,
+  gl_VERTEX_SHADER_INSTRUCTIONS_EXT,
+  gl_VERTEX_SHADER_INVARIANTS_EXT,
+  gl_VERTEX_SHADER_LOCALS_EXT,
+  gl_VERTEX_SHADER_LOCAL_CONSTANTS_EXT,
+  gl_VERTEX_SHADER_OPTIMIZED_EXT,
+  gl_VERTEX_SHADER_VARIANTS_EXT,
+  gl_W_EXT,
+  gl_X_EXT,
+  gl_Y_EXT,
+  gl_ZERO_EXT,
+  gl_Z_EXT,
+  -- * Functions
+  glBeginVertexShaderEXT,
+  glBindLightParameterEXT,
+  glBindMaterialParameterEXT,
+  glBindParameterEXT,
+  glBindTexGenParameterEXT,
+  glBindTextureUnitParameterEXT,
+  glBindVertexShaderEXT,
+  glDeleteVertexShaderEXT,
+  glDisableVariantClientStateEXT,
+  glEnableVariantClientStateEXT,
+  glEndVertexShaderEXT,
+  glExtractComponentEXT,
+  glGenSymbolsEXT,
+  glGenVertexShadersEXT,
+  glGetInvariantBooleanvEXT,
+  glGetInvariantFloatvEXT,
+  glGetInvariantIntegervEXT,
+  glGetLocalConstantBooleanvEXT,
+  glGetLocalConstantFloatvEXT,
+  glGetLocalConstantIntegervEXT,
+  glGetVariantBooleanvEXT,
+  glGetVariantFloatvEXT,
+  glGetVariantIntegervEXT,
+  glGetVariantPointervEXT,
+  glInsertComponentEXT,
+  glIsVariantEnabledEXT,
+  glSetInvariantEXT,
+  glSetLocalConstantEXT,
+  glShaderOp1EXT,
+  glShaderOp2EXT,
+  glShaderOp3EXT,
+  glSwizzleEXT,
+  glVariantPointerEXT,
+  glVariantbvEXT,
+  glVariantdvEXT,
+  glVariantfvEXT,
+  glVariantivEXT,
+  glVariantsvEXT,
+  glVariantubvEXT,
+  glVariantuivEXT,
+  glVariantusvEXT,
+  glWriteMaskEXT
 ) where
 
-import Foreign.C.Types
-import Graphics.Rendering.OpenGL.Raw.Types
-import Graphics.Rendering.OpenGL.Raw.Core32
-import Foreign.Ptr ( Ptr, FunPtr )
-import Graphics.Rendering.OpenGL.Raw.GetProcAddress ( getExtensionChecked )
-import System.IO.Unsafe ( unsafePerformIO )
-
-#include "HsOpenGLRaw.h"
-
-EXTENSION_ENTRY(dyn_glBeginVertexShader,ptr_glBeginVertexShader,"glBeginVertexShader",glBeginVertexShader,IO ())
-EXTENSION_ENTRY(dyn_glEndVertexShader,ptr_glEndVertexShader,"glEndVertexShader",glEndVertexShader,IO ())
-EXTENSION_ENTRY(dyn_glBindVertexShader,ptr_glBindVertexShader,"glBindVertexShader",glBindVertexShader,GLuint -> IO ())
-EXTENSION_ENTRY(dyn_glGenVertexShaders,ptr_glGenVertexShaders,"glGenVertexShaders",glGenVertexShaders,GLuint -> IO GLuint)
-EXTENSION_ENTRY(dyn_glDeleteVertexShader,ptr_glDeleteVertexShader,"glDeleteVertexShader",glDeleteVertexShader,GLuint -> IO ())
-EXTENSION_ENTRY(dyn_glShaderOp1,ptr_glShaderOp1,"glShaderOp1",glShaderOp1,GLenum -> GLuint -> GLuint -> IO ())
-EXTENSION_ENTRY(dyn_glShaderOp2,ptr_glShaderOp2,"glShaderOp2",glShaderOp2,GLenum -> GLuint -> GLuint -> GLuint -> IO ())
-EXTENSION_ENTRY(dyn_glShaderOp3,ptr_glShaderOp3,"glShaderOp3",glShaderOp3,GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> IO ())
-EXTENSION_ENTRY(dyn_glSwizzle,ptr_glSwizzle,"glSwizzle",glSwizzle,GLuint -> GLuint -> GLenum -> GLenum -> GLenum -> GLenum -> IO ())
-EXTENSION_ENTRY(dyn_glWriteMask,ptr_glWriteMask,"glWriteMask",glWriteMask,GLuint -> GLuint -> GLenum -> GLenum -> GLenum -> GLenum -> IO ())
-EXTENSION_ENTRY(dyn_glInsertComponent,ptr_glInsertComponent,"glInsertComponent",glInsertComponent,GLuint -> GLuint -> GLuint -> IO ())
-EXTENSION_ENTRY(dyn_glExtractComponent,ptr_glExtractComponent,"glExtractComponent",glExtractComponent,GLuint -> GLuint -> GLuint -> IO ())
-EXTENSION_ENTRY(dyn_glGenSymbols,ptr_glGenSymbols,"glGenSymbols",glGenSymbols,GLenum -> GLenum -> GLenum -> GLuint -> IO GLuint)
-EXTENSION_ENTRY(dyn_glSetInvariant,ptr_glSetInvariant,"glSetInvariant",glSetInvariant,GLuint -> GLenum -> Ptr a -> IO ())
-EXTENSION_ENTRY(dyn_glSetLocalConstant,ptr_glSetLocalConstant,"glSetLocalConstant",glSetLocalConstant,GLuint -> GLenum -> Ptr a -> IO ())
-EXTENSION_ENTRY(dyn_glVariantbv,ptr_glVariantbv,"glVariantbv",glVariantbv,GLuint -> Ptr GLbyte -> IO ())
-EXTENSION_ENTRY(dyn_glVariantsv,ptr_glVariantsv,"glVariantsv",glVariantsv,GLuint -> Ptr GLshort -> IO ())
-EXTENSION_ENTRY(dyn_glVariantiv,ptr_glVariantiv,"glVariantiv",glVariantiv,GLuint -> Ptr GLint -> IO ())
-EXTENSION_ENTRY(dyn_glVariantfv,ptr_glVariantfv,"glVariantfv",glVariantfv,GLuint -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(dyn_glVariantdv,ptr_glVariantdv,"glVariantdv",glVariantdv,GLuint -> Ptr GLdouble -> IO ())
-EXTENSION_ENTRY(dyn_glVariantubv,ptr_glVariantubv,"glVariantubv",glVariantubv,GLuint -> Ptr GLubyte -> IO ())
-EXTENSION_ENTRY(dyn_glVariantusv,ptr_glVariantusv,"glVariantusv",glVariantusv,GLuint -> Ptr GLushort -> IO ())
-EXTENSION_ENTRY(dyn_glVariantuiv,ptr_glVariantuiv,"glVariantuiv",glVariantuiv,GLuint -> Ptr GLuint -> IO ())
-EXTENSION_ENTRY(dyn_glVariantPointer,ptr_glVariantPointer,"glVariantPointer",glVariantPointer,GLuint -> GLenum -> GLuint -> Ptr a -> IO ())
-EXTENSION_ENTRY(dyn_glEnableVariantClientState,ptr_glEnableVariantClientState,"glEnableVariantClientState",glEnableVariantClientState,GLuint-> IO ())
-EXTENSION_ENTRY(dyn_glDisableVariantClientState,ptr_glDisableVariantClientState,"glDisableVariantClientState",glDisableVariantClientState,GLuint-> IO ())
-EXTENSION_ENTRY(dyn_glBindLightParameter,ptr_glBindLightParameter,"glBindLightParameter",glBindLightParameter,GLenum -> GLenum-> IO GLuint)
-EXTENSION_ENTRY(dyn_glBindMaterialParameter,ptr_glBindMaterialParameter,"glBindMaterialParameter",glBindMaterialParameter,GLenum -> GLenum-> IO GLuint)
-EXTENSION_ENTRY(dyn_glBindTexGenParameter,ptr_glBindTexGenParameter,"glBindTexGenParameter",glBindTexGenParameter,GLenum -> GLenum -> GLenum-> IO GLuint)
-EXTENSION_ENTRY(dyn_glBindTextureUnitParameter,ptr_glBindTextureUnitParameter,"glBindTextureUnitParameter",glBindTextureUnitParameter,GLenum -> GLenum-> IO GLuint)
-EXTENSION_ENTRY(dyn_glBindParameter,ptr_glBindParameter,"glBindParameter",glBindParameter,GLenum -> IO GLuint)
-EXTENSION_ENTRY(dyn_glIsVariantEnabled,ptr_glIsVariantEnabled,"glIsVariantEnabled",glIsVariantEnabled,GLuint -> GLenum -> IO GLboolean)
-EXTENSION_ENTRY(dyn_glGetVariantBooleanv,ptr_glGetVariantBooleanv,"glGetVariantBooleanv",glGetVariantBooleanv,GLuint -> GLenum -> Ptr GLboolean -> IO ())
-EXTENSION_ENTRY(dyn_glGetVariantIntegerv,ptr_glGetVariantIntegerv,"glGetVariantIntegerv",glGetVariantIntegerv,GLuint -> GLenum -> Ptr GLint -> IO ())
-EXTENSION_ENTRY(dyn_glGetVariantFloatv,ptr_glGetVariantFloatv,"glGetVariantFloatv",glGetVariantFloatv,GLuint -> GLenum -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(dyn_glGetVariantPointerv,ptr_glGetVariantPointerv,"glGetVariantPointerv",glGetVariantPointerv,GLuint -> GLenum -> Ptr (Ptr a) -> IO ())
-EXTENSION_ENTRY(dyn_glGetInvariantBooleanv,ptr_glGetInvariantBooleanv,"glGetInvariantBooleanv",glGetInvariantBooleanv,GLuint -> GLenum -> Ptr GLboolean -> IO ())
-EXTENSION_ENTRY(dyn_glGetInvariantIntegerv,ptr_glGetInvariantIntegerv,"glGetInvariantIntegerv",glGetInvariantIntegerv,GLuint -> GLenum -> Ptr GLint -> IO ())
-EXTENSION_ENTRY(dyn_glGetInvariantFloatv,ptr_glGetInvariantFloatv,"glGetInvariantFloatv",glGetInvariantFloatv,GLuint -> GLenum -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(dyn_glGetLocalConstantBooleanv,ptr_glGetLocalConstantBooleanv,"glGetLocalConstantBooleanv",glGetLocalConstantBooleanv,GLuint -> GLenum -> Ptr GLboolean -> IO ())
-EXTENSION_ENTRY(dyn_glGetLocalConstantIntegerv,ptr_glGetLocalConstantIntegerv,"glGetLocalConstantIntegerv",glGetLocalConstantIntegerv,GLuint -> GLenum -> Ptr GLint -> IO ())
-EXTENSION_ENTRY(dyn_glGetLocalConstantFloatv,ptr_glGetLocalConstantFloatv,"glGetLocalConstantFloatv",glGetLocalConstantFloatv,GLuint -> GLenum -> Ptr GLfloat -> IO ())
-
-gl_VARIANT_VALUE :: GLenum
-gl_VARIANT_VALUE = 0x87E4
-
-gl_VARIANT_DATATYPE :: GLenum
-gl_VARIANT_DATATYPE = 0x87E5
-
-gl_VARIANT_ARRAY_STRIDE :: GLenum
-gl_VARIANT_ARRAY_STRIDE = 0x87E6
-
-gl_VARIANT_ARRAY_TYPE :: GLenum
-gl_VARIANT_ARRAY_TYPE = 0x87E7
-
-gl_VARIANT_ARRAY :: GLenum
-gl_VARIANT_ARRAY = 0x87E8
-
-gl_VARIANT_ARRAY_POINTER :: GLenum
-gl_VARIANT_ARRAY_POINTER = 0x87E9
-
-gl_INVARIANT_VALUE :: GLenum
-gl_INVARIANT_VALUE = 0x87EA
-
-gl_INVARIANT_DATATYPE :: GLenum
-gl_INVARIANT_DATATYPE = 0x87EB
-
-gl_LOCAL_CONSTANT_VALUE :: GLenum
-gl_LOCAL_CONSTANT_VALUE = 0x87EC
-
-gl_LOCAL_CONSTANT_DATATYPE :: GLenum
-gl_LOCAL_CONSTANT_DATATYPE = 0x87ED
-
-gl_OP_INDEX :: GLenum
-gl_OP_INDEX = 0x8782
-
-gl_OP_NEGATE :: GLenum
-gl_OP_NEGATE = 0x8783
-
-gl_OP_DOT3 :: GLenum
-gl_OP_DOT3 = 0x8784
-
-gl_OP_DOT4 :: GLenum
-gl_OP_DOT4 = 0x8785
-
-gl_OP_MUL :: GLenum
-gl_OP_MUL = 0x8786
-
-gl_OP_ADD :: GLenum
-gl_OP_ADD = 0x8787
-
-gl_OP_MADD :: GLenum
-gl_OP_MADD = 0x8788
-
-gl_OP_FRAC :: GLenum
-gl_OP_FRAC = 0x8789
-
-gl_OP_MAX :: GLenum
-gl_OP_MAX = 0x878A
-
-gl_OP_MIN :: GLenum
-gl_OP_MIN = 0x878B
-
-gl_OP_SET_GE :: GLenum
-gl_OP_SET_GE = 0x878C
-
-gl_OP_SET_LT :: GLenum
-gl_OP_SET_LT = 0x878D
-
-gl_OP_CLAMP :: GLenum
-gl_OP_CLAMP = 0x878E
-
-gl_OP_FLOOR :: GLenum
-gl_OP_FLOOR = 0x878F
-
-gl_OP_ROUND :: GLenum
-gl_OP_ROUND = 0x8790
-
-gl_OP_EXP_BASE_2 :: GLenum
-gl_OP_EXP_BASE_2 = 0x8791
-
-gl_OP_LOG_BASE_2 :: GLenum
-gl_OP_LOG_BASE_2 = 0x8792
-
-gl_OP_POWER :: GLenum
-gl_OP_POWER = 0x8793
-
-gl_OP_RECIP :: GLenum
-gl_OP_RECIP = 0x8794
-
-gl_OP_RECIP_SQRT :: GLenum
-gl_OP_RECIP_SQRT = 0x8795
-
-gl_OP_SUB :: GLenum
-gl_OP_SUB = 0x8796
-
-gl_OP_CROSS_PRODUCT :: GLenum
-gl_OP_CROSS_PRODUCT = 0x8797
-
-gl_OP_MULTIPLY_MATRIX :: GLenum
-gl_OP_MULTIPLY_MATRIX = 0x8798
-
-gl_OP_MOV :: GLenum
-gl_OP_MOV = 0x8799
-
-gl_OUTPUT_VERTEX :: GLenum
-gl_OUTPUT_VERTEX = 0x879A
-
-gl_OUTPUT_COLOR0 :: GLenum
-gl_OUTPUT_COLOR0 = 0x879B
-
-gl_OUTPUT_COLOR1 :: GLenum
-gl_OUTPUT_COLOR1 = 0x879C
-
-gl_OUTPUT_TEXTURE_COORD0 :: GLenum
-gl_OUTPUT_TEXTURE_COORD0 = 0x879D
-
-gl_OUTPUT_TEXTURE_COORD1 :: GLenum
-gl_OUTPUT_TEXTURE_COORD1 = 0x879E
-
-gl_OUTPUT_TEXTURE_COORD2 :: GLenum
-gl_OUTPUT_TEXTURE_COORD2 = 0x879F
-
-gl_OUTPUT_TEXTURE_COORD3 :: GLenum
-gl_OUTPUT_TEXTURE_COORD3 = 0x87A0
-
-gl_OUTPUT_TEXTURE_COORD4 :: GLenum
-gl_OUTPUT_TEXTURE_COORD4 = 0x87A1
-
-gl_OUTPUT_TEXTURE_COORD5 :: GLenum
-gl_OUTPUT_TEXTURE_COORD5 = 0x87A2
-
-gl_OUTPUT_TEXTURE_COORD6 :: GLenum
-gl_OUTPUT_TEXTURE_COORD6 = 0x87A3
-
-gl_OUTPUT_TEXTURE_COORD7 :: GLenum
-gl_OUTPUT_TEXTURE_COORD7 = 0x87A4
-
-gl_OUTPUT_TEXTURE_COORD8 :: GLenum
-gl_OUTPUT_TEXTURE_COORD8 = 0x87A5
-
-gl_OUTPUT_TEXTURE_COORD9 :: GLenum
-gl_OUTPUT_TEXTURE_COORD9 = 0x87A6
-
-gl_OUTPUT_TEXTURE_COORD10 :: GLenum
-gl_OUTPUT_TEXTURE_COORD10 = 0x87A7
-
-gl_OUTPUT_TEXTURE_COORD11 :: GLenum
-gl_OUTPUT_TEXTURE_COORD11 = 0x87A8
-
-gl_OUTPUT_TEXTURE_COORD12 :: GLenum
-gl_OUTPUT_TEXTURE_COORD12 = 0x87A9
-
-gl_OUTPUT_TEXTURE_COORD13 :: GLenum
-gl_OUTPUT_TEXTURE_COORD13 = 0x87AA
-
-gl_OUTPUT_TEXTURE_COORD14 :: GLenum
-gl_OUTPUT_TEXTURE_COORD14 = 0x87AB
-
-gl_OUTPUT_TEXTURE_COORD15 :: GLenum
-gl_OUTPUT_TEXTURE_COORD15 = 0x87AC
-
-gl_OUTPUT_TEXTURE_COORD16 :: GLenum
-gl_OUTPUT_TEXTURE_COORD16 = 0x87AD
-
-gl_OUTPUT_TEXTURE_COORD17 :: GLenum
-gl_OUTPUT_TEXTURE_COORD17 = 0x87AE
-
-gl_OUTPUT_TEXTURE_COORD18 :: GLenum
-gl_OUTPUT_TEXTURE_COORD18 = 0x87AF
-
-gl_OUTPUT_TEXTURE_COORD19 :: GLenum
-gl_OUTPUT_TEXTURE_COORD19 = 0x87B0
-
-gl_OUTPUT_TEXTURE_COORD20 :: GLenum
-gl_OUTPUT_TEXTURE_COORD20 = 0x87B1
-
-gl_OUTPUT_TEXTURE_COORD21 :: GLenum
-gl_OUTPUT_TEXTURE_COORD21 = 0x87B2
-
-gl_OUTPUT_TEXTURE_COORD22 :: GLenum
-gl_OUTPUT_TEXTURE_COORD22 = 0x87B3
-
-gl_OUTPUT_TEXTURE_COORD23 :: GLenum
-gl_OUTPUT_TEXTURE_COORD23 = 0x87B4
-
-gl_OUTPUT_TEXTURE_COORD24 :: GLenum
-gl_OUTPUT_TEXTURE_COORD24 = 0x87B5
-
-gl_OUTPUT_TEXTURE_COORD25 :: GLenum
-gl_OUTPUT_TEXTURE_COORD25 = 0x87B6
-
-gl_OUTPUT_TEXTURE_COORD26 :: GLenum
-gl_OUTPUT_TEXTURE_COORD26 = 0x87B7
-
-gl_OUTPUT_TEXTURE_COORD27 :: GLenum
-gl_OUTPUT_TEXTURE_COORD27 = 0x87B8
-
-gl_OUTPUT_TEXTURE_COORD28 :: GLenum
-gl_OUTPUT_TEXTURE_COORD28 = 0x87B9
-
-gl_OUTPUT_TEXTURE_COORD29 :: GLenum
-gl_OUTPUT_TEXTURE_COORD29 = 0x87BA
-
-gl_OUTPUT_TEXTURE_COORD30 :: GLenum
-gl_OUTPUT_TEXTURE_COORD30 = 0x87BB
-
-gl_OUTPUT_TEXTURE_COORD31 :: GLenum
-gl_OUTPUT_TEXTURE_COORD31 = 0x87BC
-
-gl_OUTPUT_FOG :: GLenum
-gl_OUTPUT_FOG = 0x87BD
-
-gl_SCALAR :: GLenum
-gl_SCALAR = 0x87BE
-
-gl_VECTOR :: GLenum
-gl_VECTOR = 0x87BF
-
-gl_MATRIX :: GLenum
-gl_MATRIX = 0x87C0
-
-gl_VARIANT :: GLenum
-gl_VARIANT = 0x87C1
-
-gl_INVARIANT :: GLenum
-gl_INVARIANT = 0x87C2
-
-gl_LOCAL_CONSTANT :: GLenum
-gl_LOCAL_CONSTANT = 0x87C3
-
-gl_LOCAL :: GLenum
-gl_LOCAL = 0x87C4
-
-gl_MAX_VERTEX_SHADER_INSTRUCTIONS :: GLenum
-gl_MAX_VERTEX_SHADER_INSTRUCTIONS = 0x87C5
-
-gl_MAX_VERTEX_SHADER_VARIANTS :: GLenum
-gl_MAX_VERTEX_SHADER_VARIANTS = 0x87C6
-
-gl_MAX_VERTEX_SHADER_INVARIANTS :: GLenum
-gl_MAX_VERTEX_SHADER_INVARIANTS = 0x87C7
-
-gl_MAX_VERTEX_SHADER_LOCAL_CONSTANTS :: GLenum
-gl_MAX_VERTEX_SHADER_LOCAL_CONSTANTS = 0x87C8
-
-gl_MAX_VERTEX_SHADER_LOCALS :: GLenum
-gl_MAX_VERTEX_SHADER_LOCALS = 0x87C9
-
-gl_MAX_OPTIMIZED_VERTEX_SHADER_INSTRUCTIONS :: GLenum
-gl_MAX_OPTIMIZED_VERTEX_SHADER_INSTRUCTIONS = 0x87CA
-
-gl_MAX_OPTIMIZED_VERTEX_SHADER_VARIANTS :: GLenum
-gl_MAX_OPTIMIZED_VERTEX_SHADER_VARIANTS = 0x87CB
-
-gl_MAX_OPTIMIZED_VERTEX_SHADER_LOCAL_CONSTANTS :: GLenum
-gl_MAX_OPTIMIZED_VERTEX_SHADER_LOCAL_CONSTANTS = 0x87CC
-
-gl_MAX_OPTIMIZED_VERTEX_SHADER_INARIANTS :: GLenum
-gl_MAX_OPTIMIZED_VERTEX_SHADER_INARIANTS = 0x87CD
-
-gl_MAX_OPTIMIZED_VERTEX_SHADER_LOCALS :: GLenum
-gl_MAX_OPTIMIZED_VERTEX_SHADER_LOCALS = 0x87CE
-
-gl_VERTEX_SHADER_INSTRUCTIONS :: GLenum
-gl_VERTEX_SHADER_INSTRUCTIONS = 0x87CF
-
-gl_VERTEX_SHADER_VARIANTS :: GLenum
-gl_VERTEX_SHADER_VARIANTS = 0x87D0
-
-gl_VERTEX_SHADER_INVARIANTS :: GLenum
-gl_VERTEX_SHADER_INVARIANTS = 0x87D1
-
-gl_VERTEX_SHADER_LOCAL_CONSTANTS :: GLenum
-gl_VERTEX_SHADER_LOCAL_CONSTANTS = 0x87D2
-
-gl_VERTEX_SHADER_LOCALS :: GLenum
-gl_VERTEX_SHADER_LOCALS = 0x87D3
-
-gl_VERTEX_SHADER_BINDING :: GLenum
-gl_VERTEX_SHADER_BINDING = 0x8781
-
-gl_VERTEX_SHADER_OPTIMIZED :: GLenum
-gl_VERTEX_SHADER_OPTIMIZED = 0x87D4
-
-gl_X :: GLenum
-gl_X = 0x87D5
-
-gl_Y :: GLenum
-gl_Y = 0x87D6
-
-gl_Z :: GLenum
-gl_Z = 0x87D7
-
-gl_W :: GLenum
-gl_W = 0x87D8
-
-gl_NEGATIVE_X :: GLenum
-gl_NEGATIVE_X = 0x87D9
-
-gl_NEGATIVE_Y :: GLenum
-gl_NEGATIVE_Y = 0x87DA
-
-gl_NEGATIVE_Z :: GLenum
-gl_NEGATIVE_Z = 0x87DB
-
-gl_NEGATIVE_W :: GLenum
-gl_NEGATIVE_W = 0x87DC
-
-gl_NEGATIVE_ONE :: GLenum
-gl_NEGATIVE_ONE = 0x87DF
-
-gl_NORMALIZED_RANGE :: GLenum
-gl_NORMALIZED_RANGE = 0x87E0
-
-gl_FULL_RANGE :: GLenum
-gl_FULL_RANGE = 0x87E1
-
-gl_CURRENT_VERTEX :: GLenum
-gl_CURRENT_VERTEX = 0x87E2
-
-gl_MVP_MATRIX :: GLenum
-gl_MVP_MATRIX = 0x87E3
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
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
@@ -1,82 +1,37 @@
-{-# LANGUAGE ForeignFunctionInterface, CPP #-}
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.VertexWeighting
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All raw functions and tokens from the EXT_vertex_weighting extension, see
--- <http://www.opengl.org/registry/specs/EXT/vertex_weighting.txt>.
+-- The <https://www.opengl.org/registry/specs/EXT/vertex_weighting.txt EXT_vertex_weighting> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.EXT.VertexWeighting (
-   -- * Functions
-   glVertexWeightf,
-   glVertexWeightfv,
-   glVertexWeightPointer,
-   -- * Tokens
-   gl_VERTEX_WEIGHTING,
-   gl_MODELVIEW0,
-   gl_MODELVIEW1,
-   gl_MODELVIEW0_MATRIX,
-   gl_MODELVIEW1_MATRIX,
-   gl_CURRENT_VERTEX_WEIGHT,
-   gl_VERTEX_WEIGHT_ARRAY,
-   gl_VERTEX_WEIGHT_ARRAY_SIZE,
-   gl_VERTEX_WEIGHT_ARRAY_TYPE,
-   gl_VERTEX_WEIGHT_ARRAY_STRIDE,
-   gl_MODELVIEW0_STACK_DEPTH,
-   gl_MODELVIEW1_STACK_DEPTH,
-   gl_VERTEX_WEIGHT_ARRAY_POINTER
+  -- * Enums
+  gl_CURRENT_VERTEX_WEIGHT_EXT,
+  gl_MODELVIEW0_EXT,
+  gl_MODELVIEW0_MATRIX_EXT,
+  gl_MODELVIEW0_STACK_DEPTH_EXT,
+  gl_MODELVIEW1_EXT,
+  gl_MODELVIEW1_MATRIX_EXT,
+  gl_MODELVIEW1_STACK_DEPTH_EXT,
+  gl_VERTEX_WEIGHTING_EXT,
+  gl_VERTEX_WEIGHT_ARRAY_EXT,
+  gl_VERTEX_WEIGHT_ARRAY_POINTER_EXT,
+  gl_VERTEX_WEIGHT_ARRAY_SIZE_EXT,
+  gl_VERTEX_WEIGHT_ARRAY_STRIDE_EXT,
+  gl_VERTEX_WEIGHT_ARRAY_TYPE_EXT,
+  -- * Functions
+  glVertexWeightPointerEXT,
+  glVertexWeightfEXT,
+  glVertexWeightfvEXT
 ) where
 
-import Foreign.C.Types
-import Graphics.Rendering.OpenGL.Raw.Types
-import Graphics.Rendering.OpenGL.Raw.ARB.VertexBlend
-import Foreign.Ptr ( Ptr, FunPtr )
-import Graphics.Rendering.OpenGL.Raw.GetProcAddress ( getExtensionChecked )
-import System.IO.Unsafe ( unsafePerformIO )
-
-#include "HsOpenGLRaw.h"
-
-EXTENSION_ENTRY(dyn_glVertexWeightf,ptr_glVertexWeightf,"glVertexWeightf",glVertexWeightf,GLfloat -> IO ())
-EXTENSION_ENTRY(dyn_glVertexWeightfv,ptr_glVertexWeightfv,"glVertexWeightfv",glVertexWeightfv,Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(dyn_glVertexWeightPointer,ptr_glVertexWeightPointer,"glVertexWeightPointer",glVertexWeightPointer,GLint -> GLenum -> GLsizei -> Ptr a -> IO ())
-
-gl_VERTEX_WEIGHTING :: GLenum
-gl_VERTEX_WEIGHTING = 0x8509
-
-gl_MODELVIEW0_MATRIX :: GLenum
-gl_MODELVIEW0_MATRIX = 0x0BA6
-
-gl_MODELVIEW1_MATRIX :: GLenum
-gl_MODELVIEW1_MATRIX = 0x8506
-
-gl_CURRENT_VERTEX_WEIGHT :: GLenum
-gl_CURRENT_VERTEX_WEIGHT = 0x850B
-
-gl_VERTEX_WEIGHT_ARRAY :: GLenum
-gl_VERTEX_WEIGHT_ARRAY = 0x850C
-
-gl_VERTEX_WEIGHT_ARRAY_SIZE :: GLenum
-gl_VERTEX_WEIGHT_ARRAY_SIZE = 0x850D
-
-gl_VERTEX_WEIGHT_ARRAY_TYPE :: GLenum
-gl_VERTEX_WEIGHT_ARRAY_TYPE = 0x850E
-
-gl_VERTEX_WEIGHT_ARRAY_STRIDE :: GLenum
-gl_VERTEX_WEIGHT_ARRAY_STRIDE = 0x850F
-
-gl_MODELVIEW0_STACK_DEPTH :: GLenum
-gl_MODELVIEW0_STACK_DEPTH = 0x0BA3
-
-gl_MODELVIEW1_STACK_DEPTH :: GLenum
-gl_MODELVIEW1_STACK_DEPTH = 0x8502
-
-gl_VERTEX_WEIGHT_ARRAY_POINTER :: GLenum
-gl_VERTEX_WEIGHT_ARRAY_POINTER = 0x8510
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/X11SyncObject.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/X11SyncObject.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/EXT/X11SyncObject.hs
@@ -0,0 +1,23 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.X11SyncObject
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/EXT/x11_sync_object.txt EXT_x11_sync_object> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.EXT.X11SyncObject (
+  -- * Enums
+  gl_SYNC_X11_FENCE_EXT,
+  -- * Functions
+  glImportSyncEXT
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/Functions.hs b/src/Graphics/Rendering/OpenGL/Raw/Functions.hs
# file too large to diff: src/Graphics/Rendering/OpenGL/Raw/Functions.hs
diff --git a/src/Graphics/Rendering/OpenGL/Raw/GREMEDY.hs b/src/Graphics/Rendering/OpenGL/Raw/GREMEDY.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/GREMEDY.hs
@@ -0,0 +1,21 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.GREMEDY
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- A convenience module, combining all raw modules containing GREMEDY extensions.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.GREMEDY (
+  module Graphics.Rendering.OpenGL.Raw.GREMEDY.FrameTerminator,
+  module Graphics.Rendering.OpenGL.Raw.GREMEDY.StringMarker
+) where
+
+import Graphics.Rendering.OpenGL.Raw.GREMEDY.FrameTerminator
+import Graphics.Rendering.OpenGL.Raw.GREMEDY.StringMarker
diff --git a/src/Graphics/Rendering/OpenGL/Raw/GREMEDY/FrameTerminator.hs b/src/Graphics/Rendering/OpenGL/Raw/GREMEDY/FrameTerminator.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/GREMEDY/FrameTerminator.hs
@@ -0,0 +1,20 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.GREMEDY.FrameTerminator
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/GREMEDY/frame_terminator.txt GREMEDY_frame_terminator> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.GREMEDY.FrameTerminator (
+  -- * Functions
+  glFrameTerminatorGREMEDY
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/GREMEDY/StringMarker.hs b/src/Graphics/Rendering/OpenGL/Raw/GREMEDY/StringMarker.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/GREMEDY/StringMarker.hs
@@ -0,0 +1,20 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.GREMEDY.StringMarker
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/GREMEDY/string_marker.txt GREMEDY_string_marker> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.GREMEDY.StringMarker (
+  -- * Functions
+  glStringMarkerGREMEDY
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/HP.hs b/src/Graphics/Rendering/OpenGL/Raw/HP.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/HP.hs
@@ -0,0 +1,26 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.HP
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- A convenience module, combining all raw modules containing HP extensions.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.HP (
+  module Graphics.Rendering.OpenGL.Raw.HP.ConvolutionBorderModes,
+  module Graphics.Rendering.OpenGL.Raw.HP.ImageTransform,
+  module Graphics.Rendering.OpenGL.Raw.HP.OcclusionTest,
+  module Graphics.Rendering.OpenGL.Raw.HP.TextureLighting
+) where
+
+import Graphics.Rendering.OpenGL.Raw.HP.ConvolutionBorderModes
+import Graphics.Rendering.OpenGL.Raw.HP.ImageTransform
+import Graphics.Rendering.OpenGL.Raw.HP.OcclusionTest
+import Graphics.Rendering.OpenGL.Raw.HP.TextureLighting
+
diff --git a/src/Graphics/Rendering/OpenGL/Raw/HP/ConvolutionBorderModes.hs b/src/Graphics/Rendering/OpenGL/Raw/HP/ConvolutionBorderModes.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/HP/ConvolutionBorderModes.hs
@@ -0,0 +1,23 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.HP.ConvolutionBorderModes
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/HP/convolution_border_modes.txt HP_convolution_border_modes> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.HP.ConvolutionBorderModes (
+  -- * Enums
+  gl_CONSTANT_BORDER_HP,
+  gl_CONVOLUTION_BORDER_COLOR_HP,
+  gl_IGNORE_BORDER_HP,
+  gl_REPLICATE_BORDER_HP
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/HP/ImageTransform.hs b/src/Graphics/Rendering/OpenGL/Raw/HP/ImageTransform.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/HP/ImageTransform.hs
@@ -0,0 +1,42 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.HP.ImageTransform
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/HP/image_transform.txt HP_image_transform> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.HP.ImageTransform (
+  -- * Enums
+  gl_AVERAGE_HP,
+  gl_CUBIC_HP,
+  gl_IMAGE_CUBIC_WEIGHT_HP,
+  gl_IMAGE_MAG_FILTER_HP,
+  gl_IMAGE_MIN_FILTER_HP,
+  gl_IMAGE_ROTATE_ANGLE_HP,
+  gl_IMAGE_ROTATE_ORIGIN_X_HP,
+  gl_IMAGE_ROTATE_ORIGIN_Y_HP,
+  gl_IMAGE_SCALE_X_HP,
+  gl_IMAGE_SCALE_Y_HP,
+  gl_IMAGE_TRANSFORM_2D_HP,
+  gl_IMAGE_TRANSLATE_X_HP,
+  gl_IMAGE_TRANSLATE_Y_HP,
+  gl_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP,
+  gl_PROXY_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP,
+  -- * Functions
+  glGetImageTransformParameterfvHP,
+  glGetImageTransformParameterivHP,
+  glImageTransformParameterfHP,
+  glImageTransformParameterfvHP,
+  glImageTransformParameteriHP,
+  glImageTransformParameterivHP
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/HP/OcclusionTest.hs b/src/Graphics/Rendering/OpenGL/Raw/HP/OcclusionTest.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/HP/OcclusionTest.hs
@@ -0,0 +1,21 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.HP.OcclusionTest
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/HP/occlusion_test.txt HP_occlusion_test> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.HP.OcclusionTest (
+  -- * Enums
+  gl_OCCLUSION_TEST_HP,
+  gl_OCCLUSION_TEST_RESULT_HP
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/HP/TextureLighting.hs b/src/Graphics/Rendering/OpenGL/Raw/HP/TextureLighting.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/HP/TextureLighting.hs
@@ -0,0 +1,22 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.HP.TextureLighting
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/HP/texture_lighting.txt HP_texture_lighting> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.HP.TextureLighting (
+  -- * Enums
+  gl_TEXTURE_LIGHTING_MODE_HP,
+  gl_TEXTURE_POST_SPECULAR_HP,
+  gl_TEXTURE_PRE_SPECULAR_HP
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/IBM.hs b/src/Graphics/Rendering/OpenGL/Raw/IBM.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/IBM.hs
@@ -0,0 +1,29 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.IBM
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- A convenience module, combining all raw modules containing IBM extensions.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.IBM (
+  module Graphics.Rendering.OpenGL.Raw.IBM.CullVertex,
+  module Graphics.Rendering.OpenGL.Raw.IBM.MultimodeDrawArrays,
+  module Graphics.Rendering.OpenGL.Raw.IBM.RasterposClip,
+  module Graphics.Rendering.OpenGL.Raw.IBM.StaticData,
+  module Graphics.Rendering.OpenGL.Raw.IBM.TextureMirroredRepeat,
+  module Graphics.Rendering.OpenGL.Raw.IBM.VertexArrayLists
+) where
+
+import Graphics.Rendering.OpenGL.Raw.IBM.CullVertex
+import Graphics.Rendering.OpenGL.Raw.IBM.MultimodeDrawArrays
+import Graphics.Rendering.OpenGL.Raw.IBM.RasterposClip
+import Graphics.Rendering.OpenGL.Raw.IBM.StaticData
+import Graphics.Rendering.OpenGL.Raw.IBM.TextureMirroredRepeat
+import Graphics.Rendering.OpenGL.Raw.IBM.VertexArrayLists
diff --git a/src/Graphics/Rendering/OpenGL/Raw/IBM/CullVertex.hs b/src/Graphics/Rendering/OpenGL/Raw/IBM/CullVertex.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/IBM/CullVertex.hs
@@ -0,0 +1,20 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.IBM.CullVertex
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/IBM/cull_vertex.txt IBM_cull_vertex> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.IBM.CullVertex (
+  -- * Enums
+  gl_CULL_VERTEX_IBM
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/IBM/MultimodeDrawArrays.hs b/src/Graphics/Rendering/OpenGL/Raw/IBM/MultimodeDrawArrays.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/IBM/MultimodeDrawArrays.hs
@@ -0,0 +1,21 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.IBM.MultimodeDrawArrays
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/IBM/multimode_draw_arrays.txt IBM_multimode_draw_arrays> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.IBM.MultimodeDrawArrays (
+  -- * Functions
+  glMultiModeDrawArraysIBM,
+  glMultiModeDrawElementsIBM
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/IBM/RasterposClip.hs b/src/Graphics/Rendering/OpenGL/Raw/IBM/RasterposClip.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/IBM/RasterposClip.hs
@@ -0,0 +1,20 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.IBM.RasterposClip
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/IBM/rasterpos_clip.txt IBM_rasterpos_clip> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.IBM.RasterposClip (
+  -- * Enums
+  gl_RASTER_POSITION_UNCLIPPED_IBM
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/IBM/StaticData.hs b/src/Graphics/Rendering/OpenGL/Raw/IBM/StaticData.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/IBM/StaticData.hs
@@ -0,0 +1,24 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.IBM.StaticData
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/IBM/static_data.txt IBM_static_data> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.IBM.StaticData (
+  -- * Enums
+  gl_ALL_STATIC_DATA_IBM,
+  gl_STATIC_VERTEX_ARRAY_IBM,
+  -- * Functions
+  glFlushStaticDataIBM
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/IBM/TextureMirroredRepeat.hs b/src/Graphics/Rendering/OpenGL/Raw/IBM/TextureMirroredRepeat.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/IBM/TextureMirroredRepeat.hs
@@ -0,0 +1,20 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.IBM.TextureMirroredRepeat
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/IBM/texture_mirrored_repeat.txt IBM_texture_mirrored_repeat> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.IBM.TextureMirroredRepeat (
+  -- * Enums
+  gl_MIRRORED_REPEAT_IBM
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/IBM/VertexArrayLists.hs b/src/Graphics/Rendering/OpenGL/Raw/IBM/VertexArrayLists.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/IBM/VertexArrayLists.hs
@@ -0,0 +1,45 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.IBM.VertexArrayLists
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/IBM/vertex_array_lists.txt IBM_vertex_array_lists> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.IBM.VertexArrayLists (
+  -- * Enums
+  gl_COLOR_ARRAY_LIST_IBM,
+  gl_COLOR_ARRAY_LIST_STRIDE_IBM,
+  gl_EDGE_FLAG_ARRAY_LIST_IBM,
+  gl_EDGE_FLAG_ARRAY_LIST_STRIDE_IBM,
+  gl_FOG_COORDINATE_ARRAY_LIST_IBM,
+  gl_FOG_COORDINATE_ARRAY_LIST_STRIDE_IBM,
+  gl_INDEX_ARRAY_LIST_IBM,
+  gl_INDEX_ARRAY_LIST_STRIDE_IBM,
+  gl_NORMAL_ARRAY_LIST_IBM,
+  gl_NORMAL_ARRAY_LIST_STRIDE_IBM,
+  gl_SECONDARY_COLOR_ARRAY_LIST_IBM,
+  gl_SECONDARY_COLOR_ARRAY_LIST_STRIDE_IBM,
+  gl_TEXTURE_COORD_ARRAY_LIST_IBM,
+  gl_TEXTURE_COORD_ARRAY_LIST_STRIDE_IBM,
+  gl_VERTEX_ARRAY_LIST_IBM,
+  gl_VERTEX_ARRAY_LIST_STRIDE_IBM,
+  -- * Functions
+  glColorPointerListIBM,
+  glEdgeFlagPointerListIBM,
+  glFogCoordPointerListIBM,
+  glIndexPointerListIBM,
+  glNormalPointerListIBM,
+  glSecondaryColorPointerListIBM,
+  glTexCoordPointerListIBM,
+  glVertexPointerListIBM
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/INGR.hs b/src/Graphics/Rendering/OpenGL/Raw/INGR.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/INGR.hs
@@ -0,0 +1,23 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.INGR
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- A convenience module, combining all raw modules containing INGR extensions.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.INGR (
+  module Graphics.Rendering.OpenGL.Raw.INGR.BlendFuncSeparate,
+  module Graphics.Rendering.OpenGL.Raw.INGR.ColorClamp,
+  module Graphics.Rendering.OpenGL.Raw.INGR.InterlaceRead
+) where
+
+import Graphics.Rendering.OpenGL.Raw.INGR.BlendFuncSeparate
+import Graphics.Rendering.OpenGL.Raw.INGR.ColorClamp
+import Graphics.Rendering.OpenGL.Raw.INGR.InterlaceRead
diff --git a/src/Graphics/Rendering/OpenGL/Raw/INGR/BlendFuncSeparate.hs b/src/Graphics/Rendering/OpenGL/Raw/INGR/BlendFuncSeparate.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/INGR/BlendFuncSeparate.hs
@@ -0,0 +1,20 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.INGR.BlendFuncSeparate
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/INGR/blend_func_separate.txt INGR_blend_func_separate> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.INGR.BlendFuncSeparate (
+  -- * Functions
+  glBlendFuncSeparateINGR
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/INGR/ColorClamp.hs b/src/Graphics/Rendering/OpenGL/Raw/INGR/ColorClamp.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/INGR/ColorClamp.hs
@@ -0,0 +1,27 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.INGR.ColorClamp
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/INGR/color_clamp.txt INGR_color_clamp> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.INGR.ColorClamp (
+  -- * Enums
+  gl_ALPHA_MAX_CLAMP_INGR,
+  gl_ALPHA_MIN_CLAMP_INGR,
+  gl_BLUE_MAX_CLAMP_INGR,
+  gl_BLUE_MIN_CLAMP_INGR,
+  gl_GREEN_MAX_CLAMP_INGR,
+  gl_GREEN_MIN_CLAMP_INGR,
+  gl_RED_MAX_CLAMP_INGR,
+  gl_RED_MIN_CLAMP_INGR
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/INGR/InterlaceRead.hs b/src/Graphics/Rendering/OpenGL/Raw/INGR/InterlaceRead.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/INGR/InterlaceRead.hs
@@ -0,0 +1,20 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.INGR.InterlaceRead
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/INGR/interlace_read.txt INGR_interlace_read> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.INGR.InterlaceRead (
+  -- * Enums
+  gl_INTERLACE_READ_INGR
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/INTEL.hs b/src/Graphics/Rendering/OpenGL/Raw/INTEL.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/INTEL.hs
@@ -0,0 +1,23 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.INTEL
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- A convenience module, combining all raw modules containing INTEL extensions.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.INTEL (
+  module Graphics.Rendering.OpenGL.Raw.INTEL.MapTexture,
+  module Graphics.Rendering.OpenGL.Raw.INTEL.ParallelArrays,
+  module Graphics.Rendering.OpenGL.Raw.INTEL.PerformanceQuery
+) where
+
+import Graphics.Rendering.OpenGL.Raw.INTEL.MapTexture
+import Graphics.Rendering.OpenGL.Raw.INTEL.ParallelArrays
+import Graphics.Rendering.OpenGL.Raw.INTEL.PerformanceQuery
diff --git a/src/Graphics/Rendering/OpenGL/Raw/INTEL/MapTexture.hs b/src/Graphics/Rendering/OpenGL/Raw/INTEL/MapTexture.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/INTEL/MapTexture.hs
@@ -0,0 +1,28 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.INTEL.MapTexture
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/INTEL/map_texture.txt INTEL_map_texture> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.INTEL.MapTexture (
+  -- * Enums
+  gl_LAYOUT_DEFAULT_INTEL,
+  gl_LAYOUT_LINEAR_CPU_CACHED_INTEL,
+  gl_LAYOUT_LINEAR_INTEL,
+  gl_TEXTURE_MEMORY_LAYOUT_INTEL,
+  -- * Functions
+  glMapTexture2DINTEL,
+  glSyncTextureINTEL,
+  glUnmapTexture2DINTEL
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/INTEL/ParallelArrays.hs b/src/Graphics/Rendering/OpenGL/Raw/INTEL/ParallelArrays.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/INTEL/ParallelArrays.hs
@@ -0,0 +1,30 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.INTEL.ParallelArrays
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/INTEL/parallel_arrays.txt INTEL_parallel_arrays> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.INTEL.ParallelArrays (
+  -- * Enums
+  gl_COLOR_ARRAY_PARALLEL_POINTERS_INTEL,
+  gl_NORMAL_ARRAY_PARALLEL_POINTERS_INTEL,
+  gl_PARALLEL_ARRAYS_INTEL,
+  gl_TEXTURE_COORD_ARRAY_PARALLEL_POINTERS_INTEL,
+  gl_VERTEX_ARRAY_PARALLEL_POINTERS_INTEL,
+  -- * Functions
+  glColorPointervINTEL,
+  glNormalPointervINTEL,
+  glTexCoordPointervINTEL,
+  glVertexPointervINTEL
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/INTEL/PerformanceQuery.hs b/src/Graphics/Rendering/OpenGL/Raw/INTEL/PerformanceQuery.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/INTEL/PerformanceQuery.hs
@@ -0,0 +1,51 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.INTEL.PerformanceQuery
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/INTEL/performance_query.txt INTEL_performance_query> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.INTEL.PerformanceQuery (
+  -- * Enums
+  gl_PERFQUERY_COUNTER_DATA_BOOL32_INTEL,
+  gl_PERFQUERY_COUNTER_DATA_DOUBLE_INTEL,
+  gl_PERFQUERY_COUNTER_DATA_FLOAT_INTEL,
+  gl_PERFQUERY_COUNTER_DATA_UINT32_INTEL,
+  gl_PERFQUERY_COUNTER_DATA_UINT64_INTEL,
+  gl_PERFQUERY_COUNTER_DESC_LENGTH_MAX_INTEL,
+  gl_PERFQUERY_COUNTER_DURATION_NORM_INTEL,
+  gl_PERFQUERY_COUNTER_DURATION_RAW_INTEL,
+  gl_PERFQUERY_COUNTER_EVENT_INTEL,
+  gl_PERFQUERY_COUNTER_NAME_LENGTH_MAX_INTEL,
+  gl_PERFQUERY_COUNTER_RAW_INTEL,
+  gl_PERFQUERY_COUNTER_THROUGHPUT_INTEL,
+  gl_PERFQUERY_COUNTER_TIMESTAMP_INTEL,
+  gl_PERFQUERY_DONOT_FLUSH_INTEL,
+  gl_PERFQUERY_FLUSH_INTEL,
+  gl_PERFQUERY_GLOBAL_CONTEXT_INTEL,
+  gl_PERFQUERY_GPA_EXTENDED_COUNTERS_INTEL,
+  gl_PERFQUERY_QUERY_NAME_LENGTH_MAX_INTEL,
+  gl_PERFQUERY_SINGLE_CONTEXT_INTEL,
+  gl_PERFQUERY_WAIT_INTEL,
+  -- * Functions
+  glBeginPerfQueryINTEL,
+  glCreatePerfQueryINTEL,
+  glDeletePerfQueryINTEL,
+  glEndPerfQueryINTEL,
+  glGetFirstPerfQueryIdINTEL,
+  glGetNextPerfQueryIdINTEL,
+  glGetPerfCounterInfoINTEL,
+  glGetPerfQueryDataINTEL,
+  glGetPerfQueryIdByNameINTEL,
+  glGetPerfQueryInfoINTEL
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/KHR.hs b/src/Graphics/Rendering/OpenGL/Raw/KHR.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/KHR.hs
@@ -0,0 +1,33 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.KHR
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- A convenience module, combining all raw modules containing KHR extensions.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.KHR (
+  module Graphics.Rendering.OpenGL.Raw.KHR.BlendEquationAdvancedCoherent,
+  module Graphics.Rendering.OpenGL.Raw.KHR.BlendEquationAdvanced,
+  module Graphics.Rendering.OpenGL.Raw.KHR.ContextFlushControl,
+  module Graphics.Rendering.OpenGL.Raw.KHR.DebugCompatibility,
+  module Graphics.Rendering.OpenGL.Raw.KHR.DebugCore,
+  module Graphics.Rendering.OpenGL.Raw.KHR.Robustness,
+  module Graphics.Rendering.OpenGL.Raw.KHR.TextureCompressionASTCHDR,
+  module Graphics.Rendering.OpenGL.Raw.KHR.TextureCompressionASTCLDR
+) where
+
+import Graphics.Rendering.OpenGL.Raw.KHR.BlendEquationAdvancedCoherent
+import Graphics.Rendering.OpenGL.Raw.KHR.BlendEquationAdvanced
+import Graphics.Rendering.OpenGL.Raw.KHR.ContextFlushControl
+import Graphics.Rendering.OpenGL.Raw.KHR.DebugCompatibility
+import Graphics.Rendering.OpenGL.Raw.KHR.DebugCore
+import Graphics.Rendering.OpenGL.Raw.KHR.Robustness
+import Graphics.Rendering.OpenGL.Raw.KHR.TextureCompressionASTCHDR
+import Graphics.Rendering.OpenGL.Raw.KHR.TextureCompressionASTCLDR
diff --git a/src/Graphics/Rendering/OpenGL/Raw/KHR/BlendEquationAdvanced.hs b/src/Graphics/Rendering/OpenGL/Raw/KHR/BlendEquationAdvanced.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/KHR/BlendEquationAdvanced.hs
@@ -0,0 +1,37 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.KHR.BlendEquationAdvanced
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/KHR/blend_equation_advanced.txt KHR_blend_equation_advanced> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.KHR.BlendEquationAdvanced (
+  -- * Enums
+  gl_COLORBURN_KHR,
+  gl_COLORDODGE_KHR,
+  gl_DARKEN_KHR,
+  gl_DIFFERENCE_KHR,
+  gl_EXCLUSION_KHR,
+  gl_HARDLIGHT_KHR,
+  gl_HSL_COLOR_KHR,
+  gl_HSL_HUE_KHR,
+  gl_HSL_LUMINOSITY_KHR,
+  gl_HSL_SATURATION_KHR,
+  gl_LIGHTEN_KHR,
+  gl_MULTIPLY_KHR,
+  gl_OVERLAY_KHR,
+  gl_SCREEN_KHR,
+  gl_SOFTLIGHT_KHR,
+  -- * Functions
+  glBlendBarrierKHR
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/KHR/BlendEquationAdvancedCoherent.hs b/src/Graphics/Rendering/OpenGL/Raw/KHR/BlendEquationAdvancedCoherent.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/KHR/BlendEquationAdvancedCoherent.hs
@@ -0,0 +1,20 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.KHR.BlendEquationAdvancedCoherent
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/KHR/blend_equation_advanced_coherent.txt KHR_blend_equation_advanced_coherent> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.KHR.BlendEquationAdvancedCoherent (
+  -- * Enums
+  gl_BLEND_ADVANCED_COHERENT_KHR
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/KHR/ContextFlushControl.hs b/src/Graphics/Rendering/OpenGL/Raw/KHR/ContextFlushControl.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/KHR/ContextFlushControl.hs
@@ -0,0 +1,22 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.KHR.ContextFlushControl
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/KHR/context_flush_control.txt KHR_context_flush_control> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.KHR.ContextFlushControl (
+  -- * Enums
+  gl_CONTEXT_RELEASE_BEHAVIOR,
+  gl_CONTEXT_RELEASE_BEHAVIOR_FLUSH,
+  gl_NONE
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/KHR/DebugCompatibility.hs b/src/Graphics/Rendering/OpenGL/Raw/KHR/DebugCompatibility.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/KHR/DebugCompatibility.hs
@@ -0,0 +1,73 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.KHR.DebugCompatibility
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/KHR/debug_compatibility.txt KHR_debug_compatibility> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.KHR.DebugCompatibility (
+  -- * Enums
+  gl_BUFFER,
+  gl_CONTEXT_FLAG_DEBUG_BIT,
+  gl_DEBUG_CALLBACK_FUNCTION,
+  gl_DEBUG_CALLBACK_USER_PARAM,
+  gl_DEBUG_GROUP_STACK_DEPTH,
+  gl_DEBUG_LOGGED_MESSAGES,
+  gl_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH,
+  gl_DEBUG_OUTPUT,
+  gl_DEBUG_OUTPUT_SYNCHRONOUS,
+  gl_DEBUG_SEVERITY_HIGH,
+  gl_DEBUG_SEVERITY_LOW,
+  gl_DEBUG_SEVERITY_MEDIUM,
+  gl_DEBUG_SEVERITY_NOTIFICATION,
+  gl_DEBUG_SOURCE_API,
+  gl_DEBUG_SOURCE_APPLICATION,
+  gl_DEBUG_SOURCE_OTHER,
+  gl_DEBUG_SOURCE_SHADER_COMPILER,
+  gl_DEBUG_SOURCE_THIRD_PARTY,
+  gl_DEBUG_SOURCE_WINDOW_SYSTEM,
+  gl_DEBUG_TYPE_DEPRECATED_BEHAVIOR,
+  gl_DEBUG_TYPE_ERROR,
+  gl_DEBUG_TYPE_MARKER,
+  gl_DEBUG_TYPE_OTHER,
+  gl_DEBUG_TYPE_PERFORMANCE,
+  gl_DEBUG_TYPE_POP_GROUP,
+  gl_DEBUG_TYPE_PORTABILITY,
+  gl_DEBUG_TYPE_PUSH_GROUP,
+  gl_DEBUG_TYPE_UNDEFINED_BEHAVIOR,
+  gl_DISPLAY_LIST,
+  gl_MAX_DEBUG_GROUP_STACK_DEPTH,
+  gl_MAX_DEBUG_LOGGED_MESSAGES,
+  gl_MAX_DEBUG_MESSAGE_LENGTH,
+  gl_MAX_LABEL_LENGTH,
+  gl_PROGRAM,
+  gl_PROGRAM_PIPELINE,
+  gl_QUERY,
+  gl_SAMPLER,
+  gl_SHADER,
+  gl_STACK_OVERFLOW,
+  gl_STACK_UNDERFLOW,
+  gl_VERTEX_ARRAY,
+  -- * Functions
+  glDebugMessageCallback,
+  glDebugMessageControl,
+  glDebugMessageInsert,
+  glGetDebugMessageLog,
+  glGetObjectLabel,
+  glGetObjectPtrLabel,
+  glGetPointerv,
+  glObjectLabel,
+  glObjectPtrLabel,
+  glPopDebugGroup,
+  glPushDebugGroup
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/KHR/DebugCore.hs b/src/Graphics/Rendering/OpenGL/Raw/KHR/DebugCore.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/KHR/DebugCore.hs
@@ -0,0 +1,72 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.KHR.DebugCore
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/KHR/debug_core.txt KHR_debug_core> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.KHR.DebugCore (
+  -- * Enums
+  gl_BUFFER,
+  gl_CONTEXT_FLAG_DEBUG_BIT,
+  gl_DEBUG_CALLBACK_FUNCTION,
+  gl_DEBUG_CALLBACK_USER_PARAM,
+  gl_DEBUG_GROUP_STACK_DEPTH,
+  gl_DEBUG_LOGGED_MESSAGES,
+  gl_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH,
+  gl_DEBUG_OUTPUT,
+  gl_DEBUG_OUTPUT_SYNCHRONOUS,
+  gl_DEBUG_SEVERITY_HIGH,
+  gl_DEBUG_SEVERITY_LOW,
+  gl_DEBUG_SEVERITY_MEDIUM,
+  gl_DEBUG_SEVERITY_NOTIFICATION,
+  gl_DEBUG_SOURCE_API,
+  gl_DEBUG_SOURCE_APPLICATION,
+  gl_DEBUG_SOURCE_OTHER,
+  gl_DEBUG_SOURCE_SHADER_COMPILER,
+  gl_DEBUG_SOURCE_THIRD_PARTY,
+  gl_DEBUG_SOURCE_WINDOW_SYSTEM,
+  gl_DEBUG_TYPE_DEPRECATED_BEHAVIOR,
+  gl_DEBUG_TYPE_ERROR,
+  gl_DEBUG_TYPE_MARKER,
+  gl_DEBUG_TYPE_OTHER,
+  gl_DEBUG_TYPE_PERFORMANCE,
+  gl_DEBUG_TYPE_POP_GROUP,
+  gl_DEBUG_TYPE_PORTABILITY,
+  gl_DEBUG_TYPE_PUSH_GROUP,
+  gl_DEBUG_TYPE_UNDEFINED_BEHAVIOR,
+  gl_MAX_DEBUG_GROUP_STACK_DEPTH,
+  gl_MAX_DEBUG_LOGGED_MESSAGES,
+  gl_MAX_DEBUG_MESSAGE_LENGTH,
+  gl_MAX_LABEL_LENGTH,
+  gl_PROGRAM,
+  gl_PROGRAM_PIPELINE,
+  gl_QUERY,
+  gl_SAMPLER,
+  gl_SHADER,
+  gl_STACK_OVERFLOW,
+  gl_STACK_UNDERFLOW,
+  gl_VERTEX_ARRAY,
+  -- * Functions
+  glDebugMessageCallback,
+  glDebugMessageControl,
+  glDebugMessageInsert,
+  glGetDebugMessageLog,
+  glGetObjectLabel,
+  glGetObjectPtrLabel,
+  glGetPointerv,
+  glObjectLabel,
+  glObjectPtrLabel,
+  glPopDebugGroup,
+  glPushDebugGroup
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/KHR/Robustness.hs b/src/Graphics/Rendering/OpenGL/Raw/KHR/Robustness.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/KHR/Robustness.hs
@@ -0,0 +1,35 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.KHR.Robustness
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/KHR/robustness.txt KHR_robustness> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.KHR.Robustness (
+  -- * Enums
+  gl_CONTEXT_LOST,
+  gl_CONTEXT_ROBUST_ACCESS,
+  gl_GUILTY_CONTEXT_RESET,
+  gl_INNOCENT_CONTEXT_RESET,
+  gl_LOSE_CONTEXT_ON_RESET,
+  gl_NO_ERROR,
+  gl_NO_RESET_NOTIFICATION,
+  gl_RESET_NOTIFICATION_STRATEGY,
+  gl_UNKNOWN_CONTEXT_RESET,
+  -- * Functions
+  glGetGraphicsResetStatus,
+  glGetnUniformfv,
+  glGetnUniformiv,
+  glGetnUniformuiv,
+  glReadnPixels
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/KHR/TextureCompressionASTCHDR.hs b/src/Graphics/Rendering/OpenGL/Raw/KHR/TextureCompressionASTCHDR.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/KHR/TextureCompressionASTCHDR.hs
@@ -0,0 +1,47 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.KHR.TextureCompressionASTCHDR
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/KHR/texture_compression_astc_hdr.txt KHR_texture_compression_astc_hdr> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.KHR.TextureCompressionASTCHDR (
+  -- * Enums
+  gl_COMPRESSED_RGBA_ASTC_10x10_KHR,
+  gl_COMPRESSED_RGBA_ASTC_10x5_KHR,
+  gl_COMPRESSED_RGBA_ASTC_10x6_KHR,
+  gl_COMPRESSED_RGBA_ASTC_10x8_KHR,
+  gl_COMPRESSED_RGBA_ASTC_12x10_KHR,
+  gl_COMPRESSED_RGBA_ASTC_12x12_KHR,
+  gl_COMPRESSED_RGBA_ASTC_4x4_KHR,
+  gl_COMPRESSED_RGBA_ASTC_5x4_KHR,
+  gl_COMPRESSED_RGBA_ASTC_5x5_KHR,
+  gl_COMPRESSED_RGBA_ASTC_6x5_KHR,
+  gl_COMPRESSED_RGBA_ASTC_6x6_KHR,
+  gl_COMPRESSED_RGBA_ASTC_8x5_KHR,
+  gl_COMPRESSED_RGBA_ASTC_8x6_KHR,
+  gl_COMPRESSED_RGBA_ASTC_8x8_KHR,
+  gl_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR,
+  gl_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR,
+  gl_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR,
+  gl_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR,
+  gl_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR,
+  gl_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR,
+  gl_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR,
+  gl_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR,
+  gl_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR,
+  gl_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR,
+  gl_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR,
+  gl_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR,
+  gl_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR,
+  gl_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/KHR/TextureCompressionASTCLDR.hs b/src/Graphics/Rendering/OpenGL/Raw/KHR/TextureCompressionASTCLDR.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/KHR/TextureCompressionASTCLDR.hs
@@ -0,0 +1,47 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.KHR.TextureCompressionASTCLDR
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/KHR/texture_compression_astc_ldr.txt KHR_texture_compression_astc_ldr> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.KHR.TextureCompressionASTCLDR (
+  -- * Enums
+  gl_COMPRESSED_RGBA_ASTC_10x10_KHR,
+  gl_COMPRESSED_RGBA_ASTC_10x5_KHR,
+  gl_COMPRESSED_RGBA_ASTC_10x6_KHR,
+  gl_COMPRESSED_RGBA_ASTC_10x8_KHR,
+  gl_COMPRESSED_RGBA_ASTC_12x10_KHR,
+  gl_COMPRESSED_RGBA_ASTC_12x12_KHR,
+  gl_COMPRESSED_RGBA_ASTC_4x4_KHR,
+  gl_COMPRESSED_RGBA_ASTC_5x4_KHR,
+  gl_COMPRESSED_RGBA_ASTC_5x5_KHR,
+  gl_COMPRESSED_RGBA_ASTC_6x5_KHR,
+  gl_COMPRESSED_RGBA_ASTC_6x6_KHR,
+  gl_COMPRESSED_RGBA_ASTC_8x5_KHR,
+  gl_COMPRESSED_RGBA_ASTC_8x6_KHR,
+  gl_COMPRESSED_RGBA_ASTC_8x8_KHR,
+  gl_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR,
+  gl_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR,
+  gl_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR,
+  gl_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR,
+  gl_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR,
+  gl_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR,
+  gl_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR,
+  gl_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR,
+  gl_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR,
+  gl_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR,
+  gl_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR,
+  gl_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR,
+  gl_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR,
+  gl_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/MESA.hs b/src/Graphics/Rendering/OpenGL/Raw/MESA.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/MESA.hs
@@ -0,0 +1,25 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.MESA
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- A convenience module, combining all raw modules containing MESA extensions.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.MESA (
+  module Graphics.Rendering.OpenGL.Raw.MESA.PackInvert,
+  module Graphics.Rendering.OpenGL.Raw.MESA.ResizeBuffers,
+  module Graphics.Rendering.OpenGL.Raw.MESA.WindowPos,
+  module Graphics.Rendering.OpenGL.Raw.MESA.YCbCrTexture
+) where
+
+import Graphics.Rendering.OpenGL.Raw.MESA.PackInvert
+import Graphics.Rendering.OpenGL.Raw.MESA.ResizeBuffers
+import Graphics.Rendering.OpenGL.Raw.MESA.WindowPos
+import Graphics.Rendering.OpenGL.Raw.MESA.YCbCrTexture
diff --git a/src/Graphics/Rendering/OpenGL/Raw/MESA/PackInvert.hs b/src/Graphics/Rendering/OpenGL/Raw/MESA/PackInvert.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/MESA/PackInvert.hs
@@ -0,0 +1,20 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.MESA.PackInvert
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/MESA/pack_invert.txt MESA_pack_invert> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.MESA.PackInvert (
+  -- * Enums
+  gl_PACK_INVERT_MESA
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/MESA/ResizeBuffers.hs b/src/Graphics/Rendering/OpenGL/Raw/MESA/ResizeBuffers.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/MESA/ResizeBuffers.hs
@@ -0,0 +1,20 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.MESA.ResizeBuffers
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/MESA/resize_buffers.txt MESA_resize_buffers> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.MESA.ResizeBuffers (
+  -- * Functions
+  glResizeBuffersMESA
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/MESA/WindowPos.hs b/src/Graphics/Rendering/OpenGL/Raw/MESA/WindowPos.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/MESA/WindowPos.hs
@@ -0,0 +1,43 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.MESA.WindowPos
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/MESA/window_pos.txt MESA_window_pos> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.MESA.WindowPos (
+  -- * Functions
+  glWindowPos2dMESA,
+  glWindowPos2dvMESA,
+  glWindowPos2fMESA,
+  glWindowPos2fvMESA,
+  glWindowPos2iMESA,
+  glWindowPos2ivMESA,
+  glWindowPos2sMESA,
+  glWindowPos2svMESA,
+  glWindowPos3dMESA,
+  glWindowPos3dvMESA,
+  glWindowPos3fMESA,
+  glWindowPos3fvMESA,
+  glWindowPos3iMESA,
+  glWindowPos3ivMESA,
+  glWindowPos3sMESA,
+  glWindowPos3svMESA,
+  glWindowPos4dMESA,
+  glWindowPos4dvMESA,
+  glWindowPos4fMESA,
+  glWindowPos4fvMESA,
+  glWindowPos4iMESA,
+  glWindowPos4ivMESA,
+  glWindowPos4sMESA,
+  glWindowPos4svMESA
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/MESA/YCbCrTexture.hs b/src/Graphics/Rendering/OpenGL/Raw/MESA/YCbCrTexture.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/MESA/YCbCrTexture.hs
@@ -0,0 +1,22 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.MESA.YCbCrTexture
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/MESA/ycbcr_texture.txt MESA_ycbcr_texture> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.MESA.YCbCrTexture (
+  -- * Enums
+  gl_UNSIGNED_SHORT_8_8_MESA,
+  gl_UNSIGNED_SHORT_8_8_REV_MESA,
+  gl_YCBCR_MESA
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/MESAX.hs b/src/Graphics/Rendering/OpenGL/Raw/MESAX.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/MESAX.hs
@@ -0,0 +1,19 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.MESAX
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- A convenience module, combining all raw modules containing MESAX extensions.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.MESAX (
+  module Graphics.Rendering.OpenGL.Raw.MESAX.TextureStack
+) where
+
+import Graphics.Rendering.OpenGL.Raw.MESAX.TextureStack
diff --git a/src/Graphics/Rendering/OpenGL/Raw/MESAX/TextureStack.hs b/src/Graphics/Rendering/OpenGL/Raw/MESAX/TextureStack.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/MESAX/TextureStack.hs
@@ -0,0 +1,25 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.MESAX.TextureStack
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/MESAX/texture_stack.txt MESAX_texture_stack> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.MESAX.TextureStack (
+  -- * Enums
+  gl_PROXY_TEXTURE_1D_STACK_MESAX,
+  gl_PROXY_TEXTURE_2D_STACK_MESAX,
+  gl_TEXTURE_1D_STACK_BINDING_MESAX,
+  gl_TEXTURE_1D_STACK_MESAX,
+  gl_TEXTURE_2D_STACK_BINDING_MESAX,
+  gl_TEXTURE_2D_STACK_MESAX
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
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
@@ -1,7 +1,7 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.NV
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
@@ -13,105 +13,153 @@
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.NV (
-   module Graphics.Rendering.OpenGL.Raw.NV.TexgenReflection,
-   module Graphics.Rendering.OpenGL.Raw.NV.LightMaxExponent,
-   module Graphics.Rendering.OpenGL.Raw.NV.VertexArrayRange,
-   module Graphics.Rendering.OpenGL.Raw.NV.RegisterCombiners,
-   module Graphics.Rendering.OpenGL.Raw.NV.FogDistance,
-   module Graphics.Rendering.OpenGL.Raw.NV.TexgenEmboss,
-   -- module Graphics.Rendering.OpenGL.Raw.NV.BlendSquare,
-   module Graphics.Rendering.OpenGL.Raw.NV.TextureEnvCombine4,
-   module Graphics.Rendering.OpenGL.Raw.NV.Fence,
-   -- module Graphics.Rendering.OpenGL.Raw.NV.Evaluators,
-   module Graphics.Rendering.OpenGL.Raw.NV.PackedDepthStencil,
-   module Graphics.Rendering.OpenGL.Raw.NV.RegisterCombiners2,
-   module Graphics.Rendering.OpenGL.Raw.NV.TextureCompressionVTC,
-   module Graphics.Rendering.OpenGL.Raw.NV.TextureRectangle,
-   module Graphics.Rendering.OpenGL.Raw.NV.TextureShader,
-   module Graphics.Rendering.OpenGL.Raw.NV.TextureShader2,
-   module Graphics.Rendering.OpenGL.Raw.NV.VertexArrayRange2,
-   module Graphics.Rendering.OpenGL.Raw.NV.VertexProgram,
-   module Graphics.Rendering.OpenGL.Raw.NV.CopyDepthToColor,
-   module Graphics.Rendering.OpenGL.Raw.NV.MultisampleFilterHint,
-   module Graphics.Rendering.OpenGL.Raw.NV.DepthClamp,
-   module Graphics.Rendering.OpenGL.Raw.NV.OcclusionQuery,
-   module Graphics.Rendering.OpenGL.Raw.NV.PointSprite,
-   module Graphics.Rendering.OpenGL.Raw.NV.TextureShader3,
-   -- module Graphics.Rendering.OpenGL.Raw.NV.VertexProgram11,
-   module Graphics.Rendering.OpenGL.Raw.NV.FloatBuffer,
-   module Graphics.Rendering.OpenGL.Raw.NV.FragmentProgram,
-   module Graphics.Rendering.OpenGL.Raw.NV.HalfFloat,
-   module Graphics.Rendering.OpenGL.Raw.NV.PixelDataRange,
-   module Graphics.Rendering.OpenGL.Raw.NV.PrimitiveRestart,
-   module Graphics.Rendering.OpenGL.Raw.NV.TextureExpandNormal,
-   -- module Graphics.Rendering.OpenGL.Raw.NV.VertexProgram2,
-   -- module Graphics.Rendering.OpenGL.Raw.NV.FragmentProgramOption,
-   module Graphics.Rendering.OpenGL.Raw.NV.FragmentProgram2,
-   module Graphics.Rendering.OpenGL.Raw.NV.VertexProgram2Option,
-   module Graphics.Rendering.OpenGL.Raw.NV.VertexProgram3,
-   module Graphics.Rendering.OpenGL.Raw.NV.GPUProgram4,
-   module Graphics.Rendering.OpenGL.Raw.NV.GeometryProgram4,
-   module Graphics.Rendering.OpenGL.Raw.NV.VertexProgram4,
-   module Graphics.Rendering.OpenGL.Raw.NV.DepthBufferFloat,
-   -- module Graphics.Rendering.OpenGL.Raw.NV.FragmentProgram4,
-   module Graphics.Rendering.OpenGL.Raw.NV.FramebufferMultisampleCoverage,
-   -- module Graphics.Rendering.OpenGL.Raw.NV.GeometryShader4,
-   module Graphics.Rendering.OpenGL.Raw.NV.ParameterBufferObject,
-   module Graphics.Rendering.OpenGL.Raw.NV.TransformFeedback,
-   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.PathRendering
+  module Graphics.Rendering.OpenGL.Raw.NV.BindlessMultiDrawIndirectCount,
+  module Graphics.Rendering.OpenGL.Raw.NV.BindlessMultiDrawIndirect,
+  module Graphics.Rendering.OpenGL.Raw.NV.BindlessTexture,
+  module Graphics.Rendering.OpenGL.Raw.NV.BlendEquationAdvancedCoherent,
+  module Graphics.Rendering.OpenGL.Raw.NV.BlendEquationAdvanced,
+  module Graphics.Rendering.OpenGL.Raw.NV.ComputeProgram5,
+  module Graphics.Rendering.OpenGL.Raw.NV.ConditionalRender,
+  module Graphics.Rendering.OpenGL.Raw.NV.ConservativeRaster,
+  module Graphics.Rendering.OpenGL.Raw.NV.CopyDepthToColor,
+  module Graphics.Rendering.OpenGL.Raw.NV.CopyImage,
+  module Graphics.Rendering.OpenGL.Raw.NV.DeepTexture3D,
+  module Graphics.Rendering.OpenGL.Raw.NV.DepthBufferFloat,
+  module Graphics.Rendering.OpenGL.Raw.NV.DepthClamp,
+  module Graphics.Rendering.OpenGL.Raw.NV.DrawTexture,
+  module Graphics.Rendering.OpenGL.Raw.NV.Evaluators,
+  module Graphics.Rendering.OpenGL.Raw.NV.ExplicitMultisample,
+  module Graphics.Rendering.OpenGL.Raw.NV.Fence,
+  module Graphics.Rendering.OpenGL.Raw.NV.FillRectangle,
+  module Graphics.Rendering.OpenGL.Raw.NV.FloatBuffer,
+  module Graphics.Rendering.OpenGL.Raw.NV.FogDistance,
+  module Graphics.Rendering.OpenGL.Raw.NV.FragmentCoverageToColor,
+  module Graphics.Rendering.OpenGL.Raw.NV.FragmentProgram2,
+  module Graphics.Rendering.OpenGL.Raw.NV.FragmentProgram,
+  module Graphics.Rendering.OpenGL.Raw.NV.FramebufferMixedSamples,
+  module Graphics.Rendering.OpenGL.Raw.NV.FramebufferMultisampleCoverage,
+  module Graphics.Rendering.OpenGL.Raw.NV.GeometryProgram4,
+  module Graphics.Rendering.OpenGL.Raw.NV.GPUProgram4,
+  module Graphics.Rendering.OpenGL.Raw.NV.GPUProgram5,
+  module Graphics.Rendering.OpenGL.Raw.NV.GPUShader5,
+  module Graphics.Rendering.OpenGL.Raw.NV.HalfFloat,
+  module Graphics.Rendering.OpenGL.Raw.NV.InternalformatSampleQuery,
+  module Graphics.Rendering.OpenGL.Raw.NV.LightMaxExponent,
+  module Graphics.Rendering.OpenGL.Raw.NV.MultisampleCoverage,
+  module Graphics.Rendering.OpenGL.Raw.NV.MultisampleFilterHint,
+  module Graphics.Rendering.OpenGL.Raw.NV.OcclusionQuery,
+  module Graphics.Rendering.OpenGL.Raw.NV.PackedDepthStencil,
+  module Graphics.Rendering.OpenGL.Raw.NV.ParameterBufferObject,
+  module Graphics.Rendering.OpenGL.Raw.NV.PathRenderingCompatibility,
+  module Graphics.Rendering.OpenGL.Raw.NV.PathRenderingCore,
+  module Graphics.Rendering.OpenGL.Raw.NV.PathRenderingSharedEdge,
+  module Graphics.Rendering.OpenGL.Raw.NV.PixelDataRange,
+  module Graphics.Rendering.OpenGL.Raw.NV.PointSprite,
+  module Graphics.Rendering.OpenGL.Raw.NV.PresentVideo,
+  module Graphics.Rendering.OpenGL.Raw.NV.PrimitiveRestart,
+  module Graphics.Rendering.OpenGL.Raw.NV.RegisterCombiners2,
+  module Graphics.Rendering.OpenGL.Raw.NV.RegisterCombiners,
+  module Graphics.Rendering.OpenGL.Raw.NV.SampleLocations,
+  module Graphics.Rendering.OpenGL.Raw.NV.ShaderBufferLoad,
+  module Graphics.Rendering.OpenGL.Raw.NV.ShaderBufferStore,
+  module Graphics.Rendering.OpenGL.Raw.NV.ShaderThreadGroup,
+  module Graphics.Rendering.OpenGL.Raw.NV.TessellationProgram5,
+  module Graphics.Rendering.OpenGL.Raw.NV.TexgenEmboss,
+  module Graphics.Rendering.OpenGL.Raw.NV.TexgenReflection,
+  module Graphics.Rendering.OpenGL.Raw.NV.TextureBarrier,
+  module Graphics.Rendering.OpenGL.Raw.NV.TextureEnvCombine4,
+  module Graphics.Rendering.OpenGL.Raw.NV.TextureExpandNormal,
+  module Graphics.Rendering.OpenGL.Raw.NV.TextureMultisample,
+  module Graphics.Rendering.OpenGL.Raw.NV.TextureRectangle,
+  module Graphics.Rendering.OpenGL.Raw.NV.TextureShader2,
+  module Graphics.Rendering.OpenGL.Raw.NV.TextureShader3,
+  module Graphics.Rendering.OpenGL.Raw.NV.TextureShader,
+  module Graphics.Rendering.OpenGL.Raw.NV.TransformFeedback2,
+  module Graphics.Rendering.OpenGL.Raw.NV.TransformFeedback,
+  module Graphics.Rendering.OpenGL.Raw.NV.UniformBufferUnifiedMemory,
+  module Graphics.Rendering.OpenGL.Raw.NV.VDPAUInterop,
+  module Graphics.Rendering.OpenGL.Raw.NV.VertexArrayRange2,
+  module Graphics.Rendering.OpenGL.Raw.NV.VertexArrayRange,
+  module Graphics.Rendering.OpenGL.Raw.NV.VertexAttribInteger64Bit,
+  module Graphics.Rendering.OpenGL.Raw.NV.VertexBufferUnifiedMemory,
+  module Graphics.Rendering.OpenGL.Raw.NV.VertexProgram2Option,
+  module Graphics.Rendering.OpenGL.Raw.NV.VertexProgram3,
+  module Graphics.Rendering.OpenGL.Raw.NV.VertexProgram4,
+  module Graphics.Rendering.OpenGL.Raw.NV.VertexProgram,
+  module Graphics.Rendering.OpenGL.Raw.NV.VideoCapture
 ) where
 
-import Graphics.Rendering.OpenGL.Raw.NV.TexgenReflection
-import Graphics.Rendering.OpenGL.Raw.NV.LightMaxExponent
-import Graphics.Rendering.OpenGL.Raw.NV.VertexArrayRange
-import Graphics.Rendering.OpenGL.Raw.NV.RegisterCombiners
-import Graphics.Rendering.OpenGL.Raw.NV.FogDistance
-import Graphics.Rendering.OpenGL.Raw.NV.TexgenEmboss
--- import Graphics.Rendering.OpenGL.Raw.NV.BlendSquare
-import Graphics.Rendering.OpenGL.Raw.NV.TextureEnvCombine4
-import Graphics.Rendering.OpenGL.Raw.NV.Fence
--- import Graphics.Rendering.OpenGL.Raw.NV.Evaluators
-import Graphics.Rendering.OpenGL.Raw.NV.PackedDepthStencil
-import Graphics.Rendering.OpenGL.Raw.NV.RegisterCombiners2
-import Graphics.Rendering.OpenGL.Raw.NV.TextureCompressionVTC
-import Graphics.Rendering.OpenGL.Raw.NV.TextureRectangle
-import Graphics.Rendering.OpenGL.Raw.NV.TextureShader
-import Graphics.Rendering.OpenGL.Raw.NV.TextureShader2
-import Graphics.Rendering.OpenGL.Raw.NV.VertexArrayRange2
-import Graphics.Rendering.OpenGL.Raw.NV.VertexProgram
+import Graphics.Rendering.OpenGL.Raw.NV.BindlessMultiDrawIndirectCount
+import Graphics.Rendering.OpenGL.Raw.NV.BindlessMultiDrawIndirect
+import Graphics.Rendering.OpenGL.Raw.NV.BindlessTexture
+import Graphics.Rendering.OpenGL.Raw.NV.BlendEquationAdvancedCoherent
+import Graphics.Rendering.OpenGL.Raw.NV.BlendEquationAdvanced
+import Graphics.Rendering.OpenGL.Raw.NV.ComputeProgram5
+import Graphics.Rendering.OpenGL.Raw.NV.ConditionalRender
+import Graphics.Rendering.OpenGL.Raw.NV.ConservativeRaster
 import Graphics.Rendering.OpenGL.Raw.NV.CopyDepthToColor
-import Graphics.Rendering.OpenGL.Raw.NV.MultisampleFilterHint
+import Graphics.Rendering.OpenGL.Raw.NV.CopyImage
+import Graphics.Rendering.OpenGL.Raw.NV.DeepTexture3D
+import Graphics.Rendering.OpenGL.Raw.NV.DepthBufferFloat
 import Graphics.Rendering.OpenGL.Raw.NV.DepthClamp
-import Graphics.Rendering.OpenGL.Raw.NV.OcclusionQuery
-import Graphics.Rendering.OpenGL.Raw.NV.PointSprite
-import Graphics.Rendering.OpenGL.Raw.NV.TextureShader3
--- import Graphics.Rendering.OpenGL.Raw.NV.VertexProgram11
+import Graphics.Rendering.OpenGL.Raw.NV.DrawTexture
+import Graphics.Rendering.OpenGL.Raw.NV.Evaluators
+import Graphics.Rendering.OpenGL.Raw.NV.ExplicitMultisample
+import Graphics.Rendering.OpenGL.Raw.NV.Fence
+import Graphics.Rendering.OpenGL.Raw.NV.FillRectangle
 import Graphics.Rendering.OpenGL.Raw.NV.FloatBuffer
+import Graphics.Rendering.OpenGL.Raw.NV.FogDistance
+import Graphics.Rendering.OpenGL.Raw.NV.FragmentCoverageToColor
+import Graphics.Rendering.OpenGL.Raw.NV.FragmentProgram2
 import Graphics.Rendering.OpenGL.Raw.NV.FragmentProgram
+import Graphics.Rendering.OpenGL.Raw.NV.FramebufferMixedSamples
+import Graphics.Rendering.OpenGL.Raw.NV.FramebufferMultisampleCoverage
+import Graphics.Rendering.OpenGL.Raw.NV.GeometryProgram4
+import Graphics.Rendering.OpenGL.Raw.NV.GPUProgram4
+import Graphics.Rendering.OpenGL.Raw.NV.GPUProgram5
+import Graphics.Rendering.OpenGL.Raw.NV.GPUShader5
 import Graphics.Rendering.OpenGL.Raw.NV.HalfFloat
+import Graphics.Rendering.OpenGL.Raw.NV.InternalformatSampleQuery
+import Graphics.Rendering.OpenGL.Raw.NV.LightMaxExponent
+import Graphics.Rendering.OpenGL.Raw.NV.MultisampleCoverage
+import Graphics.Rendering.OpenGL.Raw.NV.MultisampleFilterHint
+import Graphics.Rendering.OpenGL.Raw.NV.OcclusionQuery
+import Graphics.Rendering.OpenGL.Raw.NV.PackedDepthStencil
+import Graphics.Rendering.OpenGL.Raw.NV.ParameterBufferObject
+import Graphics.Rendering.OpenGL.Raw.NV.PathRenderingCompatibility
+import Graphics.Rendering.OpenGL.Raw.NV.PathRenderingCore
+import Graphics.Rendering.OpenGL.Raw.NV.PathRenderingSharedEdge
 import Graphics.Rendering.OpenGL.Raw.NV.PixelDataRange
+import Graphics.Rendering.OpenGL.Raw.NV.PointSprite
+import Graphics.Rendering.OpenGL.Raw.NV.PresentVideo
 import Graphics.Rendering.OpenGL.Raw.NV.PrimitiveRestart
+import Graphics.Rendering.OpenGL.Raw.NV.RegisterCombiners2
+import Graphics.Rendering.OpenGL.Raw.NV.RegisterCombiners
+import Graphics.Rendering.OpenGL.Raw.NV.SampleLocations
+import Graphics.Rendering.OpenGL.Raw.NV.ShaderBufferLoad
+import Graphics.Rendering.OpenGL.Raw.NV.ShaderBufferStore
+import Graphics.Rendering.OpenGL.Raw.NV.ShaderThreadGroup
+import Graphics.Rendering.OpenGL.Raw.NV.TessellationProgram5
+import Graphics.Rendering.OpenGL.Raw.NV.TexgenEmboss
+import Graphics.Rendering.OpenGL.Raw.NV.TexgenReflection
+import Graphics.Rendering.OpenGL.Raw.NV.TextureBarrier
+import Graphics.Rendering.OpenGL.Raw.NV.TextureEnvCombine4
 import Graphics.Rendering.OpenGL.Raw.NV.TextureExpandNormal
--- import Graphics.Rendering.OpenGL.Raw.NV.VertexProgram2
--- import Graphics.Rendering.OpenGL.Raw.NV.FragmentProgramOption
-import Graphics.Rendering.OpenGL.Raw.NV.FragmentProgram2
+import Graphics.Rendering.OpenGL.Raw.NV.TextureMultisample
+import Graphics.Rendering.OpenGL.Raw.NV.TextureRectangle
+import Graphics.Rendering.OpenGL.Raw.NV.TextureShader2
+import Graphics.Rendering.OpenGL.Raw.NV.TextureShader3
+import Graphics.Rendering.OpenGL.Raw.NV.TextureShader
+import Graphics.Rendering.OpenGL.Raw.NV.TransformFeedback2
+import Graphics.Rendering.OpenGL.Raw.NV.TransformFeedback
+import Graphics.Rendering.OpenGL.Raw.NV.UniformBufferUnifiedMemory
+import Graphics.Rendering.OpenGL.Raw.NV.VDPAUInterop
+import Graphics.Rendering.OpenGL.Raw.NV.VertexArrayRange2
+import Graphics.Rendering.OpenGL.Raw.NV.VertexArrayRange
+import Graphics.Rendering.OpenGL.Raw.NV.VertexAttribInteger64Bit
+import Graphics.Rendering.OpenGL.Raw.NV.VertexBufferUnifiedMemory
 import Graphics.Rendering.OpenGL.Raw.NV.VertexProgram2Option
 import Graphics.Rendering.OpenGL.Raw.NV.VertexProgram3
-import Graphics.Rendering.OpenGL.Raw.NV.GPUProgram4
-import Graphics.Rendering.OpenGL.Raw.NV.GeometryProgram4
 import Graphics.Rendering.OpenGL.Raw.NV.VertexProgram4
-import Graphics.Rendering.OpenGL.Raw.NV.DepthBufferFloat
--- import Graphics.Rendering.OpenGL.Raw.NV.FragmentProgram4
-import Graphics.Rendering.OpenGL.Raw.NV.FramebufferMultisampleCoverage
--- import Graphics.Rendering.OpenGL.Raw.NV.GeometryShader4
-import Graphics.Rendering.OpenGL.Raw.NV.ParameterBufferObject
-import Graphics.Rendering.OpenGL.Raw.NV.TransformFeedback
-import Graphics.Rendering.OpenGL.Raw.NV.ConditionalRender
-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
+import Graphics.Rendering.OpenGL.Raw.NV.VertexProgram
+import Graphics.Rendering.OpenGL.Raw.NV.VideoCapture
diff --git a/src/Graphics/Rendering/OpenGL/Raw/NV/BindlessMultiDrawIndirect.hs b/src/Graphics/Rendering/OpenGL/Raw/NV/BindlessMultiDrawIndirect.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/NV/BindlessMultiDrawIndirect.hs
@@ -0,0 +1,21 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.NV.BindlessMultiDrawIndirect
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/NV/bindless_multi_draw_indirect.txt NV_bindless_multi_draw_indirect> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.NV.BindlessMultiDrawIndirect (
+  -- * Functions
+  glMultiDrawArraysIndirectBindlessNV,
+  glMultiDrawElementsIndirectBindlessNV
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/NV/BindlessMultiDrawIndirectCount.hs b/src/Graphics/Rendering/OpenGL/Raw/NV/BindlessMultiDrawIndirectCount.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/NV/BindlessMultiDrawIndirectCount.hs
@@ -0,0 +1,21 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.NV.BindlessMultiDrawIndirectCount
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/NV/bindless_multi_draw_indirect_count.txt NV_bindless_multi_draw_indirect_count> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.NV.BindlessMultiDrawIndirectCount (
+  -- * Functions
+  glMultiDrawArraysIndirectBindlessCountNV,
+  glMultiDrawElementsIndirectBindlessCountNV
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/NV/BindlessTexture.hs b/src/Graphics/Rendering/OpenGL/Raw/NV/BindlessTexture.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/NV/BindlessTexture.hs
@@ -0,0 +1,32 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.NV.BindlessTexture
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/NV/bindless_texture.txt NV_bindless_texture> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.NV.BindlessTexture (
+  -- * Functions
+  glGetImageHandleNV,
+  glGetTextureHandleNV,
+  glGetTextureSamplerHandleNV,
+  glIsImageHandleResidentNV,
+  glIsTextureHandleResidentNV,
+  glMakeImageHandleNonResidentNV,
+  glMakeImageHandleResidentNV,
+  glMakeTextureHandleNonResidentNV,
+  glMakeTextureHandleResidentNV,
+  glProgramUniformHandleui64NV,
+  glProgramUniformHandleui64vNV,
+  glUniformHandleui64NV,
+  glUniformHandleui64vNV
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/NV/BlendEquationAdvanced.hs b/src/Graphics/Rendering/OpenGL/Raw/NV/BlendEquationAdvanced.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/NV/BlendEquationAdvanced.hs
@@ -0,0 +1,74 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.NV.BlendEquationAdvanced
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/NV/blend_equation_advanced.txt NV_blend_equation_advanced> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.NV.BlendEquationAdvanced (
+  -- * Enums
+  gl_BLEND_OVERLAP_NV,
+  gl_BLEND_PREMULTIPLIED_SRC_NV,
+  gl_BLUE_NV,
+  gl_COLORBURN_NV,
+  gl_COLORDODGE_NV,
+  gl_CONJOINT_NV,
+  gl_CONTRAST_NV,
+  gl_DARKEN_NV,
+  gl_DIFFERENCE_NV,
+  gl_DISJOINT_NV,
+  gl_DST_ATOP_NV,
+  gl_DST_IN_NV,
+  gl_DST_NV,
+  gl_DST_OUT_NV,
+  gl_DST_OVER_NV,
+  gl_EXCLUSION_NV,
+  gl_GREEN_NV,
+  gl_HARDLIGHT_NV,
+  gl_HARDMIX_NV,
+  gl_HSL_COLOR_NV,
+  gl_HSL_HUE_NV,
+  gl_HSL_LUMINOSITY_NV,
+  gl_HSL_SATURATION_NV,
+  gl_INVERT,
+  gl_INVERT_OVG_NV,
+  gl_INVERT_RGB_NV,
+  gl_LIGHTEN_NV,
+  gl_LINEARBURN_NV,
+  gl_LINEARDODGE_NV,
+  gl_LINEARLIGHT_NV,
+  gl_MINUS_CLAMPED_NV,
+  gl_MINUS_NV,
+  gl_MULTIPLY_NV,
+  gl_OVERLAY_NV,
+  gl_PINLIGHT_NV,
+  gl_PLUS_CLAMPED_ALPHA_NV,
+  gl_PLUS_CLAMPED_NV,
+  gl_PLUS_DARKER_NV,
+  gl_PLUS_NV,
+  gl_RED_NV,
+  gl_SCREEN_NV,
+  gl_SOFTLIGHT_NV,
+  gl_SRC_ATOP_NV,
+  gl_SRC_IN_NV,
+  gl_SRC_NV,
+  gl_SRC_OUT_NV,
+  gl_SRC_OVER_NV,
+  gl_UNCORRELATED_NV,
+  gl_VIVIDLIGHT_NV,
+  gl_XOR_NV,
+  gl_ZERO,
+  -- * Functions
+  glBlendBarrierNV,
+  glBlendParameteriNV
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/NV/BlendEquationAdvancedCoherent.hs b/src/Graphics/Rendering/OpenGL/Raw/NV/BlendEquationAdvancedCoherent.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/NV/BlendEquationAdvancedCoherent.hs
@@ -0,0 +1,20 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.NV.BlendEquationAdvancedCoherent
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/NV/blend_equation_advanced_coherent.txt NV_blend_equation_advanced_coherent> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.NV.BlendEquationAdvancedCoherent (
+  -- * Enums
+  gl_BLEND_ADVANCED_COHERENT_NV
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/NV/ComputeProgram5.hs b/src/Graphics/Rendering/OpenGL/Raw/NV/ComputeProgram5.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/NV/ComputeProgram5.hs
@@ -0,0 +1,21 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.NV.ComputeProgram5
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/NV/compute_program5.txt NV_compute_program5> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.NV.ComputeProgram5 (
+  -- * Enums
+  gl_COMPUTE_PROGRAM_NV,
+  gl_COMPUTE_PROGRAM_PARAMETER_BUFFER_NV
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/NV/ConditionalRender.hs b/src/Graphics/Rendering/OpenGL/Raw/NV/ConditionalRender.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/NV/ConditionalRender.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/NV/ConditionalRender.hs
@@ -1,27 +1,27 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.NV.ConditionalRender
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All raw functions and tokens from the NV_conditional_render extension, see
--- <http://www.opengl.org/registry/specs/NV/conditional_render.txt>.
+-- The <https://www.opengl.org/registry/specs/NV/conditional_render.txt NV_conditional_render> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.NV.ConditionalRender (
-   -- * Functions
-   glBeginConditionalRender,
-   glEndConditionalRender,
-   -- * Tokens
-   gl_QUERY_WAIT,
-   gl_QUERY_NO_WAIT,
-   gl_QUERY_BY_REGION_WAIT,
-   gl_QUERY_BY_REGION_NO_WAIT
+  -- * Enums
+  gl_QUERY_BY_REGION_NO_WAIT_NV,
+  gl_QUERY_BY_REGION_WAIT_NV,
+  gl_QUERY_NO_WAIT_NV,
+  gl_QUERY_WAIT_NV,
+  -- * Functions
+  glBeginConditionalRenderNV,
+  glEndConditionalRenderNV
 ) where
 
-import Graphics.Rendering.OpenGL.Raw.Core32
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/NV/ConservativeRaster.hs b/src/Graphics/Rendering/OpenGL/Raw/NV/ConservativeRaster.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/NV/ConservativeRaster.hs
@@ -0,0 +1,26 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.NV.ConservativeRaster
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/NV/conservative_raster.txt NV_conservative_raster> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.NV.ConservativeRaster (
+  -- * Enums
+  gl_CONSERVATIVE_RASTERIZATION_NV,
+  gl_MAX_SUBPIXEL_PRECISION_BIAS_BITS_NV,
+  gl_SUBPIXEL_PRECISION_BIAS_X_BITS_NV,
+  gl_SUBPIXEL_PRECISION_BIAS_Y_BITS_NV,
+  -- * Functions
+  glSubpixelPrecisionBiasNV
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/NV/CopyDepthToColor.hs b/src/Graphics/Rendering/OpenGL/Raw/NV/CopyDepthToColor.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/NV/CopyDepthToColor.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/NV/CopyDepthToColor.hs
@@ -1,29 +1,21 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.NV.CopyDepthToColor
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All raw functions and tokens from the NV_copy_depth_to_color extension not
--- already in the OpenGL 3.1 core, see
--- <http://www.opengl.org/registry/specs/NV/copy_depth_to_color.txt>.
+-- The <https://www.opengl.org/registry/specs/NV/copy_depth_to_color.txt NV_copy_depth_to_color> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.NV.CopyDepthToColor (
-   -- * Tokens
-   gl_DEPTH_STENCIL_TO_RGBA,
-   gl_DEPTH_STENCIL_TO_BGRA
+  -- * Enums
+  gl_DEPTH_STENCIL_TO_BGRA_NV,
+  gl_DEPTH_STENCIL_TO_RGBA_NV
 ) where
 
-import Graphics.Rendering.OpenGL.Raw.Core32
-
-gl_DEPTH_STENCIL_TO_RGBA :: GLenum
-gl_DEPTH_STENCIL_TO_RGBA = 0x886E
-
-gl_DEPTH_STENCIL_TO_BGRA :: GLenum
-gl_DEPTH_STENCIL_TO_BGRA = 0x886F
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/NV/CopyImage.hs b/src/Graphics/Rendering/OpenGL/Raw/NV/CopyImage.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/NV/CopyImage.hs
@@ -0,0 +1,20 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.NV.CopyImage
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/NV/copy_image.txt NV_copy_image> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.NV.CopyImage (
+  -- * Functions
+  glCopyImageSubDataNV
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/NV/DeepTexture3D.hs b/src/Graphics/Rendering/OpenGL/Raw/NV/DeepTexture3D.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/NV/DeepTexture3D.hs
@@ -0,0 +1,21 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.NV.DeepTexture3D
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/NV/deep_texture3D.txt NV_deep_texture3D> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.NV.DeepTexture3D (
+  -- * Enums
+  gl_MAX_DEEP_3D_TEXTURE_DEPTH_NV,
+  gl_MAX_DEEP_3D_TEXTURE_WIDTH_HEIGHT_NV
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
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
@@ -1,43 +1,28 @@
-{-# LANGUAGE CPP #-}
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.NV.DepthBufferFloat
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All raw functions and tokens from the NV_depth_buffer_float extension, see
--- <http://www.opengl.org/registry/specs/NV/NV_depth_buffer_float.txt>.
+-- The <https://www.opengl.org/registry/specs/NV/depth_buffer_float.txt NV_depth_buffer_float> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.NV.DepthBufferFloat (
-   -- * Functions
-   glDepthRanged,
-   glClearDepthd,
-   glDepthBoundsd,
-   -- * Tokens
-   gl_DEPTH_COMPONENT32F,
-   gl_DEPTH32F_STENCIL8,
-   gl_FLOAT_32_UNSIGNED_INT_24_8_REV,
-   gl_DEPTH_BUFFER_FLOAT_MODE
+  -- * Enums
+  gl_DEPTH32F_STENCIL8_NV,
+  gl_DEPTH_BUFFER_FLOAT_MODE_NV,
+  gl_DEPTH_COMPONENT32F_NV,
+  gl_FLOAT_32_UNSIGNED_INT_24_8_REV_NV,
+  -- * Functions
+  glClearDepthdNV,
+  glDepthBoundsdNV,
+  glDepthRangedNV
 ) where
 
-import Foreign.C.Types
-import Graphics.Rendering.OpenGL.Raw.Types
-import Graphics.Rendering.OpenGL.Raw.Core32
-import Foreign.Ptr ( FunPtr )
-import Graphics.Rendering.OpenGL.Raw.GetProcAddress ( getExtensionChecked )
-import System.IO.Unsafe ( unsafePerformIO )
-
-#include "HsOpenGLRaw.h"
-
-EXTENSION_ENTRY(dyn_glDepthRanged,ptr_glDepthRanged,"glDepthRanged",glDepthRanged,GLdouble -> GLdouble -> IO ())
-EXTENSION_ENTRY(dyn_glClearDepthd,ptr_glClearDepthd,"glClearDepthd",glClearDepthd,GLdouble -> IO ())
-EXTENSION_ENTRY(dyn_glDepthBoundsd,ptr_glDepthBoundsd,"glDepthBoundsd",glDepthBoundsd,GLdouble -> GLdouble -> IO ())
-
-gl_DEPTH_BUFFER_FLOAT_MODE :: GLenum
-gl_DEPTH_BUFFER_FLOAT_MODE = 0x8DAF
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/NV/DepthClamp.hs b/src/Graphics/Rendering/OpenGL/Raw/NV/DepthClamp.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/NV/DepthClamp.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/NV/DepthClamp.hs
@@ -1,21 +1,20 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.NV.DepthClamp
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All tokens from the NV_depth_clamp extension, see
--- <http://www.opengl.org/registry/specs/NV/depth_clamp.txt>.
+-- The <https://www.opengl.org/registry/specs/NV/depth_clamp.txt NV_depth_clamp> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.NV.DepthClamp (
-   -- * Tokens
-   gl_DEPTH_CLAMP
+  -- * Enums
+  gl_DEPTH_CLAMP_NV
 ) where
 
-import Graphics.Rendering.OpenGL.Raw.ARB.DepthClamp
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/NV/DrawTexture.hs b/src/Graphics/Rendering/OpenGL/Raw/NV/DrawTexture.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/NV/DrawTexture.hs
@@ -0,0 +1,20 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.NV.DrawTexture
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/NV/draw_texture.txt NV_draw_texture> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.NV.DrawTexture (
+  -- * Functions
+  glDrawTextureNV
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/NV/Evaluators.hs b/src/Graphics/Rendering/OpenGL/Raw/NV/Evaluators.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/NV/Evaluators.hs
@@ -0,0 +1,54 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.NV.Evaluators
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/NV/evaluators.txt NV_evaluators> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.NV.Evaluators (
+  -- * Enums
+  gl_EVAL_2D_NV,
+  gl_EVAL_FRACTIONAL_TESSELLATION_NV,
+  gl_EVAL_TRIANGULAR_2D_NV,
+  gl_EVAL_VERTEX_ATTRIB0_NV,
+  gl_EVAL_VERTEX_ATTRIB10_NV,
+  gl_EVAL_VERTEX_ATTRIB11_NV,
+  gl_EVAL_VERTEX_ATTRIB12_NV,
+  gl_EVAL_VERTEX_ATTRIB13_NV,
+  gl_EVAL_VERTEX_ATTRIB14_NV,
+  gl_EVAL_VERTEX_ATTRIB15_NV,
+  gl_EVAL_VERTEX_ATTRIB1_NV,
+  gl_EVAL_VERTEX_ATTRIB2_NV,
+  gl_EVAL_VERTEX_ATTRIB3_NV,
+  gl_EVAL_VERTEX_ATTRIB4_NV,
+  gl_EVAL_VERTEX_ATTRIB5_NV,
+  gl_EVAL_VERTEX_ATTRIB6_NV,
+  gl_EVAL_VERTEX_ATTRIB7_NV,
+  gl_EVAL_VERTEX_ATTRIB8_NV,
+  gl_EVAL_VERTEX_ATTRIB9_NV,
+  gl_MAP_ATTRIB_U_ORDER_NV,
+  gl_MAP_ATTRIB_V_ORDER_NV,
+  gl_MAP_TESSELLATION_NV,
+  gl_MAX_MAP_TESSELLATION_NV,
+  gl_MAX_RATIONAL_EVAL_ORDER_NV,
+  -- * Functions
+  glEvalMapsNV,
+  glGetMapAttribParameterfvNV,
+  glGetMapAttribParameterivNV,
+  glGetMapControlPointsNV,
+  glGetMapParameterfvNV,
+  glGetMapParameterivNV,
+  glMapControlPointsNV,
+  glMapParameterfvNV,
+  glMapParameterivNV
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
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
@@ -1,65 +1,34 @@
-{-# LANGUAGE CPP #-}
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.NV.ExplicitMultisample
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All raw functions and tokens from the NV_explicit_multisample extension, see
--- <http://www.opengl.org/registry/specs/NV/explicit_multisample.txt>.
+-- The <https://www.opengl.org/registry/specs/NV/explicit_multisample.txt NV_explicit_multisample> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.NV.ExplicitMultisample (
-   -- * Functions
-   glGetBooleanIndexedv,
-   glGetIntegerIndexedv,
-   glGetMultisamplefv,
-   glSampleMaskIndexed,
-   glTexRenderbuffer,
-   -- * Tokens
-   gl_SAMPLE_POSITION,
-   gl_SAMPLE_MASK,
-   gl_SAMPLE_MASK_VALUE,
-   gl_TEXTURE_BINDING_RENDERBUFFER,
-   gl_TEXTURE_RENDERBUFFER_DATA_STORE_BINDING,
-   gl_MAX_SAMPLE_MASK_WORDS,
-   gl_TEXTURE_RENDERBUFFER,
-   gl_SAMPLER_RENDERBUFFER,
-   gl_INT_SAMPLER_RENDERBUFFER,
-   gl_UNSIGNED_INT_SAMPLER_RENDERBUFFER
+  -- * Enums
+  gl_INT_SAMPLER_RENDERBUFFER_NV,
+  gl_MAX_SAMPLE_MASK_WORDS_NV,
+  gl_SAMPLER_RENDERBUFFER_NV,
+  gl_SAMPLE_MASK_NV,
+  gl_SAMPLE_MASK_VALUE_NV,
+  gl_SAMPLE_POSITION_NV,
+  gl_TEXTURE_BINDING_RENDERBUFFER_NV,
+  gl_TEXTURE_RENDERBUFFER_DATA_STORE_BINDING_NV,
+  gl_TEXTURE_RENDERBUFFER_NV,
+  gl_UNSIGNED_INT_SAMPLER_RENDERBUFFER_NV,
+  -- * Functions
+  glGetMultisamplefvNV,
+  glSampleMaskIndexedNV,
+  glTexRenderbufferNV
 ) where
 
-import Foreign.C.Types
-import Graphics.Rendering.OpenGL.Raw.EXT.DirectStateAccess
-import Graphics.Rendering.OpenGL.Raw.Core32
-import Foreign.Ptr ( FunPtr )
-import Graphics.Rendering.OpenGL.Raw.GetProcAddress ( getExtensionChecked )
-import System.IO.Unsafe ( unsafePerformIO )
-
-#include "HsOpenGLRaw.h"
-
-EXTENSION_ENTRY(dyn_glSampleMaskIndexed,ptr_glSampleMaskIndexed,"glSampleMaskIndexed",glSampleMaskIndexed,GLuint -> GLbitfield -> IO ())
-EXTENSION_ENTRY(dyn_glTexRenderbuffer,ptr_glTexRenderbuffer,"glTexRenderbuffer",glTexRenderbuffer,GLenum -> GLuint -> IO ())
-
-gl_TEXTURE_BINDING_RENDERBUFFER :: GLenum
-gl_TEXTURE_BINDING_RENDERBUFFER = 0x8E53
-
-gl_TEXTURE_RENDERBUFFER_DATA_STORE_BINDING :: GLenum
-gl_TEXTURE_RENDERBUFFER_DATA_STORE_BINDING = 0x8E54
-
-gl_TEXTURE_RENDERBUFFER :: GLenum
-gl_TEXTURE_RENDERBUFFER = 0x8E55
-
-gl_SAMPLER_RENDERBUFFER :: GLenum
-gl_SAMPLER_RENDERBUFFER = 0x8E56
-
-gl_INT_SAMPLER_RENDERBUFFER :: GLenum
-gl_INT_SAMPLER_RENDERBUFFER = 0x8E57
-
-gl_UNSIGNED_INT_SAMPLER_RENDERBUFFER :: GLenum
-gl_UNSIGNED_INT_SAMPLER_RENDERBUFFER = 0x8E58
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
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
@@ -1,55 +1,31 @@
-{-# LANGUAGE CPP #-}
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.NV.Fence
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All raw functions and tokens from the NV_fence not already in the OpenGL 3.1
--- core, see <http://www.opengl.org/registry/specs/NV/fence.txt>.
+-- The <https://www.opengl.org/registry/specs/NV/fence.txt NV_fence> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.NV.Fence (
-   -- * Functions
-   glGenFences,
-   glDeleteFences,
-   glSetFence,
-   glTestFence,
-   glFinishFence,
-   glIsFence,
-   glGetFenceiv,
-   -- * Tokens
-   gl_ALL_COMPLETED,
-   gl_FENCE_STATUS,
-   gl_FENCE_CONDITION
+  -- * Enums
+  gl_ALL_COMPLETED_NV,
+  gl_FENCE_CONDITION_NV,
+  gl_FENCE_STATUS_NV,
+  -- * Functions
+  glDeleteFencesNV,
+  glFinishFenceNV,
+  glGenFencesNV,
+  glGetFenceivNV,
+  glIsFenceNV,
+  glSetFenceNV,
+  glTestFenceNV
 ) where
 
-import Foreign.C.Types
-import Graphics.Rendering.OpenGL.Raw.Types
-import Foreign.Ptr ( Ptr, FunPtr )
-import Graphics.Rendering.OpenGL.Raw.GetProcAddress ( getExtensionChecked )
-import System.IO.Unsafe ( unsafePerformIO )
-
-#include "HsOpenGLRaw.h"
-
-EXTENSION_ENTRY(dyn_glGenFences,ptr_glGenFences,"glGenFences",glGenFences,GLsizei -> Ptr GLuint -> IO ())
-EXTENSION_ENTRY(dyn_glDeleteFences,ptr_glDeleteFences,"glDeleteFences",glDeleteFences,GLsizei -> Ptr GLuint -> IO ())
-EXTENSION_ENTRY(dyn_glSetFence,ptr_glSetFence,"glSetFence",glSetFence,GLuint -> GLenum -> IO ())
-EXTENSION_ENTRY(dyn_glTestFence,ptr_glTestFence,"glTestFence",glTestFence,GLuint -> IO GLboolean)
-EXTENSION_ENTRY(dyn_glFinishFence,ptr_glFinishFence,"glFinishFence",glFinishFence,GLuint -> IO ())
-EXTENSION_ENTRY(dyn_glIsFence,ptr_glIsFence,"glIsFence",glIsFence,GLuint -> IO GLboolean)
-EXTENSION_ENTRY(dyn_glGetFenceiv,ptr_glGetFenceiv,"glGetFenceiv",glGetFenceiv,GLuint -> GLenum -> Ptr GLint -> IO ())
-
-gl_ALL_COMPLETED :: GLenum
-gl_ALL_COMPLETED = 0x84F2
-
-gl_FENCE_STATUS :: GLenum
-gl_FENCE_STATUS = 0x84F3
-
-gl_FENCE_CONDITION :: GLenum
-gl_FENCE_CONDITION = 0x84F4
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/NV/FillRectangle.hs b/src/Graphics/Rendering/OpenGL/Raw/NV/FillRectangle.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/NV/FillRectangle.hs
@@ -0,0 +1,20 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.NV.FillRectangle
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/NV/fill_rectangle.txt NV_fill_rectangle> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.NV.FillRectangle (
+  -- * Enums
+  gl_FILL_RECTANGLE_NV
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/NV/FloatBuffer.hs b/src/Graphics/Rendering/OpenGL/Raw/NV/FloatBuffer.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/NV/FloatBuffer.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/NV/FloatBuffer.hs
@@ -1,80 +1,34 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.NV.FloatBuffer
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All tokens from the NV_float_buffer extension, see
--- <http://www.opengl.org/registry/specs/NV/float_buffer.txt>.
+-- The <https://www.opengl.org/registry/specs/NV/float_buffer.txt NV_float_buffer> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.NV.FloatBuffer (
-   -- * Tokens
-   gl_FLOAT_R,
-   gl_FLOAT_RG,
-   gl_FLOAT_RGB,
-   gl_FLOAT_RGBA,
-   gl_FLOAT_R16,
-   gl_FLOAT_R32,
-   gl_FLOAT_RG16,
-   gl_FLOAT_RG32,
-   gl_FLOAT_RGB16,
-   gl_FLOAT_RGB32,
-   gl_FLOAT_RGBA16,
-   gl_FLOAT_RGBA32,
-   gl_TEXTURE_FLOAT_COMPONENTS,
-   gl_FLOAT_CLEAR_COLOR_VALUE,
-   gl_FLOAT_RGBA_MODE
+  -- * Enums
+  gl_FLOAT_CLEAR_COLOR_VALUE_NV,
+  gl_FLOAT_R16_NV,
+  gl_FLOAT_R32_NV,
+  gl_FLOAT_RG16_NV,
+  gl_FLOAT_RG32_NV,
+  gl_FLOAT_RGB16_NV,
+  gl_FLOAT_RGB32_NV,
+  gl_FLOAT_RGBA16_NV,
+  gl_FLOAT_RGBA32_NV,
+  gl_FLOAT_RGBA_MODE_NV,
+  gl_FLOAT_RGBA_NV,
+  gl_FLOAT_RGB_NV,
+  gl_FLOAT_RG_NV,
+  gl_FLOAT_R_NV,
+  gl_TEXTURE_FLOAT_COMPONENTS_NV
 ) where
 
-import Graphics.Rendering.OpenGL.Raw.Core32
-
-gl_FLOAT_R :: GLenum
-gl_FLOAT_R = 0x8880
-
-gl_FLOAT_RG :: GLenum
-gl_FLOAT_RG = 0x8881
-
-gl_FLOAT_RGB :: GLenum
-gl_FLOAT_RGB = 0x8882
-
-gl_FLOAT_RGBA :: GLenum
-gl_FLOAT_RGBA = 0x8883
-
-gl_FLOAT_R16 :: GLenum
-gl_FLOAT_R16 = 0x8884
-
-gl_FLOAT_R32 :: GLenum
-gl_FLOAT_R32 = 0x8885
-
-gl_FLOAT_RG16 :: GLenum
-gl_FLOAT_RG16 = 0x8886
-
-gl_FLOAT_RG32 :: GLenum
-gl_FLOAT_RG32 = 0x8887
-
-gl_FLOAT_RGB16 :: GLenum
-gl_FLOAT_RGB16 = 0x8888
-
-gl_FLOAT_RGB32 :: GLenum
-gl_FLOAT_RGB32 = 0x8889
-
-gl_FLOAT_RGBA16 :: GLenum
-gl_FLOAT_RGBA16 = 0x888A
-
-gl_FLOAT_RGBA32 :: GLenum
-gl_FLOAT_RGBA32 = 0x888B
-
-gl_TEXTURE_FLOAT_COMPONENTS :: GLenum
-gl_TEXTURE_FLOAT_COMPONENTS = 0x888C
-
-gl_FLOAT_CLEAR_COLOR_VALUE :: GLenum
-gl_FLOAT_CLEAR_COLOR_VALUE = 0x888D
-
-gl_FLOAT_RGBA_MODE :: GLenum
-gl_FLOAT_RGBA_MODE = 0x888E
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/NV/FogDistance.hs b/src/Graphics/Rendering/OpenGL/Raw/NV/FogDistance.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/NV/FogDistance.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/NV/FogDistance.hs
@@ -1,35 +1,23 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.NV.FogDistance
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All raw functions and tokens from the NV_fog_distance extension not already
--- in the OpenGL 3.1 core, see
--- <http://www.opengl.org/registry/specs/NV/fog_distance.txt>.
+-- The <https://www.opengl.org/registry/specs/NV/fog_distance.txt NV_fog_distance> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.NV.FogDistance (
-   -- * Tokens
-   gl_FOG_DISTANCE_MODE,
-   gl_EYE_RADIAL,
-   gl_EYE_PLANE,
-   gl_EYE_PLANE_ABSOLUTE
+  -- * Enums
+  gl_EYE_PLANE,
+  gl_EYE_PLANE_ABSOLUTE_NV,
+  gl_EYE_RADIAL_NV,
+  gl_FOG_DISTANCE_MODE_NV
 ) where
 
-import Graphics.Rendering.OpenGL.Raw.ARB.Compatibility
-import Graphics.Rendering.OpenGL.Raw.Core32
-
-gl_FOG_DISTANCE_MODE :: GLenum
-gl_FOG_DISTANCE_MODE = 0x855A
-
-gl_EYE_RADIAL :: GLenum
-gl_EYE_RADIAL = 0x855B
-
-gl_EYE_PLANE_ABSOLUTE :: GLenum
-gl_EYE_PLANE_ABSOLUTE = 0x855C
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/NV/FragmentCoverageToColor.hs b/src/Graphics/Rendering/OpenGL/Raw/NV/FragmentCoverageToColor.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/NV/FragmentCoverageToColor.hs
@@ -0,0 +1,24 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.NV.FragmentCoverageToColor
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/NV/fragment_coverage_to_color.txt NV_fragment_coverage_to_color> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.NV.FragmentCoverageToColor (
+  -- * Enums
+  gl_FRAGMENT_COVERAGE_COLOR_NV,
+  gl_FRAGMENT_COVERAGE_TO_COLOR_NV,
+  -- * Functions
+  glFragmentCoverageColorNV
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
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
@@ -1,63 +1,33 @@
-{-# LANGUAGE CPP #-}
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.NV.FragmentProgram
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All raw functions and tokens from the NV_fragment_program extension, see
--- <http://www.opengl.org/registry/specs/NV/fragment_program.txt>.
+-- The <https://www.opengl.org/registry/specs/NV/fragment_program.txt NV_fragment_program> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.NV.FragmentProgram (
-   -- * Functions
-   glProgramNamedParameter4f,
-   glProgramNamedParameter4d,
-   glProgramNamedParameter4fv,
-   glProgramNamedParameter4dv,
-   glGetProgramNamedParameterfv,
-   glGetProgramNamedParameterdv,
-   glProgramLocalParameter4d,
-   glProgramLocalParameter4dv,
-   glProgramLocalParameter4f,
-   glProgramLocalParameter4fv,
-   glGetProgramLocalParameterdv,
-   glGetProgramLocalParameterfv,
-   -- * Tokens
-   gl_FRAGMENT_PROGRAM_NV,
-   gl_MAX_TEXTURE_COORDS,
-   gl_MAX_TEXTURE_IMAGE_UNITS,
-   gl_FRAGMENT_PROGRAM_BINDING,
-   gl_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS,
-   gl_PROGRAM_ERROR_STRING
+  -- * Enums
+  gl_FRAGMENT_PROGRAM_BINDING_NV,
+  gl_FRAGMENT_PROGRAM_NV,
+  gl_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV,
+  gl_MAX_TEXTURE_COORDS_NV,
+  gl_MAX_TEXTURE_IMAGE_UNITS_NV,
+  gl_PROGRAM_ERROR_STRING_NV,
+  -- * Functions
+  glGetProgramNamedParameterdvNV,
+  glGetProgramNamedParameterfvNV,
+  glProgramNamedParameter4dNV,
+  glProgramNamedParameter4dvNV,
+  glProgramNamedParameter4fNV,
+  glProgramNamedParameter4fvNV
 ) where
 
-import Foreign.C.Types
-import Graphics.Rendering.OpenGL.Raw.Types
-import Graphics.Rendering.OpenGL.Raw.ARB.FragmentProgram
-import Foreign.Ptr ( Ptr, FunPtr )
-import Graphics.Rendering.OpenGL.Raw.GetProcAddress ( getExtensionChecked )
-import System.IO.Unsafe ( unsafePerformIO )
-
-#include "HsOpenGLRaw.h"
-
-EXTENSION_ENTRY(dyn_glProgramNamedParameter4f,ptr_glProgramNamedParameter4f,"glProgramNamedParameter4f",glProgramNamedParameter4f,GLuint -> GLsizei -> Ptr GLubyte -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
-EXTENSION_ENTRY(dyn_glProgramNamedParameter4d,ptr_glProgramNamedParameter4d,"glProgramNamedParameter4d",glProgramNamedParameter4d,GLuint -> GLsizei -> Ptr GLubyte -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
-EXTENSION_ENTRY(dyn_glProgramNamedParameter4fv,ptr_glProgramNamedParameter4fv,"glProgramNamedParameter4fv",glProgramNamedParameter4fv,GLuint -> GLsizei -> Ptr GLubyte -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(dyn_glProgramNamedParameter4dv,ptr_glProgramNamedParameter4dv,"glProgramNamedParameter4dv",glProgramNamedParameter4dv,GLuint -> GLsizei -> Ptr GLubyte -> Ptr GLdouble -> IO ())
-EXTENSION_ENTRY(dyn_glGetProgramNamedParameterfv,ptr_glGetProgramNamedParameterfv,"glGetProgramNamedParameterfv",glGetProgramNamedParameterfv,GLuint -> GLsizei -> Ptr GLubyte -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(dyn_glGetProgramNamedParameterdv,ptr_glGetProgramNamedParameterdv,"glGetProgramNamedParameterdv",glGetProgramNamedParameterdv,GLuint -> GLsizei -> Ptr GLubyte -> Ptr GLdouble -> IO ())
-
-gl_FRAGMENT_PROGRAM_NV :: GLenum
-gl_FRAGMENT_PROGRAM_NV = 0x8870
-
-gl_FRAGMENT_PROGRAM_BINDING :: GLenum
-gl_FRAGMENT_PROGRAM_BINDING = 0x8873
-
-gl_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS :: GLenum
-gl_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS = 0x8868
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/NV/FragmentProgram2.hs b/src/Graphics/Rendering/OpenGL/Raw/NV/FragmentProgram2.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/NV/FragmentProgram2.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/NV/FragmentProgram2.hs
@@ -1,40 +1,24 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.NV.FragmentProgram2
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All tokens from the NV_fragment_program, see
--- <http://www.opengl.org/registry/specs/NV/fragment_program.txt>.
+-- The <https://www.opengl.org/registry/specs/NV/fragment_program2.txt NV_fragment_program2> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.NV.FragmentProgram2 (
-   -- * Tokens
-   gl_MAX_PROGRAM_EXEC_INSTRUCTIONS,
-   gl_MAX_PROGRAM_CALL_DEPTH,
-   gl_MAX_PROGRAM_IF_DEPTH,
-   gl_MAX_PROGRAM_LOOP_DEPTH,
-   gl_MAX_PROGRAM_LOOP_COUNT
+  -- * Enums
+  gl_MAX_PROGRAM_CALL_DEPTH_NV,
+  gl_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV,
+  gl_MAX_PROGRAM_IF_DEPTH_NV,
+  gl_MAX_PROGRAM_LOOP_COUNT_NV,
+  gl_MAX_PROGRAM_LOOP_DEPTH_NV
 ) where
 
-import Graphics.Rendering.OpenGL.Raw.Core32
-
-gl_MAX_PROGRAM_EXEC_INSTRUCTIONS :: GLenum
-gl_MAX_PROGRAM_EXEC_INSTRUCTIONS = 0x88F4
-
-gl_MAX_PROGRAM_CALL_DEPTH :: GLenum
-gl_MAX_PROGRAM_CALL_DEPTH = 0x88F5
-
-gl_MAX_PROGRAM_IF_DEPTH :: GLenum
-gl_MAX_PROGRAM_IF_DEPTH = 0x88F6
-
-gl_MAX_PROGRAM_LOOP_DEPTH :: GLenum
-gl_MAX_PROGRAM_LOOP_DEPTH = 0x88F7
-
-gl_MAX_PROGRAM_LOOP_COUNT :: GLenum
-gl_MAX_PROGRAM_LOOP_COUNT = 0x88F8
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/NV/FramebufferMixedSamples.hs b/src/Graphics/Rendering/OpenGL/Raw/NV/FramebufferMixedSamples.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/NV/FramebufferMixedSamples.hs
@@ -0,0 +1,39 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.NV.FramebufferMixedSamples
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/NV/framebuffer_mixed_samples.txt NV_framebuffer_mixed_samples> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.NV.FramebufferMixedSamples (
+  -- * Enums
+  gl_COLOR_SAMPLES_NV,
+  gl_COVERAGE_MODULATION_NV,
+  gl_COVERAGE_MODULATION_TABLE_NV,
+  gl_COVERAGE_MODULATION_TABLE_SIZE_NV,
+  gl_DEPTH_SAMPLES_NV,
+  gl_EFFECTIVE_RASTER_SAMPLES_EXT,
+  gl_MAX_RASTER_SAMPLES_EXT,
+  gl_MIXED_DEPTH_SAMPLES_SUPPORTED_NV,
+  gl_MIXED_STENCIL_SAMPLES_SUPPORTED_NV,
+  gl_MULTISAMPLE_RASTERIZATION_ALLOWED_EXT,
+  gl_RASTER_FIXED_SAMPLE_LOCATIONS_EXT,
+  gl_RASTER_MULTISAMPLE_EXT,
+  gl_RASTER_SAMPLES_EXT,
+  gl_STENCIL_SAMPLES_NV,
+  -- * Functions
+  glCoverageModulationNV,
+  glCoverageModulationTableNV,
+  glGetCoverageModulationTableNV,
+  glRasterSamplesEXT
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
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
@@ -1,48 +1,26 @@
-{-# LANGUAGE CPP #-}
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.NV.FramebufferMultisampleCoverage
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All raw functions and tokens from the NV_framebuffer_multisample_coverage
--- extension, see
--- <http://www.opengl.org/registry/specs/NV/framebuffer_multisample_coverage.txt>.
+-- The <https://www.opengl.org/registry/specs/NV/framebuffer_multisample_coverage.txt NV_framebuffer_multisample_coverage> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.NV.FramebufferMultisampleCoverage (
-   -- * Functions
-   glRenderbufferStorageMultisampleCoverage,
-   -- * Tokens
-   gl_RENDERBUFFER_COVERAGE_SAMPLES,
-   gl_RENDERBUFFER_COLOR_SAMPLES,
-   gl_MAX_MULTISAMPLE_COVERAGE_MODES,
-   gl_MULTISAMPLE_COVERAGE_MODES
+  -- * Enums
+  gl_MAX_MULTISAMPLE_COVERAGE_MODES_NV,
+  gl_MULTISAMPLE_COVERAGE_MODES_NV,
+  gl_RENDERBUFFER_COLOR_SAMPLES_NV,
+  gl_RENDERBUFFER_COVERAGE_SAMPLES_NV,
+  -- * Functions
+  glRenderbufferStorageMultisampleCoverageNV
 ) where
 
-import Foreign.C.Types
-import Graphics.Rendering.OpenGL.Raw.Types
-import Foreign.Ptr ( FunPtr )
-import Graphics.Rendering.OpenGL.Raw.GetProcAddress ( getExtensionChecked )
-import System.IO.Unsafe ( unsafePerformIO )
-
-#include "HsOpenGLRaw.h"
-
-EXTENSION_ENTRY(dyn_glRenderbufferStorageMultisampleCoverage,ptr_glRenderbufferStorageMultisampleCoverage,"glRenderbufferStorageMultisampleCoverage",glRenderbufferStorageMultisampleCoverage,GLenum -> GLsizei -> GLsizei -> GLenum -> GLsizei -> GLsizei -> IO ())
-
-gl_RENDERBUFFER_COVERAGE_SAMPLES :: GLenum
-gl_RENDERBUFFER_COVERAGE_SAMPLES = 0x8CAB
-
-gl_RENDERBUFFER_COLOR_SAMPLES :: GLenum
-gl_RENDERBUFFER_COLOR_SAMPLES = 0x8E10
-
-gl_MAX_MULTISAMPLE_COVERAGE_MODES :: GLenum
-gl_MAX_MULTISAMPLE_COVERAGE_MODES = 0x8E11
-
-gl_MULTISAMPLE_COVERAGE_MODES :: GLenum
-gl_MULTISAMPLE_COVERAGE_MODES = 0x8E12
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
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
@@ -1,89 +1,45 @@
-{-# LANGUAGE CPP #-}
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.NV.GPUProgram4
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All raw functions and tokens from the NV_gpu_program4 extension, see
--- <http://www.opengl.org/registry/specs/NV/gpu_program4.txt>.
+-- The <https://www.opengl.org/registry/specs/NV/gpu_program4.txt NV_gpu_program4> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.NV.GPUProgram4 (
-   -- * Functions
-   glProgramLocalParameterI4i,
-   glProgramLocalParameterI4iv,
-   glProgramLocalParametersI4iv,
-   glProgramLocalParameterI4ui,
-   glProgramLocalParameterI4uiv,
-   glProgramLocalParametersI4uiv,
-   glProgramEnvParameterI4i,
-   glProgramEnvParameterI4iv,
-   glProgramEnvParametersI4iv,
-   glProgramEnvParameterI4ui,
-   glProgramEnvParameterI4uiv,
-   glProgramEnvParametersI4uiv,
-   glGetProgramLocalParameterIiv,
-   glGetProgramLocalParameterIuiv,
-   glGetProgramEnvParameterIiv,
-   glGetProgramEnvParameterIuiv,
-   -- * Tokens
-   gl_MIN_PROGRAM_TEXEL_OFFSET,
-   gl_MAX_PROGRAM_TEXEL_OFFSET,
-   gl_PROGRAM_ATTRIB_COMPONENTS,
-   gl_PROGRAM_RESULT_COMPONENTS,
-   gl_MAX_PROGRAM_ATTRIB_COMPONENTS,
-   gl_MAX_PROGRAM_RESULT_COMPONENTS,
-   gl_MAX_PROGRAM_GENERIC_ATTRIBS,
-   gl_MAX_PROGRAM_GENERIC_RESULTS
+  -- * Enums
+  gl_MAX_PROGRAM_ATTRIB_COMPONENTS_NV,
+  gl_MAX_PROGRAM_GENERIC_ATTRIBS_NV,
+  gl_MAX_PROGRAM_GENERIC_RESULTS_NV,
+  gl_MAX_PROGRAM_RESULT_COMPONENTS_NV,
+  gl_MAX_PROGRAM_TEXEL_OFFSET_NV,
+  gl_MIN_PROGRAM_TEXEL_OFFSET_NV,
+  gl_PROGRAM_ATTRIB_COMPONENTS_NV,
+  gl_PROGRAM_RESULT_COMPONENTS_NV,
+  -- * Functions
+  glGetProgramEnvParameterIivNV,
+  glGetProgramEnvParameterIuivNV,
+  glGetProgramLocalParameterIivNV,
+  glGetProgramLocalParameterIuivNV,
+  glProgramEnvParameterI4iNV,
+  glProgramEnvParameterI4ivNV,
+  glProgramEnvParameterI4uiNV,
+  glProgramEnvParameterI4uivNV,
+  glProgramEnvParametersI4ivNV,
+  glProgramEnvParametersI4uivNV,
+  glProgramLocalParameterI4iNV,
+  glProgramLocalParameterI4ivNV,
+  glProgramLocalParameterI4uiNV,
+  glProgramLocalParameterI4uivNV,
+  glProgramLocalParametersI4ivNV,
+  glProgramLocalParametersI4uivNV
 ) where
 
-import Foreign.C.Types
-import Graphics.Rendering.OpenGL.Raw.Types
-import Graphics.Rendering.OpenGL.Raw.Core32
-import Foreign.Ptr ( Ptr, FunPtr )
-import Graphics.Rendering.OpenGL.Raw.GetProcAddress ( getExtensionChecked )
-import System.IO.Unsafe ( unsafePerformIO )
-
-#include "HsOpenGLRaw.h"
-
-EXTENSION_ENTRY(dyn_glProgramLocalParameterI4i,ptr_glProgramLocalParameterI4i,"glProgramLocalParameterI4i",glProgramLocalParameterI4i,GLenum -> GLuint -> GLint -> GLint -> GLint -> GLint -> IO ())
-EXTENSION_ENTRY(dyn_glProgramLocalParameterI4iv,ptr_glProgramLocalParameterI4iv,"glProgramLocalParameterI4iv",glProgramLocalParameterI4iv,GLenum -> GLuint -> Ptr GLint -> IO ())
-EXTENSION_ENTRY(dyn_glProgramLocalParametersI4iv,ptr_glProgramLocalParametersI4iv,"glProgramLocalParametersI4iv",glProgramLocalParametersI4iv,GLenum -> GLuint -> GLsizei -> Ptr GLint -> IO ())
-EXTENSION_ENTRY(dyn_glProgramLocalParameterI4ui,ptr_glProgramLocalParameterI4ui,"glProgramLocalParameterI4ui",glProgramLocalParameterI4ui,GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ())
-EXTENSION_ENTRY(dyn_glProgramLocalParameterI4uiv,ptr_glProgramLocalParameterI4uiv,"glProgramLocalParameterI4uiv",glProgramLocalParameterI4uiv,GLenum -> GLuint -> Ptr GLuint -> IO ())
-EXTENSION_ENTRY(dyn_glProgramLocalParametersI4uiv,ptr_glProgramLocalParametersI4uiv,"glProgramLocalParametersI4uiv",glProgramLocalParametersI4uiv,GLenum -> GLuint -> GLsizei -> Ptr GLuint -> IO ())
-EXTENSION_ENTRY(dyn_glProgramEnvParameterI4i,ptr_glProgramEnvParameterI4i,"glProgramEnvParameterI4i",glProgramEnvParameterI4i,GLenum -> GLuint -> GLint -> GLint -> GLint -> GLint -> IO ())
-EXTENSION_ENTRY(dyn_glProgramEnvParameterI4iv,ptr_glProgramEnvParameterI4iv,"glProgramEnvParameterI4iv",glProgramEnvParameterI4iv,GLenum -> GLuint -> Ptr GLint -> IO ())
-EXTENSION_ENTRY(dyn_glProgramEnvParametersI4iv,ptr_glProgramEnvParametersI4iv,"glProgramEnvParametersI4iv",glProgramEnvParametersI4iv,GLenum -> GLuint -> GLsizei -> Ptr GLint -> IO ())
-EXTENSION_ENTRY(dyn_glProgramEnvParameterI4ui,ptr_glProgramEnvParameterI4ui,"glProgramEnvParameterI4ui",glProgramEnvParameterI4ui,GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ())
-EXTENSION_ENTRY(dyn_glProgramEnvParameterI4uiv,ptr_glProgramEnvParameterI4uiv,"glProgramEnvParameterI4uiv",glProgramEnvParameterI4uiv,GLenum -> GLuint -> Ptr GLuint -> IO ())
-EXTENSION_ENTRY(dyn_glProgramEnvParametersI4uiv,ptr_glProgramEnvParametersI4uiv,"glProgramEnvParametersI4uiv",glProgramEnvParametersI4uiv,GLenum -> GLuint -> GLsizei -> Ptr GLuint -> IO ())
-EXTENSION_ENTRY(dyn_glGetProgramLocalParameterIiv,ptr_glGetProgramLocalParameterIiv,"glGetProgramLocalParameterIiv",glGetProgramLocalParameterIiv,GLenum -> GLuint -> Ptr GLint -> IO ())
-EXTENSION_ENTRY(dyn_glGetProgramLocalParameterIuiv,ptr_glGetProgramLocalParameterIuiv,"glGetProgramLocalParameterIuiv",glGetProgramLocalParameterIuiv,GLenum -> GLuint -> Ptr GLuint -> IO ())
-EXTENSION_ENTRY(dyn_glGetProgramEnvParameterIiv,ptr_glGetProgramEnvParameterIiv,"glGetProgramEnvParameterIiv",glGetProgramEnvParameterIiv,GLenum -> GLuint -> Ptr GLint -> IO ())
-EXTENSION_ENTRY(dyn_glGetProgramEnvParameterIuiv,ptr_glGetProgramEnvParameterIuiv,"glGetProgramEnvParameterIuiv",glGetProgramEnvParameterIuiv,GLenum -> GLuint -> Ptr GLuint -> IO ())
-
-gl_PROGRAM_ATTRIB_COMPONENTS :: GLenum
-gl_PROGRAM_ATTRIB_COMPONENTS = 0x8906
-
-gl_PROGRAM_RESULT_COMPONENTS :: GLenum
-gl_PROGRAM_RESULT_COMPONENTS = 0x8907
-
-gl_MAX_PROGRAM_ATTRIB_COMPONENTS :: GLenum
-gl_MAX_PROGRAM_ATTRIB_COMPONENTS = 0x8908
-
-gl_MAX_PROGRAM_RESULT_COMPONENTS :: GLenum
-gl_MAX_PROGRAM_RESULT_COMPONENTS = 0x8909
-
-gl_MAX_PROGRAM_GENERIC_ATTRIBS :: GLenum
-gl_MAX_PROGRAM_GENERIC_ATTRIBS = 0x8DA5
-
-gl_MAX_PROGRAM_GENERIC_RESULTS :: GLenum
-gl_MAX_PROGRAM_GENERIC_RESULTS = 0x8DA6
-      
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/NV/GPUProgram5.hs b/src/Graphics/Rendering/OpenGL/Raw/NV/GPUProgram5.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/NV/GPUProgram5.hs
@@ -0,0 +1,31 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.NV.GPUProgram5
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/NV/gpu_program5.txt NV_gpu_program5> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.NV.GPUProgram5 (
+  -- * Enums
+  gl_FRAGMENT_PROGRAM_INTERPOLATION_OFFSET_BITS_NV,
+  gl_MAX_FRAGMENT_INTERPOLATION_OFFSET_NV,
+  gl_MAX_GEOMETRY_PROGRAM_INVOCATIONS_NV,
+  gl_MAX_PROGRAM_SUBROUTINE_NUM_NV,
+  gl_MAX_PROGRAM_SUBROUTINE_PARAMETERS_NV,
+  gl_MAX_PROGRAM_TEXTURE_GATHER_OFFSET_NV,
+  gl_MIN_FRAGMENT_INTERPOLATION_OFFSET_NV,
+  gl_MIN_PROGRAM_TEXTURE_GATHER_OFFSET_NV,
+  -- * Functions
+  glGetProgramSubroutineParameteruivNV,
+  glProgramSubroutineParametersuivNV
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/NV/GPUShader5.hs b/src/Graphics/Rendering/OpenGL/Raw/NV/GPUShader5.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/NV/GPUShader5.hs
@@ -0,0 +1,83 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.NV.GPUShader5
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/NV/gpu_shader5.txt NV_gpu_shader5> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.NV.GPUShader5 (
+  -- * Enums
+  gl_FLOAT16_NV,
+  gl_FLOAT16_VEC2_NV,
+  gl_FLOAT16_VEC3_NV,
+  gl_FLOAT16_VEC4_NV,
+  gl_INT16_NV,
+  gl_INT16_VEC2_NV,
+  gl_INT16_VEC3_NV,
+  gl_INT16_VEC4_NV,
+  gl_INT64_NV,
+  gl_INT64_VEC2_NV,
+  gl_INT64_VEC3_NV,
+  gl_INT64_VEC4_NV,
+  gl_INT8_NV,
+  gl_INT8_VEC2_NV,
+  gl_INT8_VEC3_NV,
+  gl_INT8_VEC4_NV,
+  gl_PATCHES,
+  gl_UNSIGNED_INT16_NV,
+  gl_UNSIGNED_INT16_VEC2_NV,
+  gl_UNSIGNED_INT16_VEC3_NV,
+  gl_UNSIGNED_INT16_VEC4_NV,
+  gl_UNSIGNED_INT64_NV,
+  gl_UNSIGNED_INT64_VEC2_NV,
+  gl_UNSIGNED_INT64_VEC3_NV,
+  gl_UNSIGNED_INT64_VEC4_NV,
+  gl_UNSIGNED_INT8_NV,
+  gl_UNSIGNED_INT8_VEC2_NV,
+  gl_UNSIGNED_INT8_VEC3_NV,
+  gl_UNSIGNED_INT8_VEC4_NV,
+  -- * Functions
+  glGetUniformi64vNV,
+  glProgramUniform1i64NV,
+  glProgramUniform1i64vNV,
+  glProgramUniform1ui64NV,
+  glProgramUniform1ui64vNV,
+  glProgramUniform2i64NV,
+  glProgramUniform2i64vNV,
+  glProgramUniform2ui64NV,
+  glProgramUniform2ui64vNV,
+  glProgramUniform3i64NV,
+  glProgramUniform3i64vNV,
+  glProgramUniform3ui64NV,
+  glProgramUniform3ui64vNV,
+  glProgramUniform4i64NV,
+  glProgramUniform4i64vNV,
+  glProgramUniform4ui64NV,
+  glProgramUniform4ui64vNV,
+  glUniform1i64NV,
+  glUniform1i64vNV,
+  glUniform1ui64NV,
+  glUniform1ui64vNV,
+  glUniform2i64NV,
+  glUniform2i64vNV,
+  glUniform2ui64NV,
+  glUniform2ui64vNV,
+  glUniform3i64NV,
+  glUniform3i64vNV,
+  glUniform3ui64NV,
+  glUniform3ui64vNV,
+  glUniform4i64NV,
+  glUniform4i64vNV,
+  glUniform4ui64NV,
+  glUniform4ui64vNV
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
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
@@ -1,57 +1,41 @@
-{-# LANGUAGE CPP #-}
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.NV.GeometryProgram4
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All raw functions and tokens from the NV_geometry_program4 extension, see
--- <http://www.opengl.org/registry/specs/NV/geometry_program4.txt>.
+-- The <https://www.opengl.org/registry/specs/NV/geometry_program4.txt NV_geometry_program4> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.NV.GeometryProgram4 (
-   -- * Functions
-   glProgramVertexLimit,
-   -- * Tokens
-   gl_GEOMETRY_PROGRAM,
-   gl_MAX_PROGRAM_OUTPUT_VERTICES,
-   gl_MAX_PROGRAM_TOTAL_OUTPUT_COMPONENTS,
-   gl_GEOMETRY_VERTICES_OUT,
-   gl_GEOMETRY_INPUT_TYPE,
-   gl_GEOMETRY_OUTPUT_TYPE,
-   gl_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS,
-   gl_LINES_ADJACENCY,
-   gl_LINE_STRIP_ADJACENCY,
-   gl_TRIANGLES_ADJACENCY,
-   gl_TRIANGLE_STRIP_ADJACENCY,
-   gl_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS,
-   gl_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_ARB,
-   gl_FRAMEBUFFER_ATTACHMENT_LAYERED,
-   gl_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER,
-   gl_PROGRAM_POINT_SIZE
+  -- * Enums
+  gl_FRAMEBUFFER_ATTACHMENT_LAYERED_EXT,
+  gl_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT,
+  gl_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_EXT,
+  gl_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_EXT,
+  gl_GEOMETRY_INPUT_TYPE_EXT,
+  gl_GEOMETRY_OUTPUT_TYPE_EXT,
+  gl_GEOMETRY_PROGRAM_NV,
+  gl_GEOMETRY_VERTICES_OUT_EXT,
+  gl_LINES_ADJACENCY_EXT,
+  gl_LINE_STRIP_ADJACENCY_EXT,
+  gl_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_EXT,
+  gl_MAX_PROGRAM_OUTPUT_VERTICES_NV,
+  gl_MAX_PROGRAM_TOTAL_OUTPUT_COMPONENTS_NV,
+  gl_PROGRAM_POINT_SIZE_EXT,
+  gl_TRIANGLES_ADJACENCY_EXT,
+  gl_TRIANGLE_STRIP_ADJACENCY_EXT,
+  -- * Functions
+  glFramebufferTextureEXT,
+  glFramebufferTextureFaceEXT,
+  glFramebufferTextureLayerEXT,
+  glProgramVertexLimitNV
 ) where
 
-import Foreign.C.Types
-import Graphics.Rendering.OpenGL.Raw.Types
 import Graphics.Rendering.OpenGL.Raw.Tokens
-import Foreign.Ptr ( FunPtr )
-import Graphics.Rendering.OpenGL.Raw.GetProcAddress ( getExtensionChecked )
-import System.IO.Unsafe ( unsafePerformIO )
-
-#include "HsOpenGLRaw.h"
-
-EXTENSION_ENTRY(dyn_glProgramVertexLimit,ptr_glProgramVertexLimit,"glProgramVertexLimit",glProgramVertexLimit,GLenum -> GLint -> IO ())
-
-gl_GEOMETRY_PROGRAM :: GLenum
-gl_GEOMETRY_PROGRAM = 0x8C26
-
-gl_MAX_PROGRAM_OUTPUT_VERTICES :: GLenum
-gl_MAX_PROGRAM_OUTPUT_VERTICES = 0x8C27
-
-gl_MAX_PROGRAM_TOTAL_OUTPUT_COMPONENTS :: GLenum
-gl_MAX_PROGRAM_TOTAL_OUTPUT_COMPONENTS = 0x8C28
+import Graphics.Rendering.OpenGL.Raw.Functions
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
@@ -1,125 +1,68 @@
-{-# LANGUAGE CPP #-}
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.NV.HalfFloat
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All raw functions, tokens and types from the NV_fragment_program extension,
--- see <http://www.opengl.org/registry/specs/NV/fragment_program.txt>.
+-- The <https://www.opengl.org/registry/specs/NV/half_float.txt NV_half_float> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.NV.HalfFloat (
-   -- * Functions
-   glVertex2h,
-   glVertex2hv,
-   glVertex3h,
-   glVertex3hv,
-   glVertex4h,
-   glVertex4hv,
-   glNormal3h,
-   glNormal3hv,
-   glColor3h,
-   glColor3hv,
-   glColor4h,
-   glColor4hv,
-   glTexCoord1h,
-   glTexCoord1hv,
-   glTexCoord2h,
-   glTexCoord2hv,
-   glTexCoord3h,
-   glTexCoord3hv,
-   glTexCoord4h,
-   glTexCoord4hv,
-   glMultiTexCoord1h,
-   glMultiTexCoord1hv,
-   glMultiTexCoord2h,
-   glMultiTexCoord2hv,
-   glMultiTexCoord3h,
-   glMultiTexCoord3hv,
-   glMultiTexCoord4h,
-   glMultiTexCoord4hv,
-   glFogCoordh,
-   glFogCoordhv,
-   glSecondaryColor3h,
-   glSecondaryColor3hv,
-   glVertexWeighth,
-   glVertexWeighthv,
-   glVertexAttrib1h,
-   glVertexAttrib1hv,
-   glVertexAttrib2h,
-   glVertexAttrib2hv,
-   glVertexAttrib3h,
-   glVertexAttrib3hv,
-   glVertexAttrib4h,
-   glVertexAttrib4hv,
-   glVertexAttribs1hv,
-   glVertexAttribs2hv,
-   glVertexAttribs3hv,
-   glVertexAttribs4hv,
-   -- * Tokens
-   gl_HALF_FLOAT,
-   -- * Types
-   GLhalf
+  -- * Enums
+  gl_HALF_FLOAT_NV,
+  -- * Functions
+  glColor3hNV,
+  glColor3hvNV,
+  glColor4hNV,
+  glColor4hvNV,
+  glFogCoordhNV,
+  glFogCoordhvNV,
+  glMultiTexCoord1hNV,
+  glMultiTexCoord1hvNV,
+  glMultiTexCoord2hNV,
+  glMultiTexCoord2hvNV,
+  glMultiTexCoord3hNV,
+  glMultiTexCoord3hvNV,
+  glMultiTexCoord4hNV,
+  glMultiTexCoord4hvNV,
+  glNormal3hNV,
+  glNormal3hvNV,
+  glSecondaryColor3hNV,
+  glSecondaryColor3hvNV,
+  glTexCoord1hNV,
+  glTexCoord1hvNV,
+  glTexCoord2hNV,
+  glTexCoord2hvNV,
+  glTexCoord3hNV,
+  glTexCoord3hvNV,
+  glTexCoord4hNV,
+  glTexCoord4hvNV,
+  glVertex2hNV,
+  glVertex2hvNV,
+  glVertex3hNV,
+  glVertex3hvNV,
+  glVertex4hNV,
+  glVertex4hvNV,
+  glVertexAttrib1hNV,
+  glVertexAttrib1hvNV,
+  glVertexAttrib2hNV,
+  glVertexAttrib2hvNV,
+  glVertexAttrib3hNV,
+  glVertexAttrib3hvNV,
+  glVertexAttrib4hNV,
+  glVertexAttrib4hvNV,
+  glVertexAttribs1hvNV,
+  glVertexAttribs2hvNV,
+  glVertexAttribs3hvNV,
+  glVertexAttribs4hvNV,
+  glVertexWeighthNV,
+  glVertexWeighthvNV
 ) where
 
-import Foreign.C.Types
-import Graphics.Rendering.OpenGL.Raw.Types
-import Graphics.Rendering.OpenGL.Raw.Core32
-import Foreign.Ptr ( Ptr, FunPtr )
-import Graphics.Rendering.OpenGL.Raw.GetProcAddress ( getExtensionChecked )
-import System.IO.Unsafe ( unsafePerformIO )
-
-#include "HsOpenGLRaw.h"
-
-EXTENSION_ENTRY(dyn_glVertex2h,ptr_glVertex2h,"glVertex2h",glVertex2h,GLhalf -> GLhalf -> IO ())
-EXTENSION_ENTRY(dyn_glVertex2hv,ptr_glVertex2hv,"glVertex2hv",glVertex2hv,Ptr GLhalf -> IO ())
-EXTENSION_ENTRY(dyn_glVertex3h,ptr_glVertex3h,"glVertex3h",glVertex3h,GLhalf -> GLhalf -> GLhalf -> IO ())
-EXTENSION_ENTRY(dyn_glVertex3hv,ptr_glVertex3hv,"glVertex3hv",glVertex3hv,Ptr GLhalf -> IO ())
-EXTENSION_ENTRY(dyn_glVertex4h,ptr_glVertex4h,"glVertex4h",glVertex4h,GLhalf -> GLhalf -> GLhalf -> GLhalf -> IO ())
-EXTENSION_ENTRY(dyn_glVertex4hv,ptr_glVertex4hv,"glVertex4hv",glVertex4hv,Ptr GLhalf -> IO ())
-EXTENSION_ENTRY(dyn_glNormal3h,ptr_glNormal3h,"glNormal3h",glNormal3h,GLhalf -> GLhalf -> GLhalf -> IO ())
-EXTENSION_ENTRY(dyn_glNormal3hv,ptr_glNormal3hv,"glNormal3hv",glNormal3hv,Ptr GLhalf -> IO ())
-EXTENSION_ENTRY(dyn_glColor3h,ptr_glColor3h,"glColor3h",glColor3h,GLhalf -> GLhalf -> GLhalf -> IO ())
-EXTENSION_ENTRY(dyn_glColor3hv,ptr_glColor3hv,"glColor3hv",glColor3hv,Ptr GLhalf -> IO ())
-EXTENSION_ENTRY(dyn_glColor4h,ptr_glColor4h,"glColor4h",glColor4h,GLhalf -> GLhalf -> GLhalf -> GLhalf -> IO ())
-EXTENSION_ENTRY(dyn_glColor4hv,ptr_glColor4hv,"glColor4hv",glColor4hv,Ptr GLhalf -> IO ())
-EXTENSION_ENTRY(dyn_glTexCoord1h,ptr_glTexCoord1h,"glTexCoord1h",glTexCoord1h,GLhalf -> IO ())
-EXTENSION_ENTRY(dyn_glTexCoord1hv,ptr_glTexCoord1hv,"glTexCoord1hv",glTexCoord1hv,Ptr GLhalf -> IO ())
-EXTENSION_ENTRY(dyn_glTexCoord2h,ptr_glTexCoord2h,"glTexCoord2h",glTexCoord2h,GLhalf -> GLhalf -> IO ())
-EXTENSION_ENTRY(dyn_glTexCoord2hv,ptr_glTexCoord2hv,"glTexCoord2hv",glTexCoord2hv,Ptr GLhalf -> IO ())
-EXTENSION_ENTRY(dyn_glTexCoord3h,ptr_glTexCoord3h,"glTexCoord3h",glTexCoord3h,GLhalf -> GLhalf -> GLhalf -> IO ())
-EXTENSION_ENTRY(dyn_glTexCoord3hv,ptr_glTexCoord3hv,"glTexCoord3hv",glTexCoord3hv,Ptr GLhalf -> IO ())
-EXTENSION_ENTRY(dyn_glTexCoord4h,ptr_glTexCoord4h,"glTexCoord4h",glTexCoord4h,GLhalf -> GLhalf -> GLhalf -> GLhalf -> IO ())
-EXTENSION_ENTRY(dyn_glTexCoord4hv,ptr_glTexCoord4hv,"glTexCoord4hv",glTexCoord4hv,Ptr GLhalf -> IO ())
-EXTENSION_ENTRY(dyn_glMultiTexCoord1h,ptr_glMultiTexCoord1h,"glMultiTexCoord1h",glMultiTexCoord1h,GLenum -> GLhalf -> IO ())
-EXTENSION_ENTRY(dyn_glMultiTexCoord1hv,ptr_glMultiTexCoord1hv,"glMultiTexCoord1hv",glMultiTexCoord1hv,GLenum -> Ptr GLhalf -> IO ())
-EXTENSION_ENTRY(dyn_glMultiTexCoord2h,ptr_glMultiTexCoord2h,"glMultiTexCoord2h",glMultiTexCoord2h,GLenum -> GLhalf -> GLhalf -> IO ())
-EXTENSION_ENTRY(dyn_glMultiTexCoord2hv,ptr_glMultiTexCoord2hv,"glMultiTexCoord2hv",glMultiTexCoord2hv,GLenum -> Ptr GLhalf -> IO ())
-EXTENSION_ENTRY(dyn_glMultiTexCoord3h,ptr_glMultiTexCoord3h,"glMultiTexCoord3h",glMultiTexCoord3h,GLenum -> GLhalf -> GLhalf -> GLhalf -> IO ())
-EXTENSION_ENTRY(dyn_glMultiTexCoord3hv,ptr_glMultiTexCoord3hv,"glMultiTexCoord3hv",glMultiTexCoord3hv,GLenum -> Ptr GLhalf -> IO ())
-EXTENSION_ENTRY(dyn_glMultiTexCoord4h,ptr_glMultiTexCoord4h,"glMultiTexCoord4h",glMultiTexCoord4h,GLenum -> GLhalf -> GLhalf -> GLhalf -> GLhalf -> IO ())
-EXTENSION_ENTRY(dyn_glMultiTexCoord4hv,ptr_glMultiTexCoord4hv,"glMultiTexCoord4hv",glMultiTexCoord4hv,GLenum -> Ptr GLhalf -> IO ())
-EXTENSION_ENTRY(dyn_glFogCoordh,ptr_glFogCoordh,"glFogCoordh",glFogCoordh,GLhalf -> IO ())
-EXTENSION_ENTRY(dyn_glFogCoordhv,ptr_glFogCoordhv,"glFogCoordhv",glFogCoordhv,Ptr GLhalf -> IO ())
-EXTENSION_ENTRY(dyn_glSecondaryColor3h,ptr_glSecondaryColor3h,"glSecondaryColor3h",glSecondaryColor3h,GLhalf -> GLhalf -> GLhalf -> IO ())
-EXTENSION_ENTRY(dyn_glSecondaryColor3hv,ptr_glSecondaryColor3hv,"glSecondaryColor3hv",glSecondaryColor3hv,Ptr GLhalf -> IO ())
-EXTENSION_ENTRY(dyn_glVertexWeighth,ptr_glVertexWeighth,"glVertexWeighth",glVertexWeighth,GLhalf -> IO ())
-EXTENSION_ENTRY(dyn_glVertexWeighthv,ptr_glVertexWeighthv,"glVertexWeighthv",glVertexWeighthv,Ptr GLhalf -> IO ())
-EXTENSION_ENTRY(dyn_glVertexAttrib1h,ptr_glVertexAttrib1h,"glVertexAttrib1h",glVertexAttrib1h,GLuint -> GLhalf -> IO ())
-EXTENSION_ENTRY(dyn_glVertexAttrib1hv,ptr_glVertexAttrib1hv,"glVertexAttrib1hv",glVertexAttrib1hv,GLuint -> Ptr GLhalf -> IO ())
-EXTENSION_ENTRY(dyn_glVertexAttrib2h,ptr_glVertexAttrib2h,"glVertexAttrib2h",glVertexAttrib2h,GLuint -> GLhalf -> GLhalf -> IO ())
-EXTENSION_ENTRY(dyn_glVertexAttrib2hv,ptr_glVertexAttrib2hv,"glVertexAttrib2hv",glVertexAttrib2hv,GLuint -> Ptr GLhalf -> IO ())
-EXTENSION_ENTRY(dyn_glVertexAttrib3h,ptr_glVertexAttrib3h,"glVertexAttrib3h",glVertexAttrib3h,GLuint -> GLhalf -> GLhalf -> GLhalf -> IO ())
-EXTENSION_ENTRY(dyn_glVertexAttrib3hv,ptr_glVertexAttrib3hv,"glVertexAttrib3hv",glVertexAttrib3hv,GLuint -> Ptr GLhalf -> IO ())
-EXTENSION_ENTRY(dyn_glVertexAttrib4h,ptr_glVertexAttrib4h,"glVertexAttrib4h",glVertexAttrib4h,GLuint -> GLhalf -> GLhalf -> GLhalf -> GLhalf -> IO ())
-EXTENSION_ENTRY(dyn_glVertexAttrib4hv,ptr_glVertexAttrib4hv,"glVertexAttrib4hv",glVertexAttrib4hv,GLuint -> Ptr GLhalf -> IO ())
-EXTENSION_ENTRY(dyn_glVertexAttribs1hv,ptr_glVertexAttribs1hv,"glVertexAttribs1hv",glVertexAttribs1hv,GLuint -> GLsizei -> Ptr GLhalf -> IO ())
-EXTENSION_ENTRY(dyn_glVertexAttribs2hv,ptr_glVertexAttribs2hv,"glVertexAttribs2hv",glVertexAttribs2hv,GLuint -> GLsizei -> Ptr GLhalf -> IO ())
-EXTENSION_ENTRY(dyn_glVertexAttribs3hv,ptr_glVertexAttribs3hv,"glVertexAttribs3hv",glVertexAttribs3hv,GLuint -> GLsizei -> Ptr GLhalf -> IO ())
-EXTENSION_ENTRY(dyn_glVertexAttribs4hv,ptr_glVertexAttribs4hv,"glVertexAttribs4hv",glVertexAttribs4hv,GLuint -> GLsizei -> Ptr GLhalf -> IO ())
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/NV/InternalformatSampleQuery.hs b/src/Graphics/Rendering/OpenGL/Raw/NV/InternalformatSampleQuery.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/NV/InternalformatSampleQuery.hs
@@ -0,0 +1,29 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.NV.InternalformatSampleQuery
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/NV/internalformat_sample_query.txt NV_internalformat_sample_query> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.NV.InternalformatSampleQuery (
+  -- * Enums
+  gl_CONFORMANT_NV,
+  gl_MULTISAMPLES_NV,
+  gl_RENDERBUFFER,
+  gl_SUPERSAMPLE_SCALE_X_NV,
+  gl_SUPERSAMPLE_SCALE_Y_NV,
+  gl_TEXTURE_2D_MULTISAMPLE,
+  gl_TEXTURE_2D_MULTISAMPLE_ARRAY,
+  -- * Functions
+  glGetInternalformatSampleivNV
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/NV/LightMaxExponent.hs b/src/Graphics/Rendering/OpenGL/Raw/NV/LightMaxExponent.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/NV/LightMaxExponent.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/NV/LightMaxExponent.hs
@@ -1,29 +1,21 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.NV.LightMaxExponent
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All raw functions and tokens from the NV_light_max_exponent extension not
--- already in the OpenGL 3.1 core, see
--- <http://www.opengl.org/registry/specs/NV/light_max_exponent.txt>.
+-- The <https://www.opengl.org/registry/specs/NV/light_max_exponent.txt NV_light_max_exponent> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.NV.LightMaxExponent (
-   -- * Tokens
-   gl_MAX_SHININESS,
-   gl_MAX_SPOT_EXPONENT
+  -- * Enums
+  gl_MAX_SHININESS_NV,
+  gl_MAX_SPOT_EXPONENT_NV
 ) where
 
-import Graphics.Rendering.OpenGL.Raw.Core32
-
-gl_MAX_SHININESS :: GLenum
-gl_MAX_SHININESS = 0x8504
-
-gl_MAX_SPOT_EXPONENT :: GLenum
-gl_MAX_SPOT_EXPONENT = 0x8505
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/NV/MultisampleCoverage.hs b/src/Graphics/Rendering/OpenGL/Raw/NV/MultisampleCoverage.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/NV/MultisampleCoverage.hs
@@ -0,0 +1,21 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.NV.MultisampleCoverage
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/NV/multisample_coverage.txt NV_multisample_coverage> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.NV.MultisampleCoverage (
+  -- * Enums
+  gl_COLOR_SAMPLES_NV,
+  gl_SAMPLES_ARB
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/NV/MultisampleFilterHint.hs b/src/Graphics/Rendering/OpenGL/Raw/NV/MultisampleFilterHint.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/NV/MultisampleFilterHint.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/NV/MultisampleFilterHint.hs
@@ -1,25 +1,20 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.NV.MultisampleFilterHint
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All raw functions and tokens from the NV_multisample_filter_hint extension not
--- already in the OpenGL 3.1 core, see
--- <http://www.opengl.org/registry/specs/NV/multisample_filter_hint.txt>.
+-- The <https://www.opengl.org/registry/specs/NV/multisample_filter_hint.txt NV_multisample_filter_hint> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.NV.MultisampleFilterHint (
-   -- * Tokens
-   gl_MULTISAMPLE_FILTER_HINT
+  -- * Enums
+  gl_MULTISAMPLE_FILTER_HINT_NV
 ) where
 
-import Graphics.Rendering.OpenGL.Raw.Core32
-
-gl_MULTISAMPLE_FILTER_HINT :: GLenum
-gl_MULTISAMPLE_FILTER_HINT = 0x8534
+import Graphics.Rendering.OpenGL.Raw.Tokens
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
@@ -1,68 +1,32 @@
-{-# LANGUAGE CPP #-}
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.NV.OcclusionQuery
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All raw functions and tokens from the NV_occlusion_query not already in the
--- OpenGL 3.1 core, see
--- <http://www.opengl.org/registry/specs/NV/occlusion_query.txt>.
+-- The <https://www.opengl.org/registry/specs/NV/occlusion_query.txt NV_occlusion_query> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.NV.OcclusionQuery (
-   -- * Functions
-   glGenOcclusionQueries,
-   glDeleteOcclusionQueries,
-   glIsOcclusionQuery,
-   glBeginOcclusionQuery,
-   glEndOcclusionQuery,
-   glGetOcclusionQueryiv,
-   glGetOcclusionQueryuiv,
-   -- * Tokens
-   gl_OCCLUSION_TEST,
-   gl_OCCLUSION_TEST_RESULT,
-   gl_PIXEL_COUNTER_BITS,
-   gl_CURRENT_OCCLUSION_QUERY_ID,
-   gl_PIXEL_COUNT,
-   gl_PIXEL_COUNT_AVAILABLE
+  -- * Enums
+  gl_CURRENT_OCCLUSION_QUERY_ID_NV,
+  gl_PIXEL_COUNTER_BITS_NV,
+  gl_PIXEL_COUNT_AVAILABLE_NV,
+  gl_PIXEL_COUNT_NV,
+  -- * Functions
+  glBeginOcclusionQueryNV,
+  glDeleteOcclusionQueriesNV,
+  glEndOcclusionQueryNV,
+  glGenOcclusionQueriesNV,
+  glGetOcclusionQueryivNV,
+  glGetOcclusionQueryuivNV,
+  glIsOcclusionQueryNV
 ) where
 
-import Foreign.C.Types
-import Graphics.Rendering.OpenGL.Raw.Types
-import Foreign.Ptr ( Ptr, FunPtr )
-import Graphics.Rendering.OpenGL.Raw.GetProcAddress ( getExtensionChecked )
-import System.IO.Unsafe ( unsafePerformIO )
-
-#include "HsOpenGLRaw.h"
-
-EXTENSION_ENTRY(dyn_glGenOcclusionQueries,ptr_glGenOcclusionQueries,"glGenOcclusionQueries",glGenOcclusionQueries,GLsizei -> Ptr GLuint -> IO ())
-EXTENSION_ENTRY(dyn_glDeleteOcclusionQueries,ptr_glDeleteOcclusionQueries,"glDeleteOcclusionQueries",glDeleteOcclusionQueries,GLsizei -> Ptr GLuint -> IO ())
-EXTENSION_ENTRY(dyn_glIsOcclusionQuery,ptr_glIsOcclusionQuery,"glIsOcclusionQuery",glIsOcclusionQuery,GLuint -> IO ())
-EXTENSION_ENTRY(dyn_glBeginOcclusionQuery,ptr_glBeginOcclusionQuery,"glBeginOcclusionQuery",glBeginOcclusionQuery,GLuint -> IO ())
-EXTENSION_ENTRY(dyn_glEndOcclusionQuery,ptr_glEndOcclusionQuery,"glEndOcclusionQuery",glEndOcclusionQuery,IO ())
-EXTENSION_ENTRY(dyn_glGetOcclusionQueryiv,ptr_glGetOcclusionQueryiv,"glGetOcclusionQueryiv",glGetOcclusionQueryiv,GLuint -> GLenum -> Ptr GLint -> IO ())
-EXTENSION_ENTRY(dyn_glGetOcclusionQueryuiv,ptr_glGetOcclusionQueryuiv,"glGetOcclusionQueryuiv",glGetOcclusionQueryuiv,GLuint -> GLenum -> Ptr GLuint -> IO ())
-
-gl_OCCLUSION_TEST :: GLenum
-gl_OCCLUSION_TEST = 0x8165
-
-gl_OCCLUSION_TEST_RESULT :: GLenum
-gl_OCCLUSION_TEST_RESULT = 0x8166
-
-gl_PIXEL_COUNTER_BITS :: GLenum
-gl_PIXEL_COUNTER_BITS = 0x8864
-
-gl_CURRENT_OCCLUSION_QUERY_ID :: GLenum
-gl_CURRENT_OCCLUSION_QUERY_ID = 0x8865
-
-gl_PIXEL_COUNT :: GLenum
-gl_PIXEL_COUNT = 0x8866
-
-gl_PIXEL_COUNT_AVAILABLE :: GLenum
-gl_PIXEL_COUNT_AVAILABLE = 0x8867
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/NV/PackedDepthStencil.hs b/src/Graphics/Rendering/OpenGL/Raw/NV/PackedDepthStencil.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/NV/PackedDepthStencil.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/NV/PackedDepthStencil.hs
@@ -1,22 +1,21 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.NV.PackedDepthStencil
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All tokens from the NV_packed_depth_stencil extension, see
--- <http://www.opengl.org/registry/specs/NV/packed_depth_stencil.txt>.
+-- The <https://www.opengl.org/registry/specs/NV/packed_depth_stencil.txt NV_packed_depth_stencil> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.NV.PackedDepthStencil (
-   -- * Tokens
-   gl_DEPTH_STENCIL,
-   gl_UNSIGNED_INT_24_8
+  -- * Enums
+  gl_DEPTH_STENCIL_NV,
+  gl_UNSIGNED_INT_24_8_NV
 ) where
 
-import Graphics.Rendering.OpenGL.Raw.Core32
+import Graphics.Rendering.OpenGL.Raw.Tokens
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
@@ -1,63 +1,29 @@
-{-# LANGUAGE CPP #-}
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.NV.ParameterBufferObject
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All functions and tokens from the NV_parameter_buffer_object extension, see
--- <http://www.opengl.org/registry/specs/NV/parameter_buffer_object.txt>.
+-- The <https://www.opengl.org/registry/specs/NV/parameter_buffer_object.txt NV_parameter_buffer_object> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.NV.ParameterBufferObject (
-   -- * Functions
-   glBindBufferRange,
-   glBindBufferOffset,
-   glBindBufferBase,
-   glProgramBufferParametersfv,
-   glProgramBufferParametersIiv,
-   glProgramBufferParametersIuiv,
-   glGetIntegerIndexedv,
-   -- * Tokens
-   gl_MAX_PROGRAM_PARAMETER_BUFFER_BINDINGS,
-   gl_MAX_PROGRAM_PARAMETER_BUFFER_SIZE,
-   gl_VERTEX_PROGRAM_PARAMETER_BUFFER,
-   gl_GEOMETRY_PROGRAM_PARAMETER_BUFFER,
-   gl_FRAGMENT_PROGRAM_PARAMETER_BUFFER
+  -- * Enums
+  gl_FRAGMENT_PROGRAM_PARAMETER_BUFFER_NV,
+  gl_GEOMETRY_PROGRAM_PARAMETER_BUFFER_NV,
+  gl_MAX_PROGRAM_PARAMETER_BUFFER_BINDINGS_NV,
+  gl_MAX_PROGRAM_PARAMETER_BUFFER_SIZE_NV,
+  gl_VERTEX_PROGRAM_PARAMETER_BUFFER_NV,
+  -- * Functions
+  glProgramBufferParametersIivNV,
+  glProgramBufferParametersIuivNV,
+  glProgramBufferParametersfvNV
 ) where
 
-import Foreign.C.Types
-import Graphics.Rendering.OpenGL.Raw.Types
-import Graphics.Rendering.OpenGL.Raw.EXT.DirectStateAccess
-import Graphics.Rendering.OpenGL.Raw.Core32
-import Foreign.Ptr ( Ptr, FunPtr )
-import Graphics.Rendering.OpenGL.Raw.GetProcAddress ( getExtensionChecked )
-import System.IO.Unsafe ( unsafePerformIO )
-
-#include "HsOpenGLRaw.h"
-
-EXTENSION_ENTRY(dyn_glBindBufferOffset,ptr_glBindBufferOffset,"glBindBufferOffset",glBindBufferOffset,GLenum -> GLuint -> GLuint -> GLintptr -> IO ())
-EXTENSION_ENTRY(dyn_glProgramBufferParametersfv,ptr_glProgramBufferParametersfv,"glProgramBufferParametersfv",glProgramBufferParametersfv,GLenum -> GLuint -> GLuint -> GLsizei -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(dyn_glProgramBufferParametersIiv,ptr_glProgramBufferParametersIiv,"glProgramBufferParametersIiv",glProgramBufferParametersIiv,GLenum -> GLuint -> GLuint -> GLsizei -> Ptr GLint -> IO ())
-EXTENSION_ENTRY(dyn_glProgramBufferParametersIuiv,ptr_glProgramBufferParametersIuiv,"glProgramBufferParametersIuiv",glProgramBufferParametersIuiv,GLenum -> GLuint -> GLuint -> GLsizei -> Ptr GLuint -> IO ())
-
-gl_MAX_PROGRAM_PARAMETER_BUFFER_BINDINGS :: GLenum
-gl_MAX_PROGRAM_PARAMETER_BUFFER_BINDINGS = 0x8DA0
-
-gl_MAX_PROGRAM_PARAMETER_BUFFER_SIZE :: GLenum
-gl_MAX_PROGRAM_PARAMETER_BUFFER_SIZE = 0x8DA1
-
-gl_VERTEX_PROGRAM_PARAMETER_BUFFER :: GLenum
-gl_VERTEX_PROGRAM_PARAMETER_BUFFER = 0x8DA2
-
-gl_GEOMETRY_PROGRAM_PARAMETER_BUFFER :: GLenum
-gl_GEOMETRY_PROGRAM_PARAMETER_BUFFER = 0x8DA3
-
-gl_FRAGMENT_PROGRAM_PARAMETER_BUFFER :: GLenum
-gl_FRAGMENT_PROGRAM_PARAMETER_BUFFER = 0x8DA4
-
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/NV/PathRendering.hs b/src/Graphics/Rendering/OpenGL/Raw/NV/PathRendering.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/NV/PathRendering.hs
+++ /dev/null
@@ -1,682 +0,0 @@
-{-# LANGUAGE CPP #-}
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.NV.PathRendering
--- Copyright   :  (c) Sven Panne 2013
--- License     :  BSD3
---
--- Maintainer  :  Sven Panne <svenpanne@gmail.com>
--- 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.C.Types
-import Graphics.Rendering.OpenGL.Raw.Types
-import Foreign.Ptr ( Ptr, FunPtr )
-import Graphics.Rendering.OpenGL.Raw.GetProcAddress ( getExtensionChecked )
-import System.IO.Unsafe ( unsafePerformIO )
-
-#include "HsOpenGLRaw.h"
-
-EXTENSION_ENTRY(dyn_glPathCommandsNV,ptr_glPathCommandsNV,"glPathCommandsNV",glPathCommandsNV,GLuint -> GLsizei -> Ptr GLubyte -> GLsizei -> GLenum -> Ptr GLubyte -> IO ())
-EXTENSION_ENTRY(dyn_glPathCoordsNV,ptr_glPathCoordsNV,"glPathCoordsNV",glPathCoordsNV,GLuint -> GLsizei -> GLenum -> Ptr GLubyte -> IO ())
-EXTENSION_ENTRY(dyn_glPathSubCommandsNV,ptr_glPathSubCommandsNV,"glPathSubCommandsNV",glPathSubCommandsNV,GLuint -> GLsizei -> GLsizei -> GLsizei -> Ptr GLubyte -> GLsizei -> GLenum -> Ptr GLubyte -> IO ())
-EXTENSION_ENTRY(dyn_glPathSubCoordsNV,ptr_glPathSubCoordsNV,"glPathSubCoordsNV",glPathSubCoordsNV,GLuint -> GLsizei -> GLsizei -> GLenum -> Ptr GLubyte -> IO ())
-EXTENSION_ENTRY(dyn_glPathStringNV,ptr_glPathStringNV,"glPathStringNV",glPathStringNV,GLuint -> GLenum -> GLsizei -> Ptr GLubyte -> IO ())
-EXTENSION_ENTRY(dyn_glPathGlyphsNV,ptr_glPathGlyphsNV,"glPathGlyphsNV",glPathGlyphsNV,GLuint -> GLenum -> Ptr GLubyte -> GLbitfield -> GLsizei -> GLenum -> Ptr GLubyte -> GLenum -> GLuint -> GLfloat -> IO ())
-EXTENSION_ENTRY(dyn_glPathGlyphRangeNV,ptr_glPathGlyphRangeNV,"glPathGlyphRangeNV",glPathGlyphRangeNV,GLuint -> GLenum -> Ptr GLubyte -> GLbitfield -> GLuint -> GLsizei -> GLenum -> GLuint -> GLfloat -> IO ())
-EXTENSION_ENTRY(dyn_glWeightPathsNV,ptr_glWeightPathsNV,"glWeightPathsNV",glWeightPathsNV,GLuint -> GLsizei -> Ptr GLubyte -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(dyn_glCopyPathNV,ptr_glCopyPathNV,"glCopyPathNV",glCopyPathNV,GLuint -> GLuint -> IO ())
-EXTENSION_ENTRY(dyn_glInterpolatePathsNV,ptr_glInterpolatePathsNV,"glInterpolatePathsNV",glInterpolatePathsNV,GLuint -> GLuint -> GLuint -> GLfloat -> IO ())
-EXTENSION_ENTRY(dyn_glTransformPathNV,ptr_glTransformPathNV,"glTransformPathNV",glTransformPathNV,GLuint -> GLuint -> GLenum -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(dyn_glPathParameterivNV,ptr_glPathParameterivNV,"glPathParameterivNV",glPathParameterivNV,GLuint -> GLenum -> Ptr GLint -> IO ())
-EXTENSION_ENTRY(dyn_glPathParameteriNV,ptr_glPathParameteriNV,"glPathParameteriNV",glPathParameteriNV,GLuint -> GLenum -> GLint -> IO ())
-EXTENSION_ENTRY(dyn_glPathParameterfvNV,ptr_glPathParameterfvNV,"glPathParameterfvNV",glPathParameterfvNV,GLuint -> GLenum -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(dyn_glPathParameterfNV,ptr_glPathParameterfNV,"glPathParameterfNV",glPathParameterfNV,GLuint -> GLenum -> GLfloat -> IO ())
-EXTENSION_ENTRY(dyn_glPathDashArrayNV,ptr_glPathDashArrayNV,"glPathDashArrayNV",glPathDashArrayNV,GLuint -> GLsizei -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(dyn_glGenPathsNV,ptr_glGenPathsNV,"glGenPathsNV",glGenPathsNV,GLsizei -> IO GLuint)
-EXTENSION_ENTRY(dyn_glDeletePathsNV,ptr_glDeletePathsNV,"glDeletePathsNV",glDeletePathsNV,GLuint -> GLsizei -> IO ())
-EXTENSION_ENTRY(dyn_glIsPathNV,ptr_glIsPathNV,"glIsPathNV",glIsPathNV,GLuint -> IO GLboolean)
-EXTENSION_ENTRY(dyn_glPathStencilFuncNV,ptr_glPathStencilFuncNV,"glPathStencilFuncNV",glPathStencilFuncNV,GLenum -> GLint -> GLuint -> IO ())
-EXTENSION_ENTRY(dyn_glPathStencilDepthOffsetNV,ptr_glPathStencilDepthOffsetNV,"glPathStencilDepthOffsetNV",glPathStencilDepthOffsetNV,GLfloat -> GLfloat -> IO ())
-EXTENSION_ENTRY(dyn_glStencilFillPathNV,ptr_glStencilFillPathNV,"glStencilFillPathNV",glStencilFillPathNV,GLuint -> GLenum -> GLuint -> IO ())
-EXTENSION_ENTRY(dyn_glStencilStrokePathNV,ptr_glStencilStrokePathNV,"glStencilStrokePathNV",glStencilStrokePathNV,GLuint -> GLint -> GLuint -> IO ())
-EXTENSION_ENTRY(dyn_glStencilFillPathInstancedNV,ptr_glStencilFillPathInstancedNV,"glStencilFillPathInstancedNV",glStencilFillPathInstancedNV,GLsizei -> GLenum -> Ptr GLubyte -> GLuint -> GLenum -> GLuint -> GLenum -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(dyn_glStencilStrokePathInstancedNV,ptr_glStencilStrokePathInstancedNV,"glStencilStrokePathInstancedNV",glStencilStrokePathInstancedNV,GLsizei -> GLenum -> Ptr GLubyte -> GLuint -> GLint -> GLuint -> GLenum -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(dyn_glPathCoverDepthFuncNV,ptr_glPathCoverDepthFuncNV,"glPathCoverDepthFuncNV",glPathCoverDepthFuncNV,GLenum -> IO ())
-EXTENSION_ENTRY(dyn_glPathColorGenNV,ptr_glPathColorGenNV,"glPathColorGenNV",glPathColorGenNV,GLenum -> GLenum -> GLenum -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(dyn_glPathTexGenNV,ptr_glPathTexGenNV,"glPathTexGenNV",glPathTexGenNV,GLenum -> GLenum -> GLint -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(dyn_glPathFogGenNV,ptr_glPathFogGenNV,"glPathFogGenNV",glPathFogGenNV,GLenum -> IO ())
-EXTENSION_ENTRY(dyn_glCoverFillPathNV,ptr_glCoverFillPathNV,"glCoverFillPathNV",glCoverFillPathNV,GLuint -> GLenum -> IO ())
-EXTENSION_ENTRY(dyn_glCoverStrokePathNV,ptr_glCoverStrokePathNV,"glCoverStrokePathNV",glCoverStrokePathNV,GLuint -> GLenum -> IO ())
-EXTENSION_ENTRY(dyn_glCoverFillPathInstancedNV,ptr_glCoverFillPathInstancedNV,"glCoverFillPathInstancedNV",glCoverFillPathInstancedNV,GLsizei -> GLenum -> Ptr GLuint -> GLuint -> GLenum -> GLenum -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(dyn_glCoverStrokePathInstancedNV,ptr_glCoverStrokePathInstancedNV,"glCoverStrokePathInstancedNV",glCoverStrokePathInstancedNV,GLsizei -> GLenum -> Ptr GLubyte -> GLuint -> GLenum -> GLenum -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(dyn_glGetPathParameterivNV,ptr_glGetPathParameterivNV,"glGetPathParameterivNV",glGetPathParameterivNV,GLuint -> GLenum -> Ptr GLint -> IO ())
-EXTENSION_ENTRY(dyn_glGetPathParameterfvNV,ptr_glGetPathParameterfvNV,"glGetPathParameterfvNV",glGetPathParameterfvNV,GLuint -> GLenum -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(dyn_glGetPathCommandsNV,ptr_glGetPathCommandsNV,"glGetPathCommandsNV",glGetPathCommandsNV,GLuint -> Ptr GLubyte -> IO ())
-EXTENSION_ENTRY(dyn_glGetPathCoordsNV,ptr_glGetPathCoordsNV,"glGetPathCoordsNV",glGetPathCoordsNV,GLuint -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(dyn_glGetPathDashArrayNV,ptr_glGetPathDashArrayNV,"glGetPathDashArrayNV",glGetPathDashArrayNV,GLuint -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(dyn_glGetPathMetricsNV,ptr_glGetPathMetricsNV,"glGetPathMetricsNV",glGetPathMetricsNV,GLbitfield -> GLsizei -> GLenum -> Ptr GLuint -> GLuint -> GLsizei -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(dyn_glGetPathMetricRangeNV,ptr_glGetPathMetricRangeNV,"glGetPathMetricRangeNV",glGetPathMetricRangeNV,GLbitfield -> GLuint -> GLsizei -> GLsizei -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(dyn_glGetPathSpacingNV,ptr_glGetPathSpacingNV,"glGetPathSpacingNV",glGetPathSpacingNV,GLenum -> GLsizei -> GLenum -> Ptr GLubyte -> GLuint -> GLfloat -> GLfloat -> GLenum -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(dyn_glGetPathColorGenivNV,ptr_glGetPathColorGenivNV,"glGetPathColorGenivNV",glGetPathColorGenivNV,GLenum -> GLenum -> Ptr GLint -> IO ())
-EXTENSION_ENTRY(dyn_glGetPathColorGenfvNV,ptr_glGetPathColorGenfvNV,"glGetPathColorGenfvNV",glGetPathColorGenfvNV,GLenum -> GLenum -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(dyn_glGetPathTexGenivNV,ptr_glGetPathTexGenivNV,"glGetPathTexGenivNV",glGetPathTexGenivNV,GLenum -> GLenum -> Ptr GLint -> IO ())
-EXTENSION_ENTRY(dyn_glGetPathTexGenfvNV,ptr_glGetPathTexGenfvNV,"glGetPathTexGenfvNV",glGetPathTexGenfvNV,GLenum -> GLenum -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(dyn_glIsPointInFillPathNV,ptr_glIsPointInFillPathNV,"glIsPointInFillPathNV",glIsPointInFillPathNV,GLuint -> GLuint -> GLfloat -> GLfloat -> IO GLboolean)
-EXTENSION_ENTRY(dyn_glIsPointInStrokePathNV,ptr_glIsPointInStrokePathNV,"glIsPointInStrokePathNV",glIsPointInStrokePathNV,GLuint -> GLfloat -> GLfloat -> IO GLboolean)
-EXTENSION_ENTRY(dyn_glGetPathLengthNV,ptr_glGetPathLengthNV,"glGetPathLengthNV",glGetPathLengthNV,GLuint -> GLsizei -> GLsizei -> IO GLfloat)
-EXTENSION_ENTRY(dyn_glPointAlongPathNV,ptr_glPointAlongPathNV,"glPointAlongPathNV",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/PathRenderingCompatibility.hs b/src/Graphics/Rendering/OpenGL/Raw/NV/PathRenderingCompatibility.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/NV/PathRenderingCompatibility.hs
@@ -0,0 +1,249 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.NV.PathRenderingCompatibility
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/NV/path_rendering_compatibility.txt NV_path_rendering_compatibility> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.NV.PathRenderingCompatibility (
+  -- * Enums
+  gl_2_BYTES_NV,
+  gl_3_BYTES_NV,
+  gl_4_BYTES_NV,
+  gl_ACCUM_ADJACENT_PAIRS_NV,
+  gl_ADJACENT_PAIRS_NV,
+  gl_AFFINE_2D_NV,
+  gl_AFFINE_3D_NV,
+  gl_ARC_TO_NV,
+  gl_BEVEL_NV,
+  gl_BOLD_BIT_NV,
+  gl_BOUNDING_BOX_NV,
+  gl_BOUNDING_BOX_OF_BOUNDING_BOXES_NV,
+  gl_CIRCULAR_CCW_ARC_TO_NV,
+  gl_CIRCULAR_CW_ARC_TO_NV,
+  gl_CIRCULAR_TANGENT_ARC_TO_NV,
+  gl_CLOSE_PATH_NV,
+  gl_CONIC_CURVE_TO_NV,
+  gl_CONSTANT_NV,
+  gl_CONVEX_HULL_NV,
+  gl_COUNT_DOWN_NV,
+  gl_COUNT_UP_NV,
+  gl_CUBIC_CURVE_TO_NV,
+  gl_DUP_FIRST_CUBIC_CURVE_TO_NV,
+  gl_DUP_LAST_CUBIC_CURVE_TO_NV,
+  gl_EYE_LINEAR_NV,
+  gl_FILE_NAME_NV,
+  gl_FIRST_TO_REST_NV,
+  gl_FONT_ASCENDER_BIT_NV,
+  gl_FONT_DESCENDER_BIT_NV,
+  gl_FONT_GLYPHS_AVAILABLE_NV,
+  gl_FONT_HAS_KERNING_BIT_NV,
+  gl_FONT_HEIGHT_BIT_NV,
+  gl_FONT_MAX_ADVANCE_HEIGHT_BIT_NV,
+  gl_FONT_MAX_ADVANCE_WIDTH_BIT_NV,
+  gl_FONT_NUM_GLYPH_INDICES_BIT_NV,
+  gl_FONT_TARGET_UNAVAILABLE_NV,
+  gl_FONT_UNAVAILABLE_NV,
+  gl_FONT_UNDERLINE_POSITION_BIT_NV,
+  gl_FONT_UNDERLINE_THICKNESS_BIT_NV,
+  gl_FONT_UNINTELLIGIBLE_NV,
+  gl_FONT_UNITS_PER_EM_BIT_NV,
+  gl_FONT_X_MAX_BOUNDS_BIT_NV,
+  gl_FONT_X_MIN_BOUNDS_BIT_NV,
+  gl_FONT_Y_MAX_BOUNDS_BIT_NV,
+  gl_FONT_Y_MIN_BOUNDS_BIT_NV,
+  gl_FRAGMENT_INPUT_NV,
+  gl_GLYPH_HAS_KERNING_BIT_NV,
+  gl_GLYPH_HEIGHT_BIT_NV,
+  gl_GLYPH_HORIZONTAL_BEARING_ADVANCE_BIT_NV,
+  gl_GLYPH_HORIZONTAL_BEARING_X_BIT_NV,
+  gl_GLYPH_HORIZONTAL_BEARING_Y_BIT_NV,
+  gl_GLYPH_VERTICAL_BEARING_ADVANCE_BIT_NV,
+  gl_GLYPH_VERTICAL_BEARING_X_BIT_NV,
+  gl_GLYPH_VERTICAL_BEARING_Y_BIT_NV,
+  gl_GLYPH_WIDTH_BIT_NV,
+  gl_HORIZONTAL_LINE_TO_NV,
+  gl_ITALIC_BIT_NV,
+  gl_LARGE_CCW_ARC_TO_NV,
+  gl_LARGE_CW_ARC_TO_NV,
+  gl_LINE_TO_NV,
+  gl_MITER_REVERT_NV,
+  gl_MITER_TRUNCATE_NV,
+  gl_MOVE_TO_CONTINUES_NV,
+  gl_MOVE_TO_NV,
+  gl_MOVE_TO_RESETS_NV,
+  gl_OBJECT_LINEAR_NV,
+  gl_PATH_CLIENT_LENGTH_NV,
+  gl_PATH_COMMAND_COUNT_NV,
+  gl_PATH_COMPUTED_LENGTH_NV,
+  gl_PATH_COORD_COUNT_NV,
+  gl_PATH_COVER_DEPTH_FUNC_NV,
+  gl_PATH_DASH_ARRAY_COUNT_NV,
+  gl_PATH_DASH_CAPS_NV,
+  gl_PATH_DASH_OFFSET_NV,
+  gl_PATH_DASH_OFFSET_RESET_NV,
+  gl_PATH_END_CAPS_NV,
+  gl_PATH_ERROR_POSITION_NV,
+  gl_PATH_FILL_BOUNDING_BOX_NV,
+  gl_PATH_FILL_COVER_MODE_NV,
+  gl_PATH_FILL_MASK_NV,
+  gl_PATH_FILL_MODE_NV,
+  gl_PATH_FOG_GEN_MODE_NV,
+  gl_PATH_FORMAT_PS_NV,
+  gl_PATH_FORMAT_SVG_NV,
+  gl_PATH_GEN_COEFF_NV,
+  gl_PATH_GEN_COLOR_FORMAT_NV,
+  gl_PATH_GEN_COMPONENTS_NV,
+  gl_PATH_GEN_MODE_NV,
+  gl_PATH_INITIAL_DASH_CAP_NV,
+  gl_PATH_INITIAL_END_CAP_NV,
+  gl_PATH_JOIN_STYLE_NV,
+  gl_PATH_MAX_MODELVIEW_STACK_DEPTH_NV,
+  gl_PATH_MAX_PROJECTION_STACK_DEPTH_NV,
+  gl_PATH_MITER_LIMIT_NV,
+  gl_PATH_MODELVIEW_MATRIX_NV,
+  gl_PATH_MODELVIEW_NV,
+  gl_PATH_MODELVIEW_STACK_DEPTH_NV,
+  gl_PATH_OBJECT_BOUNDING_BOX_NV,
+  gl_PATH_PROJECTION_MATRIX_NV,
+  gl_PATH_PROJECTION_NV,
+  gl_PATH_PROJECTION_STACK_DEPTH_NV,
+  gl_PATH_STENCIL_DEPTH_OFFSET_FACTOR_NV,
+  gl_PATH_STENCIL_DEPTH_OFFSET_UNITS_NV,
+  gl_PATH_STENCIL_FUNC_NV,
+  gl_PATH_STENCIL_REF_NV,
+  gl_PATH_STENCIL_VALUE_MASK_NV,
+  gl_PATH_STROKE_BOUNDING_BOX_NV,
+  gl_PATH_STROKE_COVER_MODE_NV,
+  gl_PATH_STROKE_MASK_NV,
+  gl_PATH_STROKE_WIDTH_NV,
+  gl_PATH_TERMINAL_DASH_CAP_NV,
+  gl_PATH_TERMINAL_END_CAP_NV,
+  gl_PATH_TRANSPOSE_MODELVIEW_MATRIX_NV,
+  gl_PATH_TRANSPOSE_PROJECTION_MATRIX_NV,
+  gl_PRIMARY_COLOR,
+  gl_PRIMARY_COLOR_NV,
+  gl_QUADRATIC_CURVE_TO_NV,
+  gl_RECT_NV,
+  gl_RELATIVE_ARC_TO_NV,
+  gl_RELATIVE_CONIC_CURVE_TO_NV,
+  gl_RELATIVE_CUBIC_CURVE_TO_NV,
+  gl_RELATIVE_HORIZONTAL_LINE_TO_NV,
+  gl_RELATIVE_LARGE_CCW_ARC_TO_NV,
+  gl_RELATIVE_LARGE_CW_ARC_TO_NV,
+  gl_RELATIVE_LINE_TO_NV,
+  gl_RELATIVE_MOVE_TO_NV,
+  gl_RELATIVE_QUADRATIC_CURVE_TO_NV,
+  gl_RELATIVE_RECT_NV,
+  gl_RELATIVE_ROUNDED_RECT2_NV,
+  gl_RELATIVE_ROUNDED_RECT4_NV,
+  gl_RELATIVE_ROUNDED_RECT8_NV,
+  gl_RELATIVE_ROUNDED_RECT_NV,
+  gl_RELATIVE_SMALL_CCW_ARC_TO_NV,
+  gl_RELATIVE_SMALL_CW_ARC_TO_NV,
+  gl_RELATIVE_SMOOTH_CUBIC_CURVE_TO_NV,
+  gl_RELATIVE_SMOOTH_QUADRATIC_CURVE_TO_NV,
+  gl_RELATIVE_VERTICAL_LINE_TO_NV,
+  gl_RESTART_PATH_NV,
+  gl_ROUNDED_RECT2_NV,
+  gl_ROUNDED_RECT4_NV,
+  gl_ROUNDED_RECT8_NV,
+  gl_ROUNDED_RECT_NV,
+  gl_ROUND_NV,
+  gl_SECONDARY_COLOR_NV,
+  gl_SKIP_MISSING_GLYPH_NV,
+  gl_SMALL_CCW_ARC_TO_NV,
+  gl_SMALL_CW_ARC_TO_NV,
+  gl_SMOOTH_CUBIC_CURVE_TO_NV,
+  gl_SMOOTH_QUADRATIC_CURVE_TO_NV,
+  gl_SQUARE_NV,
+  gl_STANDARD_FONT_FORMAT_NV,
+  gl_STANDARD_FONT_NAME_NV,
+  gl_SYSTEM_FONT_NAME_NV,
+  gl_TRANSLATE_2D_NV,
+  gl_TRANSLATE_3D_NV,
+  gl_TRANSLATE_X_NV,
+  gl_TRANSLATE_Y_NV,
+  gl_TRANSPOSE_AFFINE_2D_NV,
+  gl_TRANSPOSE_AFFINE_3D_NV,
+  gl_TRIANGULAR_NV,
+  gl_USE_MISSING_GLYPH_NV,
+  gl_UTF16_NV,
+  gl_UTF8_NV,
+  gl_VERTICAL_LINE_TO_NV,
+  -- * Functions
+  glCopyPathNV,
+  glCoverFillPathInstancedNV,
+  glCoverFillPathNV,
+  glCoverStrokePathInstancedNV,
+  glCoverStrokePathNV,
+  glDeletePathsNV,
+  glGenPathsNV,
+  glGetPathColorGenfvNV,
+  glGetPathColorGenivNV,
+  glGetPathCommandsNV,
+  glGetPathCoordsNV,
+  glGetPathDashArrayNV,
+  glGetPathLengthNV,
+  glGetPathMetricRangeNV,
+  glGetPathMetricsNV,
+  glGetPathParameterfvNV,
+  glGetPathParameterivNV,
+  glGetPathSpacingNV,
+  glGetPathTexGenfvNV,
+  glGetPathTexGenivNV,
+  glGetProgramResourcefvNV,
+  glInterpolatePathsNV,
+  glIsPathNV,
+  glIsPointInFillPathNV,
+  glIsPointInStrokePathNV,
+  glMatrixLoad3x2fNV,
+  glMatrixLoad3x3fNV,
+  glMatrixLoadTranspose3x3fNV,
+  glMatrixMult3x2fNV,
+  glMatrixMult3x3fNV,
+  glMatrixMultTranspose3x3fNV,
+  glPathColorGenNV,
+  glPathCommandsNV,
+  glPathCoordsNV,
+  glPathCoverDepthFuncNV,
+  glPathDashArrayNV,
+  glPathFogGenNV,
+  glPathGlyphIndexArrayNV,
+  glPathGlyphIndexRangeNV,
+  glPathGlyphRangeNV,
+  glPathGlyphsNV,
+  glPathMemoryGlyphIndexArrayNV,
+  glPathParameterfNV,
+  glPathParameterfvNV,
+  glPathParameteriNV,
+  glPathParameterivNV,
+  glPathStencilDepthOffsetNV,
+  glPathStencilFuncNV,
+  glPathStringNV,
+  glPathSubCommandsNV,
+  glPathSubCoordsNV,
+  glPathTexGenNV,
+  glPointAlongPathNV,
+  glProgramPathFragmentInputGenNV,
+  glStencilFillPathInstancedNV,
+  glStencilFillPathNV,
+  glStencilStrokePathInstancedNV,
+  glStencilStrokePathNV,
+  glStencilThenCoverFillPathInstancedNV,
+  glStencilThenCoverFillPathNV,
+  glStencilThenCoverStrokePathInstancedNV,
+  glStencilThenCoverStrokePathNV,
+  glTransformPathNV,
+  glWeightPathsNV
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/NV/PathRenderingCore.hs b/src/Graphics/Rendering/OpenGL/Raw/NV/PathRenderingCore.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/NV/PathRenderingCore.hs
@@ -0,0 +1,231 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.NV.PathRenderingCore
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/NV/path_rendering_core.txt NV_path_rendering_core> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.NV.PathRenderingCore (
+  -- * Enums
+  gl_ACCUM_ADJACENT_PAIRS_NV,
+  gl_ADJACENT_PAIRS_NV,
+  gl_AFFINE_2D_NV,
+  gl_AFFINE_3D_NV,
+  gl_ARC_TO_NV,
+  gl_BEVEL_NV,
+  gl_BOLD_BIT_NV,
+  gl_BOUNDING_BOX_NV,
+  gl_BOUNDING_BOX_OF_BOUNDING_BOXES_NV,
+  gl_CIRCULAR_CCW_ARC_TO_NV,
+  gl_CIRCULAR_CW_ARC_TO_NV,
+  gl_CIRCULAR_TANGENT_ARC_TO_NV,
+  gl_CLOSE_PATH_NV,
+  gl_CONIC_CURVE_TO_NV,
+  gl_CONVEX_HULL_NV,
+  gl_COUNT_DOWN_NV,
+  gl_COUNT_UP_NV,
+  gl_CUBIC_CURVE_TO_NV,
+  gl_DUP_FIRST_CUBIC_CURVE_TO_NV,
+  gl_DUP_LAST_CUBIC_CURVE_TO_NV,
+  gl_FILE_NAME_NV,
+  gl_FIRST_TO_REST_NV,
+  gl_FONT_ASCENDER_BIT_NV,
+  gl_FONT_DESCENDER_BIT_NV,
+  gl_FONT_GLYPHS_AVAILABLE_NV,
+  gl_FONT_HAS_KERNING_BIT_NV,
+  gl_FONT_HEIGHT_BIT_NV,
+  gl_FONT_MAX_ADVANCE_HEIGHT_BIT_NV,
+  gl_FONT_MAX_ADVANCE_WIDTH_BIT_NV,
+  gl_FONT_NUM_GLYPH_INDICES_BIT_NV,
+  gl_FONT_TARGET_UNAVAILABLE_NV,
+  gl_FONT_UNAVAILABLE_NV,
+  gl_FONT_UNDERLINE_POSITION_BIT_NV,
+  gl_FONT_UNDERLINE_THICKNESS_BIT_NV,
+  gl_FONT_UNINTELLIGIBLE_NV,
+  gl_FONT_UNITS_PER_EM_BIT_NV,
+  gl_FONT_X_MAX_BOUNDS_BIT_NV,
+  gl_FONT_X_MIN_BOUNDS_BIT_NV,
+  gl_FONT_Y_MAX_BOUNDS_BIT_NV,
+  gl_FONT_Y_MIN_BOUNDS_BIT_NV,
+  gl_FRAGMENT_INPUT_NV,
+  gl_GLYPH_HAS_KERNING_BIT_NV,
+  gl_GLYPH_HEIGHT_BIT_NV,
+  gl_GLYPH_HORIZONTAL_BEARING_ADVANCE_BIT_NV,
+  gl_GLYPH_HORIZONTAL_BEARING_X_BIT_NV,
+  gl_GLYPH_HORIZONTAL_BEARING_Y_BIT_NV,
+  gl_GLYPH_VERTICAL_BEARING_ADVANCE_BIT_NV,
+  gl_GLYPH_VERTICAL_BEARING_X_BIT_NV,
+  gl_GLYPH_VERTICAL_BEARING_Y_BIT_NV,
+  gl_GLYPH_WIDTH_BIT_NV,
+  gl_HORIZONTAL_LINE_TO_NV,
+  gl_ITALIC_BIT_NV,
+  gl_LARGE_CCW_ARC_TO_NV,
+  gl_LARGE_CW_ARC_TO_NV,
+  gl_LINE_TO_NV,
+  gl_MITER_REVERT_NV,
+  gl_MITER_TRUNCATE_NV,
+  gl_MOVE_TO_CONTINUES_NV,
+  gl_MOVE_TO_NV,
+  gl_MOVE_TO_RESETS_NV,
+  gl_PATH_CLIENT_LENGTH_NV,
+  gl_PATH_COMMAND_COUNT_NV,
+  gl_PATH_COMPUTED_LENGTH_NV,
+  gl_PATH_COORD_COUNT_NV,
+  gl_PATH_COVER_DEPTH_FUNC_NV,
+  gl_PATH_DASH_ARRAY_COUNT_NV,
+  gl_PATH_DASH_CAPS_NV,
+  gl_PATH_DASH_OFFSET_NV,
+  gl_PATH_DASH_OFFSET_RESET_NV,
+  gl_PATH_END_CAPS_NV,
+  gl_PATH_ERROR_POSITION_NV,
+  gl_PATH_FILL_BOUNDING_BOX_NV,
+  gl_PATH_FILL_COVER_MODE_NV,
+  gl_PATH_FILL_MASK_NV,
+  gl_PATH_FILL_MODE_NV,
+  gl_PATH_FORMAT_PS_NV,
+  gl_PATH_FORMAT_SVG_NV,
+  gl_PATH_GEN_COEFF_NV,
+  gl_PATH_GEN_COMPONENTS_NV,
+  gl_PATH_GEN_MODE_NV,
+  gl_PATH_INITIAL_DASH_CAP_NV,
+  gl_PATH_INITIAL_END_CAP_NV,
+  gl_PATH_JOIN_STYLE_NV,
+  gl_PATH_MAX_MODELVIEW_STACK_DEPTH_NV,
+  gl_PATH_MAX_PROJECTION_STACK_DEPTH_NV,
+  gl_PATH_MITER_LIMIT_NV,
+  gl_PATH_MODELVIEW_MATRIX_NV,
+  gl_PATH_MODELVIEW_NV,
+  gl_PATH_MODELVIEW_STACK_DEPTH_NV,
+  gl_PATH_OBJECT_BOUNDING_BOX_NV,
+  gl_PATH_PROJECTION_MATRIX_NV,
+  gl_PATH_PROJECTION_NV,
+  gl_PATH_PROJECTION_STACK_DEPTH_NV,
+  gl_PATH_STENCIL_DEPTH_OFFSET_FACTOR_NV,
+  gl_PATH_STENCIL_DEPTH_OFFSET_UNITS_NV,
+  gl_PATH_STENCIL_FUNC_NV,
+  gl_PATH_STENCIL_REF_NV,
+  gl_PATH_STENCIL_VALUE_MASK_NV,
+  gl_PATH_STROKE_BOUNDING_BOX_NV,
+  gl_PATH_STROKE_COVER_MODE_NV,
+  gl_PATH_STROKE_MASK_NV,
+  gl_PATH_STROKE_WIDTH_NV,
+  gl_PATH_TERMINAL_DASH_CAP_NV,
+  gl_PATH_TERMINAL_END_CAP_NV,
+  gl_PATH_TRANSPOSE_MODELVIEW_MATRIX_NV,
+  gl_PATH_TRANSPOSE_PROJECTION_MATRIX_NV,
+  gl_QUADRATIC_CURVE_TO_NV,
+  gl_RECT_NV,
+  gl_RELATIVE_ARC_TO_NV,
+  gl_RELATIVE_CONIC_CURVE_TO_NV,
+  gl_RELATIVE_CUBIC_CURVE_TO_NV,
+  gl_RELATIVE_HORIZONTAL_LINE_TO_NV,
+  gl_RELATIVE_LARGE_CCW_ARC_TO_NV,
+  gl_RELATIVE_LARGE_CW_ARC_TO_NV,
+  gl_RELATIVE_LINE_TO_NV,
+  gl_RELATIVE_MOVE_TO_NV,
+  gl_RELATIVE_QUADRATIC_CURVE_TO_NV,
+  gl_RELATIVE_RECT_NV,
+  gl_RELATIVE_ROUNDED_RECT2_NV,
+  gl_RELATIVE_ROUNDED_RECT4_NV,
+  gl_RELATIVE_ROUNDED_RECT8_NV,
+  gl_RELATIVE_ROUNDED_RECT_NV,
+  gl_RELATIVE_SMALL_CCW_ARC_TO_NV,
+  gl_RELATIVE_SMALL_CW_ARC_TO_NV,
+  gl_RELATIVE_SMOOTH_CUBIC_CURVE_TO_NV,
+  gl_RELATIVE_SMOOTH_QUADRATIC_CURVE_TO_NV,
+  gl_RELATIVE_VERTICAL_LINE_TO_NV,
+  gl_RESTART_PATH_NV,
+  gl_ROUNDED_RECT2_NV,
+  gl_ROUNDED_RECT4_NV,
+  gl_ROUNDED_RECT8_NV,
+  gl_ROUNDED_RECT_NV,
+  gl_ROUND_NV,
+  gl_SKIP_MISSING_GLYPH_NV,
+  gl_SMALL_CCW_ARC_TO_NV,
+  gl_SMALL_CW_ARC_TO_NV,
+  gl_SMOOTH_CUBIC_CURVE_TO_NV,
+  gl_SMOOTH_QUADRATIC_CURVE_TO_NV,
+  gl_SQUARE_NV,
+  gl_STANDARD_FONT_FORMAT_NV,
+  gl_STANDARD_FONT_NAME_NV,
+  gl_SYSTEM_FONT_NAME_NV,
+  gl_TRANSLATE_2D_NV,
+  gl_TRANSLATE_3D_NV,
+  gl_TRANSLATE_X_NV,
+  gl_TRANSLATE_Y_NV,
+  gl_TRANSPOSE_AFFINE_2D_NV,
+  gl_TRANSPOSE_AFFINE_3D_NV,
+  gl_TRIANGULAR_NV,
+  gl_USE_MISSING_GLYPH_NV,
+  gl_UTF16_NV,
+  gl_UTF8_NV,
+  gl_VERTICAL_LINE_TO_NV,
+  -- * Functions
+  glCopyPathNV,
+  glCoverFillPathInstancedNV,
+  glCoverFillPathNV,
+  glCoverStrokePathInstancedNV,
+  glCoverStrokePathNV,
+  glDeletePathsNV,
+  glGenPathsNV,
+  glGetPathCommandsNV,
+  glGetPathCoordsNV,
+  glGetPathDashArrayNV,
+  glGetPathLengthNV,
+  glGetPathMetricRangeNV,
+  glGetPathMetricsNV,
+  glGetPathParameterfvNV,
+  glGetPathParameterivNV,
+  glGetPathSpacingNV,
+  glGetProgramResourcefvNV,
+  glInterpolatePathsNV,
+  glIsPathNV,
+  glIsPointInFillPathNV,
+  glIsPointInStrokePathNV,
+  glMatrixLoad3x2fNV,
+  glMatrixLoad3x3fNV,
+  glMatrixLoadTranspose3x3fNV,
+  glMatrixMult3x2fNV,
+  glMatrixMult3x3fNV,
+  glMatrixMultTranspose3x3fNV,
+  glPathCommandsNV,
+  glPathCoordsNV,
+  glPathCoverDepthFuncNV,
+  glPathDashArrayNV,
+  glPathGlyphIndexArrayNV,
+  glPathGlyphIndexRangeNV,
+  glPathGlyphRangeNV,
+  glPathGlyphsNV,
+  glPathMemoryGlyphIndexArrayNV,
+  glPathParameterfNV,
+  glPathParameterfvNV,
+  glPathParameteriNV,
+  glPathParameterivNV,
+  glPathStencilDepthOffsetNV,
+  glPathStencilFuncNV,
+  glPathStringNV,
+  glPathSubCommandsNV,
+  glPathSubCoordsNV,
+  glPointAlongPathNV,
+  glProgramPathFragmentInputGenNV,
+  glStencilFillPathInstancedNV,
+  glStencilFillPathNV,
+  glStencilStrokePathInstancedNV,
+  glStencilStrokePathNV,
+  glStencilThenCoverFillPathInstancedNV,
+  glStencilThenCoverFillPathNV,
+  glStencilThenCoverStrokePathInstancedNV,
+  glStencilThenCoverStrokePathNV,
+  glTransformPathNV,
+  glWeightPathsNV
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/NV/PathRenderingSharedEdge.hs b/src/Graphics/Rendering/OpenGL/Raw/NV/PathRenderingSharedEdge.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/NV/PathRenderingSharedEdge.hs
@@ -0,0 +1,20 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.NV.PathRenderingSharedEdge
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/NV/path_rendering_shared_edge.txt NV_path_rendering_shared_edge> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.NV.PathRenderingSharedEdge (
+  -- * Enums
+  gl_SHARED_EDGE_NV
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/NV/PixelDataRange.hs b/src/Graphics/Rendering/OpenGL/Raw/NV/PixelDataRange.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/NV/PixelDataRange.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/NV/PixelDataRange.hs
@@ -1,44 +1,29 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.NV.PixelDataRange
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All tokens from the NV_pixel_data_range extension, see
--- <http://www.opengl.org/registry/specs/NV/pixel_data_range.txt>.
+-- The <https://www.opengl.org/registry/specs/NV/pixel_data_range.txt NV_pixel_data_range> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.NV.PixelDataRange (
-   -- * Tokens
-   gl_WRITE_PIXEL_DATA_RANGE,
-   gl_READ_PIXEL_DATA_RANGE,
-   gl_WRITE_PIXEL_DATA_RANGE_LENGTH,
-   gl_READ_PIXEL_DATA_RANGE_LENGTH,
-   gl_WRITE_PIXEL_DATA_RANGE_POINTER,
-   gl_READ_PIXEL_DATA_RANGE_POINTER
+  -- * Enums
+  gl_READ_PIXEL_DATA_RANGE_LENGTH_NV,
+  gl_READ_PIXEL_DATA_RANGE_NV,
+  gl_READ_PIXEL_DATA_RANGE_POINTER_NV,
+  gl_WRITE_PIXEL_DATA_RANGE_LENGTH_NV,
+  gl_WRITE_PIXEL_DATA_RANGE_NV,
+  gl_WRITE_PIXEL_DATA_RANGE_POINTER_NV,
+  -- * Functions
+  glFlushPixelDataRangeNV,
+  glPixelDataRangeNV
 ) where
 
-import Graphics.Rendering.OpenGL.Raw.Core32
-
-gl_WRITE_PIXEL_DATA_RANGE :: GLenum
-gl_WRITE_PIXEL_DATA_RANGE = 0x8878
-
-gl_READ_PIXEL_DATA_RANGE :: GLenum
-gl_READ_PIXEL_DATA_RANGE = 0x8879
-
-gl_WRITE_PIXEL_DATA_RANGE_LENGTH :: GLenum
-gl_WRITE_PIXEL_DATA_RANGE_LENGTH = 0x887A
-
-gl_READ_PIXEL_DATA_RANGE_LENGTH :: GLenum
-gl_READ_PIXEL_DATA_RANGE_LENGTH = 0x887B
-
-gl_WRITE_PIXEL_DATA_RANGE_POINTER :: GLenum
-gl_WRITE_PIXEL_DATA_RANGE_POINTER = 0x887C
-
-gl_READ_PIXEL_DATA_RANGE_POINTER :: GLenum
-gl_READ_PIXEL_DATA_RANGE_POINTER = 0x887D
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/NV/PointSprite.hs b/src/Graphics/Rendering/OpenGL/Raw/NV/PointSprite.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/NV/PointSprite.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/NV/PointSprite.hs
@@ -1,28 +1,26 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.NV.PointSprite
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All tokens from the NV_point_sprite, see
--- <http://www.opengl.org/registry/specs/NV/point_sprite.txt>.
+-- The <https://www.opengl.org/registry/specs/NV/point_sprite.txt NV_point_sprite> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.NV.PointSprite (
-   -- * Tokens
-   gl_POINT_SPRITE,
-   gl_COORD_REPLACE,
-   gl_POINT_SPRITE_R_MODE
-
+  -- * Enums
+  gl_COORD_REPLACE_NV,
+  gl_POINT_SPRITE_NV,
+  gl_POINT_SPRITE_R_MODE_NV,
+  -- * Functions
+  glPointParameteriNV,
+  glPointParameterivNV
 ) where
 
-import Graphics.Rendering.OpenGL.Raw.ARB.Compatibility
-import Graphics.Rendering.OpenGL.Raw.Core32
-
-gl_POINT_SPRITE_R_MODE :: GLenum
-gl_POINT_SPRITE_R_MODE = 0x8863
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
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
@@ -1,65 +1,33 @@
-{-# LANGUAGE CPP #-}
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.NV.PresentVideo
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All raw functions and tokens from the NV_present_video extension, see
--- <http://www.opengl.org/registry/specs/NV/present_video.txt>.
+-- The <https://www.opengl.org/registry/specs/NV/present_video.txt NV_present_video> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.NV.PresentVideo (
-   -- * Functions
-   glPresentFrameKeyed,
-   glPresentFrameDualFill,
-   glGetVideoiv,
-   glGetVideouiv,
-   glGetVideoi64v,
-   glGetVideoui64v,
-   -- * Tokens
-   gl_FRAME,
-   gl_FIELDS,
-   gl_CURRENT_TIME,
-   gl_NUM_FILL_STREAMS,
-   gl_PRESENT_TIME,
-   gl_PRESENT_DURATION
+  -- * Enums
+  gl_CURRENT_TIME_NV,
+  gl_FIELDS_NV,
+  gl_FRAME_NV,
+  gl_NUM_FILL_STREAMS_NV,
+  gl_PRESENT_DURATION_NV,
+  gl_PRESENT_TIME_NV,
+  -- * Functions
+  glGetVideoi64vNV,
+  glGetVideoivNV,
+  glGetVideoui64vNV,
+  glGetVideouivNV,
+  glPresentFrameDualFillNV,
+  glPresentFrameKeyedNV
 ) where
 
-import Foreign.C.Types
-import Graphics.Rendering.OpenGL.Raw.Core32
-import Foreign.Ptr ( Ptr, FunPtr )
-import Graphics.Rendering.OpenGL.Raw.GetProcAddress ( getExtensionChecked )
-import System.IO.Unsafe ( unsafePerformIO )
-
-#include "HsOpenGLRaw.h"
-
-EXTENSION_ENTRY(dyn_glPresentFrameKeyed,ptr_glPresentFrameKeyed,"glPresentFrameKeyed",glPresentFrameKeyed,GLuint -> GLuint64 -> GLuint -> GLuint -> GLenum -> GLenum -> GLuint -> GLuint -> GLenum -> GLuint -> GLuint -> IO ())
-EXTENSION_ENTRY(dyn_glPresentFrameDualFill,ptr_glPresentFrameDualFill,"glPresentFrameDualFill",glPresentFrameDualFill,GLuint -> GLuint64 -> GLuint -> GLuint -> GLenum -> GLenum -> GLuint -> GLenum -> GLuint -> GLenum -> GLuint -> GLenum -> GLuint -> IO ())
-EXTENSION_ENTRY(dyn_glGetVideoiv,ptr_glGetVideoiv,"glGetVideoiv",glGetVideoiv,GLuint -> GLenum -> Ptr GLint -> IO ())
-EXTENSION_ENTRY(dyn_glGetVideouiv,ptr_glGetVideouiv,"glGetVideouiv",glGetVideouiv,GLuint -> GLenum -> Ptr GLuint -> IO ())
-EXTENSION_ENTRY(dyn_glGetVideoi64v,ptr_glGetVideoi64v,"glGetVideoi64v",glGetVideoi64v,GLuint -> GLenum -> Ptr GLint64 -> IO ())
-EXTENSION_ENTRY(dyn_glGetVideoui64v,ptr_glGetVideoui64v,"glGetVideoui64v",glGetVideoui64v,GLuint -> GLenum -> Ptr GLuint64 -> IO ())
-
-gl_FRAME :: GLenum
-gl_FRAME = 0x8E26
-
-gl_FIELDS :: GLenum
-gl_FIELDS = 0x8E27
-
-gl_CURRENT_TIME :: GLenum
-gl_CURRENT_TIME = 0x8E28
-
-gl_NUM_FILL_STREAMS :: GLenum
-gl_NUM_FILL_STREAMS = 0x8E29
-
-gl_PRESENT_TIME :: GLenum
-gl_PRESENT_TIME = 0x8E2A
-
-gl_PRESENT_DURATION :: GLenum
-gl_PRESENT_DURATION = 0x8E2B
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
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
@@ -1,44 +1,25 @@
-{-# LANGUAGE CPP #-}
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.NV.PrimitiveRestart
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All raw functions and tokens from the NV_primitive_restart extension not
--- already in the OpenGL 3.1 core, see
--- <http://www.opengl.org/registry/specs/NV/primitive_restart.txt>.
--- NOTE: The OpenGL 3.1 core has some functions and tokens with the same names,
--- but with different semantics and values, so we use a suffix in those cases.
+-- The <https://www.opengl.org/registry/specs/NV/primitive_restart.txt NV_primitive_restart> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.NV.PrimitiveRestart (
-   -- * Functions
-   glPrimitiveRestart,
-   glPrimitiveRestartIndexNV,
-   -- * Tokens
-   gl_PRIMITIVE_RESTART_NV,
-   gl_PRIMITIVE_RESTART_INDEX_NV
+  -- * Enums
+  gl_PRIMITIVE_RESTART_INDEX_NV,
+  gl_PRIMITIVE_RESTART_NV,
+  -- * Functions
+  glPrimitiveRestartIndexNV,
+  glPrimitiveRestartNV
 ) where
 
-import Foreign.C.Types
-import Graphics.Rendering.OpenGL.Raw.Types
-import Foreign.Ptr ( FunPtr )
-import Graphics.Rendering.OpenGL.Raw.GetProcAddress ( getExtensionChecked )
-import System.IO.Unsafe ( unsafePerformIO )
-
-#include "HsOpenGLRaw.h"
-
-EXTENSION_ENTRY(dyn_glPrimitiveRestart,ptr_glPrimitiveRestart,"glPrimitiveRestart",glPrimitiveRestart, IO ())
-EXTENSION_ENTRY(dyn_glPrimitiveRestartIndexNV,ptr_glPrimitiveRestartIndexNV,"glPrimitiveRestartIndexNV",glPrimitiveRestartIndexNV,GLuint -> IO ())
-
-gl_PRIMITIVE_RESTART_NV :: GLenum
-gl_PRIMITIVE_RESTART_NV = 0x8558
-
-gl_PRIMITIVE_RESTART_INDEX_NV :: GLenum
-gl_PRIMITIVE_RESTART_INDEX_NV = 0x8559
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
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
@@ -1,264 +1,90 @@
-{-# LANGUAGE CPP #-}
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.NV.RegisterCombiners
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All raw functions and tokens from the NV_register_combiners extension not
--- already in the OpenGL 3.1 core, see
--- <http://www.opengl.org/registry/specs/NV/register_combiners.txt>.
+-- The <https://www.opengl.org/registry/specs/NV/register_combiners.txt NV_register_combiners> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.NV.RegisterCombiners (
-   -- * Functions
-   glCombinerParameterfv,
-   glCombinerParameteriv,
-   glCombinerParameterf,
-   glCombinerParameteri,
-   glCombinerInput,
-   glCombinerOutput,
-   glFinalCombinerInput,
-   glGetCombinerInputParameterfv,
-   glGetCombinerInputParameteriv,
-   glGetCombinerOutputParameterfv,
-   glGetCombinerOutputParameteriv,
-   glGetFinalCombinerInputParameterfv,
-   glGetFinalCombinerInputParameteriv,
-   -- * Tokens
-   gl_REGISTER_COMBINERS,
-   gl_COMBINER0,
-   gl_COMBINER1,
-   gl_COMBINER2,
-   gl_COMBINER3,
-   gl_COMBINER4,
-   gl_COMBINER5,
-   gl_COMBINER6,
-   gl_COMBINER7,
-   gl_VARIABLE_A,
-   gl_VARIABLE_B,
-   gl_VARIABLE_C,
-   gl_VARIABLE_D,
-   gl_VARIABLE_E,
-   gl_VARIABLE_F,
-   gl_VARIABLE_G,
-   gl_CONSTANT_COLOR0,
-   gl_CONSTANT_COLOR1,
-   gl_FOG,
-   gl_PRIMARY_COLOR_NV,
-   gl_SECONDARY_COLOR,
-   gl_SPARE0,
-   gl_SPARE1,
-   gl_UNSIGNED_IDENTITY,
-   gl_UNSIGNED_INVERT,
-   gl_EXPAND_NORMAL,
-   gl_EXPAND_NEGATE,
-   gl_HALF_BIAS_NORMAL,
-   gl_HALF_BIAS_NEGATE,
-   gl_SIGNED_IDENTITY,
-   gl_SIGNED_NEGATE,
-   gl_E_TIMES_F,
-   gl_SPARE0_PLUS_SECONDARY_COLOR,
-   gl_SCALE_BY_TWO,
-   gl_SCALE_BY_FOUR,
-   gl_SCALE_BY_ONE_HALF,
-   gl_BIAS_BY_NEGATIVE_ONE_HALF,
-   gl_DISCARD,
-   gl_COMBINER_INPUT,
-   gl_COMBINER_MAPPING,
-   gl_COMBINER_COMPONENT_USAGE,
-   gl_COMBINER_AB_DOT_PRODUCT,
-   gl_COMBINER_CD_DOT_PRODUCT,
-   gl_COMBINER_MUX_SUM,
-   gl_COMBINER_SCALE,
-   gl_COMBINER_BIAS,
-   gl_COMBINER_AB_OUTPUT,
-   gl_COMBINER_CD_OUTPUT,
-   gl_COMBINER_SUM_OUTPUT,
-   gl_NUM_GENERAL_COMBINERS,
-   gl_COLOR_SUM_CLAMP,
-   gl_MAX_GENERAL_COMBINERS
+  -- * Enums
+  gl_BIAS_BY_NEGATIVE_ONE_HALF_NV,
+  gl_COLOR_SUM_CLAMP_NV,
+  gl_COMBINER0_NV,
+  gl_COMBINER1_NV,
+  gl_COMBINER2_NV,
+  gl_COMBINER3_NV,
+  gl_COMBINER4_NV,
+  gl_COMBINER5_NV,
+  gl_COMBINER6_NV,
+  gl_COMBINER7_NV,
+  gl_COMBINER_AB_DOT_PRODUCT_NV,
+  gl_COMBINER_AB_OUTPUT_NV,
+  gl_COMBINER_BIAS_NV,
+  gl_COMBINER_CD_DOT_PRODUCT_NV,
+  gl_COMBINER_CD_OUTPUT_NV,
+  gl_COMBINER_COMPONENT_USAGE_NV,
+  gl_COMBINER_INPUT_NV,
+  gl_COMBINER_MAPPING_NV,
+  gl_COMBINER_MUX_SUM_NV,
+  gl_COMBINER_SCALE_NV,
+  gl_COMBINER_SUM_OUTPUT_NV,
+  gl_CONSTANT_COLOR0_NV,
+  gl_CONSTANT_COLOR1_NV,
+  gl_DISCARD_NV,
+  gl_EXPAND_NEGATE_NV,
+  gl_EXPAND_NORMAL_NV,
+  gl_E_TIMES_F_NV,
+  gl_FOG,
+  gl_HALF_BIAS_NEGATE_NV,
+  gl_HALF_BIAS_NORMAL_NV,
+  gl_MAX_GENERAL_COMBINERS_NV,
+  gl_NONE,
+  gl_NUM_GENERAL_COMBINERS_NV,
+  gl_PRIMARY_COLOR_NV,
+  gl_REGISTER_COMBINERS_NV,
+  gl_SCALE_BY_FOUR_NV,
+  gl_SCALE_BY_ONE_HALF_NV,
+  gl_SCALE_BY_TWO_NV,
+  gl_SECONDARY_COLOR_NV,
+  gl_SIGNED_IDENTITY_NV,
+  gl_SIGNED_NEGATE_NV,
+  gl_SPARE0_NV,
+  gl_SPARE0_PLUS_SECONDARY_COLOR_NV,
+  gl_SPARE1_NV,
+  gl_TEXTURE0_ARB,
+  gl_TEXTURE1_ARB,
+  gl_UNSIGNED_IDENTITY_NV,
+  gl_UNSIGNED_INVERT_NV,
+  gl_VARIABLE_A_NV,
+  gl_VARIABLE_B_NV,
+  gl_VARIABLE_C_NV,
+  gl_VARIABLE_D_NV,
+  gl_VARIABLE_E_NV,
+  gl_VARIABLE_F_NV,
+  gl_VARIABLE_G_NV,
+  gl_ZERO,
+  -- * Functions
+  glCombinerInputNV,
+  glCombinerOutputNV,
+  glCombinerParameterfNV,
+  glCombinerParameterfvNV,
+  glCombinerParameteriNV,
+  glCombinerParameterivNV,
+  glFinalCombinerInputNV,
+  glGetCombinerInputParameterfvNV,
+  glGetCombinerInputParameterivNV,
+  glGetCombinerOutputParameterfvNV,
+  glGetCombinerOutputParameterivNV,
+  glGetFinalCombinerInputParameterfvNV,
+  glGetFinalCombinerInputParameterivNV
 ) where
 
-import Foreign.C.Types
-import Graphics.Rendering.OpenGL.Raw.Types
-import Graphics.Rendering.OpenGL.Raw.ARB.Compatibility
-import Foreign.Ptr ( Ptr, FunPtr )
-import Graphics.Rendering.OpenGL.Raw.GetProcAddress ( getExtensionChecked )
-import System.IO.Unsafe ( unsafePerformIO )
-
-#include "HsOpenGLRaw.h"
-
-EXTENSION_ENTRY(dyn_glCombinerParameterfv,ptr_glCombinerParameterfv,"glCombinerParameterfv",glCombinerParameterfv,GLenum -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(dyn_glCombinerParameteriv,ptr_glCombinerParameteriv,"glCombinerParameteriv",glCombinerParameteriv,GLenum -> Ptr GLint -> IO ())
-EXTENSION_ENTRY(dyn_glCombinerParameterf,ptr_glCombinerParameterf,"glCombinerParameterf",glCombinerParameterf,GLenum -> GLfloat -> IO ())
-EXTENSION_ENTRY(dyn_glCombinerParameteri,ptr_glCombinerParameteri,"glCombinerParameteri",glCombinerParameteri,GLenum -> GLint -> IO ())
-EXTENSION_ENTRY(dyn_glCombinerInput,ptr_glCombinerInput,"glCombinerInput",glCombinerInput,GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> IO ())
-EXTENSION_ENTRY(dyn_glCombinerOutput,ptr_glCombinerOutput,"glCombinerOutput",glCombinerOutput,GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> GLboolean -> GLboolean -> GLboolean -> IO ())
-EXTENSION_ENTRY(dyn_glFinalCombinerInput,ptr_glFinalCombinerInput,"glFinalCombinerInput",glFinalCombinerInput,GLenum -> GLenum -> GLenum -> GLenum -> IO ())
-EXTENSION_ENTRY(dyn_glGetCombinerInputParameterfv,ptr_glGetCombinerInputParameterfv,"glGetCombinerInputParameterfv",glGetCombinerInputParameterfv,GLenum -> GLenum -> GLenum -> GLenum -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(dyn_glGetCombinerInputParameteriv,ptr_glGetCombinerInputParameteriv,"glGetCombinerInputParameteriv",glGetCombinerInputParameteriv,GLenum -> GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ())
-EXTENSION_ENTRY(dyn_glGetCombinerOutputParameterfv,ptr_glGetCombinerOutputParameterfv,"glGetCombinerOutputParameterfv",glGetCombinerOutputParameterfv,GLenum -> GLenum -> GLenum -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(dyn_glGetCombinerOutputParameteriv,ptr_glGetCombinerOutputParameteriv,"glGetCombinerOutputParameteriv",glGetCombinerOutputParameteriv,GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ())
-EXTENSION_ENTRY(dyn_glGetFinalCombinerInputParameterfv,ptr_glGetFinalCombinerInputParameterfv,"glGetFinalCombinerInputParameterfv",glGetFinalCombinerInputParameterfv,GLenum -> GLenum -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(dyn_glGetFinalCombinerInputParameteriv,ptr_glGetFinalCombinerInputParameteriv,"glGetFinalCombinerInputParameteriv",glGetFinalCombinerInputParameteriv,GLenum -> GLenum -> Ptr GLint -> IO ())
-
-gl_REGISTER_COMBINERS :: GLenum
-gl_REGISTER_COMBINERS = 0x8522
-
-gl_COMBINER0 :: GLenum
-gl_COMBINER0 = 0x8550
-
-gl_COMBINER1 :: GLenum
-gl_COMBINER1 = 0x8551
-
-gl_COMBINER2 :: GLenum
-gl_COMBINER2 = 0x8552
-
-gl_COMBINER3 :: GLenum
-gl_COMBINER3 = 0x8553
-
-gl_COMBINER4 :: GLenum
-gl_COMBINER4 = 0x8554
-
-gl_COMBINER5 :: GLenum
-gl_COMBINER5 = 0x8555
-
-gl_COMBINER6 :: GLenum
-gl_COMBINER6 = 0x8556
-
-gl_COMBINER7 :: GLenum
-gl_COMBINER7 = 0x8557
-
-gl_VARIABLE_A :: GLenum
-gl_VARIABLE_A = 0x8523
-
-gl_VARIABLE_B :: GLenum
-gl_VARIABLE_B = 0x8524
-
-gl_VARIABLE_C :: GLenum
-gl_VARIABLE_C = 0x8525
-
-gl_VARIABLE_D :: GLenum
-gl_VARIABLE_D = 0x8526
-
-gl_VARIABLE_E :: GLenum
-gl_VARIABLE_E = 0x8527
-
-gl_VARIABLE_F :: GLenum
-gl_VARIABLE_F = 0x8528
-
-gl_VARIABLE_G :: GLenum
-gl_VARIABLE_G = 0x8529
-
-gl_CONSTANT_COLOR0 :: GLenum
-gl_CONSTANT_COLOR0 = 0x852A
-
-gl_CONSTANT_COLOR1 :: GLenum
-gl_CONSTANT_COLOR1 = 0x852B
-
--- | NOTE: ARB_compatibility has the same token with a different value, so we
--- use a suffix here.
-gl_PRIMARY_COLOR_NV :: GLenum
-gl_PRIMARY_COLOR_NV = 0x852C
-
-gl_SECONDARY_COLOR :: GLenum
-gl_SECONDARY_COLOR = 0x852D
-
-gl_SPARE0 :: GLenum
-gl_SPARE0 = 0x852E
-
-gl_SPARE1 :: GLenum
-gl_SPARE1 = 0x852F
-
-gl_UNSIGNED_IDENTITY :: GLenum
-gl_UNSIGNED_IDENTITY = 0x8536
-
-gl_UNSIGNED_INVERT :: GLenum
-gl_UNSIGNED_INVERT = 0x8537
-
-gl_EXPAND_NORMAL :: GLenum
-gl_EXPAND_NORMAL = 0x8538
-
-gl_EXPAND_NEGATE :: GLenum
-gl_EXPAND_NEGATE = 0x8539
-
-gl_HALF_BIAS_NORMAL :: GLenum
-gl_HALF_BIAS_NORMAL = 0x853A
-
-gl_HALF_BIAS_NEGATE :: GLenum
-gl_HALF_BIAS_NEGATE = 0x853B
-
-gl_SIGNED_IDENTITY :: GLenum
-gl_SIGNED_IDENTITY = 0x853C
-
-gl_SIGNED_NEGATE :: GLenum
-gl_SIGNED_NEGATE = 0x853D
-
-gl_E_TIMES_F :: GLenum
-gl_E_TIMES_F = 0x8531
-
-gl_SPARE0_PLUS_SECONDARY_COLOR :: GLenum
-gl_SPARE0_PLUS_SECONDARY_COLOR = 0x8532
-
-gl_SCALE_BY_TWO :: GLenum
-gl_SCALE_BY_TWO = 0x853E
-
-gl_SCALE_BY_FOUR :: GLenum
-gl_SCALE_BY_FOUR = 0x853F
-
-gl_SCALE_BY_ONE_HALF :: GLenum
-gl_SCALE_BY_ONE_HALF = 0x8540
-
-gl_BIAS_BY_NEGATIVE_ONE_HALF :: GLenum
-gl_BIAS_BY_NEGATIVE_ONE_HALF = 0x8541
-
-gl_DISCARD :: GLenum
-gl_DISCARD = 0x8530
-
-gl_COMBINER_INPUT :: GLenum
-gl_COMBINER_INPUT = 0x8542
-
-gl_COMBINER_MAPPING :: GLenum
-gl_COMBINER_MAPPING = 0x8543
-
-gl_COMBINER_COMPONENT_USAGE :: GLenum
-gl_COMBINER_COMPONENT_USAGE = 0x8544
-
-gl_COMBINER_AB_DOT_PRODUCT :: GLenum
-gl_COMBINER_AB_DOT_PRODUCT = 0x8545
-
-gl_COMBINER_CD_DOT_PRODUCT :: GLenum
-gl_COMBINER_CD_DOT_PRODUCT = 0x8546
-
-gl_COMBINER_MUX_SUM :: GLenum
-gl_COMBINER_MUX_SUM = 0x8547
-
-gl_COMBINER_SCALE :: GLenum
-gl_COMBINER_SCALE = 0x8548
-
-gl_COMBINER_BIAS :: GLenum
-gl_COMBINER_BIAS = 0x8549
-
-gl_COMBINER_AB_OUTPUT :: GLenum
-gl_COMBINER_AB_OUTPUT = 0x854A
-
-gl_COMBINER_CD_OUTPUT :: GLenum
-gl_COMBINER_CD_OUTPUT = 0x854B
-
-gl_COMBINER_SUM_OUTPUT :: GLenum
-gl_COMBINER_SUM_OUTPUT = 0x854C
-
-gl_NUM_GENERAL_COMBINERS :: GLenum
-gl_NUM_GENERAL_COMBINERS = 0x854E
-
-gl_COLOR_SUM_CLAMP :: GLenum
-gl_COLOR_SUM_CLAMP = 0x854F
-
-gl_MAX_GENERAL_COMBINERS :: GLenum
-gl_MAX_GENERAL_COMBINERS = 0x854D
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
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
@@ -1,49 +1,24 @@
-{-# LANGUAGE CPP #-}
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.NV.RegisterCombiners2
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All raw functions and tokens from the NV_register_combiners2 extension not
--- already in the OpenGL 3.1 core, see
--- <http://www.opengl.org/registry/specs/NV/register_combiners2.txt>.
+-- The <https://www.opengl.org/registry/specs/NV/register_combiners2.txt NV_register_combiners2> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.NV.RegisterCombiners2 (
-   -- * Functions
-   glCombinerStageParameterfv,
-   glGetCombinerStageParameterfv,
-   -- * Tokens
-   gl_PER_STAGE_CONSTANTS,
-   gl_CONSTANT_COLOR0,
-   gl_CONSTANT_COLOR1,
-   gl_COMBINER0,
-   gl_COMBINER1,
-   gl_COMBINER2,
-   gl_COMBINER3,
-   gl_COMBINER4,
-   gl_COMBINER5,
-   gl_COMBINER6,
-   gl_COMBINER7
+  -- * Enums
+  gl_PER_STAGE_CONSTANTS_NV,
+  -- * Functions
+  glCombinerStageParameterfvNV,
+  glGetCombinerStageParameterfvNV
 ) where
 
-import Foreign.C.Types
-import Graphics.Rendering.OpenGL.Raw.Types
-import Foreign.Ptr ( Ptr, FunPtr )
-import Graphics.Rendering.OpenGL.Raw.GetProcAddress ( getExtensionChecked )
-import System.IO.Unsafe ( unsafePerformIO )
-import Graphics.Rendering.OpenGL.Raw.NV.RegisterCombiners
-
-#include "HsOpenGLRaw.h"
-
-EXTENSION_ENTRY(dyn_glCombinerStageParameterfv,ptr_glCombinerStageParameterfv,"glCombinerStageParameterfv",glCombinerStageParameterfv,GLenum -> GLenum -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(dyn_glGetCombinerStageParameterfv,ptr_glGetCombinerStageParameterfv,"glGetCombinerStageParameterfv",glGetCombinerStageParameterfv,GLenum -> GLenum -> Ptr GLfloat -> IO ())
-
-gl_PER_STAGE_CONSTANTS :: GLenum
-gl_PER_STAGE_CONSTANTS = 0x8535
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/NV/SampleLocations.hs b/src/Graphics/Rendering/OpenGL/Raw/NV/SampleLocations.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/NV/SampleLocations.hs
@@ -0,0 +1,32 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.NV.SampleLocations
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/NV/sample_locations.txt NV_sample_locations> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.NV.SampleLocations (
+  -- * Enums
+  gl_FRAMEBUFFER_PROGRAMMABLE_SAMPLE_LOCATIONS_NV,
+  gl_FRAMEBUFFER_SAMPLE_LOCATION_PIXEL_GRID_NV,
+  gl_PROGRAMMABLE_SAMPLE_LOCATION_NV,
+  gl_PROGRAMMABLE_SAMPLE_LOCATION_TABLE_SIZE_NV,
+  gl_SAMPLE_LOCATION_NV,
+  gl_SAMPLE_LOCATION_PIXEL_GRID_HEIGHT_NV,
+  gl_SAMPLE_LOCATION_PIXEL_GRID_WIDTH_NV,
+  gl_SAMPLE_LOCATION_SUBPIXEL_BITS_NV,
+  -- * Functions
+  glFramebufferSampleLocationsfvNV,
+  glNamedFramebufferSampleLocationsfvNV,
+  glResolveDepthValuesNV
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/NV/ShaderBufferLoad.hs b/src/Graphics/Rendering/OpenGL/Raw/NV/ShaderBufferLoad.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/NV/ShaderBufferLoad.hs
@@ -0,0 +1,38 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.NV.ShaderBufferLoad
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/NV/shader_buffer_load.txt NV_shader_buffer_load> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.NV.ShaderBufferLoad (
+  -- * Enums
+  gl_BUFFER_GPU_ADDRESS_NV,
+  gl_GPU_ADDRESS_NV,
+  gl_MAX_SHADER_BUFFER_ADDRESS_NV,
+  -- * Functions
+  glGetBufferParameterui64vNV,
+  glGetIntegerui64vNV,
+  glGetNamedBufferParameterui64vNV,
+  glGetUniformui64vNV,
+  glIsBufferResidentNV,
+  glIsNamedBufferResidentNV,
+  glMakeBufferNonResidentNV,
+  glMakeBufferResidentNV,
+  glMakeNamedBufferNonResidentNV,
+  glMakeNamedBufferResidentNV,
+  glProgramUniformui64NV,
+  glProgramUniformui64vNV,
+  glUniformui64NV,
+  glUniformui64vNV
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/NV/ShaderBufferStore.hs b/src/Graphics/Rendering/OpenGL/Raw/NV/ShaderBufferStore.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/NV/ShaderBufferStore.hs
@@ -0,0 +1,22 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.NV.ShaderBufferStore
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/NV/shader_buffer_store.txt NV_shader_buffer_store> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.NV.ShaderBufferStore (
+  -- * Enums
+  gl_READ_WRITE,
+  gl_SHADER_GLOBAL_ACCESS_BARRIER_BIT_NV,
+  gl_WRITE_ONLY
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/NV/ShaderThreadGroup.hs b/src/Graphics/Rendering/OpenGL/Raw/NV/ShaderThreadGroup.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/NV/ShaderThreadGroup.hs
@@ -0,0 +1,22 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.NV.ShaderThreadGroup
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/NV/shader_thread_group.txt NV_shader_thread_group> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.NV.ShaderThreadGroup (
+  -- * Enums
+  gl_SM_COUNT_NV,
+  gl_WARPS_PER_SM_NV,
+  gl_WARP_SIZE_NV
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/NV/TessellationProgram5.hs b/src/Graphics/Rendering/OpenGL/Raw/NV/TessellationProgram5.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/NV/TessellationProgram5.hs
@@ -0,0 +1,24 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.NV.TessellationProgram5
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/NV/tessellation_program5.txt NV_tessellation_program5> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.NV.TessellationProgram5 (
+  -- * Enums
+  gl_MAX_PROGRAM_PATCH_ATTRIBS_NV,
+  gl_TESS_CONTROL_PROGRAM_NV,
+  gl_TESS_CONTROL_PROGRAM_PARAMETER_BUFFER_NV,
+  gl_TESS_EVALUATION_PROGRAM_NV,
+  gl_TESS_EVALUATION_PROGRAM_PARAMETER_BUFFER_NV
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/NV/TexgenEmboss.hs b/src/Graphics/Rendering/OpenGL/Raw/NV/TexgenEmboss.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/NV/TexgenEmboss.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/NV/TexgenEmboss.hs
@@ -1,33 +1,22 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.NV.TexgenEmboss
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All raw functions and tokens from the NV_texgen_emboss not already in the
--- OpenGL 3.1 core, see
--- <http://www.opengl.org/registry/specs/NV/texgen_emboss.txt>.
+-- The <https://www.opengl.org/registry/specs/NV/texgen_emboss.txt NV_texgen_emboss> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.NV.TexgenEmboss (
-   -- * Tokens
-   gl_EMBOSS_MAP,
-   gl_EMBOSS_LIGHT,
-   gl_EMBOSS_CONSTANT
+  -- * Enums
+  gl_EMBOSS_CONSTANT_NV,
+  gl_EMBOSS_LIGHT_NV,
+  gl_EMBOSS_MAP_NV
 ) where
 
-import Graphics.Rendering.OpenGL.Raw.Core32
-
-gl_EMBOSS_MAP :: GLenum
-gl_EMBOSS_MAP = 0x855F
-
-gl_EMBOSS_LIGHT :: GLenum
-gl_EMBOSS_LIGHT = 0x855D
-
-gl_EMBOSS_CONSTANT :: GLenum
-gl_EMBOSS_CONSTANT = 0x855E
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/NV/TexgenReflection.hs b/src/Graphics/Rendering/OpenGL/Raw/NV/TexgenReflection.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/NV/TexgenReflection.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/NV/TexgenReflection.hs
@@ -1,22 +1,21 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.NV.TexgenReflection
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All tokens from the NV_texgen_reflection, see
--- <http://www.opengl.org/registry/specs/NV/texgen_reflection.txt>.
+-- The <https://www.opengl.org/registry/specs/NV/texgen_reflection.txt NV_texgen_reflection> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.NV.TexgenReflection (
-   -- * Tokens
-   gl_NORMAL_MAP,
-   gl_REFLECTION_MAP
+  -- * Enums
+  gl_NORMAL_MAP_NV,
+  gl_REFLECTION_MAP_NV
 ) where
 
-import Graphics.Rendering.OpenGL.Raw.ARB.Compatibility
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/NV/TextureBarrier.hs b/src/Graphics/Rendering/OpenGL/Raw/NV/TextureBarrier.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/NV/TextureBarrier.hs
@@ -0,0 +1,20 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.NV.TextureBarrier
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/NV/texture_barrier.txt NV_texture_barrier> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.NV.TextureBarrier (
+  -- * Functions
+  glTextureBarrierNV
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/NV/TextureCompressionVTC.hs b/src/Graphics/Rendering/OpenGL/Raw/NV/TextureCompressionVTC.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/NV/TextureCompressionVTC.hs
+++ /dev/null
@@ -1,25 +0,0 @@
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.NV.TextureCompressionVTC
--- Copyright   :  (c) Sven Panne 2013
--- License     :  BSD3
---
--- Maintainer  :  Sven Panne <svenpanne@gmail.com>
--- Stability   :  stable
--- Portability :  portable
---
--- All raw functions and tokens from the NV_light_max_exponent extension not
--- already in the OpenGL 3.1 core, see
--- <http://www.opengl.org/registry/specs/NV/light_max_exponent.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.NV.TextureCompressionVTC (
-   -- * Tokens
-   gl_COMPRESSED_RGB_S3TC_DXT1,
-   gl_COMPRESSED_RGBA_S3TC_DXT1,
-   gl_COMPRESSED_RGBA_S3TC_DXT3,
-   gl_COMPRESSED_RGBA_S3TC_DXT5
-) where
-
-import Graphics.Rendering.OpenGL.Raw.EXT.TextureCompressionS3TC
diff --git a/src/Graphics/Rendering/OpenGL/Raw/NV/TextureEnvCombine4.hs b/src/Graphics/Rendering/OpenGL/Raw/NV/TextureEnvCombine4.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/NV/TextureEnvCombine4.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/NV/TextureEnvCombine4.hs
@@ -1,41 +1,24 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.NV.TextureEnvCombine4
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All raw functions and tokens from the NV_texture_env_combine4 extension not
--- already in the OpenGL 3.1 core, see
--- <http://www.opengl.org/registry/specs/NV/texture_env_combine4.txt>.
+-- The <https://www.opengl.org/registry/specs/NV/texture_env_combine4.txt NV_texture_env_combine4> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.NV.TextureEnvCombine4 (
-   -- * Tokens
-   gl_COMBINE4,
-   gl_SOURCE3_RGB,
-   gl_SOURCE3_ALPHA,
-   gl_OPERAND3_RGB,
-   gl_OPERAND3_ALPHA
+  -- * Enums
+  gl_COMBINE4_NV,
+  gl_OPERAND3_ALPHA_NV,
+  gl_OPERAND3_RGB_NV,
+  gl_SOURCE3_ALPHA_NV,
+  gl_SOURCE3_RGB_NV
 ) where
 
-import Graphics.Rendering.OpenGL.Raw.Core32
-
-gl_COMBINE4 :: GLenum
-gl_COMBINE4 = 0x8503
-
-gl_SOURCE3_RGB :: GLenum
-gl_SOURCE3_RGB = 0x8583
-
-gl_SOURCE3_ALPHA :: GLenum
-gl_SOURCE3_ALPHA = 0x858B
-
-gl_OPERAND3_RGB :: GLenum
-gl_OPERAND3_RGB = 0x8593
-
-gl_OPERAND3_ALPHA :: GLenum
-gl_OPERAND3_ALPHA = 0x859B
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/NV/TextureExpandNormal.hs b/src/Graphics/Rendering/OpenGL/Raw/NV/TextureExpandNormal.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/NV/TextureExpandNormal.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/NV/TextureExpandNormal.hs
@@ -1,24 +1,20 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.NV.TextureExpandNormal
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All tokens from the NV_texture_expand_normal, see
--- <http://www.opengl.org/registry/specs/NV/texture_expand_normal.txt>.
+-- The <https://www.opengl.org/registry/specs/NV/texture_expand_normal.txt NV_texture_expand_normal> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.NV.TextureExpandNormal (
-   -- * Tokens
-   gl_TEXTURE_UNSIGNED_REMAP_MODE
+  -- * Enums
+  gl_TEXTURE_UNSIGNED_REMAP_MODE_NV
 ) where
 
-import Graphics.Rendering.OpenGL.Raw.Core32
-
-gl_TEXTURE_UNSIGNED_REMAP_MODE :: GLenum
-gl_TEXTURE_UNSIGNED_REMAP_MODE = 0x888F
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/NV/TextureMultisample.hs b/src/Graphics/Rendering/OpenGL/Raw/NV/TextureMultisample.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/NV/TextureMultisample.hs
@@ -0,0 +1,29 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.NV.TextureMultisample
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/NV/texture_multisample.txt NV_texture_multisample> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.NV.TextureMultisample (
+  -- * Enums
+  gl_TEXTURE_COLOR_SAMPLES_NV,
+  gl_TEXTURE_COVERAGE_SAMPLES_NV,
+  -- * Functions
+  glTexImage2DMultisampleCoverageNV,
+  glTexImage3DMultisampleCoverageNV,
+  glTextureImage2DMultisampleCoverageNV,
+  glTextureImage2DMultisampleNV,
+  glTextureImage3DMultisampleCoverageNV,
+  glTextureImage3DMultisampleNV
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/NV/TextureRectangle.hs b/src/Graphics/Rendering/OpenGL/Raw/NV/TextureRectangle.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/NV/TextureRectangle.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/NV/TextureRectangle.hs
@@ -1,24 +1,23 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.NV.TextureRectangle
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All tokens from the NV_texture_rectangle extension, see
--- <http://www.opengl.org/registry/specs/NV/texture_rectangle.txt>.
+-- The <https://www.opengl.org/registry/specs/NV/texture_rectangle.txt NV_texture_rectangle> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.NV.TextureRectangle (
-   -- * Tokens
-   gl_TEXTURE_RECTANGLE,
-   gl_TEXTURE_BINDING_RECTANGLE,
-   gl_PROXY_TEXTURE_RECTANGLE, 
-   gl_MAX_RECTANGLE_TEXTURE_SIZE
+  -- * Enums
+  gl_MAX_RECTANGLE_TEXTURE_SIZE_NV,
+  gl_PROXY_TEXTURE_RECTANGLE_NV,
+  gl_TEXTURE_BINDING_RECTANGLE_NV,
+  gl_TEXTURE_RECTANGLE_NV
 ) where
 
-import Graphics.Rendering.OpenGL.Raw.Core32
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/NV/TextureShader.hs b/src/Graphics/Rendering/OpenGL/Raw/NV/TextureShader.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/NV/TextureShader.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/NV/TextureShader.hs
@@ -1,316 +1,92 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.NV.TextureShader
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All raw functions and tokens from the NV_texture_shader extension not
--- already in the OpenGL 3.1 core, see
--- <http://www.opengl.org/registry/specs/NV/texture_shader.txt>.
+-- The <https://www.opengl.org/registry/specs/NV/texture_shader.txt NV_texture_shader> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.NV.TextureShader (
-   -- * Tokens
-   gl_TEXTURE_SHADER,
-   gl_RGBA_UNSIGNED_DOT_PRODUCT_MAPPING,
-   gl_SHADER_OPERATION,
-   gl_OFFSET_TEXTURE_SCALE,
-   gl_OFFSET_TEXTURE_BIAS,
-   gl_OFFSET_TEXTURE_2D_SCALE,
-   gl_OFFSET_TEXTURE_2D_BIAS,
-   gl_PREVIOUS_TEXTURE_INPUT,
-   gl_CULL_MODES,
-   gl_OFFSET_TEXTURE_MATRIX,
-   gl_OFFSET_TEXTURE_2D_MATRIX,
-   gl_CONST_EYE,
-   gl_SHADER_CONSISTENT,
-   gl_PASS_THROUGH,
-   gl_CULL_FRAGMENT,
-   gl_OFFSET_TEXTURE_2D,
-   gl_OFFSET_TEXTURE_RECTANGLE,
-   gl_OFFSET_TEXTURE_RECTANGLE_SCALE,
-   gl_DEPENDENT_AR_TEXTURE_2D,
-   gl_DEPENDENT_GB_TEXTURE_2D,
-   gl_DOT_PRODUCT,
-   gl_DOT_PRODUCT_DEPTH_REPLACE,
-   gl_DOT_PRODUCT_TEXTURE_2D,
-   gl_DOT_PRODUCT_TEXTURE_RECTANGLE,
-   gl_DOT_PRODUCT_TEXTURE_CUBE_MAP,
-   gl_DOT_PRODUCT_DIFFUSE_CUBE_MAP,
-   gl_DOT_PRODUCT_REFLECT_CUBE_MAP,
-   gl_DOT_PRODUCT_CONST_EYE_REFLECT_CUBE_MAP,
-   gl_UNSIGNED_IDENTITY,
-   gl_EXPAND_NORMAL,
-   gl_HILO,
-   gl_DSDT,
-   gl_DSDT_MAG,
-   gl_DSDT_MAG_VIB,
-   gl_UNSIGNED_INT_S8_S8_8_8,
-   gl_UNSIGNED_INT_8_8_S8_S8_REV,
-   gl_SIGNED_RGBA,
-   gl_SIGNED_RGBA8,
-   gl_SIGNED_RGB,
-   gl_SIGNED_RGB8,
-   gl_SIGNED_LUMINANCE,
-   gl_SIGNED_LUMINANCE8,
-   gl_SIGNED_LUMINANCE_ALPHA,
-   gl_SIGNED_LUMINANCE8_ALPHA8,
-   gl_SIGNED_ALPHA,
-   gl_SIGNED_ALPHA8,
-   gl_SIGNED_INTENSITY,
-   gl_SIGNED_INTENSITY8,
-   gl_SIGNED_RGB_UNSIGNED_ALPHA,
-   gl_SIGNED_RGB8_UNSIGNED_ALPHA8,
-   gl_HILO16,
-   gl_SIGNED_HILO,
-   gl_SIGNED_HILO16,
-   gl_DSDT8,
-   gl_DSDT8_MAG8,
-   gl_DSDT_MAG_INTENSITY,
-   gl_DSDT8_MAG8_INTENSITY8,
-   gl_HI_SCALE,
-   gl_LO_SCALE,
-   gl_DS_SCALE,
-   gl_DT_SCALE,
-   gl_MAGNITUDE_SCALE,
-   gl_VIBRANCE_SCALE,
-   gl_HI_BIAS,
-   gl_LO_BIAS,
-   gl_DS_BIAS,
-   gl_DT_BIAS,
-   gl_MAGNITUDE_BIAS,
-   gl_VIBRANCE_BIAS,
-   gl_TEXTURE_BORDER_VALUES,
-   gl_TEXTURE_HI_SIZE,
-   gl_TEXTURE_LO_SIZE,
-   gl_TEXTURE_DS_SIZE,
-   gl_TEXTURE_DT_SIZE,
-   gl_TEXTURE_MAG_SIZE
+  -- * Enums
+  gl_CONST_EYE_NV,
+  gl_CULL_FRAGMENT_NV,
+  gl_CULL_MODES_NV,
+  gl_DEPENDENT_AR_TEXTURE_2D_NV,
+  gl_DEPENDENT_GB_TEXTURE_2D_NV,
+  gl_DOT_PRODUCT_CONST_EYE_REFLECT_CUBE_MAP_NV,
+  gl_DOT_PRODUCT_DEPTH_REPLACE_NV,
+  gl_DOT_PRODUCT_DIFFUSE_CUBE_MAP_NV,
+  gl_DOT_PRODUCT_NV,
+  gl_DOT_PRODUCT_REFLECT_CUBE_MAP_NV,
+  gl_DOT_PRODUCT_TEXTURE_2D_NV,
+  gl_DOT_PRODUCT_TEXTURE_CUBE_MAP_NV,
+  gl_DOT_PRODUCT_TEXTURE_RECTANGLE_NV,
+  gl_DSDT8_MAG8_INTENSITY8_NV,
+  gl_DSDT8_MAG8_NV,
+  gl_DSDT8_NV,
+  gl_DSDT_MAG_INTENSITY_NV,
+  gl_DSDT_MAG_NV,
+  gl_DSDT_MAG_VIB_NV,
+  gl_DSDT_NV,
+  gl_DS_BIAS_NV,
+  gl_DS_SCALE_NV,
+  gl_DT_BIAS_NV,
+  gl_DT_SCALE_NV,
+  gl_HILO16_NV,
+  gl_HILO_NV,
+  gl_HI_BIAS_NV,
+  gl_HI_SCALE_NV,
+  gl_LO_BIAS_NV,
+  gl_LO_SCALE_NV,
+  gl_MAGNITUDE_BIAS_NV,
+  gl_MAGNITUDE_SCALE_NV,
+  gl_OFFSET_TEXTURE_2D_BIAS_NV,
+  gl_OFFSET_TEXTURE_2D_MATRIX_NV,
+  gl_OFFSET_TEXTURE_2D_NV,
+  gl_OFFSET_TEXTURE_2D_SCALE_NV,
+  gl_OFFSET_TEXTURE_BIAS_NV,
+  gl_OFFSET_TEXTURE_MATRIX_NV,
+  gl_OFFSET_TEXTURE_RECTANGLE_NV,
+  gl_OFFSET_TEXTURE_RECTANGLE_SCALE_NV,
+  gl_OFFSET_TEXTURE_SCALE_NV,
+  gl_PASS_THROUGH_NV,
+  gl_PREVIOUS_TEXTURE_INPUT_NV,
+  gl_RGBA_UNSIGNED_DOT_PRODUCT_MAPPING_NV,
+  gl_SHADER_CONSISTENT_NV,
+  gl_SHADER_OPERATION_NV,
+  gl_SIGNED_ALPHA8_NV,
+  gl_SIGNED_ALPHA_NV,
+  gl_SIGNED_HILO16_NV,
+  gl_SIGNED_HILO_NV,
+  gl_SIGNED_INTENSITY8_NV,
+  gl_SIGNED_INTENSITY_NV,
+  gl_SIGNED_LUMINANCE8_ALPHA8_NV,
+  gl_SIGNED_LUMINANCE8_NV,
+  gl_SIGNED_LUMINANCE_ALPHA_NV,
+  gl_SIGNED_LUMINANCE_NV,
+  gl_SIGNED_RGB8_NV,
+  gl_SIGNED_RGB8_UNSIGNED_ALPHA8_NV,
+  gl_SIGNED_RGBA8_NV,
+  gl_SIGNED_RGBA_NV,
+  gl_SIGNED_RGB_NV,
+  gl_SIGNED_RGB_UNSIGNED_ALPHA_NV,
+  gl_TEXTURE_BORDER_VALUES_NV,
+  gl_TEXTURE_DS_SIZE_NV,
+  gl_TEXTURE_DT_SIZE_NV,
+  gl_TEXTURE_HI_SIZE_NV,
+  gl_TEXTURE_LO_SIZE_NV,
+  gl_TEXTURE_MAG_SIZE_NV,
+  gl_TEXTURE_SHADER_NV,
+  gl_UNSIGNED_INT_8_8_S8_S8_REV_NV,
+  gl_UNSIGNED_INT_S8_S8_8_8_NV,
+  gl_VIBRANCE_BIAS_NV,
+  gl_VIBRANCE_SCALE_NV
 ) where
 
-import Graphics.Rendering.OpenGL.Raw.Core32
-import Graphics.Rendering.OpenGL.Raw.NV.RegisterCombiners
-
-gl_TEXTURE_SHADER :: GLenum
-gl_TEXTURE_SHADER = 0x86DE
-
-gl_RGBA_UNSIGNED_DOT_PRODUCT_MAPPING :: GLenum
-gl_RGBA_UNSIGNED_DOT_PRODUCT_MAPPING = 0x86D9
-
-gl_SHADER_OPERATION :: GLenum
-gl_SHADER_OPERATION = 0x86DF
-
-gl_OFFSET_TEXTURE_SCALE :: GLenum
-gl_OFFSET_TEXTURE_SCALE = 0x86E2
-
-gl_OFFSET_TEXTURE_BIAS :: GLenum
-gl_OFFSET_TEXTURE_BIAS = 0x86E3
-
-gl_OFFSET_TEXTURE_2D_SCALE :: GLenum
-gl_OFFSET_TEXTURE_2D_SCALE = gl_OFFSET_TEXTURE_SCALE
-
-gl_OFFSET_TEXTURE_2D_BIAS :: GLenum
-gl_OFFSET_TEXTURE_2D_BIAS = gl_OFFSET_TEXTURE_BIAS
-
-gl_PREVIOUS_TEXTURE_INPUT :: GLenum
-gl_PREVIOUS_TEXTURE_INPUT = 0x86E4
-
-gl_CULL_MODES :: GLenum
-gl_CULL_MODES = 0x86E0
-
-gl_OFFSET_TEXTURE_MATRIX :: GLenum
-gl_OFFSET_TEXTURE_MATRIX = 0x86E1
-
-gl_OFFSET_TEXTURE_2D_MATRIX :: GLenum
-gl_OFFSET_TEXTURE_2D_MATRIX = gl_OFFSET_TEXTURE_MATRIX
-
-gl_CONST_EYE :: GLenum
-gl_CONST_EYE = 0x86E5
-
-gl_SHADER_CONSISTENT :: GLenum
-gl_SHADER_CONSISTENT = 0x86DD
-
-gl_PASS_THROUGH :: GLenum
-gl_PASS_THROUGH = 0x86E6
-
-gl_CULL_FRAGMENT :: GLenum
-gl_CULL_FRAGMENT = 0x86E7
-
-gl_OFFSET_TEXTURE_2D :: GLenum
-gl_OFFSET_TEXTURE_2D = 0x86E8
-
-gl_OFFSET_TEXTURE_RECTANGLE :: GLenum
-gl_OFFSET_TEXTURE_RECTANGLE = 0x864C
-
-gl_OFFSET_TEXTURE_RECTANGLE_SCALE :: GLenum
-gl_OFFSET_TEXTURE_RECTANGLE_SCALE = 0x864D
-
-gl_DEPENDENT_AR_TEXTURE_2D :: GLenum
-gl_DEPENDENT_AR_TEXTURE_2D = 0x86E9
-
-gl_DEPENDENT_GB_TEXTURE_2D :: GLenum
-gl_DEPENDENT_GB_TEXTURE_2D = 0x86EA
-
-gl_DOT_PRODUCT :: GLenum
-gl_DOT_PRODUCT = 0x86EC
-
-gl_DOT_PRODUCT_DEPTH_REPLACE :: GLenum
-gl_DOT_PRODUCT_DEPTH_REPLACE = 0x86ED
-
-gl_DOT_PRODUCT_TEXTURE_2D :: GLenum
-gl_DOT_PRODUCT_TEXTURE_2D = 0x86EE
-
-gl_DOT_PRODUCT_TEXTURE_RECTANGLE :: GLenum
-gl_DOT_PRODUCT_TEXTURE_RECTANGLE = 0x864E
-
-gl_DOT_PRODUCT_TEXTURE_CUBE_MAP :: GLenum
-gl_DOT_PRODUCT_TEXTURE_CUBE_MAP = 0x86F0
-
-gl_DOT_PRODUCT_DIFFUSE_CUBE_MAP :: GLenum
-gl_DOT_PRODUCT_DIFFUSE_CUBE_MAP = 0x86F1
-
-gl_DOT_PRODUCT_REFLECT_CUBE_MAP :: GLenum
-gl_DOT_PRODUCT_REFLECT_CUBE_MAP = 0x86F2
-
-gl_DOT_PRODUCT_CONST_EYE_REFLECT_CUBE_MAP :: GLenum
-gl_DOT_PRODUCT_CONST_EYE_REFLECT_CUBE_MAP = 0x86F3
-
-gl_HILO :: GLenum
-gl_HILO = 0x86F4
-
-gl_DSDT :: GLenum
-gl_DSDT = 0x86F5
-
-gl_DSDT_MAG :: GLenum
-gl_DSDT_MAG = 0x86F6
-
-gl_DSDT_MAG_VIB :: GLenum
-gl_DSDT_MAG_VIB = 0x86F7
-
-gl_UNSIGNED_INT_S8_S8_8_8 :: GLenum
-gl_UNSIGNED_INT_S8_S8_8_8 = 0x86DA 
-
-gl_UNSIGNED_INT_8_8_S8_S8_REV :: GLenum
-gl_UNSIGNED_INT_8_8_S8_S8_REV = 0x86DB 
-
-gl_SIGNED_RGBA :: GLenum
-gl_SIGNED_RGBA = 0x86FB
-
-gl_SIGNED_RGBA8 :: GLenum
-gl_SIGNED_RGBA8 = 0x86FC
-
-gl_SIGNED_RGB :: GLenum
-gl_SIGNED_RGB = 0x86FE
-
-gl_SIGNED_RGB8 :: GLenum
-gl_SIGNED_RGB8 = 0x86FF
-
-gl_SIGNED_LUMINANCE :: GLenum
-gl_SIGNED_LUMINANCE = 0x8701
-
-gl_SIGNED_LUMINANCE8 :: GLenum
-gl_SIGNED_LUMINANCE8 = 0x8702
-
-gl_SIGNED_LUMINANCE_ALPHA :: GLenum
-gl_SIGNED_LUMINANCE_ALPHA = 0x8703
-
-gl_SIGNED_LUMINANCE8_ALPHA8 :: GLenum
-gl_SIGNED_LUMINANCE8_ALPHA8 = 0x8704
-
-gl_SIGNED_ALPHA :: GLenum
-gl_SIGNED_ALPHA = 0x8705
-
-gl_SIGNED_ALPHA8 :: GLenum
-gl_SIGNED_ALPHA8 = 0x8706
-
-gl_SIGNED_INTENSITY :: GLenum
-gl_SIGNED_INTENSITY = 0x8707
-
-gl_SIGNED_INTENSITY8 :: GLenum
-gl_SIGNED_INTENSITY8 = 0x8708
-
-gl_SIGNED_RGB_UNSIGNED_ALPHA :: GLenum
-gl_SIGNED_RGB_UNSIGNED_ALPHA = 0x870C
-
-gl_SIGNED_RGB8_UNSIGNED_ALPHA8 :: GLenum
-gl_SIGNED_RGB8_UNSIGNED_ALPHA8 = 0x870D
-
-gl_HILO16 :: GLenum
-gl_HILO16 = 0x86F8
-
-gl_SIGNED_HILO :: GLenum
-gl_SIGNED_HILO = 0x86F9
-
-gl_SIGNED_HILO16 :: GLenum
-gl_SIGNED_HILO16 = 0x86FA
-
-gl_DSDT8 :: GLenum
-gl_DSDT8 = 0x8709
-
-gl_DSDT8_MAG8 :: GLenum
-gl_DSDT8_MAG8 = 0x870A
-
-gl_DSDT_MAG_INTENSITY :: GLenum
-gl_DSDT_MAG_INTENSITY = 0x86DC
-
-gl_DSDT8_MAG8_INTENSITY8 :: GLenum
-gl_DSDT8_MAG8_INTENSITY8 = 0x870B
-
-gl_HI_SCALE :: GLenum
-gl_HI_SCALE = 0x870E
-
-gl_LO_SCALE :: GLenum
-gl_LO_SCALE = 0x870F
-
-gl_DS_SCALE :: GLenum
-gl_DS_SCALE = 0x8710
-
-gl_DT_SCALE :: GLenum
-gl_DT_SCALE = 0x8711
-
-gl_MAGNITUDE_SCALE :: GLenum
-gl_MAGNITUDE_SCALE = 0x8712
-
-gl_VIBRANCE_SCALE :: GLenum
-gl_VIBRANCE_SCALE = 0x8713
-
-gl_HI_BIAS :: GLenum
-gl_HI_BIAS = 0x8714
-
-gl_LO_BIAS :: GLenum
-gl_LO_BIAS = 0x8715
-
-gl_DS_BIAS :: GLenum
-gl_DS_BIAS = 0x8716
-
-gl_DT_BIAS :: GLenum
-gl_DT_BIAS = 0x8717
-
-gl_MAGNITUDE_BIAS :: GLenum
-gl_MAGNITUDE_BIAS = 0x8718
-
-gl_VIBRANCE_BIAS :: GLenum
-gl_VIBRANCE_BIAS = 0x8719
-
-gl_TEXTURE_BORDER_VALUES :: GLenum
-gl_TEXTURE_BORDER_VALUES = 0x871A
-
-gl_TEXTURE_HI_SIZE :: GLenum
-gl_TEXTURE_HI_SIZE = 0x871B
-
-gl_TEXTURE_LO_SIZE :: GLenum
-gl_TEXTURE_LO_SIZE = 0x871C
-
-gl_TEXTURE_DS_SIZE :: GLenum
-gl_TEXTURE_DS_SIZE = 0x871D
-
-gl_TEXTURE_DT_SIZE :: GLenum
-gl_TEXTURE_DT_SIZE = 0x871E
-
-gl_TEXTURE_MAG_SIZE :: GLenum
-gl_TEXTURE_MAG_SIZE = 0x871F
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/NV/TextureShader2.hs b/src/Graphics/Rendering/OpenGL/Raw/NV/TextureShader2.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/NV/TextureShader2.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/NV/TextureShader2.hs
@@ -1,53 +1,20 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.NV.TextureShader2
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All raw functions and tokens from the NV_texture_shader2 extension not
--- already in the OpenGL 3.1 core, see
--- <http://www.opengl.org/registry/specs/NV/texture_shader2.txt>.
+-- The <https://www.opengl.org/registry/specs/NV/texture_shader2.txt NV_texture_shader2> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.NV.TextureShader2 (
-   -- * Tokens
-   gl_DOT_PRODUCT_TEXTURE_3D,
-   gl_HILO,
-   gl_DSDT,
-   gl_DSDT_MAG,
-   gl_DSDT_MAG_VIB,
-   gl_UNSIGNED_INT_S8_S8_8_8,
-   gl_UNSIGNED_INT_8_8_S8_S8_REV,
-   gl_SIGNED_RGBA,
-   gl_SIGNED_RGBA8,
-   gl_SIGNED_RGB,
-   gl_SIGNED_RGB8,
-   gl_SIGNED_LUMINANCE,
-   gl_SIGNED_LUMINANCE8,
-   gl_SIGNED_LUMINANCE_ALPHA,
-   gl_SIGNED_LUMINANCE8_ALPHA8,
-   gl_SIGNED_ALPHA,
-   gl_SIGNED_ALPHA8,
-   gl_SIGNED_INTENSITY,
-   gl_SIGNED_INTENSITY8,
-   gl_SIGNED_RGB_UNSIGNED_ALPHA,
-   gl_SIGNED_RGB8_UNSIGNED_ALPHA8,
-   gl_HILO16,
-   gl_SIGNED_HILO,
-   gl_SIGNED_HILO16,
-   gl_DSDT8,
-   gl_DSDT8_MAG8,
-   gl_DSDT_MAG_INTENSITY,
-   gl_DSDT8_MAG8_INTENSITY8
+  -- * Enums
+  gl_DOT_PRODUCT_TEXTURE_3D_NV
 ) where
 
-import Graphics.Rendering.OpenGL.Raw.Core32
-import Graphics.Rendering.OpenGL.Raw.NV.TextureShader
-
-gl_DOT_PRODUCT_TEXTURE_3D :: GLenum
-gl_DOT_PRODUCT_TEXTURE_3D = 0x86EF
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/NV/TextureShader3.hs b/src/Graphics/Rendering/OpenGL/Raw/NV/TextureShader3.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/NV/TextureShader3.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/NV/TextureShader3.hs
@@ -1,88 +1,36 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.NV.TextureShader3
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All raw functions and tokens from the NV_texture_shader3 extension, see
--- <http://www.opengl.org/registry/specs/NV/texture_shader3.txt>.
+-- The <https://www.opengl.org/registry/specs/NV/texture_shader3.txt NV_texture_shader3> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.NV.TextureShader3 (
-   -- * Tokens
-   gl_OFFSET_PROJECTIVE_TEXTURE_2D,
-   gl_OFFSET_PROJECTIVE_TEXTURE_2D_SCALE,
-   gl_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE,
-   gl_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_SCALE,
-   gl_OFFSET_HILO_TEXTURE_2D,
-   gl_OFFSET_HILO_TEXTURE_RECTANGLE,
-   gl_OFFSET_HILO_PROJECTIVE_TEXTURE_2D,
-   gl_OFFSET_HILO_PROJECTIVE_TEXTURE_RECTANGLE,
-   gl_DEPENDENT_HILO_TEXTURE_2D,
-   gl_DEPENDENT_RGB_TEXTURE_3D,
-   gl_DEPENDENT_RGB_TEXTURE_CUBE_MAP,
-   gl_DOT_PRODUCT_PASS_THROUGH,
-   gl_DOT_PRODUCT_TEXTURE_1D,
-   gl_DOT_PRODUCT_AFFINE_DEPTH_REPLACE,
-   gl_HILO8,
-   gl_SIGNED_HILO8,
-   gl_FORCE_BLUE_TO_ONE
+  -- * Enums
+  gl_DEPENDENT_HILO_TEXTURE_2D_NV,
+  gl_DEPENDENT_RGB_TEXTURE_3D_NV,
+  gl_DEPENDENT_RGB_TEXTURE_CUBE_MAP_NV,
+  gl_DOT_PRODUCT_AFFINE_DEPTH_REPLACE_NV,
+  gl_DOT_PRODUCT_PASS_THROUGH_NV,
+  gl_DOT_PRODUCT_TEXTURE_1D_NV,
+  gl_FORCE_BLUE_TO_ONE_NV,
+  gl_HILO8_NV,
+  gl_OFFSET_HILO_PROJECTIVE_TEXTURE_2D_NV,
+  gl_OFFSET_HILO_PROJECTIVE_TEXTURE_RECTANGLE_NV,
+  gl_OFFSET_HILO_TEXTURE_2D_NV,
+  gl_OFFSET_HILO_TEXTURE_RECTANGLE_NV,
+  gl_OFFSET_PROJECTIVE_TEXTURE_2D_NV,
+  gl_OFFSET_PROJECTIVE_TEXTURE_2D_SCALE_NV,
+  gl_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_NV,
+  gl_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_SCALE_NV,
+  gl_SIGNED_HILO8_NV
 ) where
 
-import Graphics.Rendering.OpenGL.Raw.Core32
-
-gl_OFFSET_PROJECTIVE_TEXTURE_2D :: GLenum
-gl_OFFSET_PROJECTIVE_TEXTURE_2D = 0x8850
-
-gl_OFFSET_PROJECTIVE_TEXTURE_2D_SCALE :: GLenum
-gl_OFFSET_PROJECTIVE_TEXTURE_2D_SCALE = 0x8851
-
-gl_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE :: GLenum
-gl_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE = 0x8852
-
-gl_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_SCALE :: GLenum
-gl_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_SCALE = 0x8853
-
-gl_OFFSET_HILO_TEXTURE_2D :: GLenum
-gl_OFFSET_HILO_TEXTURE_2D = 0x8854
-
-gl_OFFSET_HILO_TEXTURE_RECTANGLE :: GLenum
-gl_OFFSET_HILO_TEXTURE_RECTANGLE = 0x8855
-
-gl_OFFSET_HILO_PROJECTIVE_TEXTURE_2D :: GLenum
-gl_OFFSET_HILO_PROJECTIVE_TEXTURE_2D = 0x8856
-
-gl_OFFSET_HILO_PROJECTIVE_TEXTURE_RECTANGLE :: GLenum
-gl_OFFSET_HILO_PROJECTIVE_TEXTURE_RECTANGLE = 0x8857
-
-gl_DEPENDENT_HILO_TEXTURE_2D :: GLenum
-gl_DEPENDENT_HILO_TEXTURE_2D = 0x8858
-
-gl_DEPENDENT_RGB_TEXTURE_3D :: GLenum
-gl_DEPENDENT_RGB_TEXTURE_3D = 0x8859
-
-gl_DEPENDENT_RGB_TEXTURE_CUBE_MAP :: GLenum
-gl_DEPENDENT_RGB_TEXTURE_CUBE_MAP = 0x885A
-
-gl_DOT_PRODUCT_PASS_THROUGH :: GLenum
-gl_DOT_PRODUCT_PASS_THROUGH = 0x885B
-
-gl_DOT_PRODUCT_TEXTURE_1D :: GLenum
-gl_DOT_PRODUCT_TEXTURE_1D = 0x885C
-
-gl_DOT_PRODUCT_AFFINE_DEPTH_REPLACE :: GLenum
-gl_DOT_PRODUCT_AFFINE_DEPTH_REPLACE = 0x885D
-
-gl_HILO8 :: GLenum
-gl_HILO8 = 0x885E
-
-gl_SIGNED_HILO8 :: GLenum
-gl_SIGNED_HILO8 = 0x885F
-
-gl_FORCE_BLUE_TO_ONE :: GLenum
-gl_FORCE_BLUE_TO_ONE = 0x8860
+import Graphics.Rendering.OpenGL.Raw.Tokens
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
@@ -1,122 +1,64 @@
-{-# LANGUAGE CPP #-}
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.NV.TransformFeedback
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All raw functions and tokens from the NV_transform_feedback extension, see
--- <http://www.opengl.org/registry/specs/NV/transform_feedback.txt>.
+-- The <https://www.opengl.org/registry/specs/NV/transform_feedback.txt NV_transform_feedback> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.NV.TransformFeedback (
-   -- * Functions
-   glBindBufferRange,
-   glBindBufferOffset,
-   glBindBufferBase,
-   glTransformFeedbackAttribs,
-   glTransformFeedbackVaryingsNV,
-   glBeginTransformFeedback,
-   glEndTransformFeedback,
-   glGetVaryingLocation,
-   glGetActiveVarying,
-   glActiveVarying,
-   glGetTransformFeedbackVaryingNV,
-   glGetIntegerIndexedv,
-   glGetBooleanIndexedv,
-   -- * Tokens
-   gl_TRANSFORM_FEEDBACK_BUFFER,
-   gl_TRANSFORM_FEEDBACK_BUFFER_START,
-   gl_TRANSFORM_FEEDBACK_BUFFER_SIZE,
-   gl_TRANSFORM_FEEDBACK_RECORD,
-   gl_TRANSFORM_FEEDBACK_BUFFER_BINDING,
-   gl_INTERLEAVED_ATTRIBS,
-   gl_SEPARATE_ATTRIBS,
-   gl_PRIMITIVES_GENERATED,
-   gl_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN,
-   gl_RASTERIZER_DISCARD,
-   gl_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS,
-   gl_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS,
-   gl_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS,
-   gl_TRANSFORM_FEEDBACK_ATTRIBS,
-   gl_ACTIVE_VARYINGS,
-   gl_ACTIVE_VARYING_MAX_LENGTH,
-   gl_TRANSFORM_FEEDBACK_VARYINGS,
-   gl_TRANSFORM_FEEDBACK_BUFFER_MODE,
-   gl_BACK_PRIMARY_COLOR,
-   gl_BACK_SECONDARY_COLOR,
-   gl_TEXTURE_COORD,
-   gl_CLIP_DISTANCE,
-   gl_VERTEX_ID,
-   gl_PRIMITIVE_ID,
-   gl_GENERIC_ATTRIB,
-   gl_POINT_SIZE,
-   gl_FOG_COORDINATE,
-   gl_SECONDARY_COLOR,
-   gl_PRIMARY_COLOR,
-   gl_POSITION,
-   gl_LAYER,
-   gl_UNSIGNED_INT_VEC2,
-   gl_UNSIGNED_INT_VEC3,
-   gl_UNSIGNED_INT_VEC4
+  -- * Enums
+  gl_ACTIVE_VARYINGS_NV,
+  gl_ACTIVE_VARYING_MAX_LENGTH_NV,
+  gl_BACK_PRIMARY_COLOR_NV,
+  gl_BACK_SECONDARY_COLOR_NV,
+  gl_CLIP_DISTANCE_NV,
+  gl_GENERIC_ATTRIB_NV,
+  gl_INTERLEAVED_ATTRIBS_NV,
+  gl_LAYER_NV,
+  gl_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_NV,
+  gl_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_NV,
+  gl_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_NV,
+  gl_NEXT_BUFFER_NV,
+  gl_PRIMITIVES_GENERATED_NV,
+  gl_PRIMITIVE_ID_NV,
+  gl_RASTERIZER_DISCARD_NV,
+  gl_SEPARATE_ATTRIBS_NV,
+  gl_SKIP_COMPONENTS1_NV,
+  gl_SKIP_COMPONENTS2_NV,
+  gl_SKIP_COMPONENTS3_NV,
+  gl_SKIP_COMPONENTS4_NV,
+  gl_TEXTURE_COORD_NV,
+  gl_TRANSFORM_FEEDBACK_ATTRIBS_NV,
+  gl_TRANSFORM_FEEDBACK_BUFFER_BINDING_NV,
+  gl_TRANSFORM_FEEDBACK_BUFFER_MODE_NV,
+  gl_TRANSFORM_FEEDBACK_BUFFER_NV,
+  gl_TRANSFORM_FEEDBACK_BUFFER_SIZE_NV,
+  gl_TRANSFORM_FEEDBACK_BUFFER_START_NV,
+  gl_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_NV,
+  gl_TRANSFORM_FEEDBACK_RECORD_NV,
+  gl_TRANSFORM_FEEDBACK_VARYINGS_NV,
+  gl_VERTEX_ID_NV,
+  -- * Functions
+  glActiveVaryingNV,
+  glBeginTransformFeedbackNV,
+  glBindBufferBaseNV,
+  glBindBufferOffsetNV,
+  glBindBufferRangeNV,
+  glEndTransformFeedbackNV,
+  glGetActiveVaryingNV,
+  glGetTransformFeedbackVaryingNV,
+  glGetVaryingLocationNV,
+  glTransformFeedbackAttribsNV,
+  glTransformFeedbackStreamAttribsNV,
+  glTransformFeedbackVaryingsNV
 ) where
 
-import Foreign.C.Types
-import Graphics.Rendering.OpenGL.Raw.ARB.Compatibility
-import Graphics.Rendering.OpenGL.Raw.Core32
-import Graphics.Rendering.OpenGL.Raw.EXT.DirectStateAccess
-import Foreign.Ptr ( Ptr, FunPtr )
-import Graphics.Rendering.OpenGL.Raw.GetProcAddress ( getExtensionChecked )
-import System.IO.Unsafe ( unsafePerformIO )
-import Graphics.Rendering.OpenGL.Raw.NV.ParameterBufferObject
-import Graphics.Rendering.OpenGL.Raw.NV.RegisterCombiners
-
-#include "HsOpenGLRaw.h"
-
-EXTENSION_ENTRY(dyn_glTransformFeedbackAttribs,ptr_glTransformFeedbackAttribs,"glTransformFeedbackAttribs",glTransformFeedbackAttribs,GLsizei -> Ptr GLint -> GLenum -> IO ())
-EXTENSION_ENTRY(dyn_glTransformFeedbackVaryingsNV,ptr_glTransformFeedbackVaryingsNV,"glTransformFeedbackVaryingsNV",glTransformFeedbackVaryingsNV,GLuint -> GLsizei -> Ptr GLint -> GLenum -> IO ())
-EXTENSION_ENTRY(dyn_glGetVaryingLocation,ptr_glGetVaryingLocation,"glGetVaryingLocation",glGetVaryingLocation,GLuint -> Ptr GLchar -> IO GLint)
-EXTENSION_ENTRY(dyn_glGetActiveVarying,ptr_glGetActiveVarying,"glGetActiveVarying",glGetActiveVarying,GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLsizei -> Ptr GLenum -> Ptr GLchar -> IO ())
-EXTENSION_ENTRY(dyn_glActiveVarying,ptr_glActiveVarying,"glActiveVarying",glActiveVarying,GLuint -> Ptr GLchar -> IO ())
-EXTENSION_ENTRY(dyn_glGetTransformFeedbackVaryingNV,ptr_glGetTransformFeedbackVaryingNV,"glGetTransformFeedbackVaryingNV",glGetTransformFeedbackVaryingNV,GLuint -> GLuint -> Ptr GLint -> IO ())
-
-gl_TRANSFORM_FEEDBACK_RECORD :: GLenum
-gl_TRANSFORM_FEEDBACK_RECORD = 0x8C86
-
-gl_TRANSFORM_FEEDBACK_ATTRIBS :: GLenum
-gl_TRANSFORM_FEEDBACK_ATTRIBS = 0x8C7E
-
-gl_ACTIVE_VARYINGS :: GLenum
-gl_ACTIVE_VARYINGS = 0x8C81
-
-gl_ACTIVE_VARYING_MAX_LENGTH :: GLenum
-gl_ACTIVE_VARYING_MAX_LENGTH = 0x8C82
-
-gl_BACK_PRIMARY_COLOR :: GLenum
-gl_BACK_PRIMARY_COLOR = 0x8C77
-
-gl_BACK_SECONDARY_COLOR :: GLenum
-gl_BACK_SECONDARY_COLOR = 0x8C78
-
-gl_TEXTURE_COORD :: GLenum
-gl_TEXTURE_COORD = 0x8C79
-
-gl_CLIP_DISTANCE :: GLenum
-gl_CLIP_DISTANCE = 0x8C7A
-
-gl_VERTEX_ID :: GLenum
-gl_VERTEX_ID = 0x8C7B
-
-gl_PRIMITIVE_ID :: GLenum
-gl_PRIMITIVE_ID = 0x8C7C
-
-gl_GENERIC_ATTRIB :: GLenum
-gl_GENERIC_ATTRIB = 0x8C7D
-
-gl_LAYER :: GLenum
-gl_LAYER = 0x8DAA
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
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
@@ -1,32 +1,32 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.NV.TransformFeedback2
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All raw functions and tokens from the NV_transform_feedback2 extension, see
--- <http://www.opengl.org/registry/specs/NV/transform_feedback2.txt>.
+-- The <https://www.opengl.org/registry/specs/NV/transform_feedback2.txt NV_transform_feedback2> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.NV.TransformFeedback2 (
-   -- * Functions
-   glBindTransformFeedback,
-   glDeleteTransformFeedbacks,
-   glGenTransformFeedbacks,
-   glIsTransformFeedback,
-   glPauseTransformFeedback,
-   glResumeTransformFeedback,
-   glDrawTransformFeedback,
-   -- * Tokens
-   gl_TRANSFORM_FEEDBACK,
-   gl_TRANSFORM_FEEDBACK_BUFFER_PAUSED,
-   gl_TRANSFORM_FEEDBACK_BUFFER_ACTIVE,
-   gl_TRANSFORM_FEEDBACK_BINDING
+  -- * Enums
+  gl_TRANSFORM_FEEDBACK_BINDING_NV,
+  gl_TRANSFORM_FEEDBACK_BUFFER_ACTIVE_NV,
+  gl_TRANSFORM_FEEDBACK_BUFFER_PAUSED_NV,
+  gl_TRANSFORM_FEEDBACK_NV,
+  -- * Functions
+  glBindTransformFeedbackNV,
+  glDeleteTransformFeedbacksNV,
+  glDrawTransformFeedbackNV,
+  glGenTransformFeedbacksNV,
+  glIsTransformFeedbackNV,
+  glPauseTransformFeedbackNV,
+  glResumeTransformFeedbackNV
 ) where
 
-import Graphics.Rendering.OpenGL.Raw.ARB.TransformFeedback2
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/NV/UniformBufferUnifiedMemory.hs b/src/Graphics/Rendering/OpenGL/Raw/NV/UniformBufferUnifiedMemory.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/NV/UniformBufferUnifiedMemory.hs
@@ -0,0 +1,22 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.NV.UniformBufferUnifiedMemory
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/NV/uniform_buffer_unified_memory.txt NV_uniform_buffer_unified_memory> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.NV.UniformBufferUnifiedMemory (
+  -- * Enums
+  gl_UNIFORM_BUFFER_ADDRESS_NV,
+  gl_UNIFORM_BUFFER_LENGTH_NV,
+  gl_UNIFORM_BUFFER_UNIFIED_NV
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/NV/VDPAUInterop.hs b/src/Graphics/Rendering/OpenGL/Raw/NV/VDPAUInterop.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/NV/VDPAUInterop.hs
@@ -0,0 +1,35 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.NV.VDPAUInterop
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/NV/vdpau_interop.txt NV_vdpau_interop> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.NV.VDPAUInterop (
+  -- * Enums
+  gl_SURFACE_MAPPED_NV,
+  gl_SURFACE_REGISTERED_NV,
+  gl_SURFACE_STATE_NV,
+  gl_WRITE_DISCARD_NV,
+  -- * Functions
+  glVDPAUFiniNV,
+  glVDPAUGetSurfaceivNV,
+  glVDPAUInitNV,
+  glVDPAUIsSurfaceNV,
+  glVDPAUMapSurfacesNV,
+  glVDPAURegisterOutputSurfaceNV,
+  glVDPAURegisterVideoSurfaceNV,
+  glVDPAUSurfaceAccessNV,
+  glVDPAUUnmapSurfacesNV,
+  glVDPAUUnregisterSurfaceNV
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
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
@@ -1,54 +1,28 @@
-{-# LANGUAGE CPP #-}
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.NV.VertexArrayRange
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All raw functions and tokens from the NV_vertex_array_range extension not
--- already in the OpenGL 3.1 core, see
--- <http://www.opengl.org/registry/specs/NV/vertex_array_range.txt>.
+-- The <https://www.opengl.org/registry/specs/NV/vertex_array_range.txt NV_vertex_array_range> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.NV.VertexArrayRange (
-   -- * Functions
-   glVertexArrayRange,
-   glFlushVertexArrayRange,
-   -- * Tokens
-   gl_VERTEX_ARRAY_RANGE,
-   gl_VERTEX_ARRAY_RANGE_LENGTH,
-   gl_VERTEX_ARRAY_RANGE_VALID,
-   gl_MAX_VERTEX_ARRAY_RANGE_ELEMENT,
-   gl_VERTEX_ARRAY_RANGE_POINTER
+  -- * Enums
+  gl_MAX_VERTEX_ARRAY_RANGE_ELEMENT_NV,
+  gl_VERTEX_ARRAY_RANGE_LENGTH_NV,
+  gl_VERTEX_ARRAY_RANGE_NV,
+  gl_VERTEX_ARRAY_RANGE_POINTER_NV,
+  gl_VERTEX_ARRAY_RANGE_VALID_NV,
+  -- * Functions
+  glFlushVertexArrayRangeNV,
+  glVertexArrayRangeNV
 ) where
 
-import Foreign.C.Types
-import Graphics.Rendering.OpenGL.Raw.Types
-import Foreign.Ptr ( Ptr, FunPtr )
-import Graphics.Rendering.OpenGL.Raw.GetProcAddress ( getExtensionChecked )
-import System.IO.Unsafe ( unsafePerformIO )
-
-#include "HsOpenGLRaw.h"
-
-EXTENSION_ENTRY(dyn_glVertexArrayRange,ptr_glVertexArrayRange,"glVertexArrayRange",glVertexArrayRange,GLsizei -> Ptr a -> IO ())
-EXTENSION_ENTRY(dyn_glFlushVertexArrayRange,ptr_glFlushVertexArrayRange,"glFlushVertexArrayRange",glFlushVertexArrayRange,IO ())
-
-gl_VERTEX_ARRAY_RANGE :: GLenum
-gl_VERTEX_ARRAY_RANGE = 0x851D
-
-gl_VERTEX_ARRAY_RANGE_LENGTH :: GLenum
-gl_VERTEX_ARRAY_RANGE_LENGTH = 0x851E
-
-gl_VERTEX_ARRAY_RANGE_VALID :: GLenum
-gl_VERTEX_ARRAY_RANGE_VALID = 0x851F
-
-gl_MAX_VERTEX_ARRAY_RANGE_ELEMENT :: GLenum
-gl_MAX_VERTEX_ARRAY_RANGE_ELEMENT = 0x8520
-
-gl_VERTEX_ARRAY_RANGE_POINTER :: GLenum
-gl_VERTEX_ARRAY_RANGE_POINTER = 0x8521
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/NV/VertexArrayRange2.hs b/src/Graphics/Rendering/OpenGL/Raw/NV/VertexArrayRange2.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/NV/VertexArrayRange2.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/NV/VertexArrayRange2.hs
@@ -1,25 +1,20 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.NV.VertexArrayRange2
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All raw functions and tokens from the NV_vertex_array_range2 extension not
--- already in the OpenGL 3.1 core, see
--- <http://www.opengl.org/registry/specs/NV/vertex_array_range2.txt>.
+-- The <https://www.opengl.org/registry/specs/NV/vertex_array_range2.txt NV_vertex_array_range2> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.NV.VertexArrayRange2 (
-   -- * Tokens
-   gl_VERTEX_ARRAY_RANGE_WITHOUT_FLUSH
+  -- * Enums
+  gl_VERTEX_ARRAY_RANGE_WITHOUT_FLUSH_NV
 ) where
 
-import Graphics.Rendering.OpenGL.Raw.Core32
-
-gl_VERTEX_ARRAY_RANGE_WITHOUT_FLUSH :: GLenum
-gl_VERTEX_ARRAY_RANGE_WITHOUT_FLUSH = 0x8533
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/NV/VertexAttribInteger64Bit.hs b/src/Graphics/Rendering/OpenGL/Raw/NV/VertexAttribInteger64Bit.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/NV/VertexAttribInteger64Bit.hs
@@ -0,0 +1,42 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.NV.VertexAttribInteger64Bit
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/NV/vertex_attrib_integer_64bit.txt NV_vertex_attrib_integer_64bit> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.NV.VertexAttribInteger64Bit (
+  -- * Enums
+  gl_INT64_NV,
+  gl_UNSIGNED_INT64_NV,
+  -- * Functions
+  glGetVertexAttribLi64vNV,
+  glGetVertexAttribLui64vNV,
+  glVertexAttribL1i64NV,
+  glVertexAttribL1i64vNV,
+  glVertexAttribL1ui64NV,
+  glVertexAttribL1ui64vNV,
+  glVertexAttribL2i64NV,
+  glVertexAttribL2i64vNV,
+  glVertexAttribL2ui64NV,
+  glVertexAttribL2ui64vNV,
+  glVertexAttribL3i64NV,
+  glVertexAttribL3i64vNV,
+  glVertexAttribL3ui64NV,
+  glVertexAttribL3ui64vNV,
+  glVertexAttribL4i64NV,
+  glVertexAttribL4i64vNV,
+  glVertexAttribL4ui64NV,
+  glVertexAttribL4ui64vNV,
+  glVertexAttribLFormatNV
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/NV/VertexBufferUnifiedMemory.hs b/src/Graphics/Rendering/OpenGL/Raw/NV/VertexBufferUnifiedMemory.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/NV/VertexBufferUnifiedMemory.hs
@@ -0,0 +1,58 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.NV.VertexBufferUnifiedMemory
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/NV/vertex_buffer_unified_memory.txt NV_vertex_buffer_unified_memory> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.NV.VertexBufferUnifiedMemory (
+  -- * Enums
+  gl_COLOR_ARRAY_ADDRESS_NV,
+  gl_COLOR_ARRAY_LENGTH_NV,
+  gl_DRAW_INDIRECT_ADDRESS_NV,
+  gl_DRAW_INDIRECT_LENGTH_NV,
+  gl_DRAW_INDIRECT_UNIFIED_NV,
+  gl_EDGE_FLAG_ARRAY_ADDRESS_NV,
+  gl_EDGE_FLAG_ARRAY_LENGTH_NV,
+  gl_ELEMENT_ARRAY_ADDRESS_NV,
+  gl_ELEMENT_ARRAY_LENGTH_NV,
+  gl_ELEMENT_ARRAY_UNIFIED_NV,
+  gl_FOG_COORD_ARRAY_ADDRESS_NV,
+  gl_FOG_COORD_ARRAY_LENGTH_NV,
+  gl_INDEX_ARRAY_ADDRESS_NV,
+  gl_INDEX_ARRAY_LENGTH_NV,
+  gl_NORMAL_ARRAY_ADDRESS_NV,
+  gl_NORMAL_ARRAY_LENGTH_NV,
+  gl_SECONDARY_COLOR_ARRAY_ADDRESS_NV,
+  gl_SECONDARY_COLOR_ARRAY_LENGTH_NV,
+  gl_TEXTURE_COORD_ARRAY_ADDRESS_NV,
+  gl_TEXTURE_COORD_ARRAY_LENGTH_NV,
+  gl_VERTEX_ARRAY_ADDRESS_NV,
+  gl_VERTEX_ARRAY_LENGTH_NV,
+  gl_VERTEX_ATTRIB_ARRAY_ADDRESS_NV,
+  gl_VERTEX_ATTRIB_ARRAY_LENGTH_NV,
+  gl_VERTEX_ATTRIB_ARRAY_UNIFIED_NV,
+  -- * Functions
+  glBufferAddressRangeNV,
+  glColorFormatNV,
+  glEdgeFlagFormatNV,
+  glFogCoordFormatNV,
+  glGetIntegerui64i_vNV,
+  glIndexFormatNV,
+  glNormalFormatNV,
+  glSecondaryColorFormatNV,
+  glTexCoordFormatNV,
+  glVertexAttribFormatNV,
+  glVertexAttribIFormatNV,
+  glVertexFormatNV
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
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
@@ -1,474 +1,168 @@
-{-# LANGUAGE CPP #-}
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.NV.VertexProgram
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All raw functions and tokens from the NV_vertex_program extension, see
--- <http://www.opengl.org/registry/specs/NV/vertex_program.txt>.
+-- The <https://www.opengl.org/registry/specs/NV/vertex_program.txt NV_vertex_program> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.NV.VertexProgram (
-   -- * Functions
-   glBindProgramNV,
-   glDeleteProgramsNV,
-   glExecuteProgram,
-   glGenProgramsNV,
-   glAreProgramsResident,
-   glRequestResidentPrograms,
-   glGetProgramParameterfv,
-   glGetProgramParameterdv,
-   glGetProgramivNV,
-   glGetProgramStringNV,
-   glGetTrackMatrixiv,
-   glGetVertexAttribdvNV,
-   glGetVertexAttribfvNV,
-   glGetVertexAttribivNV,
-   glGetVertexAttribPointervNV,
-   glIsProgramNV,
-   glLoadProgram,
-   glProgramParameter4f,
-   glProgramParameter4d,
-   glProgramParameter4dv,
-   glProgramParameter4fv,
-   glProgramParameters4dv,
-   glProgramParameters4fv,
-   glTrackMatrix,
-   glVertexAttribPointerNV,
-   glVertexAttrib1sNV,
-   glVertexAttrib1fNV,
-   glVertexAttrib1dNV,
-   glVertexAttrib2sNV,
-   glVertexAttrib2fNV,
-   glVertexAttrib2dNV,
-   glVertexAttrib3sNV,
-   glVertexAttrib3fNV,
-   glVertexAttrib3dNV,
-   glVertexAttrib4sNV,
-   glVertexAttrib4fNV,
-   glVertexAttrib4dNV,
-   glVertexAttrib4ub,
-   glVertexAttrib1svNV,
-   glVertexAttrib1fvNV,
-   glVertexAttrib1dvNV,
-   glVertexAttrib2svNV,
-   glVertexAttrib2fvNV,
-   glVertexAttrib2dvNV,
-   glVertexAttrib3svNV,
-   glVertexAttrib3fvNV,
-   glVertexAttrib3dvNV,
-   glVertexAttrib4svNV,
-   glVertexAttrib4fvNV,
-   glVertexAttrib4dvNV,
-   glVertexAttrib4ubvNV,
-   glVertexAttribs1sv,
-   glVertexAttribs1fv,
-   glVertexAttribs1dv,
-   glVertexAttribs2sv,
-   glVertexAttribs2fv,
-   glVertexAttribs2dv,
-   glVertexAttribs3sv,
-   glVertexAttribs3fv,
-   glVertexAttribs3dv,
-   glVertexAttribs4sv,
-   glVertexAttribs4fv,
-   glVertexAttribs4dv,
-   glVertexAttribs4ubv,
-   -- * Tokens
-   gl_VERTEX_PROGRAM,
-   gl_VERTEX_PROGRAM_POINT_SIZE,
-   gl_VERTEX_PROGRAM_TWO_SIDE,
-   gl_VERTEX_STATE_PROGRAM,
-   gl_ATTRIB_ARRAY_SIZE,
-   gl_ATTRIB_ARRAY_STRIDE,
-   gl_ATTRIB_ARRAY_TYPE,
-   gl_CURRENT_ATTRIB,
-   gl_PROGRAM_PARAMETER,
-   gl_ATTRIB_ARRAY_POINTER,
-   gl_PROGRAM_TARGET,
-   gl_PROGRAM_LENGTH,
-   gl_PROGRAM_RESIDENT,
-   gl_PROGRAM_STRING,
-   gl_TRACK_MATRIX,
-   gl_TRACK_MATRIX_TRANSFORM,
-   gl_MAX_TRACK_MATRIX_STACK_DEPTH,
-   gl_MAX_TRACK_MATRICES,
-   gl_CURRENT_MATRIX_STACK_DEPTH,
-   gl_CURRENT_MATRIX,
-   gl_VERTEX_PROGRAM_BINDING,
-   gl_PROGRAM_ERROR_POSITION,
-   gl_MODELVIEW_PROJECTION,
-   gl_MATRIX0_NV,
-   gl_MATRIX1_NV,
-   gl_MATRIX2_NV,
-   gl_MATRIX3_NV,
-   gl_MATRIX4_NV,
-   gl_MATRIX5_NV,
-   gl_MATRIX6_NV,
-   gl_MATRIX7_NV,
-   gl_IDENTITY,
-   gl_INVERSE,
-   gl_TRANSPOSE,
-   gl_INVERSE_TRANSPOSE,
-   gl_VERTEX_ATTRIB_ARRAY0,
-   gl_VERTEX_ATTRIB_ARRAY1,
-   gl_VERTEX_ATTRIB_ARRAY2,
-   gl_VERTEX_ATTRIB_ARRAY3,
-   gl_VERTEX_ATTRIB_ARRAY4,
-   gl_VERTEX_ATTRIB_ARRAY5,
-   gl_VERTEX_ATTRIB_ARRAY6,
-   gl_VERTEX_ATTRIB_ARRAY7,
-   gl_VERTEX_ATTRIB_ARRAY8,
-   gl_VERTEX_ATTRIB_ARRAY9,
-   gl_VERTEX_ATTRIB_ARRAY10,
-   gl_VERTEX_ATTRIB_ARRAY11,
-   gl_VERTEX_ATTRIB_ARRAY12,
-   gl_VERTEX_ATTRIB_ARRAY13,
-   gl_VERTEX_ATTRIB_ARRAY14,
-   gl_VERTEX_ATTRIB_ARRAY15,
-   gl_MAP1_VERTEX_ATTRIB0_4,
-   gl_MAP1_VERTEX_ATTRIB1_4,
-   gl_MAP1_VERTEX_ATTRIB2_4,
-   gl_MAP1_VERTEX_ATTRIB3_4,
-   gl_MAP1_VERTEX_ATTRIB4_4,
-   gl_MAP1_VERTEX_ATTRIB5_4,
-   gl_MAP1_VERTEX_ATTRIB6_4,
-   gl_MAP1_VERTEX_ATTRIB7_4,
-   gl_MAP1_VERTEX_ATTRIB8_4,
-   gl_MAP1_VERTEX_ATTRIB9_4,
-   gl_MAP1_VERTEX_ATTRIB10_4,
-   gl_MAP1_VERTEX_ATTRIB11_4,
-   gl_MAP1_VERTEX_ATTRIB12_4,
-   gl_MAP1_VERTEX_ATTRIB13_4,
-   gl_MAP1_VERTEX_ATTRIB14_4,
-   gl_MAP1_VERTEX_ATTRIB15_4,
-   gl_MAP2_VERTEX_ATTRIB0_4,
-   gl_MAP2_VERTEX_ATTRIB1_4,
-   gl_MAP2_VERTEX_ATTRIB2_4,
-   gl_MAP2_VERTEX_ATTRIB3_4,
-   gl_MAP2_VERTEX_ATTRIB4_4,
-   gl_MAP2_VERTEX_ATTRIB5_4,
-   gl_MAP2_VERTEX_ATTRIB6_4,
-   gl_MAP2_VERTEX_ATTRIB7_4,
-   gl_MAP2_VERTEX_ATTRIB8_4,
-   gl_MAP2_VERTEX_ATTRIB9_4,
-   gl_MAP2_VERTEX_ATTRIB10_4,
-   gl_MAP2_VERTEX_ATTRIB11_4,
-   gl_MAP2_VERTEX_ATTRIB12_4,
-   gl_MAP2_VERTEX_ATTRIB13_4,
-   gl_MAP2_VERTEX_ATTRIB14_4,
-   gl_MAP2_VERTEX_ATTRIB15_4
+  -- * Enums
+  gl_ATTRIB_ARRAY_POINTER_NV,
+  gl_ATTRIB_ARRAY_SIZE_NV,
+  gl_ATTRIB_ARRAY_STRIDE_NV,
+  gl_ATTRIB_ARRAY_TYPE_NV,
+  gl_CURRENT_ATTRIB_NV,
+  gl_CURRENT_MATRIX_NV,
+  gl_CURRENT_MATRIX_STACK_DEPTH_NV,
+  gl_IDENTITY_NV,
+  gl_INVERSE_NV,
+  gl_INVERSE_TRANSPOSE_NV,
+  gl_MAP1_VERTEX_ATTRIB0_4_NV,
+  gl_MAP1_VERTEX_ATTRIB10_4_NV,
+  gl_MAP1_VERTEX_ATTRIB11_4_NV,
+  gl_MAP1_VERTEX_ATTRIB12_4_NV,
+  gl_MAP1_VERTEX_ATTRIB13_4_NV,
+  gl_MAP1_VERTEX_ATTRIB14_4_NV,
+  gl_MAP1_VERTEX_ATTRIB15_4_NV,
+  gl_MAP1_VERTEX_ATTRIB1_4_NV,
+  gl_MAP1_VERTEX_ATTRIB2_4_NV,
+  gl_MAP1_VERTEX_ATTRIB3_4_NV,
+  gl_MAP1_VERTEX_ATTRIB4_4_NV,
+  gl_MAP1_VERTEX_ATTRIB5_4_NV,
+  gl_MAP1_VERTEX_ATTRIB6_4_NV,
+  gl_MAP1_VERTEX_ATTRIB7_4_NV,
+  gl_MAP1_VERTEX_ATTRIB8_4_NV,
+  gl_MAP1_VERTEX_ATTRIB9_4_NV,
+  gl_MAP2_VERTEX_ATTRIB0_4_NV,
+  gl_MAP2_VERTEX_ATTRIB10_4_NV,
+  gl_MAP2_VERTEX_ATTRIB11_4_NV,
+  gl_MAP2_VERTEX_ATTRIB12_4_NV,
+  gl_MAP2_VERTEX_ATTRIB13_4_NV,
+  gl_MAP2_VERTEX_ATTRIB14_4_NV,
+  gl_MAP2_VERTEX_ATTRIB15_4_NV,
+  gl_MAP2_VERTEX_ATTRIB1_4_NV,
+  gl_MAP2_VERTEX_ATTRIB2_4_NV,
+  gl_MAP2_VERTEX_ATTRIB3_4_NV,
+  gl_MAP2_VERTEX_ATTRIB4_4_NV,
+  gl_MAP2_VERTEX_ATTRIB5_4_NV,
+  gl_MAP2_VERTEX_ATTRIB6_4_NV,
+  gl_MAP2_VERTEX_ATTRIB7_4_NV,
+  gl_MAP2_VERTEX_ATTRIB8_4_NV,
+  gl_MAP2_VERTEX_ATTRIB9_4_NV,
+  gl_MATRIX0_NV,
+  gl_MATRIX1_NV,
+  gl_MATRIX2_NV,
+  gl_MATRIX3_NV,
+  gl_MATRIX4_NV,
+  gl_MATRIX5_NV,
+  gl_MATRIX6_NV,
+  gl_MATRIX7_NV,
+  gl_MAX_TRACK_MATRICES_NV,
+  gl_MAX_TRACK_MATRIX_STACK_DEPTH_NV,
+  gl_MODELVIEW_PROJECTION_NV,
+  gl_PROGRAM_ERROR_POSITION_NV,
+  gl_PROGRAM_LENGTH_NV,
+  gl_PROGRAM_PARAMETER_NV,
+  gl_PROGRAM_RESIDENT_NV,
+  gl_PROGRAM_STRING_NV,
+  gl_PROGRAM_TARGET_NV,
+  gl_TRACK_MATRIX_NV,
+  gl_TRACK_MATRIX_TRANSFORM_NV,
+  gl_TRANSPOSE_NV,
+  gl_VERTEX_ATTRIB_ARRAY0_NV,
+  gl_VERTEX_ATTRIB_ARRAY10_NV,
+  gl_VERTEX_ATTRIB_ARRAY11_NV,
+  gl_VERTEX_ATTRIB_ARRAY12_NV,
+  gl_VERTEX_ATTRIB_ARRAY13_NV,
+  gl_VERTEX_ATTRIB_ARRAY14_NV,
+  gl_VERTEX_ATTRIB_ARRAY15_NV,
+  gl_VERTEX_ATTRIB_ARRAY1_NV,
+  gl_VERTEX_ATTRIB_ARRAY2_NV,
+  gl_VERTEX_ATTRIB_ARRAY3_NV,
+  gl_VERTEX_ATTRIB_ARRAY4_NV,
+  gl_VERTEX_ATTRIB_ARRAY5_NV,
+  gl_VERTEX_ATTRIB_ARRAY6_NV,
+  gl_VERTEX_ATTRIB_ARRAY7_NV,
+  gl_VERTEX_ATTRIB_ARRAY8_NV,
+  gl_VERTEX_ATTRIB_ARRAY9_NV,
+  gl_VERTEX_PROGRAM_BINDING_NV,
+  gl_VERTEX_PROGRAM_NV,
+  gl_VERTEX_PROGRAM_POINT_SIZE_NV,
+  gl_VERTEX_PROGRAM_TWO_SIDE_NV,
+  gl_VERTEX_STATE_PROGRAM_NV,
+  -- * Functions
+  glAreProgramsResidentNV,
+  glBindProgramNV,
+  glDeleteProgramsNV,
+  glExecuteProgramNV,
+  glGenProgramsNV,
+  glGetProgramParameterdvNV,
+  glGetProgramParameterfvNV,
+  glGetProgramStringNV,
+  glGetProgramivNV,
+  glGetTrackMatrixivNV,
+  glGetVertexAttribPointervNV,
+  glGetVertexAttribdvNV,
+  glGetVertexAttribfvNV,
+  glGetVertexAttribivNV,
+  glIsProgramNV,
+  glLoadProgramNV,
+  glProgramParameter4dNV,
+  glProgramParameter4dvNV,
+  glProgramParameter4fNV,
+  glProgramParameter4fvNV,
+  glProgramParameters4dvNV,
+  glProgramParameters4fvNV,
+  glRequestResidentProgramsNV,
+  glTrackMatrixNV,
+  glVertexAttrib1dNV,
+  glVertexAttrib1dvNV,
+  glVertexAttrib1fNV,
+  glVertexAttrib1fvNV,
+  glVertexAttrib1sNV,
+  glVertexAttrib1svNV,
+  glVertexAttrib2dNV,
+  glVertexAttrib2dvNV,
+  glVertexAttrib2fNV,
+  glVertexAttrib2fvNV,
+  glVertexAttrib2sNV,
+  glVertexAttrib2svNV,
+  glVertexAttrib3dNV,
+  glVertexAttrib3dvNV,
+  glVertexAttrib3fNV,
+  glVertexAttrib3fvNV,
+  glVertexAttrib3sNV,
+  glVertexAttrib3svNV,
+  glVertexAttrib4dNV,
+  glVertexAttrib4dvNV,
+  glVertexAttrib4fNV,
+  glVertexAttrib4fvNV,
+  glVertexAttrib4sNV,
+  glVertexAttrib4svNV,
+  glVertexAttrib4ubNV,
+  glVertexAttrib4ubvNV,
+  glVertexAttribPointerNV,
+  glVertexAttribs1dvNV,
+  glVertexAttribs1fvNV,
+  glVertexAttribs1svNV,
+  glVertexAttribs2dvNV,
+  glVertexAttribs2fvNV,
+  glVertexAttribs2svNV,
+  glVertexAttribs3dvNV,
+  glVertexAttribs3fvNV,
+  glVertexAttribs3svNV,
+  glVertexAttribs4dvNV,
+  glVertexAttribs4fvNV,
+  glVertexAttribs4svNV,
+  glVertexAttribs4ubvNV
 ) where
 
-import Foreign.C.Types
-import Graphics.Rendering.OpenGL.Raw.Types
-import Graphics.Rendering.OpenGL.Raw.ARB.VertexProgram
-import Foreign.Ptr ( Ptr, FunPtr )
-import Graphics.Rendering.OpenGL.Raw.GetProcAddress ( getExtensionChecked )
-import System.IO.Unsafe ( unsafePerformIO )
-
-#include "HsOpenGLRaw.h"
-
-EXTENSION_ENTRY(dyn_glBindProgramNV,ptr_glBindProgramNV,"glBindProgramNV",glBindProgramNV,GLenum -> GLuint -> IO ())
-EXTENSION_ENTRY(dyn_glDeleteProgramsNV,ptr_glDeleteProgramsNV,"glDeleteProgramsNV",glDeleteProgramsNV,GLsizei -> Ptr GLuint -> IO ())
-EXTENSION_ENTRY(dyn_glExecuteProgram,ptr_glExecuteProgram,"glExecuteProgram",glExecuteProgram,GLenum -> GLuint -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(dyn_glGenProgramsNV,ptr_glGenProgramsNV,"glGenProgramsNV",glGenProgramsNV,GLsizei -> Ptr GLuint -> IO ())
-EXTENSION_ENTRY(dyn_glAreProgramsResident,ptr_glAreProgramsResident,"glAreProgramsResident",glAreProgramsResident,GLsizei -> Ptr GLuint -> Ptr GLboolean -> IO GLboolean)
-EXTENSION_ENTRY(dyn_glRequestResidentPrograms,ptr_glRequestResidentPrograms,"glRequestResidentPrograms",glRequestResidentPrograms,GLsizei -> Ptr GLuint -> IO ())
-EXTENSION_ENTRY(dyn_glGetProgramParameterfv,ptr_glGetProgramParameterfv,"glGetProgramParameterfv",glGetProgramParameterfv,GLenum -> GLuint -> GLenum -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(dyn_glGetProgramParameterdv,ptr_glGetProgramParameterdv,"glGetProgramParameterdv",glGetProgramParameterdv,GLenum -> GLuint -> GLenum -> Ptr GLdouble -> IO ())
-EXTENSION_ENTRY(dyn_glGetProgramivNV,ptr_glGetProgramivNV,"glGetProgramivNV",glGetProgramivNV,GLuint -> GLenum -> Ptr GLint -> IO ())
-EXTENSION_ENTRY(dyn_glGetProgramStringNV,ptr_glGetProgramStringNV,"glGetProgramStringNV",glGetProgramStringNV,GLuint -> GLenum -> Ptr GLubyte -> IO ())
-EXTENSION_ENTRY(dyn_glGetTrackMatrixiv,ptr_glGetTrackMatrixiv,"glGetTrackMatrixiv",glGetTrackMatrixiv,GLenum -> GLuint -> GLenum -> Ptr GLint -> IO ())
-EXTENSION_ENTRY(dyn_glGetVertexAttribdvNV,ptr_glGetVertexAttribdvNV,"glGetVertexAttribdvNV",glGetVertexAttribdvNV,GLuint -> GLenum -> Ptr GLdouble -> IO ())
-EXTENSION_ENTRY(dyn_glGetVertexAttribfvNV,ptr_glGetVertexAttribfvNV,"glGetVertexAttribfvNV",glGetVertexAttribfvNV,GLuint -> GLenum -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(dyn_glGetVertexAttribivNV,ptr_glGetVertexAttribivNV,"glGetVertexAttribivNV",glGetVertexAttribivNV,GLuint -> GLenum -> Ptr GLint -> IO ())
-EXTENSION_ENTRY(dyn_glGetVertexAttribPointervNV,ptr_glGetVertexAttribPointervNV,"glGetVertexAttribPointervNV",glGetVertexAttribPointervNV,GLuint -> GLenum -> Ptr (Ptr a) -> IO ())
-EXTENSION_ENTRY(dyn_glIsProgramNV,ptr_glIsProgramNV,"glIsProgramNV",glIsProgramNV,GLuint -> IO GLboolean)
-EXTENSION_ENTRY(dyn_glLoadProgram,ptr_glLoadProgram,"glLoadProgram",glLoadProgram,GLenum -> GLuint -> GLsizei -> Ptr GLubyte -> IO ())
-EXTENSION_ENTRY(dyn_glProgramParameter4f,ptr_glProgramParameter4f,"glProgramParameter4f",glProgramParameter4f,GLenum -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat  -> IO ())
-EXTENSION_ENTRY(dyn_glProgramParameter4d,ptr_glProgramParameter4d,"glProgramParameter4d",glProgramParameter4d,GLenum -> GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble  -> IO ())
-EXTENSION_ENTRY(dyn_glProgramParameter4dv,ptr_glProgramParameter4dv,"glProgramParameter4dv",glProgramParameter4dv,GLenum -> GLuint -> Ptr GLdouble -> IO ())
-EXTENSION_ENTRY(dyn_glProgramParameter4fv,ptr_glProgramParameter4fv,"glProgramParameter4fv",glProgramParameter4fv,GLenum -> GLuint -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(dyn_glProgramParameters4dv,ptr_glProgramParameters4dv,"glProgramParameters4dv",glProgramParameters4dv,GLenum -> GLuint -> GLuint -> Ptr GLdouble -> IO ())
-EXTENSION_ENTRY(dyn_glProgramParameters4fv,ptr_glProgramParameters4fv,"glProgramParameters4fv",glProgramParameters4fv,GLenum -> GLuint -> GLuint -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(dyn_glTrackMatrix,ptr_glTrackMatrix,"glTrackMatrix",glTrackMatrix,GLenum -> GLuint -> GLenum -> GLenum -> IO ())
-EXTENSION_ENTRY(dyn_glVertexAttribPointerNV,ptr_glVertexAttribPointerNV,"glVertexAttribPointerNV",glVertexAttribPointerNV,GLuint -> GLint -> GLenum -> GLsizei -> Ptr a -> IO ())
-EXTENSION_ENTRY(dyn_glVertexAttrib1sNV,ptr_glVertexAttrib1sNV,"glVertexAttrib1sNV",glVertexAttrib1sNV,GLuint -> GLshort -> IO ())
-EXTENSION_ENTRY(dyn_glVertexAttrib1fNV,ptr_glVertexAttrib1fNV,"glVertexAttrib1fNV",glVertexAttrib1fNV,GLuint -> GLfloat -> IO ())
-EXTENSION_ENTRY(dyn_glVertexAttrib1dNV,ptr_glVertexAttrib1dNV,"glVertexAttrib1dNV",glVertexAttrib1dNV,GLuint -> GLdouble -> IO ())
-EXTENSION_ENTRY(dyn_glVertexAttrib2sNV,ptr_glVertexAttrib2sNV,"glVertexAttrib2sNV",glVertexAttrib2sNV,GLuint -> GLshort -> GLshort -> IO ())
-EXTENSION_ENTRY(dyn_glVertexAttrib2fNV,ptr_glVertexAttrib2fNV,"glVertexAttrib2fNV",glVertexAttrib2fNV,GLuint -> GLfloat -> GLfloat -> IO ())
-EXTENSION_ENTRY(dyn_glVertexAttrib2dNV,ptr_glVertexAttrib2dNV,"glVertexAttrib2dNV",glVertexAttrib2dNV,GLuint -> GLdouble -> GLdouble -> IO ())
-EXTENSION_ENTRY(dyn_glVertexAttrib3sNV,ptr_glVertexAttrib3sNV,"glVertexAttrib3sNV",glVertexAttrib3sNV,GLuint -> GLshort -> GLshort -> GLshort -> IO ())
-EXTENSION_ENTRY(dyn_glVertexAttrib3fNV,ptr_glVertexAttrib3fNV,"glVertexAttrib3fNV",glVertexAttrib3fNV,GLuint -> GLfloat -> GLfloat -> GLfloat -> IO ())
-EXTENSION_ENTRY(dyn_glVertexAttrib3dNV,ptr_glVertexAttrib3dNV,"glVertexAttrib3dNV",glVertexAttrib3dNV,GLuint -> GLdouble -> GLdouble -> GLdouble -> IO ())
-EXTENSION_ENTRY(dyn_glVertexAttrib4sNV,ptr_glVertexAttrib4sNV,"glVertexAttrib4sNV",glVertexAttrib4sNV,GLuint -> GLshort -> GLshort -> GLshort -> GLshort -> IO ())
-EXTENSION_ENTRY(dyn_glVertexAttrib4fNV,ptr_glVertexAttrib4fNV,"glVertexAttrib4fNV",glVertexAttrib4fNV,GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
-EXTENSION_ENTRY(dyn_glVertexAttrib4dNV,ptr_glVertexAttrib4dNV,"glVertexAttrib4dNV",glVertexAttrib4dNV,GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
-EXTENSION_ENTRY(dyn_glVertexAttrib4ub,ptr_glVertexAttrib4ub,"glVertexAttrib4ub",glVertexAttrib4ub,GLuint -> GLubyte -> GLubyte -> GLubyte -> GLubyte -> IO ())
-EXTENSION_ENTRY(dyn_glVertexAttrib1svNV,ptr_glVertexAttrib1svNV,"glVertexAttrib1svNV",glVertexAttrib1svNV,GLuint -> Ptr GLshort -> IO ())
-EXTENSION_ENTRY(dyn_glVertexAttrib1fvNV,ptr_glVertexAttrib1fvNV,"glVertexAttrib1fvNV",glVertexAttrib1fvNV,GLuint -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(dyn_glVertexAttrib1dvNV,ptr_glVertexAttrib1dvNV,"glVertexAttrib1dvNV",glVertexAttrib1dvNV,GLuint -> Ptr GLdouble -> IO ())
-EXTENSION_ENTRY(dyn_glVertexAttrib2svNV,ptr_glVertexAttrib2svNV,"glVertexAttrib2svNV",glVertexAttrib2svNV,GLuint -> Ptr GLshort -> IO ())
-EXTENSION_ENTRY(dyn_glVertexAttrib2fvNV,ptr_glVertexAttrib2fvNV,"glVertexAttrib2fvNV",glVertexAttrib2fvNV,GLuint -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(dyn_glVertexAttrib2dvNV,ptr_glVertexAttrib2dvNV,"glVertexAttrib2dvNV",glVertexAttrib2dvNV,GLuint -> Ptr GLdouble -> IO ())
-EXTENSION_ENTRY(dyn_glVertexAttrib3svNV,ptr_glVertexAttrib3svNV,"glVertexAttrib3svNV",glVertexAttrib3svNV,GLuint -> Ptr GLshort -> IO ())
-EXTENSION_ENTRY(dyn_glVertexAttrib3fvNV,ptr_glVertexAttrib3fvNV,"glVertexAttrib3fvNV",glVertexAttrib3fvNV,GLuint -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(dyn_glVertexAttrib3dvNV,ptr_glVertexAttrib3dvNV,"glVertexAttrib3dvNV",glVertexAttrib3dvNV,GLuint -> Ptr GLdouble -> IO ())
-EXTENSION_ENTRY(dyn_glVertexAttrib4svNV,ptr_glVertexAttrib4svNV,"glVertexAttrib4svNV",glVertexAttrib4svNV,GLuint -> Ptr GLshort -> IO ())
-EXTENSION_ENTRY(dyn_glVertexAttrib4fvNV,ptr_glVertexAttrib4fvNV,"glVertexAttrib4fvNV",glVertexAttrib4fvNV,GLuint -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(dyn_glVertexAttrib4dvNV,ptr_glVertexAttrib4dvNV,"glVertexAttrib4dvNV",glVertexAttrib4dvNV,GLuint -> Ptr GLdouble -> IO ())
-EXTENSION_ENTRY(dyn_glVertexAttrib4ubvNV,ptr_glVertexAttrib4ubvNV,"glVertexAttrib4ubvNV",glVertexAttrib4ubvNV,GLuint -> Ptr GLubyte -> IO ())
-EXTENSION_ENTRY(dyn_glVertexAttribs1sv,ptr_glVertexAttribs1sv,"glVertexAttribs1sv",glVertexAttribs1sv,GLuint -> GLsizei -> Ptr GLshort -> IO ())
-EXTENSION_ENTRY(dyn_glVertexAttribs1fv,ptr_glVertexAttribs1fv,"glVertexAttribs1fv",glVertexAttribs1fv,GLuint -> GLsizei -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(dyn_glVertexAttribs1dv,ptr_glVertexAttribs1dv,"glVertexAttribs1dv",glVertexAttribs1dv,GLuint -> GLsizei -> Ptr GLdouble -> IO ())
-EXTENSION_ENTRY(dyn_glVertexAttribs2sv,ptr_glVertexAttribs2sv,"glVertexAttribs2sv",glVertexAttribs2sv,GLuint -> GLsizei -> Ptr GLshort -> IO ())
-EXTENSION_ENTRY(dyn_glVertexAttribs2fv,ptr_glVertexAttribs2fv,"glVertexAttribs2fv",glVertexAttribs2fv,GLuint -> GLsizei -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(dyn_glVertexAttribs2dv,ptr_glVertexAttribs2dv,"glVertexAttribs2dv",glVertexAttribs2dv,GLuint -> GLsizei -> Ptr GLdouble -> IO ())
-EXTENSION_ENTRY(dyn_glVertexAttribs3sv,ptr_glVertexAttribs3sv,"glVertexAttribs3sv",glVertexAttribs3sv,GLuint -> GLsizei -> Ptr GLshort -> IO ())
-EXTENSION_ENTRY(dyn_glVertexAttribs3fv,ptr_glVertexAttribs3fv,"glVertexAttribs3fv",glVertexAttribs3fv,GLuint -> GLsizei -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(dyn_glVertexAttribs3dv,ptr_glVertexAttribs3dv,"glVertexAttribs3dv",glVertexAttribs3dv,GLuint -> GLsizei -> Ptr GLdouble -> IO ())
-EXTENSION_ENTRY(dyn_glVertexAttribs4sv,ptr_glVertexAttribs4sv,"glVertexAttribs4sv",glVertexAttribs4sv,GLuint -> GLsizei -> Ptr GLshort -> IO ())
-EXTENSION_ENTRY(dyn_glVertexAttribs4fv,ptr_glVertexAttribs4fv,"glVertexAttribs4fv",glVertexAttribs4fv,GLuint -> GLsizei -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(dyn_glVertexAttribs4dv,ptr_glVertexAttribs4dv,"glVertexAttribs4dv",glVertexAttribs4dv,GLuint -> GLsizei -> Ptr GLdouble -> IO ())
-EXTENSION_ENTRY(dyn_glVertexAttribs4ubv,ptr_glVertexAttribs4ubv,"glVertexAttribs4ubv",glVertexAttribs4ubv,GLuint -> GLsizei -> Ptr GLubyte -> IO ())
-
-gl_VERTEX_STATE_PROGRAM :: GLenum
-gl_VERTEX_STATE_PROGRAM = 0x8621
-
-gl_ATTRIB_ARRAY_SIZE :: GLenum
-gl_ATTRIB_ARRAY_SIZE = 0x8623
-
-gl_ATTRIB_ARRAY_STRIDE :: GLenum
-gl_ATTRIB_ARRAY_STRIDE = 0x8624
-
-gl_ATTRIB_ARRAY_TYPE :: GLenum
-gl_ATTRIB_ARRAY_TYPE = 0x8625
-
-gl_CURRENT_ATTRIB :: GLenum
-gl_CURRENT_ATTRIB = 0x8626
-
-gl_PROGRAM_PARAMETER :: GLenum
-gl_PROGRAM_PARAMETER = 0x8644
-
-gl_ATTRIB_ARRAY_POINTER :: GLenum
-gl_ATTRIB_ARRAY_POINTER = 0x8645
-
-gl_PROGRAM_TARGET :: GLenum
-gl_PROGRAM_TARGET = 0x8646
-
-gl_PROGRAM_RESIDENT :: GLenum
-gl_PROGRAM_RESIDENT = 0x8647
-
-gl_TRACK_MATRIX :: GLenum
-gl_TRACK_MATRIX = 0x8648
-
-gl_TRACK_MATRIX_TRANSFORM :: GLenum
-gl_TRACK_MATRIX_TRANSFORM = 0x8649
-
-gl_MAX_TRACK_MATRIX_STACK_DEPTH :: GLenum
-gl_MAX_TRACK_MATRIX_STACK_DEPTH = 0x862E
-
-gl_MAX_TRACK_MATRICES :: GLenum
-gl_MAX_TRACK_MATRICES = 0x862F
-
-gl_VERTEX_PROGRAM_BINDING :: GLenum
-gl_VERTEX_PROGRAM_BINDING = 0x864A
-
-gl_MODELVIEW_PROJECTION :: GLenum
-gl_MODELVIEW_PROJECTION = 0x8629
-
--- | Note: We use the NV suffix here, because the name clashes with the ARB_vertex_program.
-gl_MATRIX0_NV :: GLenum
-gl_MATRIX0_NV = 0x8630
-
--- | Note: We use the NV suffix here, because the name clashes with the ARB_vertex_program.
-gl_MATRIX1_NV :: GLenum
-gl_MATRIX1_NV = 0x8631
-
--- | Note: We use the NV suffix here, because the name clashes with the ARB_vertex_program.
-gl_MATRIX2_NV :: GLenum
-gl_MATRIX2_NV = 0x8632
-
--- | Note: We use the NV suffix here, because the name clashes with the ARB_vertex_program.
-gl_MATRIX3_NV :: GLenum
-gl_MATRIX3_NV = 0x8633
-
--- | Note: We use the NV suffix here, because the name clashes with the ARB_vertex_program.
-gl_MATRIX4_NV :: GLenum
-gl_MATRIX4_NV = 0x8634
-
--- | Note: We use the NV suffix here, because the name clashes with the ARB_vertex_program.
-gl_MATRIX5_NV :: GLenum
-gl_MATRIX5_NV = 0x8635
-
--- | Note: We use the NV suffix here, because the name clashes with the ARB_vertex_program.
-gl_MATRIX6_NV :: GLenum
-gl_MATRIX6_NV = 0x8636
-
--- | Note: We use the NV suffix here, because the name clashes with the ARB_vertex_program.
-gl_MATRIX7_NV :: GLenum
-gl_MATRIX7_NV = 0x8637
-
-gl_IDENTITY :: GLenum
-gl_IDENTITY = 0x862A
-
-gl_INVERSE :: GLenum
-gl_INVERSE = 0x862B
-
-gl_TRANSPOSE :: GLenum
-gl_TRANSPOSE = 0x862C
-
-gl_INVERSE_TRANSPOSE :: GLenum
-gl_INVERSE_TRANSPOSE = 0x862D
-
-gl_VERTEX_ATTRIB_ARRAY0 :: GLenum
-gl_VERTEX_ATTRIB_ARRAY0 = 0x8650
-
-gl_VERTEX_ATTRIB_ARRAY1 :: GLenum
-gl_VERTEX_ATTRIB_ARRAY1 = 0x8651
-
-gl_VERTEX_ATTRIB_ARRAY2 :: GLenum
-gl_VERTEX_ATTRIB_ARRAY2 = 0x8652
-
-gl_VERTEX_ATTRIB_ARRAY3 :: GLenum
-gl_VERTEX_ATTRIB_ARRAY3 = 0x8653
-
-gl_VERTEX_ATTRIB_ARRAY4 :: GLenum
-gl_VERTEX_ATTRIB_ARRAY4 = 0x8654
-
-gl_VERTEX_ATTRIB_ARRAY5 :: GLenum
-gl_VERTEX_ATTRIB_ARRAY5 = 0x8655
-
-gl_VERTEX_ATTRIB_ARRAY6 :: GLenum
-gl_VERTEX_ATTRIB_ARRAY6 = 0x8656
-
-gl_VERTEX_ATTRIB_ARRAY7 :: GLenum
-gl_VERTEX_ATTRIB_ARRAY7 = 0x8657
-
-gl_VERTEX_ATTRIB_ARRAY8 :: GLenum
-gl_VERTEX_ATTRIB_ARRAY8 = 0x8658
-
-gl_VERTEX_ATTRIB_ARRAY9 :: GLenum
-gl_VERTEX_ATTRIB_ARRAY9 = 0x8659
-
-gl_VERTEX_ATTRIB_ARRAY10 :: GLenum
-gl_VERTEX_ATTRIB_ARRAY10 = 0x865A
-
-gl_VERTEX_ATTRIB_ARRAY11 :: GLenum
-gl_VERTEX_ATTRIB_ARRAY11 = 0x865B
-
-gl_VERTEX_ATTRIB_ARRAY12 :: GLenum
-gl_VERTEX_ATTRIB_ARRAY12 = 0x865C
-
-gl_VERTEX_ATTRIB_ARRAY13 :: GLenum
-gl_VERTEX_ATTRIB_ARRAY13 = 0x865D
-
-gl_VERTEX_ATTRIB_ARRAY14 :: GLenum
-gl_VERTEX_ATTRIB_ARRAY14 = 0x865E
-
-gl_VERTEX_ATTRIB_ARRAY15 :: GLenum
-gl_VERTEX_ATTRIB_ARRAY15 = 0x865F
-
-gl_MAP1_VERTEX_ATTRIB0_4 :: GLenum
-gl_MAP1_VERTEX_ATTRIB0_4 = 0x8660
-
-gl_MAP1_VERTEX_ATTRIB1_4 :: GLenum
-gl_MAP1_VERTEX_ATTRIB1_4 = 0x8661
-
-gl_MAP1_VERTEX_ATTRIB2_4 :: GLenum
-gl_MAP1_VERTEX_ATTRIB2_4 = 0x8662
-
-gl_MAP1_VERTEX_ATTRIB3_4 :: GLenum
-gl_MAP1_VERTEX_ATTRIB3_4 = 0x8663
-
-gl_MAP1_VERTEX_ATTRIB4_4 :: GLenum
-gl_MAP1_VERTEX_ATTRIB4_4 = 0x8664
-
-gl_MAP1_VERTEX_ATTRIB5_4 :: GLenum
-gl_MAP1_VERTEX_ATTRIB5_4 = 0x8665
-
-gl_MAP1_VERTEX_ATTRIB6_4 :: GLenum
-gl_MAP1_VERTEX_ATTRIB6_4 = 0x8666
-
-gl_MAP1_VERTEX_ATTRIB7_4 :: GLenum
-gl_MAP1_VERTEX_ATTRIB7_4 = 0x8667
-
-gl_MAP1_VERTEX_ATTRIB8_4 :: GLenum
-gl_MAP1_VERTEX_ATTRIB8_4 = 0x8668
-
-gl_MAP1_VERTEX_ATTRIB9_4 :: GLenum
-gl_MAP1_VERTEX_ATTRIB9_4 = 0x8669
-
-gl_MAP1_VERTEX_ATTRIB10_4 :: GLenum
-gl_MAP1_VERTEX_ATTRIB10_4 = 0x866A
-
-gl_MAP1_VERTEX_ATTRIB11_4 :: GLenum
-gl_MAP1_VERTEX_ATTRIB11_4 = 0x866B
-
-gl_MAP1_VERTEX_ATTRIB12_4 :: GLenum
-gl_MAP1_VERTEX_ATTRIB12_4 = 0x866C
-
-gl_MAP1_VERTEX_ATTRIB13_4 :: GLenum
-gl_MAP1_VERTEX_ATTRIB13_4 = 0x866D
-
-gl_MAP1_VERTEX_ATTRIB14_4 :: GLenum
-gl_MAP1_VERTEX_ATTRIB14_4 = 0x866E
-
-gl_MAP1_VERTEX_ATTRIB15_4 :: GLenum
-gl_MAP1_VERTEX_ATTRIB15_4 = 0x866F
-
-gl_MAP2_VERTEX_ATTRIB0_4 :: GLenum
-gl_MAP2_VERTEX_ATTRIB0_4 = 0x8670
-
-gl_MAP2_VERTEX_ATTRIB1_4 :: GLenum
-gl_MAP2_VERTEX_ATTRIB1_4 = 0x8671
-
-gl_MAP2_VERTEX_ATTRIB2_4 :: GLenum
-gl_MAP2_VERTEX_ATTRIB2_4 = 0x8672
-
-gl_MAP2_VERTEX_ATTRIB3_4 :: GLenum
-gl_MAP2_VERTEX_ATTRIB3_4 = 0x8673
-
-gl_MAP2_VERTEX_ATTRIB4_4 :: GLenum
-gl_MAP2_VERTEX_ATTRIB4_4 = 0x8674
-
-gl_MAP2_VERTEX_ATTRIB5_4 :: GLenum
-gl_MAP2_VERTEX_ATTRIB5_4 = 0x8675
-
-gl_MAP2_VERTEX_ATTRIB6_4 :: GLenum
-gl_MAP2_VERTEX_ATTRIB6_4 = 0x8676
-
-gl_MAP2_VERTEX_ATTRIB7_4 :: GLenum
-gl_MAP2_VERTEX_ATTRIB7_4 = 0x8677
-
-gl_MAP2_VERTEX_ATTRIB8_4 :: GLenum
-gl_MAP2_VERTEX_ATTRIB8_4 = 0x8678
-
-gl_MAP2_VERTEX_ATTRIB9_4 :: GLenum
-gl_MAP2_VERTEX_ATTRIB9_4 = 0x8679
-
-gl_MAP2_VERTEX_ATTRIB10_4 :: GLenum
-gl_MAP2_VERTEX_ATTRIB10_4 = 0x867A
-
-gl_MAP2_VERTEX_ATTRIB11_4 :: GLenum
-gl_MAP2_VERTEX_ATTRIB11_4 = 0x867B
-
-gl_MAP2_VERTEX_ATTRIB12_4 :: GLenum
-gl_MAP2_VERTEX_ATTRIB12_4 = 0x867C
-
-gl_MAP2_VERTEX_ATTRIB13_4 :: GLenum
-gl_MAP2_VERTEX_ATTRIB13_4 = 0x867D
-
-gl_MAP2_VERTEX_ATTRIB14_4 :: GLenum
-gl_MAP2_VERTEX_ATTRIB14_4 = 0x867E
-
-gl_MAP2_VERTEX_ATTRIB15_4 :: GLenum
-gl_MAP2_VERTEX_ATTRIB15_4 = 0x867F
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/NV/VertexProgram2Option.hs b/src/Graphics/Rendering/OpenGL/Raw/NV/VertexProgram2Option.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/NV/VertexProgram2Option.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/NV/VertexProgram2Option.hs
@@ -1,22 +1,21 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.NV.VertexProgram2Option
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All tokens from the NV_vertex_program2_option extension, see
--- <http://www.opengl.org/registry/specs/NV/vertex_program2_option.txt>.
+-- The <https://www.opengl.org/registry/specs/NV/vertex_program2_option.txt NV_vertex_program2_option> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.NV.VertexProgram2Option (
-   -- * Tokens
-   gl_MAX_PROGRAM_EXEC_INSTRUCTIONS,
-   gl_MAX_PROGRAM_CALL_DEPTH
+  -- * Enums
+  gl_MAX_PROGRAM_CALL_DEPTH_NV,
+  gl_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV
 ) where
 
-import Graphics.Rendering.OpenGL.Raw.NV.FragmentProgram2
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/NV/VertexProgram3.hs b/src/Graphics/Rendering/OpenGL/Raw/NV/VertexProgram3.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/NV/VertexProgram3.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/NV/VertexProgram3.hs
@@ -1,21 +1,20 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.NV.VertexProgram3
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All tokens from the NV_vertex_program3 extension, see
--- <http://www.opengl.org/registry/specs/NV/vertex_program3.txt>.
+-- The <https://www.opengl.org/registry/specs/NV/vertex_program3.txt NV_vertex_program3> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.NV.VertexProgram3 (
-   -- * Tokens
-   gl_MAX_VERTEX_TEXTURE_IMAGE_UNITS
+  -- * Enums
+  gl_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB
 ) where
 
-import Graphics.Rendering.OpenGL.Raw.ARB.VertexShader
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/NV/VertexProgram4.hs b/src/Graphics/Rendering/OpenGL/Raw/NV/VertexProgram4.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/NV/VertexProgram4.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/NV/VertexProgram4.hs
@@ -1,45 +1,45 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenGL.Raw.NV.VertexProgram4
--- Copyright   :  (c) Sven Panne 2013
+-- Copyright   :  (c) Sven Panne 2015
 -- License     :  BSD3
 --
 -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All tokens from the NV_vertex_program4 extension, see
--- <http://www.opengl.org/registry/specs/NV/vertex_program4.txt>.
+-- The <https://www.opengl.org/registry/specs/NV/vertex_program4.txt NV_vertex_program4> extension.
 --
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenGL.Raw.NV.VertexProgram4 (
-   -- * Functions
-   glVertexAttribI1i,
-   glVertexAttribI2i,
-   glVertexAttribI3i,
-   glVertexAttribI4i,
-   glVertexAttribI1ui,
-   glVertexAttribI2ui,
-   glVertexAttribI3ui,
-   glVertexAttribI4ui,
-   glVertexAttribI1iv,
-   glVertexAttribI2iv,
-   glVertexAttribI3iv,
-   glVertexAttribI4iv,
-   glVertexAttribI1uiv,
-   glVertexAttribI2uiv,
-   glVertexAttribI3uiv,
-   glVertexAttribI4uiv,
-   glVertexAttribI4bv,
-   glVertexAttribI4sv,
-   glVertexAttribI4ubv,
-   glVertexAttribI4usv,
-   glVertexAttribIPointer,
-   glGetVertexAttribIiv,
-   glGetVertexAttribIuiv,
-   -- * Tokens
-   gl_VERTEX_ATTRIB_ARRAY_INTEGER
+  -- * Enums
+  gl_VERTEX_ATTRIB_ARRAY_INTEGER_NV,
+  -- * Functions
+  glGetVertexAttribIivEXT,
+  glGetVertexAttribIuivEXT,
+  glVertexAttribI1iEXT,
+  glVertexAttribI1ivEXT,
+  glVertexAttribI1uiEXT,
+  glVertexAttribI1uivEXT,
+  glVertexAttribI2iEXT,
+  glVertexAttribI2ivEXT,
+  glVertexAttribI2uiEXT,
+  glVertexAttribI2uivEXT,
+  glVertexAttribI3iEXT,
+  glVertexAttribI3ivEXT,
+  glVertexAttribI3uiEXT,
+  glVertexAttribI3uivEXT,
+  glVertexAttribI4bvEXT,
+  glVertexAttribI4iEXT,
+  glVertexAttribI4ivEXT,
+  glVertexAttribI4svEXT,
+  glVertexAttribI4ubvEXT,
+  glVertexAttribI4uiEXT,
+  glVertexAttribI4uivEXT,
+  glVertexAttribI4usvEXT,
+  glVertexAttribIPointerEXT
 ) where
 
-import Graphics.Rendering.OpenGL.Raw.Core32
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/NV/VideoCapture.hs b/src/Graphics/Rendering/OpenGL/Raw/NV/VideoCapture.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/NV/VideoCapture.hs
@@ -0,0 +1,62 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.NV.VideoCapture
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/NV/video_capture.txt NV_video_capture> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.NV.VideoCapture (
+  -- * Enums
+  gl_FAILURE_NV,
+  gl_FIELD_LOWER_NV,
+  gl_FIELD_UPPER_NV,
+  gl_LAST_VIDEO_CAPTURE_STATUS_NV,
+  gl_NEXT_VIDEO_CAPTURE_BUFFER_STATUS_NV,
+  gl_NUM_VIDEO_CAPTURE_STREAMS_NV,
+  gl_PARTIAL_SUCCESS_NV,
+  gl_SUCCESS_NV,
+  gl_VIDEO_BUFFER_BINDING_NV,
+  gl_VIDEO_BUFFER_INTERNAL_FORMAT_NV,
+  gl_VIDEO_BUFFER_NV,
+  gl_VIDEO_BUFFER_PITCH_NV,
+  gl_VIDEO_CAPTURE_FIELD_LOWER_HEIGHT_NV,
+  gl_VIDEO_CAPTURE_FIELD_UPPER_HEIGHT_NV,
+  gl_VIDEO_CAPTURE_FRAME_HEIGHT_NV,
+  gl_VIDEO_CAPTURE_FRAME_WIDTH_NV,
+  gl_VIDEO_CAPTURE_SURFACE_ORIGIN_NV,
+  gl_VIDEO_CAPTURE_TO_422_SUPPORTED_NV,
+  gl_VIDEO_COLOR_CONVERSION_MATRIX_NV,
+  gl_VIDEO_COLOR_CONVERSION_MAX_NV,
+  gl_VIDEO_COLOR_CONVERSION_MIN_NV,
+  gl_VIDEO_COLOR_CONVERSION_OFFSET_NV,
+  gl_YCBAYCR8A_4224_NV,
+  gl_YCBYCR8_422_NV,
+  gl_Z4Y12Z4CB12Z4A12Z4Y12Z4CR12Z4A12_4224_NV,
+  gl_Z4Y12Z4CB12Z4CR12_444_NV,
+  gl_Z4Y12Z4CB12Z4Y12Z4CR12_422_NV,
+  gl_Z6Y10Z6CB10Z6A10Z6Y10Z6CR10Z6A10_4224_NV,
+  gl_Z6Y10Z6CB10Z6Y10Z6CR10_422_NV,
+  -- * Functions
+  glBeginVideoCaptureNV,
+  glBindVideoCaptureStreamBufferNV,
+  glBindVideoCaptureStreamTextureNV,
+  glEndVideoCaptureNV,
+  glGetVideoCaptureStreamdvNV,
+  glGetVideoCaptureStreamfvNV,
+  glGetVideoCaptureStreamivNV,
+  glGetVideoCaptureivNV,
+  glVideoCaptureNV,
+  glVideoCaptureStreamParameterdvNV,
+  glVideoCaptureStreamParameterfvNV,
+  glVideoCaptureStreamParameterivNV
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/NVX.hs b/src/Graphics/Rendering/OpenGL/Raw/NVX.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/NVX.hs
@@ -0,0 +1,21 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.NVX
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- A convenience module, combining all raw modules containing NVX extensions.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.NVX (
+  module Graphics.Rendering.OpenGL.Raw.NVX.ConditionalRender,
+  module Graphics.Rendering.OpenGL.Raw.NVX.GPUMemoryInfo
+) where
+
+import Graphics.Rendering.OpenGL.Raw.NVX.ConditionalRender
+import Graphics.Rendering.OpenGL.Raw.NVX.GPUMemoryInfo
diff --git a/src/Graphics/Rendering/OpenGL/Raw/NVX/ConditionalRender.hs b/src/Graphics/Rendering/OpenGL/Raw/NVX/ConditionalRender.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/NVX/ConditionalRender.hs
@@ -0,0 +1,21 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.NVX.ConditionalRender
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/NVX/conditional_render.txt NVX_conditional_render> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.NVX.ConditionalRender (
+  -- * Functions
+  glBeginConditionalRenderNVX,
+  glEndConditionalRenderNVX
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/NVX/GPUMemoryInfo.hs b/src/Graphics/Rendering/OpenGL/Raw/NVX/GPUMemoryInfo.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/NVX/GPUMemoryInfo.hs
@@ -0,0 +1,24 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.NVX.GPUMemoryInfo
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/NVX/gpu_memory_info.txt NVX_gpu_memory_info> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.NVX.GPUMemoryInfo (
+  -- * Enums
+  gl_GPU_MEMORY_INFO_CURRENT_AVAILABLE_VIDMEM_NVX,
+  gl_GPU_MEMORY_INFO_DEDICATED_VIDMEM_NVX,
+  gl_GPU_MEMORY_INFO_EVICTED_MEMORY_NVX,
+  gl_GPU_MEMORY_INFO_EVICTION_COUNT_NVX,
+  gl_GPU_MEMORY_INFO_TOTAL_AVAILABLE_MEMORY_NVX
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/OES.hs b/src/Graphics/Rendering/OpenGL/Raw/OES.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/OES.hs
@@ -0,0 +1,29 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.OES
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- A convenience module, combining all raw modules containing OES extensions.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.OES (
+  module Graphics.Rendering.OpenGL.Raw.OES.ByteCoordinates,
+  module Graphics.Rendering.OpenGL.Raw.OES.CompressedPalettedTexture,
+  module Graphics.Rendering.OpenGL.Raw.OES.FixedPoint,
+  module Graphics.Rendering.OpenGL.Raw.OES.QueryMatrix,
+  module Graphics.Rendering.OpenGL.Raw.OES.ReadFormat,
+  module Graphics.Rendering.OpenGL.Raw.OES.SinglePrecision
+) where
+
+import Graphics.Rendering.OpenGL.Raw.OES.ByteCoordinates
+import Graphics.Rendering.OpenGL.Raw.OES.CompressedPalettedTexture
+import Graphics.Rendering.OpenGL.Raw.OES.FixedPoint
+import Graphics.Rendering.OpenGL.Raw.OES.QueryMatrix
+import Graphics.Rendering.OpenGL.Raw.OES.ReadFormat
+import Graphics.Rendering.OpenGL.Raw.OES.SinglePrecision
diff --git a/src/Graphics/Rendering/OpenGL/Raw/OES/ByteCoordinates.hs b/src/Graphics/Rendering/OpenGL/Raw/OES/ByteCoordinates.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/OES/ByteCoordinates.hs
@@ -0,0 +1,47 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.OES.ByteCoordinates
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/OES/byte_coordinates.txt OES_byte_coordinates> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.OES.ByteCoordinates (
+  -- * Types
+  GLbyte,
+  -- * Enums
+  gl_BYTE,
+  -- * Functions
+  glMultiTexCoord1bOES,
+  glMultiTexCoord1bvOES,
+  glMultiTexCoord2bOES,
+  glMultiTexCoord2bvOES,
+  glMultiTexCoord3bOES,
+  glMultiTexCoord3bvOES,
+  glMultiTexCoord4bOES,
+  glMultiTexCoord4bvOES,
+  glTexCoord1bOES,
+  glTexCoord1bvOES,
+  glTexCoord2bOES,
+  glTexCoord2bvOES,
+  glTexCoord3bOES,
+  glTexCoord3bvOES,
+  glTexCoord4bOES,
+  glTexCoord4bvOES,
+  glVertex2bOES,
+  glVertex2bvOES,
+  glVertex3bOES,
+  glVertex3bvOES,
+  glVertex4bOES,
+  glVertex4bvOES
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Types
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/OES/CompressedPalettedTexture.hs b/src/Graphics/Rendering/OpenGL/Raw/OES/CompressedPalettedTexture.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/OES/CompressedPalettedTexture.hs
@@ -0,0 +1,29 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.OES.CompressedPalettedTexture
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/OES/compressed_paletted_texture.txt OES_compressed_paletted_texture> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.OES.CompressedPalettedTexture (
+  -- * Enums
+  gl_PALETTE4_R5_G6_B5_OES,
+  gl_PALETTE4_RGB5_A1_OES,
+  gl_PALETTE4_RGB8_OES,
+  gl_PALETTE4_RGBA4_OES,
+  gl_PALETTE4_RGBA8_OES,
+  gl_PALETTE8_R5_G6_B5_OES,
+  gl_PALETTE8_RGB5_A1_OES,
+  gl_PALETTE8_RGB8_OES,
+  gl_PALETTE8_RGBA4_OES,
+  gl_PALETTE8_RGBA8_OES
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/OES/FixedPoint.hs b/src/Graphics/Rendering/OpenGL/Raw/OES/FixedPoint.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/OES/FixedPoint.hs
@@ -0,0 +1,126 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.OES.FixedPoint
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/OES/fixed_point.txt OES_fixed_point> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.OES.FixedPoint (
+  -- * Enums
+  gl_FIXED_OES,
+  -- * Functions
+  glAccumxOES,
+  glAlphaFuncxOES,
+  glBitmapxOES,
+  glBlendColorxOES,
+  glClearAccumxOES,
+  glClearColorxOES,
+  glClearDepthxOES,
+  glClipPlanexOES,
+  glColor3xOES,
+  glColor3xvOES,
+  glColor4xOES,
+  glColor4xvOES,
+  glConvolutionParameterxOES,
+  glConvolutionParameterxvOES,
+  glDepthRangexOES,
+  glEvalCoord1xOES,
+  glEvalCoord1xvOES,
+  glEvalCoord2xOES,
+  glEvalCoord2xvOES,
+  glFeedbackBufferxOES,
+  glFogxOES,
+  glFogxvOES,
+  glFrustumxOES,
+  glGetClipPlanexOES,
+  glGetConvolutionParameterxvOES,
+  glGetFixedvOES,
+  glGetHistogramParameterxvOES,
+  glGetLightxOES,
+  glGetMapxvOES,
+  glGetMaterialxOES,
+  glGetPixelMapxv,
+  glGetTexEnvxvOES,
+  glGetTexGenxvOES,
+  glGetTexLevelParameterxvOES,
+  glGetTexParameterxvOES,
+  glIndexxOES,
+  glIndexxvOES,
+  glLightModelxOES,
+  glLightModelxvOES,
+  glLightxOES,
+  glLightxvOES,
+  glLineWidthxOES,
+  glLoadMatrixxOES,
+  glLoadTransposeMatrixxOES,
+  glMap1xOES,
+  glMap2xOES,
+  glMapGrid1xOES,
+  glMapGrid2xOES,
+  glMaterialxOES,
+  glMaterialxvOES,
+  glMultMatrixxOES,
+  glMultTransposeMatrixxOES,
+  glMultiTexCoord1xOES,
+  glMultiTexCoord1xvOES,
+  glMultiTexCoord2xOES,
+  glMultiTexCoord2xvOES,
+  glMultiTexCoord3xOES,
+  glMultiTexCoord3xvOES,
+  glMultiTexCoord4xOES,
+  glMultiTexCoord4xvOES,
+  glNormal3xOES,
+  glNormal3xvOES,
+  glOrthoxOES,
+  glPassThroughxOES,
+  glPixelMapx,
+  glPixelStorex,
+  glPixelTransferxOES,
+  glPixelZoomxOES,
+  glPointParameterxvOES,
+  glPointSizexOES,
+  glPolygonOffsetxOES,
+  glPrioritizeTexturesxOES,
+  glRasterPos2xOES,
+  glRasterPos2xvOES,
+  glRasterPos3xOES,
+  glRasterPos3xvOES,
+  glRasterPos4xOES,
+  glRasterPos4xvOES,
+  glRectxOES,
+  glRectxvOES,
+  glRotatexOES,
+  glSampleCoverageOES,
+  glScalexOES,
+  glTexCoord1xOES,
+  glTexCoord1xvOES,
+  glTexCoord2xOES,
+  glTexCoord2xvOES,
+  glTexCoord3xOES,
+  glTexCoord3xvOES,
+  glTexCoord4xOES,
+  glTexCoord4xvOES,
+  glTexEnvxOES,
+  glTexEnvxvOES,
+  glTexGenxOES,
+  glTexGenxvOES,
+  glTexParameterxOES,
+  glTexParameterxvOES,
+  glTranslatexOES,
+  glVertex2xOES,
+  glVertex2xvOES,
+  glVertex3xOES,
+  glVertex3xvOES,
+  glVertex4xOES,
+  glVertex4xvOES
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/OES/QueryMatrix.hs b/src/Graphics/Rendering/OpenGL/Raw/OES/QueryMatrix.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/OES/QueryMatrix.hs
@@ -0,0 +1,20 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.OES.QueryMatrix
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/OES/query_matrix.txt OES_query_matrix> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.OES.QueryMatrix (
+  -- * Functions
+  glQueryMatrixxOES
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/OES/ReadFormat.hs b/src/Graphics/Rendering/OpenGL/Raw/OES/ReadFormat.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/OES/ReadFormat.hs
@@ -0,0 +1,21 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.OES.ReadFormat
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/OES/read_format.txt OES_read_format> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.OES.ReadFormat (
+  -- * Enums
+  gl_IMPLEMENTATION_COLOR_READ_FORMAT_OES,
+  gl_IMPLEMENTATION_COLOR_READ_TYPE_OES
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/OES/SinglePrecision.hs b/src/Graphics/Rendering/OpenGL/Raw/OES/SinglePrecision.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/OES/SinglePrecision.hs
@@ -0,0 +1,25 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.OES.SinglePrecision
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/OES/single_precision.txt OES_single_precision> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.OES.SinglePrecision (
+  -- * Functions
+  glClearDepthfOES,
+  glClipPlanefOES,
+  glDepthRangefOES,
+  glFrustumfOES,
+  glGetClipPlanefOES,
+  glOrthofOES
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/OML.hs b/src/Graphics/Rendering/OpenGL/Raw/OML.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/OML.hs
@@ -0,0 +1,23 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.OML
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- A convenience module, combining all raw modules containing OML extensions.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.OML (
+  module Graphics.Rendering.OpenGL.Raw.OML.Interlace,
+  module Graphics.Rendering.OpenGL.Raw.OML.Resample,
+  module Graphics.Rendering.OpenGL.Raw.OML.Subsample
+) where
+
+import Graphics.Rendering.OpenGL.Raw.OML.Interlace
+import Graphics.Rendering.OpenGL.Raw.OML.Resample
+import Graphics.Rendering.OpenGL.Raw.OML.Subsample
diff --git a/src/Graphics/Rendering/OpenGL/Raw/OML/Interlace.hs b/src/Graphics/Rendering/OpenGL/Raw/OML/Interlace.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/OML/Interlace.hs
@@ -0,0 +1,21 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.OML.Interlace
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/OML/interlace.txt OML_interlace> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.OML.Interlace (
+  -- * Enums
+  gl_INTERLACE_OML,
+  gl_INTERLACE_READ_OML
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/OML/Resample.hs b/src/Graphics/Rendering/OpenGL/Raw/OML/Resample.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/OML/Resample.hs
@@ -0,0 +1,25 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.OML.Resample
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/OML/resample.txt OML_resample> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.OML.Resample (
+  -- * Enums
+  gl_PACK_RESAMPLE_OML,
+  gl_RESAMPLE_AVERAGE_OML,
+  gl_RESAMPLE_DECIMATE_OML,
+  gl_RESAMPLE_REPLICATE_OML,
+  gl_RESAMPLE_ZERO_FILL_OML,
+  gl_UNPACK_RESAMPLE_OML
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/OML/Subsample.hs b/src/Graphics/Rendering/OpenGL/Raw/OML/Subsample.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/OML/Subsample.hs
@@ -0,0 +1,21 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.OML.Subsample
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/OML/subsample.txt OML_subsample> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.OML.Subsample (
+  -- * Enums
+  gl_FORMAT_SUBSAMPLE_244_244_OML,
+  gl_FORMAT_SUBSAMPLE_24_24_OML
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/PGI.hs b/src/Graphics/Rendering/OpenGL/Raw/PGI.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/PGI.hs
@@ -0,0 +1,21 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.PGI
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- A convenience module, combining all raw modules containing PGI extensions.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.PGI (
+  module Graphics.Rendering.OpenGL.Raw.PGI.MiscHints,
+  module Graphics.Rendering.OpenGL.Raw.PGI.VertexHints
+) where
+
+import Graphics.Rendering.OpenGL.Raw.PGI.MiscHints
+import Graphics.Rendering.OpenGL.Raw.PGI.VertexHints
diff --git a/src/Graphics/Rendering/OpenGL/Raw/PGI/MiscHints.hs b/src/Graphics/Rendering/OpenGL/Raw/PGI/MiscHints.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/PGI/MiscHints.hs
@@ -0,0 +1,42 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.PGI.MiscHints
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/PGI/misc_hints.txt PGI_misc_hints> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.PGI.MiscHints (
+  -- * Enums
+  gl_ALLOW_DRAW_FRG_HINT_PGI,
+  gl_ALLOW_DRAW_MEM_HINT_PGI,
+  gl_ALLOW_DRAW_OBJ_HINT_PGI,
+  gl_ALLOW_DRAW_WIN_HINT_PGI,
+  gl_ALWAYS_FAST_HINT_PGI,
+  gl_ALWAYS_SOFT_HINT_PGI,
+  gl_BACK_NORMALS_HINT_PGI,
+  gl_CLIP_FAR_HINT_PGI,
+  gl_CLIP_NEAR_HINT_PGI,
+  gl_CONSERVE_MEMORY_HINT_PGI,
+  gl_FULL_STIPPLE_HINT_PGI,
+  gl_NATIVE_GRAPHICS_BEGIN_HINT_PGI,
+  gl_NATIVE_GRAPHICS_END_HINT_PGI,
+  gl_NATIVE_GRAPHICS_HANDLE_PGI,
+  gl_PREFER_DOUBLEBUFFER_HINT_PGI,
+  gl_RECLAIM_MEMORY_HINT_PGI,
+  gl_STRICT_DEPTHFUNC_HINT_PGI,
+  gl_STRICT_LIGHTING_HINT_PGI,
+  gl_STRICT_SCISSOR_HINT_PGI,
+  gl_WIDE_LINE_HINT_PGI,
+  -- * Functions
+  glHintPGI
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/PGI/VertexHints.hs b/src/Graphics/Rendering/OpenGL/Raw/PGI/VertexHints.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/PGI/VertexHints.hs
@@ -0,0 +1,41 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.PGI.VertexHints
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/PGI/vertex_hints.txt PGI_vertex_hints> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.PGI.VertexHints (
+  -- * Enums
+  gl_COLOR3_BIT_PGI,
+  gl_COLOR4_BIT_PGI,
+  gl_EDGEFLAG_BIT_PGI,
+  gl_INDEX_BIT_PGI,
+  gl_MATERIAL_SIDE_HINT_PGI,
+  gl_MAT_AMBIENT_AND_DIFFUSE_BIT_PGI,
+  gl_MAT_AMBIENT_BIT_PGI,
+  gl_MAT_COLOR_INDEXES_BIT_PGI,
+  gl_MAT_DIFFUSE_BIT_PGI,
+  gl_MAT_EMISSION_BIT_PGI,
+  gl_MAT_SHININESS_BIT_PGI,
+  gl_MAT_SPECULAR_BIT_PGI,
+  gl_MAX_VERTEX_HINT_PGI,
+  gl_NORMAL_BIT_PGI,
+  gl_TEXCOORD1_BIT_PGI,
+  gl_TEXCOORD2_BIT_PGI,
+  gl_TEXCOORD3_BIT_PGI,
+  gl_TEXCOORD4_BIT_PGI,
+  gl_VERTEX23_BIT_PGI,
+  gl_VERTEX4_BIT_PGI,
+  gl_VERTEX_CONSISTENT_HINT_PGI,
+  gl_VERTEX_DATA_HINT_PGI
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/REND.hs b/src/Graphics/Rendering/OpenGL/Raw/REND.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/REND.hs
@@ -0,0 +1,19 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.REND
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- A convenience module, combining all raw modules containing REND extensions.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.REND (
+  module Graphics.Rendering.OpenGL.Raw.REND.ScreenCoordinates
+) where
+
+import Graphics.Rendering.OpenGL.Raw.REND.ScreenCoordinates
diff --git a/src/Graphics/Rendering/OpenGL/Raw/REND/ScreenCoordinates.hs b/src/Graphics/Rendering/OpenGL/Raw/REND/ScreenCoordinates.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/REND/ScreenCoordinates.hs
@@ -0,0 +1,21 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.REND.ScreenCoordinates
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/REND/screen_coordinates.txt REND_screen_coordinates> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.REND.ScreenCoordinates (
+  -- * Enums
+  gl_INVERTED_SCREEN_W_REND,
+  gl_SCREEN_COORDINATES_REND
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/S3.hs b/src/Graphics/Rendering/OpenGL/Raw/S3.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/S3.hs
@@ -0,0 +1,19 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.S3
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- A convenience module, combining all raw modules containing S3 extensions.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.S3 (
+  module Graphics.Rendering.OpenGL.Raw.S3.S3TC
+) where
+
+import Graphics.Rendering.OpenGL.Raw.S3.S3TC
diff --git a/src/Graphics/Rendering/OpenGL/Raw/S3/S3TC.hs b/src/Graphics/Rendering/OpenGL/Raw/S3/S3TC.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/S3/S3TC.hs
@@ -0,0 +1,25 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.S3.S3TC
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/S3/s3tc.txt S3_s3tc> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.S3.S3TC (
+  -- * Enums
+  gl_RGB4_S3TC,
+  gl_RGBA4_DXT5_S3TC,
+  gl_RGBA4_S3TC,
+  gl_RGBA_DXT5_S3TC,
+  gl_RGBA_S3TC,
+  gl_RGB_S3TC
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/SGI.hs b/src/Graphics/Rendering/OpenGL/Raw/SGI.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/SGI.hs
@@ -0,0 +1,23 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.SGI
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- A convenience module, combining all raw modules containing SGI extensions.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.SGI (
+  module Graphics.Rendering.OpenGL.Raw.SGI.ColorMatrix,
+  module Graphics.Rendering.OpenGL.Raw.SGI.ColorTable,
+  module Graphics.Rendering.OpenGL.Raw.SGI.TextureColorTable
+) where
+
+import Graphics.Rendering.OpenGL.Raw.SGI.ColorMatrix
+import Graphics.Rendering.OpenGL.Raw.SGI.ColorTable
+import Graphics.Rendering.OpenGL.Raw.SGI.TextureColorTable
diff --git a/src/Graphics/Rendering/OpenGL/Raw/SGI/ColorMatrix.hs b/src/Graphics/Rendering/OpenGL/Raw/SGI/ColorMatrix.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/SGI/ColorMatrix.hs
@@ -0,0 +1,30 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.SGI.ColorMatrix
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/SGI/color_matrix.txt SGI_color_matrix> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.SGI.ColorMatrix (
+  -- * Enums
+  gl_COLOR_MATRIX_SGI,
+  gl_COLOR_MATRIX_STACK_DEPTH_SGI,
+  gl_MAX_COLOR_MATRIX_STACK_DEPTH_SGI,
+  gl_POST_COLOR_MATRIX_ALPHA_BIAS_SGI,
+  gl_POST_COLOR_MATRIX_ALPHA_SCALE_SGI,
+  gl_POST_COLOR_MATRIX_BLUE_BIAS_SGI,
+  gl_POST_COLOR_MATRIX_BLUE_SCALE_SGI,
+  gl_POST_COLOR_MATRIX_GREEN_BIAS_SGI,
+  gl_POST_COLOR_MATRIX_GREEN_SCALE_SGI,
+  gl_POST_COLOR_MATRIX_RED_BIAS_SGI,
+  gl_POST_COLOR_MATRIX_RED_SCALE_SGI
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/SGI/ColorTable.hs b/src/Graphics/Rendering/OpenGL/Raw/SGI/ColorTable.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/SGI/ColorTable.hs
@@ -0,0 +1,44 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.SGI.ColorTable
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/SGI/color_table.txt SGI_color_table> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.SGI.ColorTable (
+  -- * Enums
+  gl_COLOR_TABLE_ALPHA_SIZE_SGI,
+  gl_COLOR_TABLE_BIAS_SGI,
+  gl_COLOR_TABLE_BLUE_SIZE_SGI,
+  gl_COLOR_TABLE_FORMAT_SGI,
+  gl_COLOR_TABLE_GREEN_SIZE_SGI,
+  gl_COLOR_TABLE_INTENSITY_SIZE_SGI,
+  gl_COLOR_TABLE_LUMINANCE_SIZE_SGI,
+  gl_COLOR_TABLE_RED_SIZE_SGI,
+  gl_COLOR_TABLE_SCALE_SGI,
+  gl_COLOR_TABLE_SGI,
+  gl_COLOR_TABLE_WIDTH_SGI,
+  gl_POST_COLOR_MATRIX_COLOR_TABLE_SGI,
+  gl_POST_CONVOLUTION_COLOR_TABLE_SGI,
+  gl_PROXY_COLOR_TABLE_SGI,
+  gl_PROXY_POST_COLOR_MATRIX_COLOR_TABLE_SGI,
+  gl_PROXY_POST_CONVOLUTION_COLOR_TABLE_SGI,
+  -- * Functions
+  glColorTableParameterfvSGI,
+  glColorTableParameterivSGI,
+  glColorTableSGI,
+  glCopyColorTableSGI,
+  glGetColorTableParameterfvSGI,
+  glGetColorTableParameterivSGI,
+  glGetColorTableSGI
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/SGI/TextureColorTable.hs b/src/Graphics/Rendering/OpenGL/Raw/SGI/TextureColorTable.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/SGI/TextureColorTable.hs
@@ -0,0 +1,21 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.SGI.TextureColorTable
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/SGI/texture_color_table.txt SGI_texture_color_table> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.SGI.TextureColorTable (
+  -- * Enums
+  gl_PROXY_TEXTURE_COLOR_TABLE_SGI,
+  gl_TEXTURE_COLOR_TABLE_SGI
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/SGIS.hs b/src/Graphics/Rendering/OpenGL/Raw/SGIS.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/SGIS.hs
@@ -0,0 +1,47 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.SGIS
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- A convenience module, combining all raw modules containing SGIS extensions.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.SGIS (
+  module Graphics.Rendering.OpenGL.Raw.SGIS.DetailTexture,
+  module Graphics.Rendering.OpenGL.Raw.SGIS.FogFunction,
+  module Graphics.Rendering.OpenGL.Raw.SGIS.GenerateMipmap,
+  module Graphics.Rendering.OpenGL.Raw.SGIS.Multisample,
+  module Graphics.Rendering.OpenGL.Raw.SGIS.PixelTexture,
+  module Graphics.Rendering.OpenGL.Raw.SGIS.PointLineTexgen,
+  module Graphics.Rendering.OpenGL.Raw.SGIS.PointParameters,
+  module Graphics.Rendering.OpenGL.Raw.SGIS.SharpenTexture,
+  module Graphics.Rendering.OpenGL.Raw.SGIS.Texture4D,
+  module Graphics.Rendering.OpenGL.Raw.SGIS.TextureBorderClamp,
+  module Graphics.Rendering.OpenGL.Raw.SGIS.TextureColorMask,
+  module Graphics.Rendering.OpenGL.Raw.SGIS.TextureEdgeClamp,
+  module Graphics.Rendering.OpenGL.Raw.SGIS.TextureFilter4,
+  module Graphics.Rendering.OpenGL.Raw.SGIS.TextureLOD,
+  module Graphics.Rendering.OpenGL.Raw.SGIS.TextureSelect
+) where
+
+import Graphics.Rendering.OpenGL.Raw.SGIS.DetailTexture
+import Graphics.Rendering.OpenGL.Raw.SGIS.FogFunction
+import Graphics.Rendering.OpenGL.Raw.SGIS.GenerateMipmap
+import Graphics.Rendering.OpenGL.Raw.SGIS.Multisample
+import Graphics.Rendering.OpenGL.Raw.SGIS.PixelTexture
+import Graphics.Rendering.OpenGL.Raw.SGIS.PointLineTexgen
+import Graphics.Rendering.OpenGL.Raw.SGIS.PointParameters
+import Graphics.Rendering.OpenGL.Raw.SGIS.SharpenTexture
+import Graphics.Rendering.OpenGL.Raw.SGIS.Texture4D
+import Graphics.Rendering.OpenGL.Raw.SGIS.TextureBorderClamp
+import Graphics.Rendering.OpenGL.Raw.SGIS.TextureColorMask
+import Graphics.Rendering.OpenGL.Raw.SGIS.TextureEdgeClamp
+import Graphics.Rendering.OpenGL.Raw.SGIS.TextureFilter4
+import Graphics.Rendering.OpenGL.Raw.SGIS.TextureLOD
+import Graphics.Rendering.OpenGL.Raw.SGIS.TextureSelect
diff --git a/src/Graphics/Rendering/OpenGL/Raw/SGIS/DetailTexture.hs b/src/Graphics/Rendering/OpenGL/Raw/SGIS/DetailTexture.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/SGIS/DetailTexture.hs
@@ -0,0 +1,31 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.SGIS.DetailTexture
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/SGIS/detail_texture.txt SGIS_detail_texture> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.SGIS.DetailTexture (
+  -- * Enums
+  gl_DETAIL_TEXTURE_2D_BINDING_SGIS,
+  gl_DETAIL_TEXTURE_2D_SGIS,
+  gl_DETAIL_TEXTURE_FUNC_POINTS_SGIS,
+  gl_DETAIL_TEXTURE_LEVEL_SGIS,
+  gl_DETAIL_TEXTURE_MODE_SGIS,
+  gl_LINEAR_DETAIL_ALPHA_SGIS,
+  gl_LINEAR_DETAIL_COLOR_SGIS,
+  gl_LINEAR_DETAIL_SGIS,
+  -- * Functions
+  glDetailTexFuncSGIS,
+  glGetDetailTexFuncSGIS
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/SGIS/FogFunction.hs b/src/Graphics/Rendering/OpenGL/Raw/SGIS/FogFunction.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/SGIS/FogFunction.hs
@@ -0,0 +1,26 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.SGIS.FogFunction
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/SGIS/fog_function.txt SGIS_fog_function> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.SGIS.FogFunction (
+  -- * Enums
+  gl_FOG_FUNC_POINTS_SGIS,
+  gl_FOG_FUNC_SGIS,
+  gl_MAX_FOG_FUNC_POINTS_SGIS,
+  -- * Functions
+  glFogFuncSGIS,
+  glGetFogFuncSGIS
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/SGIS/GenerateMipmap.hs b/src/Graphics/Rendering/OpenGL/Raw/SGIS/GenerateMipmap.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/SGIS/GenerateMipmap.hs
@@ -0,0 +1,21 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.SGIS.GenerateMipmap
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/SGIS/generate_mipmap.txt SGIS_generate_mipmap> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.SGIS.GenerateMipmap (
+  -- * Enums
+  gl_GENERATE_MIPMAP_HINT_SGIS,
+  gl_GENERATE_MIPMAP_SGIS
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/SGIS/Multisample.hs b/src/Graphics/Rendering/OpenGL/Raw/SGIS/Multisample.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/SGIS/Multisample.hs
@@ -0,0 +1,39 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.SGIS.Multisample
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/SGIS/multisample.txt SGIS_multisample> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.SGIS.Multisample (
+  -- * Enums
+  gl_1PASS_SGIS,
+  gl_2PASS_0_SGIS,
+  gl_2PASS_1_SGIS,
+  gl_4PASS_0_SGIS,
+  gl_4PASS_1_SGIS,
+  gl_4PASS_2_SGIS,
+  gl_4PASS_3_SGIS,
+  gl_MULTISAMPLE_SGIS,
+  gl_SAMPLES_SGIS,
+  gl_SAMPLE_ALPHA_TO_MASK_SGIS,
+  gl_SAMPLE_ALPHA_TO_ONE_SGIS,
+  gl_SAMPLE_BUFFERS_SGIS,
+  gl_SAMPLE_MASK_INVERT_SGIS,
+  gl_SAMPLE_MASK_SGIS,
+  gl_SAMPLE_MASK_VALUE_SGIS,
+  gl_SAMPLE_PATTERN_SGIS,
+  -- * Functions
+  glSampleMaskSGIS,
+  glSamplePatternSGIS
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/SGIS/PixelTexture.hs b/src/Graphics/Rendering/OpenGL/Raw/SGIS/PixelTexture.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/SGIS/PixelTexture.hs
@@ -0,0 +1,31 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.SGIS.PixelTexture
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/SGIS/pixel_texture.txt SGIS_pixel_texture> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.SGIS.PixelTexture (
+  -- * Enums
+  gl_PIXEL_FRAGMENT_ALPHA_SOURCE_SGIS,
+  gl_PIXEL_FRAGMENT_RGB_SOURCE_SGIS,
+  gl_PIXEL_GROUP_COLOR_SGIS,
+  gl_PIXEL_TEXTURE_SGIS,
+  -- * Functions
+  glGetPixelTexGenParameterfvSGIS,
+  glGetPixelTexGenParameterivSGIS,
+  glPixelTexGenParameterfSGIS,
+  glPixelTexGenParameterfvSGIS,
+  glPixelTexGenParameteriSGIS,
+  glPixelTexGenParameterivSGIS
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/SGIS/PointLineTexgen.hs b/src/Graphics/Rendering/OpenGL/Raw/SGIS/PointLineTexgen.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/SGIS/PointLineTexgen.hs
@@ -0,0 +1,27 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.SGIS.PointLineTexgen
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/SGIS/point_line_texgen.txt SGIS_point_line_texgen> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.SGIS.PointLineTexgen (
+  -- * Enums
+  gl_EYE_DISTANCE_TO_LINE_SGIS,
+  gl_EYE_DISTANCE_TO_POINT_SGIS,
+  gl_EYE_LINE_SGIS,
+  gl_EYE_POINT_SGIS,
+  gl_OBJECT_DISTANCE_TO_LINE_SGIS,
+  gl_OBJECT_DISTANCE_TO_POINT_SGIS,
+  gl_OBJECT_LINE_SGIS,
+  gl_OBJECT_POINT_SGIS
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/SGIS/PointParameters.hs b/src/Graphics/Rendering/OpenGL/Raw/SGIS/PointParameters.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/SGIS/PointParameters.hs
@@ -0,0 +1,27 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.SGIS.PointParameters
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/SGIS/point_parameters.txt SGIS_point_parameters> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.SGIS.PointParameters (
+  -- * Enums
+  gl_DISTANCE_ATTENUATION_SGIS,
+  gl_POINT_FADE_THRESHOLD_SIZE_SGIS,
+  gl_POINT_SIZE_MAX_SGIS,
+  gl_POINT_SIZE_MIN_SGIS,
+  -- * Functions
+  glPointParameterfSGIS,
+  glPointParameterfvSGIS
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/SGIS/SharpenTexture.hs b/src/Graphics/Rendering/OpenGL/Raw/SGIS/SharpenTexture.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/SGIS/SharpenTexture.hs
@@ -0,0 +1,27 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.SGIS.SharpenTexture
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/SGIS/sharpen_texture.txt SGIS_sharpen_texture> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.SGIS.SharpenTexture (
+  -- * Enums
+  gl_LINEAR_SHARPEN_ALPHA_SGIS,
+  gl_LINEAR_SHARPEN_COLOR_SGIS,
+  gl_LINEAR_SHARPEN_SGIS,
+  gl_SHARPEN_TEXTURE_FUNC_POINTS_SGIS,
+  -- * Functions
+  glGetSharpenTexFuncSGIS,
+  glSharpenTexFuncSGIS
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/SGIS/Texture4D.hs b/src/Graphics/Rendering/OpenGL/Raw/SGIS/Texture4D.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/SGIS/Texture4D.hs
@@ -0,0 +1,33 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.SGIS.Texture4D
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/SGIS/texture4D.txt SGIS_texture4D> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.SGIS.Texture4D (
+  -- * Enums
+  gl_MAX_4D_TEXTURE_SIZE_SGIS,
+  gl_PACK_IMAGE_DEPTH_SGIS,
+  gl_PACK_SKIP_VOLUMES_SGIS,
+  gl_PROXY_TEXTURE_4D_SGIS,
+  gl_TEXTURE_4DSIZE_SGIS,
+  gl_TEXTURE_4D_BINDING_SGIS,
+  gl_TEXTURE_4D_SGIS,
+  gl_TEXTURE_WRAP_Q_SGIS,
+  gl_UNPACK_IMAGE_DEPTH_SGIS,
+  gl_UNPACK_SKIP_VOLUMES_SGIS,
+  -- * Functions
+  glTexImage4DSGIS,
+  glTexSubImage4DSGIS
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/SGIS/TextureBorderClamp.hs b/src/Graphics/Rendering/OpenGL/Raw/SGIS/TextureBorderClamp.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/SGIS/TextureBorderClamp.hs
@@ -0,0 +1,20 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.SGIS.TextureBorderClamp
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/SGIS/texture_border_clamp.txt SGIS_texture_border_clamp> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.SGIS.TextureBorderClamp (
+  -- * Enums
+  gl_CLAMP_TO_BORDER_SGIS
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/SGIS/TextureColorMask.hs b/src/Graphics/Rendering/OpenGL/Raw/SGIS/TextureColorMask.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/SGIS/TextureColorMask.hs
@@ -0,0 +1,23 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.SGIS.TextureColorMask
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/SGIS/texture_color_mask.txt SGIS_texture_color_mask> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.SGIS.TextureColorMask (
+  -- * Enums
+  gl_TEXTURE_COLOR_WRITEMASK_SGIS,
+  -- * Functions
+  glTextureColorMaskSGIS
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/SGIS/TextureEdgeClamp.hs b/src/Graphics/Rendering/OpenGL/Raw/SGIS/TextureEdgeClamp.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/SGIS/TextureEdgeClamp.hs
@@ -0,0 +1,20 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.SGIS.TextureEdgeClamp
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/SGIS/texture_edge_clamp.txt SGIS_texture_edge_clamp> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.SGIS.TextureEdgeClamp (
+  -- * Enums
+  gl_CLAMP_TO_EDGE_SGIS
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/SGIS/TextureFilter4.hs b/src/Graphics/Rendering/OpenGL/Raw/SGIS/TextureFilter4.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/SGIS/TextureFilter4.hs
@@ -0,0 +1,25 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.SGIS.TextureFilter4
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/SGIS/texture_filter4.txt SGIS_texture_filter4> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.SGIS.TextureFilter4 (
+  -- * Enums
+  gl_FILTER4_SGIS,
+  gl_TEXTURE_FILTER4_SIZE_SGIS,
+  -- * Functions
+  glGetTexFilterFuncSGIS,
+  glTexFilterFuncSGIS
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/SGIS/TextureLOD.hs b/src/Graphics/Rendering/OpenGL/Raw/SGIS/TextureLOD.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/SGIS/TextureLOD.hs
@@ -0,0 +1,23 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.SGIS.TextureLOD
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/SGIS/texture_lod.txt SGIS_texture_lod> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.SGIS.TextureLOD (
+  -- * Enums
+  gl_TEXTURE_BASE_LEVEL_SGIS,
+  gl_TEXTURE_MAX_LEVEL_SGIS,
+  gl_TEXTURE_MAX_LOD_SGIS,
+  gl_TEXTURE_MIN_LOD_SGIS
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/SGIS/TextureSelect.hs b/src/Graphics/Rendering/OpenGL/Raw/SGIS/TextureSelect.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/SGIS/TextureSelect.hs
@@ -0,0 +1,41 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.SGIS.TextureSelect
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/SGIS/texture_select.txt SGIS_texture_select> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.SGIS.TextureSelect (
+  -- * Enums
+  gl_DUAL_ALPHA12_SGIS,
+  gl_DUAL_ALPHA16_SGIS,
+  gl_DUAL_ALPHA4_SGIS,
+  gl_DUAL_ALPHA8_SGIS,
+  gl_DUAL_INTENSITY12_SGIS,
+  gl_DUAL_INTENSITY16_SGIS,
+  gl_DUAL_INTENSITY4_SGIS,
+  gl_DUAL_INTENSITY8_SGIS,
+  gl_DUAL_LUMINANCE12_SGIS,
+  gl_DUAL_LUMINANCE16_SGIS,
+  gl_DUAL_LUMINANCE4_SGIS,
+  gl_DUAL_LUMINANCE8_SGIS,
+  gl_DUAL_LUMINANCE_ALPHA4_SGIS,
+  gl_DUAL_LUMINANCE_ALPHA8_SGIS,
+  gl_DUAL_TEXTURE_SELECT_SGIS,
+  gl_QUAD_ALPHA4_SGIS,
+  gl_QUAD_ALPHA8_SGIS,
+  gl_QUAD_INTENSITY4_SGIS,
+  gl_QUAD_INTENSITY8_SGIS,
+  gl_QUAD_LUMINANCE4_SGIS,
+  gl_QUAD_LUMINANCE8_SGIS,
+  gl_QUAD_TEXTURE_SELECT_SGIS
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/SGIX.hs b/src/Graphics/Rendering/OpenGL/Raw/SGIX.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/SGIX.hs
@@ -0,0 +1,89 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.SGIX
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- A convenience module, combining all raw modules containing SGIX extensions.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.SGIX (
+  module Graphics.Rendering.OpenGL.Raw.SGIX.AsyncHistogram,
+  module Graphics.Rendering.OpenGL.Raw.SGIX.Async,
+  module Graphics.Rendering.OpenGL.Raw.SGIX.AsyncPixel,
+  module Graphics.Rendering.OpenGL.Raw.SGIX.BlendAlphaMinmax,
+  module Graphics.Rendering.OpenGL.Raw.SGIX.CalligraphicFragment,
+  module Graphics.Rendering.OpenGL.Raw.SGIX.Clipmap,
+  module Graphics.Rendering.OpenGL.Raw.SGIX.ConvolutionAccuracy,
+  module Graphics.Rendering.OpenGL.Raw.SGIX.DepthTexture,
+  module Graphics.Rendering.OpenGL.Raw.SGIX.FlushRaster,
+  module Graphics.Rendering.OpenGL.Raw.SGIX.FogOffset,
+  module Graphics.Rendering.OpenGL.Raw.SGIX.FragmentLighting,
+  module Graphics.Rendering.OpenGL.Raw.SGIX.Framezoom,
+  module Graphics.Rendering.OpenGL.Raw.SGIX.IglooInterface,
+  module Graphics.Rendering.OpenGL.Raw.SGIX.Instruments,
+  module Graphics.Rendering.OpenGL.Raw.SGIX.Interlace,
+  module Graphics.Rendering.OpenGL.Raw.SGIX.IrInstrument1,
+  module Graphics.Rendering.OpenGL.Raw.SGIX.ListPriority,
+  module Graphics.Rendering.OpenGL.Raw.SGIX.PixelTexture,
+  module Graphics.Rendering.OpenGL.Raw.SGIX.PixelTiles,
+  module Graphics.Rendering.OpenGL.Raw.SGIX.PolynomialFFD,
+  module Graphics.Rendering.OpenGL.Raw.SGIX.ReferencePlane,
+  module Graphics.Rendering.OpenGL.Raw.SGIX.Resample,
+  module Graphics.Rendering.OpenGL.Raw.SGIX.ScalebiasHint,
+  module Graphics.Rendering.OpenGL.Raw.SGIX.ShadowAmbient,
+  module Graphics.Rendering.OpenGL.Raw.SGIX.Shadow,
+  module Graphics.Rendering.OpenGL.Raw.SGIX.Sprite,
+  module Graphics.Rendering.OpenGL.Raw.SGIX.Subsample,
+  module Graphics.Rendering.OpenGL.Raw.SGIX.TagSampleBuffer,
+  module Graphics.Rendering.OpenGL.Raw.SGIX.TextureAddEnv,
+  module Graphics.Rendering.OpenGL.Raw.SGIX.TextureCoordinateClamp,
+  module Graphics.Rendering.OpenGL.Raw.SGIX.TextureLODBias,
+  module Graphics.Rendering.OpenGL.Raw.SGIX.TextureMultiBuffer,
+  module Graphics.Rendering.OpenGL.Raw.SGIX.TextureScaleBias,
+  module Graphics.Rendering.OpenGL.Raw.SGIX.VertexPreclip,
+  module Graphics.Rendering.OpenGL.Raw.SGIX.YCrCbA,
+  module Graphics.Rendering.OpenGL.Raw.SGIX.YCrCb
+) where
+
+import Graphics.Rendering.OpenGL.Raw.SGIX.AsyncHistogram
+import Graphics.Rendering.OpenGL.Raw.SGIX.Async
+import Graphics.Rendering.OpenGL.Raw.SGIX.AsyncPixel
+import Graphics.Rendering.OpenGL.Raw.SGIX.BlendAlphaMinmax
+import Graphics.Rendering.OpenGL.Raw.SGIX.CalligraphicFragment
+import Graphics.Rendering.OpenGL.Raw.SGIX.Clipmap
+import Graphics.Rendering.OpenGL.Raw.SGIX.ConvolutionAccuracy
+import Graphics.Rendering.OpenGL.Raw.SGIX.DepthTexture
+import Graphics.Rendering.OpenGL.Raw.SGIX.FlushRaster
+import Graphics.Rendering.OpenGL.Raw.SGIX.FogOffset
+import Graphics.Rendering.OpenGL.Raw.SGIX.FragmentLighting
+import Graphics.Rendering.OpenGL.Raw.SGIX.Framezoom
+import Graphics.Rendering.OpenGL.Raw.SGIX.IglooInterface
+import Graphics.Rendering.OpenGL.Raw.SGIX.Instruments
+import Graphics.Rendering.OpenGL.Raw.SGIX.Interlace
+import Graphics.Rendering.OpenGL.Raw.SGIX.IrInstrument1
+import Graphics.Rendering.OpenGL.Raw.SGIX.ListPriority
+import Graphics.Rendering.OpenGL.Raw.SGIX.PixelTexture
+import Graphics.Rendering.OpenGL.Raw.SGIX.PixelTiles
+import Graphics.Rendering.OpenGL.Raw.SGIX.PolynomialFFD
+import Graphics.Rendering.OpenGL.Raw.SGIX.ReferencePlane
+import Graphics.Rendering.OpenGL.Raw.SGIX.Resample
+import Graphics.Rendering.OpenGL.Raw.SGIX.ScalebiasHint
+import Graphics.Rendering.OpenGL.Raw.SGIX.ShadowAmbient
+import Graphics.Rendering.OpenGL.Raw.SGIX.Shadow
+import Graphics.Rendering.OpenGL.Raw.SGIX.Sprite
+import Graphics.Rendering.OpenGL.Raw.SGIX.Subsample
+import Graphics.Rendering.OpenGL.Raw.SGIX.TagSampleBuffer
+import Graphics.Rendering.OpenGL.Raw.SGIX.TextureAddEnv
+import Graphics.Rendering.OpenGL.Raw.SGIX.TextureCoordinateClamp
+import Graphics.Rendering.OpenGL.Raw.SGIX.TextureLODBias
+import Graphics.Rendering.OpenGL.Raw.SGIX.TextureMultiBuffer
+import Graphics.Rendering.OpenGL.Raw.SGIX.TextureScaleBias
+import Graphics.Rendering.OpenGL.Raw.SGIX.VertexPreclip
+import Graphics.Rendering.OpenGL.Raw.SGIX.YCrCbA
+import Graphics.Rendering.OpenGL.Raw.SGIX.YCrCb
diff --git a/src/Graphics/Rendering/OpenGL/Raw/SGIX/Async.hs b/src/Graphics/Rendering/OpenGL/Raw/SGIX/Async.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/SGIX/Async.hs
@@ -0,0 +1,28 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.SGIX.Async
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/SGIX/async.txt SGIX_async> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.SGIX.Async (
+  -- * Enums
+  gl_ASYNC_MARKER_SGIX,
+  -- * Functions
+  glAsyncMarkerSGIX,
+  glDeleteAsyncMarkersSGIX,
+  glFinishAsyncSGIX,
+  glGenAsyncMarkersSGIX,
+  glIsAsyncMarkerSGIX,
+  glPollAsyncSGIX
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/SGIX/AsyncHistogram.hs b/src/Graphics/Rendering/OpenGL/Raw/SGIX/AsyncHistogram.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/SGIX/AsyncHistogram.hs
@@ -0,0 +1,21 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.SGIX.AsyncHistogram
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/SGIX/async_histogram.txt SGIX_async_histogram> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.SGIX.AsyncHistogram (
+  -- * Enums
+  gl_ASYNC_HISTOGRAM_SGIX,
+  gl_MAX_ASYNC_HISTOGRAM_SGIX
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/SGIX/AsyncPixel.hs b/src/Graphics/Rendering/OpenGL/Raw/SGIX/AsyncPixel.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/SGIX/AsyncPixel.hs
@@ -0,0 +1,25 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.SGIX.AsyncPixel
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/SGIX/async_pixel.txt SGIX_async_pixel> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.SGIX.AsyncPixel (
+  -- * Enums
+  gl_ASYNC_DRAW_PIXELS_SGIX,
+  gl_ASYNC_READ_PIXELS_SGIX,
+  gl_ASYNC_TEX_IMAGE_SGIX,
+  gl_MAX_ASYNC_DRAW_PIXELS_SGIX,
+  gl_MAX_ASYNC_READ_PIXELS_SGIX,
+  gl_MAX_ASYNC_TEX_IMAGE_SGIX
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/SGIX/BlendAlphaMinmax.hs b/src/Graphics/Rendering/OpenGL/Raw/SGIX/BlendAlphaMinmax.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/SGIX/BlendAlphaMinmax.hs
@@ -0,0 +1,21 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.SGIX.BlendAlphaMinmax
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/SGIX/blend_alpha_minmax.txt SGIX_blend_alpha_minmax> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.SGIX.BlendAlphaMinmax (
+  -- * Enums
+  gl_ALPHA_MAX_SGIX,
+  gl_ALPHA_MIN_SGIX
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/SGIX/CalligraphicFragment.hs b/src/Graphics/Rendering/OpenGL/Raw/SGIX/CalligraphicFragment.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/SGIX/CalligraphicFragment.hs
@@ -0,0 +1,20 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.SGIX.CalligraphicFragment
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/SGIX/calligraphic_fragment.txt SGIX_calligraphic_fragment> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.SGIX.CalligraphicFragment (
+  -- * Enums
+  gl_CALLIGRAPHIC_FRAGMENT_SGIX
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/SGIX/Clipmap.hs b/src/Graphics/Rendering/OpenGL/Raw/SGIX/Clipmap.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/SGIX/Clipmap.hs
@@ -0,0 +1,31 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.SGIX.Clipmap
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/SGIX/clipmap.txt SGIX_clipmap> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.SGIX.Clipmap (
+  -- * Enums
+  gl_LINEAR_CLIPMAP_LINEAR_SGIX,
+  gl_LINEAR_CLIPMAP_NEAREST_SGIX,
+  gl_MAX_CLIPMAP_DEPTH_SGIX,
+  gl_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX,
+  gl_NEAREST_CLIPMAP_LINEAR_SGIX,
+  gl_NEAREST_CLIPMAP_NEAREST_SGIX,
+  gl_TEXTURE_CLIPMAP_CENTER_SGIX,
+  gl_TEXTURE_CLIPMAP_DEPTH_SGIX,
+  gl_TEXTURE_CLIPMAP_FRAME_SGIX,
+  gl_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX,
+  gl_TEXTURE_CLIPMAP_OFFSET_SGIX,
+  gl_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/SGIX/ConvolutionAccuracy.hs b/src/Graphics/Rendering/OpenGL/Raw/SGIX/ConvolutionAccuracy.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/SGIX/ConvolutionAccuracy.hs
@@ -0,0 +1,20 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.SGIX.ConvolutionAccuracy
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/SGIX/convolution_accuracy.txt SGIX_convolution_accuracy> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.SGIX.ConvolutionAccuracy (
+  -- * Enums
+  gl_CONVOLUTION_HINT_SGIX
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/SGIX/DepthTexture.hs b/src/Graphics/Rendering/OpenGL/Raw/SGIX/DepthTexture.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/SGIX/DepthTexture.hs
@@ -0,0 +1,22 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.SGIX.DepthTexture
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/SGIX/depth_texture.txt SGIX_depth_texture> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.SGIX.DepthTexture (
+  -- * Enums
+  gl_DEPTH_COMPONENT16_SGIX,
+  gl_DEPTH_COMPONENT24_SGIX,
+  gl_DEPTH_COMPONENT32_SGIX
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/SGIX/FlushRaster.hs b/src/Graphics/Rendering/OpenGL/Raw/SGIX/FlushRaster.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/SGIX/FlushRaster.hs
@@ -0,0 +1,20 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.SGIX.FlushRaster
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/SGIX/flush_raster.txt SGIX_flush_raster> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.SGIX.FlushRaster (
+  -- * Functions
+  glFlushRasterSGIX
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/SGIX/FogOffset.hs b/src/Graphics/Rendering/OpenGL/Raw/SGIX/FogOffset.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/SGIX/FogOffset.hs
@@ -0,0 +1,21 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.SGIX.FogOffset
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/SGIX/fog_offset.txt SGIX_fog_offset> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.SGIX.FogOffset (
+  -- * Enums
+  gl_FOG_OFFSET_SGIX,
+  gl_FOG_OFFSET_VALUE_SGIX
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/SGIX/FragmentLighting.hs b/src/Graphics/Rendering/OpenGL/Raw/SGIX/FragmentLighting.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/SGIX/FragmentLighting.hs
@@ -0,0 +1,59 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.SGIX.FragmentLighting
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/SGIX/fragment_lighting.txt SGIX_fragment_lighting> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.SGIX.FragmentLighting (
+  -- * Enums
+  gl_CURRENT_RASTER_NORMAL_SGIX,
+  gl_FRAGMENT_COLOR_MATERIAL_FACE_SGIX,
+  gl_FRAGMENT_COLOR_MATERIAL_PARAMETER_SGIX,
+  gl_FRAGMENT_COLOR_MATERIAL_SGIX,
+  gl_FRAGMENT_LIGHT0_SGIX,
+  gl_FRAGMENT_LIGHT1_SGIX,
+  gl_FRAGMENT_LIGHT2_SGIX,
+  gl_FRAGMENT_LIGHT3_SGIX,
+  gl_FRAGMENT_LIGHT4_SGIX,
+  gl_FRAGMENT_LIGHT5_SGIX,
+  gl_FRAGMENT_LIGHT6_SGIX,
+  gl_FRAGMENT_LIGHT7_SGIX,
+  gl_FRAGMENT_LIGHTING_SGIX,
+  gl_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX,
+  gl_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX,
+  gl_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX,
+  gl_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX,
+  gl_LIGHT_ENV_MODE_SGIX,
+  gl_MAX_ACTIVE_LIGHTS_SGIX,
+  gl_MAX_FRAGMENT_LIGHTS_SGIX,
+  -- * Functions
+  glFragmentColorMaterialSGIX,
+  glFragmentLightModelfSGIX,
+  glFragmentLightModelfvSGIX,
+  glFragmentLightModeliSGIX,
+  glFragmentLightModelivSGIX,
+  glFragmentLightfSGIX,
+  glFragmentLightfvSGIX,
+  glFragmentLightiSGIX,
+  glFragmentLightivSGIX,
+  glFragmentMaterialfSGIX,
+  glFragmentMaterialfvSGIX,
+  glFragmentMaterialiSGIX,
+  glFragmentMaterialivSGIX,
+  glGetFragmentLightfvSGIX,
+  glGetFragmentLightivSGIX,
+  glGetFragmentMaterialfvSGIX,
+  glGetFragmentMaterialivSGIX,
+  glLightEnviSGIX
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/SGIX/Framezoom.hs b/src/Graphics/Rendering/OpenGL/Raw/SGIX/Framezoom.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/SGIX/Framezoom.hs
@@ -0,0 +1,25 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.SGIX.Framezoom
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/SGIX/framezoom.txt SGIX_framezoom> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.SGIX.Framezoom (
+  -- * Enums
+  gl_FRAMEZOOM_FACTOR_SGIX,
+  gl_FRAMEZOOM_SGIX,
+  gl_MAX_FRAMEZOOM_FACTOR_SGIX,
+  -- * Functions
+  glFrameZoomSGIX
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/SGIX/IglooInterface.hs b/src/Graphics/Rendering/OpenGL/Raw/SGIX/IglooInterface.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/SGIX/IglooInterface.hs
@@ -0,0 +1,20 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.SGIX.IglooInterface
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/SGIX/igloo_interface.txt SGIX_igloo_interface> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.SGIX.IglooInterface (
+  -- * Functions
+  glIglooInterfaceSGIX
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/SGIX/Instruments.hs b/src/Graphics/Rendering/OpenGL/Raw/SGIX/Instruments.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/SGIX/Instruments.hs
@@ -0,0 +1,29 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.SGIX.Instruments
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/SGIX/instruments.txt SGIX_instruments> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.SGIX.Instruments (
+  -- * Enums
+  gl_INSTRUMENT_BUFFER_POINTER_SGIX,
+  gl_INSTRUMENT_MEASUREMENTS_SGIX,
+  -- * Functions
+  glGetInstrumentsSGIX,
+  glInstrumentsBufferSGIX,
+  glPollInstrumentsSGIX,
+  glReadInstrumentsSGIX,
+  glStartInstrumentsSGIX,
+  glStopInstrumentsSGIX
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/SGIX/Interlace.hs b/src/Graphics/Rendering/OpenGL/Raw/SGIX/Interlace.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/SGIX/Interlace.hs
@@ -0,0 +1,20 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.SGIX.Interlace
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/SGIX/interlace.txt SGIX_interlace> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.SGIX.Interlace (
+  -- * Enums
+  gl_INTERLACE_SGIX
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/SGIX/IrInstrument1.hs b/src/Graphics/Rendering/OpenGL/Raw/SGIX/IrInstrument1.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/SGIX/IrInstrument1.hs
@@ -0,0 +1,20 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.SGIX.IrInstrument1
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/SGIX/ir_instrument1.txt SGIX_ir_instrument1> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.SGIX.IrInstrument1 (
+  -- * Enums
+  gl_IR_INSTRUMENT1_SGIX
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/SGIX/ListPriority.hs b/src/Graphics/Rendering/OpenGL/Raw/SGIX/ListPriority.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/SGIX/ListPriority.hs
@@ -0,0 +1,28 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.SGIX.ListPriority
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/SGIX/list_priority.txt SGIX_list_priority> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.SGIX.ListPriority (
+  -- * Enums
+  gl_LIST_PRIORITY_SGIX,
+  -- * Functions
+  glGetListParameterfvSGIX,
+  glGetListParameterivSGIX,
+  glListParameterfSGIX,
+  glListParameterfvSGIX,
+  glListParameteriSGIX,
+  glListParameterivSGIX
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/SGIX/PixelTexture.hs b/src/Graphics/Rendering/OpenGL/Raw/SGIX/PixelTexture.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/SGIX/PixelTexture.hs
@@ -0,0 +1,24 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.SGIX.PixelTexture
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/SGIX/pixel_texture.txt SGIX_pixel_texture> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.SGIX.PixelTexture (
+  -- * Enums
+  gl_PIXEL_TEX_GEN_MODE_SGIX,
+  gl_PIXEL_TEX_GEN_SGIX,
+  -- * Functions
+  glPixelTexGenSGIX
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/SGIX/PixelTiles.hs b/src/Graphics/Rendering/OpenGL/Raw/SGIX/PixelTiles.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/SGIX/PixelTiles.hs
@@ -0,0 +1,27 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.SGIX.PixelTiles
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/SGIX/pixel_tiles.txt SGIX_pixel_tiles> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.SGIX.PixelTiles (
+  -- * Enums
+  gl_PIXEL_TILE_BEST_ALIGNMENT_SGIX,
+  gl_PIXEL_TILE_CACHE_INCREMENT_SGIX,
+  gl_PIXEL_TILE_CACHE_SIZE_SGIX,
+  gl_PIXEL_TILE_GRID_DEPTH_SGIX,
+  gl_PIXEL_TILE_GRID_HEIGHT_SGIX,
+  gl_PIXEL_TILE_GRID_WIDTH_SGIX,
+  gl_PIXEL_TILE_HEIGHT_SGIX,
+  gl_PIXEL_TILE_WIDTH_SGIX
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/SGIX/PolynomialFFD.hs b/src/Graphics/Rendering/OpenGL/Raw/SGIX/PolynomialFFD.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/SGIX/PolynomialFFD.hs
@@ -0,0 +1,31 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.SGIX.PolynomialFFD
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/SGIX/polynomial_ffd.txt SGIX_polynomial_ffd> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.SGIX.PolynomialFFD (
+  -- * Enums
+  gl_DEFORMATIONS_MASK_SGIX,
+  gl_GEOMETRY_DEFORMATION_BIT_SGIX,
+  gl_GEOMETRY_DEFORMATION_SGIX,
+  gl_MAX_DEFORMATION_ORDER_SGIX,
+  gl_TEXTURE_DEFORMATION_BIT_SGIX,
+  gl_TEXTURE_DEFORMATION_SGIX,
+  -- * Functions
+  glDeformSGIX,
+  glDeformationMap3dSGIX,
+  glDeformationMap3fSGIX,
+  glLoadIdentityDeformationMapSGIX
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/SGIX/ReferencePlane.hs b/src/Graphics/Rendering/OpenGL/Raw/SGIX/ReferencePlane.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/SGIX/ReferencePlane.hs
@@ -0,0 +1,24 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.SGIX.ReferencePlane
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/SGIX/reference_plane.txt SGIX_reference_plane> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.SGIX.ReferencePlane (
+  -- * Enums
+  gl_REFERENCE_PLANE_EQUATION_SGIX,
+  gl_REFERENCE_PLANE_SGIX,
+  -- * Functions
+  glReferencePlaneSGIX
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/SGIX/Resample.hs b/src/Graphics/Rendering/OpenGL/Raw/SGIX/Resample.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/SGIX/Resample.hs
@@ -0,0 +1,24 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.SGIX.Resample
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/SGIX/resample.txt SGIX_resample> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.SGIX.Resample (
+  -- * Enums
+  gl_PACK_RESAMPLE_SGIX,
+  gl_RESAMPLE_DECIMATE_SGIX,
+  gl_RESAMPLE_REPLICATE_SGIX,
+  gl_RESAMPLE_ZERO_FILL_SGIX,
+  gl_UNPACK_RESAMPLE_SGIX
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/SGIX/ScalebiasHint.hs b/src/Graphics/Rendering/OpenGL/Raw/SGIX/ScalebiasHint.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/SGIX/ScalebiasHint.hs
@@ -0,0 +1,20 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.SGIX.ScalebiasHint
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/SGIX/scalebias_hint.txt SGIX_scalebias_hint> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.SGIX.ScalebiasHint (
+  -- * Enums
+  gl_SCALEBIAS_HINT_SGIX
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/SGIX/Shadow.hs b/src/Graphics/Rendering/OpenGL/Raw/SGIX/Shadow.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/SGIX/Shadow.hs
@@ -0,0 +1,23 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.SGIX.Shadow
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/SGIX/shadow.txt SGIX_shadow> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.SGIX.Shadow (
+  -- * Enums
+  gl_TEXTURE_COMPARE_OPERATOR_SGIX,
+  gl_TEXTURE_COMPARE_SGIX,
+  gl_TEXTURE_GEQUAL_R_SGIX,
+  gl_TEXTURE_LEQUAL_R_SGIX
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/SGIX/ShadowAmbient.hs b/src/Graphics/Rendering/OpenGL/Raw/SGIX/ShadowAmbient.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/SGIX/ShadowAmbient.hs
@@ -0,0 +1,20 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.SGIX.ShadowAmbient
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/SGIX/shadow_ambient.txt SGIX_shadow_ambient> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.SGIX.ShadowAmbient (
+  -- * Enums
+  gl_SHADOW_AMBIENT_SGIX
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/SGIX/Sprite.hs b/src/Graphics/Rendering/OpenGL/Raw/SGIX/Sprite.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/SGIX/Sprite.hs
@@ -0,0 +1,32 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.SGIX.Sprite
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/SGIX/sprite.txt SGIX_sprite> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.SGIX.Sprite (
+  -- * Enums
+  gl_SPRITE_AXIAL_SGIX,
+  gl_SPRITE_AXIS_SGIX,
+  gl_SPRITE_EYE_ALIGNED_SGIX,
+  gl_SPRITE_MODE_SGIX,
+  gl_SPRITE_OBJECT_ALIGNED_SGIX,
+  gl_SPRITE_SGIX,
+  gl_SPRITE_TRANSLATION_SGIX,
+  -- * Functions
+  glSpriteParameterfSGIX,
+  glSpriteParameterfvSGIX,
+  glSpriteParameteriSGIX,
+  glSpriteParameterivSGIX
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/SGIX/Subsample.hs b/src/Graphics/Rendering/OpenGL/Raw/SGIX/Subsample.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/SGIX/Subsample.hs
@@ -0,0 +1,24 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.SGIX.Subsample
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/SGIX/subsample.txt SGIX_subsample> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.SGIX.Subsample (
+  -- * Enums
+  gl_PACK_SUBSAMPLE_RATE_SGIX,
+  gl_PIXEL_SUBSAMPLE_2424_SGIX,
+  gl_PIXEL_SUBSAMPLE_4242_SGIX,
+  gl_PIXEL_SUBSAMPLE_4444_SGIX,
+  gl_UNPACK_SUBSAMPLE_RATE_SGIX
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/SGIX/TagSampleBuffer.hs b/src/Graphics/Rendering/OpenGL/Raw/SGIX/TagSampleBuffer.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/SGIX/TagSampleBuffer.hs
@@ -0,0 +1,20 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.SGIX.TagSampleBuffer
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/SGIX/tag_sample_buffer.txt SGIX_tag_sample_buffer> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.SGIX.TagSampleBuffer (
+  -- * Functions
+  glTagSampleBufferSGIX
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/SGIX/TextureAddEnv.hs b/src/Graphics/Rendering/OpenGL/Raw/SGIX/TextureAddEnv.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/SGIX/TextureAddEnv.hs
@@ -0,0 +1,20 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.SGIX.TextureAddEnv
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/SGIX/texture_add_env.txt SGIX_texture_add_env> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.SGIX.TextureAddEnv (
+  -- * Enums
+  gl_TEXTURE_ENV_BIAS_SGIX
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/SGIX/TextureCoordinateClamp.hs b/src/Graphics/Rendering/OpenGL/Raw/SGIX/TextureCoordinateClamp.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/SGIX/TextureCoordinateClamp.hs
@@ -0,0 +1,22 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.SGIX.TextureCoordinateClamp
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/SGIX/texture_coordinate_clamp.txt SGIX_texture_coordinate_clamp> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.SGIX.TextureCoordinateClamp (
+  -- * Enums
+  gl_TEXTURE_MAX_CLAMP_R_SGIX,
+  gl_TEXTURE_MAX_CLAMP_S_SGIX,
+  gl_TEXTURE_MAX_CLAMP_T_SGIX
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/SGIX/TextureLODBias.hs b/src/Graphics/Rendering/OpenGL/Raw/SGIX/TextureLODBias.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/SGIX/TextureLODBias.hs
@@ -0,0 +1,22 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.SGIX.TextureLODBias
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/SGIX/texture_lod_bias.txt SGIX_texture_lod_bias> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.SGIX.TextureLODBias (
+  -- * Enums
+  gl_TEXTURE_LOD_BIAS_R_SGIX,
+  gl_TEXTURE_LOD_BIAS_S_SGIX,
+  gl_TEXTURE_LOD_BIAS_T_SGIX
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/SGIX/TextureMultiBuffer.hs b/src/Graphics/Rendering/OpenGL/Raw/SGIX/TextureMultiBuffer.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/SGIX/TextureMultiBuffer.hs
@@ -0,0 +1,20 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.SGIX.TextureMultiBuffer
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/SGIX/texture_multi_buffer.txt SGIX_texture_multi_buffer> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.SGIX.TextureMultiBuffer (
+  -- * Enums
+  gl_TEXTURE_MULTI_BUFFER_HINT_SGIX
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/SGIX/TextureScaleBias.hs b/src/Graphics/Rendering/OpenGL/Raw/SGIX/TextureScaleBias.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/SGIX/TextureScaleBias.hs
@@ -0,0 +1,23 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.SGIX.TextureScaleBias
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/SGIX/texture_scale_bias.txt SGIX_texture_scale_bias> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.SGIX.TextureScaleBias (
+  -- * Enums
+  gl_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX,
+  gl_POST_TEXTURE_FILTER_BIAS_SGIX,
+  gl_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX,
+  gl_POST_TEXTURE_FILTER_SCALE_SGIX
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/SGIX/VertexPreclip.hs b/src/Graphics/Rendering/OpenGL/Raw/SGIX/VertexPreclip.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/SGIX/VertexPreclip.hs
@@ -0,0 +1,21 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.SGIX.VertexPreclip
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/SGIX/vertex_preclip.txt SGIX_vertex_preclip> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.SGIX.VertexPreclip (
+  -- * Enums
+  gl_VERTEX_PRECLIP_HINT_SGIX,
+  gl_VERTEX_PRECLIP_SGIX
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/SGIX/YCrCb.hs b/src/Graphics/Rendering/OpenGL/Raw/SGIX/YCrCb.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/SGIX/YCrCb.hs
@@ -0,0 +1,21 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.SGIX.YCrCb
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/SGIX/ycrcb.txt SGIX_ycrcb> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.SGIX.YCrCb (
+  -- * Enums
+  gl_YCRCB_422_SGIX,
+  gl_YCRCB_444_SGIX
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/SGIX/YCrCbA.hs b/src/Graphics/Rendering/OpenGL/Raw/SGIX/YCrCbA.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/SGIX/YCrCbA.hs
@@ -0,0 +1,21 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.SGIX.YCrCbA
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/SGIX/ycrcba.txt SGIX_ycrcba> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.SGIX.YCrCbA (
+  -- * Enums
+  gl_YCRCBA_SGIX,
+  gl_YCRCB_SGIX
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/SUN.hs b/src/Graphics/Rendering/OpenGL/Raw/SUN.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/SUN.hs
@@ -0,0 +1,29 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.SUN
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- A convenience module, combining all raw modules containing SUN extensions.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.SUN (
+  module Graphics.Rendering.OpenGL.Raw.SUN.ConvolutionBorderModes,
+  module Graphics.Rendering.OpenGL.Raw.SUN.GlobalAlpha,
+  module Graphics.Rendering.OpenGL.Raw.SUN.MeshArray,
+  module Graphics.Rendering.OpenGL.Raw.SUN.SliceAccum,
+  module Graphics.Rendering.OpenGL.Raw.SUN.TriangleList,
+  module Graphics.Rendering.OpenGL.Raw.SUN.Vertex
+) where
+
+import Graphics.Rendering.OpenGL.Raw.SUN.ConvolutionBorderModes
+import Graphics.Rendering.OpenGL.Raw.SUN.GlobalAlpha
+import Graphics.Rendering.OpenGL.Raw.SUN.MeshArray
+import Graphics.Rendering.OpenGL.Raw.SUN.SliceAccum
+import Graphics.Rendering.OpenGL.Raw.SUN.TriangleList
+import Graphics.Rendering.OpenGL.Raw.SUN.Vertex
diff --git a/src/Graphics/Rendering/OpenGL/Raw/SUN/ConvolutionBorderModes.hs b/src/Graphics/Rendering/OpenGL/Raw/SUN/ConvolutionBorderModes.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/SUN/ConvolutionBorderModes.hs
@@ -0,0 +1,20 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.SUN.ConvolutionBorderModes
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/SUN/convolution_border_modes.txt SUN_convolution_border_modes> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.SUN.ConvolutionBorderModes (
+  -- * Enums
+  gl_WRAP_BORDER_SUN
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/SUN/GlobalAlpha.hs b/src/Graphics/Rendering/OpenGL/Raw/SUN/GlobalAlpha.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/SUN/GlobalAlpha.hs
@@ -0,0 +1,31 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.SUN.GlobalAlpha
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/SUN/global_alpha.txt SUN_global_alpha> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.SUN.GlobalAlpha (
+  -- * Enums
+  gl_GLOBAL_ALPHA_FACTOR_SUN,
+  gl_GLOBAL_ALPHA_SUN,
+  -- * Functions
+  glGlobalAlphaFactorbSUN,
+  glGlobalAlphaFactordSUN,
+  glGlobalAlphaFactorfSUN,
+  glGlobalAlphaFactoriSUN,
+  glGlobalAlphaFactorsSUN,
+  glGlobalAlphaFactorubSUN,
+  glGlobalAlphaFactoruiSUN,
+  glGlobalAlphaFactorusSUN
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/SUN/MeshArray.hs b/src/Graphics/Rendering/OpenGL/Raw/SUN/MeshArray.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/SUN/MeshArray.hs
@@ -0,0 +1,24 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.SUN.MeshArray
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/SUN/mesh_array.txt SUN_mesh_array> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.SUN.MeshArray (
+  -- * Enums
+  gl_QUAD_MESH_SUN,
+  gl_TRIANGLE_MESH_SUN,
+  -- * Functions
+  glDrawMeshArraysSUN
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/SUN/SliceAccum.hs b/src/Graphics/Rendering/OpenGL/Raw/SUN/SliceAccum.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/SUN/SliceAccum.hs
@@ -0,0 +1,20 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.SUN.SliceAccum
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/SUN/slice_accum.txt SUN_slice_accum> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.SUN.SliceAccum (
+  -- * Enums
+  gl_SLICE_ACCUM_SUN
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/SUN/TriangleList.hs b/src/Graphics/Rendering/OpenGL/Raw/SUN/TriangleList.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/SUN/TriangleList.hs
@@ -0,0 +1,45 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.SUN.TriangleList
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/SUN/triangle_list.txt SUN_triangle_list> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.SUN.TriangleList (
+  -- * Enums
+  gl_R1UI_C3F_V3F_SUN,
+  gl_R1UI_C4F_N3F_V3F_SUN,
+  gl_R1UI_C4UB_V3F_SUN,
+  gl_R1UI_N3F_V3F_SUN,
+  gl_R1UI_T2F_C4F_N3F_V3F_SUN,
+  gl_R1UI_T2F_N3F_V3F_SUN,
+  gl_R1UI_T2F_V3F_SUN,
+  gl_R1UI_V3F_SUN,
+  gl_REPLACEMENT_CODE_ARRAY_POINTER_SUN,
+  gl_REPLACEMENT_CODE_ARRAY_STRIDE_SUN,
+  gl_REPLACEMENT_CODE_ARRAY_SUN,
+  gl_REPLACEMENT_CODE_ARRAY_TYPE_SUN,
+  gl_REPLACEMENT_CODE_SUN,
+  gl_REPLACE_MIDDLE_SUN,
+  gl_REPLACE_OLDEST_SUN,
+  gl_RESTART_SUN,
+  gl_TRIANGLE_LIST_SUN,
+  -- * Functions
+  glReplacementCodePointerSUN,
+  glReplacementCodeubSUN,
+  glReplacementCodeubvSUN,
+  glReplacementCodeuiSUN,
+  glReplacementCodeuivSUN,
+  glReplacementCodeusSUN,
+  glReplacementCodeusvSUN
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/SUN/Vertex.hs b/src/Graphics/Rendering/OpenGL/Raw/SUN/Vertex.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/SUN/Vertex.hs
@@ -0,0 +1,59 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.SUN.Vertex
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/SUN/vertex.txt SUN_vertex> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.SUN.Vertex (
+  -- * Functions
+  glColor3fVertex3fSUN,
+  glColor3fVertex3fvSUN,
+  glColor4fNormal3fVertex3fSUN,
+  glColor4fNormal3fVertex3fvSUN,
+  glColor4ubVertex2fSUN,
+  glColor4ubVertex2fvSUN,
+  glColor4ubVertex3fSUN,
+  glColor4ubVertex3fvSUN,
+  glNormal3fVertex3fSUN,
+  glNormal3fVertex3fvSUN,
+  glReplacementCodeuiColor3fVertex3fSUN,
+  glReplacementCodeuiColor3fVertex3fvSUN,
+  glReplacementCodeuiColor4fNormal3fVertex3fSUN,
+  glReplacementCodeuiColor4fNormal3fVertex3fvSUN,
+  glReplacementCodeuiColor4ubVertex3fSUN,
+  glReplacementCodeuiColor4ubVertex3fvSUN,
+  glReplacementCodeuiNormal3fVertex3fSUN,
+  glReplacementCodeuiNormal3fVertex3fvSUN,
+  glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN,
+  glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN,
+  glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN,
+  glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN,
+  glReplacementCodeuiTexCoord2fVertex3fSUN,
+  glReplacementCodeuiTexCoord2fVertex3fvSUN,
+  glReplacementCodeuiVertex3fSUN,
+  glReplacementCodeuiVertex3fvSUN,
+  glTexCoord2fColor3fVertex3fSUN,
+  glTexCoord2fColor3fVertex3fvSUN,
+  glTexCoord2fColor4fNormal3fVertex3fSUN,
+  glTexCoord2fColor4fNormal3fVertex3fvSUN,
+  glTexCoord2fColor4ubVertex3fSUN,
+  glTexCoord2fColor4ubVertex3fvSUN,
+  glTexCoord2fNormal3fVertex3fSUN,
+  glTexCoord2fNormal3fVertex3fvSUN,
+  glTexCoord2fVertex3fSUN,
+  glTexCoord2fVertex3fvSUN,
+  glTexCoord4fColor4fNormal3fVertex4fSUN,
+  glTexCoord4fColor4fNormal3fVertex4fvSUN,
+  glTexCoord4fVertex4fSUN,
+  glTexCoord4fVertex4fvSUN
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/SUNX.hs b/src/Graphics/Rendering/OpenGL/Raw/SUNX.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/SUNX.hs
@@ -0,0 +1,19 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.SUNX
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- A convenience module, combining all raw modules containing SUNX extensions.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.SUNX (
+  module Graphics.Rendering.OpenGL.Raw.SUNX.ConstantData
+) where
+
+import Graphics.Rendering.OpenGL.Raw.SUNX.ConstantData
diff --git a/src/Graphics/Rendering/OpenGL/Raw/SUNX/ConstantData.hs b/src/Graphics/Rendering/OpenGL/Raw/SUNX/ConstantData.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/SUNX/ConstantData.hs
@@ -0,0 +1,24 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.SUNX.ConstantData
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/SUNX/constant_data.txt SUNX_constant_data> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.SUNX.ConstantData (
+  -- * Enums
+  gl_TEXTURE_CONSTANT_DATA_SUNX,
+  gl_UNPACK_CONSTANT_DATA_SUNX,
+  -- * Functions
+  glFinishTextureSUNX
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ThreeDFX.hs b/src/Graphics/Rendering/OpenGL/Raw/ThreeDFX.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/ThreeDFX.hs
@@ -0,0 +1,23 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.ThreeDFX
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- A convenience module, combining all raw modules containing 3DFX extensions.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.ThreeDFX (
+  module Graphics.Rendering.OpenGL.Raw.ThreeDFX.Multisample,
+  module Graphics.Rendering.OpenGL.Raw.ThreeDFX.Tbuffer,
+  module Graphics.Rendering.OpenGL.Raw.ThreeDFX.TextureCompressionFXT1
+) where
+
+import Graphics.Rendering.OpenGL.Raw.ThreeDFX.Multisample
+import Graphics.Rendering.OpenGL.Raw.ThreeDFX.Tbuffer
+import Graphics.Rendering.OpenGL.Raw.ThreeDFX.TextureCompressionFXT1
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ThreeDFX/Multisample.hs b/src/Graphics/Rendering/OpenGL/Raw/ThreeDFX/Multisample.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/ThreeDFX/Multisample.hs
@@ -0,0 +1,23 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.ThreeDFX.Multisample
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/3DFX/multisample.txt 3DFX_multisample> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.ThreeDFX.Multisample (
+  -- * Enums
+  gl_MULTISAMPLE_3DFX,
+  gl_MULTISAMPLE_BIT_3DFX,
+  gl_SAMPLES_3DFX,
+  gl_SAMPLE_BUFFERS_3DFX
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ThreeDFX/Tbuffer.hs b/src/Graphics/Rendering/OpenGL/Raw/ThreeDFX/Tbuffer.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/ThreeDFX/Tbuffer.hs
@@ -0,0 +1,20 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.ThreeDFX.Tbuffer
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/3DFX/tbuffer.txt 3DFX_tbuffer> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.ThreeDFX.Tbuffer (
+  -- * Functions
+  glTbufferMask3DFX
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Functions
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ThreeDFX/TextureCompressionFXT1.hs b/src/Graphics/Rendering/OpenGL/Raw/ThreeDFX/TextureCompressionFXT1.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/ThreeDFX/TextureCompressionFXT1.hs
@@ -0,0 +1,21 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.ThreeDFX.TextureCompressionFXT1
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/3DFX/texture_compression_FXT1.txt 3DFX_texture_compression_FXT1> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.ThreeDFX.TextureCompressionFXT1 (
+  -- * Enums
+  gl_COMPRESSED_RGBA_FXT1_3DFX,
+  gl_COMPRESSED_RGB_FXT1_3DFX
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/Tokens.hs b/src/Graphics/Rendering/OpenGL/Raw/Tokens.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/Tokens.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/Tokens.hs
@@ -8,8 +8,8 @@
 -- Stability   :  stable
 -- Portability :  portable
 --
--- All enumeration tokens from the OpenGL registry, see
--- <http://www.opengl.org/registry/>.
+-- All enumeration tokens from the
+-- <http://www.opengl.org/registry/ OpenGL registry>.
 --
 --------------------------------------------------------------------------------
 
diff --git a/src/Graphics/Rendering/OpenGL/Raw/Types.hs b/src/Graphics/Rendering/OpenGL/Raw/Types.hs
--- a/src/Graphics/Rendering/OpenGL/Raw/Types.hs
+++ b/src/Graphics/Rendering/OpenGL/Raw/Types.hs
@@ -37,7 +37,7 @@
   GLclampf,
   GLdouble,
   GLclampd,
-  GLDEBUGPROC,
+  GLDEBUGPROC, GLDEBUGPROCFunc, makeGLDEBUGPROC,
   GLvoid,
 
   -- * Pre-standard OpenGL types.
@@ -48,7 +48,7 @@
   GLsizeiptrARB,
   GLhalfARB,
   GLhalfNV,
-  GLDEBUGPROCAMD,
+  GLDEBUGPROCAMD, GLDEBUGPROCAMDFunc, makeGLDEBUGPROCAMD,
   GLDEBUGPROCARB,
   GLDEBUGPROCKHR,
 
@@ -135,10 +135,25 @@
 -- | 64bit floating-point value clamped to [0, 1].
 type GLclampd = CDouble
 
+-- | A pointer to a debug callback.
+type GLDEBUGPROC = FunPtr GLDEBUGPROCFunc
+
 -- | Debug callback.
-type GLDEBUGPROC = FunPtr (GLenum -> GLenum -> GLuint -> GLenum -> GLsizei -> Ptr GLchar -> Ptr () -> IO ())
--- TODO: calling convention, parameter documentation
+type GLDEBUGPROCFunc
+  =  GLenum -- ^ @source@.
+  -> GLenum -- ^ @type@.
+  -> GLuint -- ^ @id@.
+  -> GLenum -- ^ @severity@.
+  -> GLsizei -- ^ @length@.
+  -> Ptr GLchar -- ^ @message@.
+  -> Ptr () -- ^ @userParam@.
+  -> IO ()
 
+-- | The storage associated with the resulting 'FunPtr' has to be released with
+-- 'freeHaskellFunPtr' when it is no longer required.
+foreign import CALLCONV "wrapper"
+   makeGLDEBUGPROC :: GLDEBUGPROCFunc -> IO (FunPtr GLDEBUGPROCFunc)
+
 -- | Not an actual GL type, though used in headers in the past.
 type GLvoid = ()
 
@@ -156,14 +171,26 @@
 
 type GLhalfNV = CUShort
 
-type GLDEBUGPROCAMD = FunPtr(GLuint -> GLenum -> GLenum -> GLsizei -> Ptr GLchar -> Ptr () -> IO ())
--- TODO: calling convention, parameter documentation
+type GLDEBUGPROCAMD = FunPtr GLDEBUGPROCAMDFunc
 
-type GLDEBUGPROCARB = FunPtr(GLenum -> GLenum -> GLuint -> GLenum -> GLsizei -> Ptr GLchar -> Ptr () -> IO ())
--- TODO: calling convention, parameter documentation
+-- | Debug callback.
+type GLDEBUGPROCAMDFunc
+  =  GLuint -- ^ @id@.
+  -> GLenum -- ^ @category@.
+  -> GLenum -- ^ @severity@.
+  -> GLsizei -- ^ @length@.
+  -> Ptr GLchar -- ^ @message@.
+  -> Ptr () -- ^ @userParam@.
+  -> IO ()
 
-type GLDEBUGPROCKHR = FunPtr(GLenum -> GLenum -> GLuint -> GLenum -> GLsizei -> Ptr GLchar -> Ptr () -> IO ())
--- TODO: calling convention, parameter documentation
+-- | The storage associated with the resulting 'FunPtr' has to be released with
+-- 'freeHaskellFunPtr' when it is no longer required.
+foreign import CALLCONV "wrapper"
+  makeGLDEBUGPROCAMD :: GLDEBUGPROCAMDFunc -> IO (FunPtr GLDEBUGPROCAMDFunc)
+
+type GLDEBUGPROCARB = GLDEBUGPROC
+
+type GLDEBUGPROCKHR = GLDEBUGPROC
 
 type GLclampx = CInt
 -- NOTE: OpenGL ES uses khronos_int32_t for this.
diff --git a/src/Graphics/Rendering/OpenGL/Raw/WIN.hs b/src/Graphics/Rendering/OpenGL/Raw/WIN.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/WIN.hs
@@ -0,0 +1,21 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.WIN
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- A convenience module, combining all raw modules containing WIN extensions.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.WIN (
+  module Graphics.Rendering.OpenGL.Raw.WIN.PhongShading,
+  module Graphics.Rendering.OpenGL.Raw.WIN.SpecularFog
+) where
+
+import Graphics.Rendering.OpenGL.Raw.WIN.PhongShading
+import Graphics.Rendering.OpenGL.Raw.WIN.SpecularFog
diff --git a/src/Graphics/Rendering/OpenGL/Raw/WIN/PhongShading.hs b/src/Graphics/Rendering/OpenGL/Raw/WIN/PhongShading.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/WIN/PhongShading.hs
@@ -0,0 +1,21 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.WIN.PhongShading
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/WIN/phong_shading.txt WIN_phong_shading> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.WIN.PhongShading (
+  -- * Enums
+  gl_PHONG_HINT_WIN,
+  gl_PHONG_WIN
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/WIN/SpecularFog.hs b/src/Graphics/Rendering/OpenGL/Raw/WIN/SpecularFog.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenGL/Raw/WIN/SpecularFog.hs
@@ -0,0 +1,20 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenGL.Raw.WIN.SpecularFog
+-- Copyright   :  (c) Sven Panne 2015
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- The <https://www.opengl.org/registry/specs/WIN/specular_fog.txt WIN_specular_fog> extension.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenGL.Raw.WIN.SpecularFog (
+  -- * Enums
+  gl_FOG_SPECULAR_TEXTURE_WIN
+) where
+
+import Graphics.Rendering.OpenGL.Raw.Tokens
