{-# OPTIONS_HADDOCK ignore-exports#-}
{-# LANGUAGE DataKinds                  #-}
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
{-# LANGUAGE PatternSynonyms            #-}
{-# LANGUAGE Strict                     #-}
module Graphics.Vulkan.Types.Enum.PrimitiveTopology
       (VkPrimitiveTopology(VkPrimitiveTopology,
                            VK_PRIMITIVE_TOPOLOGY_POINT_LIST, VK_PRIMITIVE_TOPOLOGY_LINE_LIST,
                            VK_PRIMITIVE_TOPOLOGY_LINE_STRIP,
                            VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST,
                            VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP,
                            VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN,
                            VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY,
                            VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY,
                            VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY,
                            VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY,
                            VK_PRIMITIVE_TOPOLOGY_PATCH_LIST))
       where
import Foreign.Storable                (Storable)
import GHC.Read                        (choose, expectP)
import Graphics.Vulkan.Marshal         (Int32)
import Text.ParserCombinators.ReadPrec (prec, step, (+++))
import Text.Read                       (Read (..), parens)
import Text.Read.Lex                   (Lexeme (..))

-- | type = @enum@
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkPrimitiveTopology VkPrimitiveTopology registry at www.khronos.org>
newtype VkPrimitiveTopology = VkPrimitiveTopology Int32
                              deriving (VkPrimitiveTopology -> VkPrimitiveTopology -> Bool
(VkPrimitiveTopology -> VkPrimitiveTopology -> Bool)
-> (VkPrimitiveTopology -> VkPrimitiveTopology -> Bool)
-> Eq VkPrimitiveTopology
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: VkPrimitiveTopology -> VkPrimitiveTopology -> Bool
$c/= :: VkPrimitiveTopology -> VkPrimitiveTopology -> Bool
== :: VkPrimitiveTopology -> VkPrimitiveTopology -> Bool
$c== :: VkPrimitiveTopology -> VkPrimitiveTopology -> Bool
Eq, Eq VkPrimitiveTopology
Eq VkPrimitiveTopology
-> (VkPrimitiveTopology -> VkPrimitiveTopology -> Ordering)
-> (VkPrimitiveTopology -> VkPrimitiveTopology -> Bool)
-> (VkPrimitiveTopology -> VkPrimitiveTopology -> Bool)
-> (VkPrimitiveTopology -> VkPrimitiveTopology -> Bool)
-> (VkPrimitiveTopology -> VkPrimitiveTopology -> Bool)
-> (VkPrimitiveTopology
    -> VkPrimitiveTopology -> VkPrimitiveTopology)
-> (VkPrimitiveTopology
    -> VkPrimitiveTopology -> VkPrimitiveTopology)
-> Ord VkPrimitiveTopology
VkPrimitiveTopology -> VkPrimitiveTopology -> Bool
VkPrimitiveTopology -> VkPrimitiveTopology -> Ordering
VkPrimitiveTopology -> VkPrimitiveTopology -> VkPrimitiveTopology
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
min :: VkPrimitiveTopology -> VkPrimitiveTopology -> VkPrimitiveTopology
$cmin :: VkPrimitiveTopology -> VkPrimitiveTopology -> VkPrimitiveTopology
max :: VkPrimitiveTopology -> VkPrimitiveTopology -> VkPrimitiveTopology
$cmax :: VkPrimitiveTopology -> VkPrimitiveTopology -> VkPrimitiveTopology
>= :: VkPrimitiveTopology -> VkPrimitiveTopology -> Bool
$c>= :: VkPrimitiveTopology -> VkPrimitiveTopology -> Bool
> :: VkPrimitiveTopology -> VkPrimitiveTopology -> Bool
$c> :: VkPrimitiveTopology -> VkPrimitiveTopology -> Bool
<= :: VkPrimitiveTopology -> VkPrimitiveTopology -> Bool
$c<= :: VkPrimitiveTopology -> VkPrimitiveTopology -> Bool
< :: VkPrimitiveTopology -> VkPrimitiveTopology -> Bool
$c< :: VkPrimitiveTopology -> VkPrimitiveTopology -> Bool
compare :: VkPrimitiveTopology -> VkPrimitiveTopology -> Ordering
$ccompare :: VkPrimitiveTopology -> VkPrimitiveTopology -> Ordering
Ord, Int -> VkPrimitiveTopology
VkPrimitiveTopology -> Int
VkPrimitiveTopology -> [VkPrimitiveTopology]
VkPrimitiveTopology -> VkPrimitiveTopology
VkPrimitiveTopology -> VkPrimitiveTopology -> [VkPrimitiveTopology]
VkPrimitiveTopology
-> VkPrimitiveTopology
-> VkPrimitiveTopology
-> [VkPrimitiveTopology]
(VkPrimitiveTopology -> VkPrimitiveTopology)
-> (VkPrimitiveTopology -> VkPrimitiveTopology)
-> (Int -> VkPrimitiveTopology)
-> (VkPrimitiveTopology -> Int)
-> (VkPrimitiveTopology -> [VkPrimitiveTopology])
-> (VkPrimitiveTopology
    -> VkPrimitiveTopology -> [VkPrimitiveTopology])
-> (VkPrimitiveTopology
    -> VkPrimitiveTopology -> [VkPrimitiveTopology])
-> (VkPrimitiveTopology
    -> VkPrimitiveTopology
    -> VkPrimitiveTopology
    -> [VkPrimitiveTopology])
-> Enum VkPrimitiveTopology
forall a.
(a -> a)
-> (a -> a)
-> (Int -> a)
-> (a -> Int)
-> (a -> [a])
-> (a -> a -> [a])
-> (a -> a -> [a])
-> (a -> a -> a -> [a])
-> Enum a
enumFromThenTo :: VkPrimitiveTopology
-> VkPrimitiveTopology
-> VkPrimitiveTopology
-> [VkPrimitiveTopology]
$cenumFromThenTo :: VkPrimitiveTopology
-> VkPrimitiveTopology
-> VkPrimitiveTopology
-> [VkPrimitiveTopology]
enumFromTo :: VkPrimitiveTopology -> VkPrimitiveTopology -> [VkPrimitiveTopology]
$cenumFromTo :: VkPrimitiveTopology -> VkPrimitiveTopology -> [VkPrimitiveTopology]
enumFromThen :: VkPrimitiveTopology -> VkPrimitiveTopology -> [VkPrimitiveTopology]
$cenumFromThen :: VkPrimitiveTopology -> VkPrimitiveTopology -> [VkPrimitiveTopology]
enumFrom :: VkPrimitiveTopology -> [VkPrimitiveTopology]
$cenumFrom :: VkPrimitiveTopology -> [VkPrimitiveTopology]
fromEnum :: VkPrimitiveTopology -> Int
$cfromEnum :: VkPrimitiveTopology -> Int
toEnum :: Int -> VkPrimitiveTopology
$ctoEnum :: Int -> VkPrimitiveTopology
pred :: VkPrimitiveTopology -> VkPrimitiveTopology
$cpred :: VkPrimitiveTopology -> VkPrimitiveTopology
succ :: VkPrimitiveTopology -> VkPrimitiveTopology
$csucc :: VkPrimitiveTopology -> VkPrimitiveTopology
Enum, Ptr VkPrimitiveTopology -> IO VkPrimitiveTopology
Ptr VkPrimitiveTopology -> Int -> IO VkPrimitiveTopology
Ptr VkPrimitiveTopology -> Int -> VkPrimitiveTopology -> IO ()
Ptr VkPrimitiveTopology -> VkPrimitiveTopology -> IO ()
VkPrimitiveTopology -> Int
(VkPrimitiveTopology -> Int)
-> (VkPrimitiveTopology -> Int)
-> (Ptr VkPrimitiveTopology -> Int -> IO VkPrimitiveTopology)
-> (Ptr VkPrimitiveTopology -> Int -> VkPrimitiveTopology -> IO ())
-> (forall b. Ptr b -> Int -> IO VkPrimitiveTopology)
-> (forall b. Ptr b -> Int -> VkPrimitiveTopology -> IO ())
-> (Ptr VkPrimitiveTopology -> IO VkPrimitiveTopology)
-> (Ptr VkPrimitiveTopology -> VkPrimitiveTopology -> IO ())
-> Storable VkPrimitiveTopology
forall b. Ptr b -> Int -> IO VkPrimitiveTopology
forall b. Ptr b -> Int -> VkPrimitiveTopology -> IO ()
forall a.
(a -> Int)
-> (a -> Int)
-> (Ptr a -> Int -> IO a)
-> (Ptr a -> Int -> a -> IO ())
-> (forall b. Ptr b -> Int -> IO a)
-> (forall b. Ptr b -> Int -> a -> IO ())
-> (Ptr a -> IO a)
-> (Ptr a -> a -> IO ())
-> Storable a
poke :: Ptr VkPrimitiveTopology -> VkPrimitiveTopology -> IO ()
$cpoke :: Ptr VkPrimitiveTopology -> VkPrimitiveTopology -> IO ()
peek :: Ptr VkPrimitiveTopology -> IO VkPrimitiveTopology
$cpeek :: Ptr VkPrimitiveTopology -> IO VkPrimitiveTopology
pokeByteOff :: forall b. Ptr b -> Int -> VkPrimitiveTopology -> IO ()
$cpokeByteOff :: forall b. Ptr b -> Int -> VkPrimitiveTopology -> IO ()
peekByteOff :: forall b. Ptr b -> Int -> IO VkPrimitiveTopology
$cpeekByteOff :: forall b. Ptr b -> Int -> IO VkPrimitiveTopology
pokeElemOff :: Ptr VkPrimitiveTopology -> Int -> VkPrimitiveTopology -> IO ()
$cpokeElemOff :: Ptr VkPrimitiveTopology -> Int -> VkPrimitiveTopology -> IO ()
peekElemOff :: Ptr VkPrimitiveTopology -> Int -> IO VkPrimitiveTopology
$cpeekElemOff :: Ptr VkPrimitiveTopology -> Int -> IO VkPrimitiveTopology
alignment :: VkPrimitiveTopology -> Int
$calignment :: VkPrimitiveTopology -> Int
sizeOf :: VkPrimitiveTopology -> Int
$csizeOf :: VkPrimitiveTopology -> Int
Storable)

instance Show VkPrimitiveTopology where
    showsPrec :: Int -> VkPrimitiveTopology -> ShowS
showsPrec Int
_ VkPrimitiveTopology
VK_PRIMITIVE_TOPOLOGY_POINT_LIST
      = String -> ShowS
showString String
"VK_PRIMITIVE_TOPOLOGY_POINT_LIST"
    showsPrec Int
_ VkPrimitiveTopology
VK_PRIMITIVE_TOPOLOGY_LINE_LIST
      = String -> ShowS
showString String
"VK_PRIMITIVE_TOPOLOGY_LINE_LIST"
    showsPrec Int
_ VkPrimitiveTopology
VK_PRIMITIVE_TOPOLOGY_LINE_STRIP
      = String -> ShowS
showString String
"VK_PRIMITIVE_TOPOLOGY_LINE_STRIP"
    showsPrec Int
_ VkPrimitiveTopology
VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST
      = String -> ShowS
showString String
"VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST"
    showsPrec Int
_ VkPrimitiveTopology
VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP
      = String -> ShowS
showString String
"VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP"
    showsPrec Int
_ VkPrimitiveTopology
VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN
      = String -> ShowS
showString String
"VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN"
    showsPrec Int
_ VkPrimitiveTopology
VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY
      = String -> ShowS
showString String
"VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY"
    showsPrec Int
_ VkPrimitiveTopology
VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY
      = String -> ShowS
showString String
"VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY"
    showsPrec Int
_ VkPrimitiveTopology
VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY
      = String -> ShowS
showString String
"VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY"
    showsPrec Int
_ VkPrimitiveTopology
VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY
      = String -> ShowS
showString String
"VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY"
    showsPrec Int
_ VkPrimitiveTopology
VK_PRIMITIVE_TOPOLOGY_PATCH_LIST
      = String -> ShowS
showString String
"VK_PRIMITIVE_TOPOLOGY_PATCH_LIST"
    showsPrec Int
p (VkPrimitiveTopology Int32
x)
      = Bool -> ShowS -> ShowS
showParen (Int
p Int -> Int -> Bool
forall a. Ord a => a -> a -> Bool
>= Int
11)
          (String -> ShowS
showString String
"VkPrimitiveTopology " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Int -> Int32 -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
11 Int32
x)

instance Read VkPrimitiveTopology where
    readPrec :: ReadPrec VkPrimitiveTopology
readPrec
      = ReadPrec VkPrimitiveTopology -> ReadPrec VkPrimitiveTopology
forall a. ReadPrec a -> ReadPrec a
parens
          ([(String, ReadPrec VkPrimitiveTopology)]
-> ReadPrec VkPrimitiveTopology
forall a. [(String, ReadPrec a)] -> ReadPrec a
choose
             [(String
"VK_PRIMITIVE_TOPOLOGY_POINT_LIST",
               VkPrimitiveTopology -> ReadPrec VkPrimitiveTopology
forall (f :: * -> *) a. Applicative f => a -> f a
pure VkPrimitiveTopology
VK_PRIMITIVE_TOPOLOGY_POINT_LIST),
              (String
"VK_PRIMITIVE_TOPOLOGY_LINE_LIST",
               VkPrimitiveTopology -> ReadPrec VkPrimitiveTopology
forall (f :: * -> *) a. Applicative f => a -> f a
pure VkPrimitiveTopology
VK_PRIMITIVE_TOPOLOGY_LINE_LIST),
              (String
"VK_PRIMITIVE_TOPOLOGY_LINE_STRIP",
               VkPrimitiveTopology -> ReadPrec VkPrimitiveTopology
forall (f :: * -> *) a. Applicative f => a -> f a
pure VkPrimitiveTopology
VK_PRIMITIVE_TOPOLOGY_LINE_STRIP),
              (String
"VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST",
               VkPrimitiveTopology -> ReadPrec VkPrimitiveTopology
forall (f :: * -> *) a. Applicative f => a -> f a
pure VkPrimitiveTopology
VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST),
              (String
"VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP",
               VkPrimitiveTopology -> ReadPrec VkPrimitiveTopology
forall (f :: * -> *) a. Applicative f => a -> f a
pure VkPrimitiveTopology
VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP),
              (String
"VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN",
               VkPrimitiveTopology -> ReadPrec VkPrimitiveTopology
forall (f :: * -> *) a. Applicative f => a -> f a
pure VkPrimitiveTopology
VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN),
              (String
"VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY",
               VkPrimitiveTopology -> ReadPrec VkPrimitiveTopology
forall (f :: * -> *) a. Applicative f => a -> f a
pure VkPrimitiveTopology
VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY),
              (String
"VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY",
               VkPrimitiveTopology -> ReadPrec VkPrimitiveTopology
forall (f :: * -> *) a. Applicative f => a -> f a
pure VkPrimitiveTopology
VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY),
              (String
"VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY",
               VkPrimitiveTopology -> ReadPrec VkPrimitiveTopology
forall (f :: * -> *) a. Applicative f => a -> f a
pure VkPrimitiveTopology
VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY),
              (String
"VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY",
               VkPrimitiveTopology -> ReadPrec VkPrimitiveTopology
forall (f :: * -> *) a. Applicative f => a -> f a
pure VkPrimitiveTopology
VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY),
              (String
"VK_PRIMITIVE_TOPOLOGY_PATCH_LIST",
               VkPrimitiveTopology -> ReadPrec VkPrimitiveTopology
forall (f :: * -> *) a. Applicative f => a -> f a
pure VkPrimitiveTopology
VK_PRIMITIVE_TOPOLOGY_PATCH_LIST)]
             ReadPrec VkPrimitiveTopology
-> ReadPrec VkPrimitiveTopology -> ReadPrec VkPrimitiveTopology
forall a. ReadPrec a -> ReadPrec a -> ReadPrec a
+++
             Int -> ReadPrec VkPrimitiveTopology -> ReadPrec VkPrimitiveTopology
forall a. Int -> ReadPrec a -> ReadPrec a
prec Int
10
               (Lexeme -> ReadPrec ()
expectP (String -> Lexeme
Ident String
"VkPrimitiveTopology") ReadPrec ()
-> ReadPrec VkPrimitiveTopology -> ReadPrec VkPrimitiveTopology
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>>
                  (Int32 -> VkPrimitiveTopology
VkPrimitiveTopology (Int32 -> VkPrimitiveTopology)
-> ReadPrec Int32 -> ReadPrec VkPrimitiveTopology
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> ReadPrec Int32 -> ReadPrec Int32
forall a. ReadPrec a -> ReadPrec a
step ReadPrec Int32
forall a. Read a => ReadPrec a
readPrec)))

pattern VK_PRIMITIVE_TOPOLOGY_POINT_LIST :: VkPrimitiveTopology

pattern $bVK_PRIMITIVE_TOPOLOGY_POINT_LIST :: VkPrimitiveTopology
$mVK_PRIMITIVE_TOPOLOGY_POINT_LIST :: forall {r}.
VkPrimitiveTopology -> (Void# -> r) -> (Void# -> r) -> r
VK_PRIMITIVE_TOPOLOGY_POINT_LIST = VkPrimitiveTopology 0

pattern VK_PRIMITIVE_TOPOLOGY_LINE_LIST :: VkPrimitiveTopology

pattern $bVK_PRIMITIVE_TOPOLOGY_LINE_LIST :: VkPrimitiveTopology
$mVK_PRIMITIVE_TOPOLOGY_LINE_LIST :: forall {r}.
VkPrimitiveTopology -> (Void# -> r) -> (Void# -> r) -> r
VK_PRIMITIVE_TOPOLOGY_LINE_LIST = VkPrimitiveTopology 1

pattern VK_PRIMITIVE_TOPOLOGY_LINE_STRIP :: VkPrimitiveTopology

pattern $bVK_PRIMITIVE_TOPOLOGY_LINE_STRIP :: VkPrimitiveTopology
$mVK_PRIMITIVE_TOPOLOGY_LINE_STRIP :: forall {r}.
VkPrimitiveTopology -> (Void# -> r) -> (Void# -> r) -> r
VK_PRIMITIVE_TOPOLOGY_LINE_STRIP = VkPrimitiveTopology 2

pattern VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST :: VkPrimitiveTopology

pattern $bVK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST :: VkPrimitiveTopology
$mVK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST :: forall {r}.
VkPrimitiveTopology -> (Void# -> r) -> (Void# -> r) -> r
VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST = VkPrimitiveTopology 3

pattern VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP :: VkPrimitiveTopology

pattern $bVK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP :: VkPrimitiveTopology
$mVK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP :: forall {r}.
VkPrimitiveTopology -> (Void# -> r) -> (Void# -> r) -> r
VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP =
        VkPrimitiveTopology 4

pattern VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN :: VkPrimitiveTopology

pattern $bVK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN :: VkPrimitiveTopology
$mVK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN :: forall {r}.
VkPrimitiveTopology -> (Void# -> r) -> (Void# -> r) -> r
VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN = VkPrimitiveTopology 5

pattern VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY ::
        VkPrimitiveTopology

pattern $bVK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY :: VkPrimitiveTopology
$mVK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY :: forall {r}.
VkPrimitiveTopology -> (Void# -> r) -> (Void# -> r) -> r
VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY =
        VkPrimitiveTopology 6

pattern VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY ::
        VkPrimitiveTopology

pattern $bVK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY :: VkPrimitiveTopology
$mVK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY :: forall {r}.
VkPrimitiveTopology -> (Void# -> r) -> (Void# -> r) -> r
VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY =
        VkPrimitiveTopology 7

pattern VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY ::
        VkPrimitiveTopology

pattern $bVK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY :: VkPrimitiveTopology
$mVK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY :: forall {r}.
VkPrimitiveTopology -> (Void# -> r) -> (Void# -> r) -> r
VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY =
        VkPrimitiveTopology 8

pattern VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY ::
        VkPrimitiveTopology

pattern $bVK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY :: VkPrimitiveTopology
$mVK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY :: forall {r}.
VkPrimitiveTopology -> (Void# -> r) -> (Void# -> r) -> r
VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY =
        VkPrimitiveTopology 9

pattern VK_PRIMITIVE_TOPOLOGY_PATCH_LIST :: VkPrimitiveTopology

pattern $bVK_PRIMITIVE_TOPOLOGY_PATCH_LIST :: VkPrimitiveTopology
$mVK_PRIMITIVE_TOPOLOGY_PATCH_LIST :: forall {r}.
VkPrimitiveTopology -> (Void# -> r) -> (Void# -> r) -> r
VK_PRIMITIVE_TOPOLOGY_PATCH_LIST = VkPrimitiveTopology 10