-- This file was automatically generated.
{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
module Graphics.GL.Ext.EXT.VertexAttrib64bit (
  -- * Extension Support
    gl_EXT_vertex_attrib_64bit

  -- * GL_EXT_vertex_attrib_64bit
  , glGetVertexAttribLdvEXT
  , glVertexAttribL1dEXT
  , glVertexAttribL1dvEXT
  , glVertexAttribL2dEXT
  , glVertexAttribL2dvEXT
  , glVertexAttribL3dEXT
  , glVertexAttribL3dvEXT
  , glVertexAttribL4dEXT
  , glVertexAttribL4dvEXT
  , glVertexAttribLPointerEXT
  , pattern GL_DOUBLE
  , pattern GL_DOUBLE_MAT2_EXT
  , pattern GL_DOUBLE_MAT2x3_EXT
  , pattern GL_DOUBLE_MAT2x4_EXT
  , pattern GL_DOUBLE_MAT3_EXT
  , pattern GL_DOUBLE_MAT3x2_EXT
  , pattern GL_DOUBLE_MAT3x4_EXT
  , pattern GL_DOUBLE_MAT4_EXT
  , pattern GL_DOUBLE_MAT4x2_EXT
  , pattern GL_DOUBLE_MAT4x3_EXT
  , pattern GL_DOUBLE_VEC2_EXT
  , pattern GL_DOUBLE_VEC3_EXT
  , pattern GL_DOUBLE_VEC4_EXT
) where

import Control.Monad.IO.Class
import Data.Set
import Foreign.Ptr
import Graphics.GL.Internal.FFI
import Graphics.GL.Internal.Proc
import Graphics.GL.Internal.Shared
import Graphics.GL.Types
import System.IO.Unsafe

-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/vertex_attrib_64bit.txt GL_EXT_vertex_attrib_64bit> extension is available.

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 #-}

-- | Usage: @'glGetVertexAttribLdvEXT' index pname params@
--
-- The length of @params@ should be @COMPSIZE(pname)@.
--
-- This command is an alias for 'Graphics.GL.Internal.Shared.glGetVertexAttribLdv'.


glGetVertexAttribLdvEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLdouble -> m ()
glGetVertexAttribLdvEXT :: forall (m :: * -> *).
MonadIO m =>
GLuint -> GLuint -> Ptr GLdouble -> m ()
glGetVertexAttribLdvEXT = FunPtr (GLuint -> GLuint -> Ptr GLdouble -> IO ())
-> GLuint -> GLuint -> Ptr GLdouble -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLuint -> GLuint -> Ptr GLdouble -> IO ())
-> GLuint -> GLuint -> Ptr GLdouble -> m ()
ffiuintenumPtrdoubleIOV FunPtr (GLuint -> GLuint -> Ptr GLdouble -> IO ())
glGetVertexAttribLdvEXTFunPtr

glGetVertexAttribLdvEXTFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLdouble -> IO ())
glGetVertexAttribLdvEXTFunPtr :: FunPtr (GLuint -> GLuint -> Ptr GLdouble -> IO ())
glGetVertexAttribLdvEXTFunPtr = IO (FunPtr (GLuint -> GLuint -> Ptr GLdouble -> IO ()))
-> FunPtr (GLuint -> GLuint -> Ptr GLdouble -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLuint -> GLuint -> Ptr GLdouble -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress String
"glGetVertexAttribLdvEXT")

{-# NOINLINE glGetVertexAttribLdvEXTFunPtr #-}

-- | Usage: @'glVertexAttribL1dEXT' index x@
--
-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttribL1d'.


glVertexAttribL1dEXT :: MonadIO m => GLuint -> GLdouble -> m ()
glVertexAttribL1dEXT :: forall (m :: * -> *). MonadIO m => GLuint -> GLdouble -> m ()
glVertexAttribL1dEXT = FunPtr (GLuint -> GLdouble -> IO ()) -> GLuint -> GLdouble -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLuint -> GLdouble -> IO ()) -> GLuint -> GLdouble -> m ()
ffiuintdoubleIOV FunPtr (GLuint -> GLdouble -> IO ())
glVertexAttribL1dEXTFunPtr

