    {-# OPTIONS_HADDOCK hide #-}
    --------------------------------------------------------------------------------
    -- |
    -- Module      :  Graphics.GL.ExtensionPredicates
    -- Copyright   :  (c) Sven Panne 2019
    -- License     :  BSD3
    --
    -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
    -- Stability   :  stable
    -- Portability :  portable
    --
    -- Extension support predicates.
    --
    --------------------------------------------------------------------------------

    module Graphics.GL.ExtensionPredicates where

    import Control.Monad.IO.Class ( MonadIO(..) )
    import Data.Set ( member )
    import Graphics.GL.GetProcAddress ( getExtensions, extensions )

    -- | Is the <https://www.opengl.org/registry/specs/3DFX/3dfx_multisample.txt 3DFX_multisample> extension supported?
    glGetThreeDFXMultisample :: MonadIO m => m Bool
    glGetThreeDFXMultisample :: forall (m :: * -> *). MonadIO m => m Bool
    glGetThreeDFXMultisample = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_3DFX_multisample")

    -- | Is the <https://www.opengl.org/registry/specs/3DFX/3dfx_multisample.txt 3DFX_multisample> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetThreeDFXMultisample' in those cases instead.
    gl_3DFX_multisample :: Bool
    gl_3DFX_multisample :: Bool
    gl_3DFX_multisample = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_3DFX_multisample" Set String
    extensions
    {-# NOINLINE gl_3DFX_multisample #-}

    -- | Is the <https://www.opengl.org/registry/specs/3DFX/tbuffer.txt 3DFX_tbuffer> extension supported?
    glGetThreeDFXTbuffer :: MonadIO m => m Bool
    glGetThreeDFXTbuffer :: forall (m :: * -> *). MonadIO m => m Bool
    glGetThreeDFXTbuffer = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_3DFX_tbuffer")

    -- | Is the <https://www.opengl.org/registry/specs/3DFX/tbuffer.txt 3DFX_tbuffer> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetThreeDFXTbuffer' in those cases instead.
    gl_3DFX_tbuffer :: Bool
    gl_3DFX_tbuffer :: Bool
    gl_3DFX_tbuffer = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_3DFX_tbuffer" Set String
    extensions
    {-# NOINLINE gl_3DFX_tbuffer #-}

    -- | Is the <https://www.opengl.org/registry/specs/3DFX/texture_compression_FXT1.txt 3DFX_texture_compression_FXT1> extension supported?
    glGetThreeDFXTextureCompressionFXT1 :: MonadIO m => m Bool
    glGetThreeDFXTextureCompressionFXT1 :: forall (m :: * -> *). MonadIO m => m Bool
    glGetThreeDFXTextureCompressionFXT1 = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_3DFX_texture_compression_FXT1")

    -- | Is the <https://www.opengl.org/registry/specs/3DFX/texture_compression_FXT1.txt 3DFX_texture_compression_FXT1> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetThreeDFXTextureCompressionFXT1' in those cases instead.
    gl_3DFX_texture_compression_FXT1 :: Bool
    gl_3DFX_texture_compression_FXT1 :: Bool
    gl_3DFX_texture_compression_FXT1 = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_3DFX_texture_compression_FXT1" Set String
    extensions
    {-# NOINLINE gl_3DFX_texture_compression_FXT1 #-}

    -- | Is the <https://www.opengl.org/registry/specs/AMD/blend_minmax_factor.txt AMD_blend_minmax_factor> extension supported?
    glGetAMDBlendMinmaxFactor :: MonadIO m => m Bool
    glGetAMDBlendMinmaxFactor :: forall (m :: * -> *). MonadIO m => m Bool
    glGetAMDBlendMinmaxFactor = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_AMD_blend_minmax_factor")

    -- | Is the <https://www.opengl.org/registry/specs/AMD/blend_minmax_factor.txt AMD_blend_minmax_factor> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetAMDBlendMinmaxFactor' in those cases instead.
    gl_AMD_blend_minmax_factor :: Bool
    gl_AMD_blend_minmax_factor :: Bool
    gl_AMD_blend_minmax_factor = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_AMD_blend_minmax_factor" Set String
    extensions
    {-# NOINLINE gl_AMD_blend_minmax_factor #-}

    -- | Is the <https://www.opengl.org/registry/specs/AMD/debug_output.txt AMD_debug_output> extension supported?
    glGetAMDDebugOutput :: MonadIO m => m Bool
    glGetAMDDebugOutput :: forall (m :: * -> *). MonadIO m => m Bool
    glGetAMDDebugOutput = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_AMD_debug_output")

    -- | Is the <https://www.opengl.org/registry/specs/AMD/debug_output.txt AMD_debug_output> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetAMDDebugOutput' in those cases instead.
    gl_AMD_debug_output :: Bool
    gl_AMD_debug_output :: Bool
    gl_AMD_debug_output = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_AMD_debug_output" Set String
    extensions
    {-# NOINLINE gl_AMD_debug_output #-}

    -- | Is the <https://www.opengl.org/registry/specs/AMD/depth_clamp_separate.txt AMD_depth_clamp_separate> extension supported?
    glGetAMDDepthClampSeparate :: MonadIO m => m Bool
    glGetAMDDepthClampSeparate :: forall (m :: * -> *). MonadIO m => m Bool
    glGetAMDDepthClampSeparate = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_AMD_depth_clamp_separate")

    -- | Is the <https://www.opengl.org/registry/specs/AMD/depth_clamp_separate.txt AMD_depth_clamp_separate> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetAMDDepthClampSeparate' in those cases instead.
    gl_AMD_depth_clamp_separate :: Bool
    gl_AMD_depth_clamp_separate :: Bool
    gl_AMD_depth_clamp_separate = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_AMD_depth_clamp_separate" Set String
    extensions
    {-# NOINLINE gl_AMD_depth_clamp_separate #-}

    -- | Is the <https://www.opengl.org/registry/specs/AMD/draw_buffers_blend.txt AMD_draw_buffers_blend> extension supported?
    glGetAMDDrawBuffersBlend :: MonadIO m => m Bool
    glGetAMDDrawBuffersBlend :: forall (m :: * -> *). MonadIO m => m Bool
    glGetAMDDrawBuffersBlend = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_AMD_draw_buffers_blend")

    -- | Is the <https://www.opengl.org/registry/specs/AMD/draw_buffers_blend.txt AMD_draw_buffers_blend> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetAMDDrawBuffersBlend' in those cases instead.
    gl_AMD_draw_buffers_blend :: Bool
    gl_AMD_draw_buffers_blend :: Bool
    gl_AMD_draw_buffers_blend = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_AMD_draw_buffers_blend" Set String
    extensions
    {-# NOINLINE gl_AMD_draw_buffers_blend #-}

    -- | Is the <https://www.opengl.org/registry/specs/AMD/framebuffer_multisample_advanced.txt AMD_framebuffer_multisample_advanced> extension supported?
    glGetAMDFramebufferMultisampleAdvanced :: MonadIO m => m Bool
    glGetAMDFramebufferMultisampleAdvanced :: forall (m :: * -> *). MonadIO m => m Bool
    glGetAMDFramebufferMultisampleAdvanced = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_AMD_framebuffer_multisample_advanced")

    -- | Is the <https://www.opengl.org/registry/specs/AMD/framebuffer_multisample_advanced.txt AMD_framebuffer_multisample_advanced> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetAMDFramebufferMultisampleAdvanced' in those cases instead.
    gl_AMD_framebuffer_multisample_advanced :: Bool
    gl_AMD_framebuffer_multisample_advanced :: Bool
    gl_AMD_framebuffer_multisample_advanced = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_AMD_framebuffer_multisample_advanced" Set String
    extensions
    {-# NOINLINE gl_AMD_framebuffer_multisample_advanced #-}

    -- | Is the <https://www.opengl.org/registry/specs/AMD/framebuffer_sample_positions.txt AMD_framebuffer_sample_positions> extension supported?
    glGetAMDFramebufferSamplePositions :: MonadIO m => m Bool
    glGetAMDFramebufferSamplePositions :: forall (m :: * -> *). MonadIO m => m Bool
    glGetAMDFramebufferSamplePositions = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_AMD_framebuffer_sample_positions")

    -- | Is the <https://www.opengl.org/registry/specs/AMD/framebuffer_sample_positions.txt AMD_framebuffer_sample_positions> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetAMDFramebufferSamplePositions' in those cases instead.
    gl_AMD_framebuffer_sample_positions :: Bool
    gl_AMD_framebuffer_sample_positions :: Bool
    gl_AMD_framebuffer_sample_positions = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_AMD_framebuffer_sample_positions" Set String
    extensions
    {-# NOINLINE gl_AMD_framebuffer_sample_positions #-}

    -- | Is the <https://www.opengl.org/registry/specs/AMD/gpu_shader_half_float.txt AMD_gpu_shader_half_float> extension supported?
    glGetAMDGPUShaderHalfFloat :: MonadIO m => m Bool
    glGetAMDGPUShaderHalfFloat :: forall (m :: * -> *). MonadIO m => m Bool
    glGetAMDGPUShaderHalfFloat = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_AMD_gpu_shader_half_float")

    -- | Is the <https://www.opengl.org/registry/specs/AMD/gpu_shader_half_float.txt AMD_gpu_shader_half_float> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetAMDGPUShaderHalfFloat' in those cases instead.
    gl_AMD_gpu_shader_half_float :: Bool
    gl_AMD_gpu_shader_half_float :: Bool
    gl_AMD_gpu_shader_half_float = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_AMD_gpu_shader_half_float" Set String
    extensions
    {-# NOINLINE gl_AMD_gpu_shader_half_float #-}

    -- | Is the <https://www.opengl.org/registry/specs/AMD/gpu_shader_int64.txt AMD_gpu_shader_int64> extension supported?
    glGetAMDGPUShaderInt64 :: MonadIO m => m Bool
    glGetAMDGPUShaderInt64 :: forall (m :: * -> *). MonadIO m => m Bool
    glGetAMDGPUShaderInt64 = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_AMD_gpu_shader_int64")

    -- | Is the <https://www.opengl.org/registry/specs/AMD/gpu_shader_int64.txt AMD_gpu_shader_int64> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetAMDGPUShaderInt64' in those cases instead.
    gl_AMD_gpu_shader_int64 :: Bool
    gl_AMD_gpu_shader_int64 :: Bool
    gl_AMD_gpu_shader_int64 = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_AMD_gpu_shader_int64" Set String
    extensions
    {-# NOINLINE gl_AMD_gpu_shader_int64 #-}

    -- | Is the <https://www.opengl.org/registry/specs/AMD/interleaved_elements.txt AMD_interleaved_elements> extension supported?
    glGetAMDInterleavedElements :: MonadIO m => m Bool
    glGetAMDInterleavedElements :: forall (m :: * -> *). MonadIO m => m Bool
    glGetAMDInterleavedElements = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_AMD_interleaved_elements")

    -- | Is the <https://www.opengl.org/registry/specs/AMD/interleaved_elements.txt AMD_interleaved_elements> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetAMDInterleavedElements' in those cases instead.
    gl_AMD_interleaved_elements :: Bool
    gl_AMD_interleaved_elements :: Bool
    gl_AMD_interleaved_elements = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_AMD_interleaved_elements" Set String
    extensions
    {-# NOINLINE gl_AMD_interleaved_elements #-}

    -- | Is the <https://www.opengl.org/registry/specs/AMD/multi_draw_indirect.txt AMD_multi_draw_indirect> extension supported?
    glGetAMDMultiDrawIndirect :: MonadIO m => m Bool
    glGetAMDMultiDrawIndirect :: forall (m :: * -> *). MonadIO m => m Bool
    glGetAMDMultiDrawIndirect = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_AMD_multi_draw_indirect")

    -- | Is the <https://www.opengl.org/registry/specs/AMD/multi_draw_indirect.txt AMD_multi_draw_indirect> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetAMDMultiDrawIndirect' in those cases instead.
    gl_AMD_multi_draw_indirect :: Bool
    gl_AMD_multi_draw_indirect :: Bool
    gl_AMD_multi_draw_indirect = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_AMD_multi_draw_indirect" Set String
    extensions
    {-# NOINLINE gl_AMD_multi_draw_indirect #-}

    -- | Is the <https://www.opengl.org/registry/specs/AMD/name_gen_delete.txt AMD_name_gen_delete> extension supported?
    glGetAMDNameGenDelete :: MonadIO m => m Bool
    glGetAMDNameGenDelete :: forall (m :: * -> *). MonadIO m => m Bool
    glGetAMDNameGenDelete = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_AMD_name_gen_delete")

    -- | Is the <https://www.opengl.org/registry/specs/AMD/name_gen_delete.txt AMD_name_gen_delete> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetAMDNameGenDelete' in those cases instead.
    gl_AMD_name_gen_delete :: Bool
    gl_AMD_name_gen_delete :: Bool
    gl_AMD_name_gen_delete = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_AMD_name_gen_delete" Set String
    extensions
    {-# NOINLINE gl_AMD_name_gen_delete #-}

    -- | Is the <https://www.opengl.org/registry/specs/AMD/occlusion_query_event.txt AMD_occlusion_query_event> extension supported?
    glGetAMDOcclusionQueryEvent :: MonadIO m => m Bool
    glGetAMDOcclusionQueryEvent :: forall (m :: * -> *). MonadIO m => m Bool
    glGetAMDOcclusionQueryEvent = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_AMD_occlusion_query_event")

    -- | Is the <https://www.opengl.org/registry/specs/AMD/occlusion_query_event.txt AMD_occlusion_query_event> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetAMDOcclusionQueryEvent' in those cases instead.
    gl_AMD_occlusion_query_event :: Bool
    gl_AMD_occlusion_query_event :: Bool
    gl_AMD_occlusion_query_event = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_AMD_occlusion_query_event" Set String
    extensions
    {-# NOINLINE gl_AMD_occlusion_query_event #-}

    -- | Is the <https://www.opengl.org/registry/specs/AMD/performance_monitor.txt AMD_performance_monitor> extension supported?
    glGetAMDPerformanceMonitor :: MonadIO m => m Bool
    glGetAMDPerformanceMonitor :: forall (m :: * -> *). MonadIO m => m Bool
    glGetAMDPerformanceMonitor = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_AMD_performance_monitor")

    -- | Is the <https://www.opengl.org/registry/specs/AMD/performance_monitor.txt AMD_performance_monitor> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetAMDPerformanceMonitor' in those cases instead.
    gl_AMD_performance_monitor :: Bool
    gl_AMD_performance_monitor :: Bool
    gl_AMD_performance_monitor = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_AMD_performance_monitor" Set String
    extensions
    {-# NOINLINE gl_AMD_performance_monitor #-}

    -- | Is the <https://www.opengl.org/registry/specs/AMD/pinned_memory.txt AMD_pinned_memory> extension supported?
    glGetAMDPinnedMemory :: MonadIO m => m Bool
    glGetAMDPinnedMemory :: forall (m :: * -> *). MonadIO m => m Bool
    glGetAMDPinnedMemory = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_AMD_pinned_memory")

    -- | Is the <https://www.opengl.org/registry/specs/AMD/pinned_memory.txt AMD_pinned_memory> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetAMDPinnedMemory' in those cases instead.
    gl_AMD_pinned_memory :: Bool
    gl_AMD_pinned_memory :: Bool
    gl_AMD_pinned_memory = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_AMD_pinned_memory" Set String
    extensions
    {-# NOINLINE gl_AMD_pinned_memory #-}

    -- | Is the <https://www.opengl.org/registry/specs/AMD/query_buffer_object.txt AMD_query_buffer_object> extension supported?
    glGetAMDQueryBufferObject :: MonadIO m => m Bool
    glGetAMDQueryBufferObject :: forall (m :: * -> *). MonadIO m => m Bool
    glGetAMDQueryBufferObject = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_AMD_query_buffer_object")

    -- | Is the <https://www.opengl.org/registry/specs/AMD/query_buffer_object.txt AMD_query_buffer_object> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetAMDQueryBufferObject' in those cases instead.
    gl_AMD_query_buffer_object :: Bool
    gl_AMD_query_buffer_object :: Bool
    gl_AMD_query_buffer_object = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_AMD_query_buffer_object" Set String
    extensions
    {-# NOINLINE gl_AMD_query_buffer_object #-}

    -- | Is the <https://www.opengl.org/registry/specs/AMD/sample_positions.txt AMD_sample_positions> extension supported?
    glGetAMDSamplePositions :: MonadIO m => m Bool
    glGetAMDSamplePositions :: forall (m :: * -> *). MonadIO m => m Bool
    glGetAMDSamplePositions = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_AMD_sample_positions")

    -- | Is the <https://www.opengl.org/registry/specs/AMD/sample_positions.txt AMD_sample_positions> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetAMDSamplePositions' in those cases instead.
    gl_AMD_sample_positions :: Bool
    gl_AMD_sample_positions :: Bool
    gl_AMD_sample_positions = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_AMD_sample_positions" Set String
    extensions
    {-# NOINLINE gl_AMD_sample_positions #-}

    -- | Is the <https://www.opengl.org/registry/specs/AMD/seamless_cubemap_per_texture.txt AMD_seamless_cubemap_per_texture> extension supported?
    glGetAMDSeamlessCubemapPerTexture :: MonadIO m => m Bool
    glGetAMDSeamlessCubemapPerTexture :: forall (m :: * -> *). MonadIO m => m Bool
    glGetAMDSeamlessCubemapPerTexture = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_AMD_seamless_cubemap_per_texture")

    -- | Is the <https://www.opengl.org/registry/specs/AMD/seamless_cubemap_per_texture.txt AMD_seamless_cubemap_per_texture> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetAMDSeamlessCubemapPerTexture' in those cases instead.
    gl_AMD_seamless_cubemap_per_texture :: Bool
    gl_AMD_seamless_cubemap_per_texture :: Bool
    gl_AMD_seamless_cubemap_per_texture = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_AMD_seamless_cubemap_per_texture" Set String
    extensions
    {-# NOINLINE gl_AMD_seamless_cubemap_per_texture #-}

    -- | Is the <https://www.opengl.org/registry/specs/AMD/sparse_texture.txt AMD_sparse_texture> extension supported?
    glGetAMDSparseTexture :: MonadIO m => m Bool
    glGetAMDSparseTexture :: forall (m :: * -> *). MonadIO m => m Bool
    glGetAMDSparseTexture = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_AMD_sparse_texture")

    -- | Is the <https://www.opengl.org/registry/specs/AMD/sparse_texture.txt AMD_sparse_texture> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetAMDSparseTexture' in those cases instead.
    gl_AMD_sparse_texture :: Bool
    gl_AMD_sparse_texture :: Bool
    gl_AMD_sparse_texture = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_AMD_sparse_texture" Set String
    extensions
    {-# NOINLINE gl_AMD_sparse_texture #-}

    -- | Is the <https://www.opengl.org/registry/specs/AMD/stencil_operation_extended.txt AMD_stencil_operation_extended> extension supported?
    glGetAMDStencilOperationExtended :: MonadIO m => m Bool
    glGetAMDStencilOperationExtended :: forall (m :: * -> *). MonadIO m => m Bool
    glGetAMDStencilOperationExtended = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_AMD_stencil_operation_extended")

    -- | Is the <https://www.opengl.org/registry/specs/AMD/stencil_operation_extended.txt AMD_stencil_operation_extended> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetAMDStencilOperationExtended' in those cases instead.
    gl_AMD_stencil_operation_extended :: Bool
    gl_AMD_stencil_operation_extended :: Bool
    gl_AMD_stencil_operation_extended = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_AMD_stencil_operation_extended" Set String
    extensions
    {-# NOINLINE gl_AMD_stencil_operation_extended #-}

    -- | Is the <https://www.opengl.org/registry/specs/AMD/transform_feedback4.txt AMD_transform_feedback4> extension supported?
    glGetAMDTransformFeedback4 :: MonadIO m => m Bool
    glGetAMDTransformFeedback4 :: forall (m :: * -> *). MonadIO m => m Bool
    glGetAMDTransformFeedback4 = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_AMD_transform_feedback4")

    -- | Is the <https://www.opengl.org/registry/specs/AMD/transform_feedback4.txt AMD_transform_feedback4> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetAMDTransformFeedback4' in those cases instead.
    gl_AMD_transform_feedback4 :: Bool
    gl_AMD_transform_feedback4 :: Bool
    gl_AMD_transform_feedback4 = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_AMD_transform_feedback4" Set String
    extensions
    {-# NOINLINE gl_AMD_transform_feedback4 #-}

    -- | Is the <https://www.opengl.org/registry/specs/AMD/vertex_shader_tessellator.txt AMD_vertex_shader_tessellator> extension supported?
    glGetAMDVertexShaderTessellator :: MonadIO m => m Bool
    glGetAMDVertexShaderTessellator :: forall (m :: * -> *). MonadIO m => m Bool
    glGetAMDVertexShaderTessellator = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_AMD_vertex_shader_tessellator")

    -- | Is the <https://www.opengl.org/registry/specs/AMD/vertex_shader_tessellator.txt AMD_vertex_shader_tessellator> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetAMDVertexShaderTessellator' in those cases instead.
    gl_AMD_vertex_shader_tessellator :: Bool
    gl_AMD_vertex_shader_tessellator :: Bool
    gl_AMD_vertex_shader_tessellator = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_AMD_vertex_shader_tessellator" Set String
    extensions
    {-# NOINLINE gl_AMD_vertex_shader_tessellator #-}

    -- | Is the <https://www.opengl.org/registry/specs/APPLE/aux_depth_stencil.txt APPLE_aux_depth_stencil> extension supported?
    glGetAPPLEAuxDepthStencil :: MonadIO m => m Bool
    glGetAPPLEAuxDepthStencil :: forall (m :: * -> *). MonadIO m => m Bool
    glGetAPPLEAuxDepthStencil = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_APPLE_aux_depth_stencil")

    -- | Is the <https://www.opengl.org/registry/specs/APPLE/aux_depth_stencil.txt APPLE_aux_depth_stencil> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetAPPLEAuxDepthStencil' in those cases instead.
    gl_APPLE_aux_depth_stencil :: Bool
    gl_APPLE_aux_depth_stencil :: Bool
    gl_APPLE_aux_depth_stencil = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_APPLE_aux_depth_stencil" Set String
    extensions
    {-# NOINLINE gl_APPLE_aux_depth_stencil #-}

    -- | Is the <https://www.opengl.org/registry/specs/APPLE/client_storage.txt APPLE_client_storage> extension supported?
    glGetAPPLEClientStorage :: MonadIO m => m Bool
    glGetAPPLEClientStorage :: forall (m :: * -> *). MonadIO m => m Bool
    glGetAPPLEClientStorage = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_APPLE_client_storage")

    -- | Is the <https://www.opengl.org/registry/specs/APPLE/client_storage.txt APPLE_client_storage> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetAPPLEClientStorage' in those cases instead.
    gl_APPLE_client_storage :: Bool
    gl_APPLE_client_storage :: Bool
    gl_APPLE_client_storage = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_APPLE_client_storage" Set String
    extensions
    {-# NOINLINE gl_APPLE_client_storage #-}

    -- | Is the <https://www.opengl.org/registry/specs/APPLE/element_array.txt APPLE_element_array> extension supported?
    glGetAPPLEElementArray :: MonadIO m => m Bool
    glGetAPPLEElementArray :: forall (m :: * -> *). MonadIO m => m Bool
    glGetAPPLEElementArray = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_APPLE_element_array")

    -- | Is the <https://www.opengl.org/registry/specs/APPLE/element_array.txt APPLE_element_array> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetAPPLEElementArray' in those cases instead.
    gl_APPLE_element_array :: Bool
    gl_APPLE_element_array :: Bool
    gl_APPLE_element_array = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_APPLE_element_array" Set String
    extensions
    {-# NOINLINE gl_APPLE_element_array #-}

    -- | Is the <https://www.opengl.org/registry/specs/APPLE/fence.txt APPLE_fence> extension supported?
    glGetAPPLEFence :: MonadIO m => m Bool
    glGetAPPLEFence :: forall (m :: * -> *). MonadIO m => m Bool
    glGetAPPLEFence = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_APPLE_fence")

    -- | Is the <https://www.opengl.org/registry/specs/APPLE/fence.txt APPLE_fence> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetAPPLEFence' in those cases instead.
    gl_APPLE_fence :: Bool
    gl_APPLE_fence :: Bool
    gl_APPLE_fence = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_APPLE_fence" Set String
    extensions
    {-# NOINLINE gl_APPLE_fence #-}

    -- | Is the <https://www.opengl.org/registry/specs/APPLE/float_pixels.txt APPLE_float_pixels> extension supported?
    glGetAPPLEFloatPixels :: MonadIO m => m Bool
    glGetAPPLEFloatPixels :: forall (m :: * -> *). MonadIO m => m Bool
    glGetAPPLEFloatPixels = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_APPLE_float_pixels")

    -- | Is the <https://www.opengl.org/registry/specs/APPLE/float_pixels.txt APPLE_float_pixels> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetAPPLEFloatPixels' in those cases instead.
    gl_APPLE_float_pixels :: Bool
    gl_APPLE_float_pixels :: Bool
    gl_APPLE_float_pixels = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_APPLE_float_pixels" Set String
    extensions
    {-# NOINLINE gl_APPLE_float_pixels #-}

    -- | Is the <https://www.opengl.org/registry/specs/APPLE/flush_buffer_range.txt APPLE_flush_buffer_range> extension supported?
    glGetAPPLEFlushBufferRange :: MonadIO m => m Bool
    glGetAPPLEFlushBufferRange :: forall (m :: * -> *). MonadIO m => m Bool
    glGetAPPLEFlushBufferRange = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_APPLE_flush_buffer_range")

    -- | Is the <https://www.opengl.org/registry/specs/APPLE/flush_buffer_range.txt APPLE_flush_buffer_range> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetAPPLEFlushBufferRange' in those cases instead.
    gl_APPLE_flush_buffer_range :: Bool
    gl_APPLE_flush_buffer_range :: Bool
    gl_APPLE_flush_buffer_range = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_APPLE_flush_buffer_range" Set String
    extensions
    {-# NOINLINE gl_APPLE_flush_buffer_range #-}

    -- | Is the <https://www.opengl.org/registry/specs/APPLE/object_purgeable.txt APPLE_object_purgeable> extension supported?
    glGetAPPLEObjectPurgeable :: MonadIO m => m Bool
    glGetAPPLEObjectPurgeable :: forall (m :: * -> *). MonadIO m => m Bool
    glGetAPPLEObjectPurgeable = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_APPLE_object_purgeable")

    -- | Is the <https://www.opengl.org/registry/specs/APPLE/object_purgeable.txt APPLE_object_purgeable> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetAPPLEObjectPurgeable' in those cases instead.
    gl_APPLE_object_purgeable :: Bool
    gl_APPLE_object_purgeable :: Bool
    gl_APPLE_object_purgeable = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_APPLE_object_purgeable" Set String
    extensions
    {-# NOINLINE gl_APPLE_object_purgeable #-}

    -- | Is the <https://www.opengl.org/registry/specs/APPLE/rgb_422.txt APPLE_rgb_422> extension supported?
    glGetAPPLERGB422 :: MonadIO m => m Bool
    glGetAPPLERGB422 :: forall (m :: * -> *). MonadIO m => m Bool
    glGetAPPLERGB422 = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_APPLE_rgb_422")

    -- | Is the <https://www.opengl.org/registry/specs/APPLE/rgb_422.txt APPLE_rgb_422> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetAPPLERGB422' in those cases instead.
    gl_APPLE_rgb_422 :: Bool
    gl_APPLE_rgb_422 :: Bool
    gl_APPLE_rgb_422 = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_APPLE_rgb_422" Set String
    extensions
    {-# NOINLINE gl_APPLE_rgb_422 #-}

    -- | Is the <https://www.opengl.org/registry/specs/APPLE/row_bytes.txt APPLE_row_bytes> extension supported?
    glGetAPPLERowBytes :: MonadIO m => m Bool
    glGetAPPLERowBytes :: forall (m :: * -> *). MonadIO m => m Bool
    glGetAPPLERowBytes = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_APPLE_row_bytes")

    -- | Is the <https://www.opengl.org/registry/specs/APPLE/row_bytes.txt APPLE_row_bytes> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetAPPLERowBytes' in those cases instead.
    gl_APPLE_row_bytes :: Bool
    gl_APPLE_row_bytes :: Bool
    gl_APPLE_row_bytes = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_APPLE_row_bytes" Set String
    extensions
    {-# NOINLINE gl_APPLE_row_bytes #-}

    -- | Is the <https://www.opengl.org/registry/specs/APPLE/specular_vector.txt APPLE_specular_vector> extension supported?
    glGetAPPLESpecularVector :: MonadIO m => m Bool
    glGetAPPLESpecularVector :: forall (m :: * -> *). MonadIO m => m Bool
    glGetAPPLESpecularVector = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_APPLE_specular_vector")

    -- | Is the <https://www.opengl.org/registry/specs/APPLE/specular_vector.txt APPLE_specular_vector> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetAPPLESpecularVector' in those cases instead.
    gl_APPLE_specular_vector :: Bool
    gl_APPLE_specular_vector :: Bool
    gl_APPLE_specular_vector = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_APPLE_specular_vector" Set String
    extensions
    {-# NOINLINE gl_APPLE_specular_vector #-}

    -- | Is the <https://www.opengl.org/registry/specs/APPLE/texture_range.txt APPLE_texture_range> extension supported?
    glGetAPPLETextureRange :: MonadIO m => m Bool
    glGetAPPLETextureRange :: forall (m :: * -> *). MonadIO m => m Bool
    glGetAPPLETextureRange = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_APPLE_texture_range")

    -- | Is the <https://www.opengl.org/registry/specs/APPLE/texture_range.txt APPLE_texture_range> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetAPPLETextureRange' in those cases instead.
    gl_APPLE_texture_range :: Bool
    gl_APPLE_texture_range :: Bool
    gl_APPLE_texture_range = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_APPLE_texture_range" Set String
    extensions
    {-# NOINLINE gl_APPLE_texture_range #-}

    -- | Is the <https://www.opengl.org/registry/specs/APPLE/transform_hint.txt APPLE_transform_hint> extension supported?
    glGetAPPLETransformHint :: MonadIO m => m Bool
    glGetAPPLETransformHint :: forall (m :: * -> *). MonadIO m => m Bool
    glGetAPPLETransformHint = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_APPLE_transform_hint")

    -- | Is the <https://www.opengl.org/registry/specs/APPLE/transform_hint.txt APPLE_transform_hint> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetAPPLETransformHint' in those cases instead.
    gl_APPLE_transform_hint :: Bool
    gl_APPLE_transform_hint :: Bool
    gl_APPLE_transform_hint = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_APPLE_transform_hint" Set String
    extensions
    {-# NOINLINE gl_APPLE_transform_hint #-}

    -- | Is the <https://www.opengl.org/registry/specs/APPLE/vertex_array_object.txt APPLE_vertex_array_object> extension supported?
    glGetAPPLEVertexArrayObject :: MonadIO m => m Bool
    glGetAPPLEVertexArrayObject :: forall (m :: * -> *). MonadIO m => m Bool
    glGetAPPLEVertexArrayObject = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_APPLE_vertex_array_object")

    -- | Is the <https://www.opengl.org/registry/specs/APPLE/vertex_array_object.txt APPLE_vertex_array_object> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetAPPLEVertexArrayObject' in those cases instead.
    gl_APPLE_vertex_array_object :: Bool
    gl_APPLE_vertex_array_object :: Bool
    gl_APPLE_vertex_array_object = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_APPLE_vertex_array_object" Set String
    extensions
    {-# NOINLINE gl_APPLE_vertex_array_object #-}

    -- | Is the <https://www.opengl.org/registry/specs/APPLE/vertex_array_range.txt APPLE_vertex_array_range> extension supported?
    glGetAPPLEVertexArrayRange :: MonadIO m => m Bool
    glGetAPPLEVertexArrayRange :: forall (m :: * -> *). MonadIO m => m Bool
    glGetAPPLEVertexArrayRange = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_APPLE_vertex_array_range")

    -- | Is the <https://www.opengl.org/registry/specs/APPLE/vertex_array_range.txt APPLE_vertex_array_range> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetAPPLEVertexArrayRange' in those cases instead.
    gl_APPLE_vertex_array_range :: Bool
    gl_APPLE_vertex_array_range :: Bool
    gl_APPLE_vertex_array_range = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_APPLE_vertex_array_range" Set String
    extensions
    {-# NOINLINE gl_APPLE_vertex_array_range #-}

    -- | Is the <https://www.opengl.org/registry/specs/APPLE/vertex_program_evaluators.txt APPLE_vertex_program_evaluators> extension supported?
    glGetAPPLEVertexProgramEvaluators :: MonadIO m => m Bool
    glGetAPPLEVertexProgramEvaluators :: forall (m :: * -> *). MonadIO m => m Bool
    glGetAPPLEVertexProgramEvaluators = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_APPLE_vertex_program_evaluators")

    -- | Is the <https://www.opengl.org/registry/specs/APPLE/vertex_program_evaluators.txt APPLE_vertex_program_evaluators> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetAPPLEVertexProgramEvaluators' in those cases instead.
    gl_APPLE_vertex_program_evaluators :: Bool
    gl_APPLE_vertex_program_evaluators :: Bool
    gl_APPLE_vertex_program_evaluators = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_APPLE_vertex_program_evaluators" Set String
    extensions
    {-# NOINLINE gl_APPLE_vertex_program_evaluators #-}

    -- | Is the <https://www.opengl.org/registry/specs/APPLE/ycbcr_422.txt APPLE_ycbcr_422> extension supported?
    glGetAPPLEYCbCr422 :: MonadIO m => m Bool
    glGetAPPLEYCbCr422 :: forall (m :: * -> *). MonadIO m => m Bool
    glGetAPPLEYCbCr422 = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_APPLE_ycbcr_422")

    -- | Is the <https://www.opengl.org/registry/specs/APPLE/ycbcr_422.txt APPLE_ycbcr_422> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetAPPLEYCbCr422' in those cases instead.
    gl_APPLE_ycbcr_422 :: Bool
    gl_APPLE_ycbcr_422 :: Bool
    gl_APPLE_ycbcr_422 = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_APPLE_ycbcr_422" Set String
    extensions
    {-# NOINLINE gl_APPLE_ycbcr_422 #-}

    -- | Is the <https://www.opengl.org/registry/specs/ARB/ES2_compatibility.txt ARB_ES2_compatibility> extension supported?
    glGetARBES2Compatibility :: MonadIO m => m Bool
    glGetARBES2Compatibility :: forall (m :: * -> *). MonadIO m => m Bool
    glGetARBES2Compatibility = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_ES2_compatibility")

    -- | Is the <https://www.opengl.org/registry/specs/ARB/ES2_compatibility.txt ARB_ES2_compatibility> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetARBES2Compatibility' in those cases instead.
    gl_ARB_ES2_compatibility :: Bool
    gl_ARB_ES2_compatibility :: Bool
    gl_ARB_ES2_compatibility = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_ES2_compatibility" Set String
    extensions
    {-# NOINLINE gl_ARB_ES2_compatibility #-}

    -- | Is the <https://www.opengl.org/registry/specs/ARB/ES3_1_compatibility.txt ARB_ES3_1_compatibility> extension supported?
    glGetARBES31Compatibility :: MonadIO m => m Bool
    glGetARBES31Compatibility :: forall (m :: * -> *). MonadIO m => m Bool
    glGetARBES31Compatibility = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_ES3_1_compatibility")

    -- | Is the <https://www.opengl.org/registry/specs/ARB/ES3_1_compatibility.txt ARB_ES3_1_compatibility> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetARBES31Compatibility' in those cases instead.
    gl_ARB_ES3_1_compatibility :: Bool
    gl_ARB_ES3_1_compatibility :: Bool
    gl_ARB_ES3_1_compatibility = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_ES3_1_compatibility" Set String
    extensions
    {-# NOINLINE gl_ARB_ES3_1_compatibility #-}

    -- | Is the <https://www.opengl.org/registry/specs/ARB/ES3_2_compatibility.txt ARB_ES3_2_compatibility> extension supported?
    glGetARBES32Compatibility :: MonadIO m => m Bool
    glGetARBES32Compatibility :: forall (m :: * -> *). MonadIO m => m Bool
    glGetARBES32Compatibility = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_ES3_2_compatibility")

    -- | Is the <https://www.opengl.org/registry/specs/ARB/ES3_2_compatibility.txt ARB_ES3_2_compatibility> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetARBES32Compatibility' in those cases instead.
    gl_ARB_ES3_2_compatibility :: Bool
    gl_ARB_ES3_2_compatibility :: Bool
    gl_ARB_ES3_2_compatibility = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_ES3_2_compatibility" Set String
    extensions
    {-# NOINLINE gl_ARB_ES3_2_compatibility #-}

    -- | Is the <https://www.opengl.org/registry/specs/ARB/ES3_compatibility.txt ARB_ES3_compatibility> extension supported?
    glGetARBES3Compatibility :: MonadIO m => m Bool
    glGetARBES3Compatibility :: forall (m :: * -> *). MonadIO m => m Bool
    glGetARBES3Compatibility = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_ES3_compatibility")

    -- | Is the <https://www.opengl.org/registry/specs/ARB/ES3_compatibility.txt ARB_ES3_compatibility> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetARBES3Compatibility' in those cases instead.
    gl_ARB_ES3_compatibility :: Bool
    gl_ARB_ES3_compatibility :: Bool
    gl_ARB_ES3_compatibility = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_ES3_compatibility" Set String
    extensions
    {-# NOINLINE gl_ARB_ES3_compatibility #-}

    -- | Is the <https://www.opengl.org/registry/specs/ARB/base_instance.txt ARB_base_instance> extension supported?
    glGetARBBaseInstance :: MonadIO m => m Bool
    glGetARBBaseInstance :: forall (m :: * -> *). MonadIO m => m Bool
    glGetARBBaseInstance = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_base_instance")

    -- | Is the <https://www.opengl.org/registry/specs/ARB/base_instance.txt ARB_base_instance> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetARBBaseInstance' in those cases instead.
    gl_ARB_base_instance :: Bool
    gl_ARB_base_instance :: Bool
    gl_ARB_base_instance = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_base_instance" Set String
    extensions
    {-# NOINLINE gl_ARB_base_instance #-}

    -- | Is the <https://www.opengl.org/registry/specs/ARB/bindless_texture.txt ARB_bindless_texture> extension supported?
    glGetARBBindlessTexture :: MonadIO m => m Bool
    glGetARBBindlessTexture :: forall (m :: * -> *). MonadIO m => m Bool
    glGetARBBindlessTexture = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_bindless_texture")

    -- | Is the <https://www.opengl.org/registry/specs/ARB/bindless_texture.txt ARB_bindless_texture> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetARBBindlessTexture' in those cases instead.
    gl_ARB_bindless_texture :: Bool
    gl_ARB_bindless_texture :: Bool
    gl_ARB_bindless_texture = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_bindless_texture" Set String
    extensions
    {-# NOINLINE gl_ARB_bindless_texture #-}

    -- | Is the <https://www.opengl.org/registry/specs/ARB/blend_func_extended.txt ARB_blend_func_extended> extension supported?
    glGetARBBlendFuncExtended :: MonadIO m => m Bool
    glGetARBBlendFuncExtended :: forall (m :: * -> *). MonadIO m => m Bool
    glGetARBBlendFuncExtended = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_blend_func_extended")

    -- | Is the <https://www.opengl.org/registry/specs/ARB/blend_func_extended.txt ARB_blend_func_extended> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetARBBlendFuncExtended' in those cases instead.
    gl_ARB_blend_func_extended :: Bool
    gl_ARB_blend_func_extended :: Bool
    gl_ARB_blend_func_extended = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_blend_func_extended" Set String
    extensions
    {-# NOINLINE gl_ARB_blend_func_extended #-}

    -- | Is the <https://www.opengl.org/registry/specs/ARB/buffer_storage.txt ARB_buffer_storage> extension supported?
    glGetARBBufferStorage :: MonadIO m => m Bool
    glGetARBBufferStorage :: forall (m :: * -> *). MonadIO m => m Bool
    glGetARBBufferStorage = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_buffer_storage")

    -- | Is the <https://www.opengl.org/registry/specs/ARB/buffer_storage.txt ARB_buffer_storage> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetARBBufferStorage' in those cases instead.
    gl_ARB_buffer_storage :: Bool
    gl_ARB_buffer_storage :: Bool
    gl_ARB_buffer_storage = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_buffer_storage" Set String
    extensions
    {-# NOINLINE gl_ARB_buffer_storage #-}

    -- | Is the <https://www.opengl.org/registry/specs/ARB/cl_event.txt ARB_cl_event> extension supported?
    glGetARBCLEvent :: MonadIO m => m Bool
    glGetARBCLEvent :: forall (m :: * -> *). MonadIO m => m Bool
    glGetARBCLEvent = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_cl_event")

    -- | Is the <https://www.opengl.org/registry/specs/ARB/cl_event.txt ARB_cl_event> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetARBCLEvent' in those cases instead.
    gl_ARB_cl_event :: Bool
    gl_ARB_cl_event :: Bool
    gl_ARB_cl_event = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_cl_event" Set String
    extensions
    {-# NOINLINE gl_ARB_cl_event #-}

    -- | Is the <https://www.opengl.org/registry/specs/ARB/clear_buffer_object.txt ARB_clear_buffer_object> extension supported?
    glGetARBClearBufferObject :: MonadIO m => m Bool
    glGetARBClearBufferObject :: forall (m :: * -> *). MonadIO m => m Bool
    glGetARBClearBufferObject = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_clear_buffer_object")

    -- | Is the <https://www.opengl.org/registry/specs/ARB/clear_buffer_object.txt ARB_clear_buffer_object> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetARBClearBufferObject' in those cases instead.
    gl_ARB_clear_buffer_object :: Bool
    gl_ARB_clear_buffer_object :: Bool
    gl_ARB_clear_buffer_object = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_clear_buffer_object" Set String
    extensions
    {-# NOINLINE gl_ARB_clear_buffer_object #-}

    -- | Is the <https://www.opengl.org/registry/specs/ARB/clear_texture.txt ARB_clear_texture> extension supported?
    glGetARBClearTexture :: MonadIO m => m Bool
    glGetARBClearTexture :: forall (m :: * -> *). MonadIO m => m Bool
    glGetARBClearTexture = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_clear_texture")

    -- | Is the <https://www.opengl.org/registry/specs/ARB/clear_texture.txt ARB_clear_texture> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetARBClearTexture' in those cases instead.
    gl_ARB_clear_texture :: Bool
    gl_ARB_clear_texture :: Bool
    gl_ARB_clear_texture = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_clear_texture" Set String
    extensions
    {-# NOINLINE gl_ARB_clear_texture #-}

    -- | Is the <https://www.opengl.org/registry/specs/ARB/clip_control.txt ARB_clip_control> extension supported?
    glGetARBClipControl :: MonadIO m => m Bool
    glGetARBClipControl :: forall (m :: * -> *). MonadIO m => m Bool
    glGetARBClipControl = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_clip_control")

    -- | Is the <https://www.opengl.org/registry/specs/ARB/clip_control.txt ARB_clip_control> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetARBClipControl' in those cases instead.
    gl_ARB_clip_control :: Bool
    gl_ARB_clip_control :: Bool
    gl_ARB_clip_control = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_clip_control" Set String
    extensions
    {-# NOINLINE gl_ARB_clip_control #-}

    -- | Is the <https://www.opengl.org/registry/specs/ARB/color_buffer_float.txt ARB_color_buffer_float> extension supported?
    glGetARBColorBufferFloat :: MonadIO m => m Bool
    glGetARBColorBufferFloat :: forall (m :: * -> *). MonadIO m => m Bool
    glGetARBColorBufferFloat = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_color_buffer_float")

    -- | Is the <https://www.opengl.org/registry/specs/ARB/color_buffer_float.txt ARB_color_buffer_float> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetARBColorBufferFloat' in those cases instead.
    gl_ARB_color_buffer_float :: Bool
    gl_ARB_color_buffer_float :: Bool
    gl_ARB_color_buffer_float = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_color_buffer_float" Set String
    extensions
    {-# NOINLINE gl_ARB_color_buffer_float #-}

    -- | Is the <https://www.opengl.org/registry/specs/ARB/compressed_texture_pixel_storage.txt ARB_compressed_texture_pixel_storage> extension supported?
    glGetARBCompressedTexturePixelStorage :: MonadIO m => m Bool
    glGetARBCompressedTexturePixelStorage :: forall (m :: * -> *). MonadIO m => m Bool
    glGetARBCompressedTexturePixelStorage = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_compressed_texture_pixel_storage")

    -- | Is the <https://www.opengl.org/registry/specs/ARB/compressed_texture_pixel_storage.txt ARB_compressed_texture_pixel_storage> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetARBCompressedTexturePixelStorage' in those cases instead.
    gl_ARB_compressed_texture_pixel_storage :: Bool
    gl_ARB_compressed_texture_pixel_storage :: Bool
    gl_ARB_compressed_texture_pixel_storage = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_compressed_texture_pixel_storage" Set String
    extensions
    {-# NOINLINE gl_ARB_compressed_texture_pixel_storage #-}

    -- | Is the <https://www.opengl.org/registry/specs/ARB/compute_shader.txt ARB_compute_shader> extension supported?
    glGetARBComputeShader :: MonadIO m => m Bool
    glGetARBComputeShader :: forall (m :: * -> *). MonadIO m => m Bool
    glGetARBComputeShader = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_compute_shader")

    -- | Is the <https://www.opengl.org/registry/specs/ARB/compute_shader.txt ARB_compute_shader> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetARBComputeShader' in those cases instead.
    gl_ARB_compute_shader :: Bool
    gl_ARB_compute_shader :: Bool
    gl_ARB_compute_shader = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_compute_shader" Set String
    extensions
    {-# NOINLINE gl_ARB_compute_shader #-}

    -- | Is the <https://www.opengl.org/registry/specs/ARB/compute_variable_group_size.txt ARB_compute_variable_group_size> extension supported?
    glGetARBComputeVariableGroupSize :: MonadIO m => m Bool
    glGetARBComputeVariableGroupSize :: forall (m :: * -> *). MonadIO m => m Bool
    glGetARBComputeVariableGroupSize = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_compute_variable_group_size")

    -- | Is the <https://www.opengl.org/registry/specs/ARB/compute_variable_group_size.txt ARB_compute_variable_group_size> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetARBComputeVariableGroupSize' in those cases instead.
    gl_ARB_compute_variable_group_size :: Bool
    gl_ARB_compute_variable_group_size :: Bool
    gl_ARB_compute_variable_group_size = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_compute_variable_group_size" Set String
    extensions
    {-# NOINLINE gl_ARB_compute_variable_group_size #-}

    -- | Is the <https://www.opengl.org/registry/specs/ARB/conditional_render_inverted.txt ARB_conditional_render_inverted> extension supported?
    glGetARBConditionalRenderInverted :: MonadIO m => m Bool
    glGetARBConditionalRenderInverted :: forall (m :: * -> *). MonadIO m => m Bool
    glGetARBConditionalRenderInverted = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_conditional_render_inverted")

    -- | Is the <https://www.opengl.org/registry/specs/ARB/conditional_render_inverted.txt ARB_conditional_render_inverted> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetARBConditionalRenderInverted' in those cases instead.
    gl_ARB_conditional_render_inverted :: Bool
    gl_ARB_conditional_render_inverted :: Bool
    gl_ARB_conditional_render_inverted = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_conditional_render_inverted" Set String
    extensions
    {-# NOINLINE gl_ARB_conditional_render_inverted #-}

    -- | Is the <https://www.opengl.org/registry/specs/ARB/copy_buffer.txt ARB_copy_buffer> extension supported?
    glGetARBCopyBuffer :: MonadIO m => m Bool
    glGetARBCopyBuffer :: forall (m :: * -> *). MonadIO m => m Bool
    glGetARBCopyBuffer = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_copy_buffer")

    -- | Is the <https://www.opengl.org/registry/specs/ARB/copy_buffer.txt ARB_copy_buffer> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetARBCopyBuffer' in those cases instead.
    gl_ARB_copy_buffer :: Bool
    gl_ARB_copy_buffer :: Bool
    gl_ARB_copy_buffer = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_copy_buffer" Set String
    extensions
    {-# NOINLINE gl_ARB_copy_buffer #-}

    -- | Is the <https://www.opengl.org/registry/specs/ARB/copy_image.txt ARB_copy_image> extension supported?
    glGetARBCopyImage :: MonadIO m => m Bool
    glGetARBCopyImage :: forall (m :: * -> *). MonadIO m => m Bool
    glGetARBCopyImage = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_copy_image")

    -- | Is the <https://www.opengl.org/registry/specs/ARB/copy_image.txt ARB_copy_image> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetARBCopyImage' in those cases instead.
    gl_ARB_copy_image :: Bool
    gl_ARB_copy_image :: Bool
    gl_ARB_copy_image = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_copy_image" Set String
    extensions
    {-# NOINLINE gl_ARB_copy_image #-}

    -- | Is the <https://www.opengl.org/registry/specs/ARB/cull_distance.txt ARB_cull_distance> extension supported?
    glGetARBCullDistance :: MonadIO m => m Bool
    glGetARBCullDistance :: forall (m :: * -> *). MonadIO m => m Bool
    glGetARBCullDistance = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_cull_distance")

    -- | Is the <https://www.opengl.org/registry/specs/ARB/cull_distance.txt ARB_cull_distance> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetARBCullDistance' in those cases instead.
    gl_ARB_cull_distance :: Bool
    gl_ARB_cull_distance :: Bool
    gl_ARB_cull_distance = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_cull_distance" Set String
    extensions
    {-# NOINLINE gl_ARB_cull_distance #-}

    -- | Is the <https://www.opengl.org/registry/specs/ARB/debug_output.txt ARB_debug_output> extension supported?
    glGetARBDebugOutput :: MonadIO m => m Bool
    glGetARBDebugOutput :: forall (m :: * -> *). MonadIO m => m Bool
    glGetARBDebugOutput = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_debug_output")

    -- | Is the <https://www.opengl.org/registry/specs/ARB/debug_output.txt ARB_debug_output> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetARBDebugOutput' in those cases instead.
    gl_ARB_debug_output :: Bool
    gl_ARB_debug_output :: Bool
    gl_ARB_debug_output = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_debug_output" Set String
    extensions
    {-# NOINLINE gl_ARB_debug_output #-}

    -- | Is the <https://www.opengl.org/registry/specs/ARB/depth_buffer_float.txt ARB_depth_buffer_float> extension supported?
    glGetARBDepthBufferFloat :: MonadIO m => m Bool
    glGetARBDepthBufferFloat :: forall (m :: * -> *). MonadIO m => m Bool
    glGetARBDepthBufferFloat = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_depth_buffer_float")

    -- | Is the <https://www.opengl.org/registry/specs/ARB/depth_buffer_float.txt ARB_depth_buffer_float> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetARBDepthBufferFloat' in those cases instead.
    gl_ARB_depth_buffer_float :: Bool
    gl_ARB_depth_buffer_float :: Bool
    gl_ARB_depth_buffer_float = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_depth_buffer_float" Set String
    extensions
    {-# NOINLINE gl_ARB_depth_buffer_float #-}

    -- | Is the <https://www.opengl.org/registry/specs/ARB/depth_clamp.txt ARB_depth_clamp> extension supported?
    glGetARBDepthClamp :: MonadIO m => m Bool
    glGetARBDepthClamp :: forall (m :: * -> *). MonadIO m => m Bool
    glGetARBDepthClamp = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_depth_clamp")

    -- | Is the <https://www.opengl.org/registry/specs/ARB/depth_clamp.txt ARB_depth_clamp> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetARBDepthClamp' in those cases instead.
    gl_ARB_depth_clamp :: Bool
    gl_ARB_depth_clamp :: Bool
    gl_ARB_depth_clamp = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_depth_clamp" Set String
    extensions
    {-# NOINLINE gl_ARB_depth_clamp #-}

    -- | Is the <https://www.opengl.org/registry/specs/ARB/depth_texture.txt ARB_depth_texture> extension supported?
    glGetARBDepthTexture :: MonadIO m => m Bool
    glGetARBDepthTexture :: forall (m :: * -> *). MonadIO m => m Bool
    glGetARBDepthTexture = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_depth_texture")

    -- | Is the <https://www.opengl.org/registry/specs/ARB/depth_texture.txt ARB_depth_texture> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetARBDepthTexture' in those cases instead.
    gl_ARB_depth_texture :: Bool
    gl_ARB_depth_texture :: Bool
    gl_ARB_depth_texture = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_depth_texture" Set String
    extensions
    {-# NOINLINE gl_ARB_depth_texture #-}

    -- | Is the <https://www.opengl.org/registry/specs/ARB/direct_state_access.txt ARB_direct_state_access> extension supported?
    glGetARBDirectStateAccess :: MonadIO m => m Bool
    glGetARBDirectStateAccess :: forall (m :: * -> *). MonadIO m => m Bool
    glGetARBDirectStateAccess = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_direct_state_access")

    -- | Is the <https://www.opengl.org/registry/specs/ARB/direct_state_access.txt ARB_direct_state_access> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetARBDirectStateAccess' in those cases instead.
    gl_ARB_direct_state_access :: Bool
    gl_ARB_direct_state_access :: Bool
    gl_ARB_direct_state_access = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_direct_state_access" Set String
    extensions
    {-# NOINLINE gl_ARB_direct_state_access #-}

    -- | Is the <https://www.opengl.org/registry/specs/ARB/draw_buffers.txt ARB_draw_buffers> extension supported?
    glGetARBDrawBuffers :: MonadIO m => m Bool
    glGetARBDrawBuffers :: forall (m :: * -> *). MonadIO m => m Bool
    glGetARBDrawBuffers = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_draw_buffers")

    -- | Is the <https://www.opengl.org/registry/specs/ARB/draw_buffers.txt ARB_draw_buffers> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetARBDrawBuffers' in those cases instead.
    gl_ARB_draw_buffers :: Bool
    gl_ARB_draw_buffers :: Bool
    gl_ARB_draw_buffers = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_draw_buffers" Set String
    extensions
    {-# NOINLINE gl_ARB_draw_buffers #-}

    -- | Is the <https://www.opengl.org/registry/specs/ARB/draw_buffers_blend.txt ARB_draw_buffers_blend> extension supported?
    glGetARBDrawBuffersBlend :: MonadIO m => m Bool
    glGetARBDrawBuffersBlend :: forall (m :: * -> *). MonadIO m => m Bool
    glGetARBDrawBuffersBlend = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_draw_buffers_blend")

    -- | Is the <https://www.opengl.org/registry/specs/ARB/draw_buffers_blend.txt ARB_draw_buffers_blend> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetARBDrawBuffersBlend' in those cases instead.
    gl_ARB_draw_buffers_blend :: Bool
    gl_ARB_draw_buffers_blend :: Bool
    gl_ARB_draw_buffers_blend = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_draw_buffers_blend" Set String
    extensions
    {-# NOINLINE gl_ARB_draw_buffers_blend #-}

    -- | Is the <https://www.opengl.org/registry/specs/ARB/draw_elements_base_vertex.txt ARB_draw_elements_base_vertex> extension supported?
    glGetARBDrawElementsBaseVertex :: MonadIO m => m Bool
    glGetARBDrawElementsBaseVertex :: forall (m :: * -> *). MonadIO m => m Bool
    glGetARBDrawElementsBaseVertex = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_draw_elements_base_vertex")

    -- | Is the <https://www.opengl.org/registry/specs/ARB/draw_elements_base_vertex.txt ARB_draw_elements_base_vertex> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetARBDrawElementsBaseVertex' in those cases instead.
    gl_ARB_draw_elements_base_vertex :: Bool
    gl_ARB_draw_elements_base_vertex :: Bool
    gl_ARB_draw_elements_base_vertex = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_draw_elements_base_vertex" Set String
    extensions
    {-# NOINLINE gl_ARB_draw_elements_base_vertex #-}

    -- | Is the <https://www.opengl.org/registry/specs/ARB/draw_indirect.txt ARB_draw_indirect> extension supported?
    glGetARBDrawIndirect :: MonadIO m => m Bool
    glGetARBDrawIndirect :: forall (m :: * -> *). MonadIO m => m Bool
    glGetARBDrawIndirect = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_draw_indirect")

    -- | Is the <https://www.opengl.org/registry/specs/ARB/draw_indirect.txt ARB_draw_indirect> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetARBDrawIndirect' in those cases instead.
    gl_ARB_draw_indirect :: Bool
    gl_ARB_draw_indirect :: Bool
    gl_ARB_draw_indirect = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_draw_indirect" Set String
    extensions
    {-# NOINLINE gl_ARB_draw_indirect #-}

    -- | Is the <https://www.opengl.org/registry/specs/ARB/draw_instanced.txt ARB_draw_instanced> extension supported?
    glGetARBDrawInstanced :: MonadIO m => m Bool
    glGetARBDrawInstanced :: forall (m :: * -> *). MonadIO m => m Bool
    glGetARBDrawInstanced = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_draw_instanced")

    -- | Is the <https://www.opengl.org/registry/specs/ARB/draw_instanced.txt ARB_draw_instanced> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetARBDrawInstanced' in those cases instead.
    gl_ARB_draw_instanced :: Bool
    gl_ARB_draw_instanced :: Bool
    gl_ARB_draw_instanced = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_draw_instanced" Set String
    extensions
    {-# NOINLINE gl_ARB_draw_instanced #-}

    -- | Is the <https://www.opengl.org/registry/specs/ARB/enhanced_layouts.txt ARB_enhanced_layouts> extension supported?
    glGetARBEnhancedLayouts :: MonadIO m => m Bool
    glGetARBEnhancedLayouts :: forall (m :: * -> *). MonadIO m => m Bool
    glGetARBEnhancedLayouts = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_enhanced_layouts")

    -- | Is the <https://www.opengl.org/registry/specs/ARB/enhanced_layouts.txt ARB_enhanced_layouts> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetARBEnhancedLayouts' in those cases instead.
    gl_ARB_enhanced_layouts :: Bool
    gl_ARB_enhanced_layouts :: Bool
    gl_ARB_enhanced_layouts = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_enhanced_layouts" Set String
    extensions
    {-# NOINLINE gl_ARB_enhanced_layouts #-}

    -- | Is the <https://www.opengl.org/registry/specs/ARB/explicit_uniform_location.txt ARB_explicit_uniform_location> extension supported?
    glGetARBExplicitUniformLocation :: MonadIO m => m Bool
    glGetARBExplicitUniformLocation :: forall (m :: * -> *). MonadIO m => m Bool
    glGetARBExplicitUniformLocation = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_explicit_uniform_location")

    -- | Is the <https://www.opengl.org/registry/specs/ARB/explicit_uniform_location.txt ARB_explicit_uniform_location> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetARBExplicitUniformLocation' in those cases instead.
    gl_ARB_explicit_uniform_location :: Bool
    gl_ARB_explicit_uniform_location :: Bool
    gl_ARB_explicit_uniform_location = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_explicit_uniform_location" Set String
    extensions
    {-# NOINLINE gl_ARB_explicit_uniform_location #-}

    -- | Is the <https://www.opengl.org/registry/specs/ARB/fragment_program.txt ARB_fragment_program> extension supported?
    glGetARBFragmentProgram :: MonadIO m => m Bool
    glGetARBFragmentProgram :: forall (m :: * -> *). MonadIO m => m Bool
    glGetARBFragmentProgram = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_fragment_program")

    -- | Is the <https://www.opengl.org/registry/specs/ARB/fragment_program.txt ARB_fragment_program> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetARBFragmentProgram' in those cases instead.
    gl_ARB_fragment_program :: Bool
    gl_ARB_fragment_program :: Bool
    gl_ARB_fragment_program = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_fragment_program" Set String
    extensions
    {-# NOINLINE gl_ARB_fragment_program #-}

    -- | Is the <https://www.opengl.org/registry/specs/ARB/fragment_shader.txt ARB_fragment_shader> extension supported?
    glGetARBFragmentShader :: MonadIO m => m Bool
    glGetARBFragmentShader :: forall (m :: * -> *). MonadIO m => m Bool
    glGetARBFragmentShader = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_fragment_shader")

    -- | Is the <https://www.opengl.org/registry/specs/ARB/fragment_shader.txt ARB_fragment_shader> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetARBFragmentShader' in those cases instead.
    gl_ARB_fragment_shader :: Bool
    gl_ARB_fragment_shader :: Bool
    gl_ARB_fragment_shader = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_fragment_shader" Set String
    extensions
    {-# NOINLINE gl_ARB_fragment_shader #-}

    -- | Is the <https://www.opengl.org/registry/specs/ARB/framebuffer_no_attachments.txt ARB_framebuffer_no_attachments> extension supported?
    glGetARBFramebufferNoAttachments :: MonadIO m => m Bool
    glGetARBFramebufferNoAttachments :: forall (m :: * -> *). MonadIO m => m Bool
    glGetARBFramebufferNoAttachments = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_framebuffer_no_attachments")

    -- | Is the <https://www.opengl.org/registry/specs/ARB/framebuffer_no_attachments.txt ARB_framebuffer_no_attachments> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetARBFramebufferNoAttachments' in those cases instead.
    gl_ARB_framebuffer_no_attachments :: Bool
    gl_ARB_framebuffer_no_attachments :: Bool
    gl_ARB_framebuffer_no_attachments = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_framebuffer_no_attachments" Set String
    extensions
    {-# NOINLINE gl_ARB_framebuffer_no_attachments #-}

    -- | Is the <https://www.opengl.org/registry/specs/ARB/framebuffer_object.txt ARB_framebuffer_object> extension supported?
    glGetARBFramebufferObject :: MonadIO m => m Bool
    glGetARBFramebufferObject :: forall (m :: * -> *). MonadIO m => m Bool
    glGetARBFramebufferObject = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_framebuffer_object")

    -- | Is the <https://www.opengl.org/registry/specs/ARB/framebuffer_object.txt ARB_framebuffer_object> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetARBFramebufferObject' in those cases instead.
    gl_ARB_framebuffer_object :: Bool
    gl_ARB_framebuffer_object :: Bool
    gl_ARB_framebuffer_object = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_framebuffer_object" Set String
    extensions
    {-# NOINLINE gl_ARB_framebuffer_object #-}

    -- | Is the <https://www.opengl.org/registry/specs/ARB/framebuffer_sRGB.txt ARB_framebuffer_sRGB> extension supported?
    glGetARBFramebufferSRGB :: MonadIO m => m Bool
    glGetARBFramebufferSRGB :: forall (m :: * -> *). MonadIO m => m Bool
    glGetARBFramebufferSRGB = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_framebuffer_sRGB")

    -- | Is the <https://www.opengl.org/registry/specs/ARB/framebuffer_sRGB.txt ARB_framebuffer_sRGB> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetARBFramebufferSRGB' in those cases instead.
    gl_ARB_framebuffer_sRGB :: Bool
    gl_ARB_framebuffer_sRGB :: Bool
    gl_ARB_framebuffer_sRGB = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_framebuffer_sRGB" Set String
    extensions
    {-# NOINLINE gl_ARB_framebuffer_sRGB #-}

    -- | Is the <https://www.opengl.org/registry/specs/ARB/geometry_shader4.txt ARB_geometry_shader4> extension supported?
    glGetARBGeometryShader4 :: MonadIO m => m Bool
    glGetARBGeometryShader4 :: forall (m :: * -> *). MonadIO m => m Bool
    glGetARBGeometryShader4 = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_geometry_shader4")

    -- | Is the <https://www.opengl.org/registry/specs/ARB/geometry_shader4.txt ARB_geometry_shader4> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetARBGeometryShader4' in those cases instead.
    gl_ARB_geometry_shader4 :: Bool
    gl_ARB_geometry_shader4 :: Bool
    gl_ARB_geometry_shader4 = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_geometry_shader4" Set String
    extensions
    {-# NOINLINE gl_ARB_geometry_shader4 #-}

    -- | Is the <https://www.opengl.org/registry/specs/ARB/get_program_binary.txt ARB_get_program_binary> extension supported?
    glGetARBGetProgramBinary :: MonadIO m => m Bool
    glGetARBGetProgramBinary :: forall (m :: * -> *). MonadIO m => m Bool
    glGetARBGetProgramBinary = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_get_program_binary")

    -- | Is the <https://www.opengl.org/registry/specs/ARB/get_program_binary.txt ARB_get_program_binary> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetARBGetProgramBinary' in those cases instead.
    gl_ARB_get_program_binary :: Bool
    gl_ARB_get_program_binary :: Bool
    gl_ARB_get_program_binary = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_get_program_binary" Set String
    extensions
    {-# NOINLINE gl_ARB_get_program_binary #-}

    -- | Is the <https://www.opengl.org/registry/specs/ARB/get_texture_sub_image.txt ARB_get_texture_sub_image> extension supported?
    glGetARBGetTextureSubImage :: MonadIO m => m Bool
    glGetARBGetTextureSubImage :: forall (m :: * -> *). MonadIO m => m Bool
    glGetARBGetTextureSubImage = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_get_texture_sub_image")

    -- | Is the <https://www.opengl.org/registry/specs/ARB/get_texture_sub_image.txt ARB_get_texture_sub_image> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetARBGetTextureSubImage' in those cases instead.
    gl_ARB_get_texture_sub_image :: Bool
    gl_ARB_get_texture_sub_image :: Bool
    gl_ARB_get_texture_sub_image = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_get_texture_sub_image" Set String
    extensions
    {-# NOINLINE gl_ARB_get_texture_sub_image #-}

    -- | Is the <https://www.opengl.org/registry/specs/ARB/gl_spirv.txt ARB_gl_spirv> extension supported?
    glGetARBGlSpirv :: MonadIO m => m Bool
    glGetARBGlSpirv :: forall (m :: * -> *). MonadIO m => m Bool
    glGetARBGlSpirv = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_gl_spirv")

    -- | Is the <https://www.opengl.org/registry/specs/ARB/gl_spirv.txt ARB_gl_spirv> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetARBGlSpirv' in those cases instead.
    gl_ARB_gl_spirv :: Bool
    gl_ARB_gl_spirv :: Bool
    gl_ARB_gl_spirv = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_gl_spirv" Set String
    extensions
    {-# NOINLINE gl_ARB_gl_spirv #-}

    -- | Is the <https://www.opengl.org/registry/specs/ARB/gpu_shader5.txt ARB_gpu_shader5> extension supported?
    glGetARBGPUShader5 :: MonadIO m => m Bool
    glGetARBGPUShader5 :: forall (m :: * -> *). MonadIO m => m Bool
    glGetARBGPUShader5 = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_gpu_shader5")

    -- | Is the <https://www.opengl.org/registry/specs/ARB/gpu_shader5.txt ARB_gpu_shader5> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetARBGPUShader5' in those cases instead.
    gl_ARB_gpu_shader5 :: Bool
    gl_ARB_gpu_shader5 :: Bool
    gl_ARB_gpu_shader5 = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_gpu_shader5" Set String
    extensions
    {-# NOINLINE gl_ARB_gpu_shader5 #-}

    -- | Is the <https://www.opengl.org/registry/specs/ARB/gpu_shader_fp64.txt ARB_gpu_shader_fp64> extension supported?
    glGetARBGPUShaderFP64 :: MonadIO m => m Bool
    glGetARBGPUShaderFP64 :: forall (m :: * -> *). MonadIO m => m Bool
    glGetARBGPUShaderFP64 = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_gpu_shader_fp64")

    -- | Is the <https://www.opengl.org/registry/specs/ARB/gpu_shader_fp64.txt ARB_gpu_shader_fp64> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetARBGPUShaderFP64' in those cases instead.
    gl_ARB_gpu_shader_fp64 :: Bool
    gl_ARB_gpu_shader_fp64 :: Bool
    gl_ARB_gpu_shader_fp64 = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_gpu_shader_fp64" Set String
    extensions
    {-# NOINLINE gl_ARB_gpu_shader_fp64 #-}

    -- | Is the <https://www.opengl.org/registry/specs/ARB/gpu_shader_int64.txt ARB_gpu_shader_int64> extension supported?
    glGetARBGPUShaderInt64 :: MonadIO m => m Bool
    glGetARBGPUShaderInt64 :: forall (m :: * -> *). MonadIO m => m Bool
    glGetARBGPUShaderInt64 = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_gpu_shader_int64")

    -- | Is the <https://www.opengl.org/registry/specs/ARB/gpu_shader_int64.txt ARB_gpu_shader_int64> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetARBGPUShaderInt64' in those cases instead.
    gl_ARB_gpu_shader_int64 :: Bool
    gl_ARB_gpu_shader_int64 :: Bool
    gl_ARB_gpu_shader_int64 = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_gpu_shader_int64" Set String
    extensions
    {-# NOINLINE gl_ARB_gpu_shader_int64 #-}

    -- | Is the <https://www.opengl.org/registry/specs/ARB/half_float_pixel.txt ARB_half_float_pixel> extension supported?
    glGetARBHalfFloatPixel :: MonadIO m => m Bool
    glGetARBHalfFloatPixel :: forall (m :: * -> *). MonadIO m => m Bool
    glGetARBHalfFloatPixel = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_half_float_pixel")

    -- | Is the <https://www.opengl.org/registry/specs/ARB/half_float_pixel.txt ARB_half_float_pixel> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetARBHalfFloatPixel' in those cases instead.
    gl_ARB_half_float_pixel :: Bool
    gl_ARB_half_float_pixel :: Bool
    gl_ARB_half_float_pixel = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_half_float_pixel" Set String
    extensions
    {-# NOINLINE gl_ARB_half_float_pixel #-}

    -- | Is the <https://www.opengl.org/registry/specs/ARB/half_float_vertex.txt ARB_half_float_vertex> extension supported?
    glGetARBHalfFloatVertex :: MonadIO m => m Bool
    glGetARBHalfFloatVertex :: forall (m :: * -> *). MonadIO m => m Bool
    glGetARBHalfFloatVertex = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_half_float_vertex")

    -- | Is the <https://www.opengl.org/registry/specs/ARB/half_float_vertex.txt ARB_half_float_vertex> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetARBHalfFloatVertex' in those cases instead.
    gl_ARB_half_float_vertex :: Bool
    gl_ARB_half_float_vertex :: Bool
    gl_ARB_half_float_vertex = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_half_float_vertex" Set String
    extensions
    {-# NOINLINE gl_ARB_half_float_vertex #-}

    -- | Is the <https://www.opengl.org/registry/specs/ARB/imaging.txt ARB_imaging> extension supported?
    glGetARBImaging :: MonadIO m => m Bool
    glGetARBImaging :: forall (m :: * -> *). MonadIO m => m Bool
    glGetARBImaging = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_imaging")

    -- | Is the <https://www.opengl.org/registry/specs/ARB/imaging.txt ARB_imaging> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetARBImaging' in those cases instead.
    gl_ARB_imaging :: Bool
    gl_ARB_imaging :: Bool
    gl_ARB_imaging = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_imaging" Set String
    extensions
    {-# NOINLINE gl_ARB_imaging #-}

    -- | Is the <https://www.opengl.org/registry/specs/ARB/indirect_parameters.txt ARB_indirect_parameters> extension supported?
    glGetARBIndirectParameters :: MonadIO m => m Bool
    glGetARBIndirectParameters :: forall (m :: * -> *). MonadIO m => m Bool
    glGetARBIndirectParameters = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_indirect_parameters")

    -- | Is the <https://www.opengl.org/registry/specs/ARB/indirect_parameters.txt ARB_indirect_parameters> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetARBIndirectParameters' in those cases instead.
    gl_ARB_indirect_parameters :: Bool
    gl_ARB_indirect_parameters :: Bool
    gl_ARB_indirect_parameters = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_indirect_parameters" Set String
    extensions
    {-# NOINLINE gl_ARB_indirect_parameters #-}

    -- | Is the <https://www.opengl.org/registry/specs/ARB/instanced_arrays.txt ARB_instanced_arrays> extension supported?
    glGetARBInstancedArrays :: MonadIO m => m Bool
    glGetARBInstancedArrays :: forall (m :: * -> *). MonadIO m => m Bool
    glGetARBInstancedArrays = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_instanced_arrays")

    -- | Is the <https://www.opengl.org/registry/specs/ARB/instanced_arrays.txt ARB_instanced_arrays> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetARBInstancedArrays' in those cases instead.
    gl_ARB_instanced_arrays :: Bool
    gl_ARB_instanced_arrays :: Bool
    gl_ARB_instanced_arrays = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_instanced_arrays" Set String
    extensions
    {-# NOINLINE gl_ARB_instanced_arrays #-}

    -- | Is the <https://www.opengl.org/registry/specs/ARB/internalformat_query.txt ARB_internalformat_query> extension supported?
    glGetARBInternalformatQuery :: MonadIO m => m Bool
    glGetARBInternalformatQuery :: forall (m :: * -> *). MonadIO m => m Bool
    glGetARBInternalformatQuery = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_internalformat_query")

    -- | Is the <https://www.opengl.org/registry/specs/ARB/internalformat_query.txt ARB_internalformat_query> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetARBInternalformatQuery' in those cases instead.
    gl_ARB_internalformat_query :: Bool
    gl_ARB_internalformat_query :: Bool
    gl_ARB_internalformat_query = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_internalformat_query" Set String
    extensions
    {-# NOINLINE gl_ARB_internalformat_query #-}

    -- | Is the <https://www.opengl.org/registry/specs/ARB/internalformat_query2.txt ARB_internalformat_query2> extension supported?
    glGetARBInternalformatQuery2 :: MonadIO m => m Bool
    glGetARBInternalformatQuery2 :: forall (m :: * -> *). MonadIO m => m Bool
    glGetARBInternalformatQuery2 = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_internalformat_query2")

    -- | Is the <https://www.opengl.org/registry/specs/ARB/internalformat_query2.txt ARB_internalformat_query2> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetARBInternalformatQuery2' in those cases instead.
    gl_ARB_internalformat_query2 :: Bool
    gl_ARB_internalformat_query2 :: Bool
    gl_ARB_internalformat_query2 = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_internalformat_query2" Set String
    extensions
    {-# NOINLINE gl_ARB_internalformat_query2 #-}

    -- | Is the <https://www.opengl.org/registry/specs/ARB/invalidate_subdata.txt ARB_invalidate_subdata> extension supported?
    glGetARBInvalidateSubdata :: MonadIO m => m Bool
    glGetARBInvalidateSubdata :: forall (m :: * -> *). MonadIO m => m Bool
    glGetARBInvalidateSubdata = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_invalidate_subdata")

    -- | Is the <https://www.opengl.org/registry/specs/ARB/invalidate_subdata.txt ARB_invalidate_subdata> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetARBInvalidateSubdata' in those cases instead.
    gl_ARB_invalidate_subdata :: Bool
    gl_ARB_invalidate_subdata :: Bool
    gl_ARB_invalidate_subdata = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_invalidate_subdata" Set String
    extensions
    {-# NOINLINE gl_ARB_invalidate_subdata #-}

    -- | Is the <https://www.opengl.org/registry/specs/ARB/map_buffer_alignment.txt ARB_map_buffer_alignment> extension supported?
    glGetARBMapBufferAlignment :: MonadIO m => m Bool
    glGetARBMapBufferAlignment :: forall (m :: * -> *). MonadIO m => m Bool
    glGetARBMapBufferAlignment = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_map_buffer_alignment")

    -- | Is the <https://www.opengl.org/registry/specs/ARB/map_buffer_alignment.txt ARB_map_buffer_alignment> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetARBMapBufferAlignment' in those cases instead.
    gl_ARB_map_buffer_alignment :: Bool
    gl_ARB_map_buffer_alignment :: Bool
    gl_ARB_map_buffer_alignment = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_map_buffer_alignment" Set String
    extensions
    {-# NOINLINE gl_ARB_map_buffer_alignment #-}

    -- | Is the <https://www.opengl.org/registry/specs/ARB/map_buffer_range.txt ARB_map_buffer_range> extension supported?
    glGetARBMapBufferRange :: MonadIO m => m Bool
    glGetARBMapBufferRange :: forall (m :: * -> *). MonadIO m => m Bool
    glGetARBMapBufferRange = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_map_buffer_range")

    -- | Is the <https://www.opengl.org/registry/specs/ARB/map_buffer_range.txt ARB_map_buffer_range> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetARBMapBufferRange' in those cases instead.
    gl_ARB_map_buffer_range :: Bool
    gl_ARB_map_buffer_range :: Bool
    gl_ARB_map_buffer_range = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_map_buffer_range" Set String
    extensions
    {-# NOINLINE gl_ARB_map_buffer_range #-}

    -- | Is the <https://www.opengl.org/registry/specs/ARB/matrix_palette.txt ARB_matrix_palette> extension supported?
    glGetARBMatrixPalette :: MonadIO m => m Bool
    glGetARBMatrixPalette :: forall (m :: * -> *). MonadIO m => m Bool
    glGetARBMatrixPalette = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_matrix_palette")

    -- | Is the <https://www.opengl.org/registry/specs/ARB/matrix_palette.txt ARB_matrix_palette> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetARBMatrixPalette' in those cases instead.
    gl_ARB_matrix_palette :: Bool
    gl_ARB_matrix_palette :: Bool
    gl_ARB_matrix_palette = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_matrix_palette" Set String
    extensions
    {-# NOINLINE gl_ARB_matrix_palette #-}

    -- | Is the <https://www.opengl.org/registry/specs/ARB/multi_bind.txt ARB_multi_bind> extension supported?
    glGetARBMultiBind :: MonadIO m => m Bool
    glGetARBMultiBind :: forall (m :: * -> *). MonadIO m => m Bool
    glGetARBMultiBind = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_multi_bind")

    -- | Is the <https://www.opengl.org/registry/specs/ARB/multi_bind.txt ARB_multi_bind> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetARBMultiBind' in those cases instead.
    gl_ARB_multi_bind :: Bool
    gl_ARB_multi_bind :: Bool
    gl_ARB_multi_bind = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_multi_bind" Set String
    extensions
    {-# NOINLINE gl_ARB_multi_bind #-}

    -- | Is the <https://www.opengl.org/registry/specs/ARB/multi_draw_indirect.txt ARB_multi_draw_indirect> extension supported?
    glGetARBMultiDrawIndirect :: MonadIO m => m Bool
    glGetARBMultiDrawIndirect :: forall (m :: * -> *). MonadIO m => m Bool
    glGetARBMultiDrawIndirect = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_multi_draw_indirect")

    -- | Is the <https://www.opengl.org/registry/specs/ARB/multi_draw_indirect.txt ARB_multi_draw_indirect> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetARBMultiDrawIndirect' in those cases instead.
    gl_ARB_multi_draw_indirect :: Bool
    gl_ARB_multi_draw_indirect :: Bool
    gl_ARB_multi_draw_indirect = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_multi_draw_indirect" Set String
    extensions
    {-# NOINLINE gl_ARB_multi_draw_indirect #-}

    -- | Is the <https://www.opengl.org/registry/specs/ARB/multisample.txt ARB_multisample> extension supported?
    glGetARBMultisample :: MonadIO m => m Bool
    glGetARBMultisample :: forall (m :: * -> *). MonadIO m => m Bool
    glGetARBMultisample = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_multisample")

    -- | Is the <https://www.opengl.org/registry/specs/ARB/multisample.txt ARB_multisample> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetARBMultisample' in those cases instead.
    gl_ARB_multisample :: Bool
    gl_ARB_multisample :: Bool
    gl_ARB_multisample = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_multisample" Set String
    extensions
    {-# NOINLINE gl_ARB_multisample #-}

    -- | Is the <https://www.opengl.org/registry/specs/ARB/multitexture.txt ARB_multitexture> extension supported?
    glGetARBMultitexture :: MonadIO m => m Bool
    glGetARBMultitexture :: forall (m :: * -> *). MonadIO m => m Bool
    glGetARBMultitexture = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_multitexture")

    -- | Is the <https://www.opengl.org/registry/specs/ARB/multitexture.txt ARB_multitexture> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetARBMultitexture' in those cases instead.
    gl_ARB_multitexture :: Bool
    gl_ARB_multitexture :: Bool
    gl_ARB_multitexture = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_multitexture" Set String
    extensions
    {-# NOINLINE gl_ARB_multitexture #-}

    -- | Is the <https://www.opengl.org/registry/specs/ARB/occlusion_query.txt ARB_occlusion_query> extension supported?
    glGetARBOcclusionQuery :: MonadIO m => m Bool
    glGetARBOcclusionQuery :: forall (m :: * -> *). MonadIO m => m Bool
    glGetARBOcclusionQuery = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_occlusion_query")

    -- | Is the <https://www.opengl.org/registry/specs/ARB/occlusion_query.txt ARB_occlusion_query> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetARBOcclusionQuery' in those cases instead.
    gl_ARB_occlusion_query :: Bool
    gl_ARB_occlusion_query :: Bool
    gl_ARB_occlusion_query = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_occlusion_query" Set String
    extensions
    {-# NOINLINE gl_ARB_occlusion_query #-}

    -- | Is the <https://www.opengl.org/registry/specs/ARB/occlusion_query2.txt ARB_occlusion_query2> extension supported?
    glGetARBOcclusionQuery2 :: MonadIO m => m Bool
    glGetARBOcclusionQuery2 :: forall (m :: * -> *). MonadIO m => m Bool
    glGetARBOcclusionQuery2 = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_occlusion_query2")

    -- | Is the <https://www.opengl.org/registry/specs/ARB/occlusion_query2.txt ARB_occlusion_query2> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetARBOcclusionQuery2' in those cases instead.
    gl_ARB_occlusion_query2 :: Bool
    gl_ARB_occlusion_query2 :: Bool
    gl_ARB_occlusion_query2 = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_occlusion_query2" Set String
    extensions
    {-# NOINLINE gl_ARB_occlusion_query2 #-}

    -- | Is the <https://www.opengl.org/registry/specs/ARB/parallel_shader_compile.txt ARB_parallel_shader_compile> extension supported?
    glGetARBParallelShaderCompile :: MonadIO m => m Bool
    glGetARBParallelShaderCompile :: forall (m :: * -> *). MonadIO m => m Bool
    glGetARBParallelShaderCompile = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_parallel_shader_compile")

    -- | Is the <https://www.opengl.org/registry/specs/ARB/parallel_shader_compile.txt ARB_parallel_shader_compile> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetARBParallelShaderCompile' in those cases instead.
    gl_ARB_parallel_shader_compile :: Bool
    gl_ARB_parallel_shader_compile :: Bool
    gl_ARB_parallel_shader_compile = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_parallel_shader_compile" Set String
    extensions
    {-# NOINLINE gl_ARB_parallel_shader_compile #-}

    -- | Is the <https://www.opengl.org/registry/specs/ARB/pipeline_statistics_query.txt ARB_pipeline_statistics_query> extension supported?
    glGetARBPipelineStatisticsQuery :: MonadIO m => m Bool
    glGetARBPipelineStatisticsQuery :: forall (m :: * -> *). MonadIO m => m Bool
    glGetARBPipelineStatisticsQuery = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_pipeline_statistics_query")

    -- | Is the <https://www.opengl.org/registry/specs/ARB/pipeline_statistics_query.txt ARB_pipeline_statistics_query> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetARBPipelineStatisticsQuery' in those cases instead.
    gl_ARB_pipeline_statistics_query :: Bool
    gl_ARB_pipeline_statistics_query :: Bool
    gl_ARB_pipeline_statistics_query = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_pipeline_statistics_query" Set String
    extensions
    {-# NOINLINE gl_ARB_pipeline_statistics_query #-}

    -- | Is the <https://www.opengl.org/registry/specs/ARB/pixel_buffer_object.txt ARB_pixel_buffer_object> extension supported?
    glGetARBPixelBufferObject :: MonadIO m => m Bool
    glGetARBPixelBufferObject :: forall (m :: * -> *). MonadIO m => m Bool
    glGetARBPixelBufferObject = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_pixel_buffer_object")

    -- | Is the <https://www.opengl.org/registry/specs/ARB/pixel_buffer_object.txt ARB_pixel_buffer_object> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetARBPixelBufferObject' in those cases instead.
    gl_ARB_pixel_buffer_object :: Bool
    gl_ARB_pixel_buffer_object :: Bool
    gl_ARB_pixel_buffer_object = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_pixel_buffer_object" Set String
    extensions
    {-# NOINLINE gl_ARB_pixel_buffer_object #-}

    -- | Is the <https://www.opengl.org/registry/specs/ARB/point_parameters.txt ARB_point_parameters> extension supported?
    glGetARBPointParameters :: MonadIO m => m Bool
    glGetARBPointParameters :: forall (m :: * -> *). MonadIO m => m Bool
    glGetARBPointParameters = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_point_parameters")

    -- | Is the <https://www.opengl.org/registry/specs/ARB/point_parameters.txt ARB_point_parameters> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetARBPointParameters' in those cases instead.
    gl_ARB_point_parameters :: Bool
    gl_ARB_point_parameters :: Bool
    gl_ARB_point_parameters = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_point_parameters" Set String
    extensions
    {-# NOINLINE gl_ARB_point_parameters #-}

    -- | Is the <https://www.opengl.org/registry/specs/ARB/point_sprite.txt ARB_point_sprite> extension supported?
    glGetARBPointSprite :: MonadIO m => m Bool
    glGetARBPointSprite :: forall (m :: * -> *). MonadIO m => m Bool
    glGetARBPointSprite = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_point_sprite")

    -- | Is the <https://www.opengl.org/registry/specs/ARB/point_sprite.txt ARB_point_sprite> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetARBPointSprite' in those cases instead.
    gl_ARB_point_sprite :: Bool
    gl_ARB_point_sprite :: Bool
    gl_ARB_point_sprite = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_point_sprite" Set String
    extensions
    {-# NOINLINE gl_ARB_point_sprite #-}

    -- | Is the <https://www.opengl.org/registry/specs/ARB/polygon_offset_clamp.txt ARB_polygon_offset_clamp> extension supported?
    glGetARBPolygonOffsetClamp :: MonadIO m => m Bool
    glGetARBPolygonOffsetClamp :: forall (m :: * -> *). MonadIO m => m Bool
    glGetARBPolygonOffsetClamp = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_polygon_offset_clamp")

    -- | Is the <https://www.opengl.org/registry/specs/ARB/polygon_offset_clamp.txt ARB_polygon_offset_clamp> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetARBPolygonOffsetClamp' in those cases instead.
    gl_ARB_polygon_offset_clamp :: Bool
    gl_ARB_polygon_offset_clamp :: Bool
    gl_ARB_polygon_offset_clamp = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_polygon_offset_clamp" Set String
    extensions
    {-# NOINLINE gl_ARB_polygon_offset_clamp #-}

    -- | Is the <https://www.opengl.org/registry/specs/ARB/program_interface_query.txt ARB_program_interface_query> extension supported?
    glGetARBProgramInterfaceQuery :: MonadIO m => m Bool
    glGetARBProgramInterfaceQuery :: forall (m :: * -> *). MonadIO m => m Bool
    glGetARBProgramInterfaceQuery = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_program_interface_query")

    -- | Is the <https://www.opengl.org/registry/specs/ARB/program_interface_query.txt ARB_program_interface_query> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetARBProgramInterfaceQuery' in those cases instead.
    gl_ARB_program_interface_query :: Bool
    gl_ARB_program_interface_query :: Bool
    gl_ARB_program_interface_query = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_program_interface_query" Set String
    extensions
    {-# NOINLINE gl_ARB_program_interface_query #-}

    -- | Is the <https://www.opengl.org/registry/specs/ARB/provoking_vertex.txt ARB_provoking_vertex> extension supported?
    glGetARBProvokingVertex :: MonadIO m => m Bool
    glGetARBProvokingVertex :: forall (m :: * -> *). MonadIO m => m Bool
    glGetARBProvokingVertex = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_provoking_vertex")

    -- | Is the <https://www.opengl.org/registry/specs/ARB/provoking_vertex.txt ARB_provoking_vertex> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetARBProvokingVertex' in those cases instead.
    gl_ARB_provoking_vertex :: Bool
    gl_ARB_provoking_vertex :: Bool
    gl_ARB_provoking_vertex = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_provoking_vertex" Set String
    extensions
    {-# NOINLINE gl_ARB_provoking_vertex #-}

    -- | Is the <https://www.opengl.org/registry/specs/ARB/query_buffer_object.txt ARB_query_buffer_object> extension supported?
    glGetARBQueryBufferObject :: MonadIO m => m Bool
    glGetARBQueryBufferObject :: forall (m :: * -> *). MonadIO m => m Bool
    glGetARBQueryBufferObject = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_query_buffer_object")

    -- | Is the <https://www.opengl.org/registry/specs/ARB/query_buffer_object.txt ARB_query_buffer_object> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetARBQueryBufferObject' in those cases instead.
    gl_ARB_query_buffer_object :: Bool
    gl_ARB_query_buffer_object :: Bool
    gl_ARB_query_buffer_object = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_query_buffer_object" Set String
    extensions
    {-# NOINLINE gl_ARB_query_buffer_object #-}

    -- | Is the <https://www.opengl.org/registry/specs/ARB/robustness.txt ARB_robustness> extension supported?
    glGetARBRobustness :: MonadIO m => m Bool
    glGetARBRobustness :: forall (m :: * -> *). MonadIO m => m Bool
    glGetARBRobustness = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_robustness")

    -- | Is the <https://www.opengl.org/registry/specs/ARB/robustness.txt ARB_robustness> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetARBRobustness' in those cases instead.
    gl_ARB_robustness :: Bool
    gl_ARB_robustness :: Bool
    gl_ARB_robustness = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_robustness" Set String
    extensions
    {-# NOINLINE gl_ARB_robustness #-}

    -- | Is the <https://www.opengl.org/registry/specs/ARB/sample_locations.txt ARB_sample_locations> extension supported?
    glGetARBSampleLocations :: MonadIO m => m Bool
    glGetARBSampleLocations :: forall (m :: * -> *). MonadIO m => m Bool
    glGetARBSampleLocations = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_sample_locations")

    -- | Is the <https://www.opengl.org/registry/specs/ARB/sample_locations.txt ARB_sample_locations> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetARBSampleLocations' in those cases instead.
    gl_ARB_sample_locations :: Bool
    gl_ARB_sample_locations :: Bool
    gl_ARB_sample_locations = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_sample_locations" Set String
    extensions
    {-# NOINLINE gl_ARB_sample_locations #-}

    -- | Is the <https://www.opengl.org/registry/specs/ARB/sample_shading.txt ARB_sample_shading> extension supported?
    glGetARBSampleShading :: MonadIO m => m Bool
    glGetARBSampleShading :: forall (m :: * -> *). MonadIO m => m Bool
    glGetARBSampleShading = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_sample_shading")

    -- | Is the <https://www.opengl.org/registry/specs/ARB/sample_shading.txt ARB_sample_shading> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetARBSampleShading' in those cases instead.
    gl_ARB_sample_shading :: Bool
    gl_ARB_sample_shading :: Bool
    gl_ARB_sample_shading = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_sample_shading" Set String
    extensions
    {-# NOINLINE gl_ARB_sample_shading #-}

    -- | Is the <https://www.opengl.org/registry/specs/ARB/sampler_objects.txt ARB_sampler_objects> extension supported?
    glGetARBSamplerObjects :: MonadIO m => m Bool
    glGetARBSamplerObjects :: forall (m :: * -> *). MonadIO m => m Bool
    glGetARBSamplerObjects = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_sampler_objects")

    -- | Is the <https://www.opengl.org/registry/specs/ARB/sampler_objects.txt ARB_sampler_objects> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetARBSamplerObjects' in those cases instead.
    gl_ARB_sampler_objects :: Bool
    gl_ARB_sampler_objects :: Bool
    gl_ARB_sampler_objects = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_sampler_objects" Set String
    extensions
    {-# NOINLINE gl_ARB_sampler_objects #-}

    -- | Is the <https://www.opengl.org/registry/specs/ARB/seamless_cube_map.txt ARB_seamless_cube_map> extension supported?
    glGetARBSeamlessCubeMap :: MonadIO m => m Bool
    glGetARBSeamlessCubeMap :: forall (m :: * -> *). MonadIO m => m Bool
    glGetARBSeamlessCubeMap = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_seamless_cube_map")

    -- | Is the <https://www.opengl.org/registry/specs/ARB/seamless_cube_map.txt ARB_seamless_cube_map> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetARBSeamlessCubeMap' in those cases instead.
    gl_ARB_seamless_cube_map :: Bool
    gl_ARB_seamless_cube_map :: Bool
    gl_ARB_seamless_cube_map = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_seamless_cube_map" Set String
    extensions
    {-# NOINLINE gl_ARB_seamless_cube_map #-}

    -- | Is the <https://www.opengl.org/registry/specs/ARB/seamless_cubemap_per_texture.txt ARB_seamless_cubemap_per_texture> extension supported?
    glGetARBSeamlessCubemapPerTexture :: MonadIO m => m Bool
    glGetARBSeamlessCubemapPerTexture :: forall (m :: * -> *). MonadIO m => m Bool
    glGetARBSeamlessCubemapPerTexture = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_seamless_cubemap_per_texture")

    -- | Is the <https://www.opengl.org/registry/specs/ARB/seamless_cubemap_per_texture.txt ARB_seamless_cubemap_per_texture> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetARBSeamlessCubemapPerTexture' in those cases instead.
    gl_ARB_seamless_cubemap_per_texture :: Bool
    gl_ARB_seamless_cubemap_per_texture :: Bool
    gl_ARB_seamless_cubemap_per_texture = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_seamless_cubemap_per_texture" Set String
    extensions
    {-# NOINLINE gl_ARB_seamless_cubemap_per_texture #-}

    -- | Is the <https://www.opengl.org/registry/specs/ARB/separate_shader_objects.txt ARB_separate_shader_objects> extension supported?
    glGetARBSeparateShaderObjects :: MonadIO m => m Bool
    glGetARBSeparateShaderObjects :: forall (m :: * -> *). MonadIO m => m Bool
    glGetARBSeparateShaderObjects = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_separate_shader_objects")

    -- | Is the <https://www.opengl.org/registry/specs/ARB/separate_shader_objects.txt ARB_separate_shader_objects> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetARBSeparateShaderObjects' in those cases instead.
    gl_ARB_separate_shader_objects :: Bool
    gl_ARB_separate_shader_objects :: Bool
    gl_ARB_separate_shader_objects = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_separate_shader_objects" Set String
    extensions
    {-# NOINLINE gl_ARB_separate_shader_objects #-}

    -- | Is the <https://www.opengl.org/registry/specs/ARB/shader_atomic_counters.txt ARB_shader_atomic_counters> extension supported?
    glGetARBShaderAtomicCounters :: MonadIO m => m Bool
    glGetARBShaderAtomicCounters :: forall (m :: * -> *). MonadIO m => m Bool
    glGetARBShaderAtomicCounters = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_shader_atomic_counters")

    -- | Is the <https://www.opengl.org/registry/specs/ARB/shader_atomic_counters.txt ARB_shader_atomic_counters> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetARBShaderAtomicCounters' in those cases instead.
    gl_ARB_shader_atomic_counters :: Bool
    gl_ARB_shader_atomic_counters :: Bool
    gl_ARB_shader_atomic_counters = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_shader_atomic_counters" Set String
    extensions
    {-# NOINLINE gl_ARB_shader_atomic_counters #-}

    -- | Is the <https://www.opengl.org/registry/specs/ARB/shader_image_load_store.txt ARB_shader_image_load_store> extension supported?
    glGetARBShaderImageLoadStore :: MonadIO m => m Bool
    glGetARBShaderImageLoadStore :: forall (m :: * -> *). MonadIO m => m Bool
    glGetARBShaderImageLoadStore = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_shader_image_load_store")

    -- | Is the <https://www.opengl.org/registry/specs/ARB/shader_image_load_store.txt ARB_shader_image_load_store> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetARBShaderImageLoadStore' in those cases instead.
    gl_ARB_shader_image_load_store :: Bool
    gl_ARB_shader_image_load_store :: Bool
    gl_ARB_shader_image_load_store = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_shader_image_load_store" Set String
    extensions
    {-# NOINLINE gl_ARB_shader_image_load_store #-}

    -- | Is the <https://www.opengl.org/registry/specs/ARB/shader_objects.txt ARB_shader_objects> extension supported?
    glGetARBShaderObjects :: MonadIO m => m Bool
    glGetARBShaderObjects :: forall (m :: * -> *). MonadIO m => m Bool
    glGetARBShaderObjects = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_shader_objects")

    -- | Is the <https://www.opengl.org/registry/specs/ARB/shader_objects.txt ARB_shader_objects> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetARBShaderObjects' in those cases instead.
    gl_ARB_shader_objects :: Bool
    gl_ARB_shader_objects :: Bool
    gl_ARB_shader_objects = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_shader_objects" Set String
    extensions
    {-# NOINLINE gl_ARB_shader_objects #-}

    -- | Is the <https://www.opengl.org/registry/specs/ARB/shader_storage_buffer_object.txt ARB_shader_storage_buffer_object> extension supported?
    glGetARBShaderStorageBufferObject :: MonadIO m => m Bool
    glGetARBShaderStorageBufferObject :: forall (m :: * -> *). MonadIO m => m Bool
    glGetARBShaderStorageBufferObject = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_shader_storage_buffer_object")

    -- | Is the <https://www.opengl.org/registry/specs/ARB/shader_storage_buffer_object.txt ARB_shader_storage_buffer_object> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetARBShaderStorageBufferObject' in those cases instead.
    gl_ARB_shader_storage_buffer_object :: Bool
    gl_ARB_shader_storage_buffer_object :: Bool
    gl_ARB_shader_storage_buffer_object = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_shader_storage_buffer_object" Set String
    extensions
    {-# NOINLINE gl_ARB_shader_storage_buffer_object #-}

    -- | Is the <https://www.opengl.org/registry/specs/ARB/shader_subroutine.txt ARB_shader_subroutine> extension supported?
    glGetARBShaderSubroutine :: MonadIO m => m Bool
    glGetARBShaderSubroutine :: forall (m :: * -> *). MonadIO m => m Bool
    glGetARBShaderSubroutine = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_shader_subroutine")

    -- | Is the <https://www.opengl.org/registry/specs/ARB/shader_subroutine.txt ARB_shader_subroutine> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetARBShaderSubroutine' in those cases instead.
    gl_ARB_shader_subroutine :: Bool
    gl_ARB_shader_subroutine :: Bool
    gl_ARB_shader_subroutine = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_shader_subroutine" Set String
    extensions
    {-# NOINLINE gl_ARB_shader_subroutine #-}

    -- | Is the <https://www.opengl.org/registry/specs/ARB/shading_language_100.txt ARB_shading_language_100> extension supported?
    glGetARBShadingLanguage100 :: MonadIO m => m Bool
    glGetARBShadingLanguage100 :: forall (m :: * -> *). MonadIO m => m Bool
    glGetARBShadingLanguage100 = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_shading_language_100")

    -- | Is the <https://www.opengl.org/registry/specs/ARB/shading_language_100.txt ARB_shading_language_100> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetARBShadingLanguage100' in those cases instead.
    gl_ARB_shading_language_100 :: Bool
    gl_ARB_shading_language_100 :: Bool
    gl_ARB_shading_language_100 = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_shading_language_100" Set String
    extensions
    {-# NOINLINE gl_ARB_shading_language_100 #-}

    -- | Is the <https://www.opengl.org/registry/specs/ARB/shading_language_include.txt ARB_shading_language_include> extension supported?
    glGetARBShadingLanguageInclude :: MonadIO m => m Bool
    glGetARBShadingLanguageInclude :: forall (m :: * -> *). MonadIO m => m Bool
    glGetARBShadingLanguageInclude = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_shading_language_include")

    -- | Is the <https://www.opengl.org/registry/specs/ARB/shading_language_include.txt ARB_shading_language_include> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetARBShadingLanguageInclude' in those cases instead.
    gl_ARB_shading_language_include :: Bool
    gl_ARB_shading_language_include :: Bool
    gl_ARB_shading_language_include = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_shading_language_include" Set String
    extensions
    {-# NOINLINE gl_ARB_shading_language_include #-}

    -- | Is the <https://www.opengl.org/registry/specs/ARB/shadow.txt ARB_shadow> extension supported?
    glGetARBShadow :: MonadIO m => m Bool
    glGetARBShadow :: forall (m :: * -> *). MonadIO m => m Bool
    glGetARBShadow = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_shadow")

    -- | Is the <https://www.opengl.org/registry/specs/ARB/shadow.txt ARB_shadow> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetARBShadow' in those cases instead.
    gl_ARB_shadow :: Bool
    gl_ARB_shadow :: Bool
    gl_ARB_shadow = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_shadow" Set String
    extensions
    {-# NOINLINE gl_ARB_shadow #-}

    -- | Is the <https://www.opengl.org/registry/specs/ARB/shadow_ambient.txt ARB_shadow_ambient> extension supported?
    glGetARBShadowAmbient :: MonadIO m => m Bool
    glGetARBShadowAmbient :: forall (m :: * -> *). MonadIO m => m Bool
    glGetARBShadowAmbient = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_shadow_ambient")

    -- | Is the <https://www.opengl.org/registry/specs/ARB/shadow_ambient.txt ARB_shadow_ambient> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetARBShadowAmbient' in those cases instead.
    gl_ARB_shadow_ambient :: Bool
    gl_ARB_shadow_ambient :: Bool
    gl_ARB_shadow_ambient = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_shadow_ambient" Set String
    extensions
    {-# NOINLINE gl_ARB_shadow_ambient #-}

    -- | Is the <https://www.opengl.org/registry/specs/ARB/sparse_buffer.txt ARB_sparse_buffer> extension supported?
    glGetARBSparseBuffer :: MonadIO m => m Bool
    glGetARBSparseBuffer :: forall (m :: * -> *). MonadIO m => m Bool
    glGetARBSparseBuffer = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_sparse_buffer")

    -- | Is the <https://www.opengl.org/registry/specs/ARB/sparse_buffer.txt ARB_sparse_buffer> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetARBSparseBuffer' in those cases instead.
    gl_ARB_sparse_buffer :: Bool
    gl_ARB_sparse_buffer :: Bool
    gl_ARB_sparse_buffer = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_sparse_buffer" Set String
    extensions
    {-# NOINLINE gl_ARB_sparse_buffer #-}

    -- | Is the <https://www.opengl.org/registry/specs/ARB/sparse_texture.txt ARB_sparse_texture> extension supported?
    glGetARBSparseTexture :: MonadIO m => m Bool
    glGetARBSparseTexture :: forall (m :: * -> *). MonadIO m => m Bool
    glGetARBSparseTexture = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_sparse_texture")

    -- | Is the <https://www.opengl.org/registry/specs/ARB/sparse_texture.txt ARB_sparse_texture> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetARBSparseTexture' in those cases instead.
    gl_ARB_sparse_texture :: Bool
    gl_ARB_sparse_texture :: Bool
    gl_ARB_sparse_texture = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_sparse_texture" Set String
    extensions
    {-# NOINLINE gl_ARB_sparse_texture #-}

    -- | Is the <https://www.opengl.org/registry/specs/ARB/spirv_extensions.txt ARB_spirv_extensions> extension supported?
    glGetARBSpirvExtensions :: MonadIO m => m Bool
    glGetARBSpirvExtensions :: forall (m :: * -> *). MonadIO m => m Bool
    glGetARBSpirvExtensions = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_spirv_extensions")

    -- | Is the <https://www.opengl.org/registry/specs/ARB/spirv_extensions.txt ARB_spirv_extensions> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetARBSpirvExtensions' in those cases instead.
    gl_ARB_spirv_extensions :: Bool
    gl_ARB_spirv_extensions :: Bool
    gl_ARB_spirv_extensions = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_spirv_extensions" Set String
    extensions
    {-# NOINLINE gl_ARB_spirv_extensions #-}

    -- | Is the <https://www.opengl.org/registry/specs/ARB/stencil_texturing.txt ARB_stencil_texturing> extension supported?
    glGetARBStencilTexturing :: MonadIO m => m Bool
    glGetARBStencilTexturing :: forall (m :: * -> *). MonadIO m => m Bool
    glGetARBStencilTexturing = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_stencil_texturing")

    -- | Is the <https://www.opengl.org/registry/specs/ARB/stencil_texturing.txt ARB_stencil_texturing> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetARBStencilTexturing' in those cases instead.
    gl_ARB_stencil_texturing :: Bool
    gl_ARB_stencil_texturing :: Bool
    gl_ARB_stencil_texturing = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_stencil_texturing" Set String
    extensions
    {-# NOINLINE gl_ARB_stencil_texturing #-}

    -- | Is the <https://www.opengl.org/registry/specs/ARB/sync.txt ARB_sync> extension supported?
    glGetARBSync :: MonadIO m => m Bool
    glGetARBSync :: forall (m :: * -> *). MonadIO m => m Bool
    glGetARBSync = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_sync")

    -- | Is the <https://www.opengl.org/registry/specs/ARB/sync.txt ARB_sync> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetARBSync' in those cases instead.
    gl_ARB_sync :: Bool
    gl_ARB_sync :: Bool
    gl_ARB_sync = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_sync" Set String
    extensions
    {-# NOINLINE gl_ARB_sync #-}

    -- | Is the <https://www.opengl.org/registry/specs/ARB/tessellation_shader.txt ARB_tessellation_shader> extension supported?
    glGetARBTessellationShader :: MonadIO m => m Bool
    glGetARBTessellationShader :: forall (m :: * -> *). MonadIO m => m Bool
    glGetARBTessellationShader = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_tessellation_shader")

    -- | Is the <https://www.opengl.org/registry/specs/ARB/tessellation_shader.txt ARB_tessellation_shader> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetARBTessellationShader' in those cases instead.
    gl_ARB_tessellation_shader :: Bool
    gl_ARB_tessellation_shader :: Bool
    gl_ARB_tessellation_shader = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_tessellation_shader" Set String
    extensions
    {-# NOINLINE gl_ARB_tessellation_shader #-}

    -- | Is the <https://www.opengl.org/registry/specs/ARB/texture_barrier.txt ARB_texture_barrier> extension supported?
    glGetARBTextureBarrier :: MonadIO m => m Bool
    glGetARBTextureBarrier :: forall (m :: * -> *). MonadIO m => m Bool
    glGetARBTextureBarrier = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_texture_barrier")

    -- | Is the <https://www.opengl.org/registry/specs/ARB/texture_barrier.txt ARB_texture_barrier> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetARBTextureBarrier' in those cases instead.
    gl_ARB_texture_barrier :: Bool
    gl_ARB_texture_barrier :: Bool
    gl_ARB_texture_barrier = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_texture_barrier" Set String
    extensions
    {-# NOINLINE gl_ARB_texture_barrier #-}

    -- | Is the <https://www.opengl.org/registry/specs/ARB/texture_border_clamp.txt ARB_texture_border_clamp> extension supported?
    glGetARBTextureBorderClamp :: MonadIO m => m Bool
    glGetARBTextureBorderClamp :: forall (m :: * -> *). MonadIO m => m Bool
    glGetARBTextureBorderClamp = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_texture_border_clamp")

    -- | Is the <https://www.opengl.org/registry/specs/ARB/texture_border_clamp.txt ARB_texture_border_clamp> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetARBTextureBorderClamp' in those cases instead.
    gl_ARB_texture_border_clamp :: Bool
    gl_ARB_texture_border_clamp :: Bool
    gl_ARB_texture_border_clamp = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_texture_border_clamp" Set String
    extensions
    {-# NOINLINE gl_ARB_texture_border_clamp #-}

    -- | Is the <https://www.opengl.org/registry/specs/ARB/texture_buffer_object.txt ARB_texture_buffer_object> extension supported?
    glGetARBTextureBufferObject :: MonadIO m => m Bool
    glGetARBTextureBufferObject :: forall (m :: * -> *). MonadIO m => m Bool
    glGetARBTextureBufferObject = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_texture_buffer_object")

    -- | Is the <https://www.opengl.org/registry/specs/ARB/texture_buffer_object.txt ARB_texture_buffer_object> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetARBTextureBufferObject' in those cases instead.
    gl_ARB_texture_buffer_object :: Bool
    gl_ARB_texture_buffer_object :: Bool
    gl_ARB_texture_buffer_object = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_texture_buffer_object" Set String
    extensions
    {-# NOINLINE gl_ARB_texture_buffer_object #-}

    -- | Is the <https://www.opengl.org/registry/specs/ARB/texture_buffer_object_rgb32.txt ARB_texture_buffer_object_rgb32> extension supported?
    glGetARBTextureBufferObjectRGB32 :: MonadIO m => m Bool
    glGetARBTextureBufferObjectRGB32 :: forall (m :: * -> *). MonadIO m => m Bool
    glGetARBTextureBufferObjectRGB32 = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_texture_buffer_object_rgb32")

    -- | Is the <https://www.opengl.org/registry/specs/ARB/texture_buffer_object_rgb32.txt ARB_texture_buffer_object_rgb32> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetARBTextureBufferObjectRGB32' in those cases instead.
    gl_ARB_texture_buffer_object_rgb32 :: Bool
    gl_ARB_texture_buffer_object_rgb32 :: Bool
    gl_ARB_texture_buffer_object_rgb32 = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_texture_buffer_object_rgb32" Set String
    extensions
    {-# NOINLINE gl_ARB_texture_buffer_object_rgb32 #-}

    -- | Is the <https://www.opengl.org/registry/specs/ARB/texture_buffer_range.txt ARB_texture_buffer_range> extension supported?
    glGetARBTextureBufferRange :: MonadIO m => m Bool
    glGetARBTextureBufferRange :: forall (m :: * -> *). MonadIO m => m Bool
    glGetARBTextureBufferRange = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_texture_buffer_range")

    -- | Is the <https://www.opengl.org/registry/specs/ARB/texture_buffer_range.txt ARB_texture_buffer_range> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetARBTextureBufferRange' in those cases instead.
    gl_ARB_texture_buffer_range :: Bool
    gl_ARB_texture_buffer_range :: Bool
    gl_ARB_texture_buffer_range = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_texture_buffer_range" Set String
    extensions
    {-# NOINLINE gl_ARB_texture_buffer_range #-}

    -- | Is the <https://www.opengl.org/registry/specs/ARB/texture_compression.txt ARB_texture_compression> extension supported?
    glGetARBTextureCompression :: MonadIO m => m Bool
    glGetARBTextureCompression :: forall (m :: * -> *). MonadIO m => m Bool
    glGetARBTextureCompression = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_texture_compression")

    -- | Is the <https://www.opengl.org/registry/specs/ARB/texture_compression.txt ARB_texture_compression> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetARBTextureCompression' in those cases instead.
    gl_ARB_texture_compression :: Bool
    gl_ARB_texture_compression :: Bool
    gl_ARB_texture_compression = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_texture_compression" Set String
    extensions
    {-# NOINLINE gl_ARB_texture_compression #-}

    -- | Is the <https://www.opengl.org/registry/specs/ARB/texture_compression_bptc.txt ARB_texture_compression_bptc> extension supported?
    glGetARBTextureCompressionBPTC :: MonadIO m => m Bool
    glGetARBTextureCompressionBPTC :: forall (m :: * -> *). MonadIO m => m Bool
    glGetARBTextureCompressionBPTC = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_texture_compression_bptc")

    -- | Is the <https://www.opengl.org/registry/specs/ARB/texture_compression_bptc.txt ARB_texture_compression_bptc> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetARBTextureCompressionBPTC' in those cases instead.
    gl_ARB_texture_compression_bptc :: Bool
    gl_ARB_texture_compression_bptc :: Bool
    gl_ARB_texture_compression_bptc = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_texture_compression_bptc" Set String
    extensions
    {-# NOINLINE gl_ARB_texture_compression_bptc #-}

    -- | Is the <https://www.opengl.org/registry/specs/ARB/texture_compression_rgtc.txt ARB_texture_compression_rgtc> extension supported?
    glGetARBTextureCompressionRGTC :: MonadIO m => m Bool
    glGetARBTextureCompressionRGTC :: forall (m :: * -> *). MonadIO m => m Bool
    glGetARBTextureCompressionRGTC = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_texture_compression_rgtc")

    -- | Is the <https://www.opengl.org/registry/specs/ARB/texture_compression_rgtc.txt ARB_texture_compression_rgtc> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetARBTextureCompressionRGTC' in those cases instead.
    gl_ARB_texture_compression_rgtc :: Bool
    gl_ARB_texture_compression_rgtc :: Bool
    gl_ARB_texture_compression_rgtc = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_texture_compression_rgtc" Set String
    extensions
    {-# NOINLINE gl_ARB_texture_compression_rgtc #-}

    -- | Is the <https://www.opengl.org/registry/specs/ARB/texture_cube_map.txt ARB_texture_cube_map> extension supported?
    glGetARBTextureCubeMap :: MonadIO m => m Bool
    glGetARBTextureCubeMap :: forall (m :: * -> *). MonadIO m => m Bool
    glGetARBTextureCubeMap = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_texture_cube_map")

    -- | Is the <https://www.opengl.org/registry/specs/ARB/texture_cube_map.txt ARB_texture_cube_map> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetARBTextureCubeMap' in those cases instead.
    gl_ARB_texture_cube_map :: Bool
    gl_ARB_texture_cube_map :: Bool
    gl_ARB_texture_cube_map = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_texture_cube_map" Set String
    extensions
    {-# NOINLINE gl_ARB_texture_cube_map #-}

    -- | Is the <https://www.opengl.org/registry/specs/ARB/texture_cube_map_array.txt ARB_texture_cube_map_array> extension supported?
    glGetARBTextureCubeMapArray :: MonadIO m => m Bool
    glGetARBTextureCubeMapArray :: forall (m :: * -> *). MonadIO m => m Bool
    glGetARBTextureCubeMapArray = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_texture_cube_map_array")

    -- | Is the <https://www.opengl.org/registry/specs/ARB/texture_cube_map_array.txt ARB_texture_cube_map_array> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetARBTextureCubeMapArray' in those cases instead.
    gl_ARB_texture_cube_map_array :: Bool
    gl_ARB_texture_cube_map_array :: Bool
    gl_ARB_texture_cube_map_array = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_texture_cube_map_array" Set String
    extensions
    {-# NOINLINE gl_ARB_texture_cube_map_array #-}

    -- | Is the <https://www.opengl.org/registry/specs/ARB/texture_env_combine.txt ARB_texture_env_combine> extension supported?
    glGetARBTextureEnvCombine :: MonadIO m => m Bool
    glGetARBTextureEnvCombine :: forall (m :: * -> *). MonadIO m => m Bool
    glGetARBTextureEnvCombine = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_texture_env_combine")

    -- | Is the <https://www.opengl.org/registry/specs/ARB/texture_env_combine.txt ARB_texture_env_combine> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetARBTextureEnvCombine' in those cases instead.
    gl_ARB_texture_env_combine :: Bool
    gl_ARB_texture_env_combine :: Bool
    gl_ARB_texture_env_combine = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_texture_env_combine" Set String
    extensions
    {-# NOINLINE gl_ARB_texture_env_combine #-}

    -- | Is the <https://www.opengl.org/registry/specs/ARB/texture_env_dot3.txt ARB_texture_env_dot3> extension supported?
    glGetARBTextureEnvDot3 :: MonadIO m => m Bool
    glGetARBTextureEnvDot3 :: forall (m :: * -> *). MonadIO m => m Bool
    glGetARBTextureEnvDot3 = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_texture_env_dot3")

    -- | Is the <https://www.opengl.org/registry/specs/ARB/texture_env_dot3.txt ARB_texture_env_dot3> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetARBTextureEnvDot3' in those cases instead.
    gl_ARB_texture_env_dot3 :: Bool
    gl_ARB_texture_env_dot3 :: Bool
    gl_ARB_texture_env_dot3 = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_texture_env_dot3" Set String
    extensions
    {-# NOINLINE gl_ARB_texture_env_dot3 #-}

    -- | Is the <https://www.opengl.org/registry/specs/ARB/texture_filter_anisotropic.txt ARB_texture_filter_anisotropic> extension supported?
    glGetARBTextureFilterAnisotropic :: MonadIO m => m Bool
    glGetARBTextureFilterAnisotropic :: forall (m :: * -> *). MonadIO m => m Bool
    glGetARBTextureFilterAnisotropic = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_texture_filter_anisotropic")

    -- | Is the <https://www.opengl.org/registry/specs/ARB/texture_filter_anisotropic.txt ARB_texture_filter_anisotropic> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetARBTextureFilterAnisotropic' in those cases instead.
    gl_ARB_texture_filter_anisotropic :: Bool
    gl_ARB_texture_filter_anisotropic :: Bool
    gl_ARB_texture_filter_anisotropic = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_texture_filter_anisotropic" Set String
    extensions
    {-# NOINLINE gl_ARB_texture_filter_anisotropic #-}

    -- | Is the <https://www.opengl.org/registry/specs/ARB/texture_filter_minmax.txt ARB_texture_filter_minmax> extension supported?
    glGetARBTextureFilterMinmax :: MonadIO m => m Bool
    glGetARBTextureFilterMinmax :: forall (m :: * -> *). MonadIO m => m Bool
    glGetARBTextureFilterMinmax = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_texture_filter_minmax")

    -- | Is the <https://www.opengl.org/registry/specs/ARB/texture_filter_minmax.txt ARB_texture_filter_minmax> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetARBTextureFilterMinmax' in those cases instead.
    gl_ARB_texture_filter_minmax :: Bool
    gl_ARB_texture_filter_minmax :: Bool
    gl_ARB_texture_filter_minmax = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_texture_filter_minmax" Set String
    extensions
    {-# NOINLINE gl_ARB_texture_filter_minmax #-}

    -- | Is the <https://www.opengl.org/registry/specs/ARB/texture_float.txt ARB_texture_float> extension supported?
    glGetARBTextureFloat :: MonadIO m => m Bool
    glGetARBTextureFloat :: forall (m :: * -> *). MonadIO m => m Bool
    glGetARBTextureFloat = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_texture_float")

    -- | Is the <https://www.opengl.org/registry/specs/ARB/texture_float.txt ARB_texture_float> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetARBTextureFloat' in those cases instead.
    gl_ARB_texture_float :: Bool
    gl_ARB_texture_float :: Bool
    gl_ARB_texture_float = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_texture_float" Set String
    extensions
    {-# NOINLINE gl_ARB_texture_float #-}

    -- | Is the <https://www.opengl.org/registry/specs/ARB/texture_gather.txt ARB_texture_gather> extension supported?
    glGetARBTextureGather :: MonadIO m => m Bool
    glGetARBTextureGather :: forall (m :: * -> *). MonadIO m => m Bool
    glGetARBTextureGather = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_texture_gather")

    -- | Is the <https://www.opengl.org/registry/specs/ARB/texture_gather.txt ARB_texture_gather> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetARBTextureGather' in those cases instead.
    gl_ARB_texture_gather :: Bool
    gl_ARB_texture_gather :: Bool
    gl_ARB_texture_gather = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_texture_gather" Set String
    extensions
    {-# NOINLINE gl_ARB_texture_gather #-}

    -- | Is the <https://www.opengl.org/registry/specs/ARB/texture_mirror_clamp_to_edge.txt ARB_texture_mirror_clamp_to_edge> extension supported?
    glGetARBTextureMirrorClampToEdge :: MonadIO m => m Bool
    glGetARBTextureMirrorClampToEdge :: forall (m :: * -> *). MonadIO m => m Bool
    glGetARBTextureMirrorClampToEdge = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_texture_mirror_clamp_to_edge")

    -- | Is the <https://www.opengl.org/registry/specs/ARB/texture_mirror_clamp_to_edge.txt ARB_texture_mirror_clamp_to_edge> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetARBTextureMirrorClampToEdge' in those cases instead.
    gl_ARB_texture_mirror_clamp_to_edge :: Bool
    gl_ARB_texture_mirror_clamp_to_edge :: Bool
    gl_ARB_texture_mirror_clamp_to_edge = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_texture_mirror_clamp_to_edge" Set String
    extensions
    {-# NOINLINE gl_ARB_texture_mirror_clamp_to_edge #-}

    -- | Is the <https://www.opengl.org/registry/specs/ARB/texture_mirrored_repeat.txt ARB_texture_mirrored_repeat> extension supported?
    glGetARBTextureMirroredRepeat :: MonadIO m => m Bool
    glGetARBTextureMirroredRepeat :: forall (m :: * -> *). MonadIO m => m Bool
    glGetARBTextureMirroredRepeat = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_texture_mirrored_repeat")

    -- | Is the <https://www.opengl.org/registry/specs/ARB/texture_mirrored_repeat.txt ARB_texture_mirrored_repeat> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetARBTextureMirroredRepeat' in those cases instead.
    gl_ARB_texture_mirrored_repeat :: Bool
    gl_ARB_texture_mirrored_repeat :: Bool
    gl_ARB_texture_mirrored_repeat = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_texture_mirrored_repeat" Set String
    extensions
    {-# NOINLINE gl_ARB_texture_mirrored_repeat #-}

    -- | Is the <https://www.opengl.org/registry/specs/ARB/texture_multisample.txt ARB_texture_multisample> extension supported?
    glGetARBTextureMultisample :: MonadIO m => m Bool
    glGetARBTextureMultisample :: forall (m :: * -> *). MonadIO m => m Bool
    glGetARBTextureMultisample = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_texture_multisample")

    -- | Is the <https://www.opengl.org/registry/specs/ARB/texture_multisample.txt ARB_texture_multisample> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetARBTextureMultisample' in those cases instead.
    gl_ARB_texture_multisample :: Bool
    gl_ARB_texture_multisample :: Bool
    gl_ARB_texture_multisample = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_texture_multisample" Set String
    extensions
    {-# NOINLINE gl_ARB_texture_multisample #-}

    -- | Is the <https://www.opengl.org/registry/specs/ARB/texture_rectangle.txt ARB_texture_rectangle> extension supported?
    glGetARBTextureRectangle :: MonadIO m => m Bool
    glGetARBTextureRectangle :: forall (m :: * -> *). MonadIO m => m Bool
    glGetARBTextureRectangle = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_texture_rectangle")

    -- | Is the <https://www.opengl.org/registry/specs/ARB/texture_rectangle.txt ARB_texture_rectangle> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetARBTextureRectangle' in those cases instead.
    gl_ARB_texture_rectangle :: Bool
    gl_ARB_texture_rectangle :: Bool
    gl_ARB_texture_rectangle = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_texture_rectangle" Set String
    extensions
    {-# NOINLINE gl_ARB_texture_rectangle #-}

    -- | Is the <https://www.opengl.org/registry/specs/ARB/texture_rg.txt ARB_texture_rg> extension supported?
    glGetARBTextureRG :: MonadIO m => m Bool
    glGetARBTextureRG :: forall (m :: * -> *). MonadIO m => m Bool
    glGetARBTextureRG = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_texture_rg")

    -- | Is the <https://www.opengl.org/registry/specs/ARB/texture_rg.txt ARB_texture_rg> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetARBTextureRG' in those cases instead.
    gl_ARB_texture_rg :: Bool
    gl_ARB_texture_rg :: Bool
    gl_ARB_texture_rg = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_texture_rg" Set String
    extensions
    {-# NOINLINE gl_ARB_texture_rg #-}

    -- | Is the <https://www.opengl.org/registry/specs/ARB/texture_rgb10_a2ui.txt ARB_texture_rgb10_a2ui> extension supported?
    glGetARBTextureRGB10A2UI :: MonadIO m => m Bool
    glGetARBTextureRGB10A2UI :: forall (m :: * -> *). MonadIO m => m Bool
    glGetARBTextureRGB10A2UI = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_texture_rgb10_a2ui")

    -- | Is the <https://www.opengl.org/registry/specs/ARB/texture_rgb10_a2ui.txt ARB_texture_rgb10_a2ui> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetARBTextureRGB10A2UI' in those cases instead.
    gl_ARB_texture_rgb10_a2ui :: Bool
    gl_ARB_texture_rgb10_a2ui :: Bool
    gl_ARB_texture_rgb10_a2ui = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_texture_rgb10_a2ui" Set String
    extensions
    {-# NOINLINE gl_ARB_texture_rgb10_a2ui #-}

    -- | Is the <https://www.opengl.org/registry/specs/ARB/texture_stencil8.txt ARB_texture_stencil8> extension supported?
    glGetARBTextureStencil8 :: MonadIO m => m Bool
    glGetARBTextureStencil8 :: forall (m :: * -> *). MonadIO m => m Bool
    glGetARBTextureStencil8 = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_texture_stencil8")

    -- | Is the <https://www.opengl.org/registry/specs/ARB/texture_stencil8.txt ARB_texture_stencil8> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetARBTextureStencil8' in those cases instead.
    gl_ARB_texture_stencil8 :: Bool
    gl_ARB_texture_stencil8 :: Bool
    gl_ARB_texture_stencil8 = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_texture_stencil8" Set String
    extensions
    {-# NOINLINE gl_ARB_texture_stencil8 #-}

    -- | Is the <https://www.opengl.org/registry/specs/ARB/texture_storage.txt ARB_texture_storage> extension supported?
    glGetARBTextureStorage :: MonadIO m => m Bool
    glGetARBTextureStorage :: forall (m :: * -> *). MonadIO m => m Bool
    glGetARBTextureStorage = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_texture_storage")

    -- | Is the <https://www.opengl.org/registry/specs/ARB/texture_storage.txt ARB_texture_storage> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetARBTextureStorage' in those cases instead.
    gl_ARB_texture_storage :: Bool
    gl_ARB_texture_storage :: Bool
    gl_ARB_texture_storage = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_texture_storage" Set String
    extensions
    {-# NOINLINE gl_ARB_texture_storage #-}

    -- | Is the <https://www.opengl.org/registry/specs/ARB/texture_storage_multisample.txt ARB_texture_storage_multisample> extension supported?
    glGetARBTextureStorageMultisample :: MonadIO m => m Bool
    glGetARBTextureStorageMultisample :: forall (m :: * -> *). MonadIO m => m Bool
    glGetARBTextureStorageMultisample = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_texture_storage_multisample")

    -- | Is the <https://www.opengl.org/registry/specs/ARB/texture_storage_multisample.txt ARB_texture_storage_multisample> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetARBTextureStorageMultisample' in those cases instead.
    gl_ARB_texture_storage_multisample :: Bool
    gl_ARB_texture_storage_multisample :: Bool
    gl_ARB_texture_storage_multisample = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_texture_storage_multisample" Set String
    extensions
    {-# NOINLINE gl_ARB_texture_storage_multisample #-}

    -- | Is the <https://www.opengl.org/registry/specs/ARB/texture_swizzle.txt ARB_texture_swizzle> extension supported?
    glGetARBTextureSwizzle :: MonadIO m => m Bool
    glGetARBTextureSwizzle :: forall (m :: * -> *). MonadIO m => m Bool
    glGetARBTextureSwizzle = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_texture_swizzle")

    -- | Is the <https://www.opengl.org/registry/specs/ARB/texture_swizzle.txt ARB_texture_swizzle> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetARBTextureSwizzle' in those cases instead.
    gl_ARB_texture_swizzle :: Bool
    gl_ARB_texture_swizzle :: Bool
    gl_ARB_texture_swizzle = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_texture_swizzle" Set String
    extensions
    {-# NOINLINE gl_ARB_texture_swizzle #-}

    -- | Is the <https://www.opengl.org/registry/specs/ARB/texture_view.txt ARB_texture_view> extension supported?
    glGetARBTextureView :: MonadIO m => m Bool
    glGetARBTextureView :: forall (m :: * -> *). MonadIO m => m Bool
    glGetARBTextureView = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_texture_view")

    -- | Is the <https://www.opengl.org/registry/specs/ARB/texture_view.txt ARB_texture_view> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetARBTextureView' in those cases instead.
    gl_ARB_texture_view :: Bool
    gl_ARB_texture_view :: Bool
    gl_ARB_texture_view = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_texture_view" Set String
    extensions
    {-# NOINLINE gl_ARB_texture_view #-}

    -- | Is the <https://www.opengl.org/registry/specs/ARB/timer_query.txt ARB_timer_query> extension supported?
    glGetARBTimerQuery :: MonadIO m => m Bool
    glGetARBTimerQuery :: forall (m :: * -> *). MonadIO m => m Bool
    glGetARBTimerQuery = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_timer_query")

    -- | Is the <https://www.opengl.org/registry/specs/ARB/timer_query.txt ARB_timer_query> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetARBTimerQuery' in those cases instead.
    gl_ARB_timer_query :: Bool
    gl_ARB_timer_query :: Bool
    gl_ARB_timer_query = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_timer_query" Set String
    extensions
    {-# NOINLINE gl_ARB_timer_query #-}

    -- | Is the <https://www.opengl.org/registry/specs/ARB/transform_feedback2.txt ARB_transform_feedback2> extension supported?
    glGetARBTransformFeedback2 :: MonadIO m => m Bool
    glGetARBTransformFeedback2 :: forall (m :: * -> *). MonadIO m => m Bool
    glGetARBTransformFeedback2 = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_transform_feedback2")

    -- | Is the <https://www.opengl.org/registry/specs/ARB/transform_feedback2.txt ARB_transform_feedback2> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetARBTransformFeedback2' in those cases instead.
    gl_ARB_transform_feedback2 :: Bool
    gl_ARB_transform_feedback2 :: Bool
    gl_ARB_transform_feedback2 = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_transform_feedback2" Set String
    extensions
    {-# NOINLINE gl_ARB_transform_feedback2 #-}

    -- | Is the <https://www.opengl.org/registry/specs/ARB/transform_feedback3.txt ARB_transform_feedback3> extension supported?
    glGetARBTransformFeedback3 :: MonadIO m => m Bool
    glGetARBTransformFeedback3 :: forall (m :: * -> *). MonadIO m => m Bool
    glGetARBTransformFeedback3 = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_transform_feedback3")

    -- | Is the <https://www.opengl.org/registry/specs/ARB/transform_feedback3.txt ARB_transform_feedback3> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetARBTransformFeedback3' in those cases instead.
    gl_ARB_transform_feedback3 :: Bool
    gl_ARB_transform_feedback3 :: Bool
    gl_ARB_transform_feedback3 = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_transform_feedback3" Set String
    extensions
    {-# NOINLINE gl_ARB_transform_feedback3 #-}

    -- | Is the <https://www.opengl.org/registry/specs/ARB/transform_feedback_instanced.txt ARB_transform_feedback_instanced> extension supported?
    glGetARBTransformFeedbackInstanced :: MonadIO m => m Bool
    glGetARBTransformFeedbackInstanced :: forall (m :: * -> *). MonadIO m => m Bool
    glGetARBTransformFeedbackInstanced = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_transform_feedback_instanced")

    -- | Is the <https://www.opengl.org/registry/specs/ARB/transform_feedback_instanced.txt ARB_transform_feedback_instanced> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetARBTransformFeedbackInstanced' in those cases instead.
    gl_ARB_transform_feedback_instanced :: Bool
    gl_ARB_transform_feedback_instanced :: Bool
    gl_ARB_transform_feedback_instanced = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_transform_feedback_instanced" Set String
    extensions
    {-# NOINLINE gl_ARB_transform_feedback_instanced #-}

    -- | Is the <https://www.opengl.org/registry/specs/ARB/transform_feedback_overflow_query.txt ARB_transform_feedback_overflow_query> extension supported?
    glGetARBTransformFeedbackOverflowQuery :: MonadIO m => m Bool
    glGetARBTransformFeedbackOverflowQuery :: forall (m :: * -> *). MonadIO m => m Bool
    glGetARBTransformFeedbackOverflowQuery = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_transform_feedback_overflow_query")

    -- | Is the <https://www.opengl.org/registry/specs/ARB/transform_feedback_overflow_query.txt ARB_transform_feedback_overflow_query> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetARBTransformFeedbackOverflowQuery' in those cases instead.
    gl_ARB_transform_feedback_overflow_query :: Bool
    gl_ARB_transform_feedback_overflow_query :: Bool
    gl_ARB_transform_feedback_overflow_query = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_transform_feedback_overflow_query" Set String
    extensions
    {-# NOINLINE gl_ARB_transform_feedback_overflow_query #-}

    -- | Is the <https://www.opengl.org/registry/specs/ARB/transpose_matrix.txt ARB_transpose_matrix> extension supported?
    glGetARBTransposeMatrix :: MonadIO m => m Bool
    glGetARBTransposeMatrix :: forall (m :: * -> *). MonadIO m => m Bool
    glGetARBTransposeMatrix = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_transpose_matrix")

    -- | Is the <https://www.opengl.org/registry/specs/ARB/transpose_matrix.txt ARB_transpose_matrix> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetARBTransposeMatrix' in those cases instead.
    gl_ARB_transpose_matrix :: Bool
    gl_ARB_transpose_matrix :: Bool
    gl_ARB_transpose_matrix = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_transpose_matrix" Set String
    extensions
    {-# NOINLINE gl_ARB_transpose_matrix #-}

    -- | Is the <https://www.opengl.org/registry/specs/ARB/uniform_buffer_object.txt ARB_uniform_buffer_object> extension supported?
    glGetARBUniformBufferObject :: MonadIO m => m Bool
    glGetARBUniformBufferObject :: forall (m :: * -> *). MonadIO m => m Bool
    glGetARBUniformBufferObject = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_uniform_buffer_object")

    -- | Is the <https://www.opengl.org/registry/specs/ARB/uniform_buffer_object.txt ARB_uniform_buffer_object> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetARBUniformBufferObject' in those cases instead.
    gl_ARB_uniform_buffer_object :: Bool
    gl_ARB_uniform_buffer_object :: Bool
    gl_ARB_uniform_buffer_object = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_uniform_buffer_object" Set String
    extensions
    {-# NOINLINE gl_ARB_uniform_buffer_object #-}

    -- | Is the <https://www.opengl.org/registry/specs/ARB/vertex_array_bgra.txt ARB_vertex_array_bgra> extension supported?
    glGetARBVertexArrayBGRA :: MonadIO m => m Bool
    glGetARBVertexArrayBGRA :: forall (m :: * -> *). MonadIO m => m Bool
    glGetARBVertexArrayBGRA = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_vertex_array_bgra")

    -- | Is the <https://www.opengl.org/registry/specs/ARB/vertex_array_bgra.txt ARB_vertex_array_bgra> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetARBVertexArrayBGRA' in those cases instead.
    gl_ARB_vertex_array_bgra :: Bool
    gl_ARB_vertex_array_bgra :: Bool
    gl_ARB_vertex_array_bgra = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_vertex_array_bgra" Set String
    extensions
    {-# NOINLINE gl_ARB_vertex_array_bgra #-}

    -- | Is the <https://www.opengl.org/registry/specs/ARB/vertex_array_object.txt ARB_vertex_array_object> extension supported?
    glGetARBVertexArrayObject :: MonadIO m => m Bool
    glGetARBVertexArrayObject :: forall (m :: * -> *). MonadIO m => m Bool
    glGetARBVertexArrayObject = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_vertex_array_object")

    -- | Is the <https://www.opengl.org/registry/specs/ARB/vertex_array_object.txt ARB_vertex_array_object> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetARBVertexArrayObject' in those cases instead.
    gl_ARB_vertex_array_object :: Bool
    gl_ARB_vertex_array_object :: Bool
    gl_ARB_vertex_array_object = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_vertex_array_object" Set String
    extensions
    {-# NOINLINE gl_ARB_vertex_array_object #-}

    -- | Is the <https://www.opengl.org/registry/specs/ARB/vertex_attrib_64bit.txt ARB_vertex_attrib_64bit> extension supported?
    glGetARBVertexAttrib64Bit :: MonadIO m => m Bool
    glGetARBVertexAttrib64Bit :: forall (m :: * -> *). MonadIO m => m Bool
    glGetARBVertexAttrib64Bit = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_vertex_attrib_64bit")

    -- | Is the <https://www.opengl.org/registry/specs/ARB/vertex_attrib_64bit.txt ARB_vertex_attrib_64bit> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetARBVertexAttrib64Bit' in those cases instead.
    gl_ARB_vertex_attrib_64bit :: Bool
    gl_ARB_vertex_attrib_64bit :: Bool
    gl_ARB_vertex_attrib_64bit = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_vertex_attrib_64bit" Set String
    extensions
    {-# NOINLINE gl_ARB_vertex_attrib_64bit #-}

    -- | Is the <https://www.opengl.org/registry/specs/ARB/vertex_attrib_binding.txt ARB_vertex_attrib_binding> extension supported?
    glGetARBVertexAttribBinding :: MonadIO m => m Bool
    glGetARBVertexAttribBinding :: forall (m :: * -> *). MonadIO m => m Bool
    glGetARBVertexAttribBinding = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_vertex_attrib_binding")

    -- | Is the <https://www.opengl.org/registry/specs/ARB/vertex_attrib_binding.txt ARB_vertex_attrib_binding> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetARBVertexAttribBinding' in those cases instead.
    gl_ARB_vertex_attrib_binding :: Bool
    gl_ARB_vertex_attrib_binding :: Bool
    gl_ARB_vertex_attrib_binding = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_vertex_attrib_binding" Set String
    extensions
    {-# NOINLINE gl_ARB_vertex_attrib_binding #-}

    -- | Is the <https://www.opengl.org/registry/specs/ARB/vertex_blend.txt ARB_vertex_blend> extension supported?
    glGetARBVertexBlend :: MonadIO m => m Bool
    glGetARBVertexBlend :: forall (m :: * -> *). MonadIO m => m Bool
    glGetARBVertexBlend = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_vertex_blend")

    -- | Is the <https://www.opengl.org/registry/specs/ARB/vertex_blend.txt ARB_vertex_blend> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetARBVertexBlend' in those cases instead.
    gl_ARB_vertex_blend :: Bool
    gl_ARB_vertex_blend :: Bool
    gl_ARB_vertex_blend = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_vertex_blend" Set String
    extensions
    {-# NOINLINE gl_ARB_vertex_blend #-}

    -- | Is the <https://www.opengl.org/registry/specs/ARB/vertex_buffer_object.txt ARB_vertex_buffer_object> extension supported?
    glGetARBVertexBufferObject :: MonadIO m => m Bool
    glGetARBVertexBufferObject :: forall (m :: * -> *). MonadIO m => m Bool
    glGetARBVertexBufferObject = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_vertex_buffer_object")

    -- | Is the <https://www.opengl.org/registry/specs/ARB/vertex_buffer_object.txt ARB_vertex_buffer_object> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetARBVertexBufferObject' in those cases instead.
    gl_ARB_vertex_buffer_object :: Bool
    gl_ARB_vertex_buffer_object :: Bool
    gl_ARB_vertex_buffer_object = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_vertex_buffer_object" Set String
    extensions
    {-# NOINLINE gl_ARB_vertex_buffer_object #-}

    -- | Is the <https://www.opengl.org/registry/specs/ARB/vertex_program.txt ARB_vertex_program> extension supported?
    glGetARBVertexProgram :: MonadIO m => m Bool
    glGetARBVertexProgram :: forall (m :: * -> *). MonadIO m => m Bool
    glGetARBVertexProgram = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_vertex_program")

    -- | Is the <https://www.opengl.org/registry/specs/ARB/vertex_program.txt ARB_vertex_program> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetARBVertexProgram' in those cases instead.
    gl_ARB_vertex_program :: Bool
    gl_ARB_vertex_program :: Bool
    gl_ARB_vertex_program = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_vertex_program" Set String
    extensions
    {-# NOINLINE gl_ARB_vertex_program #-}

    -- | Is the <https://www.opengl.org/registry/specs/ARB/vertex_shader.txt ARB_vertex_shader> extension supported?
    glGetARBVertexShader :: MonadIO m => m Bool
    glGetARBVertexShader :: forall (m :: * -> *). MonadIO m => m Bool
    glGetARBVertexShader = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_vertex_shader")

    -- | Is the <https://www.opengl.org/registry/specs/ARB/vertex_shader.txt ARB_vertex_shader> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetARBVertexShader' in those cases instead.
    gl_ARB_vertex_shader :: Bool
    gl_ARB_vertex_shader :: Bool
    gl_ARB_vertex_shader = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_vertex_shader" Set String
    extensions
    {-# NOINLINE gl_ARB_vertex_shader #-}

    -- | Is the <https://www.opengl.org/registry/specs/ARB/vertex_type_10f_11f_11f_rev.txt ARB_vertex_type_10f_11f_11f_rev> extension supported?
    glGetARBVertexType10f11f11fRev :: MonadIO m => m Bool
    glGetARBVertexType10f11f11fRev :: forall (m :: * -> *). MonadIO m => m Bool
    glGetARBVertexType10f11f11fRev = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_vertex_type_10f_11f_11f_rev")

    -- | Is the <https://www.opengl.org/registry/specs/ARB/vertex_type_10f_11f_11f_rev.txt ARB_vertex_type_10f_11f_11f_rev> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetARBVertexType10f11f11fRev' in those cases instead.
    gl_ARB_vertex_type_10f_11f_11f_rev :: Bool
    gl_ARB_vertex_type_10f_11f_11f_rev :: Bool
    gl_ARB_vertex_type_10f_11f_11f_rev = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_vertex_type_10f_11f_11f_rev" Set String
    extensions
    {-# NOINLINE gl_ARB_vertex_type_10f_11f_11f_rev #-}

    -- | Is the <https://www.opengl.org/registry/specs/ARB/vertex_type_2_10_10_10_rev.txt ARB_vertex_type_2_10_10_10_rev> extension supported?
    glGetARBVertexType2101010Rev :: MonadIO m => m Bool
    glGetARBVertexType2101010Rev :: forall (m :: * -> *). MonadIO m => m Bool
    glGetARBVertexType2101010Rev = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_vertex_type_2_10_10_10_rev")

    -- | Is the <https://www.opengl.org/registry/specs/ARB/vertex_type_2_10_10_10_rev.txt ARB_vertex_type_2_10_10_10_rev> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetARBVertexType2101010Rev' in those cases instead.
    gl_ARB_vertex_type_2_10_10_10_rev :: Bool
    gl_ARB_vertex_type_2_10_10_10_rev :: Bool
    gl_ARB_vertex_type_2_10_10_10_rev = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_vertex_type_2_10_10_10_rev" Set String
    extensions
    {-# NOINLINE gl_ARB_vertex_type_2_10_10_10_rev #-}

    -- | Is the <https://www.opengl.org/registry/specs/ARB/viewport_array.txt ARB_viewport_array> extension supported?
    glGetARBViewportArray :: MonadIO m => m Bool
    glGetARBViewportArray :: forall (m :: * -> *). MonadIO m => m Bool
    glGetARBViewportArray = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_viewport_array")

    -- | Is the <https://www.opengl.org/registry/specs/ARB/viewport_array.txt ARB_viewport_array> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetARBViewportArray' in those cases instead.
    gl_ARB_viewport_array :: Bool
    gl_ARB_viewport_array :: Bool
    gl_ARB_viewport_array = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_viewport_array" Set String
    extensions
    {-# NOINLINE gl_ARB_viewport_array #-}

    -- | Is the <https://www.opengl.org/registry/specs/ARB/window_pos.txt ARB_window_pos> extension supported?
    glGetARBWindowPos :: MonadIO m => m Bool
    glGetARBWindowPos :: forall (m :: * -> *). MonadIO m => m Bool
    glGetARBWindowPos = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_window_pos")

    -- | Is the <https://www.opengl.org/registry/specs/ARB/window_pos.txt ARB_window_pos> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetARBWindowPos' in those cases instead.
    gl_ARB_window_pos :: Bool
    gl_ARB_window_pos :: Bool
    gl_ARB_window_pos = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ARB_window_pos" Set String
    extensions
    {-# NOINLINE gl_ARB_window_pos #-}

    -- | Is the <https://www.opengl.org/registry/specs/ATI/draw_buffers.txt ATI_draw_buffers> extension supported?
    glGetATIDrawBuffers :: MonadIO m => m Bool
    glGetATIDrawBuffers :: forall (m :: * -> *). MonadIO m => m Bool
    glGetATIDrawBuffers = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ATI_draw_buffers")

    -- | Is the <https://www.opengl.org/registry/specs/ATI/draw_buffers.txt ATI_draw_buffers> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetATIDrawBuffers' in those cases instead.
    gl_ATI_draw_buffers :: Bool
    gl_ATI_draw_buffers :: Bool
    gl_ATI_draw_buffers = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ATI_draw_buffers" Set String
    extensions
    {-# NOINLINE gl_ATI_draw_buffers #-}

    -- | Is the <https://www.opengl.org/registry/specs/ATI/element_array.txt ATI_element_array> extension supported?
    glGetATIElementArray :: MonadIO m => m Bool
    glGetATIElementArray :: forall (m :: * -> *). MonadIO m => m Bool
    glGetATIElementArray = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ATI_element_array")

    -- | Is the <https://www.opengl.org/registry/specs/ATI/element_array.txt ATI_element_array> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetATIElementArray' in those cases instead.
    gl_ATI_element_array :: Bool
    gl_ATI_element_array :: Bool
    gl_ATI_element_array = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ATI_element_array" Set String
    extensions
    {-# NOINLINE gl_ATI_element_array #-}

    -- | Is the <https://www.opengl.org/registry/specs/ATI/envmap_bumpmap.txt ATI_envmap_bumpmap> extension supported?
    glGetATIEnvmapBumpmap :: MonadIO m => m Bool
    glGetATIEnvmapBumpmap :: forall (m :: * -> *). MonadIO m => m Bool
    glGetATIEnvmapBumpmap = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ATI_envmap_bumpmap")

    -- | Is the <https://www.opengl.org/registry/specs/ATI/envmap_bumpmap.txt ATI_envmap_bumpmap> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetATIEnvmapBumpmap' in those cases instead.
    gl_ATI_envmap_bumpmap :: Bool
    gl_ATI_envmap_bumpmap :: Bool
    gl_ATI_envmap_bumpmap = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ATI_envmap_bumpmap" Set String
    extensions
    {-# NOINLINE gl_ATI_envmap_bumpmap #-}

    -- | Is the <https://www.opengl.org/registry/specs/ATI/fragment_shader.txt ATI_fragment_shader> extension supported?
    glGetATIFragmentShader :: MonadIO m => m Bool
    glGetATIFragmentShader :: forall (m :: * -> *). MonadIO m => m Bool
    glGetATIFragmentShader = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ATI_fragment_shader")

    -- | Is the <https://www.opengl.org/registry/specs/ATI/fragment_shader.txt ATI_fragment_shader> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetATIFragmentShader' in those cases instead.
    gl_ATI_fragment_shader :: Bool
    gl_ATI_fragment_shader :: Bool
    gl_ATI_fragment_shader = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ATI_fragment_shader" Set String
    extensions
    {-# NOINLINE gl_ATI_fragment_shader #-}

    -- | Is the <https://www.opengl.org/registry/specs/ATI/map_object_buffer.txt ATI_map_object_buffer> extension supported?
    glGetATIMapObjectBuffer :: MonadIO m => m Bool
    glGetATIMapObjectBuffer :: forall (m :: * -> *). MonadIO m => m Bool
    glGetATIMapObjectBuffer = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ATI_map_object_buffer")

    -- | Is the <https://www.opengl.org/registry/specs/ATI/map_object_buffer.txt ATI_map_object_buffer> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetATIMapObjectBuffer' in those cases instead.
    gl_ATI_map_object_buffer :: Bool
    gl_ATI_map_object_buffer :: Bool
    gl_ATI_map_object_buffer = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ATI_map_object_buffer" Set String
    extensions
    {-# NOINLINE gl_ATI_map_object_buffer #-}

    -- | Is the <https://www.opengl.org/registry/specs/ATI/meminfo.txt ATI_meminfo> extension supported?
    glGetATIMeminfo :: MonadIO m => m Bool
    glGetATIMeminfo :: forall (m :: * -> *). MonadIO m => m Bool
    glGetATIMeminfo = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ATI_meminfo")

    -- | Is the <https://www.opengl.org/registry/specs/ATI/meminfo.txt ATI_meminfo> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetATIMeminfo' in those cases instead.
    gl_ATI_meminfo :: Bool
    gl_ATI_meminfo :: Bool
    gl_ATI_meminfo = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ATI_meminfo" Set String
    extensions
    {-# NOINLINE gl_ATI_meminfo #-}

    -- | Is the <https://www.opengl.org/registry/specs/ATI/pixel_format_float.txt ATI_pixel_format_float> extension supported?
    glGetATIPixelFormatFloat :: MonadIO m => m Bool
    glGetATIPixelFormatFloat :: forall (m :: * -> *). MonadIO m => m Bool
    glGetATIPixelFormatFloat = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ATI_pixel_format_float")

    -- | Is the <https://www.opengl.org/registry/specs/ATI/pixel_format_float.txt ATI_pixel_format_float> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetATIPixelFormatFloat' in those cases instead.
    gl_ATI_pixel_format_float :: Bool
    gl_ATI_pixel_format_float :: Bool
    gl_ATI_pixel_format_float = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ATI_pixel_format_float" Set String
    extensions
    {-# NOINLINE gl_ATI_pixel_format_float #-}

    -- | Is the <https://www.opengl.org/registry/specs/ATI/pn_triangles.txt ATI_pn_triangles> extension supported?
    glGetATIPNTriangles :: MonadIO m => m Bool
    glGetATIPNTriangles :: forall (m :: * -> *). MonadIO m => m Bool
    glGetATIPNTriangles = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ATI_pn_triangles")

    -- | Is the <https://www.opengl.org/registry/specs/ATI/pn_triangles.txt ATI_pn_triangles> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetATIPNTriangles' in those cases instead.
    gl_ATI_pn_triangles :: Bool
    gl_ATI_pn_triangles :: Bool
    gl_ATI_pn_triangles = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ATI_pn_triangles" Set String
    extensions
    {-# NOINLINE gl_ATI_pn_triangles #-}

    -- | Is the <https://www.opengl.org/registry/specs/ATI/separate_stencil.txt ATI_separate_stencil> extension supported?
    glGetATISeparateStencil :: MonadIO m => m Bool
    glGetATISeparateStencil :: forall (m :: * -> *). MonadIO m => m Bool
    glGetATISeparateStencil = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ATI_separate_stencil")

    -- | Is the <https://www.opengl.org/registry/specs/ATI/separate_stencil.txt ATI_separate_stencil> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetATISeparateStencil' in those cases instead.
    gl_ATI_separate_stencil :: Bool
    gl_ATI_separate_stencil :: Bool
    gl_ATI_separate_stencil = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ATI_separate_stencil" Set String
    extensions
    {-# NOINLINE gl_ATI_separate_stencil #-}

    -- | Is the <https://www.opengl.org/registry/specs/ATI/text_fragment_shader.txt ATI_text_fragment_shader> extension supported?
    glGetATITextFragmentShader :: MonadIO m => m Bool
    glGetATITextFragmentShader :: forall (m :: * -> *). MonadIO m => m Bool
    glGetATITextFragmentShader = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ATI_text_fragment_shader")

    -- | Is the <https://www.opengl.org/registry/specs/ATI/text_fragment_shader.txt ATI_text_fragment_shader> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetATITextFragmentShader' in those cases instead.
    gl_ATI_text_fragment_shader :: Bool
    gl_ATI_text_fragment_shader :: Bool
    gl_ATI_text_fragment_shader = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ATI_text_fragment_shader" Set String
    extensions
    {-# NOINLINE gl_ATI_text_fragment_shader #-}

    -- | Is the <https://www.opengl.org/registry/specs/ATI/texture_env_combine3.txt ATI_texture_env_combine3> extension supported?
    glGetATITextureEnvCombine3 :: MonadIO m => m Bool
    glGetATITextureEnvCombine3 :: forall (m :: * -> *). MonadIO m => m Bool
    glGetATITextureEnvCombine3 = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ATI_texture_env_combine3")

    -- | Is the <https://www.opengl.org/registry/specs/ATI/texture_env_combine3.txt ATI_texture_env_combine3> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetATITextureEnvCombine3' in those cases instead.
    gl_ATI_texture_env_combine3 :: Bool
    gl_ATI_texture_env_combine3 :: Bool
    gl_ATI_texture_env_combine3 = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ATI_texture_env_combine3" Set String
    extensions
    {-# NOINLINE gl_ATI_texture_env_combine3 #-}

    -- | Is the <https://www.opengl.org/registry/specs/ATI/texture_float.txt ATI_texture_float> extension supported?
    glGetATITextureFloat :: MonadIO m => m Bool
    glGetATITextureFloat :: forall (m :: * -> *). MonadIO m => m Bool
    glGetATITextureFloat = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ATI_texture_float")

    -- | Is the <https://www.opengl.org/registry/specs/ATI/texture_float.txt ATI_texture_float> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetATITextureFloat' in those cases instead.
    gl_ATI_texture_float :: Bool
    gl_ATI_texture_float :: Bool
    gl_ATI_texture_float = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ATI_texture_float" Set String
    extensions
    {-# NOINLINE gl_ATI_texture_float #-}

    -- | Is the <https://www.opengl.org/registry/specs/ATI/texture_mirror_once.txt ATI_texture_mirror_once> extension supported?
    glGetATITextureMirrorOnce :: MonadIO m => m Bool
    glGetATITextureMirrorOnce :: forall (m :: * -> *). MonadIO m => m Bool
    glGetATITextureMirrorOnce = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ATI_texture_mirror_once")

    -- | Is the <https://www.opengl.org/registry/specs/ATI/texture_mirror_once.txt ATI_texture_mirror_once> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetATITextureMirrorOnce' in those cases instead.
    gl_ATI_texture_mirror_once :: Bool
    gl_ATI_texture_mirror_once :: Bool
    gl_ATI_texture_mirror_once = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ATI_texture_mirror_once" Set String
    extensions
    {-# NOINLINE gl_ATI_texture_mirror_once #-}

    -- | Is the <https://www.opengl.org/registry/specs/ATI/vertex_array_object.txt ATI_vertex_array_object> extension supported?
    glGetATIVertexArrayObject :: MonadIO m => m Bool
    glGetATIVertexArrayObject :: forall (m :: * -> *). MonadIO m => m Bool
    glGetATIVertexArrayObject = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ATI_vertex_array_object")

    -- | Is the <https://www.opengl.org/registry/specs/ATI/vertex_array_object.txt ATI_vertex_array_object> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetATIVertexArrayObject' in those cases instead.
    gl_ATI_vertex_array_object :: Bool
    gl_ATI_vertex_array_object :: Bool
    gl_ATI_vertex_array_object = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ATI_vertex_array_object" Set String
    extensions
    {-# NOINLINE gl_ATI_vertex_array_object #-}

    -- | Is the <https://www.opengl.org/registry/specs/ATI/vertex_attrib_array_object.txt ATI_vertex_attrib_array_object> extension supported?
    glGetATIVertexAttribArrayObject :: MonadIO m => m Bool
    glGetATIVertexAttribArrayObject :: forall (m :: * -> *). MonadIO m => m Bool
    glGetATIVertexAttribArrayObject = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ATI_vertex_attrib_array_object")

    -- | Is the <https://www.opengl.org/registry/specs/ATI/vertex_attrib_array_object.txt ATI_vertex_attrib_array_object> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetATIVertexAttribArrayObject' in those cases instead.
    gl_ATI_vertex_attrib_array_object :: Bool
    gl_ATI_vertex_attrib_array_object :: Bool
    gl_ATI_vertex_attrib_array_object = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ATI_vertex_attrib_array_object" Set String
    extensions
    {-# NOINLINE gl_ATI_vertex_attrib_array_object #-}

    -- | Is the <https://www.opengl.org/registry/specs/ATI/vertex_streams.txt ATI_vertex_streams> extension supported?
    glGetATIVertexStreams :: MonadIO m => m Bool
    glGetATIVertexStreams :: forall (m :: * -> *). MonadIO m => m Bool
    glGetATIVertexStreams = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ATI_vertex_streams")

    -- | Is the <https://www.opengl.org/registry/specs/ATI/vertex_streams.txt ATI_vertex_streams> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetATIVertexStreams' in those cases instead.
    gl_ATI_vertex_streams :: Bool
    gl_ATI_vertex_streams :: Bool
    gl_ATI_vertex_streams = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_ATI_vertex_streams" Set String
    extensions
    {-# NOINLINE gl_ATI_vertex_streams #-}

    -- | Is the <https://www.opengl.org/registry/specs/EXT/422_pixels.txt EXT_422_pixels> extension supported?
    glGetEXTFourTwoTwoPixels :: MonadIO m => m Bool
    glGetEXTFourTwoTwoPixels :: forall (m :: * -> *). MonadIO m => m Bool
    glGetEXTFourTwoTwoPixels = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_422_pixels")

    -- | Is the <https://www.opengl.org/registry/specs/EXT/422_pixels.txt EXT_422_pixels> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetEXTFourTwoTwoPixels' in those cases instead.
    gl_EXT_422_pixels :: Bool
    gl_EXT_422_pixels :: Bool
    gl_EXT_422_pixels = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_422_pixels" Set String
    extensions
    {-# NOINLINE gl_EXT_422_pixels #-}

    -- | Is the <https://www.opengl.org/registry/specs/EXT/EGL_image_storage.txt EXT_EGL_image_storage> extension supported?
    glGetEXTEglImageStorage :: MonadIO m => m Bool
    glGetEXTEglImageStorage :: forall (m :: * -> *). MonadIO m => m Bool
    glGetEXTEglImageStorage = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_EGL_image_storage")

    -- | Is the <https://www.opengl.org/registry/specs/EXT/EGL_image_storage.txt EXT_EGL_image_storage> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetEXTEglImageStorage' in those cases instead.
    gl_EXT_EGL_image_storage :: Bool
    gl_EXT_EGL_image_storage :: Bool
    gl_EXT_EGL_image_storage = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_EGL_image_storage" Set String
    extensions
    {-# NOINLINE gl_EXT_EGL_image_storage #-}

    -- | Is the <https://www.opengl.org/registry/specs/EXT/abgr.txt EXT_abgr> extension supported?
    glGetEXTABGR :: MonadIO m => m Bool
    glGetEXTABGR :: forall (m :: * -> *). MonadIO m => m Bool
    glGetEXTABGR = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_abgr")

    -- | Is the <https://www.opengl.org/registry/specs/EXT/abgr.txt EXT_abgr> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetEXTABGR' in those cases instead.
    gl_EXT_abgr :: Bool
    gl_EXT_abgr :: Bool
    gl_EXT_abgr = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_abgr" Set String
    extensions
    {-# NOINLINE gl_EXT_abgr #-}

    -- | Is the <https://www.opengl.org/registry/specs/EXT/bgra.txt EXT_bgra> extension supported?
    glGetEXTBGRA :: MonadIO m => m Bool
    glGetEXTBGRA :: forall (m :: * -> *). MonadIO m => m Bool
    glGetEXTBGRA = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_bgra")

    -- | Is the <https://www.opengl.org/registry/specs/EXT/bgra.txt EXT_bgra> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetEXTBGRA' in those cases instead.
    gl_EXT_bgra :: Bool
    gl_EXT_bgra :: Bool
    gl_EXT_bgra = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_bgra" Set String
    extensions
    {-# NOINLINE gl_EXT_bgra #-}

    -- | Is the <https://www.opengl.org/registry/specs/EXT/bindable_uniform.txt EXT_bindable_uniform> extension supported?
    glGetEXTBindableUniform :: MonadIO m => m Bool
    glGetEXTBindableUniform :: forall (m :: * -> *). MonadIO m => m Bool
    glGetEXTBindableUniform = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_bindable_uniform")

    -- | Is the <https://www.opengl.org/registry/specs/EXT/bindable_uniform.txt EXT_bindable_uniform> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetEXTBindableUniform' in those cases instead.
    gl_EXT_bindable_uniform :: Bool
    gl_EXT_bindable_uniform :: Bool
    gl_EXT_bindable_uniform = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_bindable_uniform" Set String
    extensions
    {-# NOINLINE gl_EXT_bindable_uniform #-}

    -- | Is the <https://www.opengl.org/registry/specs/EXT/blend_color.txt EXT_blend_color> extension supported?
    glGetEXTBlendColor :: MonadIO m => m Bool
    glGetEXTBlendColor :: forall (m :: * -> *). MonadIO m => m Bool
    glGetEXTBlendColor = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_blend_color")

    -- | Is the <https://www.opengl.org/registry/specs/EXT/blend_color.txt EXT_blend_color> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetEXTBlendColor' in those cases instead.
    gl_EXT_blend_color :: Bool
    gl_EXT_blend_color :: Bool
    gl_EXT_blend_color = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_blend_color" Set String
    extensions
    {-# NOINLINE gl_EXT_blend_color #-}

    -- | Is the <https://www.opengl.org/registry/specs/EXT/blend_equation_separate.txt EXT_blend_equation_separate> extension supported?
    glGetEXTBlendEquationSeparate :: MonadIO m => m Bool
    glGetEXTBlendEquationSeparate :: forall (m :: * -> *). MonadIO m => m Bool
    glGetEXTBlendEquationSeparate = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_blend_equation_separate")

    -- | Is the <https://www.opengl.org/registry/specs/EXT/blend_equation_separate.txt EXT_blend_equation_separate> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetEXTBlendEquationSeparate' in those cases instead.
    gl_EXT_blend_equation_separate :: Bool
    gl_EXT_blend_equation_separate :: Bool
    gl_EXT_blend_equation_separate = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_blend_equation_separate" Set String
    extensions
    {-# NOINLINE gl_EXT_blend_equation_separate #-}

    -- | Is the <https://www.opengl.org/registry/specs/EXT/blend_func_separate.txt EXT_blend_func_separate> extension supported?
    glGetEXTBlendFuncSeparate :: MonadIO m => m Bool
    glGetEXTBlendFuncSeparate :: forall (m :: * -> *). MonadIO m => m Bool
    glGetEXTBlendFuncSeparate = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_blend_func_separate")

    -- | Is the <https://www.opengl.org/registry/specs/EXT/blend_func_separate.txt EXT_blend_func_separate> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetEXTBlendFuncSeparate' in those cases instead.
    gl_EXT_blend_func_separate :: Bool
    gl_EXT_blend_func_separate :: Bool
    gl_EXT_blend_func_separate = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_blend_func_separate" Set String
    extensions
    {-# NOINLINE gl_EXT_blend_func_separate #-}

    -- | Is the <https://www.opengl.org/registry/specs/EXT/blend_minmax.txt EXT_blend_minmax> extension supported?
    glGetEXTBlendMinmax :: MonadIO m => m Bool
    glGetEXTBlendMinmax :: forall (m :: * -> *). MonadIO m => m Bool
    glGetEXTBlendMinmax = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_blend_minmax")

    -- | Is the <https://www.opengl.org/registry/specs/EXT/blend_minmax.txt EXT_blend_minmax> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetEXTBlendMinmax' in those cases instead.
    gl_EXT_blend_minmax :: Bool
    gl_EXT_blend_minmax :: Bool
    gl_EXT_blend_minmax = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_blend_minmax" Set String
    extensions
    {-# NOINLINE gl_EXT_blend_minmax #-}

    -- | Is the <https://www.opengl.org/registry/specs/EXT/blend_subtract.txt EXT_blend_subtract> extension supported?
    glGetEXTBlendSubtract :: MonadIO m => m Bool
    glGetEXTBlendSubtract :: forall (m :: * -> *). MonadIO m => m Bool
    glGetEXTBlendSubtract = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_blend_subtract")

    -- | Is the <https://www.opengl.org/registry/specs/EXT/blend_subtract.txt EXT_blend_subtract> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetEXTBlendSubtract' in those cases instead.
    gl_EXT_blend_subtract :: Bool
    gl_EXT_blend_subtract :: Bool
    gl_EXT_blend_subtract = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_blend_subtract" Set String
    extensions
    {-# NOINLINE gl_EXT_blend_subtract #-}

    -- | Is the <https://www.opengl.org/registry/specs/EXT/clip_volume_hint.txt EXT_clip_volume_hint> extension supported?
    glGetEXTClipVolumeHint :: MonadIO m => m Bool
    glGetEXTClipVolumeHint :: forall (m :: * -> *). MonadIO m => m Bool
    glGetEXTClipVolumeHint = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_clip_volume_hint")

    -- | Is the <https://www.opengl.org/registry/specs/EXT/clip_volume_hint.txt EXT_clip_volume_hint> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetEXTClipVolumeHint' in those cases instead.
    gl_EXT_clip_volume_hint :: Bool
    gl_EXT_clip_volume_hint :: Bool
    gl_EXT_clip_volume_hint = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_clip_volume_hint" Set String
    extensions
    {-# NOINLINE gl_EXT_clip_volume_hint #-}

    -- | Is the <https://www.opengl.org/registry/specs/EXT/cmyka.txt EXT_cmyka> extension supported?
    glGetEXTCMYKA :: MonadIO m => m Bool
    glGetEXTCMYKA :: forall (m :: * -> *). MonadIO m => m Bool
    glGetEXTCMYKA = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_cmyka")

    -- | Is the <https://www.opengl.org/registry/specs/EXT/cmyka.txt EXT_cmyka> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetEXTCMYKA' in those cases instead.
    gl_EXT_cmyka :: Bool
    gl_EXT_cmyka :: Bool
    gl_EXT_cmyka = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_cmyka" Set String
    extensions
    {-# NOINLINE gl_EXT_cmyka #-}

    -- | Is the <https://www.opengl.org/registry/specs/EXT/color_subtable.txt EXT_color_subtable> extension supported?
    glGetEXTColorSubtable :: MonadIO m => m Bool
    glGetEXTColorSubtable :: forall (m :: * -> *). MonadIO m => m Bool
    glGetEXTColorSubtable = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_color_subtable")

    -- | Is the <https://www.opengl.org/registry/specs/EXT/color_subtable.txt EXT_color_subtable> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetEXTColorSubtable' in those cases instead.
    gl_EXT_color_subtable :: Bool
    gl_EXT_color_subtable :: Bool
    gl_EXT_color_subtable = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_color_subtable" Set String
    extensions
    {-# NOINLINE gl_EXT_color_subtable #-}

    -- | Is the <https://www.opengl.org/registry/specs/EXT/compiled_vertex_array.txt EXT_compiled_vertex_array> extension supported?
    glGetEXTCompiledVertexArray :: MonadIO m => m Bool
    glGetEXTCompiledVertexArray :: forall (m :: * -> *). MonadIO m => m Bool
    glGetEXTCompiledVertexArray = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_compiled_vertex_array")

    -- | Is the <https://www.opengl.org/registry/specs/EXT/compiled_vertex_array.txt EXT_compiled_vertex_array> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetEXTCompiledVertexArray' in those cases instead.
    gl_EXT_compiled_vertex_array :: Bool
    gl_EXT_compiled_vertex_array :: Bool
    gl_EXT_compiled_vertex_array = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_compiled_vertex_array" Set String
    extensions
    {-# NOINLINE gl_EXT_compiled_vertex_array #-}

    -- | Is the <https://www.opengl.org/registry/specs/EXT/convolution.txt EXT_convolution> extension supported?
    glGetEXTConvolution :: MonadIO m => m Bool
    glGetEXTConvolution :: forall (m :: * -> *). MonadIO m => m Bool
    glGetEXTConvolution = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_convolution")

    -- | Is the <https://www.opengl.org/registry/specs/EXT/convolution.txt EXT_convolution> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetEXTConvolution' in those cases instead.
    gl_EXT_convolution :: Bool
    gl_EXT_convolution :: Bool
    gl_EXT_convolution = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_convolution" Set String
    extensions
    {-# NOINLINE gl_EXT_convolution #-}

    -- | Is the <https://www.opengl.org/registry/specs/EXT/coordinate_frame.txt EXT_coordinate_frame> extension supported?
    glGetEXTCoordinateFrame :: MonadIO m => m Bool
    glGetEXTCoordinateFrame :: forall (m :: * -> *). MonadIO m => m Bool
    glGetEXTCoordinateFrame = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_coordinate_frame")

    -- | Is the <https://www.opengl.org/registry/specs/EXT/coordinate_frame.txt EXT_coordinate_frame> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetEXTCoordinateFrame' in those cases instead.
    gl_EXT_coordinate_frame :: Bool
    gl_EXT_coordinate_frame :: Bool
    gl_EXT_coordinate_frame = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_coordinate_frame" Set String
    extensions
    {-# NOINLINE gl_EXT_coordinate_frame #-}

    -- | Is the <https://www.opengl.org/registry/specs/EXT/copy_texture.txt EXT_copy_texture> extension supported?
    glGetEXTCopyTexture :: MonadIO m => m Bool
    glGetEXTCopyTexture :: forall (m :: * -> *). MonadIO m => m Bool
    glGetEXTCopyTexture = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_copy_texture")

    -- | Is the <https://www.opengl.org/registry/specs/EXT/copy_texture.txt EXT_copy_texture> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetEXTCopyTexture' in those cases instead.
    gl_EXT_copy_texture :: Bool
    gl_EXT_copy_texture :: Bool
    gl_EXT_copy_texture = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_copy_texture" Set String
    extensions
    {-# NOINLINE gl_EXT_copy_texture #-}

    -- | Is the <https://www.opengl.org/registry/specs/EXT/cull_vertex.txt EXT_cull_vertex> extension supported?
    glGetEXTCullVertex :: MonadIO m => m Bool
    glGetEXTCullVertex :: forall (m :: * -> *). MonadIO m => m Bool
    glGetEXTCullVertex = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_cull_vertex")

    -- | Is the <https://www.opengl.org/registry/specs/EXT/cull_vertex.txt EXT_cull_vertex> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetEXTCullVertex' in those cases instead.
    gl_EXT_cull_vertex :: Bool
    gl_EXT_cull_vertex :: Bool
    gl_EXT_cull_vertex = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_cull_vertex" Set String
    extensions
    {-# NOINLINE gl_EXT_cull_vertex #-}

    -- | Is the <https://www.opengl.org/registry/specs/EXT/EXT_debug_label.txt EXT_debug_label> extension supported?
    glGetEXTDebugLabel :: MonadIO m => m Bool
    glGetEXTDebugLabel :: forall (m :: * -> *). MonadIO m => m Bool
    glGetEXTDebugLabel = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_debug_label")

    -- | Is the <https://www.opengl.org/registry/specs/EXT/EXT_debug_label.txt EXT_debug_label> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetEXTDebugLabel' in those cases instead.
    gl_EXT_debug_label :: Bool
    gl_EXT_debug_label :: Bool
    gl_EXT_debug_label = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_debug_label" Set String
    extensions
    {-# NOINLINE gl_EXT_debug_label #-}

    -- | Is the <https://www.opengl.org/registry/specs/EXT/EXT_debug_marker.txt EXT_debug_marker> extension supported?
    glGetEXTDebugMarker :: MonadIO m => m Bool
    glGetEXTDebugMarker :: forall (m :: * -> *). MonadIO m => m Bool
    glGetEXTDebugMarker = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_debug_marker")

    -- | Is the <https://www.opengl.org/registry/specs/EXT/EXT_debug_marker.txt EXT_debug_marker> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetEXTDebugMarker' in those cases instead.
    gl_EXT_debug_marker :: Bool
    gl_EXT_debug_marker :: Bool
    gl_EXT_debug_marker = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_debug_marker" Set String
    extensions
    {-# NOINLINE gl_EXT_debug_marker #-}

    -- | Is the <https://www.opengl.org/registry/specs/EXT/depth_bounds_test.txt EXT_depth_bounds_test> extension supported?
    glGetEXTDepthBoundsTest :: MonadIO m => m Bool
    glGetEXTDepthBoundsTest :: forall (m :: * -> *). MonadIO m => m Bool
    glGetEXTDepthBoundsTest = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_depth_bounds_test")

    -- | Is the <https://www.opengl.org/registry/specs/EXT/depth_bounds_test.txt EXT_depth_bounds_test> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetEXTDepthBoundsTest' in those cases instead.
    gl_EXT_depth_bounds_test :: Bool
    gl_EXT_depth_bounds_test :: Bool
    gl_EXT_depth_bounds_test = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_depth_bounds_test" Set String
    extensions
    {-# NOINLINE gl_EXT_depth_bounds_test #-}

    -- | Is the <https://www.opengl.org/registry/specs/EXT/direct_state_access.txt EXT_direct_state_access> extension supported?
    glGetEXTDirectStateAccess :: MonadIO m => m Bool
    glGetEXTDirectStateAccess :: forall (m :: * -> *). MonadIO m => m Bool
    glGetEXTDirectStateAccess = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_direct_state_access")

    -- | Is the <https://www.opengl.org/registry/specs/EXT/direct_state_access.txt EXT_direct_state_access> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetEXTDirectStateAccess' in those cases instead.
    gl_EXT_direct_state_access :: Bool
    gl_EXT_direct_state_access :: Bool
    gl_EXT_direct_state_access = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_direct_state_access" Set String
    extensions
    {-# NOINLINE gl_EXT_direct_state_access #-}

    -- | Is the <https://www.opengl.org/registry/specs/EXT/draw_buffers2.txt EXT_draw_buffers2> extension supported?
    glGetEXTDrawBuffers2 :: MonadIO m => m Bool
    glGetEXTDrawBuffers2 :: forall (m :: * -> *). MonadIO m => m Bool
    glGetEXTDrawBuffers2 = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_draw_buffers2")

    -- | Is the <https://www.opengl.org/registry/specs/EXT/draw_buffers2.txt EXT_draw_buffers2> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetEXTDrawBuffers2' in those cases instead.
    gl_EXT_draw_buffers2 :: Bool
    gl_EXT_draw_buffers2 :: Bool
    gl_EXT_draw_buffers2 = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_draw_buffers2" Set String
    extensions
    {-# NOINLINE gl_EXT_draw_buffers2 #-}

    -- | Is the <https://www.opengl.org/registry/specs/EXT/draw_instanced.txt EXT_draw_instanced> extension supported?
    glGetEXTDrawInstanced :: MonadIO m => m Bool
    glGetEXTDrawInstanced :: forall (m :: * -> *). MonadIO m => m Bool
    glGetEXTDrawInstanced = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_draw_instanced")

    -- | Is the <https://www.opengl.org/registry/specs/EXT/draw_instanced.txt EXT_draw_instanced> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetEXTDrawInstanced' in those cases instead.
    gl_EXT_draw_instanced :: Bool
    gl_EXT_draw_instanced :: Bool
    gl_EXT_draw_instanced = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_draw_instanced" Set String
    extensions
    {-# NOINLINE gl_EXT_draw_instanced #-}

    -- | Is the <https://www.opengl.org/registry/specs/EXT/draw_range_elements.txt EXT_draw_range_elements> extension supported?
    glGetEXTDrawRangeElements :: MonadIO m => m Bool
    glGetEXTDrawRangeElements :: forall (m :: * -> *). MonadIO m => m Bool
    glGetEXTDrawRangeElements = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_draw_range_elements")

    -- | Is the <https://www.opengl.org/registry/specs/EXT/draw_range_elements.txt EXT_draw_range_elements> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetEXTDrawRangeElements' in those cases instead.
    gl_EXT_draw_range_elements :: Bool
    gl_EXT_draw_range_elements :: Bool
    gl_EXT_draw_range_elements = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_draw_range_elements" Set String
    extensions
    {-# NOINLINE gl_EXT_draw_range_elements #-}

    -- | Is the <https://www.opengl.org/registry/specs/EXT/external_buffer.txt EXT_external_buffer> extension supported?
    glGetEXTExternalBuffer :: MonadIO m => m Bool
    glGetEXTExternalBuffer :: forall (m :: * -> *). MonadIO m => m Bool
    glGetEXTExternalBuffer = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_external_buffer")

    -- | Is the <https://www.opengl.org/registry/specs/EXT/external_buffer.txt EXT_external_buffer> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetEXTExternalBuffer' in those cases instead.
    gl_EXT_external_buffer :: Bool
    gl_EXT_external_buffer :: Bool
    gl_EXT_external_buffer = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_external_buffer" Set String
    extensions
    {-# NOINLINE gl_EXT_external_buffer #-}

    -- | Is the <https://www.opengl.org/registry/specs/EXT/fog_coord.txt EXT_fog_coord> extension supported?
    glGetEXTFogCoord :: MonadIO m => m Bool
    glGetEXTFogCoord :: forall (m :: * -> *). MonadIO m => m Bool
    glGetEXTFogCoord = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_fog_coord")

    -- | Is the <https://www.opengl.org/registry/specs/EXT/fog_coord.txt EXT_fog_coord> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetEXTFogCoord' in those cases instead.
    gl_EXT_fog_coord :: Bool
    gl_EXT_fog_coord :: Bool
    gl_EXT_fog_coord = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_fog_coord" Set String
    extensions
    {-# NOINLINE gl_EXT_fog_coord #-}

    -- | Is the <https://www.opengl.org/registry/specs/EXT/framebuffer_blit.txt EXT_framebuffer_blit> extension supported?
    glGetEXTFramebufferBlit :: MonadIO m => m Bool
    glGetEXTFramebufferBlit :: forall (m :: * -> *). MonadIO m => m Bool
    glGetEXTFramebufferBlit = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_framebuffer_blit")

    -- | Is the <https://www.opengl.org/registry/specs/EXT/framebuffer_blit.txt EXT_framebuffer_blit> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetEXTFramebufferBlit' in those cases instead.
    gl_EXT_framebuffer_blit :: Bool
    gl_EXT_framebuffer_blit :: Bool
    gl_EXT_framebuffer_blit = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_framebuffer_blit" Set String
    extensions
    {-# NOINLINE gl_EXT_framebuffer_blit #-}

    -- | Is the <https://www.opengl.org/registry/specs/EXT/framebuffer_multisample.txt EXT_framebuffer_multisample> extension supported?
    glGetEXTFramebufferMultisample :: MonadIO m => m Bool
    glGetEXTFramebufferMultisample :: forall (m :: * -> *). MonadIO m => m Bool
    glGetEXTFramebufferMultisample = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_framebuffer_multisample")

    -- | Is the <https://www.opengl.org/registry/specs/EXT/framebuffer_multisample.txt EXT_framebuffer_multisample> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetEXTFramebufferMultisample' in those cases instead.
    gl_EXT_framebuffer_multisample :: Bool
    gl_EXT_framebuffer_multisample :: Bool
    gl_EXT_framebuffer_multisample = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_framebuffer_multisample" Set String
    extensions
    {-# NOINLINE gl_EXT_framebuffer_multisample #-}

    -- | Is the <https://www.opengl.org/registry/specs/EXT/framebuffer_multisample_blit_scaled.txt EXT_framebuffer_multisample_blit_scaled> extension supported?
    glGetEXTFramebufferMultisampleBlitScaled :: MonadIO m => m Bool
    glGetEXTFramebufferMultisampleBlitScaled :: forall (m :: * -> *). MonadIO m => m Bool
    glGetEXTFramebufferMultisampleBlitScaled = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_framebuffer_multisample_blit_scaled")

    -- | Is the <https://www.opengl.org/registry/specs/EXT/framebuffer_multisample_blit_scaled.txt EXT_framebuffer_multisample_blit_scaled> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetEXTFramebufferMultisampleBlitScaled' in those cases instead.
    gl_EXT_framebuffer_multisample_blit_scaled :: Bool
    gl_EXT_framebuffer_multisample_blit_scaled :: Bool
    gl_EXT_framebuffer_multisample_blit_scaled = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_framebuffer_multisample_blit_scaled" Set String
    extensions
    {-# NOINLINE gl_EXT_framebuffer_multisample_blit_scaled #-}

    -- | Is the <https://www.opengl.org/registry/specs/EXT/framebuffer_object.txt EXT_framebuffer_object> extension supported?
    glGetEXTFramebufferObject :: MonadIO m => m Bool
    glGetEXTFramebufferObject :: forall (m :: * -> *). MonadIO m => m Bool
    glGetEXTFramebufferObject = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_framebuffer_object")

    -- | Is the <https://www.opengl.org/registry/specs/EXT/framebuffer_object.txt EXT_framebuffer_object> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetEXTFramebufferObject' in those cases instead.
    gl_EXT_framebuffer_object :: Bool
    gl_EXT_framebuffer_object :: Bool
    gl_EXT_framebuffer_object = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_framebuffer_object" Set String
    extensions
    {-# NOINLINE gl_EXT_framebuffer_object #-}

    -- | Is the <https://www.opengl.org/registry/specs/EXT/framebuffer_sRGB.txt EXT_framebuffer_sRGB> extension supported?
    glGetEXTFramebufferSRGB :: MonadIO m => m Bool
    glGetEXTFramebufferSRGB :: forall (m :: * -> *). MonadIO m => m Bool
    glGetEXTFramebufferSRGB = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_framebuffer_sRGB")

    -- | Is the <https://www.opengl.org/registry/specs/EXT/framebuffer_sRGB.txt EXT_framebuffer_sRGB> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetEXTFramebufferSRGB' in those cases instead.
    gl_EXT_framebuffer_sRGB :: Bool
    gl_EXT_framebuffer_sRGB :: Bool
    gl_EXT_framebuffer_sRGB = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_framebuffer_sRGB" Set String
    extensions
    {-# NOINLINE gl_EXT_framebuffer_sRGB #-}

    -- | Is the <https://www.opengl.org/registry/specs/EXT/geometry_shader4.txt EXT_geometry_shader4> extension supported?
    glGetEXTGeometryShader4 :: MonadIO m => m Bool
    glGetEXTGeometryShader4 :: forall (m :: * -> *). MonadIO m => m Bool
    glGetEXTGeometryShader4 = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_geometry_shader4")

    -- | Is the <https://www.opengl.org/registry/specs/EXT/geometry_shader4.txt EXT_geometry_shader4> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetEXTGeometryShader4' in those cases instead.
    gl_EXT_geometry_shader4 :: Bool
    gl_EXT_geometry_shader4 :: Bool
    gl_EXT_geometry_shader4 = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_geometry_shader4" Set String
    extensions
    {-# NOINLINE gl_EXT_geometry_shader4 #-}

    -- | Is the <https://www.opengl.org/registry/specs/EXT/gpu_program_parameters.txt EXT_gpu_program_parameters> extension supported?
    glGetEXTGPUProgramParameters :: MonadIO m => m Bool
    glGetEXTGPUProgramParameters :: forall (m :: * -> *). MonadIO m => m Bool
    glGetEXTGPUProgramParameters = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_gpu_program_parameters")

    -- | Is the <https://www.opengl.org/registry/specs/EXT/gpu_program_parameters.txt EXT_gpu_program_parameters> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetEXTGPUProgramParameters' in those cases instead.
    gl_EXT_gpu_program_parameters :: Bool
    gl_EXT_gpu_program_parameters :: Bool
    gl_EXT_gpu_program_parameters = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_gpu_program_parameters" Set String
    extensions
    {-# NOINLINE gl_EXT_gpu_program_parameters #-}

    -- | Is the <https://www.opengl.org/registry/specs/EXT/gpu_shader4.txt EXT_gpu_shader4> extension supported?
    glGetEXTGPUShader4 :: MonadIO m => m Bool
    glGetEXTGPUShader4 :: forall (m :: * -> *). MonadIO m => m Bool
    glGetEXTGPUShader4 = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_gpu_shader4")

    -- | Is the <https://www.opengl.org/registry/specs/EXT/gpu_shader4.txt EXT_gpu_shader4> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetEXTGPUShader4' in those cases instead.
    gl_EXT_gpu_shader4 :: Bool
    gl_EXT_gpu_shader4 :: Bool
    gl_EXT_gpu_shader4 = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_gpu_shader4" Set String
    extensions
    {-# NOINLINE gl_EXT_gpu_shader4 #-}

    -- | Is the <https://www.opengl.org/registry/specs/EXT/histogram.txt EXT_histogram> extension supported?
    glGetEXTHistogram :: MonadIO m => m Bool
    glGetEXTHistogram :: forall (m :: * -> *). MonadIO m => m Bool
    glGetEXTHistogram = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_histogram")

    -- | Is the <https://www.opengl.org/registry/specs/EXT/histogram.txt EXT_histogram> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetEXTHistogram' in those cases instead.
    gl_EXT_histogram :: Bool
    gl_EXT_histogram :: Bool
    gl_EXT_histogram = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_histogram" Set String
    extensions
    {-# NOINLINE gl_EXT_histogram #-}

    -- | Is the <https://www.opengl.org/registry/specs/EXT/index_array_formats.txt EXT_index_array_formats> extension supported?
    glGetEXTIndexArrayFormats :: MonadIO m => m Bool
    glGetEXTIndexArrayFormats :: forall (m :: * -> *). MonadIO m => m Bool
    glGetEXTIndexArrayFormats = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_index_array_formats")

    -- | Is the <https://www.opengl.org/registry/specs/EXT/index_array_formats.txt EXT_index_array_formats> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetEXTIndexArrayFormats' in those cases instead.
    gl_EXT_index_array_formats :: Bool
    gl_EXT_index_array_formats :: Bool
    gl_EXT_index_array_formats = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_index_array_formats" Set String
    extensions
    {-# NOINLINE gl_EXT_index_array_formats #-}

    -- | Is the <https://www.opengl.org/registry/specs/EXT/index_func.txt EXT_index_func> extension supported?
    glGetEXTIndexFunc :: MonadIO m => m Bool
    glGetEXTIndexFunc :: forall (m :: * -> *). MonadIO m => m Bool
    glGetEXTIndexFunc = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_index_func")

    -- | Is the <https://www.opengl.org/registry/specs/EXT/index_func.txt EXT_index_func> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetEXTIndexFunc' in those cases instead.
    gl_EXT_index_func :: Bool
    gl_EXT_index_func :: Bool
    gl_EXT_index_func = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_index_func" Set String
    extensions
    {-# NOINLINE gl_EXT_index_func #-}

    -- | Is the <https://www.opengl.org/registry/specs/EXT/index_material.txt EXT_index_material> extension supported?
    glGetEXTIndexMaterial :: MonadIO m => m Bool
    glGetEXTIndexMaterial :: forall (m :: * -> *). MonadIO m => m Bool
    glGetEXTIndexMaterial = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_index_material")

    -- | Is the <https://www.opengl.org/registry/specs/EXT/index_material.txt EXT_index_material> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetEXTIndexMaterial' in those cases instead.
    gl_EXT_index_material :: Bool
    gl_EXT_index_material :: Bool
    gl_EXT_index_material = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_index_material" Set String
    extensions
    {-# NOINLINE gl_EXT_index_material #-}

    -- | Is the <https://www.opengl.org/registry/specs/EXT/light_texture.txt EXT_light_texture> extension supported?
    glGetEXTLightTexture :: MonadIO m => m Bool
    glGetEXTLightTexture :: forall (m :: * -> *). MonadIO m => m Bool
    glGetEXTLightTexture = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_light_texture")

    -- | Is the <https://www.opengl.org/registry/specs/EXT/light_texture.txt EXT_light_texture> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetEXTLightTexture' in those cases instead.
    gl_EXT_light_texture :: Bool
    gl_EXT_light_texture :: Bool
    gl_EXT_light_texture = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_light_texture" Set String
    extensions
    {-# NOINLINE gl_EXT_light_texture #-}

    -- | Is the <https://www.opengl.org/registry/specs/EXT/memory_object.txt EXT_memory_object> extension supported?
    glGetEXTMemoryObject :: MonadIO m => m Bool
    glGetEXTMemoryObject :: forall (m :: * -> *). MonadIO m => m Bool
    glGetEXTMemoryObject = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_memory_object")

    -- | Is the <https://www.opengl.org/registry/specs/EXT/memory_object.txt EXT_memory_object> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetEXTMemoryObject' in those cases instead.
    gl_EXT_memory_object :: Bool
    gl_EXT_memory_object :: Bool
    gl_EXT_memory_object = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_memory_object" Set String
    extensions
    {-# NOINLINE gl_EXT_memory_object #-}

    -- | Is the <https://www.opengl.org/registry/specs/EXT/memory_object_fd.txt EXT_memory_object_fd> extension supported?
    glGetEXTMemoryObjectFd :: MonadIO m => m Bool
    glGetEXTMemoryObjectFd :: forall (m :: * -> *). MonadIO m => m Bool
    glGetEXTMemoryObjectFd = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_memory_object_fd")

    -- | Is the <https://www.opengl.org/registry/specs/EXT/memory_object_fd.txt EXT_memory_object_fd> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetEXTMemoryObjectFd' in those cases instead.
    gl_EXT_memory_object_fd :: Bool
    gl_EXT_memory_object_fd :: Bool
    gl_EXT_memory_object_fd = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_memory_object_fd" Set String
    extensions
    {-# NOINLINE gl_EXT_memory_object_fd #-}

    -- | Is the <https://www.opengl.org/registry/specs/EXT/memory_object_win32.txt EXT_memory_object_win32> extension supported?
    glGetEXTMemoryObjectWin32 :: MonadIO m => m Bool
    glGetEXTMemoryObjectWin32 :: forall (m :: * -> *). MonadIO m => m Bool
    glGetEXTMemoryObjectWin32 = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_memory_object_win32")

    -- | Is the <https://www.opengl.org/registry/specs/EXT/memory_object_win32.txt EXT_memory_object_win32> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetEXTMemoryObjectWin32' in those cases instead.
    gl_EXT_memory_object_win32 :: Bool
    gl_EXT_memory_object_win32 :: Bool
    gl_EXT_memory_object_win32 = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_memory_object_win32" Set String
    extensions
    {-# NOINLINE gl_EXT_memory_object_win32 #-}

    -- | Is the <https://www.opengl.org/registry/specs/EXT/multi_draw_arrays.txt EXT_multi_draw_arrays> extension supported?
    glGetEXTMultiDrawArrays :: MonadIO m => m Bool
    glGetEXTMultiDrawArrays :: forall (m :: * -> *). MonadIO m => m Bool
    glGetEXTMultiDrawArrays = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_multi_draw_arrays")

    -- | Is the <https://www.opengl.org/registry/specs/EXT/multi_draw_arrays.txt EXT_multi_draw_arrays> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetEXTMultiDrawArrays' in those cases instead.
    gl_EXT_multi_draw_arrays :: Bool
    gl_EXT_multi_draw_arrays :: Bool
    gl_EXT_multi_draw_arrays = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_multi_draw_arrays" Set String
    extensions
    {-# NOINLINE gl_EXT_multi_draw_arrays #-}

    -- | Is the <https://www.opengl.org/registry/specs/EXT/wgl_multisample.txt EXT_multisample> extension supported?
    glGetEXTMultisample :: MonadIO m => m Bool
    glGetEXTMultisample :: forall (m :: * -> *). MonadIO m => m Bool
    glGetEXTMultisample = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_multisample")

    -- | Is the <https://www.opengl.org/registry/specs/EXT/wgl_multisample.txt EXT_multisample> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetEXTMultisample' in those cases instead.
    gl_EXT_multisample :: Bool
    gl_EXT_multisample :: Bool
    gl_EXT_multisample = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_multisample" Set String
    extensions
    {-# NOINLINE gl_EXT_multisample #-}

    -- | Is the <https://www.opengl.org/registry/specs/EXT/packed_depth_stencil.txt EXT_packed_depth_stencil> extension supported?
    glGetEXTPackedDepthStencil :: MonadIO m => m Bool
    glGetEXTPackedDepthStencil :: forall (m :: * -> *). MonadIO m => m Bool
    glGetEXTPackedDepthStencil = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_packed_depth_stencil")

    -- | Is the <https://www.opengl.org/registry/specs/EXT/packed_depth_stencil.txt EXT_packed_depth_stencil> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetEXTPackedDepthStencil' in those cases instead.
    gl_EXT_packed_depth_stencil :: Bool
    gl_EXT_packed_depth_stencil :: Bool
    gl_EXT_packed_depth_stencil = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_packed_depth_stencil" Set String
    extensions
    {-# NOINLINE gl_EXT_packed_depth_stencil #-}

    -- | Is the <https://www.opengl.org/registry/specs/EXT/packed_float.txt EXT_packed_float> extension supported?
    glGetEXTPackedFloat :: MonadIO m => m Bool
    glGetEXTPackedFloat :: forall (m :: * -> *). MonadIO m => m Bool
    glGetEXTPackedFloat = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_packed_float")

    -- | Is the <https://www.opengl.org/registry/specs/EXT/packed_float.txt EXT_packed_float> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetEXTPackedFloat' in those cases instead.
    gl_EXT_packed_float :: Bool
    gl_EXT_packed_float :: Bool
    gl_EXT_packed_float = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_packed_float" Set String
    extensions
    {-# NOINLINE gl_EXT_packed_float #-}

    -- | Is the <https://www.opengl.org/registry/specs/EXT/packed_pixels.txt EXT_packed_pixels> extension supported?
    glGetEXTPackedPixels :: MonadIO m => m Bool
    glGetEXTPackedPixels :: forall (m :: * -> *). MonadIO m => m Bool
    glGetEXTPackedPixels = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_packed_pixels")

    -- | Is the <https://www.opengl.org/registry/specs/EXT/packed_pixels.txt EXT_packed_pixels> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetEXTPackedPixels' in those cases instead.
    gl_EXT_packed_pixels :: Bool
    gl_EXT_packed_pixels :: Bool
    gl_EXT_packed_pixels = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_packed_pixels" Set String
    extensions
    {-# NOINLINE gl_EXT_packed_pixels #-}

    -- | Is the <https://www.opengl.org/registry/specs/EXT/paletted_texture.txt EXT_paletted_texture> extension supported?
    glGetEXTPalettedTexture :: MonadIO m => m Bool
    glGetEXTPalettedTexture :: forall (m :: * -> *). MonadIO m => m Bool
    glGetEXTPalettedTexture = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_paletted_texture")

    -- | Is the <https://www.opengl.org/registry/specs/EXT/paletted_texture.txt EXT_paletted_texture> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetEXTPalettedTexture' in those cases instead.
    gl_EXT_paletted_texture :: Bool
    gl_EXT_paletted_texture :: Bool
    gl_EXT_paletted_texture = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_paletted_texture" Set String
    extensions
    {-# NOINLINE gl_EXT_paletted_texture #-}

    -- | Is the <https://www.opengl.org/registry/specs/EXT/pixel_buffer_object.txt EXT_pixel_buffer_object> extension supported?
    glGetEXTPixelBufferObject :: MonadIO m => m Bool
    glGetEXTPixelBufferObject :: forall (m :: * -> *). MonadIO m => m Bool
    glGetEXTPixelBufferObject = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_pixel_buffer_object")

    -- | Is the <https://www.opengl.org/registry/specs/EXT/pixel_buffer_object.txt EXT_pixel_buffer_object> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetEXTPixelBufferObject' in those cases instead.
    gl_EXT_pixel_buffer_object :: Bool
    gl_EXT_pixel_buffer_object :: Bool
    gl_EXT_pixel_buffer_object = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_pixel_buffer_object" Set String
    extensions
    {-# NOINLINE gl_EXT_pixel_buffer_object #-}

    -- | Is the <https://www.opengl.org/registry/specs/EXT/pixel_transform.txt EXT_pixel_transform> extension supported?
    glGetEXTPixelTransform :: MonadIO m => m Bool
    glGetEXTPixelTransform :: forall (m :: * -> *). MonadIO m => m Bool
    glGetEXTPixelTransform = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_pixel_transform")

    -- | Is the <https://www.opengl.org/registry/specs/EXT/pixel_transform.txt EXT_pixel_transform> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetEXTPixelTransform' in those cases instead.
    gl_EXT_pixel_transform :: Bool
    gl_EXT_pixel_transform :: Bool
    gl_EXT_pixel_transform = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_pixel_transform" Set String
    extensions
    {-# NOINLINE gl_EXT_pixel_transform #-}

    -- | Is the <https://www.opengl.org/registry/specs/EXT/point_parameters.txt EXT_point_parameters> extension supported?
    glGetEXTPointParameters :: MonadIO m => m Bool
    glGetEXTPointParameters :: forall (m :: * -> *). MonadIO m => m Bool
    glGetEXTPointParameters = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_point_parameters")

    -- | Is the <https://www.opengl.org/registry/specs/EXT/point_parameters.txt EXT_point_parameters> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetEXTPointParameters' in those cases instead.
    gl_EXT_point_parameters :: Bool
    gl_EXT_point_parameters :: Bool
    gl_EXT_point_parameters = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_point_parameters" Set String
    extensions
    {-# NOINLINE gl_EXT_point_parameters #-}

    -- | Is the <https://www.opengl.org/registry/specs/EXT/polygon_offset.txt EXT_polygon_offset> extension supported?
    glGetEXTPolygonOffset :: MonadIO m => m Bool
    glGetEXTPolygonOffset :: forall (m :: * -> *). MonadIO m => m Bool
    glGetEXTPolygonOffset = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_polygon_offset")

    -- | Is the <https://www.opengl.org/registry/specs/EXT/polygon_offset.txt EXT_polygon_offset> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetEXTPolygonOffset' in those cases instead.
    gl_EXT_polygon_offset :: Bool
    gl_EXT_polygon_offset :: Bool
    gl_EXT_polygon_offset = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_polygon_offset" Set String
    extensions
    {-# NOINLINE gl_EXT_polygon_offset #-}

    -- | Is the <https://www.opengl.org/registry/specs/EXT/polygon_offset_clamp.txt EXT_polygon_offset_clamp> extension supported?
    glGetEXTPolygonOffsetClamp :: MonadIO m => m Bool
    glGetEXTPolygonOffsetClamp :: forall (m :: * -> *). MonadIO m => m Bool
    glGetEXTPolygonOffsetClamp = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_polygon_offset_clamp")

    -- | Is the <https://www.opengl.org/registry/specs/EXT/polygon_offset_clamp.txt EXT_polygon_offset_clamp> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetEXTPolygonOffsetClamp' in those cases instead.
    gl_EXT_polygon_offset_clamp :: Bool
    gl_EXT_polygon_offset_clamp :: Bool
    gl_EXT_polygon_offset_clamp = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_polygon_offset_clamp" Set String
    extensions
    {-# NOINLINE gl_EXT_polygon_offset_clamp #-}

    -- | Is the <https://www.opengl.org/registry/specs/EXT/provoking_vertex.txt EXT_provoking_vertex> extension supported?
    glGetEXTProvokingVertex :: MonadIO m => m Bool
    glGetEXTProvokingVertex :: forall (m :: * -> *). MonadIO m => m Bool
    glGetEXTProvokingVertex = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_provoking_vertex")

    -- | Is the <https://www.opengl.org/registry/specs/EXT/provoking_vertex.txt EXT_provoking_vertex> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetEXTProvokingVertex' in those cases instead.
    gl_EXT_provoking_vertex :: Bool
    gl_EXT_provoking_vertex :: Bool
    gl_EXT_provoking_vertex = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_provoking_vertex" Set String
    extensions
    {-# NOINLINE gl_EXT_provoking_vertex #-}

    -- | Is the <https://www.opengl.org/registry/specs/EXT/raster_multisample.txt EXT_raster_multisample> extension supported?
    glGetEXTRasterMultisample :: MonadIO m => m Bool
    glGetEXTRasterMultisample :: forall (m :: * -> *). MonadIO m => m Bool
    glGetEXTRasterMultisample = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_raster_multisample")

    -- | Is the <https://www.opengl.org/registry/specs/EXT/raster_multisample.txt EXT_raster_multisample> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetEXTRasterMultisample' in those cases instead.
    gl_EXT_raster_multisample :: Bool
    gl_EXT_raster_multisample :: Bool
    gl_EXT_raster_multisample = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_raster_multisample" Set String
    extensions
    {-# NOINLINE gl_EXT_raster_multisample #-}

    -- | Is the <https://www.opengl.org/registry/specs/EXT/rescale_normal.txt EXT_rescale_normal> extension supported?
    glGetEXTRescaleNormal :: MonadIO m => m Bool
    glGetEXTRescaleNormal :: forall (m :: * -> *). MonadIO m => m Bool
    glGetEXTRescaleNormal = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_rescale_normal")

    -- | Is the <https://www.opengl.org/registry/specs/EXT/rescale_normal.txt EXT_rescale_normal> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetEXTRescaleNormal' in those cases instead.
    gl_EXT_rescale_normal :: Bool
    gl_EXT_rescale_normal :: Bool
    gl_EXT_rescale_normal = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_rescale_normal" Set String
    extensions
    {-# NOINLINE gl_EXT_rescale_normal #-}

    -- | Is the <https://www.opengl.org/registry/specs/EXT/secondary_color.txt EXT_secondary_color> extension supported?
    glGetEXTSecondaryColor :: MonadIO m => m Bool
    glGetEXTSecondaryColor :: forall (m :: * -> *). MonadIO m => m Bool
    glGetEXTSecondaryColor = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_secondary_color")

    -- | Is the <https://www.opengl.org/registry/specs/EXT/secondary_color.txt EXT_secondary_color> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetEXTSecondaryColor' in those cases instead.
    gl_EXT_secondary_color :: Bool
    gl_EXT_secondary_color :: Bool
    gl_EXT_secondary_color = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_secondary_color" Set String
    extensions
    {-# NOINLINE gl_EXT_secondary_color #-}

    -- | Is the <https://www.opengl.org/registry/specs/EXT/semaphore.txt EXT_semaphore> extension supported?
    glGetEXTSemaphore :: MonadIO m => m Bool
    glGetEXTSemaphore :: forall (m :: * -> *). MonadIO m => m Bool
    glGetEXTSemaphore = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_semaphore")

    -- | Is the <https://www.opengl.org/registry/specs/EXT/semaphore.txt EXT_semaphore> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetEXTSemaphore' in those cases instead.
    gl_EXT_semaphore :: Bool
    gl_EXT_semaphore :: Bool
    gl_EXT_semaphore = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_semaphore" Set String
    extensions
    {-# NOINLINE gl_EXT_semaphore #-}

    -- | Is the <https://www.opengl.org/registry/specs/EXT/semaphore_fd.txt EXT_semaphore_fd> extension supported?
    glGetEXTSemaphoreFd :: MonadIO m => m Bool
    glGetEXTSemaphoreFd :: forall (m :: * -> *). MonadIO m => m Bool
    glGetEXTSemaphoreFd = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_semaphore_fd")

    -- | Is the <https://www.opengl.org/registry/specs/EXT/semaphore_fd.txt EXT_semaphore_fd> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetEXTSemaphoreFd' in those cases instead.
    gl_EXT_semaphore_fd :: Bool
    gl_EXT_semaphore_fd :: Bool
    gl_EXT_semaphore_fd = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_semaphore_fd" Set String
    extensions
    {-# NOINLINE gl_EXT_semaphore_fd #-}

    -- | Is the <https://www.opengl.org/registry/specs/EXT/semaphore_win32.txt EXT_semaphore_win32> extension supported?
    glGetEXTSemaphoreWin32 :: MonadIO m => m Bool
    glGetEXTSemaphoreWin32 :: forall (m :: * -> *). MonadIO m => m Bool
    glGetEXTSemaphoreWin32 = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_semaphore_win32")

    -- | Is the <https://www.opengl.org/registry/specs/EXT/semaphore_win32.txt EXT_semaphore_win32> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetEXTSemaphoreWin32' in those cases instead.
    gl_EXT_semaphore_win32 :: Bool
    gl_EXT_semaphore_win32 :: Bool
    gl_EXT_semaphore_win32 = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_semaphore_win32" Set String
    extensions
    {-# NOINLINE gl_EXT_semaphore_win32 #-}

    -- | Is the <https://www.opengl.org/registry/specs/EXT/separate_shader_objects.txt EXT_separate_shader_objects> extension supported?
    glGetEXTSeparateShaderObjects :: MonadIO m => m Bool
    glGetEXTSeparateShaderObjects :: forall (m :: * -> *). MonadIO m => m Bool
    glGetEXTSeparateShaderObjects = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_separate_shader_objects")

    -- | Is the <https://www.opengl.org/registry/specs/EXT/separate_shader_objects.txt EXT_separate_shader_objects> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetEXTSeparateShaderObjects' in those cases instead.
    gl_EXT_separate_shader_objects :: Bool
    gl_EXT_separate_shader_objects :: Bool
    gl_EXT_separate_shader_objects = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_separate_shader_objects" Set String
    extensions
    {-# NOINLINE gl_EXT_separate_shader_objects #-}

    -- | Is the <https://www.opengl.org/registry/specs/EXT/separate_specular_color.txt EXT_separate_specular_color> extension supported?
    glGetEXTSeparateSpecularColor :: MonadIO m => m Bool
    glGetEXTSeparateSpecularColor :: forall (m :: * -> *). MonadIO m => m Bool
    glGetEXTSeparateSpecularColor = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_separate_specular_color")

    -- | Is the <https://www.opengl.org/registry/specs/EXT/separate_specular_color.txt EXT_separate_specular_color> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetEXTSeparateSpecularColor' in those cases instead.
    gl_EXT_separate_specular_color :: Bool
    gl_EXT_separate_specular_color :: Bool
    gl_EXT_separate_specular_color = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_separate_specular_color" Set String
    extensions
    {-# NOINLINE gl_EXT_separate_specular_color #-}

    -- | Is the <https://www.opengl.org/registry/specs/EXT/shader_framebuffer_fetch.txt EXT_shader_framebuffer_fetch> extension supported?
    glGetEXTShaderFramebufferFetch :: MonadIO m => m Bool
    glGetEXTShaderFramebufferFetch :: forall (m :: * -> *). MonadIO m => m Bool
    glGetEXTShaderFramebufferFetch = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_shader_framebuffer_fetch")

    -- | Is the <https://www.opengl.org/registry/specs/EXT/shader_framebuffer_fetch.txt EXT_shader_framebuffer_fetch> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetEXTShaderFramebufferFetch' in those cases instead.
    gl_EXT_shader_framebuffer_fetch :: Bool
    gl_EXT_shader_framebuffer_fetch :: Bool
    gl_EXT_shader_framebuffer_fetch = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_shader_framebuffer_fetch" Set String
    extensions
    {-# NOINLINE gl_EXT_shader_framebuffer_fetch #-}

    -- | Is the <https://www.opengl.org/registry/specs/EXT/shader_framebuffer_fetch_non_coherent.txt EXT_shader_framebuffer_fetch_non_coherent> extension supported?
    glGetEXTShaderFramebufferFetchNonCoherent :: MonadIO m => m Bool
    glGetEXTShaderFramebufferFetchNonCoherent :: forall (m :: * -> *). MonadIO m => m Bool
    glGetEXTShaderFramebufferFetchNonCoherent = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_shader_framebuffer_fetch_non_coherent")

    -- | Is the <https://www.opengl.org/registry/specs/EXT/shader_framebuffer_fetch_non_coherent.txt EXT_shader_framebuffer_fetch_non_coherent> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetEXTShaderFramebufferFetchNonCoherent' in those cases instead.
    gl_EXT_shader_framebuffer_fetch_non_coherent :: Bool
    gl_EXT_shader_framebuffer_fetch_non_coherent :: Bool
    gl_EXT_shader_framebuffer_fetch_non_coherent = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_shader_framebuffer_fetch_non_coherent" Set String
    extensions
    {-# NOINLINE gl_EXT_shader_framebuffer_fetch_non_coherent #-}

    -- | Is the <https://www.opengl.org/registry/specs/EXT/shader_image_load_store.txt EXT_shader_image_load_store> extension supported?
    glGetEXTShaderImageLoadStore :: MonadIO m => m Bool
    glGetEXTShaderImageLoadStore :: forall (m :: * -> *). MonadIO m => m Bool
    glGetEXTShaderImageLoadStore = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_shader_image_load_store")

    -- | Is the <https://www.opengl.org/registry/specs/EXT/shader_image_load_store.txt EXT_shader_image_load_store> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetEXTShaderImageLoadStore' in those cases instead.
    gl_EXT_shader_image_load_store :: Bool
    gl_EXT_shader_image_load_store :: Bool
    gl_EXT_shader_image_load_store = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_shader_image_load_store" Set String
    extensions
    {-# NOINLINE gl_EXT_shader_image_load_store #-}

    -- | Is the <https://www.opengl.org/registry/specs/EXT/shared_texture_palette.txt EXT_shared_texture_palette> extension supported?
    glGetEXTSharedTexturePalette :: MonadIO m => m Bool
    glGetEXTSharedTexturePalette :: forall (m :: * -> *). MonadIO m => m Bool
    glGetEXTSharedTexturePalette = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_shared_texture_palette")

    -- | Is the <https://www.opengl.org/registry/specs/EXT/shared_texture_palette.txt EXT_shared_texture_palette> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetEXTSharedTexturePalette' in those cases instead.
    gl_EXT_shared_texture_palette :: Bool
    gl_EXT_shared_texture_palette :: Bool
    gl_EXT_shared_texture_palette = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_shared_texture_palette" Set String
    extensions
    {-# NOINLINE gl_EXT_shared_texture_palette #-}

    -- | Is the <https://www.opengl.org/registry/specs/EXT/stencil_clear_tag.txt EXT_stencil_clear_tag> extension supported?
    glGetEXTStencilClearTag :: MonadIO m => m Bool
    glGetEXTStencilClearTag :: forall (m :: * -> *). MonadIO m => m Bool
    glGetEXTStencilClearTag = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_stencil_clear_tag")

    -- | Is the <https://www.opengl.org/registry/specs/EXT/stencil_clear_tag.txt EXT_stencil_clear_tag> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetEXTStencilClearTag' in those cases instead.
    gl_EXT_stencil_clear_tag :: Bool
    gl_EXT_stencil_clear_tag :: Bool
    gl_EXT_stencil_clear_tag = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_stencil_clear_tag" Set String
    extensions
    {-# NOINLINE gl_EXT_stencil_clear_tag #-}

    -- | Is the <https://www.opengl.org/registry/specs/EXT/stencil_two_side.txt EXT_stencil_two_side> extension supported?
    glGetEXTStencilTwoSide :: MonadIO m => m Bool
    glGetEXTStencilTwoSide :: forall (m :: * -> *). MonadIO m => m Bool
    glGetEXTStencilTwoSide = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_stencil_two_side")

    -- | Is the <https://www.opengl.org/registry/specs/EXT/stencil_two_side.txt EXT_stencil_two_side> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetEXTStencilTwoSide' in those cases instead.
    gl_EXT_stencil_two_side :: Bool
    gl_EXT_stencil_two_side :: Bool
    gl_EXT_stencil_two_side = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_stencil_two_side" Set String
    extensions
    {-# NOINLINE gl_EXT_stencil_two_side #-}

    -- | Is the <https://www.opengl.org/registry/specs/EXT/stencil_wrap.txt EXT_stencil_wrap> extension supported?
    glGetEXTStencilWrap :: MonadIO m => m Bool
    glGetEXTStencilWrap :: forall (m :: * -> *). MonadIO m => m Bool
    glGetEXTStencilWrap = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_stencil_wrap")

    -- | Is the <https://www.opengl.org/registry/specs/EXT/stencil_wrap.txt EXT_stencil_wrap> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetEXTStencilWrap' in those cases instead.
    gl_EXT_stencil_wrap :: Bool
    gl_EXT_stencil_wrap :: Bool
    gl_EXT_stencil_wrap = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_stencil_wrap" Set String
    extensions
    {-# NOINLINE gl_EXT_stencil_wrap #-}

    -- | Is the <https://www.opengl.org/registry/specs/EXT/subtexture.txt EXT_subtexture> extension supported?
    glGetEXTSubtexture :: MonadIO m => m Bool
    glGetEXTSubtexture :: forall (m :: * -> *). MonadIO m => m Bool
    glGetEXTSubtexture = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_subtexture")

    -- | Is the <https://www.opengl.org/registry/specs/EXT/subtexture.txt EXT_subtexture> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetEXTSubtexture' in those cases instead.
    gl_EXT_subtexture :: Bool
    gl_EXT_subtexture :: Bool
    gl_EXT_subtexture = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_subtexture" Set String
    extensions
    {-# NOINLINE gl_EXT_subtexture #-}

    -- | Is the <https://www.opengl.org/registry/specs/EXT/texture.txt EXT_texture> extension supported?
    glGetEXTTexture :: MonadIO m => m Bool
    glGetEXTTexture :: forall (m :: * -> *). MonadIO m => m Bool
    glGetEXTTexture = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_texture")

    -- | Is the <https://www.opengl.org/registry/specs/EXT/texture.txt EXT_texture> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetEXTTexture' in those cases instead.
    gl_EXT_texture :: Bool
    gl_EXT_texture :: Bool
    gl_EXT_texture = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_texture" Set String
    extensions
    {-# NOINLINE gl_EXT_texture #-}

    -- | Is the <https://www.opengl.org/registry/specs/EXT/texture3D.txt EXT_texture3D> extension supported?
    glGetEXTTexture3D :: MonadIO m => m Bool
    glGetEXTTexture3D :: forall (m :: * -> *). MonadIO m => m Bool
    glGetEXTTexture3D = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_texture3D")

    -- | Is the <https://www.opengl.org/registry/specs/EXT/texture3D.txt EXT_texture3D> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetEXTTexture3D' in those cases instead.
    gl_EXT_texture3D :: Bool
    gl_EXT_texture3D :: Bool
    gl_EXT_texture3D = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_texture3D" Set String
    extensions
    {-# NOINLINE gl_EXT_texture3D #-}

    -- | Is the <https://www.opengl.org/registry/specs/EXT/texture_array.txt EXT_texture_array> extension supported?
    glGetEXTTextureArray :: MonadIO m => m Bool
    glGetEXTTextureArray :: forall (m :: * -> *). MonadIO m => m Bool
    glGetEXTTextureArray = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_texture_array")

    -- | Is the <https://www.opengl.org/registry/specs/EXT/texture_array.txt EXT_texture_array> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetEXTTextureArray' in those cases instead.
    gl_EXT_texture_array :: Bool
    gl_EXT_texture_array :: Bool
    gl_EXT_texture_array = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_texture_array" Set String
    extensions
    {-# NOINLINE gl_EXT_texture_array #-}

    -- | Is the <https://www.opengl.org/registry/specs/EXT/texture_buffer_object.txt EXT_texture_buffer_object> extension supported?
    glGetEXTTextureBufferObject :: MonadIO m => m Bool
    glGetEXTTextureBufferObject :: forall (m :: * -> *). MonadIO m => m Bool
    glGetEXTTextureBufferObject = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_texture_buffer_object")

    -- | Is the <https://www.opengl.org/registry/specs/EXT/texture_buffer_object.txt EXT_texture_buffer_object> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetEXTTextureBufferObject' in those cases instead.
    gl_EXT_texture_buffer_object :: Bool
    gl_EXT_texture_buffer_object :: Bool
    gl_EXT_texture_buffer_object = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_texture_buffer_object" Set String
    extensions
    {-# NOINLINE gl_EXT_texture_buffer_object #-}

    -- | Is the <https://www.opengl.org/registry/specs/EXT/texture_compression_latc.txt EXT_texture_compression_latc> extension supported?
    glGetEXTTextureCompressionLATC :: MonadIO m => m Bool
    glGetEXTTextureCompressionLATC :: forall (m :: * -> *). MonadIO m => m Bool
    glGetEXTTextureCompressionLATC = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_texture_compression_latc")

    -- | Is the <https://www.opengl.org/registry/specs/EXT/texture_compression_latc.txt EXT_texture_compression_latc> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetEXTTextureCompressionLATC' in those cases instead.
    gl_EXT_texture_compression_latc :: Bool
    gl_EXT_texture_compression_latc :: Bool
    gl_EXT_texture_compression_latc = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_texture_compression_latc" Set String
    extensions
    {-# NOINLINE gl_EXT_texture_compression_latc #-}

    -- | Is the <https://www.opengl.org/registry/specs/EXT/texture_compression_rgtc.txt EXT_texture_compression_rgtc> extension supported?
    glGetEXTTextureCompressionRGTC :: MonadIO m => m Bool
    glGetEXTTextureCompressionRGTC :: forall (m :: * -> *). MonadIO m => m Bool
    glGetEXTTextureCompressionRGTC = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_texture_compression_rgtc")

    -- | Is the <https://www.opengl.org/registry/specs/EXT/texture_compression_rgtc.txt EXT_texture_compression_rgtc> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetEXTTextureCompressionRGTC' in those cases instead.
    gl_EXT_texture_compression_rgtc :: Bool
    gl_EXT_texture_compression_rgtc :: Bool
    gl_EXT_texture_compression_rgtc = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_texture_compression_rgtc" Set String
    extensions
    {-# NOINLINE gl_EXT_texture_compression_rgtc #-}

    -- | Is the <https://www.opengl.org/registry/specs/EXT/texture_compression_s3tc.txt EXT_texture_compression_s3tc> extension supported?
    glGetEXTTextureCompressionS3TC :: MonadIO m => m Bool
    glGetEXTTextureCompressionS3TC :: forall (m :: * -> *). MonadIO m => m Bool
    glGetEXTTextureCompressionS3TC = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_texture_compression_s3tc")

    -- | Is the <https://www.opengl.org/registry/specs/EXT/texture_compression_s3tc.txt EXT_texture_compression_s3tc> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetEXTTextureCompressionS3TC' in those cases instead.
    gl_EXT_texture_compression_s3tc :: Bool
    gl_EXT_texture_compression_s3tc :: Bool
    gl_EXT_texture_compression_s3tc = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_texture_compression_s3tc" Set String
    extensions
    {-# NOINLINE gl_EXT_texture_compression_s3tc #-}

    -- | Is the <https://www.opengl.org/registry/specs/ARB/texture_cube_map.txt EXT_texture_cube_map> extension supported?
    glGetEXTTextureCubeMap :: MonadIO m => m Bool
    glGetEXTTextureCubeMap :: forall (m :: * -> *). MonadIO m => m Bool
    glGetEXTTextureCubeMap = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_texture_cube_map")

    -- | Is the <https://www.opengl.org/registry/specs/ARB/texture_cube_map.txt EXT_texture_cube_map> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetEXTTextureCubeMap' in those cases instead.
    gl_EXT_texture_cube_map :: Bool
    gl_EXT_texture_cube_map :: Bool
    gl_EXT_texture_cube_map = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_texture_cube_map" Set String
    extensions
    {-# NOINLINE gl_EXT_texture_cube_map #-}

    -- | Is the <https://www.opengl.org/registry/specs/EXT/texture_env_combine.txt EXT_texture_env_combine> extension supported?
    glGetEXTTextureEnvCombine :: MonadIO m => m Bool
    glGetEXTTextureEnvCombine :: forall (m :: * -> *). MonadIO m => m Bool
    glGetEXTTextureEnvCombine = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_texture_env_combine")

    -- | Is the <https://www.opengl.org/registry/specs/EXT/texture_env_combine.txt EXT_texture_env_combine> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetEXTTextureEnvCombine' in those cases instead.
    gl_EXT_texture_env_combine :: Bool
    gl_EXT_texture_env_combine :: Bool
    gl_EXT_texture_env_combine = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_texture_env_combine" Set String
    extensions
    {-# NOINLINE gl_EXT_texture_env_combine #-}

    -- | Is the <https://www.opengl.org/registry/specs/EXT/texture_env_dot3.txt EXT_texture_env_dot3> extension supported?
    glGetEXTTextureEnvDot3 :: MonadIO m => m Bool
    glGetEXTTextureEnvDot3 :: forall (m :: * -> *). MonadIO m => m Bool
    glGetEXTTextureEnvDot3 = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_texture_env_dot3")

    -- | Is the <https://www.opengl.org/registry/specs/EXT/texture_env_dot3.txt EXT_texture_env_dot3> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetEXTTextureEnvDot3' in those cases instead.
    gl_EXT_texture_env_dot3 :: Bool
    gl_EXT_texture_env_dot3 :: Bool
    gl_EXT_texture_env_dot3 = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_texture_env_dot3" Set String
    extensions
    {-# NOINLINE gl_EXT_texture_env_dot3 #-}

    -- | Is the <https://www.opengl.org/registry/specs/EXT/texture_filter_anisotropic.txt EXT_texture_filter_anisotropic> extension supported?
    glGetEXTTextureFilterAnisotropic :: MonadIO m => m Bool
    glGetEXTTextureFilterAnisotropic :: forall (m :: * -> *). MonadIO m => m Bool
    glGetEXTTextureFilterAnisotropic = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_texture_filter_anisotropic")

    -- | Is the <https://www.opengl.org/registry/specs/EXT/texture_filter_anisotropic.txt EXT_texture_filter_anisotropic> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetEXTTextureFilterAnisotropic' in those cases instead.
    gl_EXT_texture_filter_anisotropic :: Bool
    gl_EXT_texture_filter_anisotropic :: Bool
    gl_EXT_texture_filter_anisotropic = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_texture_filter_anisotropic" Set String
    extensions
    {-# NOINLINE gl_EXT_texture_filter_anisotropic #-}

    -- | Is the <https://www.opengl.org/registry/specs/EXT/texture_filter_minmax.txt EXT_texture_filter_minmax> extension supported?
    glGetEXTTextureFilterMinmax :: MonadIO m => m Bool
    glGetEXTTextureFilterMinmax :: forall (m :: * -> *). MonadIO m => m Bool
    glGetEXTTextureFilterMinmax = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_texture_filter_minmax")

    -- | Is the <https://www.opengl.org/registry/specs/EXT/texture_filter_minmax.txt EXT_texture_filter_minmax> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetEXTTextureFilterMinmax' in those cases instead.
    gl_EXT_texture_filter_minmax :: Bool
    gl_EXT_texture_filter_minmax :: Bool
    gl_EXT_texture_filter_minmax = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_texture_filter_minmax" Set String
    extensions
    {-# NOINLINE gl_EXT_texture_filter_minmax #-}

    -- | Is the <https://www.opengl.org/registry/specs/EXT/texture_integer.txt EXT_texture_integer> extension supported?
    glGetEXTTextureInteger :: MonadIO m => m Bool
    glGetEXTTextureInteger :: forall (m :: * -> *). MonadIO m => m Bool
    glGetEXTTextureInteger = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_texture_integer")

    -- | Is the <https://www.opengl.org/registry/specs/EXT/texture_integer.txt EXT_texture_integer> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetEXTTextureInteger' in those cases instead.
    gl_EXT_texture_integer :: Bool
    gl_EXT_texture_integer :: Bool
    gl_EXT_texture_integer = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_texture_integer" Set String
    extensions
    {-# NOINLINE gl_EXT_texture_integer #-}

    -- | Is the <https://www.opengl.org/registry/specs/EXT/texture_lod_bias.txt EXT_texture_lod_bias> extension supported?
    glGetEXTTextureLODBias :: MonadIO m => m Bool
    glGetEXTTextureLODBias :: forall (m :: * -> *). MonadIO m => m Bool
    glGetEXTTextureLODBias = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_texture_lod_bias")

    -- | Is the <https://www.opengl.org/registry/specs/EXT/texture_lod_bias.txt EXT_texture_lod_bias> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetEXTTextureLODBias' in those cases instead.
    gl_EXT_texture_lod_bias :: Bool
    gl_EXT_texture_lod_bias :: Bool
    gl_EXT_texture_lod_bias = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_texture_lod_bias" Set String
    extensions
    {-# NOINLINE gl_EXT_texture_lod_bias #-}

    -- | Is the <https://www.opengl.org/registry/specs/EXT/texture_mirror_clamp.txt EXT_texture_mirror_clamp> extension supported?
    glGetEXTTextureMirrorClamp :: MonadIO m => m Bool
    glGetEXTTextureMirrorClamp :: forall (m :: * -> *). MonadIO m => m Bool
    glGetEXTTextureMirrorClamp = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_texture_mirror_clamp")

    -- | Is the <https://www.opengl.org/registry/specs/EXT/texture_mirror_clamp.txt EXT_texture_mirror_clamp> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetEXTTextureMirrorClamp' in those cases instead.
    gl_EXT_texture_mirror_clamp :: Bool
    gl_EXT_texture_mirror_clamp :: Bool
    gl_EXT_texture_mirror_clamp = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_texture_mirror_clamp" Set String
    extensions
    {-# NOINLINE gl_EXT_texture_mirror_clamp #-}

    -- | Is the <https://www.opengl.org/registry/specs/EXT/texture_object.txt EXT_texture_object> extension supported?
    glGetEXTTextureObject :: MonadIO m => m Bool
    glGetEXTTextureObject :: forall (m :: * -> *). MonadIO m => m Bool
    glGetEXTTextureObject = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_texture_object")

    -- | Is the <https://www.opengl.org/registry/specs/EXT/texture_object.txt EXT_texture_object> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetEXTTextureObject' in those cases instead.
    gl_EXT_texture_object :: Bool
    gl_EXT_texture_object :: Bool
    gl_EXT_texture_object = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_texture_object" Set String
    extensions
    {-# NOINLINE gl_EXT_texture_object #-}

    -- | Is the <https://www.opengl.org/registry/specs/EXT/texture_perturb_normal.txt EXT_texture_perturb_normal> extension supported?
    glGetEXTTexturePerturbNormal :: MonadIO m => m Bool
    glGetEXTTexturePerturbNormal :: forall (m :: * -> *). MonadIO m => m Bool
    glGetEXTTexturePerturbNormal = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_texture_perturb_normal")

    -- | Is the <https://www.opengl.org/registry/specs/EXT/texture_perturb_normal.txt EXT_texture_perturb_normal> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetEXTTexturePerturbNormal' in those cases instead.
    gl_EXT_texture_perturb_normal :: Bool
    gl_EXT_texture_perturb_normal :: Bool
    gl_EXT_texture_perturb_normal = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_texture_perturb_normal" Set String
    extensions
    {-# NOINLINE gl_EXT_texture_perturb_normal #-}

    -- | Is the <https://www.opengl.org/registry/specs/EXT/texture_sRGB.txt EXT_texture_sRGB> extension supported?
    glGetEXTTextureSRGB :: MonadIO m => m Bool
    glGetEXTTextureSRGB :: forall (m :: * -> *). MonadIO m => m Bool
    glGetEXTTextureSRGB = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_texture_sRGB")

    -- | Is the <https://www.opengl.org/registry/specs/EXT/texture_sRGB.txt EXT_texture_sRGB> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetEXTTextureSRGB' in those cases instead.
    gl_EXT_texture_sRGB :: Bool
    gl_EXT_texture_sRGB :: Bool
    gl_EXT_texture_sRGB = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_texture_sRGB" Set String
    extensions
    {-# NOINLINE gl_EXT_texture_sRGB #-}

    -- | Is the <https://www.opengl.org/registry/specs/EXT/texture_sRGB_R8.txt EXT_texture_sRGB_R8> extension supported?
    glGetEXTTextureSRGBR8 :: MonadIO m => m Bool
    glGetEXTTextureSRGBR8 :: forall (m :: * -> *). MonadIO m => m Bool
    glGetEXTTextureSRGBR8 = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_texture_sRGB_R8")

    -- | Is the <https://www.opengl.org/registry/specs/EXT/texture_sRGB_R8.txt EXT_texture_sRGB_R8> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetEXTTextureSRGBR8' in those cases instead.
    gl_EXT_texture_sRGB_R8 :: Bool
    gl_EXT_texture_sRGB_R8 :: Bool
    gl_EXT_texture_sRGB_R8 = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_texture_sRGB_R8" Set String
    extensions
    {-# NOINLINE gl_EXT_texture_sRGB_R8 #-}

    -- | Is the <https://www.opengl.org/registry/specs/EXT/texture_sRGB_decode.txt EXT_texture_sRGB_decode> extension supported?
    glGetEXTTextureSRGBDecode :: MonadIO m => m Bool
    glGetEXTTextureSRGBDecode :: forall (m :: * -> *). MonadIO m => m Bool
    glGetEXTTextureSRGBDecode = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_texture_sRGB_decode")

    -- | Is the <https://www.opengl.org/registry/specs/EXT/texture_sRGB_decode.txt EXT_texture_sRGB_decode> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetEXTTextureSRGBDecode' in those cases instead.
    gl_EXT_texture_sRGB_decode :: Bool
    gl_EXT_texture_sRGB_decode :: Bool
    gl_EXT_texture_sRGB_decode = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_texture_sRGB_decode" Set String
    extensions
    {-# NOINLINE gl_EXT_texture_sRGB_decode #-}

    -- | Is the <https://www.opengl.org/registry/specs/EXT/texture_shared_exponent.txt EXT_texture_shared_exponent> extension supported?
    glGetEXTTextureSharedExponent :: MonadIO m => m Bool
    glGetEXTTextureSharedExponent :: forall (m :: * -> *). MonadIO m => m Bool
    glGetEXTTextureSharedExponent = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_texture_shared_exponent")

    -- | Is the <https://www.opengl.org/registry/specs/EXT/texture_shared_exponent.txt EXT_texture_shared_exponent> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetEXTTextureSharedExponent' in those cases instead.
    gl_EXT_texture_shared_exponent :: Bool
    gl_EXT_texture_shared_exponent :: Bool
    gl_EXT_texture_shared_exponent = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_texture_shared_exponent" Set String
    extensions
    {-# NOINLINE gl_EXT_texture_shared_exponent #-}

    -- | Is the <https://www.opengl.org/registry/specs/EXT/texture_snorm.txt EXT_texture_snorm> extension supported?
    glGetEXTTextureSNorm :: MonadIO m => m Bool
    glGetEXTTextureSNorm :: forall (m :: * -> *). MonadIO m => m Bool
    glGetEXTTextureSNorm = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_texture_snorm")

    -- | Is the <https://www.opengl.org/registry/specs/EXT/texture_snorm.txt EXT_texture_snorm> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetEXTTextureSNorm' in those cases instead.
    gl_EXT_texture_snorm :: Bool
    gl_EXT_texture_snorm :: Bool
    gl_EXT_texture_snorm = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_texture_snorm" Set String
    extensions
    {-# NOINLINE gl_EXT_texture_snorm #-}

    -- | Is the <https://www.opengl.org/registry/specs/EXT/texture_swizzle.txt EXT_texture_swizzle> extension supported?
    glGetEXTTextureSwizzle :: MonadIO m => m Bool
    glGetEXTTextureSwizzle :: forall (m :: * -> *). MonadIO m => m Bool
    glGetEXTTextureSwizzle = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_texture_swizzle")

    -- | Is the <https://www.opengl.org/registry/specs/EXT/texture_swizzle.txt EXT_texture_swizzle> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetEXTTextureSwizzle' in those cases instead.
    gl_EXT_texture_swizzle :: Bool
    gl_EXT_texture_swizzle :: Bool
    gl_EXT_texture_swizzle = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_texture_swizzle" Set String
    extensions
    {-# NOINLINE gl_EXT_texture_swizzle #-}

    -- | Is the <https://www.opengl.org/registry/specs/EXT/timer_query.txt EXT_timer_query> extension supported?
    glGetEXTTimerQuery :: MonadIO m => m Bool
    glGetEXTTimerQuery :: forall (m :: * -> *). MonadIO m => m Bool
    glGetEXTTimerQuery = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_timer_query")

    -- | Is the <https://www.opengl.org/registry/specs/EXT/timer_query.txt EXT_timer_query> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetEXTTimerQuery' in those cases instead.
    gl_EXT_timer_query :: Bool
    gl_EXT_timer_query :: Bool
    gl_EXT_timer_query = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_timer_query" Set String
    extensions
    {-# NOINLINE gl_EXT_timer_query #-}

    -- | Is the <https://www.opengl.org/registry/specs/EXT/transform_feedback.txt EXT_transform_feedback> extension supported?
    glGetEXTTransformFeedback :: MonadIO m => m Bool
    glGetEXTTransformFeedback :: forall (m :: * -> *). MonadIO m => m Bool
    glGetEXTTransformFeedback = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_transform_feedback")

    -- | Is the <https://www.opengl.org/registry/specs/EXT/transform_feedback.txt EXT_transform_feedback> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetEXTTransformFeedback' in those cases instead.
    gl_EXT_transform_feedback :: Bool
    gl_EXT_transform_feedback :: Bool
    gl_EXT_transform_feedback = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_transform_feedback" Set String
    extensions
    {-# NOINLINE gl_EXT_transform_feedback #-}

    -- | Is the <https://www.opengl.org/registry/specs/EXT/vertex_array.txt EXT_vertex_array> extension supported?
    glGetEXTVertexArray :: MonadIO m => m Bool
    glGetEXTVertexArray :: forall (m :: * -> *). MonadIO m => m Bool
    glGetEXTVertexArray = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_vertex_array")

    -- | Is the <https://www.opengl.org/registry/specs/EXT/vertex_array.txt EXT_vertex_array> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetEXTVertexArray' in those cases instead.
    gl_EXT_vertex_array :: Bool
    gl_EXT_vertex_array :: Bool
    gl_EXT_vertex_array = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_vertex_array" Set String
    extensions
    {-# NOINLINE gl_EXT_vertex_array #-}

    -- | Is the <https://www.opengl.org/registry/specs/EXT/vertex_array_bgra.txt EXT_vertex_array_bgra> extension supported?
    glGetEXTVertexArrayBGRA :: MonadIO m => m Bool
    glGetEXTVertexArrayBGRA :: forall (m :: * -> *). MonadIO m => m Bool
    glGetEXTVertexArrayBGRA = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_vertex_array_bgra")

    -- | Is the <https://www.opengl.org/registry/specs/EXT/vertex_array_bgra.txt EXT_vertex_array_bgra> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetEXTVertexArrayBGRA' in those cases instead.
    gl_EXT_vertex_array_bgra :: Bool
    gl_EXT_vertex_array_bgra :: Bool
    gl_EXT_vertex_array_bgra = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_vertex_array_bgra" Set String
    extensions
    {-# NOINLINE gl_EXT_vertex_array_bgra #-}

    -- | Is the <https://www.opengl.org/registry/specs/EXT/vertex_attrib_64bit.txt EXT_vertex_attrib_64bit> extension supported?
    glGetEXTVertexAttrib64Bit :: MonadIO m => m Bool
    glGetEXTVertexAttrib64Bit :: forall (m :: * -> *). MonadIO m => m Bool
    glGetEXTVertexAttrib64Bit = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_vertex_attrib_64bit")

    -- | Is the <https://www.opengl.org/registry/specs/EXT/vertex_attrib_64bit.txt EXT_vertex_attrib_64bit> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetEXTVertexAttrib64Bit' in those cases instead.
    gl_EXT_vertex_attrib_64bit :: Bool
    gl_EXT_vertex_attrib_64bit :: Bool
    gl_EXT_vertex_attrib_64bit = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_vertex_attrib_64bit" Set String
    extensions
    {-# NOINLINE gl_EXT_vertex_attrib_64bit #-}

    -- | Is the <https://www.opengl.org/registry/specs/EXT/vertex_shader.txt EXT_vertex_shader> extension supported?
    glGetEXTVertexShader :: MonadIO m => m Bool
    glGetEXTVertexShader :: forall (m :: * -> *). MonadIO m => m Bool
    glGetEXTVertexShader = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_vertex_shader")

    -- | Is the <https://www.opengl.org/registry/specs/EXT/vertex_shader.txt EXT_vertex_shader> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetEXTVertexShader' in those cases instead.
    gl_EXT_vertex_shader :: Bool
    gl_EXT_vertex_shader :: Bool
    gl_EXT_vertex_shader = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_vertex_shader" Set String
    extensions
    {-# NOINLINE gl_EXT_vertex_shader #-}

    -- | Is the <https://www.opengl.org/registry/specs/EXT/vertex_weighting.txt EXT_vertex_weighting> extension supported?
    glGetEXTVertexWeighting :: MonadIO m => m Bool
    glGetEXTVertexWeighting :: forall (m :: * -> *). MonadIO m => m Bool
    glGetEXTVertexWeighting = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_vertex_weighting")

    -- | Is the <https://www.opengl.org/registry/specs/EXT/vertex_weighting.txt EXT_vertex_weighting> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetEXTVertexWeighting' in those cases instead.
    gl_EXT_vertex_weighting :: Bool
    gl_EXT_vertex_weighting :: Bool
    gl_EXT_vertex_weighting = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_vertex_weighting" Set String
    extensions
    {-# NOINLINE gl_EXT_vertex_weighting #-}

    -- | Is the <https://www.opengl.org/registry/specs/EXT/win32_keyed_mutex.txt EXT_win32_keyed_mutex> extension supported?
    glGetEXTWin32KeyedMutex :: MonadIO m => m Bool
    glGetEXTWin32KeyedMutex :: forall (m :: * -> *). MonadIO m => m Bool
    glGetEXTWin32KeyedMutex = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_win32_keyed_mutex")

    -- | Is the <https://www.opengl.org/registry/specs/EXT/win32_keyed_mutex.txt EXT_win32_keyed_mutex> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetEXTWin32KeyedMutex' in those cases instead.
    gl_EXT_win32_keyed_mutex :: Bool
    gl_EXT_win32_keyed_mutex :: Bool
    gl_EXT_win32_keyed_mutex = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_win32_keyed_mutex" Set String
    extensions
    {-# NOINLINE gl_EXT_win32_keyed_mutex #-}

    -- | Is the <https://www.opengl.org/registry/specs/EXT/window_rectangles.txt EXT_window_rectangles> extension supported?
    glGetEXTWindowRectangles :: MonadIO m => m Bool
    glGetEXTWindowRectangles :: forall (m :: * -> *). MonadIO m => m Bool
    glGetEXTWindowRectangles = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_window_rectangles")

    -- | Is the <https://www.opengl.org/registry/specs/EXT/window_rectangles.txt EXT_window_rectangles> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetEXTWindowRectangles' in those cases instead.
    gl_EXT_window_rectangles :: Bool
    gl_EXT_window_rectangles :: Bool
    gl_EXT_window_rectangles = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_window_rectangles" Set String
    extensions
    {-# NOINLINE gl_EXT_window_rectangles #-}

    -- | Is the <https://www.opengl.org/registry/specs/EXT/x11_sync_object.txt EXT_x11_sync_object> extension supported?
    glGetEXTX11SyncObject :: MonadIO m => m Bool
    glGetEXTX11SyncObject :: forall (m :: * -> *). MonadIO m => m Bool
    glGetEXTX11SyncObject = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_x11_sync_object")

    -- | Is the <https://www.opengl.org/registry/specs/EXT/x11_sync_object.txt EXT_x11_sync_object> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetEXTX11SyncObject' in those cases instead.
    gl_EXT_x11_sync_object :: Bool
    gl_EXT_x11_sync_object :: Bool
    gl_EXT_x11_sync_object = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_EXT_x11_sync_object" Set String
    extensions
    {-# NOINLINE gl_EXT_x11_sync_object #-}

    -- | Is the <https://www.opengl.org/registry/specs/GREMEDY/frame_terminator.txt GREMEDY_frame_terminator> extension supported?
    glGetGREMEDYFrameTerminator :: MonadIO m => m Bool
    glGetGREMEDYFrameTerminator :: forall (m :: * -> *). MonadIO m => m Bool
    glGetGREMEDYFrameTerminator = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_GREMEDY_frame_terminator")

    -- | Is the <https://www.opengl.org/registry/specs/GREMEDY/frame_terminator.txt GREMEDY_frame_terminator> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetGREMEDYFrameTerminator' in those cases instead.
    gl_GREMEDY_frame_terminator :: Bool
    gl_GREMEDY_frame_terminator :: Bool
    gl_GREMEDY_frame_terminator = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_GREMEDY_frame_terminator" Set String
    extensions
    {-# NOINLINE gl_GREMEDY_frame_terminator #-}

    -- | Is the <https://www.opengl.org/registry/specs/GREMEDY/string_marker.txt GREMEDY_string_marker> extension supported?
    glGetGREMEDYStringMarker :: MonadIO m => m Bool
    glGetGREMEDYStringMarker :: forall (m :: * -> *). MonadIO m => m Bool
    glGetGREMEDYStringMarker = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_GREMEDY_string_marker")

    -- | Is the <https://www.opengl.org/registry/specs/GREMEDY/string_marker.txt GREMEDY_string_marker> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetGREMEDYStringMarker' in those cases instead.
    gl_GREMEDY_string_marker :: Bool
    gl_GREMEDY_string_marker :: Bool
    gl_GREMEDY_string_marker = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_GREMEDY_string_marker" Set String
    extensions
    {-# NOINLINE gl_GREMEDY_string_marker #-}

    -- | Is the <https://www.opengl.org/registry/specs/HP/convolution_border_modes.txt HP_convolution_border_modes> extension supported?
    glGetHPConvolutionBorderModes :: MonadIO m => m Bool
    glGetHPConvolutionBorderModes :: forall (m :: * -> *). MonadIO m => m Bool
    glGetHPConvolutionBorderModes = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_HP_convolution_border_modes")

    -- | Is the <https://www.opengl.org/registry/specs/HP/convolution_border_modes.txt HP_convolution_border_modes> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetHPConvolutionBorderModes' in those cases instead.
    gl_HP_convolution_border_modes :: Bool
    gl_HP_convolution_border_modes :: Bool
    gl_HP_convolution_border_modes = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_HP_convolution_border_modes" Set String
    extensions
    {-# NOINLINE gl_HP_convolution_border_modes #-}

    -- | Is the <https://www.opengl.org/registry/specs/HP/image_transform.txt HP_image_transform> extension supported?
    glGetHPImageTransform :: MonadIO m => m Bool
    glGetHPImageTransform :: forall (m :: * -> *). MonadIO m => m Bool
    glGetHPImageTransform = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_HP_image_transform")

    -- | Is the <https://www.opengl.org/registry/specs/HP/image_transform.txt HP_image_transform> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetHPImageTransform' in those cases instead.
    gl_HP_image_transform :: Bool
    gl_HP_image_transform :: Bool
    gl_HP_image_transform = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_HP_image_transform" Set String
    extensions
    {-# NOINLINE gl_HP_image_transform #-}

    -- | Is the <https://www.opengl.org/registry/specs/HP/occlusion_test.txt HP_occlusion_test> extension supported?
    glGetHPOcclusionTest :: MonadIO m => m Bool
    glGetHPOcclusionTest :: forall (m :: * -> *). MonadIO m => m Bool
    glGetHPOcclusionTest = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_HP_occlusion_test")

    -- | Is the <https://www.opengl.org/registry/specs/HP/occlusion_test.txt HP_occlusion_test> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetHPOcclusionTest' in those cases instead.
    gl_HP_occlusion_test :: Bool
    gl_HP_occlusion_test :: Bool
    gl_HP_occlusion_test = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_HP_occlusion_test" Set String
    extensions
    {-# NOINLINE gl_HP_occlusion_test #-}

    -- | Is the <https://www.opengl.org/registry/specs/HP/texture_lighting.txt HP_texture_lighting> extension supported?
    glGetHPTextureLighting :: MonadIO m => m Bool
    glGetHPTextureLighting :: forall (m :: * -> *). MonadIO m => m Bool
    glGetHPTextureLighting = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_HP_texture_lighting")

    -- | Is the <https://www.opengl.org/registry/specs/HP/texture_lighting.txt HP_texture_lighting> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetHPTextureLighting' in those cases instead.
    gl_HP_texture_lighting :: Bool
    gl_HP_texture_lighting :: Bool
    gl_HP_texture_lighting = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_HP_texture_lighting" Set String
    extensions
    {-# NOINLINE gl_HP_texture_lighting #-}

    -- | Is the <https://www.opengl.org/registry/specs/IBM/cull_vertex.txt IBM_cull_vertex> extension supported?
    glGetIBMCullVertex :: MonadIO m => m Bool
    glGetIBMCullVertex :: forall (m :: * -> *). MonadIO m => m Bool
    glGetIBMCullVertex = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_IBM_cull_vertex")

    -- | Is the <https://www.opengl.org/registry/specs/IBM/cull_vertex.txt IBM_cull_vertex> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetIBMCullVertex' in those cases instead.
    gl_IBM_cull_vertex :: Bool
    gl_IBM_cull_vertex :: Bool
    gl_IBM_cull_vertex = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_IBM_cull_vertex" Set String
    extensions
    {-# NOINLINE gl_IBM_cull_vertex #-}

    -- | Is the <https://www.opengl.org/registry/specs/IBM/multimode_draw_arrays.txt IBM_multimode_draw_arrays> extension supported?
    glGetIBMMultimodeDrawArrays :: MonadIO m => m Bool
    glGetIBMMultimodeDrawArrays :: forall (m :: * -> *). MonadIO m => m Bool
    glGetIBMMultimodeDrawArrays = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_IBM_multimode_draw_arrays")

    -- | Is the <https://www.opengl.org/registry/specs/IBM/multimode_draw_arrays.txt IBM_multimode_draw_arrays> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetIBMMultimodeDrawArrays' in those cases instead.
    gl_IBM_multimode_draw_arrays :: Bool
    gl_IBM_multimode_draw_arrays :: Bool
    gl_IBM_multimode_draw_arrays = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_IBM_multimode_draw_arrays" Set String
    extensions
    {-# NOINLINE gl_IBM_multimode_draw_arrays #-}

    -- | Is the <https://www.opengl.org/registry/specs/IBM/rasterpos_clip.txt IBM_rasterpos_clip> extension supported?
    glGetIBMRasterposClip :: MonadIO m => m Bool
    glGetIBMRasterposClip :: forall (m :: * -> *). MonadIO m => m Bool
    glGetIBMRasterposClip = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_IBM_rasterpos_clip")

    -- | Is the <https://www.opengl.org/registry/specs/IBM/rasterpos_clip.txt IBM_rasterpos_clip> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetIBMRasterposClip' in those cases instead.
    gl_IBM_rasterpos_clip :: Bool
    gl_IBM_rasterpos_clip :: Bool
    gl_IBM_rasterpos_clip = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_IBM_rasterpos_clip" Set String
    extensions
    {-# NOINLINE gl_IBM_rasterpos_clip #-}

    -- | Is the <https://www.opengl.org/registry/specs/IBM/static_data.txt IBM_static_data> extension supported?
    glGetIBMStaticData :: MonadIO m => m Bool
    glGetIBMStaticData :: forall (m :: * -> *). MonadIO m => m Bool
    glGetIBMStaticData = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_IBM_static_data")

    -- | Is the <https://www.opengl.org/registry/specs/IBM/static_data.txt IBM_static_data> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetIBMStaticData' in those cases instead.
    gl_IBM_static_data :: Bool
    gl_IBM_static_data :: Bool
    gl_IBM_static_data = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_IBM_static_data" Set String
    extensions
    {-# NOINLINE gl_IBM_static_data #-}

    -- | Is the <https://www.opengl.org/registry/specs/IBM/texture_mirrored_repeat.txt IBM_texture_mirrored_repeat> extension supported?
    glGetIBMTextureMirroredRepeat :: MonadIO m => m Bool
    glGetIBMTextureMirroredRepeat :: forall (m :: * -> *). MonadIO m => m Bool
    glGetIBMTextureMirroredRepeat = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_IBM_texture_mirrored_repeat")

    -- | Is the <https://www.opengl.org/registry/specs/IBM/texture_mirrored_repeat.txt IBM_texture_mirrored_repeat> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetIBMTextureMirroredRepeat' in those cases instead.
    gl_IBM_texture_mirrored_repeat :: Bool
    gl_IBM_texture_mirrored_repeat :: Bool
    gl_IBM_texture_mirrored_repeat = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_IBM_texture_mirrored_repeat" Set String
    extensions
    {-# NOINLINE gl_IBM_texture_mirrored_repeat #-}

    -- | Is the <https://www.opengl.org/registry/specs/IBM/vertex_array_lists.txt IBM_vertex_array_lists> extension supported?
    glGetIBMVertexArrayLists :: MonadIO m => m Bool
    glGetIBMVertexArrayLists :: forall (m :: * -> *). MonadIO m => m Bool
    glGetIBMVertexArrayLists = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_IBM_vertex_array_lists")

    -- | Is the <https://www.opengl.org/registry/specs/IBM/vertex_array_lists.txt IBM_vertex_array_lists> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetIBMVertexArrayLists' in those cases instead.
    gl_IBM_vertex_array_lists :: Bool
    gl_IBM_vertex_array_lists :: Bool
    gl_IBM_vertex_array_lists = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_IBM_vertex_array_lists" Set String
    extensions
    {-# NOINLINE gl_IBM_vertex_array_lists #-}

    -- | Is the <https://www.opengl.org/registry/specs/EXT/blend_func_separate.txt INGR_blend_func_separate> extension supported?
    glGetINGRBlendFuncSeparate :: MonadIO m => m Bool
    glGetINGRBlendFuncSeparate :: forall (m :: * -> *). MonadIO m => m Bool
    glGetINGRBlendFuncSeparate = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_INGR_blend_func_separate")

    -- | Is the <https://www.opengl.org/registry/specs/EXT/blend_func_separate.txt INGR_blend_func_separate> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetINGRBlendFuncSeparate' in those cases instead.
    gl_INGR_blend_func_separate :: Bool
    gl_INGR_blend_func_separate :: Bool
    gl_INGR_blend_func_separate = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_INGR_blend_func_separate" Set String
    extensions
    {-# NOINLINE gl_INGR_blend_func_separate #-}

    -- | Is the <https://www.opengl.org/registry/specs/INGR/color_clamp.txt INGR_color_clamp> extension supported?
    glGetINGRColorClamp :: MonadIO m => m Bool
    glGetINGRColorClamp :: forall (m :: * -> *). MonadIO m => m Bool
    glGetINGRColorClamp = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_INGR_color_clamp")

    -- | Is the <https://www.opengl.org/registry/specs/INGR/color_clamp.txt INGR_color_clamp> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetINGRColorClamp' in those cases instead.
    gl_INGR_color_clamp :: Bool
    gl_INGR_color_clamp :: Bool
    gl_INGR_color_clamp = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_INGR_color_clamp" Set String
    extensions
    {-# NOINLINE gl_INGR_color_clamp #-}

    -- | Is the <https://www.opengl.org/registry/specs/INGR/interlace_read.txt INGR_interlace_read> extension supported?
    glGetINGRInterlaceRead :: MonadIO m => m Bool
    glGetINGRInterlaceRead :: forall (m :: * -> *). MonadIO m => m Bool
    glGetINGRInterlaceRead = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_INGR_interlace_read")

    -- | Is the <https://www.opengl.org/registry/specs/INGR/interlace_read.txt INGR_interlace_read> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetINGRInterlaceRead' in those cases instead.
    gl_INGR_interlace_read :: Bool
    gl_INGR_interlace_read :: Bool
    gl_INGR_interlace_read = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_INGR_interlace_read" Set String
    extensions
    {-# NOINLINE gl_INGR_interlace_read #-}

    -- | Is the <https://www.opengl.org/registry/specs/INTEL/blackhole_render.txt INTEL_blackhole_render> extension supported?
    glGetINTELBlackholeRender :: MonadIO m => m Bool
    glGetINTELBlackholeRender :: forall (m :: * -> *). MonadIO m => m Bool
    glGetINTELBlackholeRender = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_INTEL_blackhole_render")

    -- | Is the <https://www.opengl.org/registry/specs/INTEL/blackhole_render.txt INTEL_blackhole_render> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetINTELBlackholeRender' in those cases instead.
    gl_INTEL_blackhole_render :: Bool
    gl_INTEL_blackhole_render :: Bool
    gl_INTEL_blackhole_render = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_INTEL_blackhole_render" Set String
    extensions
    {-# NOINLINE gl_INTEL_blackhole_render #-}

    -- | Is the <https://www.opengl.org/registry/specs/INTEL/conservative_rasterization.txt INTEL_conservative_rasterization> extension supported?
    glGetINTELConservativeRasterization :: MonadIO m => m Bool
    glGetINTELConservativeRasterization :: forall (m :: * -> *). MonadIO m => m Bool
    glGetINTELConservativeRasterization = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_INTEL_conservative_rasterization")

    -- | Is the <https://www.opengl.org/registry/specs/INTEL/conservative_rasterization.txt INTEL_conservative_rasterization> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetINTELConservativeRasterization' in those cases instead.
    gl_INTEL_conservative_rasterization :: Bool
    gl_INTEL_conservative_rasterization :: Bool
    gl_INTEL_conservative_rasterization = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_INTEL_conservative_rasterization" Set String
    extensions
    {-# NOINLINE gl_INTEL_conservative_rasterization #-}

    -- | Is the <https://www.opengl.org/registry/specs/INTEL/framebuffer_CMAA.txt INTEL_framebuffer_CMAA> extension supported?
    glGetINTELFramebufferCmaa :: MonadIO m => m Bool
    glGetINTELFramebufferCmaa :: forall (m :: * -> *). MonadIO m => m Bool
    glGetINTELFramebufferCmaa = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_INTEL_framebuffer_CMAA")

    -- | Is the <https://www.opengl.org/registry/specs/INTEL/framebuffer_CMAA.txt INTEL_framebuffer_CMAA> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetINTELFramebufferCmaa' in those cases instead.
    gl_INTEL_framebuffer_CMAA :: Bool
    gl_INTEL_framebuffer_CMAA :: Bool
    gl_INTEL_framebuffer_CMAA = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_INTEL_framebuffer_CMAA" Set String
    extensions
    {-# NOINLINE gl_INTEL_framebuffer_CMAA #-}

    -- | Is the <https://www.opengl.org/registry/specs/INTEL/map_texture.txt INTEL_map_texture> extension supported?
    glGetINTELMapTexture :: MonadIO m => m Bool
    glGetINTELMapTexture :: forall (m :: * -> *). MonadIO m => m Bool
    glGetINTELMapTexture = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_INTEL_map_texture")

    -- | Is the <https://www.opengl.org/registry/specs/INTEL/map_texture.txt INTEL_map_texture> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetINTELMapTexture' in those cases instead.
    gl_INTEL_map_texture :: Bool
    gl_INTEL_map_texture :: Bool
    gl_INTEL_map_texture = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_INTEL_map_texture" Set String
    extensions
    {-# NOINLINE gl_INTEL_map_texture #-}

    -- | Is the <https://www.opengl.org/registry/specs/INTEL/parallel_arrays.txt INTEL_parallel_arrays> extension supported?
    glGetINTELParallelArrays :: MonadIO m => m Bool
    glGetINTELParallelArrays :: forall (m :: * -> *). MonadIO m => m Bool
    glGetINTELParallelArrays = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_INTEL_parallel_arrays")

    -- | Is the <https://www.opengl.org/registry/specs/INTEL/parallel_arrays.txt INTEL_parallel_arrays> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetINTELParallelArrays' in those cases instead.
    gl_INTEL_parallel_arrays :: Bool
    gl_INTEL_parallel_arrays :: Bool
    gl_INTEL_parallel_arrays = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_INTEL_parallel_arrays" Set String
    extensions
    {-# NOINLINE gl_INTEL_parallel_arrays #-}

    -- | Is the <https://www.opengl.org/registry/specs/INTEL/performance_query.txt INTEL_performance_query> extension supported?
    glGetINTELPerformanceQuery :: MonadIO m => m Bool
    glGetINTELPerformanceQuery :: forall (m :: * -> *). MonadIO m => m Bool
    glGetINTELPerformanceQuery = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_INTEL_performance_query")

    -- | Is the <https://www.opengl.org/registry/specs/INTEL/performance_query.txt INTEL_performance_query> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetINTELPerformanceQuery' in those cases instead.
    gl_INTEL_performance_query :: Bool
    gl_INTEL_performance_query :: Bool
    gl_INTEL_performance_query = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_INTEL_performance_query" Set String
    extensions
    {-# NOINLINE gl_INTEL_performance_query #-}

    -- | Is the <https://www.opengl.org/registry/specs/KHR/blend_equation_advanced.txt KHR_blend_equation_advanced> extension supported?
    glGetKHRBlendEquationAdvanced :: MonadIO m => m Bool
    glGetKHRBlendEquationAdvanced :: forall (m :: * -> *). MonadIO m => m Bool
    glGetKHRBlendEquationAdvanced = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_KHR_blend_equation_advanced")

    -- | Is the <https://www.opengl.org/registry/specs/KHR/blend_equation_advanced.txt KHR_blend_equation_advanced> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetKHRBlendEquationAdvanced' in those cases instead.
    gl_KHR_blend_equation_advanced :: Bool
    gl_KHR_blend_equation_advanced :: Bool
    gl_KHR_blend_equation_advanced = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_KHR_blend_equation_advanced" Set String
    extensions
    {-# NOINLINE gl_KHR_blend_equation_advanced #-}

    -- | Is the <https://www.opengl.org/registry/specs/KHR/blend_equation_advanced.txt KHR_blend_equation_advanced_coherent> extension supported?
    glGetKHRBlendEquationAdvancedCoherent :: MonadIO m => m Bool
    glGetKHRBlendEquationAdvancedCoherent :: forall (m :: * -> *). MonadIO m => m Bool
    glGetKHRBlendEquationAdvancedCoherent = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_KHR_blend_equation_advanced_coherent")

    -- | Is the <https://www.opengl.org/registry/specs/KHR/blend_equation_advanced.txt KHR_blend_equation_advanced_coherent> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetKHRBlendEquationAdvancedCoherent' in those cases instead.
    gl_KHR_blend_equation_advanced_coherent :: Bool
    gl_KHR_blend_equation_advanced_coherent :: Bool
    gl_KHR_blend_equation_advanced_coherent = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_KHR_blend_equation_advanced_coherent" Set String
    extensions
    {-# NOINLINE gl_KHR_blend_equation_advanced_coherent #-}

    -- | Is the <https://www.opengl.org/registry/specs/KHR/context_flush_control.txt KHR_context_flush_control> extension supported?
    glGetKHRContextFlushControl :: MonadIO m => m Bool
    glGetKHRContextFlushControl :: forall (m :: * -> *). MonadIO m => m Bool
    glGetKHRContextFlushControl = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_KHR_context_flush_control")

    -- | Is the <https://www.opengl.org/registry/specs/KHR/context_flush_control.txt KHR_context_flush_control> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetKHRContextFlushControl' in those cases instead.
    gl_KHR_context_flush_control :: Bool
    gl_KHR_context_flush_control :: Bool
    gl_KHR_context_flush_control = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_KHR_context_flush_control" Set String
    extensions
    {-# NOINLINE gl_KHR_context_flush_control #-}

    -- | Is the <https://www.opengl.org/registry/specs/KHR/debug.txt KHR_debug> extension supported?
    glGetKHRDebug :: MonadIO m => m Bool
    glGetKHRDebug :: forall (m :: * -> *). MonadIO m => m Bool
    glGetKHRDebug = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_KHR_debug")

    -- | Is the <https://www.opengl.org/registry/specs/KHR/debug.txt KHR_debug> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetKHRDebug' in those cases instead.
    gl_KHR_debug :: Bool
    gl_KHR_debug :: Bool
    gl_KHR_debug = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_KHR_debug" Set String
    extensions
    {-# NOINLINE gl_KHR_debug #-}

    -- | Is the <https://www.opengl.org/registry/specs/KHR/no_error.txt KHR_no_error> extension supported?
    glGetKHRNoError :: MonadIO m => m Bool
    glGetKHRNoError :: forall (m :: * -> *). MonadIO m => m Bool
    glGetKHRNoError = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_KHR_no_error")

    -- | Is the <https://www.opengl.org/registry/specs/KHR/no_error.txt KHR_no_error> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetKHRNoError' in those cases instead.
    gl_KHR_no_error :: Bool
    gl_KHR_no_error :: Bool
    gl_KHR_no_error = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_KHR_no_error" Set String
    extensions
    {-# NOINLINE gl_KHR_no_error #-}

    -- | Is the <https://www.opengl.org/registry/specs/KHR/parallel_shader_compile.txt KHR_parallel_shader_compile> extension supported?
    glGetKHRParallelShaderCompile :: MonadIO m => m Bool
    glGetKHRParallelShaderCompile :: forall (m :: * -> *). MonadIO m => m Bool
    glGetKHRParallelShaderCompile = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_KHR_parallel_shader_compile")

    -- | Is the <https://www.opengl.org/registry/specs/KHR/parallel_shader_compile.txt KHR_parallel_shader_compile> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetKHRParallelShaderCompile' in those cases instead.
    gl_KHR_parallel_shader_compile :: Bool
    gl_KHR_parallel_shader_compile :: Bool
    gl_KHR_parallel_shader_compile = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_KHR_parallel_shader_compile" Set String
    extensions
    {-# NOINLINE gl_KHR_parallel_shader_compile #-}

    -- | Is the <https://www.opengl.org/registry/specs/KHR/robustness.txt KHR_robustness> extension supported?
    glGetKHRRobustness :: MonadIO m => m Bool
    glGetKHRRobustness :: forall (m :: * -> *). MonadIO m => m Bool
    glGetKHRRobustness = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_KHR_robustness")

    -- | Is the <https://www.opengl.org/registry/specs/KHR/robustness.txt KHR_robustness> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetKHRRobustness' in those cases instead.
    gl_KHR_robustness :: Bool
    gl_KHR_robustness :: Bool
    gl_KHR_robustness = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_KHR_robustness" Set String
    extensions
    {-# NOINLINE gl_KHR_robustness #-}

    -- | Is the <https://www.opengl.org/registry/specs/KHR/shader_subgroup.txt KHR_shader_subgroup> extension supported?
    glGetKHRShaderSubgroup :: MonadIO m => m Bool
    glGetKHRShaderSubgroup :: forall (m :: * -> *). MonadIO m => m Bool
    glGetKHRShaderSubgroup = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_KHR_shader_subgroup")

    -- | Is the <https://www.opengl.org/registry/specs/KHR/shader_subgroup.txt KHR_shader_subgroup> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetKHRShaderSubgroup' in those cases instead.
    gl_KHR_shader_subgroup :: Bool
    gl_KHR_shader_subgroup :: Bool
    gl_KHR_shader_subgroup = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_KHR_shader_subgroup" Set String
    extensions
    {-# NOINLINE gl_KHR_shader_subgroup #-}

    -- | Is the <https://www.opengl.org/registry/specs/KHR/texture_compression_astc_hdr.txt KHR_texture_compression_astc_hdr> extension supported?
    glGetKHRTextureCompressionASTCHDR :: MonadIO m => m Bool
    glGetKHRTextureCompressionASTCHDR :: forall (m :: * -> *). MonadIO m => m Bool
    glGetKHRTextureCompressionASTCHDR = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_KHR_texture_compression_astc_hdr")

    -- | Is the <https://www.opengl.org/registry/specs/KHR/texture_compression_astc_hdr.txt KHR_texture_compression_astc_hdr> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetKHRTextureCompressionASTCHDR' in those cases instead.
    gl_KHR_texture_compression_astc_hdr :: Bool
    gl_KHR_texture_compression_astc_hdr :: Bool
    gl_KHR_texture_compression_astc_hdr = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_KHR_texture_compression_astc_hdr" Set String
    extensions
    {-# NOINLINE gl_KHR_texture_compression_astc_hdr #-}

    -- | Is the <https://www.opengl.org/registry/specs/KHR/texture_compression_astc_hdr.txt KHR_texture_compression_astc_ldr> extension supported?
    glGetKHRTextureCompressionASTCLDR :: MonadIO m => m Bool
    glGetKHRTextureCompressionASTCLDR :: forall (m :: * -> *). MonadIO m => m Bool
    glGetKHRTextureCompressionASTCLDR = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_KHR_texture_compression_astc_ldr")

    -- | Is the <https://www.opengl.org/registry/specs/KHR/texture_compression_astc_hdr.txt KHR_texture_compression_astc_ldr> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetKHRTextureCompressionASTCLDR' in those cases instead.
    gl_KHR_texture_compression_astc_ldr :: Bool
    gl_KHR_texture_compression_astc_ldr :: Bool
    gl_KHR_texture_compression_astc_ldr = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_KHR_texture_compression_astc_ldr" Set String
    extensions
    {-# NOINLINE gl_KHR_texture_compression_astc_ldr #-}

    -- | Is the <https://www.opengl.org/registry/specs/MESA/framebuffer_flip_y.txt MESA_framebuffer_flip_y> extension supported?
    glGetMESAFramebufferFlipY :: MonadIO m => m Bool
    glGetMESAFramebufferFlipY :: forall (m :: * -> *). MonadIO m => m Bool
    glGetMESAFramebufferFlipY = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_MESA_framebuffer_flip_y")

    -- | Is the <https://www.opengl.org/registry/specs/MESA/framebuffer_flip_y.txt MESA_framebuffer_flip_y> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetMESAFramebufferFlipY' in those cases instead.
    gl_MESA_framebuffer_flip_y :: Bool
    gl_MESA_framebuffer_flip_y :: Bool
    gl_MESA_framebuffer_flip_y = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_MESA_framebuffer_flip_y" Set String
    extensions
    {-# NOINLINE gl_MESA_framebuffer_flip_y #-}

    -- | Is the <https://www.opengl.org/registry/specs/MESA/pack_invert.txt MESA_pack_invert> extension supported?
    glGetMESAPackInvert :: MonadIO m => m Bool
    glGetMESAPackInvert :: forall (m :: * -> *). MonadIO m => m Bool
    glGetMESAPackInvert = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_MESA_pack_invert")

    -- | Is the <https://www.opengl.org/registry/specs/MESA/pack_invert.txt MESA_pack_invert> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetMESAPackInvert' in those cases instead.
    gl_MESA_pack_invert :: Bool
    gl_MESA_pack_invert :: Bool
    gl_MESA_pack_invert = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_MESA_pack_invert" Set String
    extensions
    {-# NOINLINE gl_MESA_pack_invert #-}

    -- | Is the <https://www.opengl.org/registry/specs/MESA/program_binary_formats.txt MESA_program_binary_formats> extension supported?
    glGetMESAProgramBinaryFormats :: MonadIO m => m Bool
    glGetMESAProgramBinaryFormats :: forall (m :: * -> *). MonadIO m => m Bool
    glGetMESAProgramBinaryFormats = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_MESA_program_binary_formats")

    -- | Is the <https://www.opengl.org/registry/specs/MESA/program_binary_formats.txt MESA_program_binary_formats> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetMESAProgramBinaryFormats' in those cases instead.
    gl_MESA_program_binary_formats :: Bool
    gl_MESA_program_binary_formats :: Bool
    gl_MESA_program_binary_formats = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_MESA_program_binary_formats" Set String
    extensions
    {-# NOINLINE gl_MESA_program_binary_formats #-}

    -- | Is the <https://www.opengl.org/registry/specs/MESA/resize_buffers.txt MESA_resize_buffers> extension supported?
    glGetMESAResizeBuffers :: MonadIO m => m Bool
    glGetMESAResizeBuffers :: forall (m :: * -> *). MonadIO m => m Bool
    glGetMESAResizeBuffers = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_MESA_resize_buffers")

    -- | Is the <https://www.opengl.org/registry/specs/MESA/resize_buffers.txt MESA_resize_buffers> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetMESAResizeBuffers' in those cases instead.
    gl_MESA_resize_buffers :: Bool
    gl_MESA_resize_buffers :: Bool
    gl_MESA_resize_buffers = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_MESA_resize_buffers" Set String
    extensions
    {-# NOINLINE gl_MESA_resize_buffers #-}

    -- | Is the <https://www.opengl.org/registry/specs/MESA/tile_raster_order.txt MESA_tile_raster_order> extension supported?
    glGetMESATileRasterOrder :: MonadIO m => m Bool
    glGetMESATileRasterOrder :: forall (m :: * -> *). MonadIO m => m Bool
    glGetMESATileRasterOrder = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_MESA_tile_raster_order")

    -- | Is the <https://www.opengl.org/registry/specs/MESA/tile_raster_order.txt MESA_tile_raster_order> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetMESATileRasterOrder' in those cases instead.
    gl_MESA_tile_raster_order :: Bool
    gl_MESA_tile_raster_order :: Bool
    gl_MESA_tile_raster_order = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_MESA_tile_raster_order" Set String
    extensions
    {-# NOINLINE gl_MESA_tile_raster_order #-}

    -- | Is the <https://www.opengl.org/registry/specs/MESA/window_pos.txt MESA_window_pos> extension supported?
    glGetMESAWindowPos :: MonadIO m => m Bool
    glGetMESAWindowPos :: forall (m :: * -> *). MonadIO m => m Bool
    glGetMESAWindowPos = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_MESA_window_pos")

    -- | Is the <https://www.opengl.org/registry/specs/MESA/window_pos.txt MESA_window_pos> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetMESAWindowPos' in those cases instead.
    gl_MESA_window_pos :: Bool
    gl_MESA_window_pos :: Bool
    gl_MESA_window_pos = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_MESA_window_pos" Set String
    extensions
    {-# NOINLINE gl_MESA_window_pos #-}

    -- | Is the <https://www.opengl.org/registry/specs/MESA/ycbcr_texture.txt MESA_ycbcr_texture> extension supported?
    glGetMESAYCbCrTexture :: MonadIO m => m Bool
    glGetMESAYCbCrTexture :: forall (m :: * -> *). MonadIO m => m Bool
    glGetMESAYCbCrTexture = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_MESA_ycbcr_texture")

    -- | Is the <https://www.opengl.org/registry/specs/MESA/ycbcr_texture.txt MESA_ycbcr_texture> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetMESAYCbCrTexture' in those cases instead.
    gl_MESA_ycbcr_texture :: Bool
    gl_MESA_ycbcr_texture :: Bool
    gl_MESA_ycbcr_texture = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_MESA_ycbcr_texture" Set String
    extensions
    {-# NOINLINE gl_MESA_ycbcr_texture #-}

    -- | Is the <https://www.opengl.org/registry/specs/MESAX/texture_stack.txt MESAX_texture_stack> extension supported?
    glGetMESAXTextureStack :: MonadIO m => m Bool
    glGetMESAXTextureStack :: forall (m :: * -> *). MonadIO m => m Bool
    glGetMESAXTextureStack = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_MESAX_texture_stack")

    -- | Is the <https://www.opengl.org/registry/specs/MESAX/texture_stack.txt MESAX_texture_stack> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetMESAXTextureStack' in those cases instead.
    gl_MESAX_texture_stack :: Bool
    gl_MESAX_texture_stack :: Bool
    gl_MESAX_texture_stack = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_MESAX_texture_stack" Set String
    extensions
    {-# NOINLINE gl_MESAX_texture_stack #-}

    -- | Is the <https://www.opengl.org/registry/specs/NV/alpha_to_coverage_dither_control.txt NV_alpha_to_coverage_dither_control> extension supported?
    glGetNVAlphaToCoverageDitherControl :: MonadIO m => m Bool
    glGetNVAlphaToCoverageDitherControl :: forall (m :: * -> *). MonadIO m => m Bool
    glGetNVAlphaToCoverageDitherControl = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_alpha_to_coverage_dither_control")

    -- | Is the <https://www.opengl.org/registry/specs/NV/alpha_to_coverage_dither_control.txt NV_alpha_to_coverage_dither_control> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetNVAlphaToCoverageDitherControl' in those cases instead.
    gl_NV_alpha_to_coverage_dither_control :: Bool
    gl_NV_alpha_to_coverage_dither_control :: Bool
    gl_NV_alpha_to_coverage_dither_control = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_alpha_to_coverage_dither_control" Set String
    extensions
    {-# NOINLINE gl_NV_alpha_to_coverage_dither_control #-}

    -- | Is the <https://www.opengl.org/registry/specs/NV/bindless_multi_draw_indirect.txt NV_bindless_multi_draw_indirect> extension supported?
    glGetNVBindlessMultiDrawIndirect :: MonadIO m => m Bool
    glGetNVBindlessMultiDrawIndirect :: forall (m :: * -> *). MonadIO m => m Bool
    glGetNVBindlessMultiDrawIndirect = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_bindless_multi_draw_indirect")

    -- | Is the <https://www.opengl.org/registry/specs/NV/bindless_multi_draw_indirect.txt NV_bindless_multi_draw_indirect> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetNVBindlessMultiDrawIndirect' in those cases instead.
    gl_NV_bindless_multi_draw_indirect :: Bool
    gl_NV_bindless_multi_draw_indirect :: Bool
    gl_NV_bindless_multi_draw_indirect = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_bindless_multi_draw_indirect" Set String
    extensions
    {-# NOINLINE gl_NV_bindless_multi_draw_indirect #-}

    -- | Is the <https://www.opengl.org/registry/specs/NV/bindless_multi_draw_indirect_count.txt NV_bindless_multi_draw_indirect_count> extension supported?
    glGetNVBindlessMultiDrawIndirectCount :: MonadIO m => m Bool
    glGetNVBindlessMultiDrawIndirectCount :: forall (m :: * -> *). MonadIO m => m Bool
    glGetNVBindlessMultiDrawIndirectCount = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_bindless_multi_draw_indirect_count")

    -- | Is the <https://www.opengl.org/registry/specs/NV/bindless_multi_draw_indirect_count.txt NV_bindless_multi_draw_indirect_count> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetNVBindlessMultiDrawIndirectCount' in those cases instead.
    gl_NV_bindless_multi_draw_indirect_count :: Bool
    gl_NV_bindless_multi_draw_indirect_count :: Bool
    gl_NV_bindless_multi_draw_indirect_count = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_bindless_multi_draw_indirect_count" Set String
    extensions
    {-# NOINLINE gl_NV_bindless_multi_draw_indirect_count #-}

    -- | Is the <https://www.opengl.org/registry/specs/NV/bindless_texture.txt NV_bindless_texture> extension supported?
    glGetNVBindlessTexture :: MonadIO m => m Bool
    glGetNVBindlessTexture :: forall (m :: * -> *). MonadIO m => m Bool
    glGetNVBindlessTexture = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_bindless_texture")

    -- | Is the <https://www.opengl.org/registry/specs/NV/bindless_texture.txt NV_bindless_texture> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetNVBindlessTexture' in those cases instead.
    gl_NV_bindless_texture :: Bool
    gl_NV_bindless_texture :: Bool
    gl_NV_bindless_texture = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_bindless_texture" Set String
    extensions
    {-# NOINLINE gl_NV_bindless_texture #-}

    -- | Is the <https://www.opengl.org/registry/specs/NV/blend_equation_advanced.txt NV_blend_equation_advanced> extension supported?
    glGetNVBlendEquationAdvanced :: MonadIO m => m Bool
    glGetNVBlendEquationAdvanced :: forall (m :: * -> *). MonadIO m => m Bool
    glGetNVBlendEquationAdvanced = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_blend_equation_advanced")

    -- | Is the <https://www.opengl.org/registry/specs/NV/blend_equation_advanced.txt NV_blend_equation_advanced> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetNVBlendEquationAdvanced' in those cases instead.
    gl_NV_blend_equation_advanced :: Bool
    gl_NV_blend_equation_advanced :: Bool
    gl_NV_blend_equation_advanced = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_blend_equation_advanced" Set String
    extensions
    {-# NOINLINE gl_NV_blend_equation_advanced #-}

    -- | Is the <https://www.opengl.org/registry/specs/NV/blend_equation_advanced.txt NV_blend_equation_advanced_coherent> extension supported?
    glGetNVBlendEquationAdvancedCoherent :: MonadIO m => m Bool
    glGetNVBlendEquationAdvancedCoherent :: forall (m :: * -> *). MonadIO m => m Bool
    glGetNVBlendEquationAdvancedCoherent = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_blend_equation_advanced_coherent")

    -- | Is the <https://www.opengl.org/registry/specs/NV/blend_equation_advanced.txt NV_blend_equation_advanced_coherent> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetNVBlendEquationAdvancedCoherent' in those cases instead.
    gl_NV_blend_equation_advanced_coherent :: Bool
    gl_NV_blend_equation_advanced_coherent :: Bool
    gl_NV_blend_equation_advanced_coherent = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_blend_equation_advanced_coherent" Set String
    extensions
    {-# NOINLINE gl_NV_blend_equation_advanced_coherent #-}

    -- | Is the <https://www.opengl.org/registry/specs/NV/blend_minmax_factor.txt NV_blend_minmax_factor> extension supported?
    glGetNVBlendMinmaxFactor :: MonadIO m => m Bool
    glGetNVBlendMinmaxFactor :: forall (m :: * -> *). MonadIO m => m Bool
    glGetNVBlendMinmaxFactor = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_blend_minmax_factor")

    -- | Is the <https://www.opengl.org/registry/specs/NV/blend_minmax_factor.txt NV_blend_minmax_factor> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetNVBlendMinmaxFactor' in those cases instead.
    gl_NV_blend_minmax_factor :: Bool
    gl_NV_blend_minmax_factor :: Bool
    gl_NV_blend_minmax_factor = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_blend_minmax_factor" Set String
    extensions
    {-# NOINLINE gl_NV_blend_minmax_factor #-}

    -- | Is the <https://www.opengl.org/registry/specs/NV/clip_space_w_scaling.txt NV_clip_space_w_scaling> extension supported?
    glGetNVClipSpaceWScaling :: MonadIO m => m Bool
    glGetNVClipSpaceWScaling :: forall (m :: * -> *). MonadIO m => m Bool
    glGetNVClipSpaceWScaling = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_clip_space_w_scaling")

    -- | Is the <https://www.opengl.org/registry/specs/NV/clip_space_w_scaling.txt NV_clip_space_w_scaling> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetNVClipSpaceWScaling' in those cases instead.
    gl_NV_clip_space_w_scaling :: Bool
    gl_NV_clip_space_w_scaling :: Bool
    gl_NV_clip_space_w_scaling = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_clip_space_w_scaling" Set String
    extensions
    {-# NOINLINE gl_NV_clip_space_w_scaling #-}

    -- | Is the <https://www.opengl.org/registry/specs/NV/command_list.txt NV_command_list> extension supported?
    glGetNVCommandList :: MonadIO m => m Bool
    glGetNVCommandList :: forall (m :: * -> *). MonadIO m => m Bool
    glGetNVCommandList = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_command_list")

    -- | Is the <https://www.opengl.org/registry/specs/NV/command_list.txt NV_command_list> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetNVCommandList' in those cases instead.
    gl_NV_command_list :: Bool
    gl_NV_command_list :: Bool
    gl_NV_command_list = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_command_list" Set String
    extensions
    {-# NOINLINE gl_NV_command_list #-}

    -- | Is the <https://www.opengl.org/registry/specs/NV/compute_program5.txt NV_compute_program5> extension supported?
    glGetNVComputeProgram5 :: MonadIO m => m Bool
    glGetNVComputeProgram5 :: forall (m :: * -> *). MonadIO m => m Bool
    glGetNVComputeProgram5 = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_compute_program5")

    -- | Is the <https://www.opengl.org/registry/specs/NV/compute_program5.txt NV_compute_program5> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetNVComputeProgram5' in those cases instead.
    gl_NV_compute_program5 :: Bool
    gl_NV_compute_program5 :: Bool
    gl_NV_compute_program5 = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_compute_program5" Set String
    extensions
    {-# NOINLINE gl_NV_compute_program5 #-}

    -- | Is the <https://www.opengl.org/registry/specs/NV/conditional_render.txt NV_conditional_render> extension supported?
    glGetNVConditionalRender :: MonadIO m => m Bool
    glGetNVConditionalRender :: forall (m :: * -> *). MonadIO m => m Bool
    glGetNVConditionalRender = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_conditional_render")

    -- | Is the <https://www.opengl.org/registry/specs/NV/conditional_render.txt NV_conditional_render> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetNVConditionalRender' in those cases instead.
    gl_NV_conditional_render :: Bool
    gl_NV_conditional_render :: Bool
    gl_NV_conditional_render = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_conditional_render" Set String
    extensions
    {-# NOINLINE gl_NV_conditional_render #-}

    -- | Is the <https://www.opengl.org/registry/specs/NV/conservative_raster.txt NV_conservative_raster> extension supported?
    glGetNVConservativeRaster :: MonadIO m => m Bool
    glGetNVConservativeRaster :: forall (m :: * -> *). MonadIO m => m Bool
    glGetNVConservativeRaster = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_conservative_raster")

    -- | Is the <https://www.opengl.org/registry/specs/NV/conservative_raster.txt NV_conservative_raster> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetNVConservativeRaster' in those cases instead.
    gl_NV_conservative_raster :: Bool
    gl_NV_conservative_raster :: Bool
    gl_NV_conservative_raster = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_conservative_raster" Set String
    extensions
    {-# NOINLINE gl_NV_conservative_raster #-}

    -- | Is the <https://www.opengl.org/registry/specs/NV/conservative_raster_dilate.txt NV_conservative_raster_dilate> extension supported?
    glGetNVConservativeRasterDilate :: MonadIO m => m Bool
    glGetNVConservativeRasterDilate :: forall (m :: * -> *). MonadIO m => m Bool
    glGetNVConservativeRasterDilate = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_conservative_raster_dilate")

    -- | Is the <https://www.opengl.org/registry/specs/NV/conservative_raster_dilate.txt NV_conservative_raster_dilate> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetNVConservativeRasterDilate' in those cases instead.
    gl_NV_conservative_raster_dilate :: Bool
    gl_NV_conservative_raster_dilate :: Bool
    gl_NV_conservative_raster_dilate = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_conservative_raster_dilate" Set String
    extensions
    {-# NOINLINE gl_NV_conservative_raster_dilate #-}

    -- | Is the <https://www.opengl.org/registry/specs/NV/conservative_raster_pre_snap.txt NV_conservative_raster_pre_snap> extension supported?
    glGetNVConservativeRasterPreSnap :: MonadIO m => m Bool
    glGetNVConservativeRasterPreSnap :: forall (m :: * -> *). MonadIO m => m Bool
    glGetNVConservativeRasterPreSnap = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_conservative_raster_pre_snap")

    -- | Is the <https://www.opengl.org/registry/specs/NV/conservative_raster_pre_snap.txt NV_conservative_raster_pre_snap> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetNVConservativeRasterPreSnap' in those cases instead.
    gl_NV_conservative_raster_pre_snap :: Bool
    gl_NV_conservative_raster_pre_snap :: Bool
    gl_NV_conservative_raster_pre_snap = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_conservative_raster_pre_snap" Set String
    extensions
    {-# NOINLINE gl_NV_conservative_raster_pre_snap #-}

    -- | Is the <https://www.opengl.org/registry/specs/NV/conservative_raster_pre_snap_triangles.txt NV_conservative_raster_pre_snap_triangles> extension supported?
    glGetNVConservativeRasterPreSnapTriangles :: MonadIO m => m Bool
    glGetNVConservativeRasterPreSnapTriangles :: forall (m :: * -> *). MonadIO m => m Bool
    glGetNVConservativeRasterPreSnapTriangles = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_conservative_raster_pre_snap_triangles")

    -- | Is the <https://www.opengl.org/registry/specs/NV/conservative_raster_pre_snap_triangles.txt NV_conservative_raster_pre_snap_triangles> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetNVConservativeRasterPreSnapTriangles' in those cases instead.
    gl_NV_conservative_raster_pre_snap_triangles :: Bool
    gl_NV_conservative_raster_pre_snap_triangles :: Bool
    gl_NV_conservative_raster_pre_snap_triangles = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_conservative_raster_pre_snap_triangles" Set String
    extensions
    {-# NOINLINE gl_NV_conservative_raster_pre_snap_triangles #-}

    -- | Is the <https://www.opengl.org/registry/specs/NV/copy_depth_to_color.txt NV_copy_depth_to_color> extension supported?
    glGetNVCopyDepthToColor :: MonadIO m => m Bool
    glGetNVCopyDepthToColor :: forall (m :: * -> *). MonadIO m => m Bool
    glGetNVCopyDepthToColor = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_copy_depth_to_color")

    -- | Is the <https://www.opengl.org/registry/specs/NV/copy_depth_to_color.txt NV_copy_depth_to_color> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetNVCopyDepthToColor' in those cases instead.
    gl_NV_copy_depth_to_color :: Bool
    gl_NV_copy_depth_to_color :: Bool
    gl_NV_copy_depth_to_color = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_copy_depth_to_color" Set String
    extensions
    {-# NOINLINE gl_NV_copy_depth_to_color #-}

    -- | Is the <https://www.opengl.org/registry/specs/NV/copy_image.txt NV_copy_image> extension supported?
    glGetNVCopyImage :: MonadIO m => m Bool
    glGetNVCopyImage :: forall (m :: * -> *). MonadIO m => m Bool
    glGetNVCopyImage = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_copy_image")

    -- | Is the <https://www.opengl.org/registry/specs/NV/copy_image.txt NV_copy_image> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetNVCopyImage' in those cases instead.
    gl_NV_copy_image :: Bool
    gl_NV_copy_image :: Bool
    gl_NV_copy_image = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_copy_image" Set String
    extensions
    {-# NOINLINE gl_NV_copy_image #-}

    -- | Is the <https://www.opengl.org/registry/specs/NV/deep_texture3D.txt NV_deep_texture3D> extension supported?
    glGetNVDeepTexture3D :: MonadIO m => m Bool
    glGetNVDeepTexture3D :: forall (m :: * -> *). MonadIO m => m Bool
    glGetNVDeepTexture3D = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_deep_texture3D")

    -- | Is the <https://www.opengl.org/registry/specs/NV/deep_texture3D.txt NV_deep_texture3D> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetNVDeepTexture3D' in those cases instead.
    gl_NV_deep_texture3D :: Bool
    gl_NV_deep_texture3D :: Bool
    gl_NV_deep_texture3D = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_deep_texture3D" Set String
    extensions
    {-# NOINLINE gl_NV_deep_texture3D #-}

    -- | Is the <https://www.opengl.org/registry/specs/NV/depth_buffer_float.txt NV_depth_buffer_float> extension supported?
    glGetNVDepthBufferFloat :: MonadIO m => m Bool
    glGetNVDepthBufferFloat :: forall (m :: * -> *). MonadIO m => m Bool
    glGetNVDepthBufferFloat = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_depth_buffer_float")

    -- | Is the <https://www.opengl.org/registry/specs/NV/depth_buffer_float.txt NV_depth_buffer_float> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetNVDepthBufferFloat' in those cases instead.
    gl_NV_depth_buffer_float :: Bool
    gl_NV_depth_buffer_float :: Bool
    gl_NV_depth_buffer_float = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_depth_buffer_float" Set String
    extensions
    {-# NOINLINE gl_NV_depth_buffer_float #-}

    -- | Is the <https://www.opengl.org/registry/specs/NV/depth_clamp.txt NV_depth_clamp> extension supported?
    glGetNVDepthClamp :: MonadIO m => m Bool
    glGetNVDepthClamp :: forall (m :: * -> *). MonadIO m => m Bool
    glGetNVDepthClamp = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_depth_clamp")

    -- | Is the <https://www.opengl.org/registry/specs/NV/depth_clamp.txt NV_depth_clamp> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetNVDepthClamp' in those cases instead.
    gl_NV_depth_clamp :: Bool
    gl_NV_depth_clamp :: Bool
    gl_NV_depth_clamp = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_depth_clamp" Set String
    extensions
    {-# NOINLINE gl_NV_depth_clamp #-}

    -- | Is the <https://www.opengl.org/registry/specs/NV/draw_texture.txt NV_draw_texture> extension supported?
    glGetNVDrawTexture :: MonadIO m => m Bool
    glGetNVDrawTexture :: forall (m :: * -> *). MonadIO m => m Bool
    glGetNVDrawTexture = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_draw_texture")

    -- | Is the <https://www.opengl.org/registry/specs/NV/draw_texture.txt NV_draw_texture> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetNVDrawTexture' in those cases instead.
    gl_NV_draw_texture :: Bool
    gl_NV_draw_texture :: Bool
    gl_NV_draw_texture = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_draw_texture" Set String
    extensions
    {-# NOINLINE gl_NV_draw_texture #-}

    -- | Is the <https://www.opengl.org/registry/specs/NV/draw_vulkan_image.txt NV_draw_vulkan_image> extension supported?
    glGetNVDrawVulkanImage :: MonadIO m => m Bool
    glGetNVDrawVulkanImage :: forall (m :: * -> *). MonadIO m => m Bool
    glGetNVDrawVulkanImage = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_draw_vulkan_image")

    -- | Is the <https://www.opengl.org/registry/specs/NV/draw_vulkan_image.txt NV_draw_vulkan_image> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetNVDrawVulkanImage' in those cases instead.
    gl_NV_draw_vulkan_image :: Bool
    gl_NV_draw_vulkan_image :: Bool
    gl_NV_draw_vulkan_image = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_draw_vulkan_image" Set String
    extensions
    {-# NOINLINE gl_NV_draw_vulkan_image #-}

    -- | Is the <https://www.opengl.org/registry/specs/NV/evaluators.txt NV_evaluators> extension supported?
    glGetNVEvaluators :: MonadIO m => m Bool
    glGetNVEvaluators :: forall (m :: * -> *). MonadIO m => m Bool
    glGetNVEvaluators = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_evaluators")

    -- | Is the <https://www.opengl.org/registry/specs/NV/evaluators.txt NV_evaluators> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetNVEvaluators' in those cases instead.
    gl_NV_evaluators :: Bool
    gl_NV_evaluators :: Bool
    gl_NV_evaluators = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_evaluators" Set String
    extensions
    {-# NOINLINE gl_NV_evaluators #-}

    -- | Is the <https://www.opengl.org/registry/specs/NV/explicit_multisample.txt NV_explicit_multisample> extension supported?
    glGetNVExplicitMultisample :: MonadIO m => m Bool
    glGetNVExplicitMultisample :: forall (m :: * -> *). MonadIO m => m Bool
    glGetNVExplicitMultisample = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_explicit_multisample")

    -- | Is the <https://www.opengl.org/registry/specs/NV/explicit_multisample.txt NV_explicit_multisample> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetNVExplicitMultisample' in those cases instead.
    gl_NV_explicit_multisample :: Bool
    gl_NV_explicit_multisample :: Bool
    gl_NV_explicit_multisample = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_explicit_multisample" Set String
    extensions
    {-# NOINLINE gl_NV_explicit_multisample #-}

    -- | Is the <https://www.opengl.org/registry/specs/NV/fence.txt NV_fence> extension supported?
    glGetNVFence :: MonadIO m => m Bool
    glGetNVFence :: forall (m :: * -> *). MonadIO m => m Bool
    glGetNVFence = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_fence")

    -- | Is the <https://www.opengl.org/registry/specs/NV/fence.txt NV_fence> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetNVFence' in those cases instead.
    gl_NV_fence :: Bool
    gl_NV_fence :: Bool
    gl_NV_fence = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_fence" Set String
    extensions
    {-# NOINLINE gl_NV_fence #-}

    -- | Is the <https://www.opengl.org/registry/specs/NV/fill_rectangle.txt NV_fill_rectangle> extension supported?
    glGetNVFillRectangle :: MonadIO m => m Bool
    glGetNVFillRectangle :: forall (m :: * -> *). MonadIO m => m Bool
    glGetNVFillRectangle = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_fill_rectangle")

    -- | Is the <https://www.opengl.org/registry/specs/NV/fill_rectangle.txt NV_fill_rectangle> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetNVFillRectangle' in those cases instead.
    gl_NV_fill_rectangle :: Bool
    gl_NV_fill_rectangle :: Bool
    gl_NV_fill_rectangle = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_fill_rectangle" Set String
    extensions
    {-# NOINLINE gl_NV_fill_rectangle #-}

    -- | Is the <https://www.opengl.org/registry/specs/NV/float_buffer.txt NV_float_buffer> extension supported?
    glGetNVFloatBuffer :: MonadIO m => m Bool
    glGetNVFloatBuffer :: forall (m :: * -> *). MonadIO m => m Bool
    glGetNVFloatBuffer = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_float_buffer")

    -- | Is the <https://www.opengl.org/registry/specs/NV/float_buffer.txt NV_float_buffer> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetNVFloatBuffer' in those cases instead.
    gl_NV_float_buffer :: Bool
    gl_NV_float_buffer :: Bool
    gl_NV_float_buffer = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_float_buffer" Set String
    extensions
    {-# NOINLINE gl_NV_float_buffer #-}

    -- | Is the <https://www.opengl.org/registry/specs/NV/fog_distance.txt NV_fog_distance> extension supported?
    glGetNVFogDistance :: MonadIO m => m Bool
    glGetNVFogDistance :: forall (m :: * -> *). MonadIO m => m Bool
    glGetNVFogDistance = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_fog_distance")

    -- | Is the <https://www.opengl.org/registry/specs/NV/fog_distance.txt NV_fog_distance> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetNVFogDistance' in those cases instead.
    gl_NV_fog_distance :: Bool
    gl_NV_fog_distance :: Bool
    gl_NV_fog_distance = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_fog_distance" Set String
    extensions
    {-# NOINLINE gl_NV_fog_distance #-}

    -- | Is the <https://www.opengl.org/registry/specs/NV/fragment_coverage_to_color.txt NV_fragment_coverage_to_color> extension supported?
    glGetNVFragmentCoverageToColor :: MonadIO m => m Bool
    glGetNVFragmentCoverageToColor :: forall (m :: * -> *). MonadIO m => m Bool
    glGetNVFragmentCoverageToColor = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_fragment_coverage_to_color")

    -- | Is the <https://www.opengl.org/registry/specs/NV/fragment_coverage_to_color.txt NV_fragment_coverage_to_color> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetNVFragmentCoverageToColor' in those cases instead.
    gl_NV_fragment_coverage_to_color :: Bool
    gl_NV_fragment_coverage_to_color :: Bool
    gl_NV_fragment_coverage_to_color = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_fragment_coverage_to_color" Set String
    extensions
    {-# NOINLINE gl_NV_fragment_coverage_to_color #-}

    -- | Is the <https://www.opengl.org/registry/specs/NV/fragment_program.txt NV_fragment_program> extension supported?
    glGetNVFragmentProgram :: MonadIO m => m Bool
    glGetNVFragmentProgram :: forall (m :: * -> *). MonadIO m => m Bool
    glGetNVFragmentProgram = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_fragment_program")

    -- | Is the <https://www.opengl.org/registry/specs/NV/fragment_program.txt NV_fragment_program> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetNVFragmentProgram' in those cases instead.
    gl_NV_fragment_program :: Bool
    gl_NV_fragment_program :: Bool
    gl_NV_fragment_program = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_fragment_program" Set String
    extensions
    {-# NOINLINE gl_NV_fragment_program #-}

    -- | Is the <https://www.opengl.org/registry/specs/NV/fragment_program2.txt NV_fragment_program2> extension supported?
    glGetNVFragmentProgram2 :: MonadIO m => m Bool
    glGetNVFragmentProgram2 :: forall (m :: * -> *). MonadIO m => m Bool
    glGetNVFragmentProgram2 = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_fragment_program2")

    -- | Is the <https://www.opengl.org/registry/specs/NV/fragment_program2.txt NV_fragment_program2> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetNVFragmentProgram2' in those cases instead.
    gl_NV_fragment_program2 :: Bool
    gl_NV_fragment_program2 :: Bool
    gl_NV_fragment_program2 = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_fragment_program2" Set String
    extensions
    {-# NOINLINE gl_NV_fragment_program2 #-}

    -- | Is the <https://www.opengl.org/registry/specs/NV/framebuffer_mixed_samples.txt NV_framebuffer_mixed_samples> extension supported?
    glGetNVFramebufferMixedSamples :: MonadIO m => m Bool
    glGetNVFramebufferMixedSamples :: forall (m :: * -> *). MonadIO m => m Bool
    glGetNVFramebufferMixedSamples = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_framebuffer_mixed_samples")

    -- | Is the <https://www.opengl.org/registry/specs/NV/framebuffer_mixed_samples.txt NV_framebuffer_mixed_samples> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetNVFramebufferMixedSamples' in those cases instead.
    gl_NV_framebuffer_mixed_samples :: Bool
    gl_NV_framebuffer_mixed_samples :: Bool
    gl_NV_framebuffer_mixed_samples = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_framebuffer_mixed_samples" Set String
    extensions
    {-# NOINLINE gl_NV_framebuffer_mixed_samples #-}

    -- | Is the <https://www.opengl.org/registry/specs/NV/framebuffer_multisample_coverage.txt NV_framebuffer_multisample_coverage> extension supported?
    glGetNVFramebufferMultisampleCoverage :: MonadIO m => m Bool
    glGetNVFramebufferMultisampleCoverage :: forall (m :: * -> *). MonadIO m => m Bool
    glGetNVFramebufferMultisampleCoverage = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_framebuffer_multisample_coverage")

    -- | Is the <https://www.opengl.org/registry/specs/NV/framebuffer_multisample_coverage.txt NV_framebuffer_multisample_coverage> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetNVFramebufferMultisampleCoverage' in those cases instead.
    gl_NV_framebuffer_multisample_coverage :: Bool
    gl_NV_framebuffer_multisample_coverage :: Bool
    gl_NV_framebuffer_multisample_coverage = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_framebuffer_multisample_coverage" Set String
    extensions
    {-# NOINLINE gl_NV_framebuffer_multisample_coverage #-}

    -- | Is the <https://www.opengl.org/registry/specs/NV/geometry_program4.txt NV_geometry_program4> extension supported?
    glGetNVGeometryProgram4 :: MonadIO m => m Bool
    glGetNVGeometryProgram4 :: forall (m :: * -> *). MonadIO m => m Bool
    glGetNVGeometryProgram4 = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_geometry_program4")

    -- | Is the <https://www.opengl.org/registry/specs/NV/geometry_program4.txt NV_geometry_program4> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetNVGeometryProgram4' in those cases instead.
    gl_NV_geometry_program4 :: Bool
    gl_NV_geometry_program4 :: Bool
    gl_NV_geometry_program4 = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_geometry_program4" Set String
    extensions
    {-# NOINLINE gl_NV_geometry_program4 #-}

    -- | Is the <https://www.opengl.org/registry/specs/NV/gpu_multicast.txt NV_gpu_multicast> extension supported?
    glGetNVGPUMulticast :: MonadIO m => m Bool
    glGetNVGPUMulticast :: forall (m :: * -> *). MonadIO m => m Bool
    glGetNVGPUMulticast = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_gpu_multicast")

    -- | Is the <https://www.opengl.org/registry/specs/NV/gpu_multicast.txt NV_gpu_multicast> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetNVGPUMulticast' in those cases instead.
    gl_NV_gpu_multicast :: Bool
    gl_NV_gpu_multicast :: Bool
    gl_NV_gpu_multicast = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_gpu_multicast" Set String
    extensions
    {-# NOINLINE gl_NV_gpu_multicast #-}

    -- | Is the <https://www.opengl.org/registry/specs/NV/gpu_program4.txt NV_gpu_program4> extension supported?
    glGetNVGPUProgram4 :: MonadIO m => m Bool
    glGetNVGPUProgram4 :: forall (m :: * -> *). MonadIO m => m Bool
    glGetNVGPUProgram4 = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_gpu_program4")

    -- | Is the <https://www.opengl.org/registry/specs/NV/gpu_program4.txt NV_gpu_program4> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetNVGPUProgram4' in those cases instead.
    gl_NV_gpu_program4 :: Bool
    gl_NV_gpu_program4 :: Bool
    gl_NV_gpu_program4 = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_gpu_program4" Set String
    extensions
    {-# NOINLINE gl_NV_gpu_program4 #-}

    -- | Is the <https://www.opengl.org/registry/specs/NV/gpu_program5.txt NV_gpu_program5> extension supported?
    glGetNVGPUProgram5 :: MonadIO m => m Bool
    glGetNVGPUProgram5 :: forall (m :: * -> *). MonadIO m => m Bool
    glGetNVGPUProgram5 = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_gpu_program5")

    -- | Is the <https://www.opengl.org/registry/specs/NV/gpu_program5.txt NV_gpu_program5> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetNVGPUProgram5' in those cases instead.
    gl_NV_gpu_program5 :: Bool
    gl_NV_gpu_program5 :: Bool
    gl_NV_gpu_program5 = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_gpu_program5" Set String
    extensions
    {-# NOINLINE gl_NV_gpu_program5 #-}

    -- | Is the <https://www.opengl.org/registry/specs/NV/gpu_shader5.txt NV_gpu_shader5> extension supported?
    glGetNVGPUShader5 :: MonadIO m => m Bool
    glGetNVGPUShader5 :: forall (m :: * -> *). MonadIO m => m Bool
    glGetNVGPUShader5 = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_gpu_shader5")

    -- | Is the <https://www.opengl.org/registry/specs/NV/gpu_shader5.txt NV_gpu_shader5> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetNVGPUShader5' in those cases instead.
    gl_NV_gpu_shader5 :: Bool
    gl_NV_gpu_shader5 :: Bool
    gl_NV_gpu_shader5 = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_gpu_shader5" Set String
    extensions
    {-# NOINLINE gl_NV_gpu_shader5 #-}

    -- | Is the <https://www.opengl.org/registry/specs/NV/half_float.txt NV_half_float> extension supported?
    glGetNVHalfFloat :: MonadIO m => m Bool
    glGetNVHalfFloat :: forall (m :: * -> *). MonadIO m => m Bool
    glGetNVHalfFloat = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_half_float")

    -- | Is the <https://www.opengl.org/registry/specs/NV/half_float.txt NV_half_float> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetNVHalfFloat' in those cases instead.
    gl_NV_half_float :: Bool
    gl_NV_half_float :: Bool
    gl_NV_half_float = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_half_float" Set String
    extensions
    {-# NOINLINE gl_NV_half_float #-}

    -- | Is the <https://www.opengl.org/registry/specs/NV/internalformat_sample_query.txt NV_internalformat_sample_query> extension supported?
    glGetNVInternalformatSampleQuery :: MonadIO m => m Bool
    glGetNVInternalformatSampleQuery :: forall (m :: * -> *). MonadIO m => m Bool
    glGetNVInternalformatSampleQuery = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_internalformat_sample_query")

    -- | Is the <https://www.opengl.org/registry/specs/NV/internalformat_sample_query.txt NV_internalformat_sample_query> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetNVInternalformatSampleQuery' in those cases instead.
    gl_NV_internalformat_sample_query :: Bool
    gl_NV_internalformat_sample_query :: Bool
    gl_NV_internalformat_sample_query = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_internalformat_sample_query" Set String
    extensions
    {-# NOINLINE gl_NV_internalformat_sample_query #-}

    -- | Is the <https://www.opengl.org/registry/specs/NV/light_max_exponent.txt NV_light_max_exponent> extension supported?
    glGetNVLightMaxExponent :: MonadIO m => m Bool
    glGetNVLightMaxExponent :: forall (m :: * -> *). MonadIO m => m Bool
    glGetNVLightMaxExponent = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_light_max_exponent")

    -- | Is the <https://www.opengl.org/registry/specs/NV/light_max_exponent.txt NV_light_max_exponent> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetNVLightMaxExponent' in those cases instead.
    gl_NV_light_max_exponent :: Bool
    gl_NV_light_max_exponent :: Bool
    gl_NV_light_max_exponent = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_light_max_exponent" Set String
    extensions
    {-# NOINLINE gl_NV_light_max_exponent #-}

    -- | Is the <https://www.opengl.org/registry/specs/NV/memory_attachment.txt NV_memory_attachment> extension supported?
    glGetNVMemoryAttachment :: MonadIO m => m Bool
    glGetNVMemoryAttachment :: forall (m :: * -> *). MonadIO m => m Bool
    glGetNVMemoryAttachment = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_memory_attachment")

    -- | Is the <https://www.opengl.org/registry/specs/NV/memory_attachment.txt NV_memory_attachment> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetNVMemoryAttachment' in those cases instead.
    gl_NV_memory_attachment :: Bool
    gl_NV_memory_attachment :: Bool
    gl_NV_memory_attachment = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_memory_attachment" Set String
    extensions
    {-# NOINLINE gl_NV_memory_attachment #-}

    -- | Is the <https://www.opengl.org/registry/specs/NV/mesh_shader.txt NV_mesh_shader> extension supported?
    glGetNVMeshShader :: MonadIO m => m Bool
    glGetNVMeshShader :: forall (m :: * -> *). MonadIO m => m Bool
    glGetNVMeshShader = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_mesh_shader")

    -- | Is the <https://www.opengl.org/registry/specs/NV/mesh_shader.txt NV_mesh_shader> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetNVMeshShader' in those cases instead.
    gl_NV_mesh_shader :: Bool
    gl_NV_mesh_shader :: Bool
    gl_NV_mesh_shader = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_mesh_shader" Set String
    extensions
    {-# NOINLINE gl_NV_mesh_shader #-}

    -- | Is the <https://www.opengl.org/registry/specs/NV/multisample_coverage.txt NV_multisample_coverage> extension supported?
    glGetNVMultisampleCoverage :: MonadIO m => m Bool
    glGetNVMultisampleCoverage :: forall (m :: * -> *). MonadIO m => m Bool
    glGetNVMultisampleCoverage = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_multisample_coverage")

    -- | Is the <https://www.opengl.org/registry/specs/NV/multisample_coverage.txt NV_multisample_coverage> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetNVMultisampleCoverage' in those cases instead.
    gl_NV_multisample_coverage :: Bool
    gl_NV_multisample_coverage :: Bool
    gl_NV_multisample_coverage = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_multisample_coverage" Set String
    extensions
    {-# NOINLINE gl_NV_multisample_coverage #-}

    -- | Is the <https://www.opengl.org/registry/specs/NV/multisample_filter_hint.txt NV_multisample_filter_hint> extension supported?
    glGetNVMultisampleFilterHint :: MonadIO m => m Bool
    glGetNVMultisampleFilterHint :: forall (m :: * -> *). MonadIO m => m Bool
    glGetNVMultisampleFilterHint = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_multisample_filter_hint")

    -- | Is the <https://www.opengl.org/registry/specs/NV/multisample_filter_hint.txt NV_multisample_filter_hint> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetNVMultisampleFilterHint' in those cases instead.
    gl_NV_multisample_filter_hint :: Bool
    gl_NV_multisample_filter_hint :: Bool
    gl_NV_multisample_filter_hint = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_multisample_filter_hint" Set String
    extensions
    {-# NOINLINE gl_NV_multisample_filter_hint #-}

    -- | Is the <https://www.opengl.org/registry/specs/NV/occlusion_query.txt NV_occlusion_query> extension supported?
    glGetNVOcclusionQuery :: MonadIO m => m Bool
    glGetNVOcclusionQuery :: forall (m :: * -> *). MonadIO m => m Bool
    glGetNVOcclusionQuery = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_occlusion_query")

    -- | Is the <https://www.opengl.org/registry/specs/NV/occlusion_query.txt NV_occlusion_query> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetNVOcclusionQuery' in those cases instead.
    gl_NV_occlusion_query :: Bool
    gl_NV_occlusion_query :: Bool
    gl_NV_occlusion_query = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_occlusion_query" Set String
    extensions
    {-# NOINLINE gl_NV_occlusion_query #-}

    -- | Is the <https://www.opengl.org/registry/specs/NV/packed_depth_stencil.txt NV_packed_depth_stencil> extension supported?
    glGetNVPackedDepthStencil :: MonadIO m => m Bool
    glGetNVPackedDepthStencil :: forall (m :: * -> *). MonadIO m => m Bool
    glGetNVPackedDepthStencil = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_packed_depth_stencil")

    -- | Is the <https://www.opengl.org/registry/specs/NV/packed_depth_stencil.txt NV_packed_depth_stencil> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetNVPackedDepthStencil' in those cases instead.
    gl_NV_packed_depth_stencil :: Bool
    gl_NV_packed_depth_stencil :: Bool
    gl_NV_packed_depth_stencil = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_packed_depth_stencil" Set String
    extensions
    {-# NOINLINE gl_NV_packed_depth_stencil #-}

    -- | Is the <https://www.opengl.org/registry/specs/NV/parameter_buffer_object.txt NV_parameter_buffer_object> extension supported?
    glGetNVParameterBufferObject :: MonadIO m => m Bool
    glGetNVParameterBufferObject :: forall (m :: * -> *). MonadIO m => m Bool
    glGetNVParameterBufferObject = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_parameter_buffer_object")

    -- | Is the <https://www.opengl.org/registry/specs/NV/parameter_buffer_object.txt NV_parameter_buffer_object> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetNVParameterBufferObject' in those cases instead.
    gl_NV_parameter_buffer_object :: Bool
    gl_NV_parameter_buffer_object :: Bool
    gl_NV_parameter_buffer_object = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_parameter_buffer_object" Set String
    extensions
    {-# NOINLINE gl_NV_parameter_buffer_object #-}

    -- | Is the <https://www.opengl.org/registry/specs/NV/path_rendering.txt NV_path_rendering> extension supported?
    glGetNVPathRendering :: MonadIO m => m Bool
    glGetNVPathRendering :: forall (m :: * -> *). MonadIO m => m Bool
    glGetNVPathRendering = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_path_rendering")

    -- | Is the <https://www.opengl.org/registry/specs/NV/path_rendering.txt NV_path_rendering> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetNVPathRendering' in those cases instead.
    gl_NV_path_rendering :: Bool
    gl_NV_path_rendering :: Bool
    gl_NV_path_rendering = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_path_rendering" Set String
    extensions
    {-# NOINLINE gl_NV_path_rendering #-}

    -- | Is the <https://www.opengl.org/registry/specs/NV/path_rendering_shared_edge.txt NV_path_rendering_shared_edge> extension supported?
    glGetNVPathRenderingSharedEdge :: MonadIO m => m Bool
    glGetNVPathRenderingSharedEdge :: forall (m :: * -> *). MonadIO m => m Bool
    glGetNVPathRenderingSharedEdge = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_path_rendering_shared_edge")

    -- | Is the <https://www.opengl.org/registry/specs/NV/path_rendering_shared_edge.txt NV_path_rendering_shared_edge> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetNVPathRenderingSharedEdge' in those cases instead.
    gl_NV_path_rendering_shared_edge :: Bool
    gl_NV_path_rendering_shared_edge :: Bool
    gl_NV_path_rendering_shared_edge = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_path_rendering_shared_edge" Set String
    extensions
    {-# NOINLINE gl_NV_path_rendering_shared_edge #-}

    -- | Is the <https://www.opengl.org/registry/specs/NV/pixel_data_range.txt NV_pixel_data_range> extension supported?
    glGetNVPixelDataRange :: MonadIO m => m Bool
    glGetNVPixelDataRange :: forall (m :: * -> *). MonadIO m => m Bool
    glGetNVPixelDataRange = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_pixel_data_range")

    -- | Is the <https://www.opengl.org/registry/specs/NV/pixel_data_range.txt NV_pixel_data_range> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetNVPixelDataRange' in those cases instead.
    gl_NV_pixel_data_range :: Bool
    gl_NV_pixel_data_range :: Bool
    gl_NV_pixel_data_range = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_pixel_data_range" Set String
    extensions
    {-# NOINLINE gl_NV_pixel_data_range #-}

    -- | Is the <https://www.opengl.org/registry/specs/NV/point_sprite.txt NV_point_sprite> extension supported?
    glGetNVPointSprite :: MonadIO m => m Bool
    glGetNVPointSprite :: forall (m :: * -> *). MonadIO m => m Bool
    glGetNVPointSprite = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_point_sprite")

    -- | Is the <https://www.opengl.org/registry/specs/NV/point_sprite.txt NV_point_sprite> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetNVPointSprite' in those cases instead.
    gl_NV_point_sprite :: Bool
    gl_NV_point_sprite :: Bool
    gl_NV_point_sprite = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_point_sprite" Set String
    extensions
    {-# NOINLINE gl_NV_point_sprite #-}

    -- | Is the <https://www.opengl.org/registry/specs/NV/present_video.txt NV_present_video> extension supported?
    glGetNVPresentVideo :: MonadIO m => m Bool
    glGetNVPresentVideo :: forall (m :: * -> *). MonadIO m => m Bool
    glGetNVPresentVideo = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_present_video")

    -- | Is the <https://www.opengl.org/registry/specs/NV/present_video.txt NV_present_video> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetNVPresentVideo' in those cases instead.
    gl_NV_present_video :: Bool
    gl_NV_present_video :: Bool
    gl_NV_present_video = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_present_video" Set String
    extensions
    {-# NOINLINE gl_NV_present_video #-}

    -- | Is the <https://www.opengl.org/registry/specs/NV/primitive_restart.txt NV_primitive_restart> extension supported?
    glGetNVPrimitiveRestart :: MonadIO m => m Bool
    glGetNVPrimitiveRestart :: forall (m :: * -> *). MonadIO m => m Bool
    glGetNVPrimitiveRestart = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_primitive_restart")

    -- | Is the <https://www.opengl.org/registry/specs/NV/primitive_restart.txt NV_primitive_restart> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetNVPrimitiveRestart' in those cases instead.
    gl_NV_primitive_restart :: Bool
    gl_NV_primitive_restart :: Bool
    gl_NV_primitive_restart = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_primitive_restart" Set String
    extensions
    {-# NOINLINE gl_NV_primitive_restart #-}

    -- | Is the <https://www.opengl.org/registry/specs/NV/query_resource.txt NV_query_resource> extension supported?
    glGetNVQueryResource :: MonadIO m => m Bool
    glGetNVQueryResource :: forall (m :: * -> *). MonadIO m => m Bool
    glGetNVQueryResource = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_query_resource")

    -- | Is the <https://www.opengl.org/registry/specs/NV/query_resource.txt NV_query_resource> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetNVQueryResource' in those cases instead.
    gl_NV_query_resource :: Bool
    gl_NV_query_resource :: Bool
    gl_NV_query_resource = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_query_resource" Set String
    extensions
    {-# NOINLINE gl_NV_query_resource #-}

    -- | Is the <https://www.opengl.org/registry/specs/NV/query_resource_tag.txt NV_query_resource_tag> extension supported?
    glGetNVQueryResourceTag :: MonadIO m => m Bool
    glGetNVQueryResourceTag :: forall (m :: * -> *). MonadIO m => m Bool
    glGetNVQueryResourceTag = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_query_resource_tag")

    -- | Is the <https://www.opengl.org/registry/specs/NV/query_resource_tag.txt NV_query_resource_tag> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetNVQueryResourceTag' in those cases instead.
    gl_NV_query_resource_tag :: Bool
    gl_NV_query_resource_tag :: Bool
    gl_NV_query_resource_tag = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_query_resource_tag" Set String
    extensions
    {-# NOINLINE gl_NV_query_resource_tag #-}

    -- | Is the <https://www.opengl.org/registry/specs/NV/register_combiners.txt NV_register_combiners> extension supported?
    glGetNVRegisterCombiners :: MonadIO m => m Bool
    glGetNVRegisterCombiners :: forall (m :: * -> *). MonadIO m => m Bool
    glGetNVRegisterCombiners = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_register_combiners")

    -- | Is the <https://www.opengl.org/registry/specs/NV/register_combiners.txt NV_register_combiners> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetNVRegisterCombiners' in those cases instead.
    gl_NV_register_combiners :: Bool
    gl_NV_register_combiners :: Bool
    gl_NV_register_combiners = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_register_combiners" Set String
    extensions
    {-# NOINLINE gl_NV_register_combiners #-}

    -- | Is the <https://www.opengl.org/registry/specs/NV/register_combiners2.txt NV_register_combiners2> extension supported?
    glGetNVRegisterCombiners2 :: MonadIO m => m Bool
    glGetNVRegisterCombiners2 :: forall (m :: * -> *). MonadIO m => m Bool
    glGetNVRegisterCombiners2 = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_register_combiners2")

    -- | Is the <https://www.opengl.org/registry/specs/NV/register_combiners2.txt NV_register_combiners2> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetNVRegisterCombiners2' in those cases instead.
    gl_NV_register_combiners2 :: Bool
    gl_NV_register_combiners2 :: Bool
    gl_NV_register_combiners2 = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_register_combiners2" Set String
    extensions
    {-# NOINLINE gl_NV_register_combiners2 #-}

    -- | Is the <https://www.opengl.org/registry/specs/NV/representative_fragment_test.txt NV_representative_fragment_test> extension supported?
    glGetNVRepresentativeFragmentTest :: MonadIO m => m Bool
    glGetNVRepresentativeFragmentTest :: forall (m :: * -> *). MonadIO m => m Bool
    glGetNVRepresentativeFragmentTest = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_representative_fragment_test")

    -- | Is the <https://www.opengl.org/registry/specs/NV/representative_fragment_test.txt NV_representative_fragment_test> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetNVRepresentativeFragmentTest' in those cases instead.
    gl_NV_representative_fragment_test :: Bool
    gl_NV_representative_fragment_test :: Bool
    gl_NV_representative_fragment_test = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_representative_fragment_test" Set String
    extensions
    {-# NOINLINE gl_NV_representative_fragment_test #-}

    -- | Is the <https://www.opengl.org/registry/specs/NV/robustness_video_memory_purge.txt NV_robustness_video_memory_purge> extension supported?
    glGetNVRobustnessVideoMemoryPurge :: MonadIO m => m Bool
    glGetNVRobustnessVideoMemoryPurge :: forall (m :: * -> *). MonadIO m => m Bool
    glGetNVRobustnessVideoMemoryPurge = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_robustness_video_memory_purge")

    -- | Is the <https://www.opengl.org/registry/specs/NV/robustness_video_memory_purge.txt NV_robustness_video_memory_purge> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetNVRobustnessVideoMemoryPurge' in those cases instead.
    gl_NV_robustness_video_memory_purge :: Bool
    gl_NV_robustness_video_memory_purge :: Bool
    gl_NV_robustness_video_memory_purge = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_robustness_video_memory_purge" Set String
    extensions
    {-# NOINLINE gl_NV_robustness_video_memory_purge #-}

    -- | Is the <https://www.opengl.org/registry/specs/NV/sample_locations.txt NV_sample_locations> extension supported?
    glGetNVSampleLocations :: MonadIO m => m Bool
    glGetNVSampleLocations :: forall (m :: * -> *). MonadIO m => m Bool
    glGetNVSampleLocations = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_sample_locations")

    -- | Is the <https://www.opengl.org/registry/specs/NV/sample_locations.txt NV_sample_locations> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetNVSampleLocations' in those cases instead.
    gl_NV_sample_locations :: Bool
    gl_NV_sample_locations :: Bool
    gl_NV_sample_locations = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_sample_locations" Set String
    extensions
    {-# NOINLINE gl_NV_sample_locations #-}

    -- | Is the <https://www.opengl.org/registry/specs/NV/scissor_exclusive.txt NV_scissor_exclusive> extension supported?
    glGetNVScissorExclusive :: MonadIO m => m Bool
    glGetNVScissorExclusive :: forall (m :: * -> *). MonadIO m => m Bool
    glGetNVScissorExclusive = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_scissor_exclusive")

    -- | Is the <https://www.opengl.org/registry/specs/NV/scissor_exclusive.txt NV_scissor_exclusive> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetNVScissorExclusive' in those cases instead.
    gl_NV_scissor_exclusive :: Bool
    gl_NV_scissor_exclusive :: Bool
    gl_NV_scissor_exclusive = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_scissor_exclusive" Set String
    extensions
    {-# NOINLINE gl_NV_scissor_exclusive #-}

    -- | Is the <https://www.opengl.org/registry/specs/NV/shader_buffer_load.txt NV_shader_buffer_load> extension supported?
    glGetNVShaderBufferLoad :: MonadIO m => m Bool
    glGetNVShaderBufferLoad :: forall (m :: * -> *). MonadIO m => m Bool
    glGetNVShaderBufferLoad = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_shader_buffer_load")

    -- | Is the <https://www.opengl.org/registry/specs/NV/shader_buffer_load.txt NV_shader_buffer_load> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetNVShaderBufferLoad' in those cases instead.
    gl_NV_shader_buffer_load :: Bool
    gl_NV_shader_buffer_load :: Bool
    gl_NV_shader_buffer_load = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_shader_buffer_load" Set String
    extensions
    {-# NOINLINE gl_NV_shader_buffer_load #-}

    -- | Is the <https://www.opengl.org/registry/specs/NV/shader_buffer_store.txt NV_shader_buffer_store> extension supported?
    glGetNVShaderBufferStore :: MonadIO m => m Bool
    glGetNVShaderBufferStore :: forall (m :: * -> *). MonadIO m => m Bool
    glGetNVShaderBufferStore = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_shader_buffer_store")

    -- | Is the <https://www.opengl.org/registry/specs/NV/shader_buffer_store.txt NV_shader_buffer_store> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetNVShaderBufferStore' in those cases instead.
    gl_NV_shader_buffer_store :: Bool
    gl_NV_shader_buffer_store :: Bool
    gl_NV_shader_buffer_store = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_shader_buffer_store" Set String
    extensions
    {-# NOINLINE gl_NV_shader_buffer_store #-}

    -- | Is the <https://www.opengl.org/registry/specs/NV/shader_subgroup_partitioned.txt NV_shader_subgroup_partitioned> extension supported?
    glGetNVShaderSubgroupPartitioned :: MonadIO m => m Bool
    glGetNVShaderSubgroupPartitioned :: forall (m :: * -> *). MonadIO m => m Bool
    glGetNVShaderSubgroupPartitioned = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_shader_subgroup_partitioned")

    -- | Is the <https://www.opengl.org/registry/specs/NV/shader_subgroup_partitioned.txt NV_shader_subgroup_partitioned> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetNVShaderSubgroupPartitioned' in those cases instead.
    gl_NV_shader_subgroup_partitioned :: Bool
    gl_NV_shader_subgroup_partitioned :: Bool
    gl_NV_shader_subgroup_partitioned = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_shader_subgroup_partitioned" Set String
    extensions
    {-# NOINLINE gl_NV_shader_subgroup_partitioned #-}

    -- | Is the <https://www.opengl.org/registry/specs/NV/shader_thread_group.txt NV_shader_thread_group> extension supported?
    glGetNVShaderThreadGroup :: MonadIO m => m Bool
    glGetNVShaderThreadGroup :: forall (m :: * -> *). MonadIO m => m Bool
    glGetNVShaderThreadGroup = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_shader_thread_group")

    -- | Is the <https://www.opengl.org/registry/specs/NV/shader_thread_group.txt NV_shader_thread_group> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetNVShaderThreadGroup' in those cases instead.
    gl_NV_shader_thread_group :: Bool
    gl_NV_shader_thread_group :: Bool
    gl_NV_shader_thread_group = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_shader_thread_group" Set String
    extensions
    {-# NOINLINE gl_NV_shader_thread_group #-}

    -- | Is the <https://www.opengl.org/registry/specs/NV/shading_rate_image.txt NV_shading_rate_image> extension supported?
    glGetNVShadingRateImage :: MonadIO m => m Bool
    glGetNVShadingRateImage :: forall (m :: * -> *). MonadIO m => m Bool
    glGetNVShadingRateImage = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_shading_rate_image")

    -- | Is the <https://www.opengl.org/registry/specs/NV/shading_rate_image.txt NV_shading_rate_image> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetNVShadingRateImage' in those cases instead.
    gl_NV_shading_rate_image :: Bool
    gl_NV_shading_rate_image :: Bool
    gl_NV_shading_rate_image = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_shading_rate_image" Set String
    extensions
    {-# NOINLINE gl_NV_shading_rate_image #-}

    -- | Is the <https://www.opengl.org/registry/specs/NV/tessellation_program5.txt NV_tessellation_program5> extension supported?
    glGetNVTessellationProgram5 :: MonadIO m => m Bool
    glGetNVTessellationProgram5 :: forall (m :: * -> *). MonadIO m => m Bool
    glGetNVTessellationProgram5 = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_tessellation_program5")

    -- | Is the <https://www.opengl.org/registry/specs/NV/tessellation_program5.txt NV_tessellation_program5> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetNVTessellationProgram5' in those cases instead.
    gl_NV_tessellation_program5 :: Bool
    gl_NV_tessellation_program5 :: Bool
    gl_NV_tessellation_program5 = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_tessellation_program5" Set String
    extensions
    {-# NOINLINE gl_NV_tessellation_program5 #-}

    -- | Is the <https://www.opengl.org/registry/specs/NV/texgen_emboss.txt NV_texgen_emboss> extension supported?
    glGetNVTexgenEmboss :: MonadIO m => m Bool
    glGetNVTexgenEmboss :: forall (m :: * -> *). MonadIO m => m Bool
    glGetNVTexgenEmboss = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_texgen_emboss")

    -- | Is the <https://www.opengl.org/registry/specs/NV/texgen_emboss.txt NV_texgen_emboss> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetNVTexgenEmboss' in those cases instead.
    gl_NV_texgen_emboss :: Bool
    gl_NV_texgen_emboss :: Bool
    gl_NV_texgen_emboss = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_texgen_emboss" Set String
    extensions
    {-# NOINLINE gl_NV_texgen_emboss #-}

    -- | Is the <https://www.opengl.org/registry/specs/NV/texgen_reflection.txt NV_texgen_reflection> extension supported?
    glGetNVTexgenReflection :: MonadIO m => m Bool
    glGetNVTexgenReflection :: forall (m :: * -> *). MonadIO m => m Bool
    glGetNVTexgenReflection = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_texgen_reflection")

    -- | Is the <https://www.opengl.org/registry/specs/NV/texgen_reflection.txt NV_texgen_reflection> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetNVTexgenReflection' in those cases instead.
    gl_NV_texgen_reflection :: Bool
    gl_NV_texgen_reflection :: Bool
    gl_NV_texgen_reflection = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_texgen_reflection" Set String
    extensions
    {-# NOINLINE gl_NV_texgen_reflection #-}

    -- | Is the <https://www.opengl.org/registry/specs/NV/texture_barrier.txt NV_texture_barrier> extension supported?
    glGetNVTextureBarrier :: MonadIO m => m Bool
    glGetNVTextureBarrier :: forall (m :: * -> *). MonadIO m => m Bool
    glGetNVTextureBarrier = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_texture_barrier")

    -- | Is the <https://www.opengl.org/registry/specs/NV/texture_barrier.txt NV_texture_barrier> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetNVTextureBarrier' in those cases instead.
    gl_NV_texture_barrier :: Bool
    gl_NV_texture_barrier :: Bool
    gl_NV_texture_barrier = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_texture_barrier" Set String
    extensions
    {-# NOINLINE gl_NV_texture_barrier #-}

    -- | Is the <https://www.opengl.org/registry/specs/NV/texture_env_combine4.txt NV_texture_env_combine4> extension supported?
    glGetNVTextureEnvCombine4 :: MonadIO m => m Bool
    glGetNVTextureEnvCombine4 :: forall (m :: * -> *). MonadIO m => m Bool
    glGetNVTextureEnvCombine4 = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_texture_env_combine4")

    -- | Is the <https://www.opengl.org/registry/specs/NV/texture_env_combine4.txt NV_texture_env_combine4> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetNVTextureEnvCombine4' in those cases instead.
    gl_NV_texture_env_combine4 :: Bool
    gl_NV_texture_env_combine4 :: Bool
    gl_NV_texture_env_combine4 = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_texture_env_combine4" Set String
    extensions
    {-# NOINLINE gl_NV_texture_env_combine4 #-}

    -- | Is the <https://www.opengl.org/registry/specs/NV/texture_expand_normal.txt NV_texture_expand_normal> extension supported?
    glGetNVTextureExpandNormal :: MonadIO m => m Bool
    glGetNVTextureExpandNormal :: forall (m :: * -> *). MonadIO m => m Bool
    glGetNVTextureExpandNormal = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_texture_expand_normal")

    -- | Is the <https://www.opengl.org/registry/specs/NV/texture_expand_normal.txt NV_texture_expand_normal> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetNVTextureExpandNormal' in those cases instead.
    gl_NV_texture_expand_normal :: Bool
    gl_NV_texture_expand_normal :: Bool
    gl_NV_texture_expand_normal = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_texture_expand_normal" Set String
    extensions
    {-# NOINLINE gl_NV_texture_expand_normal #-}

    -- | Is the <https://www.opengl.org/registry/specs/NV/texture_multisample.txt NV_texture_multisample> extension supported?
    glGetNVTextureMultisample :: MonadIO m => m Bool
    glGetNVTextureMultisample :: forall (m :: * -> *). MonadIO m => m Bool
    glGetNVTextureMultisample = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_texture_multisample")

    -- | Is the <https://www.opengl.org/registry/specs/NV/texture_multisample.txt NV_texture_multisample> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetNVTextureMultisample' in those cases instead.
    gl_NV_texture_multisample :: Bool
    gl_NV_texture_multisample :: Bool
    gl_NV_texture_multisample = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_texture_multisample" Set String
    extensions
    {-# NOINLINE gl_NV_texture_multisample #-}

    -- | Is the <https://www.opengl.org/registry/specs/NV/texture_rectangle.txt NV_texture_rectangle> extension supported?
    glGetNVTextureRectangle :: MonadIO m => m Bool
    glGetNVTextureRectangle :: forall (m :: * -> *). MonadIO m => m Bool
    glGetNVTextureRectangle = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_texture_rectangle")

    -- | Is the <https://www.opengl.org/registry/specs/NV/texture_rectangle.txt NV_texture_rectangle> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetNVTextureRectangle' in those cases instead.
    gl_NV_texture_rectangle :: Bool
    gl_NV_texture_rectangle :: Bool
    gl_NV_texture_rectangle = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_texture_rectangle" Set String
    extensions
    {-# NOINLINE gl_NV_texture_rectangle #-}

    -- | Is the <https://www.opengl.org/registry/specs/NV/texture_shader.txt NV_texture_shader> extension supported?
    glGetNVTextureShader :: MonadIO m => m Bool
    glGetNVTextureShader :: forall (m :: * -> *). MonadIO m => m Bool
    glGetNVTextureShader = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_texture_shader")

    -- | Is the <https://www.opengl.org/registry/specs/NV/texture_shader.txt NV_texture_shader> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetNVTextureShader' in those cases instead.
    gl_NV_texture_shader :: Bool
    gl_NV_texture_shader :: Bool
    gl_NV_texture_shader = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_texture_shader" Set String
    extensions
    {-# NOINLINE gl_NV_texture_shader #-}

    -- | Is the <https://www.opengl.org/registry/specs/NV/texture_shader2.txt NV_texture_shader2> extension supported?
    glGetNVTextureShader2 :: MonadIO m => m Bool
    glGetNVTextureShader2 :: forall (m :: * -> *). MonadIO m => m Bool
    glGetNVTextureShader2 = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_texture_shader2")

    -- | Is the <https://www.opengl.org/registry/specs/NV/texture_shader2.txt NV_texture_shader2> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetNVTextureShader2' in those cases instead.
    gl_NV_texture_shader2 :: Bool
    gl_NV_texture_shader2 :: Bool
    gl_NV_texture_shader2 = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_texture_shader2" Set String
    extensions
    {-# NOINLINE gl_NV_texture_shader2 #-}

    -- | Is the <https://www.opengl.org/registry/specs/NV/texture_shader3.txt NV_texture_shader3> extension supported?
    glGetNVTextureShader3 :: MonadIO m => m Bool
    glGetNVTextureShader3 :: forall (m :: * -> *). MonadIO m => m Bool
    glGetNVTextureShader3 = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_texture_shader3")

    -- | Is the <https://www.opengl.org/registry/specs/NV/texture_shader3.txt NV_texture_shader3> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetNVTextureShader3' in those cases instead.
    gl_NV_texture_shader3 :: Bool
    gl_NV_texture_shader3 :: Bool
    gl_NV_texture_shader3 = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_texture_shader3" Set String
    extensions
    {-# NOINLINE gl_NV_texture_shader3 #-}

    -- | Is the <https://www.opengl.org/registry/specs/NV/transform_feedback.txt NV_transform_feedback> extension supported?
    glGetNVTransformFeedback :: MonadIO m => m Bool
    glGetNVTransformFeedback :: forall (m :: * -> *). MonadIO m => m Bool
    glGetNVTransformFeedback = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_transform_feedback")

    -- | Is the <https://www.opengl.org/registry/specs/NV/transform_feedback.txt NV_transform_feedback> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetNVTransformFeedback' in those cases instead.
    gl_NV_transform_feedback :: Bool
    gl_NV_transform_feedback :: Bool
    gl_NV_transform_feedback = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_transform_feedback" Set String
    extensions
    {-# NOINLINE gl_NV_transform_feedback #-}

    -- | Is the <https://www.opengl.org/registry/specs/NV/transform_feedback2.txt NV_transform_feedback2> extension supported?
    glGetNVTransformFeedback2 :: MonadIO m => m Bool
    glGetNVTransformFeedback2 :: forall (m :: * -> *). MonadIO m => m Bool
    glGetNVTransformFeedback2 = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_transform_feedback2")

    -- | Is the <https://www.opengl.org/registry/specs/NV/transform_feedback2.txt NV_transform_feedback2> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetNVTransformFeedback2' in those cases instead.
    gl_NV_transform_feedback2 :: Bool
    gl_NV_transform_feedback2 :: Bool
    gl_NV_transform_feedback2 = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_transform_feedback2" Set String
    extensions
    {-# NOINLINE gl_NV_transform_feedback2 #-}

    -- | Is the <https://www.opengl.org/registry/specs/NV/uniform_buffer_unified_memory.txt NV_uniform_buffer_unified_memory> extension supported?
    glGetNVUniformBufferUnifiedMemory :: MonadIO m => m Bool
    glGetNVUniformBufferUnifiedMemory :: forall (m :: * -> *). MonadIO m => m Bool
    glGetNVUniformBufferUnifiedMemory = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_uniform_buffer_unified_memory")

    -- | Is the <https://www.opengl.org/registry/specs/NV/uniform_buffer_unified_memory.txt NV_uniform_buffer_unified_memory> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetNVUniformBufferUnifiedMemory' in those cases instead.
    gl_NV_uniform_buffer_unified_memory :: Bool
    gl_NV_uniform_buffer_unified_memory :: Bool
    gl_NV_uniform_buffer_unified_memory = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_uniform_buffer_unified_memory" Set String
    extensions
    {-# NOINLINE gl_NV_uniform_buffer_unified_memory #-}

    -- | Is the <https://www.opengl.org/registry/specs/NV/vdpau_interop.txt NV_vdpau_interop> extension supported?
    glGetNVVDPAUInterop :: MonadIO m => m Bool
    glGetNVVDPAUInterop :: forall (m :: * -> *). MonadIO m => m Bool
    glGetNVVDPAUInterop = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_vdpau_interop")

    -- | Is the <https://www.opengl.org/registry/specs/NV/vdpau_interop.txt NV_vdpau_interop> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetNVVDPAUInterop' in those cases instead.
    gl_NV_vdpau_interop :: Bool
    gl_NV_vdpau_interop :: Bool
    gl_NV_vdpau_interop = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_vdpau_interop" Set String
    extensions
    {-# NOINLINE gl_NV_vdpau_interop #-}

    -- | Is the <https://www.opengl.org/registry/specs/NV/vdpau_interop2.txt NV_vdpau_interop2> extension supported?
    glGetNVVDPAUInterop2 :: MonadIO m => m Bool
    glGetNVVDPAUInterop2 :: forall (m :: * -> *). MonadIO m => m Bool
    glGetNVVDPAUInterop2 = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_vdpau_interop2")

    -- | Is the <https://www.opengl.org/registry/specs/NV/vdpau_interop2.txt NV_vdpau_interop2> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetNVVDPAUInterop2' in those cases instead.
    gl_NV_vdpau_interop2 :: Bool
    gl_NV_vdpau_interop2 :: Bool
    gl_NV_vdpau_interop2 = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_vdpau_interop2" Set String
    extensions
    {-# NOINLINE gl_NV_vdpau_interop2 #-}

    -- | Is the <https://www.opengl.org/registry/specs/NV/vertex_array_range.txt NV_vertex_array_range> extension supported?
    glGetNVVertexArrayRange :: MonadIO m => m Bool
    glGetNVVertexArrayRange :: forall (m :: * -> *). MonadIO m => m Bool
    glGetNVVertexArrayRange = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_vertex_array_range")

    -- | Is the <https://www.opengl.org/registry/specs/NV/vertex_array_range.txt NV_vertex_array_range> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetNVVertexArrayRange' in those cases instead.
    gl_NV_vertex_array_range :: Bool
    gl_NV_vertex_array_range :: Bool
    gl_NV_vertex_array_range = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_vertex_array_range" Set String
    extensions
    {-# NOINLINE gl_NV_vertex_array_range #-}

    -- | Is the <https://www.opengl.org/registry/specs/NV/vertex_array_range2.txt NV_vertex_array_range2> extension supported?
    glGetNVVertexArrayRange2 :: MonadIO m => m Bool
    glGetNVVertexArrayRange2 :: forall (m :: * -> *). MonadIO m => m Bool
    glGetNVVertexArrayRange2 = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_vertex_array_range2")

    -- | Is the <https://www.opengl.org/registry/specs/NV/vertex_array_range2.txt NV_vertex_array_range2> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetNVVertexArrayRange2' in those cases instead.
    gl_NV_vertex_array_range2 :: Bool
    gl_NV_vertex_array_range2 :: Bool
    gl_NV_vertex_array_range2 = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_vertex_array_range2" Set String
    extensions
    {-# NOINLINE gl_NV_vertex_array_range2 #-}

    -- | Is the <https://www.opengl.org/registry/specs/NV/vertex_attrib_integer_64bit.txt NV_vertex_attrib_integer_64bit> extension supported?
    glGetNVVertexAttribInteger64Bit :: MonadIO m => m Bool
    glGetNVVertexAttribInteger64Bit :: forall (m :: * -> *). MonadIO m => m Bool
    glGetNVVertexAttribInteger64Bit = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_vertex_attrib_integer_64bit")

    -- | Is the <https://www.opengl.org/registry/specs/NV/vertex_attrib_integer_64bit.txt NV_vertex_attrib_integer_64bit> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetNVVertexAttribInteger64Bit' in those cases instead.
    gl_NV_vertex_attrib_integer_64bit :: Bool
    gl_NV_vertex_attrib_integer_64bit :: Bool
    gl_NV_vertex_attrib_integer_64bit = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_vertex_attrib_integer_64bit" Set String
    extensions
    {-# NOINLINE gl_NV_vertex_attrib_integer_64bit #-}

    -- | Is the <https://www.opengl.org/registry/specs/NV/vertex_buffer_unified_memory.txt NV_vertex_buffer_unified_memory> extension supported?
    glGetNVVertexBufferUnifiedMemory :: MonadIO m => m Bool
    glGetNVVertexBufferUnifiedMemory :: forall (m :: * -> *). MonadIO m => m Bool
    glGetNVVertexBufferUnifiedMemory = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_vertex_buffer_unified_memory")

    -- | Is the <https://www.opengl.org/registry/specs/NV/vertex_buffer_unified_memory.txt NV_vertex_buffer_unified_memory> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetNVVertexBufferUnifiedMemory' in those cases instead.
    gl_NV_vertex_buffer_unified_memory :: Bool
    gl_NV_vertex_buffer_unified_memory :: Bool
    gl_NV_vertex_buffer_unified_memory = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_vertex_buffer_unified_memory" Set String
    extensions
    {-# NOINLINE gl_NV_vertex_buffer_unified_memory #-}

    -- | Is the <https://www.opengl.org/registry/specs/NV/vertex_program.txt NV_vertex_program> extension supported?
    glGetNVVertexProgram :: MonadIO m => m Bool
    glGetNVVertexProgram :: forall (m :: * -> *). MonadIO m => m Bool
    glGetNVVertexProgram = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_vertex_program")

    -- | Is the <https://www.opengl.org/registry/specs/NV/vertex_program.txt NV_vertex_program> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetNVVertexProgram' in those cases instead.
    gl_NV_vertex_program :: Bool
    gl_NV_vertex_program :: Bool
    gl_NV_vertex_program = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_vertex_program" Set String
    extensions
    {-# NOINLINE gl_NV_vertex_program #-}

    -- | Is the <https://www.opengl.org/registry/specs/NV/vertex_program2_option.txt NV_vertex_program2_option> extension supported?
    glGetNVVertexProgram2Option :: MonadIO m => m Bool
    glGetNVVertexProgram2Option :: forall (m :: * -> *). MonadIO m => m Bool
    glGetNVVertexProgram2Option = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_vertex_program2_option")

    -- | Is the <https://www.opengl.org/registry/specs/NV/vertex_program2_option.txt NV_vertex_program2_option> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetNVVertexProgram2Option' in those cases instead.
    gl_NV_vertex_program2_option :: Bool
    gl_NV_vertex_program2_option :: Bool
    gl_NV_vertex_program2_option = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_vertex_program2_option" Set String
    extensions
    {-# NOINLINE gl_NV_vertex_program2_option #-}

    -- | Is the <https://www.opengl.org/registry/specs/NV/vertex_program3.txt NV_vertex_program3> extension supported?
    glGetNVVertexProgram3 :: MonadIO m => m Bool
    glGetNVVertexProgram3 :: forall (m :: * -> *). MonadIO m => m Bool
    glGetNVVertexProgram3 = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_vertex_program3")

    -- | Is the <https://www.opengl.org/registry/specs/NV/vertex_program3.txt NV_vertex_program3> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetNVVertexProgram3' in those cases instead.
    gl_NV_vertex_program3 :: Bool
    gl_NV_vertex_program3 :: Bool
    gl_NV_vertex_program3 = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_vertex_program3" Set String
    extensions
    {-# NOINLINE gl_NV_vertex_program3 #-}

    -- | Is the <https://www.opengl.org/registry/specs/NV/vertex_program4.txt NV_vertex_program4> extension supported?
    glGetNVVertexProgram4 :: MonadIO m => m Bool
    glGetNVVertexProgram4 :: forall (m :: * -> *). MonadIO m => m Bool
    glGetNVVertexProgram4 = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_vertex_program4")

    -- | Is the <https://www.opengl.org/registry/specs/NV/vertex_program4.txt NV_vertex_program4> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetNVVertexProgram4' in those cases instead.
    gl_NV_vertex_program4 :: Bool
    gl_NV_vertex_program4 :: Bool
    gl_NV_vertex_program4 = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_vertex_program4" Set String
    extensions
    {-# NOINLINE gl_NV_vertex_program4 #-}

    -- | Is the <https://www.opengl.org/registry/specs/NV/video_capture.txt NV_video_capture> extension supported?
    glGetNVVideoCapture :: MonadIO m => m Bool
    glGetNVVideoCapture :: forall (m :: * -> *). MonadIO m => m Bool
    glGetNVVideoCapture = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_video_capture")

    -- | Is the <https://www.opengl.org/registry/specs/NV/video_capture.txt NV_video_capture> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetNVVideoCapture' in those cases instead.
    gl_NV_video_capture :: Bool
    gl_NV_video_capture :: Bool
    gl_NV_video_capture = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_video_capture" Set String
    extensions
    {-# NOINLINE gl_NV_video_capture #-}

    -- | Is the <https://www.opengl.org/registry/specs/NV/viewport_swizzle.txt NV_viewport_swizzle> extension supported?
    glGetNVViewportSwizzle :: MonadIO m => m Bool
    glGetNVViewportSwizzle :: forall (m :: * -> *). MonadIO m => m Bool
    glGetNVViewportSwizzle = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_viewport_swizzle")

    -- | Is the <https://www.opengl.org/registry/specs/NV/viewport_swizzle.txt NV_viewport_swizzle> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetNVViewportSwizzle' in those cases instead.
    gl_NV_viewport_swizzle :: Bool
    gl_NV_viewport_swizzle :: Bool
    gl_NV_viewport_swizzle = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NV_viewport_swizzle" Set String
    extensions
    {-# NOINLINE gl_NV_viewport_swizzle #-}

    -- | Is the <https://www.opengl.org/registry/specs/NVX/nvx_conditional_render.txt NVX_conditional_render> extension supported?
    glGetNVXConditionalRender :: MonadIO m => m Bool
    glGetNVXConditionalRender :: forall (m :: * -> *). MonadIO m => m Bool
    glGetNVXConditionalRender = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NVX_conditional_render")

    -- | Is the <https://www.opengl.org/registry/specs/NVX/nvx_conditional_render.txt NVX_conditional_render> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetNVXConditionalRender' in those cases instead.
    gl_NVX_conditional_render :: Bool
    gl_NVX_conditional_render :: Bool
    gl_NVX_conditional_render = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NVX_conditional_render" Set String
    extensions
    {-# NOINLINE gl_NVX_conditional_render #-}

    -- | Is the <https://www.opengl.org/registry/specs/NVX/gpu_memory_info.txt NVX_gpu_memory_info> extension supported?
    glGetNVXGPUMemoryInfo :: MonadIO m => m Bool
    glGetNVXGPUMemoryInfo :: forall (m :: * -> *). MonadIO m => m Bool
    glGetNVXGPUMemoryInfo = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NVX_gpu_memory_info")

    -- | Is the <https://www.opengl.org/registry/specs/NVX/gpu_memory_info.txt NVX_gpu_memory_info> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetNVXGPUMemoryInfo' in those cases instead.
    gl_NVX_gpu_memory_info :: Bool
    gl_NVX_gpu_memory_info :: Bool
    gl_NVX_gpu_memory_info = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NVX_gpu_memory_info" Set String
    extensions
    {-# NOINLINE gl_NVX_gpu_memory_info #-}

    -- | Is the <https://www.opengl.org/registry/specs/NVX/gpu_multicast2.txt NVX_gpu_multicast2> extension supported?
    glGetNVXGPUMulticast2 :: MonadIO m => m Bool
    glGetNVXGPUMulticast2 :: forall (m :: * -> *). MonadIO m => m Bool
    glGetNVXGPUMulticast2 = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NVX_gpu_multicast2")

    -- | Is the <https://www.opengl.org/registry/specs/NVX/gpu_multicast2.txt NVX_gpu_multicast2> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetNVXGPUMulticast2' in those cases instead.
    gl_NVX_gpu_multicast2 :: Bool
    gl_NVX_gpu_multicast2 :: Bool
    gl_NVX_gpu_multicast2 = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NVX_gpu_multicast2" Set String
    extensions
    {-# NOINLINE gl_NVX_gpu_multicast2 #-}

    -- | Is the <https://www.opengl.org/registry/specs/NVX/linked_gpu_multicast.txt NVX_linked_gpu_multicast> extension supported?
    glGetNVXLinkedGPUMulticast :: MonadIO m => m Bool
    glGetNVXLinkedGPUMulticast :: forall (m :: * -> *). MonadIO m => m Bool
    glGetNVXLinkedGPUMulticast = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NVX_linked_gpu_multicast")

    -- | Is the <https://www.opengl.org/registry/specs/NVX/linked_gpu_multicast.txt NVX_linked_gpu_multicast> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetNVXLinkedGPUMulticast' in those cases instead.
    gl_NVX_linked_gpu_multicast :: Bool
    gl_NVX_linked_gpu_multicast :: Bool
    gl_NVX_linked_gpu_multicast = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NVX_linked_gpu_multicast" Set String
    extensions
    {-# NOINLINE gl_NVX_linked_gpu_multicast #-}

    -- | Is the <https://www.opengl.org/registry/specs/NVX/progress_fence.txt NVX_progress_fence> extension supported?
    glGetNVXProgressFence :: MonadIO m => m Bool
    glGetNVXProgressFence :: forall (m :: * -> *). MonadIO m => m Bool
    glGetNVXProgressFence = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NVX_progress_fence")

    -- | Is the <https://www.opengl.org/registry/specs/NVX/progress_fence.txt NVX_progress_fence> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetNVXProgressFence' in those cases instead.
    gl_NVX_progress_fence :: Bool
    gl_NVX_progress_fence :: Bool
    gl_NVX_progress_fence = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_NVX_progress_fence" Set String
    extensions
    {-# NOINLINE gl_NVX_progress_fence #-}

    -- | Is the <https://www.opengl.org/registry/specs/OES/OES_byte_coordinates.txt OES_byte_coordinates> extension supported?
    glGetOESByteCoordinates :: MonadIO m => m Bool
    glGetOESByteCoordinates :: forall (m :: * -> *). MonadIO m => m Bool
    glGetOESByteCoordinates = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_OES_byte_coordinates")

    -- | Is the <https://www.opengl.org/registry/specs/OES/OES_byte_coordinates.txt OES_byte_coordinates> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetOESByteCoordinates' in those cases instead.
    gl_OES_byte_coordinates :: Bool
    gl_OES_byte_coordinates :: Bool
    gl_OES_byte_coordinates = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_OES_byte_coordinates" Set String
    extensions
    {-# NOINLINE gl_OES_byte_coordinates #-}

    -- | Is the <https://www.opengl.org/registry/specs/OES/OES_compressed_paletted_texture.txt OES_compressed_paletted_texture> extension supported?
    glGetOESCompressedPalettedTexture :: MonadIO m => m Bool
    glGetOESCompressedPalettedTexture :: forall (m :: * -> *). MonadIO m => m Bool
    glGetOESCompressedPalettedTexture = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_OES_compressed_paletted_texture")

    -- | Is the <https://www.opengl.org/registry/specs/OES/OES_compressed_paletted_texture.txt OES_compressed_paletted_texture> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetOESCompressedPalettedTexture' in those cases instead.
    gl_OES_compressed_paletted_texture :: Bool
    gl_OES_compressed_paletted_texture :: Bool
    gl_OES_compressed_paletted_texture = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_OES_compressed_paletted_texture" Set String
    extensions
    {-# NOINLINE gl_OES_compressed_paletted_texture #-}

    -- | Is the <https://www.opengl.org/registry/specs/OES/OES_fixed_point.txt OES_fixed_point> extension supported?
    glGetOESFixedPoint :: MonadIO m => m Bool
    glGetOESFixedPoint :: forall (m :: * -> *). MonadIO m => m Bool
    glGetOESFixedPoint = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_OES_fixed_point")

    -- | Is the <https://www.opengl.org/registry/specs/OES/OES_fixed_point.txt OES_fixed_point> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetOESFixedPoint' in those cases instead.
    gl_OES_fixed_point :: Bool
    gl_OES_fixed_point :: Bool
    gl_OES_fixed_point = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_OES_fixed_point" Set String
    extensions
    {-# NOINLINE gl_OES_fixed_point #-}

    -- | Is the <https://www.opengl.org/registry/specs/OES/OES_query_matrix.txt OES_query_matrix> extension supported?
    glGetOESQueryMatrix :: MonadIO m => m Bool
    glGetOESQueryMatrix :: forall (m :: * -> *). MonadIO m => m Bool
    glGetOESQueryMatrix = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_OES_query_matrix")

    -- | Is the <https://www.opengl.org/registry/specs/OES/OES_query_matrix.txt OES_query_matrix> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetOESQueryMatrix' in those cases instead.
    gl_OES_query_matrix :: Bool
    gl_OES_query_matrix :: Bool
    gl_OES_query_matrix = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_OES_query_matrix" Set String
    extensions
    {-# NOINLINE gl_OES_query_matrix #-}

    -- | Is the <https://www.opengl.org/registry/specs/OES/OES_read_format.txt OES_read_format> extension supported?
    glGetOESReadFormat :: MonadIO m => m Bool
    glGetOESReadFormat :: forall (m :: * -> *). MonadIO m => m Bool
    glGetOESReadFormat = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_OES_read_format")

    -- | Is the <https://www.opengl.org/registry/specs/OES/OES_read_format.txt OES_read_format> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetOESReadFormat' in those cases instead.
    gl_OES_read_format :: Bool
    gl_OES_read_format :: Bool
    gl_OES_read_format = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_OES_read_format" Set String
    extensions
    {-# NOINLINE gl_OES_read_format #-}

    -- | Is the <https://www.opengl.org/registry/specs/OES/OES_single_precision.txt OES_single_precision> extension supported?
    glGetOESSinglePrecision :: MonadIO m => m Bool
    glGetOESSinglePrecision :: forall (m :: * -> *). MonadIO m => m Bool
    glGetOESSinglePrecision = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_OES_single_precision")

    -- | Is the <https://www.opengl.org/registry/specs/OES/OES_single_precision.txt OES_single_precision> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetOESSinglePrecision' in those cases instead.
    gl_OES_single_precision :: Bool
    gl_OES_single_precision :: Bool
    gl_OES_single_precision = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_OES_single_precision" Set String
    extensions
    {-# NOINLINE gl_OES_single_precision #-}

    -- | Is the <https://www.opengl.org/registry/specs/OML/interlace.txt OML_interlace> extension supported?
    glGetOMLInterlace :: MonadIO m => m Bool
    glGetOMLInterlace :: forall (m :: * -> *). MonadIO m => m Bool
    glGetOMLInterlace = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_OML_interlace")

    -- | Is the <https://www.opengl.org/registry/specs/OML/interlace.txt OML_interlace> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetOMLInterlace' in those cases instead.
    gl_OML_interlace :: Bool
    gl_OML_interlace :: Bool
    gl_OML_interlace = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_OML_interlace" Set String
    extensions
    {-# NOINLINE gl_OML_interlace #-}

    -- | Is the <https://www.opengl.org/registry/specs/OML/resample.txt OML_resample> extension supported?
    glGetOMLResample :: MonadIO m => m Bool
    glGetOMLResample :: forall (m :: * -> *). MonadIO m => m Bool
    glGetOMLResample = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_OML_resample")

    -- | Is the <https://www.opengl.org/registry/specs/OML/resample.txt OML_resample> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetOMLResample' in those cases instead.
    gl_OML_resample :: Bool
    gl_OML_resample :: Bool
    gl_OML_resample = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_OML_resample" Set String
    extensions
    {-# NOINLINE gl_OML_resample #-}

    -- | Is the <https://www.opengl.org/registry/specs/OML/subsample.txt OML_subsample> extension supported?
    glGetOMLSubsample :: MonadIO m => m Bool
    glGetOMLSubsample :: forall (m :: * -> *). MonadIO m => m Bool
    glGetOMLSubsample = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_OML_subsample")

    -- | Is the <https://www.opengl.org/registry/specs/OML/subsample.txt OML_subsample> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetOMLSubsample' in those cases instead.
    gl_OML_subsample :: Bool
    gl_OML_subsample :: Bool
    gl_OML_subsample = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_OML_subsample" Set String
    extensions
    {-# NOINLINE gl_OML_subsample #-}

    -- | Is the <https://www.opengl.org/registry/specs/OVR/multiview.txt OVR_multiview> extension supported?
    glGetOVRMultiview :: MonadIO m => m Bool
    glGetOVRMultiview :: forall (m :: * -> *). MonadIO m => m Bool
    glGetOVRMultiview = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_OVR_multiview")

    -- | Is the <https://www.opengl.org/registry/specs/OVR/multiview.txt OVR_multiview> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetOVRMultiview' in those cases instead.
    gl_OVR_multiview :: Bool
    gl_OVR_multiview :: Bool
    gl_OVR_multiview = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_OVR_multiview" Set String
    extensions
    {-# NOINLINE gl_OVR_multiview #-}

    -- | Is the <https://www.opengl.org/registry/specs/PGI/misc_hints.txt PGI_misc_hints> extension supported?
    glGetPGIMiscHints :: MonadIO m => m Bool
    glGetPGIMiscHints :: forall (m :: * -> *). MonadIO m => m Bool
    glGetPGIMiscHints = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_PGI_misc_hints")

    -- | Is the <https://www.opengl.org/registry/specs/PGI/misc_hints.txt PGI_misc_hints> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetPGIMiscHints' in those cases instead.
    gl_PGI_misc_hints :: Bool
    gl_PGI_misc_hints :: Bool
    gl_PGI_misc_hints = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_PGI_misc_hints" Set String
    extensions
    {-# NOINLINE gl_PGI_misc_hints #-}

    -- | Is the <https://www.opengl.org/registry/specs/PGI/vertex_hints.txt PGI_vertex_hints> extension supported?
    glGetPGIVertexHints :: MonadIO m => m Bool
    glGetPGIVertexHints :: forall (m :: * -> *). MonadIO m => m Bool
    glGetPGIVertexHints = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_PGI_vertex_hints")

    -- | Is the <https://www.opengl.org/registry/specs/PGI/vertex_hints.txt PGI_vertex_hints> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetPGIVertexHints' in those cases instead.
    gl_PGI_vertex_hints :: Bool
    gl_PGI_vertex_hints :: Bool
    gl_PGI_vertex_hints = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_PGI_vertex_hints" Set String
    extensions
    {-# NOINLINE gl_PGI_vertex_hints #-}

    -- | Is the <https://www.opengl.org/registry/specs/REND/screen_coordinates.txt REND_screen_coordinates> extension supported?
    glGetRENDScreenCoordinates :: MonadIO m => m Bool
    glGetRENDScreenCoordinates :: forall (m :: * -> *). MonadIO m => m Bool
    glGetRENDScreenCoordinates = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_REND_screen_coordinates")

    -- | Is the <https://www.opengl.org/registry/specs/REND/screen_coordinates.txt REND_screen_coordinates> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetRENDScreenCoordinates' in those cases instead.
    gl_REND_screen_coordinates :: Bool
    gl_REND_screen_coordinates :: Bool
    gl_REND_screen_coordinates = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_REND_screen_coordinates" Set String
    extensions
    {-# NOINLINE gl_REND_screen_coordinates #-}

    -- | Is the <https://www.opengl.org/registry/specs/S3/s3tc.txt S3_s3tc> extension supported?
    glGetS3S3TC :: MonadIO m => m Bool
    glGetS3S3TC :: forall (m :: * -> *). MonadIO m => m Bool
    glGetS3S3TC = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_S3_s3tc")

    -- | Is the <https://www.opengl.org/registry/specs/S3/s3tc.txt S3_s3tc> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetS3S3TC' in those cases instead.
    gl_S3_s3tc :: Bool
    gl_S3_s3tc :: Bool
    gl_S3_s3tc = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_S3_s3tc" Set String
    extensions
    {-# NOINLINE gl_S3_s3tc #-}

    -- | Is the <https://www.opengl.org/registry/specs/SGI/color_matrix.txt SGI_color_matrix> extension supported?
    glGetSGIColorMatrix :: MonadIO m => m Bool
    glGetSGIColorMatrix :: forall (m :: * -> *). MonadIO m => m Bool
    glGetSGIColorMatrix = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_SGI_color_matrix")

    -- | Is the <https://www.opengl.org/registry/specs/SGI/color_matrix.txt SGI_color_matrix> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetSGIColorMatrix' in those cases instead.
    gl_SGI_color_matrix :: Bool
    gl_SGI_color_matrix :: Bool
    gl_SGI_color_matrix = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_SGI_color_matrix" Set String
    extensions
    {-# NOINLINE gl_SGI_color_matrix #-}

    -- | Is the <https://www.opengl.org/registry/specs/SGI/color_table.txt SGI_color_table> extension supported?
    glGetSGIColorTable :: MonadIO m => m Bool
    glGetSGIColorTable :: forall (m :: * -> *). MonadIO m => m Bool
    glGetSGIColorTable = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_SGI_color_table")

    -- | Is the <https://www.opengl.org/registry/specs/SGI/color_table.txt SGI_color_table> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetSGIColorTable' in those cases instead.
    gl_SGI_color_table :: Bool
    gl_SGI_color_table :: Bool
    gl_SGI_color_table = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_SGI_color_table" Set String
    extensions
    {-# NOINLINE gl_SGI_color_table #-}

    -- | Is the <https://www.opengl.org/registry/specs/SGI/texture_color_table.txt SGI_texture_color_table> extension supported?
    glGetSGITextureColorTable :: MonadIO m => m Bool
    glGetSGITextureColorTable :: forall (m :: * -> *). MonadIO m => m Bool
    glGetSGITextureColorTable = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_SGI_texture_color_table")

    -- | Is the <https://www.opengl.org/registry/specs/SGI/texture_color_table.txt SGI_texture_color_table> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetSGITextureColorTable' in those cases instead.
    gl_SGI_texture_color_table :: Bool
    gl_SGI_texture_color_table :: Bool
    gl_SGI_texture_color_table = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_SGI_texture_color_table" Set String
    extensions
    {-# NOINLINE gl_SGI_texture_color_table #-}

    -- | Is the <https://www.opengl.org/registry/specs/SGIS/detail_texture.txt SGIS_detail_texture> extension supported?
    glGetSGISDetailTexture :: MonadIO m => m Bool
    glGetSGISDetailTexture :: forall (m :: * -> *). MonadIO m => m Bool
    glGetSGISDetailTexture = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_SGIS_detail_texture")

    -- | Is the <https://www.opengl.org/registry/specs/SGIS/detail_texture.txt SGIS_detail_texture> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetSGISDetailTexture' in those cases instead.
    gl_SGIS_detail_texture :: Bool
    gl_SGIS_detail_texture :: Bool
    gl_SGIS_detail_texture = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_SGIS_detail_texture" Set String
    extensions
    {-# NOINLINE gl_SGIS_detail_texture #-}

    -- | Is the <https://www.opengl.org/registry/specs/SGIS/fog_func.txt SGIS_fog_function> extension supported?
    glGetSGISFogFunction :: MonadIO m => m Bool
    glGetSGISFogFunction :: forall (m :: * -> *). MonadIO m => m Bool
    glGetSGISFogFunction = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_SGIS_fog_function")

    -- | Is the <https://www.opengl.org/registry/specs/SGIS/fog_func.txt SGIS_fog_function> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetSGISFogFunction' in those cases instead.
    gl_SGIS_fog_function :: Bool
    gl_SGIS_fog_function :: Bool
    gl_SGIS_fog_function = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_SGIS_fog_function" Set String
    extensions
    {-# NOINLINE gl_SGIS_fog_function #-}

    -- | Is the <https://www.opengl.org/registry/specs/SGIS/generate_mipmap.txt SGIS_generate_mipmap> extension supported?
    glGetSGISGenerateMipmap :: MonadIO m => m Bool
    glGetSGISGenerateMipmap :: forall (m :: * -> *). MonadIO m => m Bool
    glGetSGISGenerateMipmap = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_SGIS_generate_mipmap")

    -- | Is the <https://www.opengl.org/registry/specs/SGIS/generate_mipmap.txt SGIS_generate_mipmap> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetSGISGenerateMipmap' in those cases instead.
    gl_SGIS_generate_mipmap :: Bool
    gl_SGIS_generate_mipmap :: Bool
    gl_SGIS_generate_mipmap = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_SGIS_generate_mipmap" Set String
    extensions
    {-# NOINLINE gl_SGIS_generate_mipmap #-}

    -- | Is the <https://www.opengl.org/registry/specs/SGIS/multisample.txt SGIS_multisample> extension supported?
    glGetSGISMultisample :: MonadIO m => m Bool
    glGetSGISMultisample :: forall (m :: * -> *). MonadIO m => m Bool
    glGetSGISMultisample = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_SGIS_multisample")

    -- | Is the <https://www.opengl.org/registry/specs/SGIS/multisample.txt SGIS_multisample> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetSGISMultisample' in those cases instead.
    gl_SGIS_multisample :: Bool
    gl_SGIS_multisample :: Bool
    gl_SGIS_multisample = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_SGIS_multisample" Set String
    extensions
    {-# NOINLINE gl_SGIS_multisample #-}

    -- | Is the <https://www.opengl.org/registry/specs/SGIS/pixel_texture.txt SGIS_pixel_texture> extension supported?
    glGetSGISPixelTexture :: MonadIO m => m Bool
    glGetSGISPixelTexture :: forall (m :: * -> *). MonadIO m => m Bool
    glGetSGISPixelTexture = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_SGIS_pixel_texture")

    -- | Is the <https://www.opengl.org/registry/specs/SGIS/pixel_texture.txt SGIS_pixel_texture> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetSGISPixelTexture' in those cases instead.
    gl_SGIS_pixel_texture :: Bool
    gl_SGIS_pixel_texture :: Bool
    gl_SGIS_pixel_texture = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_SGIS_pixel_texture" Set String
    extensions
    {-# NOINLINE gl_SGIS_pixel_texture #-}

    -- | Is the <https://www.opengl.org/registry/specs/SGIS/point_line_texgen.txt SGIS_point_line_texgen> extension supported?
    glGetSGISPointLineTexgen :: MonadIO m => m Bool
    glGetSGISPointLineTexgen :: forall (m :: * -> *). MonadIO m => m Bool
    glGetSGISPointLineTexgen = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_SGIS_point_line_texgen")

    -- | Is the <https://www.opengl.org/registry/specs/SGIS/point_line_texgen.txt SGIS_point_line_texgen> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetSGISPointLineTexgen' in those cases instead.
    gl_SGIS_point_line_texgen :: Bool
    gl_SGIS_point_line_texgen :: Bool
    gl_SGIS_point_line_texgen = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_SGIS_point_line_texgen" Set String
    extensions
    {-# NOINLINE gl_SGIS_point_line_texgen #-}

    -- | Is the <https://www.opengl.org/registry/specs/EXT/point_parameters.txt SGIS_point_parameters> extension supported?
    glGetSGISPointParameters :: MonadIO m => m Bool
    glGetSGISPointParameters :: forall (m :: * -> *). MonadIO m => m Bool
    glGetSGISPointParameters = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_SGIS_point_parameters")

    -- | Is the <https://www.opengl.org/registry/specs/EXT/point_parameters.txt SGIS_point_parameters> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetSGISPointParameters' in those cases instead.
    gl_SGIS_point_parameters :: Bool
    gl_SGIS_point_parameters :: Bool
    gl_SGIS_point_parameters = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_SGIS_point_parameters" Set String
    extensions
    {-# NOINLINE gl_SGIS_point_parameters #-}

    -- | Is the <https://www.opengl.org/registry/specs/SGIS/sharpen_texture.txt SGIS_sharpen_texture> extension supported?
    glGetSGISSharpenTexture :: MonadIO m => m Bool
    glGetSGISSharpenTexture :: forall (m :: * -> *). MonadIO m => m Bool
    glGetSGISSharpenTexture = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_SGIS_sharpen_texture")

    -- | Is the <https://www.opengl.org/registry/specs/SGIS/sharpen_texture.txt SGIS_sharpen_texture> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetSGISSharpenTexture' in those cases instead.
    gl_SGIS_sharpen_texture :: Bool
    gl_SGIS_sharpen_texture :: Bool
    gl_SGIS_sharpen_texture = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_SGIS_sharpen_texture" Set String
    extensions
    {-# NOINLINE gl_SGIS_sharpen_texture #-}

    -- | Is the <https://www.opengl.org/registry/specs/SGIS/texture4D.txt SGIS_texture4D> extension supported?
    glGetSGISTexture4D :: MonadIO m => m Bool
    glGetSGISTexture4D :: forall (m :: * -> *). MonadIO m => m Bool
    glGetSGISTexture4D = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_SGIS_texture4D")

    -- | Is the <https://www.opengl.org/registry/specs/SGIS/texture4D.txt SGIS_texture4D> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetSGISTexture4D' in those cases instead.
    gl_SGIS_texture4D :: Bool
    gl_SGIS_texture4D :: Bool
    gl_SGIS_texture4D = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_SGIS_texture4D" Set String
    extensions
    {-# NOINLINE gl_SGIS_texture4D #-}

    -- | Is the <https://www.opengl.org/registry/specs/SGIS/texture_border_clamp.txt SGIS_texture_border_clamp> extension supported?
    glGetSGISTextureBorderClamp :: MonadIO m => m Bool
    glGetSGISTextureBorderClamp :: forall (m :: * -> *). MonadIO m => m Bool
    glGetSGISTextureBorderClamp = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_SGIS_texture_border_clamp")

    -- | Is the <https://www.opengl.org/registry/specs/SGIS/texture_border_clamp.txt SGIS_texture_border_clamp> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetSGISTextureBorderClamp' in those cases instead.
    gl_SGIS_texture_border_clamp :: Bool
    gl_SGIS_texture_border_clamp :: Bool
    gl_SGIS_texture_border_clamp = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_SGIS_texture_border_clamp" Set String
    extensions
    {-# NOINLINE gl_SGIS_texture_border_clamp #-}

    -- | Is the <https://www.opengl.org/registry/specs/SGIS/texture_color_mask.txt SGIS_texture_color_mask> extension supported?
    glGetSGISTextureColorMask :: MonadIO m => m Bool
    glGetSGISTextureColorMask :: forall (m :: * -> *). MonadIO m => m Bool
    glGetSGISTextureColorMask = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_SGIS_texture_color_mask")

    -- | Is the <https://www.opengl.org/registry/specs/SGIS/texture_color_mask.txt SGIS_texture_color_mask> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetSGISTextureColorMask' in those cases instead.
    gl_SGIS_texture_color_mask :: Bool
    gl_SGIS_texture_color_mask :: Bool
    gl_SGIS_texture_color_mask = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_SGIS_texture_color_mask" Set String
    extensions
    {-# NOINLINE gl_SGIS_texture_color_mask #-}

    -- | Is the <https://www.opengl.org/registry/specs/SGIS/texture_edge_clamp.txt SGIS_texture_edge_clamp> extension supported?
    glGetSGISTextureEdgeClamp :: MonadIO m => m Bool
    glGetSGISTextureEdgeClamp :: forall (m :: * -> *). MonadIO m => m Bool
    glGetSGISTextureEdgeClamp = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_SGIS_texture_edge_clamp")

    -- | Is the <https://www.opengl.org/registry/specs/SGIS/texture_edge_clamp.txt SGIS_texture_edge_clamp> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetSGISTextureEdgeClamp' in those cases instead.
    gl_SGIS_texture_edge_clamp :: Bool
    gl_SGIS_texture_edge_clamp :: Bool
    gl_SGIS_texture_edge_clamp = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_SGIS_texture_edge_clamp" Set String
    extensions
    {-# NOINLINE gl_SGIS_texture_edge_clamp #-}

    -- | Is the <https://www.opengl.org/registry/specs/SGIS/texture_filter4.txt SGIS_texture_filter4> extension supported?
    glGetSGISTextureFilter4 :: MonadIO m => m Bool
    glGetSGISTextureFilter4 :: forall (m :: * -> *). MonadIO m => m Bool
    glGetSGISTextureFilter4 = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_SGIS_texture_filter4")

    -- | Is the <https://www.opengl.org/registry/specs/SGIS/texture_filter4.txt SGIS_texture_filter4> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetSGISTextureFilter4' in those cases instead.
    gl_SGIS_texture_filter4 :: Bool
    gl_SGIS_texture_filter4 :: Bool
    gl_SGIS_texture_filter4 = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_SGIS_texture_filter4" Set String
    extensions
    {-# NOINLINE gl_SGIS_texture_filter4 #-}

    -- | Is the <https://www.opengl.org/registry/specs/SGIS/texture_lod.txt SGIS_texture_lod> extension supported?
    glGetSGISTextureLOD :: MonadIO m => m Bool
    glGetSGISTextureLOD :: forall (m :: * -> *). MonadIO m => m Bool
    glGetSGISTextureLOD = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_SGIS_texture_lod")

    -- | Is the <https://www.opengl.org/registry/specs/SGIS/texture_lod.txt SGIS_texture_lod> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetSGISTextureLOD' in those cases instead.
    gl_SGIS_texture_lod :: Bool
    gl_SGIS_texture_lod :: Bool
    gl_SGIS_texture_lod = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_SGIS_texture_lod" Set String
    extensions
    {-# NOINLINE gl_SGIS_texture_lod #-}

    -- | Is the <https://www.opengl.org/registry/specs/SGIS/texture_select.txt SGIS_texture_select> extension supported?
    glGetSGISTextureSelect :: MonadIO m => m Bool
    glGetSGISTextureSelect :: forall (m :: * -> *). MonadIO m => m Bool
    glGetSGISTextureSelect = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_SGIS_texture_select")

    -- | Is the <https://www.opengl.org/registry/specs/SGIS/texture_select.txt SGIS_texture_select> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetSGISTextureSelect' in those cases instead.
    gl_SGIS_texture_select :: Bool
    gl_SGIS_texture_select :: Bool
    gl_SGIS_texture_select = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_SGIS_texture_select" Set String
    extensions
    {-# NOINLINE gl_SGIS_texture_select #-}

    -- | Is the <https://www.opengl.org/registry/specs/SGIX/async.txt SGIX_async> extension supported?
    glGetSGIXAsync :: MonadIO m => m Bool
    glGetSGIXAsync :: forall (m :: * -> *). MonadIO m => m Bool
    glGetSGIXAsync = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_SGIX_async")

    -- | Is the <https://www.opengl.org/registry/specs/SGIX/async.txt SGIX_async> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetSGIXAsync' in those cases instead.
    gl_SGIX_async :: Bool
    gl_SGIX_async :: Bool
    gl_SGIX_async = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_SGIX_async" Set String
    extensions
    {-# NOINLINE gl_SGIX_async #-}

    -- | Is the <https://www.opengl.org/registry/specs/SGIX/async_histogram.txt SGIX_async_histogram> extension supported?
    glGetSGIXAsyncHistogram :: MonadIO m => m Bool
    glGetSGIXAsyncHistogram :: forall (m :: * -> *). MonadIO m => m Bool
    glGetSGIXAsyncHistogram = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_SGIX_async_histogram")

    -- | Is the <https://www.opengl.org/registry/specs/SGIX/async_histogram.txt SGIX_async_histogram> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetSGIXAsyncHistogram' in those cases instead.
    gl_SGIX_async_histogram :: Bool
    gl_SGIX_async_histogram :: Bool
    gl_SGIX_async_histogram = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_SGIX_async_histogram" Set String
    extensions
    {-# NOINLINE gl_SGIX_async_histogram #-}

    -- | Is the <https://www.opengl.org/registry/specs/SGIX/async_pixel.txt SGIX_async_pixel> extension supported?
    glGetSGIXAsyncPixel :: MonadIO m => m Bool
    glGetSGIXAsyncPixel :: forall (m :: * -> *). MonadIO m => m Bool
    glGetSGIXAsyncPixel = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_SGIX_async_pixel")

    -- | Is the <https://www.opengl.org/registry/specs/SGIX/async_pixel.txt SGIX_async_pixel> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetSGIXAsyncPixel' in those cases instead.
    gl_SGIX_async_pixel :: Bool
    gl_SGIX_async_pixel :: Bool
    gl_SGIX_async_pixel = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_SGIX_async_pixel" Set String
    extensions
    {-# NOINLINE gl_SGIX_async_pixel #-}

    -- | Is the <https://www.opengl.org/registry/specs/SGIX/blend_alpha_minmax.txt SGIX_blend_alpha_minmax> extension supported?
    glGetSGIXBlendAlphaMinmax :: MonadIO m => m Bool
    glGetSGIXBlendAlphaMinmax :: forall (m :: * -> *). MonadIO m => m Bool
    glGetSGIXBlendAlphaMinmax = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_SGIX_blend_alpha_minmax")

    -- | Is the <https://www.opengl.org/registry/specs/SGIX/blend_alpha_minmax.txt SGIX_blend_alpha_minmax> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetSGIXBlendAlphaMinmax' in those cases instead.
    gl_SGIX_blend_alpha_minmax :: Bool
    gl_SGIX_blend_alpha_minmax :: Bool
    gl_SGIX_blend_alpha_minmax = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_SGIX_blend_alpha_minmax" Set String
    extensions
    {-# NOINLINE gl_SGIX_blend_alpha_minmax #-}

    -- | Is the <https://www.opengl.org/registry/specs/SGIX/calligraphic_fragment.txt SGIX_calligraphic_fragment> extension supported?
    glGetSGIXCalligraphicFragment :: MonadIO m => m Bool
    glGetSGIXCalligraphicFragment :: forall (m :: * -> *). MonadIO m => m Bool
    glGetSGIXCalligraphicFragment = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_SGIX_calligraphic_fragment")

    -- | Is the <https://www.opengl.org/registry/specs/SGIX/calligraphic_fragment.txt SGIX_calligraphic_fragment> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetSGIXCalligraphicFragment' in those cases instead.
    gl_SGIX_calligraphic_fragment :: Bool
    gl_SGIX_calligraphic_fragment :: Bool
    gl_SGIX_calligraphic_fragment = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_SGIX_calligraphic_fragment" Set String
    extensions
    {-# NOINLINE gl_SGIX_calligraphic_fragment #-}

    -- | Is the <https://www.opengl.org/registry/specs/SGIX/clipmap.txt SGIX_clipmap> extension supported?
    glGetSGIXClipmap :: MonadIO m => m Bool
    glGetSGIXClipmap :: forall (m :: * -> *). MonadIO m => m Bool
    glGetSGIXClipmap = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_SGIX_clipmap")

    -- | Is the <https://www.opengl.org/registry/specs/SGIX/clipmap.txt SGIX_clipmap> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetSGIXClipmap' in those cases instead.
    gl_SGIX_clipmap :: Bool
    gl_SGIX_clipmap :: Bool
    gl_SGIX_clipmap = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_SGIX_clipmap" Set String
    extensions
    {-# NOINLINE gl_SGIX_clipmap #-}

    -- | Is the <https://www.opengl.org/registry/specs/SGIX/convolution_accuracy.txt SGIX_convolution_accuracy> extension supported?
    glGetSGIXConvolutionAccuracy :: MonadIO m => m Bool
    glGetSGIXConvolutionAccuracy :: forall (m :: * -> *). MonadIO m => m Bool
    glGetSGIXConvolutionAccuracy = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_SGIX_convolution_accuracy")

    -- | Is the <https://www.opengl.org/registry/specs/SGIX/convolution_accuracy.txt SGIX_convolution_accuracy> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetSGIXConvolutionAccuracy' in those cases instead.
    gl_SGIX_convolution_accuracy :: Bool
    gl_SGIX_convolution_accuracy :: Bool
    gl_SGIX_convolution_accuracy = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_SGIX_convolution_accuracy" Set String
    extensions
    {-# NOINLINE gl_SGIX_convolution_accuracy #-}

    -- | Is the <https://www.opengl.org/registry/specs/SGIX/depth_texture.txt SGIX_depth_texture> extension supported?
    glGetSGIXDepthTexture :: MonadIO m => m Bool
    glGetSGIXDepthTexture :: forall (m :: * -> *). MonadIO m => m Bool
    glGetSGIXDepthTexture = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_SGIX_depth_texture")

    -- | Is the <https://www.opengl.org/registry/specs/SGIX/depth_texture.txt SGIX_depth_texture> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetSGIXDepthTexture' in those cases instead.
    gl_SGIX_depth_texture :: Bool
    gl_SGIX_depth_texture :: Bool
    gl_SGIX_depth_texture = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_SGIX_depth_texture" Set String
    extensions
    {-# NOINLINE gl_SGIX_depth_texture #-}

    -- | Is the <https://www.opengl.org/registry/specs/SGIX/flush_raster.txt SGIX_flush_raster> extension supported?
    glGetSGIXFlushRaster :: MonadIO m => m Bool
    glGetSGIXFlushRaster :: forall (m :: * -> *). MonadIO m => m Bool
    glGetSGIXFlushRaster = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_SGIX_flush_raster")

    -- | Is the <https://www.opengl.org/registry/specs/SGIX/flush_raster.txt SGIX_flush_raster> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetSGIXFlushRaster' in those cases instead.
    gl_SGIX_flush_raster :: Bool
    gl_SGIX_flush_raster :: Bool
    gl_SGIX_flush_raster = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_SGIX_flush_raster" Set String
    extensions
    {-# NOINLINE gl_SGIX_flush_raster #-}

    -- | Is the <https://www.opengl.org/registry/specs/SGIX/fog_offset.txt SGIX_fog_offset> extension supported?
    glGetSGIXFogOffset :: MonadIO m => m Bool
    glGetSGIXFogOffset :: forall (m :: * -> *). MonadIO m => m Bool
    glGetSGIXFogOffset = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_SGIX_fog_offset")

    -- | Is the <https://www.opengl.org/registry/specs/SGIX/fog_offset.txt SGIX_fog_offset> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetSGIXFogOffset' in those cases instead.
    gl_SGIX_fog_offset :: Bool
    gl_SGIX_fog_offset :: Bool
    gl_SGIX_fog_offset = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_SGIX_fog_offset" Set String
    extensions
    {-# NOINLINE gl_SGIX_fog_offset #-}

    -- | Is the <https://www.opengl.org/registry/specs/EXT/fragment_lighting.txt SGIX_fragment_lighting> extension supported?
    glGetSGIXFragmentLighting :: MonadIO m => m Bool
    glGetSGIXFragmentLighting :: forall (m :: * -> *). MonadIO m => m Bool
    glGetSGIXFragmentLighting = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_SGIX_fragment_lighting")

    -- | Is the <https://www.opengl.org/registry/specs/EXT/fragment_lighting.txt SGIX_fragment_lighting> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetSGIXFragmentLighting' in those cases instead.
    gl_SGIX_fragment_lighting :: Bool
    gl_SGIX_fragment_lighting :: Bool
    gl_SGIX_fragment_lighting = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_SGIX_fragment_lighting" Set String
    extensions
    {-# NOINLINE gl_SGIX_fragment_lighting #-}

    -- | Is the <https://www.opengl.org/registry/specs/SGIX/framezoom.txt SGIX_framezoom> extension supported?
    glGetSGIXFramezoom :: MonadIO m => m Bool
    glGetSGIXFramezoom :: forall (m :: * -> *). MonadIO m => m Bool
    glGetSGIXFramezoom = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_SGIX_framezoom")

    -- | Is the <https://www.opengl.org/registry/specs/SGIX/framezoom.txt SGIX_framezoom> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetSGIXFramezoom' in those cases instead.
    gl_SGIX_framezoom :: Bool
    gl_SGIX_framezoom :: Bool
    gl_SGIX_framezoom = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_SGIX_framezoom" Set String
    extensions
    {-# NOINLINE gl_SGIX_framezoom #-}

    -- | Is the <https://www.opengl.org/registry/specs/SGIX/igloo_interface.txt SGIX_igloo_interface> extension supported?
    glGetSGIXIglooInterface :: MonadIO m => m Bool
    glGetSGIXIglooInterface :: forall (m :: * -> *). MonadIO m => m Bool
    glGetSGIXIglooInterface = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_SGIX_igloo_interface")

    -- | Is the <https://www.opengl.org/registry/specs/SGIX/igloo_interface.txt SGIX_igloo_interface> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetSGIXIglooInterface' in those cases instead.
    gl_SGIX_igloo_interface :: Bool
    gl_SGIX_igloo_interface :: Bool
    gl_SGIX_igloo_interface = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_SGIX_igloo_interface" Set String
    extensions
    {-# NOINLINE gl_SGIX_igloo_interface #-}

    -- | Is the <https://www.opengl.org/registry/specs/SGIX/instruments.txt SGIX_instruments> extension supported?
    glGetSGIXInstruments :: MonadIO m => m Bool
    glGetSGIXInstruments :: forall (m :: * -> *). MonadIO m => m Bool
    glGetSGIXInstruments = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_SGIX_instruments")

    -- | Is the <https://www.opengl.org/registry/specs/SGIX/instruments.txt SGIX_instruments> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetSGIXInstruments' in those cases instead.
    gl_SGIX_instruments :: Bool
    gl_SGIX_instruments :: Bool
    gl_SGIX_instruments = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_SGIX_instruments" Set String
    extensions
    {-# NOINLINE gl_SGIX_instruments #-}

    -- | Is the <https://www.opengl.org/registry/specs/SGIX/interlace.txt SGIX_interlace> extension supported?
    glGetSGIXInterlace :: MonadIO m => m Bool
    glGetSGIXInterlace :: forall (m :: * -> *). MonadIO m => m Bool
    glGetSGIXInterlace = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_SGIX_interlace")

    -- | Is the <https://www.opengl.org/registry/specs/SGIX/interlace.txt SGIX_interlace> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetSGIXInterlace' in those cases instead.
    gl_SGIX_interlace :: Bool
    gl_SGIX_interlace :: Bool
    gl_SGIX_interlace = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_SGIX_interlace" Set String
    extensions
    {-# NOINLINE gl_SGIX_interlace #-}

    -- | Is the <https://www.opengl.org/registry/specs/SGIX/ir_instrument1.txt SGIX_ir_instrument1> extension supported?
    glGetSGIXIrInstrument1 :: MonadIO m => m Bool
    glGetSGIXIrInstrument1 :: forall (m :: * -> *). MonadIO m => m Bool
    glGetSGIXIrInstrument1 = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_SGIX_ir_instrument1")

    -- | Is the <https://www.opengl.org/registry/specs/SGIX/ir_instrument1.txt SGIX_ir_instrument1> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetSGIXIrInstrument1' in those cases instead.
    gl_SGIX_ir_instrument1 :: Bool
    gl_SGIX_ir_instrument1 :: Bool
    gl_SGIX_ir_instrument1 = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_SGIX_ir_instrument1" Set String
    extensions
    {-# NOINLINE gl_SGIX_ir_instrument1 #-}

    -- | Is the <https://www.opengl.org/registry/specs/SGIX/list_priority.txt SGIX_list_priority> extension supported?
    glGetSGIXListPriority :: MonadIO m => m Bool
    glGetSGIXListPriority :: forall (m :: * -> *). MonadIO m => m Bool
    glGetSGIXListPriority = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_SGIX_list_priority")

    -- | Is the <https://www.opengl.org/registry/specs/SGIX/list_priority.txt SGIX_list_priority> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetSGIXListPriority' in those cases instead.
    gl_SGIX_list_priority :: Bool
    gl_SGIX_list_priority :: Bool
    gl_SGIX_list_priority = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_SGIX_list_priority" Set String
    extensions
    {-# NOINLINE gl_SGIX_list_priority #-}

    -- | Is the <https://www.opengl.org/registry/specs/SGIX/sgix_pixel_texture.txt SGIX_pixel_texture> extension supported?
    glGetSGIXPixelTexture :: MonadIO m => m Bool
    glGetSGIXPixelTexture :: forall (m :: * -> *). MonadIO m => m Bool
    glGetSGIXPixelTexture = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_SGIX_pixel_texture")

    -- | Is the <https://www.opengl.org/registry/specs/SGIX/sgix_pixel_texture.txt SGIX_pixel_texture> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetSGIXPixelTexture' in those cases instead.
    gl_SGIX_pixel_texture :: Bool
    gl_SGIX_pixel_texture :: Bool
    gl_SGIX_pixel_texture = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_SGIX_pixel_texture" Set String
    extensions
    {-# NOINLINE gl_SGIX_pixel_texture #-}

    -- | Is the <https://www.opengl.org/registry/specs/SGIX/pixel_tiles.txt SGIX_pixel_tiles> extension supported?
    glGetSGIXPixelTiles :: MonadIO m => m Bool
    glGetSGIXPixelTiles :: forall (m :: * -> *). MonadIO m => m Bool
    glGetSGIXPixelTiles = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_SGIX_pixel_tiles")

    -- | Is the <https://www.opengl.org/registry/specs/SGIX/pixel_tiles.txt SGIX_pixel_tiles> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetSGIXPixelTiles' in those cases instead.
    gl_SGIX_pixel_tiles :: Bool
    gl_SGIX_pixel_tiles :: Bool
    gl_SGIX_pixel_tiles = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_SGIX_pixel_tiles" Set String
    extensions
    {-# NOINLINE gl_SGIX_pixel_tiles #-}

    -- | Is the <https://www.opengl.org/registry/specs/SGIX/polynomial_ffd.txt SGIX_polynomial_ffd> extension supported?
    glGetSGIXPolynomialFFD :: MonadIO m => m Bool
    glGetSGIXPolynomialFFD :: forall (m :: * -> *). MonadIO m => m Bool
    glGetSGIXPolynomialFFD = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_SGIX_polynomial_ffd")

    -- | Is the <https://www.opengl.org/registry/specs/SGIX/polynomial_ffd.txt SGIX_polynomial_ffd> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetSGIXPolynomialFFD' in those cases instead.
    gl_SGIX_polynomial_ffd :: Bool
    gl_SGIX_polynomial_ffd :: Bool
    gl_SGIX_polynomial_ffd = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_SGIX_polynomial_ffd" Set String
    extensions
    {-# NOINLINE gl_SGIX_polynomial_ffd #-}

    -- | Is the <https://www.opengl.org/registry/specs/SGIX/reference_plane.txt SGIX_reference_plane> extension supported?
    glGetSGIXReferencePlane :: MonadIO m => m Bool
    glGetSGIXReferencePlane :: forall (m :: * -> *). MonadIO m => m Bool
    glGetSGIXReferencePlane = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_SGIX_reference_plane")

    -- | Is the <https://www.opengl.org/registry/specs/SGIX/reference_plane.txt SGIX_reference_plane> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetSGIXReferencePlane' in those cases instead.
    gl_SGIX_reference_plane :: Bool
    gl_SGIX_reference_plane :: Bool
    gl_SGIX_reference_plane = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_SGIX_reference_plane" Set String
    extensions
    {-# NOINLINE gl_SGIX_reference_plane #-}

    -- | Is the <https://www.opengl.org/registry/specs/SGIX/resample.txt SGIX_resample> extension supported?
    glGetSGIXResample :: MonadIO m => m Bool
    glGetSGIXResample :: forall (m :: * -> *). MonadIO m => m Bool
    glGetSGIXResample = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_SGIX_resample")

    -- | Is the <https://www.opengl.org/registry/specs/SGIX/resample.txt SGIX_resample> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetSGIXResample' in those cases instead.
    gl_SGIX_resample :: Bool
    gl_SGIX_resample :: Bool
    gl_SGIX_resample = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_SGIX_resample" Set String
    extensions
    {-# NOINLINE gl_SGIX_resample #-}

    -- | Is the <https://www.opengl.org/registry/specs/SGIX/scalebias_hint.txt SGIX_scalebias_hint> extension supported?
    glGetSGIXScalebiasHint :: MonadIO m => m Bool
    glGetSGIXScalebiasHint :: forall (m :: * -> *). MonadIO m => m Bool
    glGetSGIXScalebiasHint = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_SGIX_scalebias_hint")

    -- | Is the <https://www.opengl.org/registry/specs/SGIX/scalebias_hint.txt SGIX_scalebias_hint> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetSGIXScalebiasHint' in those cases instead.
    gl_SGIX_scalebias_hint :: Bool
    gl_SGIX_scalebias_hint :: Bool
    gl_SGIX_scalebias_hint = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_SGIX_scalebias_hint" Set String
    extensions
    {-# NOINLINE gl_SGIX_scalebias_hint #-}

    -- | Is the <https://www.opengl.org/registry/specs/SGIX/shadow.txt SGIX_shadow> extension supported?
    glGetSGIXShadow :: MonadIO m => m Bool
    glGetSGIXShadow :: forall (m :: * -> *). MonadIO m => m Bool
    glGetSGIXShadow = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_SGIX_shadow")

    -- | Is the <https://www.opengl.org/registry/specs/SGIX/shadow.txt SGIX_shadow> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetSGIXShadow' in those cases instead.
    gl_SGIX_shadow :: Bool
    gl_SGIX_shadow :: Bool
    gl_SGIX_shadow = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_SGIX_shadow" Set String
    extensions
    {-# NOINLINE gl_SGIX_shadow #-}

    -- | Is the <https://www.opengl.org/registry/specs/SGIX/shadow_ambient.txt SGIX_shadow_ambient> extension supported?
    glGetSGIXShadowAmbient :: MonadIO m => m Bool
    glGetSGIXShadowAmbient :: forall (m :: * -> *). MonadIO m => m Bool
    glGetSGIXShadowAmbient = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_SGIX_shadow_ambient")

    -- | Is the <https://www.opengl.org/registry/specs/SGIX/shadow_ambient.txt SGIX_shadow_ambient> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetSGIXShadowAmbient' in those cases instead.
    gl_SGIX_shadow_ambient :: Bool
    gl_SGIX_shadow_ambient :: Bool
    gl_SGIX_shadow_ambient = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_SGIX_shadow_ambient" Set String
    extensions
    {-# NOINLINE gl_SGIX_shadow_ambient #-}

    -- | Is the <https://www.opengl.org/registry/specs/SGIX/sprite.txt SGIX_sprite> extension supported?
    glGetSGIXSprite :: MonadIO m => m Bool
    glGetSGIXSprite :: forall (m :: * -> *). MonadIO m => m Bool
    glGetSGIXSprite = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_SGIX_sprite")

    -- | Is the <https://www.opengl.org/registry/specs/SGIX/sprite.txt SGIX_sprite> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetSGIXSprite' in those cases instead.
    gl_SGIX_sprite :: Bool
    gl_SGIX_sprite :: Bool
    gl_SGIX_sprite = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_SGIX_sprite" Set String
    extensions
    {-# NOINLINE gl_SGIX_sprite #-}

    -- | Is the <https://www.opengl.org/registry/specs/SGIX/subsample.txt SGIX_subsample> extension supported?
    glGetSGIXSubsample :: MonadIO m => m Bool
    glGetSGIXSubsample :: forall (m :: * -> *). MonadIO m => m Bool
    glGetSGIXSubsample = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_SGIX_subsample")

    -- | Is the <https://www.opengl.org/registry/specs/SGIX/subsample.txt SGIX_subsample> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetSGIXSubsample' in those cases instead.
    gl_SGIX_subsample :: Bool
    gl_SGIX_subsample :: Bool
    gl_SGIX_subsample = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_SGIX_subsample" Set String
    extensions
    {-# NOINLINE gl_SGIX_subsample #-}

    -- | Is the <https://www.opengl.org/registry/specs/SGIX/tag_sample_buffer.txt SGIX_tag_sample_buffer> extension supported?
    glGetSGIXTagSampleBuffer :: MonadIO m => m Bool
    glGetSGIXTagSampleBuffer :: forall (m :: * -> *). MonadIO m => m Bool
    glGetSGIXTagSampleBuffer = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_SGIX_tag_sample_buffer")

    -- | Is the <https://www.opengl.org/registry/specs/SGIX/tag_sample_buffer.txt SGIX_tag_sample_buffer> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetSGIXTagSampleBuffer' in those cases instead.
    gl_SGIX_tag_sample_buffer :: Bool
    gl_SGIX_tag_sample_buffer :: Bool
    gl_SGIX_tag_sample_buffer = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_SGIX_tag_sample_buffer" Set String
    extensions
    {-# NOINLINE gl_SGIX_tag_sample_buffer #-}

    -- | Is the <https://www.opengl.org/registry/specs/SGIX/texture_env_add.txt SGIX_texture_add_env> extension supported?
    glGetSGIXTextureAddEnv :: MonadIO m => m Bool
    glGetSGIXTextureAddEnv :: forall (m :: * -> *). MonadIO m => m Bool
    glGetSGIXTextureAddEnv = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_SGIX_texture_add_env")

    -- | Is the <https://www.opengl.org/registry/specs/SGIX/texture_env_add.txt SGIX_texture_add_env> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetSGIXTextureAddEnv' in those cases instead.
    gl_SGIX_texture_add_env :: Bool
    gl_SGIX_texture_add_env :: Bool
    gl_SGIX_texture_add_env = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_SGIX_texture_add_env" Set String
    extensions
    {-# NOINLINE gl_SGIX_texture_add_env #-}

    -- | Is the <https://www.opengl.org/registry/specs/SGIX/texture_coordinate_clamp.txt SGIX_texture_coordinate_clamp> extension supported?
    glGetSGIXTextureCoordinateClamp :: MonadIO m => m Bool
    glGetSGIXTextureCoordinateClamp :: forall (m :: * -> *). MonadIO m => m Bool
    glGetSGIXTextureCoordinateClamp = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_SGIX_texture_coordinate_clamp")

    -- | Is the <https://www.opengl.org/registry/specs/SGIX/texture_coordinate_clamp.txt SGIX_texture_coordinate_clamp> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetSGIXTextureCoordinateClamp' in those cases instead.
    gl_SGIX_texture_coordinate_clamp :: Bool
    gl_SGIX_texture_coordinate_clamp :: Bool
    gl_SGIX_texture_coordinate_clamp = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_SGIX_texture_coordinate_clamp" Set String
    extensions
    {-# NOINLINE gl_SGIX_texture_coordinate_clamp #-}

    -- | Is the <https://www.opengl.org/registry/specs/SGIX/texture_lod_bias.txt SGIX_texture_lod_bias> extension supported?
    glGetSGIXTextureLODBias :: MonadIO m => m Bool
    glGetSGIXTextureLODBias :: forall (m :: * -> *). MonadIO m => m Bool
    glGetSGIXTextureLODBias = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_SGIX_texture_lod_bias")

    -- | Is the <https://www.opengl.org/registry/specs/SGIX/texture_lod_bias.txt SGIX_texture_lod_bias> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetSGIXTextureLODBias' in those cases instead.
    gl_SGIX_texture_lod_bias :: Bool
    gl_SGIX_texture_lod_bias :: Bool
    gl_SGIX_texture_lod_bias = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_SGIX_texture_lod_bias" Set String
    extensions
    {-# NOINLINE gl_SGIX_texture_lod_bias #-}

    -- | Is the <https://www.opengl.org/registry/specs/SGIX/texture_multi_buffer.txt SGIX_texture_multi_buffer> extension supported?
    glGetSGIXTextureMultiBuffer :: MonadIO m => m Bool
    glGetSGIXTextureMultiBuffer :: forall (m :: * -> *). MonadIO m => m Bool
    glGetSGIXTextureMultiBuffer = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_SGIX_texture_multi_buffer")

    -- | Is the <https://www.opengl.org/registry/specs/SGIX/texture_multi_buffer.txt SGIX_texture_multi_buffer> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetSGIXTextureMultiBuffer' in those cases instead.
    gl_SGIX_texture_multi_buffer :: Bool
    gl_SGIX_texture_multi_buffer :: Bool
    gl_SGIX_texture_multi_buffer = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_SGIX_texture_multi_buffer" Set String
    extensions
    {-# NOINLINE gl_SGIX_texture_multi_buffer #-}

    -- | Is the <https://www.opengl.org/registry/specs/SGIX/texture_scale_bias.txt SGIX_texture_scale_bias> extension supported?
    glGetSGIXTextureScaleBias :: MonadIO m => m Bool
    glGetSGIXTextureScaleBias :: forall (m :: * -> *). MonadIO m => m Bool
    glGetSGIXTextureScaleBias = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_SGIX_texture_scale_bias")

    -- | Is the <https://www.opengl.org/registry/specs/SGIX/texture_scale_bias.txt SGIX_texture_scale_bias> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetSGIXTextureScaleBias' in those cases instead.
    gl_SGIX_texture_scale_bias :: Bool
    gl_SGIX_texture_scale_bias :: Bool
    gl_SGIX_texture_scale_bias = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_SGIX_texture_scale_bias" Set String
    extensions
    {-# NOINLINE gl_SGIX_texture_scale_bias #-}

    -- | Is the <https://www.opengl.org/registry/specs/SGIX/vertex_preclip.txt SGIX_vertex_preclip> extension supported?
    glGetSGIXVertexPreclip :: MonadIO m => m Bool
    glGetSGIXVertexPreclip :: forall (m :: * -> *). MonadIO m => m Bool
    glGetSGIXVertexPreclip = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_SGIX_vertex_preclip")

    -- | Is the <https://www.opengl.org/registry/specs/SGIX/vertex_preclip.txt SGIX_vertex_preclip> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetSGIXVertexPreclip' in those cases instead.
    gl_SGIX_vertex_preclip :: Bool
    gl_SGIX_vertex_preclip :: Bool
    gl_SGIX_vertex_preclip = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_SGIX_vertex_preclip" Set String
    extensions
    {-# NOINLINE gl_SGIX_vertex_preclip #-}

    -- | Is the <https://www.opengl.org/registry/specs/SGIX/ycrcb.txt SGIX_ycrcb> extension supported?
    glGetSGIXYCrCb :: MonadIO m => m Bool
    glGetSGIXYCrCb :: forall (m :: * -> *). MonadIO m => m Bool
    glGetSGIXYCrCb = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_SGIX_ycrcb")

    -- | Is the <https://www.opengl.org/registry/specs/SGIX/ycrcb.txt SGIX_ycrcb> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetSGIXYCrCb' in those cases instead.
    gl_SGIX_ycrcb :: Bool
    gl_SGIX_ycrcb :: Bool
    gl_SGIX_ycrcb = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_SGIX_ycrcb" Set String
    extensions
    {-# NOINLINE gl_SGIX_ycrcb #-}

    -- | Is the <https://www.opengl.org/registry/specs/SGIX/ycrcba.txt SGIX_ycrcba> extension supported?
    glGetSGIXYCrCbA :: MonadIO m => m Bool
    glGetSGIXYCrCbA :: forall (m :: * -> *). MonadIO m => m Bool
    glGetSGIXYCrCbA = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_SGIX_ycrcba")

    -- | Is the <https://www.opengl.org/registry/specs/SGIX/ycrcba.txt SGIX_ycrcba> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetSGIXYCrCbA' in those cases instead.
    gl_SGIX_ycrcba :: Bool
    gl_SGIX_ycrcba :: Bool
    gl_SGIX_ycrcba = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_SGIX_ycrcba" Set String
    extensions
    {-# NOINLINE gl_SGIX_ycrcba #-}

    -- | Is the <https://www.opengl.org/registry/specs/SUN/convolution_border_modes.txt SUN_convolution_border_modes> extension supported?
    glGetSUNConvolutionBorderModes :: MonadIO m => m Bool
    glGetSUNConvolutionBorderModes :: forall (m :: * -> *). MonadIO m => m Bool
    glGetSUNConvolutionBorderModes = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_SUN_convolution_border_modes")

    -- | Is the <https://www.opengl.org/registry/specs/SUN/convolution_border_modes.txt SUN_convolution_border_modes> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetSUNConvolutionBorderModes' in those cases instead.
    gl_SUN_convolution_border_modes :: Bool
    gl_SUN_convolution_border_modes :: Bool
    gl_SUN_convolution_border_modes = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_SUN_convolution_border_modes" Set String
    extensions
    {-# NOINLINE gl_SUN_convolution_border_modes #-}

    -- | Is the <https://www.opengl.org/registry/specs/SUN/global_alpha.txt SUN_global_alpha> extension supported?
    glGetSUNGlobalAlpha :: MonadIO m => m Bool
    glGetSUNGlobalAlpha :: forall (m :: * -> *). MonadIO m => m Bool
    glGetSUNGlobalAlpha = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_SUN_global_alpha")

    -- | Is the <https://www.opengl.org/registry/specs/SUN/global_alpha.txt SUN_global_alpha> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetSUNGlobalAlpha' in those cases instead.
    gl_SUN_global_alpha :: Bool
    gl_SUN_global_alpha :: Bool
    gl_SUN_global_alpha = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_SUN_global_alpha" Set String
    extensions
    {-# NOINLINE gl_SUN_global_alpha #-}

    -- | Is the <https://www.opengl.org/registry/specs/SUN/mesh_array.txt SUN_mesh_array> extension supported?
    glGetSUNMeshArray :: MonadIO m => m Bool
    glGetSUNMeshArray :: forall (m :: * -> *). MonadIO m => m Bool
    glGetSUNMeshArray = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_SUN_mesh_array")

    -- | Is the <https://www.opengl.org/registry/specs/SUN/mesh_array.txt SUN_mesh_array> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetSUNMeshArray' in those cases instead.
    gl_SUN_mesh_array :: Bool
    gl_SUN_mesh_array :: Bool
    gl_SUN_mesh_array = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_SUN_mesh_array" Set String
    extensions
    {-# NOINLINE gl_SUN_mesh_array #-}

    -- | Is the <https://www.opengl.org/registry/specs/SUN/slice_accum.txt SUN_slice_accum> extension supported?
    glGetSUNSliceAccum :: MonadIO m => m Bool
    glGetSUNSliceAccum :: forall (m :: * -> *). MonadIO m => m Bool
    glGetSUNSliceAccum = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_SUN_slice_accum")

    -- | Is the <https://www.opengl.org/registry/specs/SUN/slice_accum.txt SUN_slice_accum> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetSUNSliceAccum' in those cases instead.
    gl_SUN_slice_accum :: Bool
    gl_SUN_slice_accum :: Bool
    gl_SUN_slice_accum = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_SUN_slice_accum" Set String
    extensions
    {-# NOINLINE gl_SUN_slice_accum #-}

    -- | Is the <https://www.opengl.org/registry/specs/SUN/triangle_list.txt SUN_triangle_list> extension supported?
    glGetSUNTriangleList :: MonadIO m => m Bool
    glGetSUNTriangleList :: forall (m :: * -> *). MonadIO m => m Bool
    glGetSUNTriangleList = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_SUN_triangle_list")

    -- | Is the <https://www.opengl.org/registry/specs/SUN/triangle_list.txt SUN_triangle_list> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetSUNTriangleList' in those cases instead.
    gl_SUN_triangle_list :: Bool
    gl_SUN_triangle_list :: Bool
    gl_SUN_triangle_list = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_SUN_triangle_list" Set String
    extensions
    {-# NOINLINE gl_SUN_triangle_list #-}

    -- | Is the <https://www.opengl.org/registry/specs/SUN/vertex.txt SUN_vertex> extension supported?
    glGetSUNVertex :: MonadIO m => m Bool
    glGetSUNVertex :: forall (m :: * -> *). MonadIO m => m Bool
    glGetSUNVertex = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_SUN_vertex")

    -- | Is the <https://www.opengl.org/registry/specs/SUN/vertex.txt SUN_vertex> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetSUNVertex' in those cases instead.
    gl_SUN_vertex :: Bool
    gl_SUN_vertex :: Bool
    gl_SUN_vertex = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_SUN_vertex" Set String
    extensions
    {-# NOINLINE gl_SUN_vertex #-}

    -- | Is the <https://www.opengl.org/registry/specs/SUNX/constant_data.txt SUNX_constant_data> extension supported?
    glGetSUNXConstantData :: MonadIO m => m Bool
    glGetSUNXConstantData :: forall (m :: * -> *). MonadIO m => m Bool
    glGetSUNXConstantData = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_SUNX_constant_data")

    -- | Is the <https://www.opengl.org/registry/specs/SUNX/constant_data.txt SUNX_constant_data> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetSUNXConstantData' in those cases instead.
    gl_SUNX_constant_data :: Bool
    gl_SUNX_constant_data :: Bool
    gl_SUNX_constant_data = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_SUNX_constant_data" Set String
    extensions
    {-# NOINLINE gl_SUNX_constant_data #-}

    -- | Is the <https://www.opengl.org/registry/specs/WIN/phong_shading.txt WIN_phong_shading> extension supported?
    glGetWINPhongShading :: MonadIO m => m Bool
    glGetWINPhongShading :: forall (m :: * -> *). MonadIO m => m Bool
    glGetWINPhongShading = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_WIN_phong_shading")

    -- | Is the <https://www.opengl.org/registry/specs/WIN/phong_shading.txt WIN_phong_shading> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetWINPhongShading' in those cases instead.
    gl_WIN_phong_shading :: Bool
    gl_WIN_phong_shading :: Bool
    gl_WIN_phong_shading = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_WIN_phong_shading" Set String
    extensions
    {-# NOINLINE gl_WIN_phong_shading #-}

    -- | Is the <https://www.opengl.org/registry/specs/WIN/specular_fog.txt WIN_specular_fog> extension supported?
    glGetWINSpecularFog :: MonadIO m => m Bool
    glGetWINSpecularFog :: forall (m :: * -> *). MonadIO m => m Bool
    glGetWINSpecularFog = m (Set String)
    forall (m :: * -> *). MonadIO m => m (Set String)
    getExtensions m (Set String) -> (Set String -> m Bool) -> m Bool
    forall a b. m a -> (a -> m b) -> m b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Bool -> m Bool
    forall a. a -> m a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (Bool -> m Bool) -> (Set String -> Bool) -> Set String -> m Bool
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_WIN_specular_fog")

    -- | Is the <https://www.opengl.org/registry/specs/WIN/specular_fog.txt WIN_specular_fog> extension supported?
    -- Note that in the presence of multiple contexts with different capabilities,
    -- this might be wrong. Use 'glGetWINSpecularFog' in those cases instead.
    gl_WIN_specular_fog :: Bool
    gl_WIN_specular_fog :: Bool
    gl_WIN_specular_fog = String -> Set String -> Bool
    forall a. Ord a => a -> Set a -> Bool
    member String
    "GL_WIN_specular_fog" Set String
    extensions
    {-# NOINLINE gl_WIN_specular_fog #-}