content: {-# OPTIONS_HADDOCK ignore-exports#-}
  {-# LANGUAGE DataKinds                  #-}
  {-# LANGUAGE FlexibleInstances          #-}
  {-# LANGUAGE GeneralizedNewtypeDeriving #-}
  {-# LANGUAGE KindSignatures             #-}
  {-# LANGUAGE PatternSynonyms            #-}
  {-# LANGUAGE StandaloneDeriving         #-}
  {-# LANGUAGE Strict                     #-}
  {-# LANGUAGE TypeSynonymInstances       #-}
  module Graphics.Vulkan.Types.Enum.External
         (VkExternalFenceFeatureFlagBitsKHR(..),
          VkExternalFenceFeatureBitmask(VkExternalFenceFeatureBitmask,
                                        VkExternalFenceFeatureFlags, VkExternalFenceFeatureFlagBits,
                                        VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT,
                                        VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT),
          VkExternalFenceFeatureFlags, VkExternalFenceFeatureFlagBits,
          VkExternalFenceHandleTypeFlagBitsKHR(..),
          VkExternalFenceHandleTypeBitmask(VkExternalFenceHandleTypeBitmask,
                                           VkExternalFenceHandleTypeFlags,
                                           VkExternalFenceHandleTypeFlagBits,
                                           VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT,
                                           VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT,
                                           VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,
                                           VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT),
          VkExternalFenceHandleTypeFlags, VkExternalFenceHandleTypeFlagBits,
          VkExternalMemoryFeatureFlagBitsKHR(..),
          VkExternalMemoryFeatureBitmask(VkExternalMemoryFeatureBitmask,
                                         VkExternalMemoryFeatureFlags,
                                         VkExternalMemoryFeatureFlagBits,
                                         VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT,
                                         VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT,
                                         VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT),
          VkExternalMemoryFeatureFlags, VkExternalMemoryFeatureFlagBits,
          VkExternalMemoryFeatureBitmaskNV(VkExternalMemoryFeatureBitmaskNV,
                                           VkExternalMemoryFeatureFlagsNV,
                                           VkExternalMemoryFeatureFlagBitsNV,
                                           VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV,
                                           VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV,
                                           VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV),
          VkExternalMemoryFeatureFlagsNV, VkExternalMemoryFeatureFlagBitsNV,
          VkExternalMemoryHandleTypeFlagBitsKHR(..),
          VkExternalMemoryHandleTypeBitmask(VkExternalMemoryHandleTypeBitmask,
                                            VkExternalMemoryHandleTypeFlags,
                                            VkExternalMemoryHandleTypeFlagBits,
                                            VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT,
                                            VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT,
                                            VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,
                                            VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT,
                                            VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT,
                                            VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT,
                                            VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT),
          VkExternalMemoryHandleTypeFlags,
          VkExternalMemoryHandleTypeFlagBits,
          VkExternalMemoryHandleTypeBitmaskNV(VkExternalMemoryHandleTypeBitmaskNV,
                                              VkExternalMemoryHandleTypeFlagsNV,
                                              VkExternalMemoryHandleTypeFlagBitsNV,
                                              VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV,
                                              VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV,
                                              VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV,
                                              VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV),
          VkExternalMemoryHandleTypeFlagsNV,
          VkExternalMemoryHandleTypeFlagBitsNV,
          VkExternalSemaphoreFeatureFlagBitsKHR(..),
          VkExternalSemaphoreFeatureBitmask(VkExternalSemaphoreFeatureBitmask,
                                            VkExternalSemaphoreFeatureFlags,
                                            VkExternalSemaphoreFeatureFlagBits,
                                            VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT,
                                            VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT),
          VkExternalSemaphoreFeatureFlags,
          VkExternalSemaphoreFeatureFlagBits,
          VkExternalSemaphoreHandleTypeFlagBitsKHR(..),
          VkExternalSemaphoreHandleTypeBitmask(VkExternalSemaphoreHandleTypeBitmask,
                                               VkExternalSemaphoreHandleTypeFlags,
                                               VkExternalSemaphoreHandleTypeFlagBits,
                                               VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT,
                                               VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT,
                                               VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,
                                               VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT,
                                               VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D11_FENCE_BIT,
                                               VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT),
          VkExternalSemaphoreHandleTypeFlags,
          VkExternalSemaphoreHandleTypeFlagBits)
         where
  import Data.Bits                       (Bits, FiniteBits)
  import Data.Coerce                     (coerce)
  import Foreign.Storable                (Storable)
  import GHC.Read                        (choose, expectP)
  import Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType)
  import Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
  import Text.ParserCombinators.ReadPrec (prec, step, (+++))
  import Text.Read                       (Read (..), parens)
  import Text.Read.Lex                   (Lexeme (..))
  
  newtype VkExternalFenceFeatureFlagBitsKHR = VkExternalFenceFeatureFlagBitsKHR VkFlags
                                              deriving (Eq, Ord, Enum, Bits, FiniteBits, Storable)
  
  instance Show VkExternalFenceFeatureFlagBitsKHR where
      {-# INLINE showsPrec #-}
      showsPrec = coerce (showsPrec :: Int -> VkFlags -> ShowS)
  
  instance Read VkExternalFenceFeatureFlagBitsKHR where
      {-# INLINE readsPrec #-}
      readsPrec = coerce (readsPrec :: Int -> ReadS VkFlags)
  
  newtype VkExternalFenceFeatureBitmask (a ::
                                           FlagType) = VkExternalFenceFeatureBitmask VkFlags
                                                       deriving (Eq, Ord, Storable)
  
  type VkExternalFenceFeatureFlags =
       VkExternalFenceFeatureBitmask FlagMask
  
  type VkExternalFenceFeatureFlagBits =
       VkExternalFenceFeatureBitmask FlagBit
  
  pattern VkExternalFenceFeatureFlagBits ::
          VkFlags -> VkExternalFenceFeatureBitmask FlagBit
  
  pattern VkExternalFenceFeatureFlagBits n =
          VkExternalFenceFeatureBitmask n
  
  pattern VkExternalFenceFeatureFlags ::
          VkFlags -> VkExternalFenceFeatureBitmask FlagMask
  
  pattern VkExternalFenceFeatureFlags n =
          VkExternalFenceFeatureBitmask n
  
  deriving instance Bits (VkExternalFenceFeatureBitmask FlagMask)
  
  deriving instance
           FiniteBits (VkExternalFenceFeatureBitmask FlagMask)
  
  instance Show (VkExternalFenceFeatureBitmask a) where
      showsPrec _ VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT
        = showString "VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT"
      showsPrec _ VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT
        = showString "VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT"
      showsPrec p (VkExternalFenceFeatureBitmask x)
        = showParen (p >= 11)
            (showString "VkExternalFenceFeatureBitmask " . showsPrec 11 x)
  
  instance Read (VkExternalFenceFeatureBitmask a) where
      readPrec
        = parens
            (choose
               [("VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT",
                 pure VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT),
                ("VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT",
                 pure VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT)]
               +++
               prec 10
                 (expectP (Ident "VkExternalFenceFeatureBitmask") >>
                    (VkExternalFenceFeatureBitmask <$> step readPrec)))
  
  -- | bitpos = @0@
  pattern VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT ::
          VkExternalFenceFeatureBitmask a
  
  pattern VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT =
          VkExternalFenceFeatureBitmask 1
  
  -- | bitpos = @1@
  pattern VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT ::
          VkExternalFenceFeatureBitmask a
  
  pattern VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT =
          VkExternalFenceFeatureBitmask 2
  
  newtype VkExternalFenceHandleTypeFlagBitsKHR = VkExternalFenceHandleTypeFlagBitsKHR VkFlags
                                                 deriving (Eq, Ord, Enum, Bits, FiniteBits, Storable)
  
  instance Show VkExternalFenceHandleTypeFlagBitsKHR where
      {-# INLINE showsPrec #-}
      showsPrec = coerce (showsPrec :: Int -> VkFlags -> ShowS)
  
  instance Read VkExternalFenceHandleTypeFlagBitsKHR where
      {-# INLINE readsPrec #-}
      readsPrec = coerce (readsPrec :: Int -> ReadS VkFlags)
  
  newtype VkExternalFenceHandleTypeBitmask (a ::
                                              FlagType) = VkExternalFenceHandleTypeBitmask VkFlags
                                                          deriving (Eq, Ord, Storable)
  
  type VkExternalFenceHandleTypeFlags =
       VkExternalFenceHandleTypeBitmask FlagMask
  
  type VkExternalFenceHandleTypeFlagBits =
       VkExternalFenceHandleTypeBitmask FlagBit
  
  pattern VkExternalFenceHandleTypeFlagBits ::
          VkFlags -> VkExternalFenceHandleTypeBitmask FlagBit
  
  pattern VkExternalFenceHandleTypeFlagBits n =
          VkExternalFenceHandleTypeBitmask n
  
  pattern VkExternalFenceHandleTypeFlags ::
          VkFlags -> VkExternalFenceHandleTypeBitmask FlagMask
  
  pattern VkExternalFenceHandleTypeFlags n =
          VkExternalFenceHandleTypeBitmask n
  
  deriving instance Bits (VkExternalFenceHandleTypeBitmask FlagMask)
  
  deriving instance
           FiniteBits (VkExternalFenceHandleTypeBitmask FlagMask)
  
  instance Show (VkExternalFenceHandleTypeBitmask a) where
      showsPrec _ VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT
        = showString "VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT"
      showsPrec _ VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT
        = showString "VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT"
      showsPrec _ VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT
        = showString "VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT"
      showsPrec _ VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT
        = showString "VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT"
      showsPrec p (VkExternalFenceHandleTypeBitmask x)
        = showParen (p >= 11)
            (showString "VkExternalFenceHandleTypeBitmask " . showsPrec 11 x)
  
  instance Read (VkExternalFenceHandleTypeBitmask a) where
      readPrec
        = parens
            (choose
               [("VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT",
                 pure VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT),
                ("VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT",
                 pure VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT),
                ("VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT",
                 pure VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT),
                ("VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT",
                 pure VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT)]
               +++
               prec 10
                 (expectP (Ident "VkExternalFenceHandleTypeBitmask") >>
                    (VkExternalFenceHandleTypeBitmask <$> step readPrec)))
  
  -- | bitpos = @0@
  pattern VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT ::
          VkExternalFenceHandleTypeBitmask a
  
  pattern VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT =
          VkExternalFenceHandleTypeBitmask 1
  
  -- | bitpos = @1@
  pattern VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT ::
          VkExternalFenceHandleTypeBitmask a
  
  pattern VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT =
          VkExternalFenceHandleTypeBitmask 2
  
  -- | bitpos = @2@
  pattern VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT ::
          VkExternalFenceHandleTypeBitmask a
  
  pattern VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT =
          VkExternalFenceHandleTypeBitmask 4
  
  -- | bitpos = @3@
  pattern VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT ::
          VkExternalFenceHandleTypeBitmask a
  
  pattern VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT =
          VkExternalFenceHandleTypeBitmask 8
  
  newtype VkExternalMemoryFeatureFlagBitsKHR = VkExternalMemoryFeatureFlagBitsKHR VkFlags
                                               deriving (Eq, Ord, Enum, Bits, FiniteBits, Storable)
  
  instance Show VkExternalMemoryFeatureFlagBitsKHR where
      {-# INLINE showsPrec #-}
      showsPrec = coerce (showsPrec :: Int -> VkFlags -> ShowS)
  
  instance Read VkExternalMemoryFeatureFlagBitsKHR where
      {-# INLINE readsPrec #-}
      readsPrec = coerce (readsPrec :: Int -> ReadS VkFlags)
  
  newtype VkExternalMemoryFeatureBitmask (a ::
                                            FlagType) = VkExternalMemoryFeatureBitmask VkFlags
                                                        deriving (Eq, Ord, Storable)
  
  type VkExternalMemoryFeatureFlags =
       VkExternalMemoryFeatureBitmask FlagMask
  
  type VkExternalMemoryFeatureFlagBits =
       VkExternalMemoryFeatureBitmask FlagBit
  
  pattern VkExternalMemoryFeatureFlagBits ::
          VkFlags -> VkExternalMemoryFeatureBitmask FlagBit
  
  pattern VkExternalMemoryFeatureFlagBits n =
          VkExternalMemoryFeatureBitmask n
  
  pattern VkExternalMemoryFeatureFlags ::
          VkFlags -> VkExternalMemoryFeatureBitmask FlagMask
  
  pattern VkExternalMemoryFeatureFlags n =
          VkExternalMemoryFeatureBitmask n
  
  deriving instance Bits (VkExternalMemoryFeatureBitmask FlagMask)
  
  deriving instance
           FiniteBits (VkExternalMemoryFeatureBitmask FlagMask)
  
  instance Show (VkExternalMemoryFeatureBitmask a) where
      showsPrec _ VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT
        = showString "VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT"
      showsPrec _ VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT
        = showString "VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT"
      showsPrec _ VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT
        = showString "VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT"
      showsPrec p (VkExternalMemoryFeatureBitmask x)
        = showParen (p >= 11)
            (showString "VkExternalMemoryFeatureBitmask " . showsPrec 11 x)
  
  instance Read (VkExternalMemoryFeatureBitmask a) where
      readPrec
        = parens
            (choose
               [("VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT",
                 pure VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT),
                ("VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT",
                 pure VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT),
                ("VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT",
                 pure VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT)]
               +++
               prec 10
                 (expectP (Ident "VkExternalMemoryFeatureBitmask") >>
                    (VkExternalMemoryFeatureBitmask <$> step readPrec)))
  
  -- | bitpos = @0@
  pattern VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT ::
          VkExternalMemoryFeatureBitmask a
  
  pattern VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT =
          VkExternalMemoryFeatureBitmask 1
  
  -- | bitpos = @1@
  pattern VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT ::
          VkExternalMemoryFeatureBitmask a
  
  pattern VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT =
          VkExternalMemoryFeatureBitmask 2
  
  -- | bitpos = @2@
  pattern VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT ::
          VkExternalMemoryFeatureBitmask a
  
  pattern VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT =
          VkExternalMemoryFeatureBitmask 4
  
  newtype VkExternalMemoryFeatureBitmaskNV (a ::
                                              FlagType) = VkExternalMemoryFeatureBitmaskNV VkFlags
                                                          deriving (Eq, Ord, Storable)
  
  type VkExternalMemoryFeatureFlagsNV =
       VkExternalMemoryFeatureBitmaskNV FlagMask
  
  type VkExternalMemoryFeatureFlagBitsNV =
       VkExternalMemoryFeatureBitmaskNV FlagBit
  
  pattern VkExternalMemoryFeatureFlagBitsNV ::
          VkFlags -> VkExternalMemoryFeatureBitmaskNV FlagBit
  
  pattern VkExternalMemoryFeatureFlagBitsNV n =
          VkExternalMemoryFeatureBitmaskNV n
  
  pattern VkExternalMemoryFeatureFlagsNV ::
          VkFlags -> VkExternalMemoryFeatureBitmaskNV FlagMask
  
  pattern VkExternalMemoryFeatureFlagsNV n =
          VkExternalMemoryFeatureBitmaskNV n
  
  deriving instance Bits (VkExternalMemoryFeatureBitmaskNV FlagMask)
  
  deriving instance
           FiniteBits (VkExternalMemoryFeatureBitmaskNV FlagMask)
  
  instance Show (VkExternalMemoryFeatureBitmaskNV a) where
      showsPrec _ VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV
        = showString "VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV"
      showsPrec _ VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV
        = showString "VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV"
      showsPrec _ VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV
        = showString "VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV"
      showsPrec p (VkExternalMemoryFeatureBitmaskNV x)
        = showParen (p >= 11)
            (showString "VkExternalMemoryFeatureBitmaskNV " . showsPrec 11 x)
  
  instance Read (VkExternalMemoryFeatureBitmaskNV a) where
      readPrec
        = parens
            (choose
               [("VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV",
                 pure VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV),
                ("VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV",
                 pure VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV),
                ("VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV",
                 pure VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV)]
               +++
               prec 10
                 (expectP (Ident "VkExternalMemoryFeatureBitmaskNV") >>
                    (VkExternalMemoryFeatureBitmaskNV <$> step readPrec)))
  
  -- | bitpos = @0@
  pattern VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV ::
          VkExternalMemoryFeatureBitmaskNV a
  
  pattern VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV =
          VkExternalMemoryFeatureBitmaskNV 1
  
  -- | bitpos = @1@
  pattern VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV ::
          VkExternalMemoryFeatureBitmaskNV a
  
  pattern VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV =
          VkExternalMemoryFeatureBitmaskNV 2
  
  -- | bitpos = @2@
  pattern VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV ::
          VkExternalMemoryFeatureBitmaskNV a
  
  pattern VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV =
          VkExternalMemoryFeatureBitmaskNV 4
  
  newtype VkExternalMemoryHandleTypeFlagBitsKHR = VkExternalMemoryHandleTypeFlagBitsKHR VkFlags
                                                  deriving (Eq, Ord, Enum, Bits, FiniteBits, Storable)
  
  instance Show VkExternalMemoryHandleTypeFlagBitsKHR where
      {-# INLINE showsPrec #-}
      showsPrec = coerce (showsPrec :: Int -> VkFlags -> ShowS)
  
  instance Read VkExternalMemoryHandleTypeFlagBitsKHR where
      {-# INLINE readsPrec #-}
      readsPrec = coerce (readsPrec :: Int -> ReadS VkFlags)
  
  newtype VkExternalMemoryHandleTypeBitmask (a ::
                                               FlagType) = VkExternalMemoryHandleTypeBitmask VkFlags
                                                           deriving (Eq, Ord, Storable)
  
  type VkExternalMemoryHandleTypeFlags =
       VkExternalMemoryHandleTypeBitmask FlagMask
  
  type VkExternalMemoryHandleTypeFlagBits =
       VkExternalMemoryHandleTypeBitmask FlagBit
  
  pattern VkExternalMemoryHandleTypeFlagBits ::
          VkFlags -> VkExternalMemoryHandleTypeBitmask FlagBit
  
  pattern VkExternalMemoryHandleTypeFlagBits n =
          VkExternalMemoryHandleTypeBitmask n
  
  pattern VkExternalMemoryHandleTypeFlags ::
          VkFlags -> VkExternalMemoryHandleTypeBitmask FlagMask
  
  pattern VkExternalMemoryHandleTypeFlags n =
          VkExternalMemoryHandleTypeBitmask n
  
  deriving instance Bits (VkExternalMemoryHandleTypeBitmask FlagMask)
  
  deriving instance
           FiniteBits (VkExternalMemoryHandleTypeBitmask FlagMask)
  
  instance Show (VkExternalMemoryHandleTypeBitmask a) where
      showsPrec _ VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT
        = showString "VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT"
      showsPrec _ VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT
        = showString "VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT"
      showsPrec _ VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT
        = showString "VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT"
      showsPrec _ VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT
        = showString "VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT"
      showsPrec _ VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT
        = showString "VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT"
      showsPrec _ VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT
        = showString "VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT"
      showsPrec _ VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT
        = showString "VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT"
      showsPrec p (VkExternalMemoryHandleTypeBitmask x)
        = showParen (p >= 11)
            (showString "VkExternalMemoryHandleTypeBitmask " . showsPrec 11 x)
  
  instance Read (VkExternalMemoryHandleTypeBitmask a) where
      readPrec
        = parens
            (choose
               [("VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT",
                 pure VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT),
                ("VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT",
                 pure VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT),
                ("VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT",
                 pure VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT),
                ("VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT",
                 pure VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT),
                ("VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT",
                 pure VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT),
                ("VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT",
                 pure VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT),
                ("VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT",
                 pure VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT)]
               +++
               prec 10
                 (expectP (Ident "VkExternalMemoryHandleTypeBitmask") >>
                    (VkExternalMemoryHandleTypeBitmask <$> step readPrec)))
  
  -- | bitpos = @0@
  pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT ::
          VkExternalMemoryHandleTypeBitmask a
  
  pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT =
          VkExternalMemoryHandleTypeBitmask 1
  
  -- | bitpos = @1@
  pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT ::
          VkExternalMemoryHandleTypeBitmask a
  
  pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT =
          VkExternalMemoryHandleTypeBitmask 2
  
  -- | bitpos = @2@
  pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT ::
          VkExternalMemoryHandleTypeBitmask a
  
  pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT =
          VkExternalMemoryHandleTypeBitmask 4
  
  -- | bitpos = @3@
  pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT ::
          VkExternalMemoryHandleTypeBitmask a
  
  pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT =
          VkExternalMemoryHandleTypeBitmask 8
  
  -- | bitpos = @4@
  pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT ::
          VkExternalMemoryHandleTypeBitmask a
  
  pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT =
          VkExternalMemoryHandleTypeBitmask 16
  
  -- | bitpos = @5@
  pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT ::
          VkExternalMemoryHandleTypeBitmask a
  
  pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT =
          VkExternalMemoryHandleTypeBitmask 32
  
  -- | bitpos = @6@
  pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT ::
          VkExternalMemoryHandleTypeBitmask a
  
  pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT =
          VkExternalMemoryHandleTypeBitmask 64
  
  newtype VkExternalMemoryHandleTypeBitmaskNV (a ::
                                                 FlagType) = VkExternalMemoryHandleTypeBitmaskNV VkFlags
                                                             deriving (Eq, Ord, Storable)
  
  type VkExternalMemoryHandleTypeFlagsNV =
       VkExternalMemoryHandleTypeBitmaskNV FlagMask
  
  type VkExternalMemoryHandleTypeFlagBitsNV =
       VkExternalMemoryHandleTypeBitmaskNV FlagBit
  
  pattern VkExternalMemoryHandleTypeFlagBitsNV ::
          VkFlags -> VkExternalMemoryHandleTypeBitmaskNV FlagBit
  
  pattern VkExternalMemoryHandleTypeFlagBitsNV n =
          VkExternalMemoryHandleTypeBitmaskNV n
  
  pattern VkExternalMemoryHandleTypeFlagsNV ::
          VkFlags -> VkExternalMemoryHandleTypeBitmaskNV FlagMask
  
  pattern VkExternalMemoryHandleTypeFlagsNV n =
          VkExternalMemoryHandleTypeBitmaskNV n
  
  deriving instance
           Bits (VkExternalMemoryHandleTypeBitmaskNV FlagMask)
  
  deriving instance
           FiniteBits (VkExternalMemoryHandleTypeBitmaskNV FlagMask)
  
  instance Show (VkExternalMemoryHandleTypeBitmaskNV a) where
      showsPrec _ VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV
        = showString "VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV"
      showsPrec _ VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV
        = showString
            "VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV"
      showsPrec _ VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV
        = showString "VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV"
      showsPrec _ VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV
        = showString
            "VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV"
      showsPrec p (VkExternalMemoryHandleTypeBitmaskNV x)
        = showParen (p >= 11)
            (showString "VkExternalMemoryHandleTypeBitmaskNV " .
               showsPrec 11 x)
  
  instance Read (VkExternalMemoryHandleTypeBitmaskNV a) where
      readPrec
        = parens
            (choose
               [("VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV",
                 pure VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV),
                ("VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV",
                 pure VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV),
                ("VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV",
                 pure VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV),
                ("VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV",
                 pure VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV)]
               +++
               prec 10
                 (expectP (Ident "VkExternalMemoryHandleTypeBitmaskNV") >>
                    (VkExternalMemoryHandleTypeBitmaskNV <$> step readPrec)))
  
  -- | bitpos = @0@
  pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV ::
          VkExternalMemoryHandleTypeBitmaskNV a
  
  pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV =
          VkExternalMemoryHandleTypeBitmaskNV 1
  
  -- | bitpos = @1@
  pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV ::
          VkExternalMemoryHandleTypeBitmaskNV a
  
  pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV =
          VkExternalMemoryHandleTypeBitmaskNV 2
  
  -- | bitpos = @2@
  pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV ::
          VkExternalMemoryHandleTypeBitmaskNV a
  
  pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV =
          VkExternalMemoryHandleTypeBitmaskNV 4
  
  -- | bitpos = @3@
  pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV ::
          VkExternalMemoryHandleTypeBitmaskNV a
  
  pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV =
          VkExternalMemoryHandleTypeBitmaskNV 8
  
  newtype VkExternalSemaphoreFeatureFlagBitsKHR = VkExternalSemaphoreFeatureFlagBitsKHR VkFlags
                                                  deriving (Eq, Ord, Enum, Bits, FiniteBits, Storable)
  
  instance Show VkExternalSemaphoreFeatureFlagBitsKHR where
      {-# INLINE showsPrec #-}
      showsPrec = coerce (showsPrec :: Int -> VkFlags -> ShowS)
  
  instance Read VkExternalSemaphoreFeatureFlagBitsKHR where
      {-# INLINE readsPrec #-}
      readsPrec = coerce (readsPrec :: Int -> ReadS VkFlags)
  
  newtype VkExternalSemaphoreFeatureBitmask (a ::
                                               FlagType) = VkExternalSemaphoreFeatureBitmask VkFlags
                                                           deriving (Eq, Ord, Storable)
  
  type VkExternalSemaphoreFeatureFlags =
       VkExternalSemaphoreFeatureBitmask FlagMask
  
  type VkExternalSemaphoreFeatureFlagBits =
       VkExternalSemaphoreFeatureBitmask FlagBit
  
  pattern VkExternalSemaphoreFeatureFlagBits ::
          VkFlags -> VkExternalSemaphoreFeatureBitmask FlagBit
  
  pattern VkExternalSemaphoreFeatureFlagBits n =
          VkExternalSemaphoreFeatureBitmask n
  
  pattern VkExternalSemaphoreFeatureFlags ::
          VkFlags -> VkExternalSemaphoreFeatureBitmask FlagMask
  
  pattern VkExternalSemaphoreFeatureFlags n =
          VkExternalSemaphoreFeatureBitmask n
  
  deriving instance Bits (VkExternalSemaphoreFeatureBitmask FlagMask)
  
  deriving instance
           FiniteBits (VkExternalSemaphoreFeatureBitmask FlagMask)
  
  instance Show (VkExternalSemaphoreFeatureBitmask a) where
      showsPrec _ VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT
        = showString "VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT"
      showsPrec _ VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT
        = showString "VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT"
      showsPrec p (VkExternalSemaphoreFeatureBitmask x)
        = showParen (p >= 11)
            (showString "VkExternalSemaphoreFeatureBitmask " . showsPrec 11 x)
  
  instance Read (VkExternalSemaphoreFeatureBitmask a) where
      readPrec
        = parens
            (choose
               [("VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT",
                 pure VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT),
                ("VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT",
                 pure VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT)]
               +++
               prec 10
                 (expectP (Ident "VkExternalSemaphoreFeatureBitmask") >>
                    (VkExternalSemaphoreFeatureBitmask <$> step readPrec)))
  
  -- | bitpos = @0@
  pattern VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT ::
          VkExternalSemaphoreFeatureBitmask a
  
  pattern VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT =
          VkExternalSemaphoreFeatureBitmask 1
  
  -- | bitpos = @1@
  pattern VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT ::
          VkExternalSemaphoreFeatureBitmask a
  
  pattern VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT =
          VkExternalSemaphoreFeatureBitmask 2
  
  newtype VkExternalSemaphoreHandleTypeFlagBitsKHR = VkExternalSemaphoreHandleTypeFlagBitsKHR VkFlags
                                                     deriving (Eq, Ord, Enum, Bits, FiniteBits,
                                                               Storable)
  
  instance Show VkExternalSemaphoreHandleTypeFlagBitsKHR where
      {-# INLINE showsPrec #-}
      showsPrec = coerce (showsPrec :: Int -> VkFlags -> ShowS)
  
  instance Read VkExternalSemaphoreHandleTypeFlagBitsKHR where
      {-# INLINE readsPrec #-}
      readsPrec = coerce (readsPrec :: Int -> ReadS VkFlags)
  
  newtype VkExternalSemaphoreHandleTypeBitmask (a ::
                                                  FlagType) = VkExternalSemaphoreHandleTypeBitmask VkFlags
                                                              deriving (Eq, Ord, Storable)
  
  type VkExternalSemaphoreHandleTypeFlags =
       VkExternalSemaphoreHandleTypeBitmask FlagMask
  
  type VkExternalSemaphoreHandleTypeFlagBits =
       VkExternalSemaphoreHandleTypeBitmask FlagBit
  
  pattern VkExternalSemaphoreHandleTypeFlagBits ::
          VkFlags -> VkExternalSemaphoreHandleTypeBitmask FlagBit
  
  pattern VkExternalSemaphoreHandleTypeFlagBits n =
          VkExternalSemaphoreHandleTypeBitmask n
  
  pattern VkExternalSemaphoreHandleTypeFlags ::
          VkFlags -> VkExternalSemaphoreHandleTypeBitmask FlagMask
  
  pattern VkExternalSemaphoreHandleTypeFlags n =
          VkExternalSemaphoreHandleTypeBitmask n
  
  deriving instance
           Bits (VkExternalSemaphoreHandleTypeBitmask FlagMask)
  
  deriving instance
           FiniteBits (VkExternalSemaphoreHandleTypeBitmask FlagMask)
  
  instance Show (VkExternalSemaphoreHandleTypeBitmask a) where
      showsPrec _ VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT
        = showString "VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT"
      showsPrec _ VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT
        = showString "VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT"
      showsPrec _ VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT
        = showString
            "VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT"
      showsPrec _ VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT
        = showString "VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT"
      showsPrec _ VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D11_FENCE_BIT
        = showString "VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D11_FENCE_BIT"
      showsPrec _ VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT
        = showString "VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT"
      showsPrec p (VkExternalSemaphoreHandleTypeBitmask x)
        = showParen (p >= 11)
            (showString "VkExternalSemaphoreHandleTypeBitmask " .
               showsPrec 11 x)
  
  instance Read (VkExternalSemaphoreHandleTypeBitmask a) where
      readPrec
        = parens
            (choose
               [("VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT",
                 pure VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT),
                ("VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT",
                 pure VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT),
                ("VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT",
                 pure VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT),
                ("VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT",
                 pure VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT),
                ("VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D11_FENCE_BIT",
                 pure VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D11_FENCE_BIT),
                ("VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT",
                 pure VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT)]
               +++
               prec 10
                 (expectP (Ident "VkExternalSemaphoreHandleTypeBitmask") >>
                    (VkExternalSemaphoreHandleTypeBitmask <$> step readPrec)))
  
  -- | bitpos = @0@
  pattern VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT ::
          VkExternalSemaphoreHandleTypeBitmask a
  
  pattern VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT =
          VkExternalSemaphoreHandleTypeBitmask 1
  
  -- | bitpos = @1@
  pattern VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT ::
          VkExternalSemaphoreHandleTypeBitmask a
  
  pattern VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT =
          VkExternalSemaphoreHandleTypeBitmask 2
  
  -- | bitpos = @2@
  pattern VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT ::
          VkExternalSemaphoreHandleTypeBitmask a
  
  pattern VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT =
          VkExternalSemaphoreHandleTypeBitmask 4
  
  -- | bitpos = @3@
  pattern VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT ::
          VkExternalSemaphoreHandleTypeBitmask a
  
  pattern VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT =
          VkExternalSemaphoreHandleTypeBitmask 8
  
  pattern VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D11_FENCE_BIT ::
          VkExternalSemaphoreHandleTypeBitmask a
  
  pattern VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D11_FENCE_BIT =
          VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT
  
  -- | bitpos = @4@
  pattern VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT ::
          VkExternalSemaphoreHandleTypeBitmask a
  
  pattern VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT =
          VkExternalSemaphoreHandleTypeBitmask 16
  