glVertexAttribL1dEXTFunPtr :: FunPtr (GLuint -> GLdouble -> IO ())
glVertexAttribL1dEXTFunPtr :: FunPtr (GLuint -> GLdouble -> IO ())
glVertexAttribL1dEXTFunPtr = IO (FunPtr (GLuint -> GLdouble -> IO ()))
-> FunPtr (GLuint -> GLdouble -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLuint -> GLdouble -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress String
"glVertexAttribL1dEXT")

{-# NOINLINE glVertexAttribL1dEXTFunPtr #-}

-- | Usage: @'glVertexAttribL1dvEXT' index v@
--
-- The length of @v@ should be @1@.
--
-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttribL1dv'.


glVertexAttribL1dvEXT :: MonadIO m => GLuint -> Ptr GLdouble -> m ()
glVertexAttribL1dvEXT :: forall (m :: * -> *). MonadIO m => GLuint -> Ptr GLdouble -> m ()
glVertexAttribL1dvEXT = FunPtr (GLuint -> Ptr GLdouble -> IO ())
-> GLuint -> Ptr GLdouble -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLuint -> Ptr GLdouble -> IO ())
-> GLuint -> Ptr GLdouble -> m ()
ffiuintPtrdoubleIOV FunPtr (GLuint -> Ptr GLdouble -> IO ())
glVertexAttribL1dvEXTFunPtr

glVertexAttribL1dvEXTFunPtr :: FunPtr (GLuint -> Ptr GLdouble -> IO ())
glVertexAttribL1dvEXTFunPtr :: FunPtr (GLuint -> Ptr GLdouble -> IO ())
glVertexAttribL1dvEXTFunPtr = IO (FunPtr (GLuint -> Ptr GLdouble -> IO ()))
-> FunPtr (GLuint -> Ptr GLdouble -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLuint -> Ptr GLdouble -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress String
"glVertexAttribL1dvEXT")

{-# NOINLINE glVertexAttribL1dvEXTFunPtr #-}

-- | Usage: @'glVertexAttribL2dEXT' index x y@
--
-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttribL2d'.


glVertexAttribL2dEXT :: MonadIO m => GLuint -> GLdouble -> GLdouble -> m ()
glVertexAttribL2dEXT :: forall (m :: * -> *).
MonadIO m =>
GLuint -> GLdouble -> GLdouble -> m ()
glVertexAttribL2dEXT = FunPtr (GLuint -> GLdouble -> GLdouble -> IO ())
-> GLuint -> GLdouble -> GLdouble -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLuint -> GLdouble -> GLdouble -> IO ())
-> GLuint -> GLdouble -> GLdouble -> m ()
ffiuintdoubledoubleIOV FunPtr (GLuint -> GLdouble -> GLdouble -> IO ())
glVertexAttribL2dEXTFunPtr

glVertexAttribL2dEXTFunPtr :: FunPtr (GLuint -> GLdouble -> GLdouble -> IO ())
glVertexAttribL2dEXTFunPtr :: FunPtr (GLuint -> GLdouble -> GLdouble -> IO ())
glVertexAttribL2dEXTFunPtr = IO (FunPtr (GLuint -> GLdouble -> GLdouble -> IO ()))
-> FunPtr (GLuint -> GLdouble -> GLdouble -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLuint -> GLdouble -> GLdouble -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress String
"glVertexAttribL2dEXT")

{-# NOINLINE glVertexAttribL2dEXTFunPtr #-}

-- | Usage: @'glVertexAttribL2dvEXT' index v@
--
-- The length of @v@ should be @2@.
--
-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttribL2dv'.


glVertexAttribL2dvEXT :: MonadIO m => GLuint -> Ptr GLdouble -> m ()
glVertexAttribL2dvEXT :: forall (m :: * -> *). MonadIO m => GLuint -> Ptr GLdouble -> m ()
glVertexAttribL2dvEXT = FunPtr (GLuint -> Ptr GLdouble -> IO ())
-> GLuint -> Ptr GLdouble -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLuint -> Ptr GLdouble -> IO ())
-> GLuint -> Ptr GLdouble -> m ()
ffiuintPtrdoubleIOV FunPtr (GLuint -> Ptr GLdouble -> IO ())
glVertexAttribL2dvEXTFunPtr

glVertexAttribL2dvEXTFunPtr :: FunPtr (GLuint -> Ptr GLdouble -> IO ())
glVertexAttribL2dvEXTFunPtr :: FunPtr (GLuint -> Ptr GLdouble -> IO ())
glVertexAttribL2dvEXTFunPtr = IO (FunPtr (GLuint -> Ptr GLdouble -> IO ()))
-> FunPtr (GLuint -> Ptr GLdouble -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLuint -> Ptr GLdouble -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress String
"glVertexAttribL2dvEXT")

{-# NOINLINE glVertexAttribL2dvEXTFunPtr #-}

-- | Usage: @'glVertexAttribL3dEXT' index x y z@
--
-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttribL3d'.


glVertexAttribL3dEXT :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> m ()
glVertexAttribL3dEXT :: forall (m :: * -> *).
MonadIO m =>
GLuint -> GLdouble -> GLdouble -> GLdouble -> m ()
glVertexAttribL3dEXT = FunPtr (GLuint -> GLdouble -> GLdouble -> GLdouble -> IO ())
-> GLuint -> GLdouble -> GLdouble -> GLdouble -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLuint -> GLdouble -> GLdouble -> GLdouble -> IO ())
-> GLuint -> GLdouble -> GLdouble -> GLdouble -> m ()
ffiuintdoubledoubledoubleIOV FunPtr (GLuint -> GLdouble -> GLdouble -> GLdouble -> IO ())
glVertexAttribL3dEXTFunPtr

glVertexAttribL3dEXTFunPtr :: FunPtr (GLuint -> GLdouble -> GLdouble -> GLdouble -> IO ())
glVertexAttribL3dEXTFunPtr :: FunPtr (GLuint -> GLdouble -> GLdouble -> GLdouble -> IO ())
glVertexAttribL3dEXTFunPtr = IO (FunPtr (GLuint -> GLdouble -> GLdouble -> GLdouble -> IO ()))
-> FunPtr (GLuint -> GLdouble -> GLdouble -> GLdouble -> IO ())
forall a. IO a -> a
unsafePerformIO (String
-> IO
     (FunPtr (GLuint -> GLdouble -> GLdouble -> GLdouble -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress String
"glVertexAttribL3dEXT")

{-# NOINLINE glVertexAttribL3dEXTFunPtr #-}

-- | Usage: @'glVertexAttribL3dvEXT' index v@
--
-- The length of @v@ should be @3@.
--
-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttribL3dv'.


glVertexAttribL3dvEXT :: MonadIO m => GLuint -> Ptr GLdouble -> m ()
glVertexAttribL3dvEXT :: forall (m :: * -> *). MonadIO m => GLuint -> Ptr GLdouble -> m ()
glVertexAttribL3dvEXT = FunPtr (GLuint -> Ptr GLdouble -> IO ())
-> GLuint -> Ptr GLdouble -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLuint -> Ptr GLdouble -> IO ())
-> GLuint -> Ptr GLdouble -> m ()
ffiuintPtrdoubleIOV FunPtr (GLuint -> Ptr GLdouble -> IO ())
glVertexAttribL3dvEXTFunPtr

glVertexAttribL3dvEXTFunPtr :: FunPtr (GLuint -> Ptr GLdouble -> IO ())
glVertexAttribL3dvEXTFunPtr :: FunPtr (GLuint -> Ptr GLdouble -> IO ())
glVertexAttribL3dvEXTFunPtr = IO (FunPtr (GLuint -> Ptr GLdouble -> IO ()))
-> FunPtr (GLuint -> Ptr GLdouble -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLuint -> Ptr GLdouble -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress String
"glVertexAttribL3dvEXT")

{-# NOINLINE glVertexAttribL3dvEXTFunPtr #-}

-- | Usage: @'glVertexAttribL4dEXT' index x y z w@
--
-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttribL4d'.


glVertexAttribL4dEXT :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
glVertexAttribL4dEXT :: forall (m :: * -> *).
MonadIO m =>
GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
glVertexAttribL4dEXT = FunPtr
  (GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
-> GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr
  (GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
-> GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
ffiuintdoubledoubledoubledoubleIOV FunPtr
  (GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
glVertexAttribL4dEXTFunPtr

glVertexAttribL4dEXTFunPtr :: FunPtr (GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
glVertexAttribL4dEXTFunPtr :: FunPtr
  (GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
glVertexAttribL4dEXTFunPtr = IO
  (FunPtr
     (GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ()))
-> FunPtr
     (GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
forall a. IO a -> a
unsafePerformIO (String
-> IO
     (FunPtr
        (GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress String
"glVertexAttribL4dEXT")

{-# NOINLINE glVertexAttribL4dEXTFunPtr #-}

-- | Usage: @'glVertexAttribL4dvEXT' index v@
--
-- The length of @v@ should be @4@.
--
-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttribL4dv'.


glVertexAttribL4dvEXT :: MonadIO m => GLuint -> Ptr GLdouble -> m ()
glVertexAttribL4dvEXT :: forall (m :: * -> *). MonadIO m => GLuint -> Ptr GLdouble -> m ()
glVertexAttribL4dvEXT = FunPtr (GLuint -> Ptr GLdouble -> IO ())
-> GLuint -> Ptr GLdouble -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLuint -> Ptr GLdouble -> IO ())
-> GLuint -> Ptr GLdouble -> m ()
ffiuintPtrdoubleIOV FunPtr (GLuint -> Ptr GLdouble -> IO ())
glVertexAttribL4dvEXTFunPtr

glVertexAttribL4dvEXTFunPtr :: FunPtr (GLuint -> Ptr GLdouble -> IO ())
glVertexAttribL4dvEXTFunPtr :: FunPtr (GLuint -> Ptr GLdouble -> IO ())
glVertexAttribL4dvEXTFunPtr = IO (FunPtr (GLuint -> Ptr GLdouble -> IO ()))
-> FunPtr (GLuint -> Ptr GLdouble -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLuint -> Ptr GLdouble -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress String
"glVertexAttribL4dvEXT")

{-# NOINLINE glVertexAttribL4dvEXTFunPtr #-}

-- | Usage: @'glVertexAttribLPointerEXT' index size type stride pointer@
--
-- The length of @pointer@ should be @size@.
--
-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttribLPointer'.


glVertexAttribLPointerEXT :: MonadIO m => GLuint -> GLint -> GLenum -> GLsizei -> Ptr () -> m ()
glVertexAttribLPointerEXT :: forall (m :: * -> *).
MonadIO m =>
GLuint -> GLint -> GLuint -> GLint -> Ptr () -> m ()
glVertexAttribLPointerEXT = FunPtr (GLuint -> GLint -> GLuint -> GLint -> Ptr () -> IO ())
-> GLuint -> GLint -> GLuint -> GLint -> Ptr () -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLuint -> GLint -> GLuint -> GLint -> Ptr () -> IO ())
-> GLuint -> GLint -> GLuint -> GLint -> Ptr () -> m ()
ffiuintintenumsizeiPtrVIOV FunPtr (GLuint -> GLint -> GLuint -> GLint -> Ptr () -> IO ())
glVertexAttribLPointerEXTFunPtr

glVertexAttribLPointerEXTFunPtr :: FunPtr (GLuint -> GLint -> GLenum -> GLsizei -> Ptr () -> IO ())
glVertexAttribLPointerEXTFunPtr :: FunPtr (GLuint -> GLint -> GLuint -> GLint -> Ptr () -> IO ())
glVertexAttribLPointerEXTFunPtr = IO (FunPtr (GLuint -> GLint -> GLuint -> GLint -> Ptr () -> IO ()))
-> FunPtr (GLuint -> GLint -> GLuint -> GLint -> Ptr () -> IO ())
forall a. IO a -> a
unsafePerformIO (String
-> IO
     (FunPtr (GLuint -> GLint -> GLuint -> GLint -> Ptr () -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress String
"glVertexAttribLPointerEXT")

{-# NOINLINE glVertexAttribLPointerEXTFunPtr #-}

pattern GL_DOUBLE_MAT2_EXT  :: (Eq a, Num a) => a

pattern $mGL_DOUBLE_MAT2_EXT :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bGL_DOUBLE_MAT2_EXT :: forall a. (Eq a, Num a) => a
GL_DOUBLE_MAT2_EXT = 0x8F46

pattern GL_DOUBLE_MAT2x3_EXT  :: (Eq a, Num a) => a

pattern $mGL_DOUBLE_MAT2x3_EXT :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bGL_DOUBLE_MAT2x3_EXT :: forall a. (Eq a, Num a) => a
GL_DOUBLE_MAT2x3_EXT = 0x8F49

pattern GL_DOUBLE_MAT2x4_EXT  :: (Eq a, Num a) => a

pattern $mGL_DOUBLE_MAT2x4_EXT :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bGL_DOUBLE_MAT2x4_EXT :: forall a. (Eq a, Num a) => a
GL_DOUBLE_MAT2x4_EXT = 0x8F4A

pattern GL_DOUBLE_MAT3_EXT  :: (Eq a, Num a) => a

pattern $mGL_DOUBLE_MAT3_EXT :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bGL_DOUBLE_MAT3_EXT :: forall a. (Eq a, Num a) => a
GL_DOUBLE_MAT3_EXT = 0x8F47

pattern GL_DOUBLE_MAT3x2_EXT  :: (Eq a, Num a) => a

pattern $mGL_DOUBLE_MAT3x2_EXT :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bGL_DOUBLE_MAT3x2_EXT :: forall a. (Eq a, Num a) => a
GL_DOUBLE_MAT3x2_EXT = 0x8F4B

pattern GL_DOUBLE_MAT3x4_EXT  :: (Eq a, Num a) => a

pattern $mGL_DOUBLE_MAT3x4_EXT :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bGL_DOUBLE_MAT3x4_EXT :: forall a. (Eq a, Num a) => a
GL_DOUBLE_MAT3x4_EXT = 0x8F4C

pattern GL_DOUBLE_MAT4_EXT  :: (Eq a, Num a) => a

pattern $mGL_DOUBLE_MAT4_EXT :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bGL_DOUBLE_MAT4_EXT :: forall a. (Eq a, Num a) => a
GL_DOUBLE_MAT4_EXT = 0x8F48

pattern GL_DOUBLE_MAT4x2_EXT  :: (Eq a, Num a) => a

pattern $mGL_DOUBLE_MAT4x2_EXT :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bGL_DOUBLE_MAT4x2_EXT :: forall a. (Eq a, Num a) => a
GL_DOUBLE_MAT4x2_EXT = 0x8F4D

pattern GL_DOUBLE_MAT4x3_EXT  :: (Eq a, Num a) => a

pattern $mGL_DOUBLE_MAT4x3_EXT :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bGL_DOUBLE_MAT4x3_EXT :: forall a. (Eq a, Num a) => a
GL_DOUBLE_MAT4x3_EXT = 0x8F4E

pattern GL_DOUBLE_VEC2_EXT  :: (Eq a, Num a) => a

pattern $mGL_DOUBLE_VEC2_EXT :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bGL_DOUBLE_VEC2_EXT :: forall a. (Eq a, Num a) => a
GL_DOUBLE_VEC2_EXT = 0x8FFC

pattern GL_DOUBLE_VEC3_EXT  :: (Eq a, Num a) => a

pattern $mGL_DOUBLE_VEC3_EXT :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bGL_DOUBLE_VEC3_EXT :: forall a. (Eq a, Num a) => a
GL_DOUBLE_VEC3_EXT = 0x8FFD

pattern GL_DOUBLE_VEC4_EXT  :: (Eq a, Num a) => a

pattern $mGL_DOUBLE_VEC4_EXT :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bGL_DOUBLE_VEC4_EXT :: forall a. (Eq a, Num a) => a
GL_DOUBLE_VEC4_EXT = 0x8FFE