diff --git a/changelog.md b/changelog.md
--- a/changelog.md
+++ b/changelog.md
@@ -2,6 +2,9 @@
 
 ## WIP
 
+## [3.8.2] - 2020-12-14
+- Bump API version to v1.2.165
+
 ## [3.8.1] - 2020-12-08
 - Bump API version to v1.2.164
 
diff --git a/package.yaml b/package.yaml
--- a/package.yaml
+++ b/package.yaml
@@ -1,5 +1,5 @@
 name: vulkan
-version: "3.8.1"
+version: "3.8.2"
 synopsis: Bindings to the Vulkan graphics API.
 category: Graphics
 maintainer: Joe Hermaszewski <live.long.and.prosper@monoid.al>
diff --git a/src-manual/Vulkan/CStruct.hs b/src-manual/Vulkan/CStruct.hs
new file mode 100644
--- /dev/null
+++ b/src-manual/Vulkan/CStruct.hs
@@ -0,0 +1,53 @@
+{-# language CPP #-}
+
+module Vulkan.CStruct
+  ( ToCStruct(..)
+  , FromCStruct(..)
+  ) where
+
+import           Control.Exception.Base         ( bracket )
+import           Foreign.Marshal.Alloc          ( allocaBytesAligned )
+import           Foreign.Marshal.Alloc          ( callocBytes )
+import           Foreign.Marshal.Alloc          ( free )
+import           Foreign.Ptr                    ( Ptr )
+
+-- | A class for types which can be marshalled into a C style
+-- structure.
+class ToCStruct a where
+  -- | Allocates a C type structure and all dependencies and passes
+  -- it to a continuation. The space is deallocated when this
+  -- continuation returns and the C type structure must not be
+  -- returned out of it.
+  withCStruct :: a -> (Ptr a -> IO b) -> IO b
+  withCStruct x f = allocaBytesAligned (cStructSize @a) (cStructAlignment @a)
+    $ \p -> pokeCStruct p x (f p)
+
+  -- | Write a C type struct into some existing memory and run a
+  -- continuation. The pointed to structure is not necessarily valid
+  -- outside the continuation as additional allocations may have been
+  -- made.
+  pokeCStruct :: Ptr a -> a -> IO b -> IO b
+
+  -- | Allocate space for an "empty" @a@ and populate any univalued
+  -- members with their value.
+  withZeroCStruct :: (Ptr a -> IO b) -> IO b
+  withZeroCStruct f =
+    bracket (callocBytes @a (cStructSize @a)) free $ \p -> pokeZeroCStruct p (f p)
+
+  -- | And populate any univalued members with their value, run a
+  -- function and then clean up any allocated resources.
+  pokeZeroCStruct :: Ptr a -> IO b -> IO b
+
+  -- | The size of this struct, note that this doesn't account for any
+  -- extra pointed-to data
+  cStructSize :: Int
+
+  -- | The required memory alignment for this type
+  cStructAlignment :: Int
+
+
+-- | A class for types which can be marshalled from a C style
+-- structure.
+class FromCStruct a where
+  -- | Read an @a@ and any other pointed to data from memory
+  peekCStruct :: Ptr a -> IO a
diff --git a/src-manual/Vulkan/Zero.hs b/src-manual/Vulkan/Zero.hs
new file mode 100644
--- /dev/null
+++ b/src-manual/Vulkan/Zero.hs
@@ -0,0 +1,83 @@
+{-# language CPP #-}
+-- No documentation found for Chapter "Zero"
+module Vulkan.Zero  (Zero(..)) where
+
+import GHC.Ptr (nullFunPtr)
+import Foreign.Ptr (nullPtr)
+import Foreign.C.Types (CChar)
+import Foreign.C.Types (CFloat)
+import Foreign.C.Types (CInt)
+import Foreign.C.Types (CSize)
+import Foreign.Storable (Storable)
+import Data.Int (Int16)
+import Data.Int (Int32)
+import Data.Int (Int64)
+import Data.Int (Int8)
+import Foreign.Ptr (FunPtr)
+import Foreign.Ptr (Ptr)
+import GHC.TypeNats (KnownNat)
+import Data.Word (Word16)
+import Data.Word (Word32)
+import Data.Word (Word64)
+import Data.Word (Word8)
+
+-- | A class for initializing things with all zero data
+--
+-- Any instance should satisfy the following law:
+--
+-- @ new zero = calloc @ or @ with zero = withZeroCStruct @
+--
+-- i.e. Marshaling @zero@ to memory yeilds only zero-valued bytes, except
+-- for structs which require a "type" tag
+--
+class Zero a where
+  zero :: a
+
+instance Zero Bool where
+  zero = False
+
+instance Zero (FunPtr a) where
+  zero = nullFunPtr
+
+instance Zero (Ptr a) where
+  zero = nullPtr
+
+instance Zero Int8 where
+  zero = 0
+
+instance Zero Int16 where
+  zero = 0
+
+instance Zero Int32 where
+  zero = 0
+
+instance Zero Int64 where
+  zero = 0
+
+instance Zero Word8 where
+  zero = 0
+
+instance Zero Word16 where
+  zero = 0
+
+instance Zero Word32 where
+  zero = 0
+
+instance Zero Word64 where
+  zero = 0
+
+instance Zero Float where
+  zero = 0
+
+instance Zero CFloat where
+  zero = 0
+
+instance Zero CChar where
+  zero = 0
+
+instance Zero CSize where
+  zero = 0
+
+instance Zero CInt where
+  zero = 0
+
diff --git a/src/Vulkan.hs b/src/Vulkan.hs
--- a/src/Vulkan.hs
+++ b/src/Vulkan.hs
@@ -8,7 +8,6 @@
                , module Vulkan.NamedType
                , module Vulkan.SPIRVRequirements
                , module Vulkan.Version
-               , module Vulkan.Zero
                ) where
 import Vulkan.CStruct
 import Vulkan.Core10
@@ -18,5 +17,4 @@
 import Vulkan.NamedType
 import Vulkan.SPIRVRequirements
 import Vulkan.Version
-import Vulkan.Zero
 
diff --git a/src/Vulkan/CStruct.hs b/src/Vulkan/CStruct.hs
deleted file mode 100644
--- a/src/Vulkan/CStruct.hs
+++ /dev/null
@@ -1,53 +0,0 @@
-{-# language CPP #-}
--- No documentation found for Chapter "CStruct"
-module Vulkan.CStruct  ( ToCStruct(..)
-                       , FromCStruct(..)
-                       ) where
-
-import Control.Exception.Base (bracket)
-import Foreign.Marshal.Alloc (allocaBytesAligned)
-import Foreign.Marshal.Alloc (callocBytes)
-import Foreign.Marshal.Alloc (free)
-import Foreign.Ptr (Ptr)
-
--- | A class for types which can be marshalled into a C style
--- structure.
-class ToCStruct a where
-  -- | Allocates a C type structure and all dependencies and passes
-  -- it to a continuation. The space is deallocated when this
-  -- continuation returns and the C type structure must not be
-  -- returned out of it.
-  withCStruct :: a -> (Ptr a -> IO b) -> IO b
-  withCStruct x f = allocaBytesAligned (cStructSize @a) (cStructAlignment @a)
-    $ \p -> pokeCStruct p x (f p)
-
-  -- | Write a C type struct into some existing memory and run a
-  -- continuation. The pointed to structure is not necessarily valid
-  -- outside the continuation as additional allocations may have been
-  -- made.
-  pokeCStruct :: Ptr a -> a -> IO b -> IO b
-
-  -- | Allocate space for an "empty" @a@ and populate any univalued
-  -- members with their value.
-  withZeroCStruct :: (Ptr a -> IO b) -> IO b
-  withZeroCStruct f =
-    bracket (callocBytes @a (cStructSize @a)) free $ \p -> pokeZeroCStruct p (f p)
-
-  -- | And populate any univalued members with their value, run a
-  -- function and then clean up any allocated resources.
-  pokeZeroCStruct :: Ptr a -> IO b -> IO b
-
-  -- | The size of this struct, note that this doesn't account for any
-  -- extra pointed-to data
-  cStructSize :: Int
-
-  -- | The required memory alignment for this type
-  cStructAlignment :: Int
-
-
--- | A class for types which can be marshalled from a C style
--- structure.
-class FromCStruct a where
-  -- | Read an @a@ and any other pointed to data from memory
-  peekCStruct :: Ptr a -> IO a
-
diff --git a/src/Vulkan/CStruct/Extends.hs b/src/Vulkan/CStruct/Extends.hs
--- a/src/Vulkan/CStruct/Extends.hs
+++ b/src/Vulkan/CStruct/Extends.hs
@@ -29,6 +29,11 @@
 import Foreign.Ptr (plusPtr)
 import Control.Monad.Trans.Class (lift)
 import Control.Monad.Trans.Cont (evalContT)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
 import Data.Proxy (Proxy(Proxy))
 import Data.Typeable (Typeable)
 import Foreign.Storable (Storable)
@@ -226,8 +231,6 @@
 import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer (FramebufferAttachmentsCreateInfo)
 import {-# SOURCE #-} Vulkan.Core10.Pass (FramebufferCreateInfo)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_coverage_reduction_mode (FramebufferMixedSamplesCombinationNV)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_device_generated_commands (GeneratedCommandsInfoNV)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_device_generated_commands (GeneratedCommandsMemoryRequirementsInfoNV)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_ray_tracing (GeometryAABBNV)
@@ -600,8 +603,6 @@
 import {-# SOURCE #-} Vulkan.Extensions.VK_AMD_display_native_hdr (SwapchainDisplayNativeHdrCreateInfoAMD)
 import {-# SOURCE #-} Vulkan.Extensions.VK_AMD_texture_gather_bias_lod (TextureLODGatherFormatPropertiesAMD)
 import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore (TimelineSemaphoreSubmitInfo)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_ray_tracing_pipeline (TraceRaysIndirectCommandKHR)
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_acceleration_structure (TransformMatrixKHR)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_validation_cache (ValidationCacheCreateInfoEXT)
@@ -625,7 +626,6 @@
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_hdr_metadata (XYColorEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_xcb_surface (XcbSurfaceCreateInfoKHR)
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_xlib_surface (XlibSurfaceCreateInfoKHR)
-import Vulkan.Zero (Zero(..))
 -- | VkBaseOutStructure - Base structure for a read-only pointer chain
 --
 -- = Description
@@ -1471,7 +1471,7 @@
             InvalidArgument
             "peekChainHead"
             (  "Illegal struct extension of "
-            <> show (extensibleType @a)
+            <> extensibleTypeName @a
             <> " with "
             <> show ty
             )
@@ -1481,7 +1481,8 @@
           r
 
 class Extensible (a :: [Type] -> Type) where
-  extensibleType :: StructureType
+  extensibleTypeName :: String
+  -- ^ For error reporting an invalid extension
   getNext :: a es -> Chain es
   setNext :: a ds -> Chain es -> a es
   extends :: forall e b proxy. Typeable e => proxy e -> (Extends a e => b) -> Maybe b
diff --git a/src/Vulkan/CStruct/Extends.hs-boot b/src/Vulkan/CStruct/Extends.hs-boot
--- a/src/Vulkan/CStruct/Extends.hs-boot
+++ b/src/Vulkan/CStruct/Extends.hs-boot
@@ -8,10 +8,11 @@
                                , Chain
                                ) where
 
-import Data.Kind (Constraint)
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Constraint)
+import Data.Kind (Type)
+
 data BaseInStructure
 
 instance ToCStruct BaseInStructure
diff --git a/src/Vulkan/CStruct/Utils.hs b/src/Vulkan/CStruct/Utils.hs
--- a/src/Vulkan/CStruct/Utils.hs
+++ b/src/Vulkan/CStruct/Utils.hs
@@ -3,15 +3,18 @@
 module Vulkan.CStruct.Utils  ( pokeFixedLengthByteString
                              , pokeFixedLengthNullTerminatedByteString
                              , peekByteStringFromSizedVectorPtr
+                             , callocFixedArray
                              , lowerArrayPtr
                              , advancePtrBytes
                              , FixedArray
                              ) where
 
+import Foreign.Marshal.Alloc (callocBytes)
 import Foreign.Marshal.Array (allocaArray)
 import Foreign.Marshal.Utils (copyBytes)
 import Foreign.Storable (peekElemOff)
 import Foreign.Storable (pokeElemOff)
+import Foreign.Storable (sizeOf)
 import GHC.Ptr (castPtr)
 import Foreign.Ptr (plusPtr)
 import GHC.TypeNats (natVal)
@@ -94,6 +97,15 @@
   => Ptr (FixedArray n Word8)
   -> IO ByteString
 peekByteStringFromSizedVectorPtr p = packCStringLen (castPtr p, fromIntegral (natVal (Proxy @n)))
+
+-- | Allocate a zero array with the size specified by the 'FixedArray'
+-- return type. Make sure to release the memory with 'free'
+callocFixedArray
+  :: forall n a . (KnownNat n, Storable a) => IO (Ptr (FixedArray n a))
+callocFixedArray = callocBytes
+  ( sizeOf (error "sizeOf evaluated its argument" :: a)
+  * fromIntegral (natVal (Proxy @n))
+  )
 
 -- | Get the pointer to the first element in the array
 lowerArrayPtr
diff --git a/src/Vulkan/Core10/APIConstants.hs b/src/Vulkan/Core10/APIConstants.hs
--- a/src/Vulkan/Core10/APIConstants.hs
+++ b/src/Vulkan/Core10/APIConstants.hs
@@ -52,10 +52,10 @@
                                    , PipelineCacheHeaderVersion(..)
                                    ) where
 
+import Vulkan.Zero (Zero(..))
 import Data.Word (Word32)
 import Data.Word (Word64)
 import Vulkan.Core10.Enums.ObjectType (ObjectType)
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.FundamentalTypes (Bool32(..))
 import Vulkan.Core10.Enums.PipelineCacheHeaderVersion (PipelineCacheHeaderVersion(..))
 -- No documentation found for TopLevel "VK_LOD_CLAMP_NONE"
diff --git a/src/Vulkan/Core10/AllocationCallbacks.hs b/src/Vulkan/Core10/AllocationCallbacks.hs
--- a/src/Vulkan/Core10/AllocationCallbacks.hs
+++ b/src/Vulkan/Core10/AllocationCallbacks.hs
@@ -4,6 +4,11 @@
 
 import Foreign.Marshal.Alloc (allocaBytesAligned)
 import Foreign.Ptr (plusPtr)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
 import Data.Typeable (Typeable)
 import Foreign.Storable (Storable)
 import Foreign.Storable (Storable(peek))
@@ -12,16 +17,11 @@
 import GHC.Generics (Generic)
 import Foreign.Ptr (Ptr)
 import Data.Kind (Type)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.FuncPointers (PFN_vkAllocationFunction)
 import Vulkan.Core10.FuncPointers (PFN_vkFreeFunction)
 import Vulkan.Core10.FuncPointers (PFN_vkInternalAllocationNotification)
 import Vulkan.Core10.FuncPointers (PFN_vkInternalFreeNotification)
 import Vulkan.Core10.FuncPointers (PFN_vkReallocationFunction)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
-import Vulkan.Zero (Zero(..))
 -- | VkAllocationCallbacks - Structure containing callback function pointers
 -- for memory allocation
 --
diff --git a/src/Vulkan/Core10/AllocationCallbacks.hs-boot b/src/Vulkan/Core10/AllocationCallbacks.hs-boot
--- a/src/Vulkan/Core10/AllocationCallbacks.hs-boot
+++ b/src/Vulkan/Core10/AllocationCallbacks.hs-boot
@@ -2,9 +2,10 @@
 -- No documentation found for Chapter "AllocationCallbacks"
 module Vulkan.Core10.AllocationCallbacks  (AllocationCallbacks) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data AllocationCallbacks
 
 instance ToCStruct AllocationCallbacks
diff --git a/src/Vulkan/Core10/Buffer.hs b/src/Vulkan/Core10/Buffer.hs
--- a/src/Vulkan/Core10/Buffer.hs
+++ b/src/Vulkan/Core10/Buffer.hs
@@ -31,6 +31,11 @@
 import Data.Vector (generateM)
 import qualified Data.Vector (imapM_)
 import qualified Data.Vector (length)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
 import Control.Monad.IO.Class (MonadIO)
 import Data.Type.Equality ((:~:)(Refl))
 import Data.Typeable (Typeable)
@@ -67,8 +72,6 @@
 import Vulkan.CStruct.Extends (Extendss)
 import Vulkan.CStruct.Extends (Extensible(..))
 import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_external_memory (ExternalMemoryBufferCreateInfo)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.CStruct.Extends (PeekChain)
 import Vulkan.CStruct.Extends (PeekChain(..))
 import Vulkan.CStruct.Extends (PokeChain)
@@ -78,10 +81,7 @@
 import Vulkan.Core10.Enums.SharingMode (SharingMode)
 import Vulkan.CStruct.Extends (SomeStruct)
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
 import Vulkan.Exception (VulkanException(..))
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_BUFFER_CREATE_INFO))
 import Vulkan.Core10.Enums.Result (Result(SUCCESS))
 import Vulkan.Core10.Handles (Buffer(..))
@@ -425,7 +425,7 @@
 deriving instance Show (Chain es) => Show (BufferCreateInfo es)
 
 instance Extensible BufferCreateInfo where
-  extensibleType = STRUCTURE_TYPE_BUFFER_CREATE_INFO
+  extensibleTypeName = "BufferCreateInfo"
   setNext x next = x{next = next}
   getNext BufferCreateInfo{..} = next
   extends :: forall e b proxy. Typeable e => proxy e -> (Extends BufferCreateInfo e => b) -> Maybe b
diff --git a/src/Vulkan/Core10/Buffer.hs-boot b/src/Vulkan/Core10/Buffer.hs-boot
--- a/src/Vulkan/Core10/Buffer.hs-boot
+++ b/src/Vulkan/Core10/Buffer.hs-boot
@@ -2,13 +2,13 @@
 -- No documentation found for Chapter "Buffer"
 module Vulkan.Core10.Buffer  (BufferCreateInfo) where
 
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (ToCStruct)
 import Data.Kind (Type)
 import {-# SOURCE #-} Vulkan.CStruct.Extends (Chain)
 import {-# SOURCE #-} Vulkan.CStruct.Extends (Extendss)
-import Vulkan.CStruct (FromCStruct)
 import {-# SOURCE #-} Vulkan.CStruct.Extends (PeekChain)
 import {-# SOURCE #-} Vulkan.CStruct.Extends (PokeChain)
-import Vulkan.CStruct (ToCStruct)
 type role BufferCreateInfo nominal
 data BufferCreateInfo (es :: [Type])
 
diff --git a/src/Vulkan/Core10/BufferView.hs b/src/Vulkan/Core10/BufferView.hs
--- a/src/Vulkan/Core10/BufferView.hs
+++ b/src/Vulkan/Core10/BufferView.hs
@@ -22,6 +22,11 @@
 import Foreign.Ptr (plusPtr)
 import Control.Monad.Trans.Class (lift)
 import Control.Monad.Trans.Cont (evalContT)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
 import Control.Monad.IO.Class (MonadIO)
 import Data.Typeable (Typeable)
 import Foreign.Storable (Storable)
@@ -48,15 +53,10 @@
 import Vulkan.Core10.FundamentalTypes (DeviceSize)
 import Vulkan.Core10.Handles (Device_T)
 import Vulkan.Core10.Enums.Format (Format)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Enums.Result (Result)
 import Vulkan.Core10.Enums.Result (Result(..))
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
 import Vulkan.Exception (VulkanException(..))
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO))
 import Vulkan.Core10.Enums.Result (Result(SUCCESS))
 import Vulkan.Core10.Handles (BufferView(..))
diff --git a/src/Vulkan/Core10/BufferView.hs-boot b/src/Vulkan/Core10/BufferView.hs-boot
--- a/src/Vulkan/Core10/BufferView.hs-boot
+++ b/src/Vulkan/Core10/BufferView.hs-boot
@@ -2,9 +2,10 @@
 -- No documentation found for Chapter "BufferView"
 module Vulkan.Core10.BufferView  (BufferViewCreateInfo) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data BufferViewCreateInfo
 
 instance ToCStruct BufferViewCreateInfo
diff --git a/src/Vulkan/Core10/CommandBuffer.hs b/src/Vulkan/Core10/CommandBuffer.hs
--- a/src/Vulkan/Core10/CommandBuffer.hs
+++ b/src/Vulkan/Core10/CommandBuffer.hs
@@ -40,6 +40,11 @@
 import Data.Vector (generateM)
 import qualified Data.Vector (imapM_)
 import qualified Data.Vector (length)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
 import Control.Monad.IO.Class (MonadIO)
 import Data.Type.Equality ((:~:)(Refl))
 import Data.Typeable (Typeable)
@@ -90,8 +95,6 @@
 import Vulkan.CStruct.Extends (Extendss)
 import Vulkan.CStruct.Extends (Extensible(..))
 import Vulkan.Core10.Handles (Framebuffer)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.CStruct.Extends (PeekChain)
 import Vulkan.CStruct.Extends (PeekChain(..))
 import Vulkan.CStruct.Extends (PokeChain)
@@ -103,10 +106,7 @@
 import Vulkan.Core10.Enums.Result (Result(..))
 import Vulkan.CStruct.Extends (SomeStruct)
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
 import Vulkan.Exception (VulkanException(..))
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO))
@@ -763,7 +763,7 @@
 deriving instance Show (Chain es) => Show (CommandBufferInheritanceInfo es)
 
 instance Extensible CommandBufferInheritanceInfo where
-  extensibleType = STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO
+  extensibleTypeName = "CommandBufferInheritanceInfo"
   setNext x next = x{next = next}
   getNext CommandBufferInheritanceInfo{..} = next
   extends :: forall e b proxy. Typeable e => proxy e -> (Extends CommandBufferInheritanceInfo e => b) -> Maybe b
@@ -882,7 +882,7 @@
 deriving instance Show (Chain es) => Show (CommandBufferBeginInfo es)
 
 instance Extensible CommandBufferBeginInfo where
-  extensibleType = STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO
+  extensibleTypeName = "CommandBufferBeginInfo"
   setNext x next = x{next = next}
   getNext CommandBufferBeginInfo{..} = next
   extends :: forall e b proxy. Typeable e => proxy e -> (Extends CommandBufferBeginInfo e => b) -> Maybe b
@@ -915,7 +915,7 @@
     pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ())))
     next <- peekChain (castPtr pNext)
     flags <- peek @CommandBufferUsageFlags ((p `plusPtr` 16 :: Ptr CommandBufferUsageFlags))
-    pInheritanceInfo <- peek @(Ptr (CommandBufferInheritanceInfo _)) ((p `plusPtr` 24 :: Ptr (Ptr (CommandBufferInheritanceInfo a))))
+    pInheritanceInfo <- peek @(Ptr (CommandBufferInheritanceInfo _)) ((p `plusPtr` 24 :: Ptr (Ptr (CommandBufferInheritanceInfo _))))
     pInheritanceInfo' <- maybePeek (\j -> peekSomeCStruct (forgetExtensions (j))) pInheritanceInfo
     pure $ CommandBufferBeginInfo
              next flags pInheritanceInfo'
diff --git a/src/Vulkan/Core10/CommandBuffer.hs-boot b/src/Vulkan/Core10/CommandBuffer.hs-boot
--- a/src/Vulkan/Core10/CommandBuffer.hs-boot
+++ b/src/Vulkan/Core10/CommandBuffer.hs-boot
@@ -5,13 +5,13 @@
                                     , CommandBufferInheritanceInfo
                                     ) where
 
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (ToCStruct)
 import Data.Kind (Type)
 import {-# SOURCE #-} Vulkan.CStruct.Extends (Chain)
 import {-# SOURCE #-} Vulkan.CStruct.Extends (Extendss)
-import Vulkan.CStruct (FromCStruct)
 import {-# SOURCE #-} Vulkan.CStruct.Extends (PeekChain)
 import {-# SOURCE #-} Vulkan.CStruct.Extends (PokeChain)
-import Vulkan.CStruct (ToCStruct)
 data CommandBufferAllocateInfo
 
 instance ToCStruct CommandBufferAllocateInfo
diff --git a/src/Vulkan/Core10/CommandBufferBuilding.hs b/src/Vulkan/Core10/CommandBufferBuilding.hs
--- a/src/Vulkan/Core10/CommandBufferBuilding.hs
+++ b/src/Vulkan/Core10/CommandBufferBuilding.hs
@@ -78,16 +78,23 @@
 import GHC.Ptr (castPtr)
 import GHC.Ptr (nullFunPtr)
 import Foreign.Ptr (plusPtr)
+import Data.Coerce (coerce)
 import Control.Monad.Trans.Class (lift)
 import Control.Monad.Trans.Cont (evalContT)
 import Control.Monad.Trans.Cont (runContT)
 import qualified Data.Vector (imapM_)
 import qualified Data.Vector (length)
 import Foreign.C.Types (CFloat(..))
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
 import Control.Monad.IO.Class (MonadIO)
 import Data.Type.Equality ((:~:)(Refl))
 import Data.Typeable (Typeable)
 import Foreign.C.Types (CFloat)
+import Foreign.C.Types (CFloat(..))
 import Foreign.C.Types (CFloat(CFloat))
 import Foreign.Storable (Storable)
 import Foreign.Storable (Storable(peek))
@@ -174,8 +181,6 @@
 import Vulkan.Core10.Enums.Filter (Filter)
 import Vulkan.Core10.Enums.Filter (Filter(..))
 import Vulkan.Core10.Handles (Framebuffer)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Handles (Image)
 import Vulkan.Core10.Handles (Image(..))
 import Vulkan.Core10.Enums.ImageAspectFlagBits (ImageAspectFlags)
@@ -217,10 +222,7 @@
 import Vulkan.Core10.Enums.StructureType (StructureType)
 import Vulkan.Core10.Enums.SubpassContents (SubpassContents)
 import Vulkan.Core10.Enums.SubpassContents (SubpassContents(..))
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
 import Vulkan.Core10.Pipeline (Viewport)
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO))
 import Vulkan.Core10.Enums.IndexType (IndexType(..))
 import Vulkan.Core10.Enums.StencilFaceFlagBits (StencilFaceFlagBits(..))
@@ -7744,8 +7746,7 @@
 -- | cmdWaitEvents with selectable safeness
 cmdWaitEventsSafeOrUnsafe :: forall io
                            . (MonadIO io)
-                          => -- No documentation found for TopLevel ""
-                             (FunPtr (Ptr CommandBuffer_T -> Word32 -> Ptr Event -> PipelineStageFlags -> PipelineStageFlags -> Word32 -> Ptr MemoryBarrier -> Word32 -> Ptr BufferMemoryBarrier -> Word32 -> Ptr (SomeStruct ImageMemoryBarrier) -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Ptr Event -> PipelineStageFlags -> PipelineStageFlags -> Word32 -> Ptr MemoryBarrier -> Word32 -> Ptr BufferMemoryBarrier -> Word32 -> Ptr (SomeStruct ImageMemoryBarrier) -> IO ())
+                          => (FunPtr (Ptr CommandBuffer_T -> Word32 -> Ptr Event -> PipelineStageFlags -> PipelineStageFlags -> Word32 -> Ptr MemoryBarrier -> Word32 -> Ptr BufferMemoryBarrier -> Word32 -> Ptr (SomeStruct ImageMemoryBarrier) -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Ptr Event -> PipelineStageFlags -> PipelineStageFlags -> Word32 -> Ptr MemoryBarrier -> Word32 -> Ptr BufferMemoryBarrier -> Word32 -> Ptr (SomeStruct ImageMemoryBarrier) -> IO ())
                           -> -- | @commandBuffer@ is the command buffer into which the command is
                              -- recorded.
                              CommandBuffer
@@ -7861,10 +7862,14 @@
 --
 -- Applications /should/ be careful to avoid race conditions when using
 -- events. There is no direct ordering guarantee between a 'cmdResetEvent'
--- command and a 'cmdWaitEvents' command submitted after it. Another
--- execution dependency (e.g. a pipeline barrier or semaphore with
+-- command and 'cmdSetEvent' or 'cmdWaitEvents' commands submitted after
+-- it. Similarly, there is no ordering guarantee between sequential
+-- 'cmdSetEvent' commands, leading to a race condition on the event status.
+-- Waiting on an event in these cases without additional synchronization
+-- can result in a data race. Another execution dependency (e.g. a pipeline
+-- barrier or semaphore with
 -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_ALL_COMMANDS_BIT')
--- is needed to prevent such a race condition.
+-- is needed to prevent such race conditions.
 --
 -- == Valid Usage
 --
@@ -11056,20 +11061,20 @@
 --     'Vulkan.Core10.Handles.ImageView' of an image created with a value
 --     of 'Vulkan.Core10.Image.ImageCreateInfo'::@flags@ equal to the
 --     @flags@ member of the corresponding element of
---     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.FramebufferAttachmentsCreateInfo'::@pAttachments@
+--     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.FramebufferAttachmentsCreateInfo'::@pAttachmentImageInfos@
 --     used to create @framebuffer@
 --
--- -   #VUID-VkRenderPassBeginInfo-framebuffer-03210# If @framebuffer@ was
+-- -   #VUID-VkRenderPassBeginInfo-framebuffer-04627# If @framebuffer@ was
 --     created with a 'Vulkan.Core10.Pass.FramebufferCreateInfo'::@flags@
 --     value that included
 --     'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT',
 --     each element of the @pAttachments@ member of a
 --     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.RenderPassAttachmentBeginInfo'
 --     structure included in the @pNext@ chain /must/ be a
---     'Vulkan.Core10.Handles.ImageView' of an image created with a value
---     of 'Vulkan.Core10.Image.ImageCreateInfo'::@usage@ equal to the
---     @usage@ member of the corresponding element of
---     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.FramebufferAttachmentsCreateInfo'::@pAttachments@
+--     'Vulkan.Core10.Handles.ImageView' with
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-inherited-usage an inherited usage>
+--     equal to the @usage@ member of the corresponding element of
+--     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.FramebufferAttachmentsCreateInfo'::@pAttachmentImageInfos@
 --     used to create @framebuffer@
 --
 -- -   #VUID-VkRenderPassBeginInfo-framebuffer-03211# If @framebuffer@ was
@@ -11081,7 +11086,7 @@
 --     structure included in the @pNext@ chain /must/ be a
 --     'Vulkan.Core10.Handles.ImageView' with a width equal to the @width@
 --     member of the corresponding element of
---     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.FramebufferAttachmentsCreateInfo'::@pAttachments@
+--     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.FramebufferAttachmentsCreateInfo'::@pAttachmentImageInfos@
 --     used to create @framebuffer@
 --
 -- -   #VUID-VkRenderPassBeginInfo-framebuffer-03212# If @framebuffer@ was
@@ -11093,7 +11098,7 @@
 --     structure included in the @pNext@ chain /must/ be a
 --     'Vulkan.Core10.Handles.ImageView' with a height equal to the
 --     @height@ member of the corresponding element of
---     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.FramebufferAttachmentsCreateInfo'::@pAttachments@
+--     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.FramebufferAttachmentsCreateInfo'::@pAttachmentImageInfos@
 --     used to create @framebuffer@
 --
 -- -   #VUID-VkRenderPassBeginInfo-framebuffer-03213# If @framebuffer@ was
@@ -11107,7 +11112,7 @@
 --     of
 --     'Vulkan.Core10.ImageView.ImageViewCreateInfo'::@subresourceRange.layerCount@
 --     equal to the @layerCount@ member of the corresponding element of
---     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.FramebufferAttachmentsCreateInfo'::@pAttachments@
+--     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.FramebufferAttachmentsCreateInfo'::@pAttachmentImageInfos@
 --     used to create @framebuffer@
 --
 -- -   #VUID-VkRenderPassBeginInfo-framebuffer-03214# If @framebuffer@ was
@@ -11122,7 +11127,7 @@
 --     'Vulkan.Core12.Promoted_From_VK_KHR_image_format_list.ImageFormatListCreateInfo'::@viewFormatCount@
 --     equal to the @viewFormatCount@ member of the corresponding element
 --     of
---     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.FramebufferAttachmentsCreateInfo'::@pAttachments@
+--     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.FramebufferAttachmentsCreateInfo'::@pAttachmentImageInfos@
 --     used to create @framebuffer@
 --
 -- -   #VUID-VkRenderPassBeginInfo-framebuffer-03215# If @framebuffer@ was
@@ -11137,7 +11142,7 @@
 --     'Vulkan.Core12.Promoted_From_VK_KHR_image_format_list.ImageFormatListCreateInfo'::@pViewFormats@
 --     equal to the set of elements in the @pViewFormats@ member of the
 --     corresponding element of
---     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.FramebufferAttachmentsCreateInfo'::@pAttachments@
+--     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.FramebufferAttachmentsCreateInfo'::@pAttachmentImageInfos@
 --     used to create @framebuffer@
 --
 -- -   #VUID-VkRenderPassBeginInfo-framebuffer-03216# If @framebuffer@ was
@@ -11246,7 +11251,7 @@
 deriving instance Show (Chain es) => Show (RenderPassBeginInfo es)
 
 instance Extensible RenderPassBeginInfo where
-  extensibleType = STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO
+  extensibleTypeName = "RenderPassBeginInfo"
   setNext x next = x{next = next}
   getNext RenderPassBeginInfo{..} = next
   extends :: forall e b proxy. Typeable e => proxy e -> (Extends RenderPassBeginInfo e => b) -> Maybe b
@@ -11341,7 +11346,7 @@
     depth <- peek @CFloat ((p `plusPtr` 0 :: Ptr CFloat))
     stencil <- peek @Word32 ((p `plusPtr` 4 :: Ptr Word32))
     pure $ ClearDepthStencilValue
-             ((\(CFloat a) -> a) depth) stencil
+             (coerce @CFloat @Float depth) stencil
 
 instance Storable ClearDepthStencilValue where
   sizeOf ~_ = 8
diff --git a/src/Vulkan/Core10/CommandBufferBuilding.hs-boot b/src/Vulkan/Core10/CommandBufferBuilding.hs-boot
--- a/src/Vulkan/Core10/CommandBufferBuilding.hs-boot
+++ b/src/Vulkan/Core10/CommandBufferBuilding.hs-boot
@@ -13,12 +13,12 @@
                                             , ClearColorValue
                                             ) where
 
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (ToCStruct)
 import Data.Kind (Type)
 import {-# SOURCE #-} Vulkan.CStruct.Extends (Chain)
 import {-# SOURCE #-} Vulkan.CStruct.Extends (Extendss)
-import Vulkan.CStruct (FromCStruct)
 import {-# SOURCE #-} Vulkan.CStruct.Extends (PokeChain)
-import Vulkan.CStruct (ToCStruct)
 data BufferCopy
 
 instance ToCStruct BufferCopy
diff --git a/src/Vulkan/Core10/CommandPool.hs b/src/Vulkan/Core10/CommandPool.hs
--- a/src/Vulkan/Core10/CommandPool.hs
+++ b/src/Vulkan/Core10/CommandPool.hs
@@ -26,6 +26,11 @@
 import Foreign.Ptr (plusPtr)
 import Control.Monad.Trans.Class (lift)
 import Control.Monad.Trans.Cont (evalContT)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
 import Control.Monad.IO.Class (MonadIO)
 import Data.Typeable (Typeable)
 import Foreign.Storable (Storable)
@@ -53,15 +58,10 @@
 import Vulkan.Dynamic (DeviceCmds(pVkDestroyCommandPool))
 import Vulkan.Dynamic (DeviceCmds(pVkResetCommandPool))
 import Vulkan.Core10.Handles (Device_T)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Enums.Result (Result)
 import Vulkan.Core10.Enums.Result (Result(..))
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
 import Vulkan.Exception (VulkanException(..))
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO))
 import Vulkan.Core10.Enums.Result (Result(SUCCESS))
 import Vulkan.Core10.Handles (CommandPool(..))
diff --git a/src/Vulkan/Core10/CommandPool.hs-boot b/src/Vulkan/Core10/CommandPool.hs-boot
--- a/src/Vulkan/Core10/CommandPool.hs-boot
+++ b/src/Vulkan/Core10/CommandPool.hs-boot
@@ -2,9 +2,10 @@
 -- No documentation found for Chapter "CommandPool"
 module Vulkan.Core10.CommandPool  (CommandPoolCreateInfo) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data CommandPoolCreateInfo
 
 instance ToCStruct CommandPoolCreateInfo
diff --git a/src/Vulkan/Core10/DescriptorSet.hs b/src/Vulkan/Core10/DescriptorSet.hs
--- a/src/Vulkan/Core10/DescriptorSet.hs
+++ b/src/Vulkan/Core10/DescriptorSet.hs
@@ -51,6 +51,11 @@
 import qualified Data.Vector (imapM_)
 import qualified Data.Vector (length)
 import qualified Data.Vector (null)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
 import Control.Monad.IO.Class (MonadIO)
 import Data.Type.Equality ((:~:)(Refl))
 import Data.Typeable (Typeable)
@@ -104,8 +109,6 @@
 import Vulkan.CStruct.Extends (Extends)
 import Vulkan.CStruct.Extends (Extendss)
 import Vulkan.CStruct.Extends (Extensible(..))
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Enums.ImageLayout (ImageLayout)
 import Vulkan.Core10.Handles (ImageView)
 import {-# SOURCE #-} Vulkan.Extensions.VK_VALVE_mutable_descriptor_type (MutableDescriptorTypeCreateInfoVALVE)
@@ -119,13 +122,10 @@
 import Vulkan.Core10.Enums.ShaderStageFlagBits (ShaderStageFlags)
 import Vulkan.CStruct.Extends (SomeStruct)
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
 import Vulkan.Exception (VulkanException(..))
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_acceleration_structure (WriteDescriptorSetAccelerationStructureKHR)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_ray_tracing (WriteDescriptorSetAccelerationStructureNV)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_inline_uniform_block (WriteDescriptorSetInlineUniformBlockEXT)
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_COPY_DESCRIPTOR_SET))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO))
@@ -1592,7 +1592,7 @@
 deriving instance Show (Chain es) => Show (WriteDescriptorSet es)
 
 instance Extensible WriteDescriptorSet where
-  extensibleType = STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET
+  extensibleTypeName = "WriteDescriptorSet"
   setNext x next = x{next = next}
   getNext WriteDescriptorSet{..} = next
   extends :: forall e b proxy. Typeable e => proxy e -> (Extends WriteDescriptorSet e => b) -> Maybe b
@@ -2277,7 +2277,7 @@
 deriving instance Show (Chain es) => Show (DescriptorSetLayoutCreateInfo es)
 
 instance Extensible DescriptorSetLayoutCreateInfo where
-  extensibleType = STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO
+  extensibleTypeName = "DescriptorSetLayoutCreateInfo"
   setNext x next = x{next = next}
   getNext DescriptorSetLayoutCreateInfo{..} = next
   extends :: forall e b proxy. Typeable e => proxy e -> (Extends DescriptorSetLayoutCreateInfo e => b) -> Maybe b
@@ -2546,7 +2546,7 @@
 deriving instance Show (Chain es) => Show (DescriptorPoolCreateInfo es)
 
 instance Extensible DescriptorPoolCreateInfo where
-  extensibleType = STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO
+  extensibleTypeName = "DescriptorPoolCreateInfo"
   setNext x next = x{next = next}
   getNext DescriptorPoolCreateInfo{..} = next
   extends :: forall e b proxy. Typeable e => proxy e -> (Extends DescriptorPoolCreateInfo e => b) -> Maybe b
@@ -2641,12 +2641,17 @@
 --     'Vulkan.Core10.Handles.DescriptorPool' handle
 --
 -- -   #VUID-VkDescriptorSetAllocateInfo-pSetLayouts-parameter#
---     @pSetLayouts@ /must/ be a valid pointer to a valid
---     'Vulkan.Core10.Handles.DescriptorSetLayout' handle
+--     @pSetLayouts@ /must/ be a valid pointer to an array of
+--     @descriptorSetCount@ valid
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' handles
 --
+-- -   #VUID-VkDescriptorSetAllocateInfo-descriptorSetCount-arraylength#
+--     @descriptorSetCount@ /must/ be greater than @0@
+--
 -- -   #VUID-VkDescriptorSetAllocateInfo-commonparent# Both of
---     @descriptorPool@, and @pSetLayouts@ /must/ have been created,
---     allocated, or retrieved from the same 'Vulkan.Core10.Handles.Device'
+--     @descriptorPool@, and the elements of @pSetLayouts@ /must/ have been
+--     created, allocated, or retrieved from the same
+--     'Vulkan.Core10.Handles.Device'
 --
 -- = See Also
 --
@@ -2671,7 +2676,7 @@
 deriving instance Show (Chain es) => Show (DescriptorSetAllocateInfo es)
 
 instance Extensible DescriptorSetAllocateInfo where
-  extensibleType = STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO
+  extensibleTypeName = "DescriptorSetAllocateInfo"
   setNext x next = x{next = next}
   getNext DescriptorSetAllocateInfo{..} = next
   extends :: forall e b proxy. Typeable e => proxy e -> (Extends DescriptorSetAllocateInfo e => b) -> Maybe b
diff --git a/src/Vulkan/Core10/DescriptorSet.hs-boot b/src/Vulkan/Core10/DescriptorSet.hs-boot
--- a/src/Vulkan/Core10/DescriptorSet.hs-boot
+++ b/src/Vulkan/Core10/DescriptorSet.hs-boot
@@ -11,13 +11,13 @@
                                     , WriteDescriptorSet
                                     ) where
 
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (ToCStruct)
 import Data.Kind (Type)
 import {-# SOURCE #-} Vulkan.CStruct.Extends (Chain)
 import {-# SOURCE #-} Vulkan.CStruct.Extends (Extendss)
-import Vulkan.CStruct (FromCStruct)
 import {-# SOURCE #-} Vulkan.CStruct.Extends (PeekChain)
 import {-# SOURCE #-} Vulkan.CStruct.Extends (PokeChain)
-import Vulkan.CStruct (ToCStruct)
 data CopyDescriptorSet
 
 instance ToCStruct CopyDescriptorSet
diff --git a/src/Vulkan/Core10/Device.hs b/src/Vulkan/Core10/Device.hs
--- a/src/Vulkan/Core10/Device.hs
+++ b/src/Vulkan/Core10/Device.hs
@@ -28,16 +28,23 @@
 import Foreign.Ptr (plusPtr)
 import Data.ByteString (packCString)
 import Data.ByteString (useAsCString)
+import Data.Coerce (coerce)
 import Control.Monad.Trans.Class (lift)
 import Control.Monad.Trans.Cont (evalContT)
 import Data.Vector (generateM)
 import qualified Data.Vector (imapM_)
 import qualified Data.Vector (length)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
 import Control.Monad.IO.Class (MonadIO)
 import Data.Type.Equality ((:~:)(Refl))
 import Data.Typeable (Typeable)
 import Foreign.C.Types (CChar)
 import Foreign.C.Types (CFloat)
+import Foreign.C.Types (CFloat(..))
 import Foreign.C.Types (CFloat(CFloat))
 import Foreign.Storable (Storable(peek))
 import Foreign.Storable (Storable(poke))
@@ -75,8 +82,6 @@
 import Vulkan.CStruct.Extends (Extends)
 import Vulkan.CStruct.Extends (Extendss)
 import Vulkan.CStruct.Extends (Extensible(..))
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Dynamic (InstanceCmds(pVkCreateDevice))
 import Vulkan.CStruct.Extends (PeekChain)
 import Vulkan.CStruct.Extends (PeekChain(..))
@@ -168,10 +173,7 @@
 import Vulkan.Core10.Enums.Result (Result(..))
 import Vulkan.CStruct.Extends (SomeStruct)
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
 import Vulkan.Exception (VulkanException(..))
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_DEVICE_CREATE_INFO))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO))
 import Vulkan.Core10.Enums.Result (Result(SUCCESS))
@@ -468,7 +470,7 @@
 deriving instance Show (Chain es) => Show (DeviceQueueCreateInfo es)
 
 instance Extensible DeviceQueueCreateInfo where
-  extensibleType = STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO
+  extensibleTypeName = "DeviceQueueCreateInfo"
   setNext x next = x{next = next}
   getNext DeviceQueueCreateInfo{..} = next
   extends :: forall e b proxy. Typeable e => proxy e -> (Extends DeviceQueueCreateInfo e => b) -> Maybe b
@@ -511,7 +513,7 @@
     pQueuePriorities <- peek @(Ptr CFloat) ((p `plusPtr` 32 :: Ptr (Ptr CFloat)))
     pQueuePriorities' <- generateM (fromIntegral queueCount) (\i -> do
       pQueuePrioritiesElem <- peek @CFloat ((pQueuePriorities `advancePtrBytes` (4 * (i)) :: Ptr CFloat))
-      pure $ (\(CFloat a) -> a) pQueuePrioritiesElem)
+      pure $ coerce @CFloat @Float pQueuePrioritiesElem)
     pure $ DeviceQueueCreateInfo
              next flags queueFamilyIndex pQueuePriorities'
 
@@ -832,7 +834,7 @@
 deriving instance Show (Chain es) => Show (DeviceCreateInfo es)
 
 instance Extensible DeviceCreateInfo where
-  extensibleType = STRUCTURE_TYPE_DEVICE_CREATE_INFO
+  extensibleTypeName = "DeviceCreateInfo"
   setNext x next = x{next = next}
   getNext DeviceCreateInfo{..} = next
   extends :: forall e b proxy. Typeable e => proxy e -> (Extends DeviceCreateInfo e => b) -> Maybe b
@@ -977,7 +979,7 @@
     next <- peekChain (castPtr pNext)
     flags <- peek @DeviceCreateFlags ((p `plusPtr` 16 :: Ptr DeviceCreateFlags))
     queueCreateInfoCount <- peek @Word32 ((p `plusPtr` 20 :: Ptr Word32))
-    pQueueCreateInfos <- peek @(Ptr (DeviceQueueCreateInfo _)) ((p `plusPtr` 24 :: Ptr (Ptr (DeviceQueueCreateInfo a))))
+    pQueueCreateInfos <- peek @(Ptr (DeviceQueueCreateInfo _)) ((p `plusPtr` 24 :: Ptr (Ptr (DeviceQueueCreateInfo _))))
     pQueueCreateInfos' <- generateM (fromIntegral queueCreateInfoCount) (\i -> peekSomeCStruct (forgetExtensions ((pQueueCreateInfos `advancePtrBytes` (40 * (i)) :: Ptr (DeviceQueueCreateInfo _)))))
     enabledLayerCount <- peek @Word32 ((p `plusPtr` 32 :: Ptr Word32))
     ppEnabledLayerNames <- peek @(Ptr (Ptr CChar)) ((p `plusPtr` 40 :: Ptr (Ptr (Ptr CChar))))
diff --git a/src/Vulkan/Core10/Device.hs-boot b/src/Vulkan/Core10/Device.hs-boot
--- a/src/Vulkan/Core10/Device.hs-boot
+++ b/src/Vulkan/Core10/Device.hs-boot
@@ -4,13 +4,13 @@
                              , DeviceQueueCreateInfo
                              ) where
 
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (ToCStruct)
 import Data.Kind (Type)
 import {-# SOURCE #-} Vulkan.CStruct.Extends (Chain)
 import {-# SOURCE #-} Vulkan.CStruct.Extends (Extendss)
-import Vulkan.CStruct (FromCStruct)
 import {-# SOURCE #-} Vulkan.CStruct.Extends (PeekChain)
 import {-# SOURCE #-} Vulkan.CStruct.Extends (PokeChain)
-import Vulkan.CStruct (ToCStruct)
 type role DeviceCreateInfo nominal
 data DeviceCreateInfo (es :: [Type])
 
diff --git a/src/Vulkan/Core10/DeviceInitialization.hs b/src/Vulkan/Core10/DeviceInitialization.hs
--- a/src/Vulkan/Core10/DeviceInitialization.hs
+++ b/src/Vulkan/Core10/DeviceInitialization.hs
@@ -82,19 +82,27 @@
 import Foreign.Ptr (plusPtr)
 import Data.ByteString (packCString)
 import Data.ByteString (useAsCString)
+import Data.Coerce (coerce)
 import Control.Monad.Trans.Class (lift)
 import Control.Monad.Trans.Cont (evalContT)
 import Data.Vector (generateM)
 import qualified Data.Vector (imapM_)
 import qualified Data.Vector (length)
 import Foreign.C.Types (CChar(..))
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
 import Control.Monad.IO.Class (MonadIO)
 import Data.Type.Equality ((:~:)(Refl))
 import Data.Typeable (Typeable)
 import Foreign.C.Types (CChar)
 import Foreign.C.Types (CFloat)
+import Foreign.C.Types (CFloat(..))
 import Foreign.C.Types (CFloat(CFloat))
 import Foreign.C.Types (CSize)
+import Foreign.C.Types (CSize(..))
 import Foreign.C.Types (CSize(CSize))
 import Foreign.Storable (Storable)
 import Foreign.Storable (Storable(peek))
@@ -142,8 +150,6 @@
 import Vulkan.Core10.Enums.Format (Format)
 import Vulkan.Core10.Enums.Format (Format(..))
 import Vulkan.Core10.Enums.FormatFeatureFlagBits (FormatFeatureFlags)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Enums.ImageCreateFlagBits (ImageCreateFlagBits(..))
 import Vulkan.Core10.Enums.ImageCreateFlagBits (ImageCreateFlags)
 import Vulkan.Core10.Enums.ImageTiling (ImageTiling)
@@ -187,13 +193,10 @@
 import Vulkan.Core10.Enums.SampleCountFlagBits (SampleCountFlags)
 import Vulkan.CStruct.Extends (SomeStruct)
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
 import Vulkan.Core10.APIConstants (UUID_SIZE)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_validation_features (ValidationFeaturesEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_validation_flags (ValidationFlagsEXT)
 import Vulkan.Exception (VulkanException(..))
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.APIConstants (pattern MAX_MEMORY_HEAPS)
 import Vulkan.Core10.APIConstants (pattern MAX_MEMORY_TYPES)
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_APPLICATION_INFO))
@@ -1346,10 +1349,10 @@
 instance FromCStruct ApplicationInfo where
   peekCStruct p = do
     pApplicationName <- peek @(Ptr CChar) ((p `plusPtr` 16 :: Ptr (Ptr CChar)))
-    pApplicationName' <- maybePeek (\j -> packCString  (j)) pApplicationName
+    pApplicationName' <- maybePeek (\j -> packCString (j)) pApplicationName
     applicationVersion <- peek @Word32 ((p `plusPtr` 24 :: Ptr Word32))
     pEngineName <- peek @(Ptr CChar) ((p `plusPtr` 32 :: Ptr (Ptr CChar)))
-    pEngineName' <- maybePeek (\j -> packCString  (j)) pEngineName
+    pEngineName' <- maybePeek (\j -> packCString (j)) pEngineName
     engineVersion <- peek @Word32 ((p `plusPtr` 40 :: Ptr Word32))
     apiVersion <- peek @Word32 ((p `plusPtr` 44 :: Ptr Word32))
     pure $ ApplicationInfo
@@ -1437,7 +1440,7 @@
 deriving instance Show (Chain es) => Show (InstanceCreateInfo es)
 
 instance Extensible InstanceCreateInfo where
-  extensibleType = STRUCTURE_TYPE_INSTANCE_CREATE_INFO
+  extensibleTypeName = "InstanceCreateInfo"
   setNext x next = x{next = next}
   getNext InstanceCreateInfo{..} = next
   extends :: forall e b proxy. Typeable e => proxy e -> (Extends InstanceCreateInfo e => b) -> Maybe b
@@ -4855,7 +4858,7 @@
     optimalBufferCopyRowPitchAlignment <- peek @DeviceSize ((p `plusPtr` 488 :: Ptr DeviceSize))
     nonCoherentAtomSize <- peek @DeviceSize ((p `plusPtr` 496 :: Ptr DeviceSize))
     pure $ PhysicalDeviceLimits
-             maxImageDimension1D maxImageDimension2D maxImageDimension3D maxImageDimensionCube maxImageArrayLayers maxTexelBufferElements maxUniformBufferRange maxStorageBufferRange maxPushConstantsSize maxMemoryAllocationCount maxSamplerAllocationCount bufferImageGranularity sparseAddressSpaceSize maxBoundDescriptorSets maxPerStageDescriptorSamplers maxPerStageDescriptorUniformBuffers maxPerStageDescriptorStorageBuffers maxPerStageDescriptorSampledImages maxPerStageDescriptorStorageImages maxPerStageDescriptorInputAttachments maxPerStageResources maxDescriptorSetSamplers maxDescriptorSetUniformBuffers maxDescriptorSetUniformBuffersDynamic maxDescriptorSetStorageBuffers maxDescriptorSetStorageBuffersDynamic maxDescriptorSetSampledImages maxDescriptorSetStorageImages maxDescriptorSetInputAttachments maxVertexInputAttributes maxVertexInputBindings maxVertexInputAttributeOffset maxVertexInputBindingStride maxVertexOutputComponents maxTessellationGenerationLevel maxTessellationPatchSize maxTessellationControlPerVertexInputComponents maxTessellationControlPerVertexOutputComponents maxTessellationControlPerPatchOutputComponents maxTessellationControlTotalOutputComponents maxTessellationEvaluationInputComponents maxTessellationEvaluationOutputComponents maxGeometryShaderInvocations maxGeometryInputComponents maxGeometryOutputComponents maxGeometryOutputVertices maxGeometryTotalOutputComponents maxFragmentInputComponents maxFragmentOutputAttachments maxFragmentDualSrcAttachments maxFragmentCombinedOutputResources maxComputeSharedMemorySize ((maxComputeWorkGroupCount0, maxComputeWorkGroupCount1, maxComputeWorkGroupCount2)) maxComputeWorkGroupInvocations ((maxComputeWorkGroupSize0, maxComputeWorkGroupSize1, maxComputeWorkGroupSize2)) subPixelPrecisionBits subTexelPrecisionBits mipmapPrecisionBits maxDrawIndexedIndexValue maxDrawIndirectCount ((\(CFloat a) -> a) maxSamplerLodBias) ((\(CFloat a) -> a) maxSamplerAnisotropy) maxViewports ((maxViewportDimensions0, maxViewportDimensions1)) ((((\(CFloat a) -> a) viewportBoundsRange0), ((\(CFloat a) -> a) viewportBoundsRange1))) viewportSubPixelBits ((\(CSize a) -> a) minMemoryMapAlignment) minTexelBufferOffsetAlignment minUniformBufferOffsetAlignment minStorageBufferOffsetAlignment minTexelOffset maxTexelOffset minTexelGatherOffset maxTexelGatherOffset ((\(CFloat a) -> a) minInterpolationOffset) ((\(CFloat a) -> a) maxInterpolationOffset) subPixelInterpolationOffsetBits maxFramebufferWidth maxFramebufferHeight maxFramebufferLayers framebufferColorSampleCounts framebufferDepthSampleCounts framebufferStencilSampleCounts framebufferNoAttachmentsSampleCounts maxColorAttachments sampledImageColorSampleCounts sampledImageIntegerSampleCounts sampledImageDepthSampleCounts sampledImageStencilSampleCounts storageImageSampleCounts maxSampleMaskWords (bool32ToBool timestampComputeAndGraphics) ((\(CFloat a) -> a) timestampPeriod) maxClipDistances maxCullDistances maxCombinedClipAndCullDistances discreteQueuePriorities ((((\(CFloat a) -> a) pointSizeRange0), ((\(CFloat a) -> a) pointSizeRange1))) ((((\(CFloat a) -> a) lineWidthRange0), ((\(CFloat a) -> a) lineWidthRange1))) ((\(CFloat a) -> a) pointSizeGranularity) ((\(CFloat a) -> a) lineWidthGranularity) (bool32ToBool strictLines) (bool32ToBool standardSampleLocations) optimalBufferCopyOffsetAlignment optimalBufferCopyRowPitchAlignment nonCoherentAtomSize
+             maxImageDimension1D maxImageDimension2D maxImageDimension3D maxImageDimensionCube maxImageArrayLayers maxTexelBufferElements maxUniformBufferRange maxStorageBufferRange maxPushConstantsSize maxMemoryAllocationCount maxSamplerAllocationCount bufferImageGranularity sparseAddressSpaceSize maxBoundDescriptorSets maxPerStageDescriptorSamplers maxPerStageDescriptorUniformBuffers maxPerStageDescriptorStorageBuffers maxPerStageDescriptorSampledImages maxPerStageDescriptorStorageImages maxPerStageDescriptorInputAttachments maxPerStageResources maxDescriptorSetSamplers maxDescriptorSetUniformBuffers maxDescriptorSetUniformBuffersDynamic maxDescriptorSetStorageBuffers maxDescriptorSetStorageBuffersDynamic maxDescriptorSetSampledImages maxDescriptorSetStorageImages maxDescriptorSetInputAttachments maxVertexInputAttributes maxVertexInputBindings maxVertexInputAttributeOffset maxVertexInputBindingStride maxVertexOutputComponents maxTessellationGenerationLevel maxTessellationPatchSize maxTessellationControlPerVertexInputComponents maxTessellationControlPerVertexOutputComponents maxTessellationControlPerPatchOutputComponents maxTessellationControlTotalOutputComponents maxTessellationEvaluationInputComponents maxTessellationEvaluationOutputComponents maxGeometryShaderInvocations maxGeometryInputComponents maxGeometryOutputComponents maxGeometryOutputVertices maxGeometryTotalOutputComponents maxFragmentInputComponents maxFragmentOutputAttachments maxFragmentDualSrcAttachments maxFragmentCombinedOutputResources maxComputeSharedMemorySize ((maxComputeWorkGroupCount0, maxComputeWorkGroupCount1, maxComputeWorkGroupCount2)) maxComputeWorkGroupInvocations ((maxComputeWorkGroupSize0, maxComputeWorkGroupSize1, maxComputeWorkGroupSize2)) subPixelPrecisionBits subTexelPrecisionBits mipmapPrecisionBits maxDrawIndexedIndexValue maxDrawIndirectCount (coerce @CFloat @Float maxSamplerLodBias) (coerce @CFloat @Float maxSamplerAnisotropy) maxViewports ((maxViewportDimensions0, maxViewportDimensions1)) (((coerce @CFloat @Float viewportBoundsRange0), (coerce @CFloat @Float viewportBoundsRange1))) viewportSubPixelBits (coerce @CSize @Word64 minMemoryMapAlignment) minTexelBufferOffsetAlignment minUniformBufferOffsetAlignment minStorageBufferOffsetAlignment minTexelOffset maxTexelOffset minTexelGatherOffset maxTexelGatherOffset (coerce @CFloat @Float minInterpolationOffset) (coerce @CFloat @Float maxInterpolationOffset) subPixelInterpolationOffsetBits maxFramebufferWidth maxFramebufferHeight maxFramebufferLayers framebufferColorSampleCounts framebufferDepthSampleCounts framebufferStencilSampleCounts framebufferNoAttachmentsSampleCounts maxColorAttachments sampledImageColorSampleCounts sampledImageIntegerSampleCounts sampledImageDepthSampleCounts sampledImageStencilSampleCounts storageImageSampleCounts maxSampleMaskWords (bool32ToBool timestampComputeAndGraphics) (coerce @CFloat @Float timestampPeriod) maxClipDistances maxCullDistances maxCombinedClipAndCullDistances discreteQueuePriorities (((coerce @CFloat @Float pointSizeRange0), (coerce @CFloat @Float pointSizeRange1))) (((coerce @CFloat @Float lineWidthRange0), (coerce @CFloat @Float lineWidthRange1))) (coerce @CFloat @Float pointSizeGranularity) (coerce @CFloat @Float lineWidthGranularity) (bool32ToBool strictLines) (bool32ToBool standardSampleLocations) optimalBufferCopyOffsetAlignment optimalBufferCopyRowPitchAlignment nonCoherentAtomSize
 
 instance Storable PhysicalDeviceLimits where
   sizeOf ~_ = 504
diff --git a/src/Vulkan/Core10/DeviceInitialization.hs-boot b/src/Vulkan/Core10/DeviceInitialization.hs-boot
--- a/src/Vulkan/Core10/DeviceInitialization.hs-boot
+++ b/src/Vulkan/Core10/DeviceInitialization.hs-boot
@@ -14,13 +14,13 @@
                                            , QueueFamilyProperties
                                            ) where
 
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (ToCStruct)
 import Data.Kind (Type)
 import {-# SOURCE #-} Vulkan.CStruct.Extends (Chain)
 import {-# SOURCE #-} Vulkan.CStruct.Extends (Extendss)
-import Vulkan.CStruct (FromCStruct)
 import {-# SOURCE #-} Vulkan.CStruct.Extends (PeekChain)
 import {-# SOURCE #-} Vulkan.CStruct.Extends (PokeChain)
-import Vulkan.CStruct (ToCStruct)
 data ApplicationInfo
 
 instance ToCStruct ApplicationInfo
diff --git a/src/Vulkan/Core10/Enums/AccessFlagBits.hs b/src/Vulkan/Core10/Enums/AccessFlagBits.hs
--- a/src/Vulkan/Core10/Enums/AccessFlagBits.hs
+++ b/src/Vulkan/Core10/Enums/AccessFlagBits.hs
@@ -37,13 +37,13 @@
 import Vulkan.Internal.Utils (enumShowsPrec)
 import GHC.Show (showString)
 import Numeric (showHex)
+import Vulkan.Zero (Zero)
 import Data.Bits (Bits)
 import Data.Bits (FiniteBits)
 import Foreign.Storable (Storable)
 import GHC.Read (Read(readPrec))
 import GHC.Show (Show(showsPrec))
 import Vulkan.Core10.FundamentalTypes (Flags)
-import Vulkan.Zero (Zero)
 type AccessFlags = AccessFlagBits
 
 -- | VkAccessFlagBits - Bitmask specifying memory access types that will
diff --git a/src/Vulkan/Core10/Enums/AttachmentDescriptionFlagBits.hs b/src/Vulkan/Core10/Enums/AttachmentDescriptionFlagBits.hs
--- a/src/Vulkan/Core10/Enums/AttachmentDescriptionFlagBits.hs
+++ b/src/Vulkan/Core10/Enums/AttachmentDescriptionFlagBits.hs
@@ -10,13 +10,13 @@
 import Vulkan.Internal.Utils (enumShowsPrec)
 import GHC.Show (showString)
 import Numeric (showHex)
+import Vulkan.Zero (Zero)
 import Data.Bits (Bits)
 import Data.Bits (FiniteBits)
 import Foreign.Storable (Storable)
 import GHC.Read (Read(readPrec))
 import GHC.Show (Show(showsPrec))
 import Vulkan.Core10.FundamentalTypes (Flags)
-import Vulkan.Zero (Zero)
 type AttachmentDescriptionFlags = AttachmentDescriptionFlagBits
 
 -- | VkAttachmentDescriptionFlagBits - Bitmask specifying additional
diff --git a/src/Vulkan/Core10/Enums/AttachmentLoadOp.hs b/src/Vulkan/Core10/Enums/AttachmentLoadOp.hs
--- a/src/Vulkan/Core10/Enums/AttachmentLoadOp.hs
+++ b/src/Vulkan/Core10/Enums/AttachmentLoadOp.hs
@@ -9,11 +9,12 @@
 import Vulkan.Internal.Utils (enumReadPrec)
 import Vulkan.Internal.Utils (enumShowsPrec)
 import GHC.Show (showsPrec)
+import Vulkan.Zero (Zero)
 import Foreign.Storable (Storable)
 import Data.Int (Int32)
 import GHC.Read (Read(readPrec))
 import GHC.Show (Show(showsPrec))
-import Vulkan.Zero (Zero)
+
 -- | VkAttachmentLoadOp - Specify how contents of an attachment are treated
 -- at the beginning of a subpass
 --
diff --git a/src/Vulkan/Core10/Enums/AttachmentStoreOp.hs b/src/Vulkan/Core10/Enums/AttachmentStoreOp.hs
--- a/src/Vulkan/Core10/Enums/AttachmentStoreOp.hs
+++ b/src/Vulkan/Core10/Enums/AttachmentStoreOp.hs
@@ -9,11 +9,12 @@
 import Vulkan.Internal.Utils (enumReadPrec)
 import Vulkan.Internal.Utils (enumShowsPrec)
 import GHC.Show (showsPrec)
+import Vulkan.Zero (Zero)
 import Foreign.Storable (Storable)
 import Data.Int (Int32)
 import GHC.Read (Read(readPrec))
 import GHC.Show (Show(showsPrec))
-import Vulkan.Zero (Zero)
+
 -- | VkAttachmentStoreOp - Specify how contents of an attachment are treated
 -- at the end of a subpass
 --
diff --git a/src/Vulkan/Core10/Enums/BlendFactor.hs b/src/Vulkan/Core10/Enums/BlendFactor.hs
--- a/src/Vulkan/Core10/Enums/BlendFactor.hs
+++ b/src/Vulkan/Core10/Enums/BlendFactor.hs
@@ -25,11 +25,12 @@
 import Vulkan.Internal.Utils (enumReadPrec)
 import Vulkan.Internal.Utils (enumShowsPrec)
 import GHC.Show (showsPrec)
+import Vulkan.Zero (Zero)
 import Foreign.Storable (Storable)
 import Data.Int (Int32)
 import GHC.Read (Read(readPrec))
 import GHC.Show (Show(showsPrec))
-import Vulkan.Zero (Zero)
+
 -- | VkBlendFactor - Framebuffer blending factors
 --
 -- = Description
diff --git a/src/Vulkan/Core10/Enums/BlendOp.hs b/src/Vulkan/Core10/Enums/BlendOp.hs
--- a/src/Vulkan/Core10/Enums/BlendOp.hs
+++ b/src/Vulkan/Core10/Enums/BlendOp.hs
@@ -57,11 +57,12 @@
 import Vulkan.Internal.Utils (enumReadPrec)
 import Vulkan.Internal.Utils (enumShowsPrec)
 import GHC.Show (showsPrec)
+import Vulkan.Zero (Zero)
 import Foreign.Storable (Storable)
 import Data.Int (Int32)
 import GHC.Read (Read(readPrec))
 import GHC.Show (Show(showsPrec))
-import Vulkan.Zero (Zero)
+
 -- | VkBlendOp - Framebuffer blending operations
 --
 -- = Description
diff --git a/src/Vulkan/Core10/Enums/BorderColor.hs b/src/Vulkan/Core10/Enums/BorderColor.hs
--- a/src/Vulkan/Core10/Enums/BorderColor.hs
+++ b/src/Vulkan/Core10/Enums/BorderColor.hs
@@ -14,11 +14,12 @@
 import Vulkan.Internal.Utils (enumReadPrec)
 import Vulkan.Internal.Utils (enumShowsPrec)
 import GHC.Show (showsPrec)
+import Vulkan.Zero (Zero)
 import Foreign.Storable (Storable)
 import Data.Int (Int32)
 import GHC.Read (Read(readPrec))
 import GHC.Show (Show(showsPrec))
-import Vulkan.Zero (Zero)
+
 -- | VkBorderColor - Specify border color used for texture lookups
 --
 -- = Description
diff --git a/src/Vulkan/Core10/Enums/BufferCreateFlagBits.hs b/src/Vulkan/Core10/Enums/BufferCreateFlagBits.hs
--- a/src/Vulkan/Core10/Enums/BufferCreateFlagBits.hs
+++ b/src/Vulkan/Core10/Enums/BufferCreateFlagBits.hs
@@ -14,13 +14,13 @@
 import Vulkan.Internal.Utils (enumShowsPrec)
 import GHC.Show (showString)
 import Numeric (showHex)
+import Vulkan.Zero (Zero)
 import Data.Bits (Bits)
 import Data.Bits (FiniteBits)
 import Foreign.Storable (Storable)
 import GHC.Read (Read(readPrec))
 import GHC.Show (Show(showsPrec))
 import Vulkan.Core10.FundamentalTypes (Flags)
-import Vulkan.Zero (Zero)
 type BufferCreateFlags = BufferCreateFlagBits
 
 -- | VkBufferCreateFlagBits - Bitmask specifying additional parameters of a
diff --git a/src/Vulkan/Core10/Enums/BufferUsageFlagBits.hs b/src/Vulkan/Core10/Enums/BufferUsageFlagBits.hs
--- a/src/Vulkan/Core10/Enums/BufferUsageFlagBits.hs
+++ b/src/Vulkan/Core10/Enums/BufferUsageFlagBits.hs
@@ -25,13 +25,13 @@
 import Vulkan.Internal.Utils (enumShowsPrec)
 import GHC.Show (showString)
 import Numeric (showHex)
+import Vulkan.Zero (Zero)
 import Data.Bits (Bits)
 import Data.Bits (FiniteBits)
 import Foreign.Storable (Storable)
 import GHC.Read (Read(readPrec))
 import GHC.Show (Show(showsPrec))
 import Vulkan.Core10.FundamentalTypes (Flags)
-import Vulkan.Zero (Zero)
 type BufferUsageFlags = BufferUsageFlagBits
 
 -- | VkBufferUsageFlagBits - Bitmask specifying allowed usage of a buffer
diff --git a/src/Vulkan/Core10/Enums/BufferViewCreateFlags.hs b/src/Vulkan/Core10/Enums/BufferViewCreateFlags.hs
--- a/src/Vulkan/Core10/Enums/BufferViewCreateFlags.hs
+++ b/src/Vulkan/Core10/Enums/BufferViewCreateFlags.hs
@@ -6,13 +6,13 @@
 import Vulkan.Internal.Utils (enumShowsPrec)
 import GHC.Show (showString)
 import Numeric (showHex)
+import Vulkan.Zero (Zero)
 import Data.Bits (Bits)
 import Data.Bits (FiniteBits)
 import Foreign.Storable (Storable)
 import GHC.Read (Read(readPrec))
 import GHC.Show (Show(showsPrec))
 import Vulkan.Core10.FundamentalTypes (Flags)
-import Vulkan.Zero (Zero)
 -- | VkBufferViewCreateFlags - Reserved for future use
 --
 -- = Description
diff --git a/src/Vulkan/Core10/Enums/ColorComponentFlagBits.hs b/src/Vulkan/Core10/Enums/ColorComponentFlagBits.hs
--- a/src/Vulkan/Core10/Enums/ColorComponentFlagBits.hs
+++ b/src/Vulkan/Core10/Enums/ColorComponentFlagBits.hs
@@ -13,13 +13,13 @@
 import Vulkan.Internal.Utils (enumShowsPrec)
 import GHC.Show (showString)
 import Numeric (showHex)
+import Vulkan.Zero (Zero)
 import Data.Bits (Bits)
 import Data.Bits (FiniteBits)
 import Foreign.Storable (Storable)
 import GHC.Read (Read(readPrec))
 import GHC.Show (Show(showsPrec))
 import Vulkan.Core10.FundamentalTypes (Flags)
-import Vulkan.Zero (Zero)
 type ColorComponentFlags = ColorComponentFlagBits
 
 -- | VkColorComponentFlagBits - Bitmask controlling which components are
diff --git a/src/Vulkan/Core10/Enums/CommandBufferLevel.hs b/src/Vulkan/Core10/Enums/CommandBufferLevel.hs
--- a/src/Vulkan/Core10/Enums/CommandBufferLevel.hs
+++ b/src/Vulkan/Core10/Enums/CommandBufferLevel.hs
@@ -8,11 +8,12 @@
 import Vulkan.Internal.Utils (enumReadPrec)
 import Vulkan.Internal.Utils (enumShowsPrec)
 import GHC.Show (showsPrec)
+import Vulkan.Zero (Zero)
 import Foreign.Storable (Storable)
 import Data.Int (Int32)
 import GHC.Read (Read(readPrec))
 import GHC.Show (Show(showsPrec))
-import Vulkan.Zero (Zero)
+
 -- | VkCommandBufferLevel - Enumerant specifying a command buffer level
 --
 -- = See Also
diff --git a/src/Vulkan/Core10/Enums/CommandBufferResetFlagBits.hs b/src/Vulkan/Core10/Enums/CommandBufferResetFlagBits.hs
--- a/src/Vulkan/Core10/Enums/CommandBufferResetFlagBits.hs
+++ b/src/Vulkan/Core10/Enums/CommandBufferResetFlagBits.hs
@@ -10,13 +10,13 @@
 import Vulkan.Internal.Utils (enumShowsPrec)
 import GHC.Show (showString)
 import Numeric (showHex)
+import Vulkan.Zero (Zero)
 import Data.Bits (Bits)
 import Data.Bits (FiniteBits)
 import Foreign.Storable (Storable)
 import GHC.Read (Read(readPrec))
 import GHC.Show (Show(showsPrec))
 import Vulkan.Core10.FundamentalTypes (Flags)
-import Vulkan.Zero (Zero)
 type CommandBufferResetFlags = CommandBufferResetFlagBits
 
 -- | VkCommandBufferResetFlagBits - Bitmask controlling behavior of a command
diff --git a/src/Vulkan/Core10/Enums/CommandBufferUsageFlagBits.hs b/src/Vulkan/Core10/Enums/CommandBufferUsageFlagBits.hs
--- a/src/Vulkan/Core10/Enums/CommandBufferUsageFlagBits.hs
+++ b/src/Vulkan/Core10/Enums/CommandBufferUsageFlagBits.hs
@@ -12,13 +12,13 @@
 import Vulkan.Internal.Utils (enumShowsPrec)
 import GHC.Show (showString)
 import Numeric (showHex)
+import Vulkan.Zero (Zero)
 import Data.Bits (Bits)
 import Data.Bits (FiniteBits)
 import Foreign.Storable (Storable)
 import GHC.Read (Read(readPrec))
 import GHC.Show (Show(showsPrec))
 import Vulkan.Core10.FundamentalTypes (Flags)
-import Vulkan.Zero (Zero)
 type CommandBufferUsageFlags = CommandBufferUsageFlagBits
 
 -- | VkCommandBufferUsageFlagBits - Bitmask specifying usage behavior for
diff --git a/src/Vulkan/Core10/Enums/CommandPoolCreateFlagBits.hs b/src/Vulkan/Core10/Enums/CommandPoolCreateFlagBits.hs
--- a/src/Vulkan/Core10/Enums/CommandPoolCreateFlagBits.hs
+++ b/src/Vulkan/Core10/Enums/CommandPoolCreateFlagBits.hs
@@ -12,13 +12,13 @@
 import Vulkan.Internal.Utils (enumShowsPrec)
 import GHC.Show (showString)
 import Numeric (showHex)
+import Vulkan.Zero (Zero)
 import Data.Bits (Bits)
 import Data.Bits (FiniteBits)
 import Foreign.Storable (Storable)
 import GHC.Read (Read(readPrec))
 import GHC.Show (Show(showsPrec))
 import Vulkan.Core10.FundamentalTypes (Flags)
-import Vulkan.Zero (Zero)
 type CommandPoolCreateFlags = CommandPoolCreateFlagBits
 
 -- | VkCommandPoolCreateFlagBits - Bitmask specifying usage behavior for a
diff --git a/src/Vulkan/Core10/Enums/CommandPoolResetFlagBits.hs b/src/Vulkan/Core10/Enums/CommandPoolResetFlagBits.hs
--- a/src/Vulkan/Core10/Enums/CommandPoolResetFlagBits.hs
+++ b/src/Vulkan/Core10/Enums/CommandPoolResetFlagBits.hs
@@ -10,13 +10,13 @@
 import Vulkan.Internal.Utils (enumShowsPrec)
 import GHC.Show (showString)
 import Numeric (showHex)
+import Vulkan.Zero (Zero)
 import Data.Bits (Bits)
 import Data.Bits (FiniteBits)
 import Foreign.Storable (Storable)
 import GHC.Read (Read(readPrec))
 import GHC.Show (Show(showsPrec))
 import Vulkan.Core10.FundamentalTypes (Flags)
-import Vulkan.Zero (Zero)
 type CommandPoolResetFlags = CommandPoolResetFlagBits
 
 -- | VkCommandPoolResetFlagBits - Bitmask controlling behavior of a command
diff --git a/src/Vulkan/Core10/Enums/CompareOp.hs b/src/Vulkan/Core10/Enums/CompareOp.hs
--- a/src/Vulkan/Core10/Enums/CompareOp.hs
+++ b/src/Vulkan/Core10/Enums/CompareOp.hs
@@ -14,11 +14,12 @@
 import Vulkan.Internal.Utils (enumReadPrec)
 import Vulkan.Internal.Utils (enumShowsPrec)
 import GHC.Show (showsPrec)
+import Vulkan.Zero (Zero)
 import Foreign.Storable (Storable)
 import Data.Int (Int32)
 import GHC.Read (Read(readPrec))
 import GHC.Show (Show(showsPrec))
-import Vulkan.Zero (Zero)
+
 -- | VkCompareOp - Stencil comparison function
 --
 -- = See Also
diff --git a/src/Vulkan/Core10/Enums/ComponentSwizzle.hs b/src/Vulkan/Core10/Enums/ComponentSwizzle.hs
--- a/src/Vulkan/Core10/Enums/ComponentSwizzle.hs
+++ b/src/Vulkan/Core10/Enums/ComponentSwizzle.hs
@@ -13,11 +13,12 @@
 import Vulkan.Internal.Utils (enumReadPrec)
 import Vulkan.Internal.Utils (enumShowsPrec)
 import GHC.Show (showsPrec)
+import Vulkan.Zero (Zero)
 import Foreign.Storable (Storable)
 import Data.Int (Int32)
 import GHC.Read (Read(readPrec))
 import GHC.Show (Show(showsPrec))
-import Vulkan.Zero (Zero)
+
 -- | VkComponentSwizzle - Specify how a component is swizzled
 --
 -- = Description
diff --git a/src/Vulkan/Core10/Enums/CullModeFlagBits.hs b/src/Vulkan/Core10/Enums/CullModeFlagBits.hs
--- a/src/Vulkan/Core10/Enums/CullModeFlagBits.hs
+++ b/src/Vulkan/Core10/Enums/CullModeFlagBits.hs
@@ -13,13 +13,13 @@
 import Vulkan.Internal.Utils (enumShowsPrec)
 import GHC.Show (showString)
 import Numeric (showHex)
+import Vulkan.Zero (Zero)
 import Data.Bits (Bits)
 import Data.Bits (FiniteBits)
 import Foreign.Storable (Storable)
 import GHC.Read (Read(readPrec))
 import GHC.Show (Show(showsPrec))
 import Vulkan.Core10.FundamentalTypes (Flags)
-import Vulkan.Zero (Zero)
 type CullModeFlags = CullModeFlagBits
 
 -- | VkCullModeFlagBits - Bitmask controlling triangle culling
diff --git a/src/Vulkan/Core10/Enums/DependencyFlagBits.hs b/src/Vulkan/Core10/Enums/DependencyFlagBits.hs
--- a/src/Vulkan/Core10/Enums/DependencyFlagBits.hs
+++ b/src/Vulkan/Core10/Enums/DependencyFlagBits.hs
@@ -12,13 +12,13 @@
 import Vulkan.Internal.Utils (enumShowsPrec)
 import GHC.Show (showString)
 import Numeric (showHex)
+import Vulkan.Zero (Zero)
 import Data.Bits (Bits)
 import Data.Bits (FiniteBits)
 import Foreign.Storable (Storable)
 import GHC.Read (Read(readPrec))
 import GHC.Show (Show(showsPrec))
 import Vulkan.Core10.FundamentalTypes (Flags)
-import Vulkan.Zero (Zero)
 type DependencyFlags = DependencyFlagBits
 
 -- | VkDependencyFlagBits - Bitmask specifying how execution and memory
diff --git a/src/Vulkan/Core10/Enums/DescriptorPoolCreateFlagBits.hs b/src/Vulkan/Core10/Enums/DescriptorPoolCreateFlagBits.hs
--- a/src/Vulkan/Core10/Enums/DescriptorPoolCreateFlagBits.hs
+++ b/src/Vulkan/Core10/Enums/DescriptorPoolCreateFlagBits.hs
@@ -12,13 +12,13 @@
 import Vulkan.Internal.Utils (enumShowsPrec)
 import GHC.Show (showString)
 import Numeric (showHex)
+import Vulkan.Zero (Zero)
 import Data.Bits (Bits)
 import Data.Bits (FiniteBits)
 import Foreign.Storable (Storable)
 import GHC.Read (Read(readPrec))
 import GHC.Show (Show(showsPrec))
 import Vulkan.Core10.FundamentalTypes (Flags)
-import Vulkan.Zero (Zero)
 type DescriptorPoolCreateFlags = DescriptorPoolCreateFlagBits
 
 -- | VkDescriptorPoolCreateFlagBits - Bitmask specifying certain supported
diff --git a/src/Vulkan/Core10/Enums/DescriptorPoolResetFlags.hs b/src/Vulkan/Core10/Enums/DescriptorPoolResetFlags.hs
--- a/src/Vulkan/Core10/Enums/DescriptorPoolResetFlags.hs
+++ b/src/Vulkan/Core10/Enums/DescriptorPoolResetFlags.hs
@@ -6,13 +6,13 @@
 import Vulkan.Internal.Utils (enumShowsPrec)
 import GHC.Show (showString)
 import Numeric (showHex)
+import Vulkan.Zero (Zero)
 import Data.Bits (Bits)
 import Data.Bits (FiniteBits)
 import Foreign.Storable (Storable)
 import GHC.Read (Read(readPrec))
 import GHC.Show (Show(showsPrec))
 import Vulkan.Core10.FundamentalTypes (Flags)
-import Vulkan.Zero (Zero)
 -- | VkDescriptorPoolResetFlags - Reserved for future use
 --
 -- = Description
diff --git a/src/Vulkan/Core10/Enums/DescriptorSetLayoutCreateFlagBits.hs b/src/Vulkan/Core10/Enums/DescriptorSetLayoutCreateFlagBits.hs
--- a/src/Vulkan/Core10/Enums/DescriptorSetLayoutCreateFlagBits.hs
+++ b/src/Vulkan/Core10/Enums/DescriptorSetLayoutCreateFlagBits.hs
@@ -12,13 +12,13 @@
 import Vulkan.Internal.Utils (enumShowsPrec)
 import GHC.Show (showString)
 import Numeric (showHex)
+import Vulkan.Zero (Zero)
 import Data.Bits (Bits)
 import Data.Bits (FiniteBits)
 import Foreign.Storable (Storable)
 import GHC.Read (Read(readPrec))
 import GHC.Show (Show(showsPrec))
 import Vulkan.Core10.FundamentalTypes (Flags)
-import Vulkan.Zero (Zero)
 type DescriptorSetLayoutCreateFlags = DescriptorSetLayoutCreateFlagBits
 
 -- | VkDescriptorSetLayoutCreateFlagBits - Bitmask specifying descriptor set
diff --git a/src/Vulkan/Core10/Enums/DescriptorType.hs b/src/Vulkan/Core10/Enums/DescriptorType.hs
--- a/src/Vulkan/Core10/Enums/DescriptorType.hs
+++ b/src/Vulkan/Core10/Enums/DescriptorType.hs
@@ -21,11 +21,12 @@
 import Vulkan.Internal.Utils (enumReadPrec)
 import Vulkan.Internal.Utils (enumShowsPrec)
 import GHC.Show (showsPrec)
+import Vulkan.Zero (Zero)
 import Foreign.Storable (Storable)
 import Data.Int (Int32)
 import GHC.Read (Read(readPrec))
 import GHC.Show (Show(showsPrec))
-import Vulkan.Zero (Zero)
+
 -- | VkDescriptorType - Specifies the type of a descriptor in a descriptor
 -- set
 --
diff --git a/src/Vulkan/Core10/Enums/DeviceCreateFlags.hs b/src/Vulkan/Core10/Enums/DeviceCreateFlags.hs
--- a/src/Vulkan/Core10/Enums/DeviceCreateFlags.hs
+++ b/src/Vulkan/Core10/Enums/DeviceCreateFlags.hs
@@ -6,13 +6,13 @@
 import Vulkan.Internal.Utils (enumShowsPrec)
 import GHC.Show (showString)
 import Numeric (showHex)
+import Vulkan.Zero (Zero)
 import Data.Bits (Bits)
 import Data.Bits (FiniteBits)
 import Foreign.Storable (Storable)
 import GHC.Read (Read(readPrec))
 import GHC.Show (Show(showsPrec))
 import Vulkan.Core10.FundamentalTypes (Flags)
-import Vulkan.Zero (Zero)
 -- | VkDeviceCreateFlags - Reserved for future use
 --
 -- = Description
diff --git a/src/Vulkan/Core10/Enums/DeviceQueueCreateFlagBits.hs b/src/Vulkan/Core10/Enums/DeviceQueueCreateFlagBits.hs
--- a/src/Vulkan/Core10/Enums/DeviceQueueCreateFlagBits.hs
+++ b/src/Vulkan/Core10/Enums/DeviceQueueCreateFlagBits.hs
@@ -10,13 +10,13 @@
 import Vulkan.Internal.Utils (enumShowsPrec)
 import GHC.Show (showString)
 import Numeric (showHex)
+import Vulkan.Zero (Zero)
 import Data.Bits (Bits)
 import Data.Bits (FiniteBits)
 import Foreign.Storable (Storable)
 import GHC.Read (Read(readPrec))
 import GHC.Show (Show(showsPrec))
 import Vulkan.Core10.FundamentalTypes (Flags)
-import Vulkan.Zero (Zero)
 type DeviceQueueCreateFlags = DeviceQueueCreateFlagBits
 
 -- | VkDeviceQueueCreateFlagBits - Bitmask specifying behavior of the queue
diff --git a/src/Vulkan/Core10/Enums/DynamicState.hs b/src/Vulkan/Core10/Enums/DynamicState.hs
--- a/src/Vulkan/Core10/Enums/DynamicState.hs
+++ b/src/Vulkan/Core10/Enums/DynamicState.hs
@@ -36,11 +36,12 @@
 import Vulkan.Internal.Utils (enumReadPrec)
 import Vulkan.Internal.Utils (enumShowsPrec)
 import GHC.Show (showsPrec)
+import Vulkan.Zero (Zero)
 import Foreign.Storable (Storable)
 import Data.Int (Int32)
 import GHC.Read (Read(readPrec))
 import GHC.Show (Show(showsPrec))
-import Vulkan.Zero (Zero)
+
 -- | VkDynamicState - Indicate which dynamic state is taken from dynamic
 -- state commands
 --
diff --git a/src/Vulkan/Core10/Enums/EventCreateFlags.hs b/src/Vulkan/Core10/Enums/EventCreateFlags.hs
--- a/src/Vulkan/Core10/Enums/EventCreateFlags.hs
+++ b/src/Vulkan/Core10/Enums/EventCreateFlags.hs
@@ -6,13 +6,13 @@
 import Vulkan.Internal.Utils (enumShowsPrec)
 import GHC.Show (showString)
 import Numeric (showHex)
+import Vulkan.Zero (Zero)
 import Data.Bits (Bits)
 import Data.Bits (FiniteBits)
 import Foreign.Storable (Storable)
 import GHC.Read (Read(readPrec))
 import GHC.Show (Show(showsPrec))
 import Vulkan.Core10.FundamentalTypes (Flags)
-import Vulkan.Zero (Zero)
 -- | VkEventCreateFlags - Reserved for future use
 --
 -- = Description
diff --git a/src/Vulkan/Core10/Enums/FenceCreateFlagBits.hs b/src/Vulkan/Core10/Enums/FenceCreateFlagBits.hs
--- a/src/Vulkan/Core10/Enums/FenceCreateFlagBits.hs
+++ b/src/Vulkan/Core10/Enums/FenceCreateFlagBits.hs
@@ -10,13 +10,13 @@
 import Vulkan.Internal.Utils (enumShowsPrec)
 import GHC.Show (showString)
 import Numeric (showHex)
+import Vulkan.Zero (Zero)
 import Data.Bits (Bits)
 import Data.Bits (FiniteBits)
 import Foreign.Storable (Storable)
 import GHC.Read (Read(readPrec))
 import GHC.Show (Show(showsPrec))
 import Vulkan.Core10.FundamentalTypes (Flags)
-import Vulkan.Zero (Zero)
 type FenceCreateFlags = FenceCreateFlagBits
 
 -- | VkFenceCreateFlagBits - Bitmask specifying initial state and behavior of
diff --git a/src/Vulkan/Core10/Enums/Filter.hs b/src/Vulkan/Core10/Enums/Filter.hs
--- a/src/Vulkan/Core10/Enums/Filter.hs
+++ b/src/Vulkan/Core10/Enums/Filter.hs
@@ -9,11 +9,12 @@
 import Vulkan.Internal.Utils (enumReadPrec)
 import Vulkan.Internal.Utils (enumShowsPrec)
 import GHC.Show (showsPrec)
+import Vulkan.Zero (Zero)
 import Foreign.Storable (Storable)
 import Data.Int (Int32)
 import GHC.Read (Read(readPrec))
 import GHC.Show (Show(showsPrec))
-import Vulkan.Zero (Zero)
+
 -- | VkFilter - Specify filters used for texture lookups
 --
 -- = Description
diff --git a/src/Vulkan/Core10/Enums/Format.hs b/src/Vulkan/Core10/Enums/Format.hs
--- a/src/Vulkan/Core10/Enums/Format.hs
+++ b/src/Vulkan/Core10/Enums/Format.hs
@@ -249,11 +249,12 @@
 import Vulkan.Internal.Utils (enumReadPrec)
 import Vulkan.Internal.Utils (enumShowsPrec)
 import GHC.Show (showsPrec)
+import Vulkan.Zero (Zero)
 import Foreign.Storable (Storable)
 import Data.Int (Int32)
 import GHC.Read (Read(readPrec))
 import GHC.Show (Show(showsPrec))
-import Vulkan.Zero (Zero)
+
 -- | VkFormat - Available image formats
 --
 -- = See Also
diff --git a/src/Vulkan/Core10/Enums/FormatFeatureFlagBits.hs b/src/Vulkan/Core10/Enums/FormatFeatureFlagBits.hs
--- a/src/Vulkan/Core10/Enums/FormatFeatureFlagBits.hs
+++ b/src/Vulkan/Core10/Enums/FormatFeatureFlagBits.hs
@@ -36,13 +36,13 @@
 import Vulkan.Internal.Utils (enumShowsPrec)
 import GHC.Show (showString)
 import Numeric (showHex)
+import Vulkan.Zero (Zero)
 import Data.Bits (Bits)
 import Data.Bits (FiniteBits)
 import Foreign.Storable (Storable)
 import GHC.Read (Read(readPrec))
 import GHC.Show (Show(showsPrec))
 import Vulkan.Core10.FundamentalTypes (Flags)
-import Vulkan.Zero (Zero)
 type FormatFeatureFlags = FormatFeatureFlagBits
 
 -- | VkFormatFeatureFlagBits - Bitmask specifying features supported by a
diff --git a/src/Vulkan/Core10/Enums/FramebufferCreateFlagBits.hs b/src/Vulkan/Core10/Enums/FramebufferCreateFlagBits.hs
--- a/src/Vulkan/Core10/Enums/FramebufferCreateFlagBits.hs
+++ b/src/Vulkan/Core10/Enums/FramebufferCreateFlagBits.hs
@@ -10,13 +10,13 @@
 import Vulkan.Internal.Utils (enumShowsPrec)
 import GHC.Show (showString)
 import Numeric (showHex)
+import Vulkan.Zero (Zero)
 import Data.Bits (Bits)
 import Data.Bits (FiniteBits)
 import Foreign.Storable (Storable)
 import GHC.Read (Read(readPrec))
 import GHC.Show (Show(showsPrec))
 import Vulkan.Core10.FundamentalTypes (Flags)
-import Vulkan.Zero (Zero)
 type FramebufferCreateFlags = FramebufferCreateFlagBits
 
 -- | VkFramebufferCreateFlagBits - Bitmask specifying framebuffer properties
diff --git a/src/Vulkan/Core10/Enums/FrontFace.hs b/src/Vulkan/Core10/Enums/FrontFace.hs
--- a/src/Vulkan/Core10/Enums/FrontFace.hs
+++ b/src/Vulkan/Core10/Enums/FrontFace.hs
@@ -8,11 +8,12 @@
 import Vulkan.Internal.Utils (enumReadPrec)
 import Vulkan.Internal.Utils (enumShowsPrec)
 import GHC.Show (showsPrec)
+import Vulkan.Zero (Zero)
 import Foreign.Storable (Storable)
 import Data.Int (Int32)
 import GHC.Read (Read(readPrec))
 import GHC.Show (Show(showsPrec))
-import Vulkan.Zero (Zero)
+
 -- | VkFrontFace - Interpret polygon front-facing orientation
 --
 -- = Description
diff --git a/src/Vulkan/Core10/Enums/ImageAspectFlagBits.hs b/src/Vulkan/Core10/Enums/ImageAspectFlagBits.hs
--- a/src/Vulkan/Core10/Enums/ImageAspectFlagBits.hs
+++ b/src/Vulkan/Core10/Enums/ImageAspectFlagBits.hs
@@ -20,13 +20,13 @@
 import Vulkan.Internal.Utils (enumShowsPrec)
 import GHC.Show (showString)
 import Numeric (showHex)
+import Vulkan.Zero (Zero)
 import Data.Bits (Bits)
 import Data.Bits (FiniteBits)
 import Foreign.Storable (Storable)
 import GHC.Read (Read(readPrec))
 import GHC.Show (Show(showsPrec))
 import Vulkan.Core10.FundamentalTypes (Flags)
-import Vulkan.Zero (Zero)
 type ImageAspectFlags = ImageAspectFlagBits
 
 -- | VkImageAspectFlagBits - Bitmask specifying which aspects of an image are
diff --git a/src/Vulkan/Core10/Enums/ImageCreateFlagBits.hs b/src/Vulkan/Core10/Enums/ImageCreateFlagBits.hs
--- a/src/Vulkan/Core10/Enums/ImageCreateFlagBits.hs
+++ b/src/Vulkan/Core10/Enums/ImageCreateFlagBits.hs
@@ -24,13 +24,13 @@
 import Vulkan.Internal.Utils (enumShowsPrec)
 import GHC.Show (showString)
 import Numeric (showHex)
+import Vulkan.Zero (Zero)
 import Data.Bits (Bits)
 import Data.Bits (FiniteBits)
 import Foreign.Storable (Storable)
 import GHC.Read (Read(readPrec))
 import GHC.Show (Show(showsPrec))
 import Vulkan.Core10.FundamentalTypes (Flags)
-import Vulkan.Zero (Zero)
 type ImageCreateFlags = ImageCreateFlagBits
 
 -- | VkImageCreateFlagBits - Bitmask specifying additional parameters of an
diff --git a/src/Vulkan/Core10/Enums/ImageLayout.hs b/src/Vulkan/Core10/Enums/ImageLayout.hs
--- a/src/Vulkan/Core10/Enums/ImageLayout.hs
+++ b/src/Vulkan/Core10/Enums/ImageLayout.hs
@@ -25,11 +25,12 @@
 import Vulkan.Internal.Utils (enumReadPrec)
 import Vulkan.Internal.Utils (enumShowsPrec)
 import GHC.Show (showsPrec)
+import Vulkan.Zero (Zero)
 import Foreign.Storable (Storable)
 import Data.Int (Int32)
 import GHC.Read (Read(readPrec))
 import GHC.Show (Show(showsPrec))
-import Vulkan.Zero (Zero)
+
 -- | VkImageLayout - Layout of image and image subresources
 --
 -- = Description
diff --git a/src/Vulkan/Core10/Enums/ImageTiling.hs b/src/Vulkan/Core10/Enums/ImageTiling.hs
--- a/src/Vulkan/Core10/Enums/ImageTiling.hs
+++ b/src/Vulkan/Core10/Enums/ImageTiling.hs
@@ -9,11 +9,12 @@
 import Vulkan.Internal.Utils (enumReadPrec)
 import Vulkan.Internal.Utils (enumShowsPrec)
 import GHC.Show (showsPrec)
+import Vulkan.Zero (Zero)
 import Foreign.Storable (Storable)
 import Data.Int (Int32)
 import GHC.Read (Read(readPrec))
 import GHC.Show (Show(showsPrec))
-import Vulkan.Zero (Zero)
+
 -- | VkImageTiling - Specifies the tiling arrangement of data in an image
 --
 -- = See Also
diff --git a/src/Vulkan/Core10/Enums/ImageType.hs b/src/Vulkan/Core10/Enums/ImageType.hs
--- a/src/Vulkan/Core10/Enums/ImageType.hs
+++ b/src/Vulkan/Core10/Enums/ImageType.hs
@@ -9,11 +9,12 @@
 import Vulkan.Internal.Utils (enumReadPrec)
 import Vulkan.Internal.Utils (enumShowsPrec)
 import GHC.Show (showsPrec)
+import Vulkan.Zero (Zero)
 import Foreign.Storable (Storable)
 import Data.Int (Int32)
 import GHC.Read (Read(readPrec))
 import GHC.Show (Show(showsPrec))
-import Vulkan.Zero (Zero)
+
 -- | VkImageType - Specifies the type of an image object
 --
 -- = See Also
diff --git a/src/Vulkan/Core10/Enums/ImageUsageFlagBits.hs b/src/Vulkan/Core10/Enums/ImageUsageFlagBits.hs
--- a/src/Vulkan/Core10/Enums/ImageUsageFlagBits.hs
+++ b/src/Vulkan/Core10/Enums/ImageUsageFlagBits.hs
@@ -19,13 +19,13 @@
 import Vulkan.Internal.Utils (enumShowsPrec)
 import GHC.Show (showString)
 import Numeric (showHex)
+import Vulkan.Zero (Zero)
 import Data.Bits (Bits)
 import Data.Bits (FiniteBits)
 import Foreign.Storable (Storable)
 import GHC.Read (Read(readPrec))
 import GHC.Show (Show(showsPrec))
 import Vulkan.Core10.FundamentalTypes (Flags)
-import Vulkan.Zero (Zero)
 type ImageUsageFlags = ImageUsageFlagBits
 
 -- | VkImageUsageFlagBits - Bitmask specifying intended usage of an image
diff --git a/src/Vulkan/Core10/Enums/ImageViewCreateFlagBits.hs b/src/Vulkan/Core10/Enums/ImageViewCreateFlagBits.hs
--- a/src/Vulkan/Core10/Enums/ImageViewCreateFlagBits.hs
+++ b/src/Vulkan/Core10/Enums/ImageViewCreateFlagBits.hs
@@ -11,13 +11,13 @@
 import Vulkan.Internal.Utils (enumShowsPrec)
 import GHC.Show (showString)
 import Numeric (showHex)
+import Vulkan.Zero (Zero)
 import Data.Bits (Bits)
 import Data.Bits (FiniteBits)
 import Foreign.Storable (Storable)
 import GHC.Read (Read(readPrec))
 import GHC.Show (Show(showsPrec))
 import Vulkan.Core10.FundamentalTypes (Flags)
-import Vulkan.Zero (Zero)
 type ImageViewCreateFlags = ImageViewCreateFlagBits
 
 -- | VkImageViewCreateFlagBits - Bitmask specifying additional parameters of
diff --git a/src/Vulkan/Core10/Enums/ImageViewType.hs b/src/Vulkan/Core10/Enums/ImageViewType.hs
--- a/src/Vulkan/Core10/Enums/ImageViewType.hs
+++ b/src/Vulkan/Core10/Enums/ImageViewType.hs
@@ -13,11 +13,12 @@
 import Vulkan.Internal.Utils (enumReadPrec)
 import Vulkan.Internal.Utils (enumShowsPrec)
 import GHC.Show (showsPrec)
+import Vulkan.Zero (Zero)
 import Foreign.Storable (Storable)
 import Data.Int (Int32)
 import GHC.Read (Read(readPrec))
 import GHC.Show (Show(showsPrec))
-import Vulkan.Zero (Zero)
+
 -- | VkImageViewType - Image view types
 --
 -- = Description
diff --git a/src/Vulkan/Core10/Enums/IndexType.hs b/src/Vulkan/Core10/Enums/IndexType.hs
--- a/src/Vulkan/Core10/Enums/IndexType.hs
+++ b/src/Vulkan/Core10/Enums/IndexType.hs
@@ -10,11 +10,12 @@
 import Vulkan.Internal.Utils (enumReadPrec)
 import Vulkan.Internal.Utils (enumShowsPrec)
 import GHC.Show (showsPrec)
+import Vulkan.Zero (Zero)
 import Foreign.Storable (Storable)
 import Data.Int (Int32)
 import GHC.Read (Read(readPrec))
 import GHC.Show (Show(showsPrec))
-import Vulkan.Zero (Zero)
+
 -- | VkIndexType - Type of index buffer indices
 --
 -- = See Also
diff --git a/src/Vulkan/Core10/Enums/InstanceCreateFlags.hs b/src/Vulkan/Core10/Enums/InstanceCreateFlags.hs
--- a/src/Vulkan/Core10/Enums/InstanceCreateFlags.hs
+++ b/src/Vulkan/Core10/Enums/InstanceCreateFlags.hs
@@ -6,13 +6,13 @@
 import Vulkan.Internal.Utils (enumShowsPrec)
 import GHC.Show (showString)
 import Numeric (showHex)
+import Vulkan.Zero (Zero)
 import Data.Bits (Bits)
 import Data.Bits (FiniteBits)
 import Foreign.Storable (Storable)
 import GHC.Read (Read(readPrec))
 import GHC.Show (Show(showsPrec))
 import Vulkan.Core10.FundamentalTypes (Flags)
-import Vulkan.Zero (Zero)
 -- | VkInstanceCreateFlags - Reserved for future use
 --
 -- = Description
diff --git a/src/Vulkan/Core10/Enums/InternalAllocationType.hs b/src/Vulkan/Core10/Enums/InternalAllocationType.hs
--- a/src/Vulkan/Core10/Enums/InternalAllocationType.hs
+++ b/src/Vulkan/Core10/Enums/InternalAllocationType.hs
@@ -7,11 +7,12 @@
 import Vulkan.Internal.Utils (enumReadPrec)
 import Vulkan.Internal.Utils (enumShowsPrec)
 import GHC.Show (showsPrec)
+import Vulkan.Zero (Zero)
 import Foreign.Storable (Storable)
 import Data.Int (Int32)
 import GHC.Read (Read(readPrec))
 import GHC.Show (Show(showsPrec))
-import Vulkan.Zero (Zero)
+
 -- | VkInternalAllocationType - Allocation type
 --
 -- = See Also
diff --git a/src/Vulkan/Core10/Enums/LogicOp.hs b/src/Vulkan/Core10/Enums/LogicOp.hs
--- a/src/Vulkan/Core10/Enums/LogicOp.hs
+++ b/src/Vulkan/Core10/Enums/LogicOp.hs
@@ -22,11 +22,12 @@
 import Vulkan.Internal.Utils (enumReadPrec)
 import Vulkan.Internal.Utils (enumShowsPrec)
 import GHC.Show (showsPrec)
+import Vulkan.Zero (Zero)
 import Foreign.Storable (Storable)
 import Data.Int (Int32)
 import GHC.Read (Read(readPrec))
 import GHC.Show (Show(showsPrec))
-import Vulkan.Zero (Zero)
+
 -- | VkLogicOp - Framebuffer logical operations
 --
 -- = Description
diff --git a/src/Vulkan/Core10/Enums/MemoryHeapFlagBits.hs b/src/Vulkan/Core10/Enums/MemoryHeapFlagBits.hs
--- a/src/Vulkan/Core10/Enums/MemoryHeapFlagBits.hs
+++ b/src/Vulkan/Core10/Enums/MemoryHeapFlagBits.hs
@@ -11,13 +11,13 @@
 import Vulkan.Internal.Utils (enumShowsPrec)
 import GHC.Show (showString)
 import Numeric (showHex)
+import Vulkan.Zero (Zero)
 import Data.Bits (Bits)
 import Data.Bits (FiniteBits)
 import Foreign.Storable (Storable)
 import GHC.Read (Read(readPrec))
 import GHC.Show (Show(showsPrec))
 import Vulkan.Core10.FundamentalTypes (Flags)
-import Vulkan.Zero (Zero)
 type MemoryHeapFlags = MemoryHeapFlagBits
 
 -- | VkMemoryHeapFlagBits - Bitmask specifying attribute flags for a heap
diff --git a/src/Vulkan/Core10/Enums/MemoryMapFlags.hs b/src/Vulkan/Core10/Enums/MemoryMapFlags.hs
--- a/src/Vulkan/Core10/Enums/MemoryMapFlags.hs
+++ b/src/Vulkan/Core10/Enums/MemoryMapFlags.hs
@@ -6,13 +6,13 @@
 import Vulkan.Internal.Utils (enumShowsPrec)
 import GHC.Show (showString)
 import Numeric (showHex)
+import Vulkan.Zero (Zero)
 import Data.Bits (Bits)
 import Data.Bits (FiniteBits)
 import Foreign.Storable (Storable)
 import GHC.Read (Read(readPrec))
 import GHC.Show (Show(showsPrec))
 import Vulkan.Core10.FundamentalTypes (Flags)
-import Vulkan.Zero (Zero)
 -- | VkMemoryMapFlags - Reserved for future use
 --
 -- = Description
diff --git a/src/Vulkan/Core10/Enums/MemoryPropertyFlagBits.hs b/src/Vulkan/Core10/Enums/MemoryPropertyFlagBits.hs
--- a/src/Vulkan/Core10/Enums/MemoryPropertyFlagBits.hs
+++ b/src/Vulkan/Core10/Enums/MemoryPropertyFlagBits.hs
@@ -17,13 +17,13 @@
 import Vulkan.Internal.Utils (enumShowsPrec)
 import GHC.Show (showString)
 import Numeric (showHex)
+import Vulkan.Zero (Zero)
 import Data.Bits (Bits)
 import Data.Bits (FiniteBits)
 import Foreign.Storable (Storable)
 import GHC.Read (Read(readPrec))
 import GHC.Show (Show(showsPrec))
 import Vulkan.Core10.FundamentalTypes (Flags)
-import Vulkan.Zero (Zero)
 type MemoryPropertyFlags = MemoryPropertyFlagBits
 
 -- | VkMemoryPropertyFlagBits - Bitmask specifying properties for a memory
diff --git a/src/Vulkan/Core10/Enums/ObjectType.hs b/src/Vulkan/Core10/Enums/ObjectType.hs
--- a/src/Vulkan/Core10/Enums/ObjectType.hs
+++ b/src/Vulkan/Core10/Enums/ObjectType.hs
@@ -47,11 +47,12 @@
 import Vulkan.Internal.Utils (enumReadPrec)
 import Vulkan.Internal.Utils (enumShowsPrec)
 import GHC.Show (showsPrec)
+import Vulkan.Zero (Zero)
 import Foreign.Storable (Storable)
 import Data.Int (Int32)
 import GHC.Read (Read(readPrec))
 import GHC.Show (Show(showsPrec))
-import Vulkan.Zero (Zero)
+
 -- | VkObjectType - Specify an enumeration to track object handle types
 --
 -- = Description
diff --git a/src/Vulkan/Core10/Enums/PhysicalDeviceType.hs b/src/Vulkan/Core10/Enums/PhysicalDeviceType.hs
--- a/src/Vulkan/Core10/Enums/PhysicalDeviceType.hs
+++ b/src/Vulkan/Core10/Enums/PhysicalDeviceType.hs
@@ -11,11 +11,12 @@
 import Vulkan.Internal.Utils (enumReadPrec)
 import Vulkan.Internal.Utils (enumShowsPrec)
 import GHC.Show (showsPrec)
+import Vulkan.Zero (Zero)
 import Foreign.Storable (Storable)
 import Data.Int (Int32)
 import GHC.Read (Read(readPrec))
 import GHC.Show (Show(showsPrec))
-import Vulkan.Zero (Zero)
+
 -- | VkPhysicalDeviceType - Supported physical device types
 --
 -- = Description
diff --git a/src/Vulkan/Core10/Enums/PipelineBindPoint.hs b/src/Vulkan/Core10/Enums/PipelineBindPoint.hs
--- a/src/Vulkan/Core10/Enums/PipelineBindPoint.hs
+++ b/src/Vulkan/Core10/Enums/PipelineBindPoint.hs
@@ -9,11 +9,12 @@
 import Vulkan.Internal.Utils (enumReadPrec)
 import Vulkan.Internal.Utils (enumShowsPrec)
 import GHC.Show (showsPrec)
+import Vulkan.Zero (Zero)
 import Foreign.Storable (Storable)
 import Data.Int (Int32)
 import GHC.Read (Read(readPrec))
 import GHC.Show (Show(showsPrec))
-import Vulkan.Zero (Zero)
+
 -- | VkPipelineBindPoint - Specify the bind point of a pipeline object to a
 -- command buffer
 --
diff --git a/src/Vulkan/Core10/Enums/PipelineCacheCreateFlagBits.hs b/src/Vulkan/Core10/Enums/PipelineCacheCreateFlagBits.hs
--- a/src/Vulkan/Core10/Enums/PipelineCacheCreateFlagBits.hs
+++ b/src/Vulkan/Core10/Enums/PipelineCacheCreateFlagBits.hs
@@ -10,13 +10,13 @@
 import Vulkan.Internal.Utils (enumShowsPrec)
 import GHC.Show (showString)
 import Numeric (showHex)
+import Vulkan.Zero (Zero)
 import Data.Bits (Bits)
 import Data.Bits (FiniteBits)
 import Foreign.Storable (Storable)
 import GHC.Read (Read(readPrec))
 import GHC.Show (Show(showsPrec))
 import Vulkan.Core10.FundamentalTypes (Flags)
-import Vulkan.Zero (Zero)
 type PipelineCacheCreateFlags = PipelineCacheCreateFlagBits
 
 -- | VkPipelineCacheCreateFlagBits - Bitmask specifying the behavior of the
diff --git a/src/Vulkan/Core10/Enums/PipelineCacheHeaderVersion.hs b/src/Vulkan/Core10/Enums/PipelineCacheHeaderVersion.hs
--- a/src/Vulkan/Core10/Enums/PipelineCacheHeaderVersion.hs
+++ b/src/Vulkan/Core10/Enums/PipelineCacheHeaderVersion.hs
@@ -7,11 +7,12 @@
 import Vulkan.Internal.Utils (enumReadPrec)
 import Vulkan.Internal.Utils (enumShowsPrec)
 import GHC.Show (showsPrec)
+import Vulkan.Zero (Zero)
 import Foreign.Storable (Storable)
 import Data.Int (Int32)
 import GHC.Read (Read(readPrec))
 import GHC.Show (Show(showsPrec))
-import Vulkan.Zero (Zero)
+
 -- | VkPipelineCacheHeaderVersion - Encode pipeline cache version
 --
 -- = See Also
diff --git a/src/Vulkan/Core10/Enums/PipelineColorBlendStateCreateFlags.hs b/src/Vulkan/Core10/Enums/PipelineColorBlendStateCreateFlags.hs
--- a/src/Vulkan/Core10/Enums/PipelineColorBlendStateCreateFlags.hs
+++ b/src/Vulkan/Core10/Enums/PipelineColorBlendStateCreateFlags.hs
@@ -6,13 +6,13 @@
 import Vulkan.Internal.Utils (enumShowsPrec)
 import GHC.Show (showString)
 import Numeric (showHex)
+import Vulkan.Zero (Zero)
 import Data.Bits (Bits)
 import Data.Bits (FiniteBits)
 import Foreign.Storable (Storable)
 import GHC.Read (Read(readPrec))
 import GHC.Show (Show(showsPrec))
 import Vulkan.Core10.FundamentalTypes (Flags)
-import Vulkan.Zero (Zero)
 -- | VkPipelineColorBlendStateCreateFlags - Reserved for future use
 --
 -- = Description
diff --git a/src/Vulkan/Core10/Enums/PipelineCreateFlagBits.hs b/src/Vulkan/Core10/Enums/PipelineCreateFlagBits.hs
--- a/src/Vulkan/Core10/Enums/PipelineCreateFlagBits.hs
+++ b/src/Vulkan/Core10/Enums/PipelineCreateFlagBits.hs
@@ -28,13 +28,13 @@
 import Vulkan.Internal.Utils (enumShowsPrec)
 import GHC.Show (showString)
 import Numeric (showHex)
+import Vulkan.Zero (Zero)
 import Data.Bits (Bits)
 import Data.Bits (FiniteBits)
 import Foreign.Storable (Storable)
 import GHC.Read (Read(readPrec))
 import GHC.Show (Show(showsPrec))
 import Vulkan.Core10.FundamentalTypes (Flags)
-import Vulkan.Zero (Zero)
 type PipelineCreateFlags = PipelineCreateFlagBits
 
 -- | VkPipelineCreateFlagBits - Bitmask controlling how a pipeline is created
diff --git a/src/Vulkan/Core10/Enums/PipelineDepthStencilStateCreateFlags.hs b/src/Vulkan/Core10/Enums/PipelineDepthStencilStateCreateFlags.hs
--- a/src/Vulkan/Core10/Enums/PipelineDepthStencilStateCreateFlags.hs
+++ b/src/Vulkan/Core10/Enums/PipelineDepthStencilStateCreateFlags.hs
@@ -6,13 +6,13 @@
 import Vulkan.Internal.Utils (enumShowsPrec)
 import GHC.Show (showString)
 import Numeric (showHex)
+import Vulkan.Zero (Zero)
 import Data.Bits (Bits)
 import Data.Bits (FiniteBits)
 import Foreign.Storable (Storable)
 import GHC.Read (Read(readPrec))
 import GHC.Show (Show(showsPrec))
 import Vulkan.Core10.FundamentalTypes (Flags)
-import Vulkan.Zero (Zero)
 -- | VkPipelineDepthStencilStateCreateFlags - Reserved for future use
 --
 -- = Description
diff --git a/src/Vulkan/Core10/Enums/PipelineDynamicStateCreateFlags.hs b/src/Vulkan/Core10/Enums/PipelineDynamicStateCreateFlags.hs
--- a/src/Vulkan/Core10/Enums/PipelineDynamicStateCreateFlags.hs
+++ b/src/Vulkan/Core10/Enums/PipelineDynamicStateCreateFlags.hs
@@ -6,13 +6,13 @@
 import Vulkan.Internal.Utils (enumShowsPrec)
 import GHC.Show (showString)
 import Numeric (showHex)
+import Vulkan.Zero (Zero)
 import Data.Bits (Bits)
 import Data.Bits (FiniteBits)
 import Foreign.Storable (Storable)
 import GHC.Read (Read(readPrec))
 import GHC.Show (Show(showsPrec))
 import Vulkan.Core10.FundamentalTypes (Flags)
-import Vulkan.Zero (Zero)
 -- | VkPipelineDynamicStateCreateFlags - Reserved for future use
 --
 -- = Description
diff --git a/src/Vulkan/Core10/Enums/PipelineInputAssemblyStateCreateFlags.hs b/src/Vulkan/Core10/Enums/PipelineInputAssemblyStateCreateFlags.hs
--- a/src/Vulkan/Core10/Enums/PipelineInputAssemblyStateCreateFlags.hs
+++ b/src/Vulkan/Core10/Enums/PipelineInputAssemblyStateCreateFlags.hs
@@ -6,13 +6,13 @@
 import Vulkan.Internal.Utils (enumShowsPrec)
 import GHC.Show (showString)
 import Numeric (showHex)
+import Vulkan.Zero (Zero)
 import Data.Bits (Bits)
 import Data.Bits (FiniteBits)
 import Foreign.Storable (Storable)
 import GHC.Read (Read(readPrec))
 import GHC.Show (Show(showsPrec))
 import Vulkan.Core10.FundamentalTypes (Flags)
-import Vulkan.Zero (Zero)
 -- | VkPipelineInputAssemblyStateCreateFlags - Reserved for future use
 --
 -- = Description
diff --git a/src/Vulkan/Core10/Enums/PipelineLayoutCreateFlags.hs b/src/Vulkan/Core10/Enums/PipelineLayoutCreateFlags.hs
--- a/src/Vulkan/Core10/Enums/PipelineLayoutCreateFlags.hs
+++ b/src/Vulkan/Core10/Enums/PipelineLayoutCreateFlags.hs
@@ -6,13 +6,13 @@
 import Vulkan.Internal.Utils (enumShowsPrec)
 import GHC.Show (showString)
 import Numeric (showHex)
+import Vulkan.Zero (Zero)
 import Data.Bits (Bits)
 import Data.Bits (FiniteBits)
 import Foreign.Storable (Storable)
 import GHC.Read (Read(readPrec))
 import GHC.Show (Show(showsPrec))
 import Vulkan.Core10.FundamentalTypes (Flags)
-import Vulkan.Zero (Zero)
 -- | VkPipelineLayoutCreateFlags - Reserved for future use
 --
 -- = Description
diff --git a/src/Vulkan/Core10/Enums/PipelineMultisampleStateCreateFlags.hs b/src/Vulkan/Core10/Enums/PipelineMultisampleStateCreateFlags.hs
--- a/src/Vulkan/Core10/Enums/PipelineMultisampleStateCreateFlags.hs
+++ b/src/Vulkan/Core10/Enums/PipelineMultisampleStateCreateFlags.hs
@@ -6,13 +6,13 @@
 import Vulkan.Internal.Utils (enumShowsPrec)
 import GHC.Show (showString)
 import Numeric (showHex)
+import Vulkan.Zero (Zero)
 import Data.Bits (Bits)
 import Data.Bits (FiniteBits)
 import Foreign.Storable (Storable)
 import GHC.Read (Read(readPrec))
 import GHC.Show (Show(showsPrec))
 import Vulkan.Core10.FundamentalTypes (Flags)
-import Vulkan.Zero (Zero)
 -- | VkPipelineMultisampleStateCreateFlags - Reserved for future use
 --
 -- = Description
diff --git a/src/Vulkan/Core10/Enums/PipelineRasterizationStateCreateFlags.hs b/src/Vulkan/Core10/Enums/PipelineRasterizationStateCreateFlags.hs
--- a/src/Vulkan/Core10/Enums/PipelineRasterizationStateCreateFlags.hs
+++ b/src/Vulkan/Core10/Enums/PipelineRasterizationStateCreateFlags.hs
@@ -6,13 +6,13 @@
 import Vulkan.Internal.Utils (enumShowsPrec)
 import GHC.Show (showString)
 import Numeric (showHex)
+import Vulkan.Zero (Zero)
 import Data.Bits (Bits)
 import Data.Bits (FiniteBits)
 import Foreign.Storable (Storable)
 import GHC.Read (Read(readPrec))
 import GHC.Show (Show(showsPrec))
 import Vulkan.Core10.FundamentalTypes (Flags)
-import Vulkan.Zero (Zero)
 -- | VkPipelineRasterizationStateCreateFlags - Reserved for future use
 --
 -- = Description
diff --git a/src/Vulkan/Core10/Enums/PipelineShaderStageCreateFlagBits.hs b/src/Vulkan/Core10/Enums/PipelineShaderStageCreateFlagBits.hs
--- a/src/Vulkan/Core10/Enums/PipelineShaderStageCreateFlagBits.hs
+++ b/src/Vulkan/Core10/Enums/PipelineShaderStageCreateFlagBits.hs
@@ -11,13 +11,13 @@
 import Vulkan.Internal.Utils (enumShowsPrec)
 import GHC.Show (showString)
 import Numeric (showHex)
+import Vulkan.Zero (Zero)
 import Data.Bits (Bits)
 import Data.Bits (FiniteBits)
 import Foreign.Storable (Storable)
 import GHC.Read (Read(readPrec))
 import GHC.Show (Show(showsPrec))
 import Vulkan.Core10.FundamentalTypes (Flags)
-import Vulkan.Zero (Zero)
 type PipelineShaderStageCreateFlags = PipelineShaderStageCreateFlagBits
 
 -- | VkPipelineShaderStageCreateFlagBits - Bitmask controlling how a pipeline
diff --git a/src/Vulkan/Core10/Enums/PipelineStageFlagBits.hs b/src/Vulkan/Core10/Enums/PipelineStageFlagBits.hs
--- a/src/Vulkan/Core10/Enums/PipelineStageFlagBits.hs
+++ b/src/Vulkan/Core10/Enums/PipelineStageFlagBits.hs
@@ -35,13 +35,13 @@
 import Vulkan.Internal.Utils (enumShowsPrec)
 import GHC.Show (showString)
 import Numeric (showHex)
+import Vulkan.Zero (Zero)
 import Data.Bits (Bits)
 import Data.Bits (FiniteBits)
 import Foreign.Storable (Storable)
 import GHC.Read (Read(readPrec))
 import GHC.Show (Show(showsPrec))
 import Vulkan.Core10.FundamentalTypes (Flags)
-import Vulkan.Zero (Zero)
 type PipelineStageFlags = PipelineStageFlagBits
 
 -- | VkPipelineStageFlagBits - Bitmask specifying pipeline stages
diff --git a/src/Vulkan/Core10/Enums/PipelineTessellationStateCreateFlags.hs b/src/Vulkan/Core10/Enums/PipelineTessellationStateCreateFlags.hs
--- a/src/Vulkan/Core10/Enums/PipelineTessellationStateCreateFlags.hs
+++ b/src/Vulkan/Core10/Enums/PipelineTessellationStateCreateFlags.hs
@@ -6,13 +6,13 @@
 import Vulkan.Internal.Utils (enumShowsPrec)
 import GHC.Show (showString)
 import Numeric (showHex)
+import Vulkan.Zero (Zero)
 import Data.Bits (Bits)
 import Data.Bits (FiniteBits)
 import Foreign.Storable (Storable)
 import GHC.Read (Read(readPrec))
 import GHC.Show (Show(showsPrec))
 import Vulkan.Core10.FundamentalTypes (Flags)
-import Vulkan.Zero (Zero)
 -- | VkPipelineTessellationStateCreateFlags - Reserved for future use
 --
 -- = Description
diff --git a/src/Vulkan/Core10/Enums/PipelineVertexInputStateCreateFlags.hs b/src/Vulkan/Core10/Enums/PipelineVertexInputStateCreateFlags.hs
--- a/src/Vulkan/Core10/Enums/PipelineVertexInputStateCreateFlags.hs
+++ b/src/Vulkan/Core10/Enums/PipelineVertexInputStateCreateFlags.hs
@@ -6,13 +6,13 @@
 import Vulkan.Internal.Utils (enumShowsPrec)
 import GHC.Show (showString)
 import Numeric (showHex)
+import Vulkan.Zero (Zero)
 import Data.Bits (Bits)
 import Data.Bits (FiniteBits)
 import Foreign.Storable (Storable)
 import GHC.Read (Read(readPrec))
 import GHC.Show (Show(showsPrec))
 import Vulkan.Core10.FundamentalTypes (Flags)
-import Vulkan.Zero (Zero)
 -- | VkPipelineVertexInputStateCreateFlags - Reserved for future use
 --
 -- = Description
diff --git a/src/Vulkan/Core10/Enums/PipelineViewportStateCreateFlags.hs b/src/Vulkan/Core10/Enums/PipelineViewportStateCreateFlags.hs
--- a/src/Vulkan/Core10/Enums/PipelineViewportStateCreateFlags.hs
+++ b/src/Vulkan/Core10/Enums/PipelineViewportStateCreateFlags.hs
@@ -6,13 +6,13 @@
 import Vulkan.Internal.Utils (enumShowsPrec)
 import GHC.Show (showString)
 import Numeric (showHex)
+import Vulkan.Zero (Zero)
 import Data.Bits (Bits)
 import Data.Bits (FiniteBits)
 import Foreign.Storable (Storable)
 import GHC.Read (Read(readPrec))
 import GHC.Show (Show(showsPrec))
 import Vulkan.Core10.FundamentalTypes (Flags)
-import Vulkan.Zero (Zero)
 -- | VkPipelineViewportStateCreateFlags - Reserved for future use
 --
 -- = Description
diff --git a/src/Vulkan/Core10/Enums/PolygonMode.hs b/src/Vulkan/Core10/Enums/PolygonMode.hs
--- a/src/Vulkan/Core10/Enums/PolygonMode.hs
+++ b/src/Vulkan/Core10/Enums/PolygonMode.hs
@@ -10,11 +10,12 @@
 import Vulkan.Internal.Utils (enumReadPrec)
 import Vulkan.Internal.Utils (enumShowsPrec)
 import GHC.Show (showsPrec)
+import Vulkan.Zero (Zero)
 import Foreign.Storable (Storable)
 import Data.Int (Int32)
 import GHC.Read (Read(readPrec))
 import GHC.Show (Show(showsPrec))
-import Vulkan.Zero (Zero)
+
 -- | VkPolygonMode - Control polygon rasterization mode
 --
 -- = Description
diff --git a/src/Vulkan/Core10/Enums/PrimitiveTopology.hs b/src/Vulkan/Core10/Enums/PrimitiveTopology.hs
--- a/src/Vulkan/Core10/Enums/PrimitiveTopology.hs
+++ b/src/Vulkan/Core10/Enums/PrimitiveTopology.hs
@@ -17,11 +17,12 @@
 import Vulkan.Internal.Utils (enumReadPrec)
 import Vulkan.Internal.Utils (enumShowsPrec)
 import GHC.Show (showsPrec)
+import Vulkan.Zero (Zero)
 import Foreign.Storable (Storable)
 import Data.Int (Int32)
 import GHC.Read (Read(readPrec))
 import GHC.Show (Show(showsPrec))
-import Vulkan.Zero (Zero)
+
 -- | VkPrimitiveTopology - Supported primitive topologies
 --
 -- = Description
diff --git a/src/Vulkan/Core10/Enums/QueryControlFlagBits.hs b/src/Vulkan/Core10/Enums/QueryControlFlagBits.hs
--- a/src/Vulkan/Core10/Enums/QueryControlFlagBits.hs
+++ b/src/Vulkan/Core10/Enums/QueryControlFlagBits.hs
@@ -10,13 +10,13 @@
 import Vulkan.Internal.Utils (enumShowsPrec)
 import GHC.Show (showString)
 import Numeric (showHex)
+import Vulkan.Zero (Zero)
 import Data.Bits (Bits)
 import Data.Bits (FiniteBits)
 import Foreign.Storable (Storable)
 import GHC.Read (Read(readPrec))
 import GHC.Show (Show(showsPrec))
 import Vulkan.Core10.FundamentalTypes (Flags)
-import Vulkan.Zero (Zero)
 type QueryControlFlags = QueryControlFlagBits
 
 -- | VkQueryControlFlagBits - Bitmask specifying constraints on a query
diff --git a/src/Vulkan/Core10/Enums/QueryPipelineStatisticFlagBits.hs b/src/Vulkan/Core10/Enums/QueryPipelineStatisticFlagBits.hs
--- a/src/Vulkan/Core10/Enums/QueryPipelineStatisticFlagBits.hs
+++ b/src/Vulkan/Core10/Enums/QueryPipelineStatisticFlagBits.hs
@@ -20,13 +20,13 @@
 import Vulkan.Internal.Utils (enumShowsPrec)
 import GHC.Show (showString)
 import Numeric (showHex)
+import Vulkan.Zero (Zero)
 import Data.Bits (Bits)
 import Data.Bits (FiniteBits)
 import Foreign.Storable (Storable)
 import GHC.Read (Read(readPrec))
 import GHC.Show (Show(showsPrec))
 import Vulkan.Core10.FundamentalTypes (Flags)
-import Vulkan.Zero (Zero)
 type QueryPipelineStatisticFlags = QueryPipelineStatisticFlagBits
 
 -- | VkQueryPipelineStatisticFlagBits - Bitmask specifying queried pipeline
diff --git a/src/Vulkan/Core10/Enums/QueryPoolCreateFlags.hs b/src/Vulkan/Core10/Enums/QueryPoolCreateFlags.hs
--- a/src/Vulkan/Core10/Enums/QueryPoolCreateFlags.hs
+++ b/src/Vulkan/Core10/Enums/QueryPoolCreateFlags.hs
@@ -6,13 +6,13 @@
 import Vulkan.Internal.Utils (enumShowsPrec)
 import GHC.Show (showString)
 import Numeric (showHex)
+import Vulkan.Zero (Zero)
 import Data.Bits (Bits)
 import Data.Bits (FiniteBits)
 import Foreign.Storable (Storable)
 import GHC.Read (Read(readPrec))
 import GHC.Show (Show(showsPrec))
 import Vulkan.Core10.FundamentalTypes (Flags)
-import Vulkan.Zero (Zero)
 -- | VkQueryPoolCreateFlags - Reserved for future use
 --
 -- = Description
diff --git a/src/Vulkan/Core10/Enums/QueryResultFlagBits.hs b/src/Vulkan/Core10/Enums/QueryResultFlagBits.hs
--- a/src/Vulkan/Core10/Enums/QueryResultFlagBits.hs
+++ b/src/Vulkan/Core10/Enums/QueryResultFlagBits.hs
@@ -13,13 +13,13 @@
 import Vulkan.Internal.Utils (enumShowsPrec)
 import GHC.Show (showString)
 import Numeric (showHex)
+import Vulkan.Zero (Zero)
 import Data.Bits (Bits)
 import Data.Bits (FiniteBits)
 import Foreign.Storable (Storable)
 import GHC.Read (Read(readPrec))
 import GHC.Show (Show(showsPrec))
 import Vulkan.Core10.FundamentalTypes (Flags)
-import Vulkan.Zero (Zero)
 type QueryResultFlags = QueryResultFlagBits
 
 -- | VkQueryResultFlagBits - Bitmask specifying how and when query results
diff --git a/src/Vulkan/Core10/Enums/QueryType.hs b/src/Vulkan/Core10/Enums/QueryType.hs
--- a/src/Vulkan/Core10/Enums/QueryType.hs
+++ b/src/Vulkan/Core10/Enums/QueryType.hs
@@ -15,11 +15,12 @@
 import Vulkan.Internal.Utils (enumReadPrec)
 import Vulkan.Internal.Utils (enumShowsPrec)
 import GHC.Show (showsPrec)
+import Vulkan.Zero (Zero)
 import Foreign.Storable (Storable)
 import Data.Int (Int32)
 import GHC.Read (Read(readPrec))
 import GHC.Show (Show(showsPrec))
-import Vulkan.Zero (Zero)
+
 -- | VkQueryType - Specify the type of queries managed by a query pool
 --
 -- = See Also
diff --git a/src/Vulkan/Core10/Enums/QueueFlagBits.hs b/src/Vulkan/Core10/Enums/QueueFlagBits.hs
--- a/src/Vulkan/Core10/Enums/QueueFlagBits.hs
+++ b/src/Vulkan/Core10/Enums/QueueFlagBits.hs
@@ -14,13 +14,13 @@
 import Vulkan.Internal.Utils (enumShowsPrec)
 import GHC.Show (showString)
 import Numeric (showHex)
+import Vulkan.Zero (Zero)
 import Data.Bits (Bits)
 import Data.Bits (FiniteBits)
 import Foreign.Storable (Storable)
 import GHC.Read (Read(readPrec))
 import GHC.Show (Show(showsPrec))
 import Vulkan.Core10.FundamentalTypes (Flags)
-import Vulkan.Zero (Zero)
 type QueueFlags = QueueFlagBits
 
 -- | VkQueueFlagBits - Bitmask specifying capabilities of queues in a queue
diff --git a/src/Vulkan/Core10/Enums/RenderPassCreateFlagBits.hs b/src/Vulkan/Core10/Enums/RenderPassCreateFlagBits.hs
--- a/src/Vulkan/Core10/Enums/RenderPassCreateFlagBits.hs
+++ b/src/Vulkan/Core10/Enums/RenderPassCreateFlagBits.hs
@@ -10,13 +10,13 @@
 import Vulkan.Internal.Utils (enumShowsPrec)
 import GHC.Show (showString)
 import Numeric (showHex)
+import Vulkan.Zero (Zero)
 import Data.Bits (Bits)
 import Data.Bits (FiniteBits)
 import Foreign.Storable (Storable)
 import GHC.Read (Read(readPrec))
 import GHC.Show (Show(showsPrec))
 import Vulkan.Core10.FundamentalTypes (Flags)
-import Vulkan.Zero (Zero)
 type RenderPassCreateFlags = RenderPassCreateFlagBits
 
 -- | VkRenderPassCreateFlagBits - Bitmask specifying additional properties of
diff --git a/src/Vulkan/Core10/Enums/Result.hs b/src/Vulkan/Core10/Enums/Result.hs
--- a/src/Vulkan/Core10/Enums/Result.hs
+++ b/src/Vulkan/Core10/Enums/Result.hs
@@ -44,11 +44,12 @@
 import Vulkan.Internal.Utils (enumReadPrec)
 import Vulkan.Internal.Utils (enumShowsPrec)
 import GHC.Show (showsPrec)
+import Vulkan.Zero (Zero)
 import Foreign.Storable (Storable)
 import Data.Int (Int32)
 import GHC.Read (Read(readPrec))
 import GHC.Show (Show(showsPrec))
-import Vulkan.Zero (Zero)
+
 -- | VkResult - Vulkan command return codes
 --
 -- = Description
diff --git a/src/Vulkan/Core10/Enums/SampleCountFlagBits.hs b/src/Vulkan/Core10/Enums/SampleCountFlagBits.hs
--- a/src/Vulkan/Core10/Enums/SampleCountFlagBits.hs
+++ b/src/Vulkan/Core10/Enums/SampleCountFlagBits.hs
@@ -16,13 +16,13 @@
 import Vulkan.Internal.Utils (enumShowsPrec)
 import GHC.Show (showString)
 import Numeric (showHex)
+import Vulkan.Zero (Zero)
 import Data.Bits (Bits)
 import Data.Bits (FiniteBits)
 import Foreign.Storable (Storable)
 import GHC.Read (Read(readPrec))
 import GHC.Show (Show(showsPrec))
 import Vulkan.Core10.FundamentalTypes (Flags)
-import Vulkan.Zero (Zero)
 type SampleCountFlags = SampleCountFlagBits
 
 -- | VkSampleCountFlagBits - Bitmask specifying sample counts supported for
diff --git a/src/Vulkan/Core10/Enums/SamplerAddressMode.hs b/src/Vulkan/Core10/Enums/SamplerAddressMode.hs
--- a/src/Vulkan/Core10/Enums/SamplerAddressMode.hs
+++ b/src/Vulkan/Core10/Enums/SamplerAddressMode.hs
@@ -11,11 +11,12 @@
 import Vulkan.Internal.Utils (enumReadPrec)
 import Vulkan.Internal.Utils (enumShowsPrec)
 import GHC.Show (showsPrec)
+import Vulkan.Zero (Zero)
 import Foreign.Storable (Storable)
 import Data.Int (Int32)
 import GHC.Read (Read(readPrec))
 import GHC.Show (Show(showsPrec))
-import Vulkan.Zero (Zero)
+
 -- | VkSamplerAddressMode - Specify behavior of sampling with texture
 -- coordinates outside an image
 --
diff --git a/src/Vulkan/Core10/Enums/SamplerCreateFlagBits.hs b/src/Vulkan/Core10/Enums/SamplerCreateFlagBits.hs
--- a/src/Vulkan/Core10/Enums/SamplerCreateFlagBits.hs
+++ b/src/Vulkan/Core10/Enums/SamplerCreateFlagBits.hs
@@ -11,13 +11,13 @@
 import Vulkan.Internal.Utils (enumShowsPrec)
 import GHC.Show (showString)
 import Numeric (showHex)
+import Vulkan.Zero (Zero)
 import Data.Bits (Bits)
 import Data.Bits (FiniteBits)
 import Foreign.Storable (Storable)
 import GHC.Read (Read(readPrec))
 import GHC.Show (Show(showsPrec))
 import Vulkan.Core10.FundamentalTypes (Flags)
-import Vulkan.Zero (Zero)
 type SamplerCreateFlags = SamplerCreateFlagBits
 
 -- | VkSamplerCreateFlagBits - Bitmask specifying additional parameters of
diff --git a/src/Vulkan/Core10/Enums/SamplerMipmapMode.hs b/src/Vulkan/Core10/Enums/SamplerMipmapMode.hs
--- a/src/Vulkan/Core10/Enums/SamplerMipmapMode.hs
+++ b/src/Vulkan/Core10/Enums/SamplerMipmapMode.hs
@@ -8,11 +8,12 @@
 import Vulkan.Internal.Utils (enumReadPrec)
 import Vulkan.Internal.Utils (enumShowsPrec)
 import GHC.Show (showsPrec)
+import Vulkan.Zero (Zero)
 import Foreign.Storable (Storable)
 import Data.Int (Int32)
 import GHC.Read (Read(readPrec))
 import GHC.Show (Show(showsPrec))
-import Vulkan.Zero (Zero)
+
 -- | VkSamplerMipmapMode - Specify mipmap mode used for texture lookups
 --
 -- = Description
diff --git a/src/Vulkan/Core10/Enums/SemaphoreCreateFlags.hs b/src/Vulkan/Core10/Enums/SemaphoreCreateFlags.hs
--- a/src/Vulkan/Core10/Enums/SemaphoreCreateFlags.hs
+++ b/src/Vulkan/Core10/Enums/SemaphoreCreateFlags.hs
@@ -6,13 +6,13 @@
 import Vulkan.Internal.Utils (enumShowsPrec)
 import GHC.Show (showString)
 import Numeric (showHex)
+import Vulkan.Zero (Zero)
 import Data.Bits (Bits)
 import Data.Bits (FiniteBits)
 import Foreign.Storable (Storable)
 import GHC.Read (Read(readPrec))
 import GHC.Show (Show(showsPrec))
 import Vulkan.Core10.FundamentalTypes (Flags)
-import Vulkan.Zero (Zero)
 -- | VkSemaphoreCreateFlags - Reserved for future use
 --
 -- = Description
diff --git a/src/Vulkan/Core10/Enums/ShaderModuleCreateFlagBits.hs b/src/Vulkan/Core10/Enums/ShaderModuleCreateFlagBits.hs
--- a/src/Vulkan/Core10/Enums/ShaderModuleCreateFlagBits.hs
+++ b/src/Vulkan/Core10/Enums/ShaderModuleCreateFlagBits.hs
@@ -8,13 +8,13 @@
 import Vulkan.Internal.Utils (enumShowsPrec)
 import GHC.Show (showString)
 import Numeric (showHex)
+import Vulkan.Zero (Zero)
 import Data.Bits (Bits)
 import Data.Bits (FiniteBits)
 import Foreign.Storable (Storable)
 import GHC.Read (Read(readPrec))
 import GHC.Show (Show(showsPrec))
 import Vulkan.Core10.FundamentalTypes (Flags)
-import Vulkan.Zero (Zero)
 type ShaderModuleCreateFlags = ShaderModuleCreateFlagBits
 
 -- No documentation found for TopLevel "VkShaderModuleCreateFlagBits"
diff --git a/src/Vulkan/Core10/Enums/ShaderStageFlagBits.hs b/src/Vulkan/Core10/Enums/ShaderStageFlagBits.hs
--- a/src/Vulkan/Core10/Enums/ShaderStageFlagBits.hs
+++ b/src/Vulkan/Core10/Enums/ShaderStageFlagBits.hs
@@ -25,13 +25,13 @@
 import Vulkan.Internal.Utils (enumShowsPrec)
 import GHC.Show (showString)
 import Numeric (showHex)
+import Vulkan.Zero (Zero)
 import Data.Bits (Bits)
 import Data.Bits (FiniteBits)
 import Foreign.Storable (Storable)
 import GHC.Read (Read(readPrec))
 import GHC.Show (Show(showsPrec))
 import Vulkan.Core10.FundamentalTypes (Flags)
-import Vulkan.Zero (Zero)
 type ShaderStageFlags = ShaderStageFlagBits
 
 -- | VkShaderStageFlagBits - Bitmask specifying a pipeline stage
diff --git a/src/Vulkan/Core10/Enums/SharingMode.hs b/src/Vulkan/Core10/Enums/SharingMode.hs
--- a/src/Vulkan/Core10/Enums/SharingMode.hs
+++ b/src/Vulkan/Core10/Enums/SharingMode.hs
@@ -8,11 +8,12 @@
 import Vulkan.Internal.Utils (enumReadPrec)
 import Vulkan.Internal.Utils (enumShowsPrec)
 import GHC.Show (showsPrec)
+import Vulkan.Zero (Zero)
 import Foreign.Storable (Storable)
 import Data.Int (Int32)
 import GHC.Read (Read(readPrec))
 import GHC.Show (Show(showsPrec))
-import Vulkan.Zero (Zero)
+
 -- | VkSharingMode - Buffer and image sharing modes
 --
 -- = Description
diff --git a/src/Vulkan/Core10/Enums/SparseImageFormatFlagBits.hs b/src/Vulkan/Core10/Enums/SparseImageFormatFlagBits.hs
--- a/src/Vulkan/Core10/Enums/SparseImageFormatFlagBits.hs
+++ b/src/Vulkan/Core10/Enums/SparseImageFormatFlagBits.hs
@@ -12,13 +12,13 @@
 import Vulkan.Internal.Utils (enumShowsPrec)
 import GHC.Show (showString)
 import Numeric (showHex)
+import Vulkan.Zero (Zero)
 import Data.Bits (Bits)
 import Data.Bits (FiniteBits)
 import Foreign.Storable (Storable)
 import GHC.Read (Read(readPrec))
 import GHC.Show (Show(showsPrec))
 import Vulkan.Core10.FundamentalTypes (Flags)
-import Vulkan.Zero (Zero)
 type SparseImageFormatFlags = SparseImageFormatFlagBits
 
 -- | VkSparseImageFormatFlagBits - Bitmask specifying additional information
diff --git a/src/Vulkan/Core10/Enums/SparseMemoryBindFlagBits.hs b/src/Vulkan/Core10/Enums/SparseMemoryBindFlagBits.hs
--- a/src/Vulkan/Core10/Enums/SparseMemoryBindFlagBits.hs
+++ b/src/Vulkan/Core10/Enums/SparseMemoryBindFlagBits.hs
@@ -10,13 +10,13 @@
 import Vulkan.Internal.Utils (enumShowsPrec)
 import GHC.Show (showString)
 import Numeric (showHex)
+import Vulkan.Zero (Zero)
 import Data.Bits (Bits)
 import Data.Bits (FiniteBits)
 import Foreign.Storable (Storable)
 import GHC.Read (Read(readPrec))
 import GHC.Show (Show(showsPrec))
 import Vulkan.Core10.FundamentalTypes (Flags)
-import Vulkan.Zero (Zero)
 type SparseMemoryBindFlags = SparseMemoryBindFlagBits
 
 -- | VkSparseMemoryBindFlagBits - Bitmask specifying usage of a sparse memory
diff --git a/src/Vulkan/Core10/Enums/StencilFaceFlagBits.hs b/src/Vulkan/Core10/Enums/StencilFaceFlagBits.hs
--- a/src/Vulkan/Core10/Enums/StencilFaceFlagBits.hs
+++ b/src/Vulkan/Core10/Enums/StencilFaceFlagBits.hs
@@ -13,13 +13,13 @@
 import Vulkan.Internal.Utils (enumShowsPrec)
 import GHC.Show (showString)
 import Numeric (showHex)
+import Vulkan.Zero (Zero)
 import Data.Bits (Bits)
 import Data.Bits (FiniteBits)
 import Foreign.Storable (Storable)
 import GHC.Read (Read(readPrec))
 import GHC.Show (Show(showsPrec))
 import Vulkan.Core10.FundamentalTypes (Flags)
-import Vulkan.Zero (Zero)
 -- No documentation found for TopLevel "VK_STENCIL_FRONT_AND_BACK"
 pattern STENCIL_FRONT_AND_BACK = STENCIL_FACE_FRONT_AND_BACK
 
diff --git a/src/Vulkan/Core10/Enums/StencilOp.hs b/src/Vulkan/Core10/Enums/StencilOp.hs
--- a/src/Vulkan/Core10/Enums/StencilOp.hs
+++ b/src/Vulkan/Core10/Enums/StencilOp.hs
@@ -14,11 +14,12 @@
 import Vulkan.Internal.Utils (enumReadPrec)
 import Vulkan.Internal.Utils (enumShowsPrec)
 import GHC.Show (showsPrec)
+import Vulkan.Zero (Zero)
 import Foreign.Storable (Storable)
 import Data.Int (Int32)
 import GHC.Read (Read(readPrec))
 import GHC.Show (Show(showsPrec))
-import Vulkan.Zero (Zero)
+
 -- | VkStencilOp - Stencil comparison function
 --
 -- = Description
diff --git a/src/Vulkan/Core10/Enums/StructureType.hs b/src/Vulkan/Core10/Enums/StructureType.hs
--- a/src/Vulkan/Core10/Enums/StructureType.hs
+++ b/src/Vulkan/Core10/Enums/StructureType.hs
@@ -479,11 +479,12 @@
 import Vulkan.Internal.Utils (enumReadPrec)
 import Vulkan.Internal.Utils (enumShowsPrec)
 import GHC.Show (showsPrec)
+import Vulkan.Zero (Zero)
 import Foreign.Storable (Storable)
 import Data.Int (Int32)
 import GHC.Read (Read(readPrec))
 import GHC.Show (Show(showsPrec))
-import Vulkan.Zero (Zero)
+
 -- | VkStructureType - Vulkan structure types (@sType@)
 --
 -- = Description
diff --git a/src/Vulkan/Core10/Enums/SubpassContents.hs b/src/Vulkan/Core10/Enums/SubpassContents.hs
--- a/src/Vulkan/Core10/Enums/SubpassContents.hs
+++ b/src/Vulkan/Core10/Enums/SubpassContents.hs
@@ -8,11 +8,12 @@
 import Vulkan.Internal.Utils (enumReadPrec)
 import Vulkan.Internal.Utils (enumShowsPrec)
 import GHC.Show (showsPrec)
+import Vulkan.Zero (Zero)
 import Foreign.Storable (Storable)
 import Data.Int (Int32)
 import GHC.Read (Read(readPrec))
 import GHC.Show (Show(showsPrec))
-import Vulkan.Zero (Zero)
+
 -- | VkSubpassContents - Specify how commands in the first subpass of a
 -- render pass are provided
 --
diff --git a/src/Vulkan/Core10/Enums/SubpassDescriptionFlagBits.hs b/src/Vulkan/Core10/Enums/SubpassDescriptionFlagBits.hs
--- a/src/Vulkan/Core10/Enums/SubpassDescriptionFlagBits.hs
+++ b/src/Vulkan/Core10/Enums/SubpassDescriptionFlagBits.hs
@@ -13,13 +13,13 @@
 import Vulkan.Internal.Utils (enumShowsPrec)
 import GHC.Show (showString)
 import Numeric (showHex)
+import Vulkan.Zero (Zero)
 import Data.Bits (Bits)
 import Data.Bits (FiniteBits)
 import Foreign.Storable (Storable)
 import GHC.Read (Read(readPrec))
 import GHC.Show (Show(showsPrec))
 import Vulkan.Core10.FundamentalTypes (Flags)
-import Vulkan.Zero (Zero)
 type SubpassDescriptionFlags = SubpassDescriptionFlagBits
 
 -- | VkSubpassDescriptionFlagBits - Bitmask specifying usage of a subpass
diff --git a/src/Vulkan/Core10/Enums/SystemAllocationScope.hs b/src/Vulkan/Core10/Enums/SystemAllocationScope.hs
--- a/src/Vulkan/Core10/Enums/SystemAllocationScope.hs
+++ b/src/Vulkan/Core10/Enums/SystemAllocationScope.hs
@@ -11,11 +11,12 @@
 import Vulkan.Internal.Utils (enumReadPrec)
 import Vulkan.Internal.Utils (enumShowsPrec)
 import GHC.Show (showsPrec)
+import Vulkan.Zero (Zero)
 import Foreign.Storable (Storable)
 import Data.Int (Int32)
 import GHC.Read (Read(readPrec))
 import GHC.Show (Show(showsPrec))
-import Vulkan.Zero (Zero)
+
 -- | VkSystemAllocationScope - Allocation scope
 --
 -- = Description
diff --git a/src/Vulkan/Core10/Enums/VendorId.hs b/src/Vulkan/Core10/Enums/VendorId.hs
--- a/src/Vulkan/Core10/Enums/VendorId.hs
+++ b/src/Vulkan/Core10/Enums/VendorId.hs
@@ -12,11 +12,12 @@
 import Vulkan.Internal.Utils (enumReadPrec)
 import Vulkan.Internal.Utils (enumShowsPrec)
 import GHC.Show (showsPrec)
+import Vulkan.Zero (Zero)
 import Foreign.Storable (Storable)
 import Data.Int (Int32)
 import GHC.Read (Read(readPrec))
 import GHC.Show (Show(showsPrec))
-import Vulkan.Zero (Zero)
+
 -- | VkVendorId - Khronos vendor IDs
 --
 -- = Description
diff --git a/src/Vulkan/Core10/Enums/VertexInputRate.hs b/src/Vulkan/Core10/Enums/VertexInputRate.hs
--- a/src/Vulkan/Core10/Enums/VertexInputRate.hs
+++ b/src/Vulkan/Core10/Enums/VertexInputRate.hs
@@ -8,11 +8,12 @@
 import Vulkan.Internal.Utils (enumReadPrec)
 import Vulkan.Internal.Utils (enumShowsPrec)
 import GHC.Show (showsPrec)
+import Vulkan.Zero (Zero)
 import Foreign.Storable (Storable)
 import Data.Int (Int32)
 import GHC.Read (Read(readPrec))
 import GHC.Show (Show(showsPrec))
-import Vulkan.Zero (Zero)
+
 -- | VkVertexInputRate - Specify rate at which vertex attributes are pulled
 -- from buffers
 --
diff --git a/src/Vulkan/Core10/Event.hs b/src/Vulkan/Core10/Event.hs
--- a/src/Vulkan/Core10/Event.hs
+++ b/src/Vulkan/Core10/Event.hs
@@ -25,6 +25,11 @@
 import Foreign.Ptr (plusPtr)
 import Control.Monad.Trans.Class (lift)
 import Control.Monad.Trans.Cont (evalContT)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
 import Control.Monad.IO.Class (MonadIO)
 import Data.Typeable (Typeable)
 import Foreign.Storable (Storable)
@@ -51,15 +56,10 @@
 import Vulkan.Core10.Handles (Event)
 import Vulkan.Core10.Handles (Event(..))
 import Vulkan.Core10.Enums.EventCreateFlags (EventCreateFlags)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Enums.Result (Result)
 import Vulkan.Core10.Enums.Result (Result(..))
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
 import Vulkan.Exception (VulkanException(..))
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_EVENT_CREATE_INFO))
 import Vulkan.Core10.Enums.Result (Result(SUCCESS))
 import Vulkan.Core10.Handles (Event(..))
diff --git a/src/Vulkan/Core10/Event.hs-boot b/src/Vulkan/Core10/Event.hs-boot
--- a/src/Vulkan/Core10/Event.hs-boot
+++ b/src/Vulkan/Core10/Event.hs-boot
@@ -2,9 +2,10 @@
 -- No documentation found for Chapter "Event"
 module Vulkan.Core10.Event  (EventCreateInfo) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data EventCreateInfo
 
 instance ToCStruct EventCreateInfo
diff --git a/src/Vulkan/Core10/ExtensionDiscovery.hs b/src/Vulkan/Core10/ExtensionDiscovery.hs
--- a/src/Vulkan/Core10/ExtensionDiscovery.hs
+++ b/src/Vulkan/Core10/ExtensionDiscovery.hs
@@ -25,6 +25,11 @@
 import Control.Monad.Trans.Cont (evalContT)
 import Data.Vector (generateM)
 import Foreign.C.Types (CChar(..))
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
 import Control.Monad.IO.Class (MonadIO)
 import Data.Typeable (Typeable)
 import Foreign.C.Types (CChar)
@@ -48,8 +53,6 @@
 import Vulkan.CStruct.Utils (lowerArrayPtr)
 import Vulkan.CStruct.Utils (pokeFixedLengthNullTerminatedByteString)
 import Vulkan.NamedType ((:::))
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Dynamic (InstanceCmds(pVkEnumerateDeviceExtensionProperties))
 import Vulkan.Core10.APIConstants (MAX_EXTENSION_NAME_SIZE)
 import Vulkan.Core10.Handles (PhysicalDevice)
@@ -57,10 +60,7 @@
 import Vulkan.Core10.Handles (PhysicalDevice_T)
 import Vulkan.Core10.Enums.Result (Result)
 import Vulkan.Core10.Enums.Result (Result(..))
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
 import Vulkan.Exception (VulkanException(..))
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.Result (Result(SUCCESS))
 foreign import ccall
 #if !defined(SAFE_FOREIGN_CALLS)
diff --git a/src/Vulkan/Core10/ExtensionDiscovery.hs-boot b/src/Vulkan/Core10/ExtensionDiscovery.hs-boot
--- a/src/Vulkan/Core10/ExtensionDiscovery.hs-boot
+++ b/src/Vulkan/Core10/ExtensionDiscovery.hs-boot
@@ -2,9 +2,10 @@
 -- No documentation found for Chapter "ExtensionDiscovery"
 module Vulkan.Core10.ExtensionDiscovery  (ExtensionProperties) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data ExtensionProperties
 
 instance ToCStruct ExtensionProperties
diff --git a/src/Vulkan/Core10/Fence.hs b/src/Vulkan/Core10/Fence.hs
--- a/src/Vulkan/Core10/Fence.hs
+++ b/src/Vulkan/Core10/Fence.hs
@@ -31,6 +31,11 @@
 import Control.Monad.Trans.Cont (evalContT)
 import qualified Data.Vector (imapM_)
 import qualified Data.Vector (length)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
 import Control.Monad.IO.Class (MonadIO)
 import Data.Type.Equality ((:~:)(Refl))
 import Data.Typeable (Typeable)
@@ -69,8 +74,6 @@
 import Vulkan.Core10.Handles (Fence)
 import Vulkan.Core10.Handles (Fence(..))
 import Vulkan.Core10.Enums.FenceCreateFlagBits (FenceCreateFlags)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.CStruct.Extends (PeekChain)
 import Vulkan.CStruct.Extends (PeekChain(..))
 import Vulkan.CStruct.Extends (PokeChain)
@@ -79,10 +82,7 @@
 import Vulkan.Core10.Enums.Result (Result(..))
 import Vulkan.CStruct.Extends (SomeStruct)
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
 import Vulkan.Exception (VulkanException(..))
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_FENCE_CREATE_INFO))
 import Vulkan.Core10.Enums.Result (Result(SUCCESS))
 import Vulkan.Core10.Handles (Fence(..))
@@ -421,8 +421,7 @@
 -- | waitForFences with selectable safeness
 waitForFencesSafeOrUnsafe :: forall io
                            . (MonadIO io)
-                          => -- No documentation found for TopLevel ""
-                             (FunPtr (Ptr Device_T -> Word32 -> Ptr Fence -> Bool32 -> Word64 -> IO Result) -> Ptr Device_T -> Word32 -> Ptr Fence -> Bool32 -> Word64 -> IO Result)
+                          => (FunPtr (Ptr Device_T -> Word32 -> Ptr Fence -> Bool32 -> Word64 -> IO Result) -> Ptr Device_T -> Word32 -> Ptr Fence -> Bool32 -> Word64 -> IO Result)
                           -> -- | @device@ is the logical device that owns the fences.
                              Device
                           -> -- | @pFences@ is a pointer to an array of @fenceCount@ fence handles.
@@ -603,7 +602,7 @@
 deriving instance Show (Chain es) => Show (FenceCreateInfo es)
 
 instance Extensible FenceCreateInfo where
-  extensibleType = STRUCTURE_TYPE_FENCE_CREATE_INFO
+  extensibleTypeName = "FenceCreateInfo"
   setNext x next = x{next = next}
   getNext FenceCreateInfo{..} = next
   extends :: forall e b proxy. Typeable e => proxy e -> (Extends FenceCreateInfo e => b) -> Maybe b
diff --git a/src/Vulkan/Core10/Fence.hs-boot b/src/Vulkan/Core10/Fence.hs-boot
--- a/src/Vulkan/Core10/Fence.hs-boot
+++ b/src/Vulkan/Core10/Fence.hs-boot
@@ -2,13 +2,13 @@
 -- No documentation found for Chapter "Fence"
 module Vulkan.Core10.Fence  (FenceCreateInfo) where
 
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (ToCStruct)
 import Data.Kind (Type)
 import {-# SOURCE #-} Vulkan.CStruct.Extends (Chain)
 import {-# SOURCE #-} Vulkan.CStruct.Extends (Extendss)
-import Vulkan.CStruct (FromCStruct)
 import {-# SOURCE #-} Vulkan.CStruct.Extends (PeekChain)
 import {-# SOURCE #-} Vulkan.CStruct.Extends (PokeChain)
-import Vulkan.CStruct (ToCStruct)
 type role FenceCreateInfo nominal
 data FenceCreateInfo (es :: [Type])
 
diff --git a/src/Vulkan/Core10/FundamentalTypes.hs b/src/Vulkan/Core10/FundamentalTypes.hs
--- a/src/Vulkan/Core10/FundamentalTypes.hs
+++ b/src/Vulkan/Core10/FundamentalTypes.hs
@@ -25,6 +25,12 @@
 import Foreign.Marshal.Alloc (allocaBytesAligned)
 import Foreign.Ptr (plusPtr)
 import GHC.Show (showsPrec)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero)
+import Vulkan.Zero (Zero(..))
 import Data.Typeable (Typeable)
 import Foreign.Storable (Storable)
 import Foreign.Storable (Storable(peek))
@@ -38,12 +44,6 @@
 import Data.Word (Word32)
 import Data.Word (Word64)
 import Data.Kind (Type)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
-import Vulkan.Zero (Zero)
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.Result (Result(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(..))
 boolToBool32 :: Bool -> Bool32
diff --git a/src/Vulkan/Core10/FundamentalTypes.hs-boot b/src/Vulkan/Core10/FundamentalTypes.hs-boot
--- a/src/Vulkan/Core10/FundamentalTypes.hs-boot
+++ b/src/Vulkan/Core10/FundamentalTypes.hs-boot
@@ -10,10 +10,11 @@
                                        , DeviceSize
                                        ) where
 
-import Data.Word (Word64)
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Word (Word64)
+import Data.Kind (Type)
+
 data Extent2D
 
 instance ToCStruct Extent2D
diff --git a/src/Vulkan/Core10/Handles.hs b/src/Vulkan/Core10/Handles.hs
--- a/src/Vulkan/Core10/Handles.hs
+++ b/src/Vulkan/Core10/Handles.hs
@@ -36,6 +36,8 @@
 import GHC.Show (showParen)
 import Numeric (showHex)
 import Foreign.Ptr (pattern WordPtr)
+import Vulkan.Zero (Zero)
+import Vulkan.Zero (Zero(..))
 import Foreign.Storable (Storable)
 import Foreign.Ptr (Ptr)
 import Data.Word (Word64)
@@ -43,8 +45,6 @@
 import Vulkan.Core10.APIConstants (HasObjectType(..))
 import Vulkan.Dynamic (InstanceCmds)
 import Vulkan.Core10.APIConstants (IsHandle)
-import Vulkan.Zero (Zero)
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.ObjectType (ObjectType(OBJECT_TYPE_BUFFER))
 import Vulkan.Core10.Enums.ObjectType (ObjectType(OBJECT_TYPE_BUFFER_VIEW))
 import Vulkan.Core10.Enums.ObjectType (ObjectType(OBJECT_TYPE_COMMAND_BUFFER))
diff --git a/src/Vulkan/Core10/Image.hs b/src/Vulkan/Core10/Image.hs
--- a/src/Vulkan/Core10/Image.hs
+++ b/src/Vulkan/Core10/Image.hs
@@ -29,6 +29,11 @@
 import Data.Vector (generateM)
 import qualified Data.Vector (imapM_)
 import qualified Data.Vector (length)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
 import Control.Monad.IO.Class (MonadIO)
 import Data.Type.Equality ((:~:)(Refl))
 import Data.Typeable (Typeable)
@@ -66,8 +71,6 @@
 import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_external_memory (ExternalMemoryImageCreateInfo)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_external_memory (ExternalMemoryImageCreateInfoNV)
 import Vulkan.Core10.Enums.Format (Format)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Handles (Image)
 import Vulkan.Core10.Handles (Image(..))
 import Vulkan.Core10.Enums.ImageCreateFlagBits (ImageCreateFlags)
@@ -91,10 +94,7 @@
 import Vulkan.Core10.Enums.SharingMode (SharingMode)
 import Vulkan.CStruct.Extends (SomeStruct)
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
 import Vulkan.Exception (VulkanException(..))
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_IMAGE_CREATE_INFO))
 import Vulkan.Core10.Enums.Result (Result(SUCCESS))
 import Vulkan.Core10.Handles (Image(..))
@@ -1416,7 +1416,7 @@
 deriving instance Show (Chain es) => Show (ImageCreateInfo es)
 
 instance Extensible ImageCreateInfo where
-  extensibleType = STRUCTURE_TYPE_IMAGE_CREATE_INFO
+  extensibleTypeName = "ImageCreateInfo"
   setNext x next = x{next = next}
   getNext ImageCreateInfo{..} = next
   extends :: forall e b proxy. Typeable e => proxy e -> (Extends ImageCreateInfo e => b) -> Maybe b
diff --git a/src/Vulkan/Core10/Image.hs-boot b/src/Vulkan/Core10/Image.hs-boot
--- a/src/Vulkan/Core10/Image.hs-boot
+++ b/src/Vulkan/Core10/Image.hs-boot
@@ -4,13 +4,13 @@
                             , SubresourceLayout
                             ) where
 
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (ToCStruct)
 import Data.Kind (Type)
 import {-# SOURCE #-} Vulkan.CStruct.Extends (Chain)
 import {-# SOURCE #-} Vulkan.CStruct.Extends (Extendss)
-import Vulkan.CStruct (FromCStruct)
 import {-# SOURCE #-} Vulkan.CStruct.Extends (PeekChain)
 import {-# SOURCE #-} Vulkan.CStruct.Extends (PokeChain)
-import Vulkan.CStruct (ToCStruct)
 type role ImageCreateInfo nominal
 data ImageCreateInfo (es :: [Type])
 
diff --git a/src/Vulkan/Core10/ImageView.hs b/src/Vulkan/Core10/ImageView.hs
--- a/src/Vulkan/Core10/ImageView.hs
+++ b/src/Vulkan/Core10/ImageView.hs
@@ -29,6 +29,11 @@
 import Foreign.Ptr (plusPtr)
 import Control.Monad.Trans.Class (lift)
 import Control.Monad.Trans.Cont (evalContT)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
 import Control.Monad.IO.Class (MonadIO)
 import Data.Type.Equality ((:~:)(Refl))
 import Data.Typeable (Typeable)
@@ -58,8 +63,6 @@
 import Vulkan.CStruct.Extends (Extendss)
 import Vulkan.CStruct.Extends (Extensible(..))
 import Vulkan.Core10.Enums.Format (Format)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Handles (Image)
 import Vulkan.Core10.Enums.ImageAspectFlagBits (ImageAspectFlags)
 import Vulkan.Core10.Handles (ImageView)
@@ -77,10 +80,7 @@
 import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion (SamplerYcbcrConversionInfo)
 import Vulkan.CStruct.Extends (SomeStruct)
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
 import Vulkan.Exception (VulkanException(..))
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO))
 import Vulkan.Core10.Enums.Result (Result(SUCCESS))
 import Vulkan.Core10.Enums.ComponentSwizzle (ComponentSwizzle(..))
@@ -515,8 +515,12 @@
 -- particular, image view creation inherits the implicit parameter @usage@
 -- specifying the allowed usages of the image view that, by default, takes
 -- the value of the corresponding @usage@ parameter specified in
--- 'Vulkan.Core10.Image.ImageCreateInfo' at image creation time. If the
--- image was has a depth-stencil format and was created with a
+-- 'Vulkan.Core10.Image.ImageCreateInfo' at image creation time. The
+-- implicit @usage@ /can/ be overriden by adding a
+-- 'Vulkan.Core11.Promoted_From_VK_KHR_maintenance2.ImageViewUsageCreateInfo'
+-- structure to the @pNext@ chain, but the view usage /must/ be a subset of
+-- the image usage. If the image was has a depth-stencil format and was
+-- created with a
 -- 'Vulkan.Core12.Promoted_From_VK_EXT_separate_stencil_usage.ImageStencilUsageCreateInfo'
 -- structure included in the @pNext@ chain of
 -- 'Vulkan.Core10.Image.ImageCreateInfo', the usage is calculated based on
@@ -536,9 +540,6 @@
 --     is equal to the intersection of
 --     'Vulkan.Core10.Image.ImageCreateInfo'::@usage@ and
 --     'Vulkan.Core12.Promoted_From_VK_EXT_separate_stencil_usage.ImageStencilUsageCreateInfo'::@stencilUsage@.
---     The implicit @usage@ /can/ be overriden by adding a
---     'Vulkan.Core11.Promoted_From_VK_KHR_maintenance2.ImageViewUsageCreateInfo'
---     structure to the @pNext@ chain.
 --
 -- If @image@ was created with the
 -- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_MUTABLE_FORMAT_BIT'
@@ -1213,7 +1214,7 @@
 deriving instance Show (Chain es) => Show (ImageViewCreateInfo es)
 
 instance Extensible ImageViewCreateInfo where
-  extensibleType = STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO
+  extensibleTypeName = "ImageViewCreateInfo"
   setNext x next = x{next = next}
   getNext ImageViewCreateInfo{..} = next
   extends :: forall e b proxy. Typeable e => proxy e -> (Extends ImageViewCreateInfo e => b) -> Maybe b
diff --git a/src/Vulkan/Core10/ImageView.hs-boot b/src/Vulkan/Core10/ImageView.hs-boot
--- a/src/Vulkan/Core10/ImageView.hs-boot
+++ b/src/Vulkan/Core10/ImageView.hs-boot
@@ -5,13 +5,13 @@
                                 , ImageViewCreateInfo
                                 ) where
 
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (ToCStruct)
 import Data.Kind (Type)
 import {-# SOURCE #-} Vulkan.CStruct.Extends (Chain)
 import {-# SOURCE #-} Vulkan.CStruct.Extends (Extendss)
-import Vulkan.CStruct (FromCStruct)
 import {-# SOURCE #-} Vulkan.CStruct.Extends (PeekChain)
 import {-# SOURCE #-} Vulkan.CStruct.Extends (PokeChain)
-import Vulkan.CStruct (ToCStruct)
 data ComponentMapping
 
 instance ToCStruct ComponentMapping
diff --git a/src/Vulkan/Core10/LayerDiscovery.hs b/src/Vulkan/Core10/LayerDiscovery.hs
--- a/src/Vulkan/Core10/LayerDiscovery.hs
+++ b/src/Vulkan/Core10/LayerDiscovery.hs
@@ -23,6 +23,11 @@
 import Control.Monad.Trans.Class (lift)
 import Control.Monad.Trans.Cont (evalContT)
 import Data.Vector (generateM)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
 import Control.Monad.IO.Class (MonadIO)
 import Data.Typeable (Typeable)
 import Foreign.C.Types (CChar)
@@ -46,8 +51,6 @@
 import Vulkan.CStruct.Utils (lowerArrayPtr)
 import Vulkan.CStruct.Utils (pokeFixedLengthNullTerminatedByteString)
 import Vulkan.NamedType ((:::))
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Dynamic (InstanceCmds(pVkEnumerateDeviceLayerProperties))
 import Vulkan.Core10.APIConstants (MAX_DESCRIPTION_SIZE)
 import Vulkan.Core10.APIConstants (MAX_EXTENSION_NAME_SIZE)
@@ -56,10 +59,7 @@
 import Vulkan.Core10.Handles (PhysicalDevice_T)
 import Vulkan.Core10.Enums.Result (Result)
 import Vulkan.Core10.Enums.Result (Result(..))
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
 import Vulkan.Exception (VulkanException(..))
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.Result (Result(SUCCESS))
 foreign import ccall
 #if !defined(SAFE_FOREIGN_CALLS)
diff --git a/src/Vulkan/Core10/LayerDiscovery.hs-boot b/src/Vulkan/Core10/LayerDiscovery.hs-boot
--- a/src/Vulkan/Core10/LayerDiscovery.hs-boot
+++ b/src/Vulkan/Core10/LayerDiscovery.hs-boot
@@ -2,9 +2,10 @@
 -- No documentation found for Chapter "LayerDiscovery"
 module Vulkan.Core10.LayerDiscovery  (LayerProperties) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data LayerProperties
 
 instance ToCStruct LayerProperties
diff --git a/src/Vulkan/Core10/Memory.hs b/src/Vulkan/Core10/Memory.hs
--- a/src/Vulkan/Core10/Memory.hs
+++ b/src/Vulkan/Core10/Memory.hs
@@ -32,6 +32,11 @@
 import Control.Monad.Trans.Cont (evalContT)
 import qualified Data.Vector (imapM_)
 import qualified Data.Vector (length)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
 import Control.Monad.IO.Class (MonadIO)
 import Data.Type.Equality ((:~:)(Refl))
 import Data.Typeable (Typeable)
@@ -73,8 +78,6 @@
 import Vulkan.CStruct.Extends (Extends)
 import Vulkan.CStruct.Extends (Extendss)
 import Vulkan.CStruct.Extends (Extensible(..))
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import {-# SOURCE #-} Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer (ImportAndroidHardwareBufferInfoANDROID)
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_external_memory_fd (ImportMemoryFdInfoKHR)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_external_memory_host (ImportMemoryHostPointerInfoEXT)
@@ -94,10 +97,7 @@
 import Vulkan.Core10.Enums.Result (Result(..))
 import Vulkan.CStruct.Extends (SomeStruct)
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
 import Vulkan.Exception (VulkanException(..))
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_MAPPED_MEMORY_RANGE))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO))
 import Vulkan.Core10.Enums.Result (Result(SUCCESS))
@@ -1158,7 +1158,7 @@
 deriving instance Show (Chain es) => Show (MemoryAllocateInfo es)
 
 instance Extensible MemoryAllocateInfo where
-  extensibleType = STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO
+  extensibleTypeName = "MemoryAllocateInfo"
   setNext x next = x{next = next}
   getNext MemoryAllocateInfo{..} = next
   extends :: forall e b proxy. Typeable e => proxy e -> (Extends MemoryAllocateInfo e => b) -> Maybe b
diff --git a/src/Vulkan/Core10/Memory.hs-boot b/src/Vulkan/Core10/Memory.hs-boot
--- a/src/Vulkan/Core10/Memory.hs-boot
+++ b/src/Vulkan/Core10/Memory.hs-boot
@@ -4,13 +4,13 @@
                              , MemoryAllocateInfo
                              ) where
 
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (ToCStruct)
 import Data.Kind (Type)
 import {-# SOURCE #-} Vulkan.CStruct.Extends (Chain)
 import {-# SOURCE #-} Vulkan.CStruct.Extends (Extendss)
-import Vulkan.CStruct (FromCStruct)
 import {-# SOURCE #-} Vulkan.CStruct.Extends (PeekChain)
 import {-# SOURCE #-} Vulkan.CStruct.Extends (PokeChain)
-import Vulkan.CStruct (ToCStruct)
 data MappedMemoryRange
 
 instance ToCStruct MappedMemoryRange
diff --git a/src/Vulkan/Core10/MemoryManagement.hs b/src/Vulkan/Core10/MemoryManagement.hs
--- a/src/Vulkan/Core10/MemoryManagement.hs
+++ b/src/Vulkan/Core10/MemoryManagement.hs
@@ -18,6 +18,11 @@
 import Foreign.Ptr (plusPtr)
 import Control.Monad.Trans.Class (lift)
 import Control.Monad.Trans.Cont (evalContT)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
 import Control.Monad.IO.Class (MonadIO)
 import Data.Typeable (Typeable)
 import Foreign.Storable (Storable)
@@ -45,16 +50,11 @@
 import Vulkan.Core10.Handles (DeviceMemory(..))
 import Vulkan.Core10.FundamentalTypes (DeviceSize)
 import Vulkan.Core10.Handles (Device_T)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Handles (Image)
 import Vulkan.Core10.Handles (Image(..))
 import Vulkan.Core10.Enums.Result (Result)
 import Vulkan.Core10.Enums.Result (Result(..))
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
 import Vulkan.Exception (VulkanException(..))
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.Result (Result(SUCCESS))
 import Vulkan.Core10.Handles (DeviceMemory(..))
 foreign import ccall
diff --git a/src/Vulkan/Core10/MemoryManagement.hs-boot b/src/Vulkan/Core10/MemoryManagement.hs-boot
--- a/src/Vulkan/Core10/MemoryManagement.hs-boot
+++ b/src/Vulkan/Core10/MemoryManagement.hs-boot
@@ -2,9 +2,10 @@
 -- No documentation found for Chapter "MemoryManagement"
 module Vulkan.Core10.MemoryManagement  (MemoryRequirements) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data MemoryRequirements
 
 instance ToCStruct MemoryRequirements
diff --git a/src/Vulkan/Core10/OtherTypes.hs b/src/Vulkan/Core10/OtherTypes.hs
--- a/src/Vulkan/Core10/OtherTypes.hs
+++ b/src/Vulkan/Core10/OtherTypes.hs
@@ -19,6 +19,11 @@
 import Foreign.Ptr (plusPtr)
 import Control.Monad.Trans.Class (lift)
 import Control.Monad.Trans.Cont (evalContT)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
 import Data.Type.Equality ((:~:)(Refl))
 import Data.Typeable (Typeable)
 import Foreign.Storable (Storable)
@@ -38,8 +43,6 @@
 import Vulkan.CStruct.Extends (Extends)
 import Vulkan.CStruct.Extends (Extendss)
 import Vulkan.CStruct.Extends (Extensible(..))
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Handles (Image)
 import Vulkan.Core10.Enums.ImageLayout (ImageLayout)
 import Vulkan.Core10.ImageView (ImageSubresourceRange)
@@ -49,9 +52,6 @@
 import Vulkan.CStruct.Extends (PokeChain(..))
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_sample_locations (SampleLocationsInfoEXT)
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_MEMORY_BARRIER))
@@ -719,7 +719,7 @@
 deriving instance Show (Chain es) => Show (ImageMemoryBarrier es)
 
 instance Extensible ImageMemoryBarrier where
-  extensibleType = STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER
+  extensibleTypeName = "ImageMemoryBarrier"
   setNext x next = x{next = next}
   getNext ImageMemoryBarrier{..} = next
   extends :: forall e b proxy. Typeable e => proxy e -> (Extends ImageMemoryBarrier e => b) -> Maybe b
diff --git a/src/Vulkan/Core10/OtherTypes.hs-boot b/src/Vulkan/Core10/OtherTypes.hs-boot
--- a/src/Vulkan/Core10/OtherTypes.hs-boot
+++ b/src/Vulkan/Core10/OtherTypes.hs-boot
@@ -8,13 +8,13 @@
                                  , MemoryBarrier
                                  ) where
 
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (ToCStruct)
 import Data.Kind (Type)
 import {-# SOURCE #-} Vulkan.CStruct.Extends (Chain)
 import {-# SOURCE #-} Vulkan.CStruct.Extends (Extendss)
-import Vulkan.CStruct (FromCStruct)
 import {-# SOURCE #-} Vulkan.CStruct.Extends (PeekChain)
 import {-# SOURCE #-} Vulkan.CStruct.Extends (PokeChain)
-import Vulkan.CStruct (ToCStruct)
 data BufferMemoryBarrier
 
 instance ToCStruct BufferMemoryBarrier
diff --git a/src/Vulkan/Core10/Pass.hs b/src/Vulkan/Core10/Pass.hs
--- a/src/Vulkan/Core10/Pass.hs
+++ b/src/Vulkan/Core10/Pass.hs
@@ -53,6 +53,11 @@
 import qualified Data.Vector (imapM_)
 import qualified Data.Vector (length)
 import qualified Data.Vector (null)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
 import Control.Monad.IO.Class (MonadIO)
 import Data.Type.Equality ((:~:)(Refl))
 import Data.Typeable (Typeable)
@@ -96,8 +101,6 @@
 import Vulkan.Core10.Handles (Framebuffer(..))
 import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer (FramebufferAttachmentsCreateInfo)
 import Vulkan.Core10.Enums.FramebufferCreateFlagBits (FramebufferCreateFlags)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Enums.ImageLayout (ImageLayout)
 import Vulkan.Core10.Handles (ImageView)
 import Vulkan.CStruct.Extends (PeekChain)
@@ -118,10 +121,7 @@
 import Vulkan.CStruct.Extends (SomeStruct)
 import Vulkan.Core10.Enums.StructureType (StructureType)
 import Vulkan.Core10.Enums.SubpassDescriptionFlagBits (SubpassDescriptionFlags)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
 import Vulkan.Exception (VulkanException(..))
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO))
 import Vulkan.Core10.Enums.Result (Result(SUCCESS))
@@ -1941,7 +1941,7 @@
 deriving instance Show (Chain es) => Show (RenderPassCreateInfo es)
 
 instance Extensible RenderPassCreateInfo where
-  extensibleType = STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO
+  extensibleTypeName = "RenderPassCreateInfo"
   setNext x next = x{next = next}
   getNext RenderPassCreateInfo{..} = next
   extends :: forall e b proxy. Typeable e => proxy e -> (Extends RenderPassCreateInfo e => b) -> Maybe b
@@ -2165,8 +2165,8 @@
 --     each element of @pAttachments@ that is used as an input, color,
 --     resolve, or depth\/stencil attachment by @renderPass@ /must/ have
 --     been created with a
---     VkImageViewCreateInfo::@subresourceRange.pname@:layerCount greater
---     than or equal to @layers@
+--     VkImageViewCreateInfo::@subresourceRange.layerCount@ greater than or
+--     equal to @layers@
 --
 -- -   #VUID-VkFramebufferCreateInfo-renderPass-04536# If @renderPass@ was
 --     specified with non-zero view masks, each element of @pAttachments@
@@ -2541,7 +2541,7 @@
 deriving instance Show (Chain es) => Show (FramebufferCreateInfo es)
 
 instance Extensible FramebufferCreateInfo where
-  extensibleType = STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO
+  extensibleTypeName = "FramebufferCreateInfo"
   setNext x next = x{next = next}
   getNext FramebufferCreateInfo{..} = next
   extends :: forall e b proxy. Typeable e => proxy e -> (Extends FramebufferCreateInfo e => b) -> Maybe b
diff --git a/src/Vulkan/Core10/Pass.hs-boot b/src/Vulkan/Core10/Pass.hs-boot
--- a/src/Vulkan/Core10/Pass.hs-boot
+++ b/src/Vulkan/Core10/Pass.hs-boot
@@ -8,13 +8,13 @@
                            , SubpassDescription
                            ) where
 
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (ToCStruct)
 import Data.Kind (Type)
 import {-# SOURCE #-} Vulkan.CStruct.Extends (Chain)
 import {-# SOURCE #-} Vulkan.CStruct.Extends (Extendss)
-import Vulkan.CStruct (FromCStruct)
 import {-# SOURCE #-} Vulkan.CStruct.Extends (PeekChain)
 import {-# SOURCE #-} Vulkan.CStruct.Extends (PokeChain)
-import Vulkan.CStruct (ToCStruct)
 data AttachmentDescription
 
 instance ToCStruct AttachmentDescription
diff --git a/src/Vulkan/Core10/Pipeline.hs b/src/Vulkan/Core10/Pipeline.hs
--- a/src/Vulkan/Core10/Pipeline.hs
+++ b/src/Vulkan/Core10/Pipeline.hs
@@ -78,19 +78,27 @@
 import Foreign.Ptr (plusPtr)
 import Data.ByteString (packCString)
 import Data.ByteString (useAsCString)
+import Data.Coerce (coerce)
 import Control.Monad.Trans.Class (lift)
 import Control.Monad.Trans.Cont (evalContT)
 import Data.Vector (generateM)
 import qualified Data.Vector (imapM_)
 import qualified Data.Vector (length)
 import qualified Data.Vector (null)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
 import Control.Monad.IO.Class (MonadIO)
 import Data.Type.Equality ((:~:)(Refl))
 import Data.Typeable (Typeable)
 import Foreign.C.Types (CChar)
 import Foreign.C.Types (CFloat)
+import Foreign.C.Types (CFloat(..))
 import Foreign.C.Types (CFloat(CFloat))
 import Foreign.C.Types (CSize)
+import Foreign.C.Types (CSize(..))
 import Foreign.C.Types (CSize(CSize))
 import Foreign.Storable (Storable)
 import Foreign.Storable (Storable(peek))
@@ -136,8 +144,6 @@
 import Vulkan.CStruct.Extends (Extendss)
 import Vulkan.CStruct.Extends (Extensible(..))
 import Vulkan.Core10.Enums.Format (Format)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Enums.FrontFace (FrontFace)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_device_generated_commands (GraphicsPipelineShaderGroupsCreateInfoNV)
 import Vulkan.Core10.Enums.LogicOp (LogicOp)
@@ -200,11 +206,8 @@
 import Vulkan.CStruct.Extends (SomeStruct(..))
 import Vulkan.Core10.Enums.StencilOp (StencilOp)
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
 import Vulkan.Core10.Enums.VertexInputRate (VertexInputRate)
 import Vulkan.Exception (VulkanException(..))
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO))
@@ -738,7 +741,7 @@
     minDepth <- peek @CFloat ((p `plusPtr` 16 :: Ptr CFloat))
     maxDepth <- peek @CFloat ((p `plusPtr` 20 :: Ptr CFloat))
     pure $ Viewport
-             ((\(CFloat a) -> a) x) ((\(CFloat a) -> a) y) ((\(CFloat a) -> a) width) ((\(CFloat a) -> a) height) ((\(CFloat a) -> a) minDepth) ((\(CFloat a) -> a) maxDepth)
+             (coerce @CFloat @Float x) (coerce @CFloat @Float y) (coerce @CFloat @Float width) (coerce @CFloat @Float height) (coerce @CFloat @Float minDepth) (coerce @CFloat @Float maxDepth)
 
 instance Storable Viewport where
   sizeOf ~_ = 24
@@ -812,7 +815,7 @@
     offset <- peek @Word32 ((p `plusPtr` 4 :: Ptr Word32))
     size <- peek @CSize ((p `plusPtr` 8 :: Ptr CSize))
     pure $ SpecializationMapEntry
-             constantID offset ((\(CSize a) -> a) size)
+             constantID offset (coerce @CSize @Word64 size)
 
 instance Storable SpecializationMapEntry where
   sizeOf ~_ = 16
@@ -897,7 +900,7 @@
     dataSize <- peek @CSize ((p `plusPtr` 16 :: Ptr CSize))
     pData <- peek @(Ptr ()) ((p `plusPtr` 24 :: Ptr (Ptr ())))
     pure $ SpecializationInfo
-             pMapEntries' ((\(CSize a) -> a) dataSize) pData
+             pMapEntries' (coerce @CSize @Word64 dataSize) pData
 
 instance Zero SpecializationInfo where
   zero = SpecializationInfo
@@ -1183,7 +1186,7 @@
 deriving instance Show (Chain es) => Show (PipelineShaderStageCreateInfo es)
 
 instance Extensible PipelineShaderStageCreateInfo where
-  extensibleType = STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO
+  extensibleTypeName = "PipelineShaderStageCreateInfo"
   setNext x next = x{next = next}
   getNext PipelineShaderStageCreateInfo{..} = next
   extends :: forall e b proxy. Typeable e => proxy e -> (Extends PipelineShaderStageCreateInfo e => b) -> Maybe b
@@ -1407,7 +1410,7 @@
 deriving instance Show (Chain es) => Show (ComputePipelineCreateInfo es)
 
 instance Extensible ComputePipelineCreateInfo where
-  extensibleType = STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO
+  extensibleTypeName = "ComputePipelineCreateInfo"
   setNext x next = x{next = next}
   getNext ComputePipelineCreateInfo{..} = next
   extends :: forall e b proxy. Typeable e => proxy e -> (Extends ComputePipelineCreateInfo e => b) -> Maybe b
@@ -1444,7 +1447,7 @@
     pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ())))
     next <- peekChain (castPtr pNext)
     flags <- peek @PipelineCreateFlags ((p `plusPtr` 16 :: Ptr PipelineCreateFlags))
-    stage <- peekSomeCStruct (forgetExtensions ((p `plusPtr` 24 :: Ptr (PipelineShaderStageCreateInfo a))))
+    stage <- peekSomeCStruct (forgetExtensions ((p `plusPtr` 24 :: Ptr (PipelineShaderStageCreateInfo _))))
     layout <- peek @PipelineLayout ((p `plusPtr` 72 :: Ptr PipelineLayout))
     basePipelineHandle <- peek @Pipeline ((p `plusPtr` 80 :: Ptr Pipeline))
     basePipelineIndex <- peek @Int32 ((p `plusPtr` 88 :: Ptr Int32))
@@ -1723,7 +1726,7 @@
 deriving instance Show (Chain es) => Show (PipelineVertexInputStateCreateInfo es)
 
 instance Extensible PipelineVertexInputStateCreateInfo where
-  extensibleType = STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO
+  extensibleTypeName = "PipelineVertexInputStateCreateInfo"
   setNext x next = x{next = next}
   getNext PipelineVertexInputStateCreateInfo{..} = next
   extends :: forall e b proxy. Typeable e => proxy e -> (Extends PipelineVertexInputStateCreateInfo e => b) -> Maybe b
@@ -1964,7 +1967,7 @@
 deriving instance Show (Chain es) => Show (PipelineTessellationStateCreateInfo es)
 
 instance Extensible PipelineTessellationStateCreateInfo where
-  extensibleType = STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO
+  extensibleTypeName = "PipelineTessellationStateCreateInfo"
   setNext x next = x{next = next}
   getNext PipelineTessellationStateCreateInfo{..} = next
   extends :: forall e b proxy. Typeable e => proxy e -> (Extends PipelineTessellationStateCreateInfo e => b) -> Maybe b
@@ -2126,7 +2129,7 @@
 deriving instance Show (Chain es) => Show (PipelineViewportStateCreateInfo es)
 
 instance Extensible PipelineViewportStateCreateInfo where
-  extensibleType = STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO
+  extensibleTypeName = "PipelineViewportStateCreateInfo"
   setNext x next = x{next = next}
   getNext PipelineViewportStateCreateInfo{..} = next
   extends :: forall e b proxy. Typeable e => proxy e -> (Extends PipelineViewportStateCreateInfo e => b) -> Maybe b
@@ -2341,7 +2344,7 @@
 deriving instance Show (Chain es) => Show (PipelineRasterizationStateCreateInfo es)
 
 instance Extensible PipelineRasterizationStateCreateInfo where
-  extensibleType = STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO
+  extensibleTypeName = "PipelineRasterizationStateCreateInfo"
   setNext x next = x{next = next}
   getNext PipelineRasterizationStateCreateInfo{..} = next
   extends :: forall e b proxy. Typeable e => proxy e -> (Extends PipelineRasterizationStateCreateInfo e => b) -> Maybe b
@@ -2404,7 +2407,7 @@
     depthBiasSlopeFactor <- peek @CFloat ((p `plusPtr` 52 :: Ptr CFloat))
     lineWidth <- peek @CFloat ((p `plusPtr` 56 :: Ptr CFloat))
     pure $ PipelineRasterizationStateCreateInfo
-             next flags (bool32ToBool depthClampEnable) (bool32ToBool rasterizerDiscardEnable) polygonMode cullMode frontFace (bool32ToBool depthBiasEnable) ((\(CFloat a) -> a) depthBiasConstantFactor) ((\(CFloat a) -> a) depthBiasClamp) ((\(CFloat a) -> a) depthBiasSlopeFactor) ((\(CFloat a) -> a) lineWidth)
+             next flags (bool32ToBool depthClampEnable) (bool32ToBool rasterizerDiscardEnable) polygonMode cullMode frontFace (bool32ToBool depthBiasEnable) (coerce @CFloat @Float depthBiasConstantFactor) (coerce @CFloat @Float depthBiasClamp) (coerce @CFloat @Float depthBiasSlopeFactor) (coerce @CFloat @Float lineWidth)
 
 instance es ~ '[] => Zero (PipelineRasterizationStateCreateInfo es) where
   zero = PipelineRasterizationStateCreateInfo
@@ -2537,7 +2540,7 @@
 deriving instance Show (Chain es) => Show (PipelineMultisampleStateCreateInfo es)
 
 instance Extensible PipelineMultisampleStateCreateInfo where
-  extensibleType = STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO
+  extensibleTypeName = "PipelineMultisampleStateCreateInfo"
   setNext x next = x{next = next}
   getNext PipelineMultisampleStateCreateInfo{..} = next
   extends :: forall e b proxy. Typeable e => proxy e -> (Extends PipelineMultisampleStateCreateInfo e => b) -> Maybe b
@@ -2602,7 +2605,7 @@
     alphaToCoverageEnable <- peek @Bool32 ((p `plusPtr` 40 :: Ptr Bool32))
     alphaToOneEnable <- peek @Bool32 ((p `plusPtr` 44 :: Ptr Bool32))
     pure $ PipelineMultisampleStateCreateInfo
-             next flags rasterizationSamples (bool32ToBool sampleShadingEnable) ((\(CFloat a) -> a) minSampleShading) pSampleMask' (bool32ToBool alphaToCoverageEnable) (bool32ToBool alphaToOneEnable)
+             next flags rasterizationSamples (bool32ToBool sampleShadingEnable) (coerce @CFloat @Float minSampleShading) pSampleMask' (bool32ToBool alphaToCoverageEnable) (bool32ToBool alphaToOneEnable)
 
 instance es ~ '[] => Zero (PipelineMultisampleStateCreateInfo es) where
   zero = PipelineMultisampleStateCreateInfo
@@ -2955,7 +2958,7 @@
 deriving instance Show (Chain es) => Show (PipelineColorBlendStateCreateInfo es)
 
 instance Extensible PipelineColorBlendStateCreateInfo where
-  extensibleType = STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO
+  extensibleTypeName = "PipelineColorBlendStateCreateInfo"
   setNext x next = x{next = next}
   getNext PipelineColorBlendStateCreateInfo{..} = next
   extends :: forall e b proxy. Typeable e => proxy e -> (Extends PipelineColorBlendStateCreateInfo e => b) -> Maybe b
@@ -3020,7 +3023,7 @@
     blendConstants2 <- peek @CFloat ((pblendConstants `advancePtrBytes` 8 :: Ptr CFloat))
     blendConstants3 <- peek @CFloat ((pblendConstants `advancePtrBytes` 12 :: Ptr CFloat))
     pure $ PipelineColorBlendStateCreateInfo
-             next flags (bool32ToBool logicOpEnable) logicOp pAttachments' ((((\(CFloat a) -> a) blendConstants0), ((\(CFloat a) -> a) blendConstants1), ((\(CFloat a) -> a) blendConstants2), ((\(CFloat a) -> a) blendConstants3)))
+             next flags (bool32ToBool logicOpEnable) logicOp pAttachments' (((coerce @CFloat @Float blendConstants0), (coerce @CFloat @Float blendConstants1), (coerce @CFloat @Float blendConstants2), (coerce @CFloat @Float blendConstants3)))
 
 instance es ~ '[] => Zero (PipelineColorBlendStateCreateInfo es) where
   zero = PipelineColorBlendStateCreateInfo
@@ -3356,7 +3359,7 @@
     minDepthBounds <- peek @CFloat ((p `plusPtr` 96 :: Ptr CFloat))
     maxDepthBounds <- peek @CFloat ((p `plusPtr` 100 :: Ptr CFloat))
     pure $ PipelineDepthStencilStateCreateInfo
-             flags (bool32ToBool depthTestEnable) (bool32ToBool depthWriteEnable) depthCompareOp (bool32ToBool depthBoundsTestEnable) (bool32ToBool stencilTestEnable) front back ((\(CFloat a) -> a) minDepthBounds) ((\(CFloat a) -> a) maxDepthBounds)
+             flags (bool32ToBool depthTestEnable) (bool32ToBool depthWriteEnable) depthCompareOp (bool32ToBool depthBoundsTestEnable) (bool32ToBool stencilTestEnable) front back (coerce @CFloat @Float minDepthBounds) (coerce @CFloat @Float maxDepthBounds)
 
 instance Storable PipelineDepthStencilStateCreateInfo where
   sizeOf ~_ = 104
@@ -3828,17 +3831,17 @@
 --     'Vulkan.Extensions.VK_EXT_transform_feedback.PipelineRasterizationStateStreamCreateInfoEXT'::@rasterizationStream@
 --     value other than zero is specified, all variables in the output
 --     interface of the entry point being compiled decorated with
---     @Position@, @PointSize@, @ClipDistance@, or @CullDistance@ /must/
---     all be decorated with identical @Stream@ values that match the
+--     @Position@, @PointSize@, @ClipDistance@, or @CullDistance@ /must/ be
+--     decorated with identical @Stream@ values that match the
 --     @rasterizationStream@
 --
 -- -   #VUID-VkGraphicsPipelineCreateInfo-rasterizationStream-02320# If
 --     'Vulkan.Extensions.VK_EXT_transform_feedback.PipelineRasterizationStateStreamCreateInfoEXT'::@rasterizationStream@
 --     is zero, or not specified, all variables in the output interface of
 --     the entry point being compiled decorated with @Position@,
---     @PointSize@, @ClipDistance@, or @CullDistance@ /must/ all be
---     decorated with a @Stream@ value of zero, or /must/ not specify the
---     @Stream@ decoration
+--     @PointSize@, @ClipDistance@, or @CullDistance@ /must/ be decorated
+--     with a @Stream@ value of zero, or /must/ not specify the @Stream@
+--     decoration
 --
 -- -   #VUID-VkGraphicsPipelineCreateInfo-geometryStreams-02321# If the
 --     last vertex processing stage is a geometry shader, and that geometry
@@ -4277,7 +4280,7 @@
 deriving instance Show (Chain es) => Show (GraphicsPipelineCreateInfo es)
 
 instance Extensible GraphicsPipelineCreateInfo where
-  extensibleType = STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO
+  extensibleTypeName = "GraphicsPipelineCreateInfo"
   setNext x next = x{next = next}
   getNext GraphicsPipelineCreateInfo{..} = next
   extends :: forall e b proxy. Typeable e => proxy e -> (Extends GraphicsPipelineCreateInfo e => b) -> Maybe b
@@ -4365,22 +4368,22 @@
     next <- peekChain (castPtr pNext)
     flags <- peek @PipelineCreateFlags ((p `plusPtr` 16 :: Ptr PipelineCreateFlags))
     stageCount <- peek @Word32 ((p `plusPtr` 20 :: Ptr Word32))
-    pStages <- peek @(Ptr (PipelineShaderStageCreateInfo _)) ((p `plusPtr` 24 :: Ptr (Ptr (PipelineShaderStageCreateInfo a))))
+    pStages <- peek @(Ptr (PipelineShaderStageCreateInfo _)) ((p `plusPtr` 24 :: Ptr (Ptr (PipelineShaderStageCreateInfo _))))
     pStages' <- generateM (fromIntegral stageCount) (\i -> peekSomeCStruct (forgetExtensions ((pStages `advancePtrBytes` (48 * (i)) :: Ptr (PipelineShaderStageCreateInfo _)))))
-    pVertexInputState <- peek @(Ptr (PipelineVertexInputStateCreateInfo _)) ((p `plusPtr` 32 :: Ptr (Ptr (PipelineVertexInputStateCreateInfo a))))
+    pVertexInputState <- peek @(Ptr (PipelineVertexInputStateCreateInfo _)) ((p `plusPtr` 32 :: Ptr (Ptr (PipelineVertexInputStateCreateInfo _))))
     pVertexInputState' <- maybePeek (\j -> peekSomeCStruct (forgetExtensions (j))) pVertexInputState
     pInputAssemblyState <- peek @(Ptr PipelineInputAssemblyStateCreateInfo) ((p `plusPtr` 40 :: Ptr (Ptr PipelineInputAssemblyStateCreateInfo)))
     pInputAssemblyState' <- maybePeek (\j -> peekCStruct @PipelineInputAssemblyStateCreateInfo (j)) pInputAssemblyState
-    pTessellationState <- peek @(Ptr (PipelineTessellationStateCreateInfo _)) ((p `plusPtr` 48 :: Ptr (Ptr (PipelineTessellationStateCreateInfo a))))
+    pTessellationState <- peek @(Ptr (PipelineTessellationStateCreateInfo _)) ((p `plusPtr` 48 :: Ptr (Ptr (PipelineTessellationStateCreateInfo _))))
     pTessellationState' <- maybePeek (\j -> peekSomeCStruct (forgetExtensions (j))) pTessellationState
-    pViewportState <- peek @(Ptr (PipelineViewportStateCreateInfo _)) ((p `plusPtr` 56 :: Ptr (Ptr (PipelineViewportStateCreateInfo a))))
+    pViewportState <- peek @(Ptr (PipelineViewportStateCreateInfo _)) ((p `plusPtr` 56 :: Ptr (Ptr (PipelineViewportStateCreateInfo _))))
     pViewportState' <- maybePeek (\j -> peekSomeCStruct (forgetExtensions (j))) pViewportState
-    pRasterizationState <- peekSomeCStruct . forgetExtensions =<< peek ((p `plusPtr` 64 :: Ptr (Ptr (PipelineRasterizationStateCreateInfo a))))
-    pMultisampleState <- peek @(Ptr (PipelineMultisampleStateCreateInfo _)) ((p `plusPtr` 72 :: Ptr (Ptr (PipelineMultisampleStateCreateInfo a))))
+    pRasterizationState <- peekSomeCStruct . forgetExtensions =<< peek ((p `plusPtr` 64 :: Ptr (Ptr (PipelineRasterizationStateCreateInfo _))))
+    pMultisampleState <- peek @(Ptr (PipelineMultisampleStateCreateInfo _)) ((p `plusPtr` 72 :: Ptr (Ptr (PipelineMultisampleStateCreateInfo _))))
     pMultisampleState' <- maybePeek (\j -> peekSomeCStruct (forgetExtensions (j))) pMultisampleState
     pDepthStencilState <- peek @(Ptr PipelineDepthStencilStateCreateInfo) ((p `plusPtr` 80 :: Ptr (Ptr PipelineDepthStencilStateCreateInfo)))
     pDepthStencilState' <- maybePeek (\j -> peekCStruct @PipelineDepthStencilStateCreateInfo (j)) pDepthStencilState
-    pColorBlendState <- peek @(Ptr (PipelineColorBlendStateCreateInfo _)) ((p `plusPtr` 88 :: Ptr (Ptr (PipelineColorBlendStateCreateInfo a))))
+    pColorBlendState <- peek @(Ptr (PipelineColorBlendStateCreateInfo _)) ((p `plusPtr` 88 :: Ptr (Ptr (PipelineColorBlendStateCreateInfo _))))
     pColorBlendState' <- maybePeek (\j -> peekSomeCStruct (forgetExtensions (j))) pColorBlendState
     pDynamicState <- peek @(Ptr PipelineDynamicStateCreateInfo) ((p `plusPtr` 96 :: Ptr (Ptr PipelineDynamicStateCreateInfo)))
     pDynamicState' <- maybePeek (\j -> peekCStruct @PipelineDynamicStateCreateInfo (j)) pDynamicState
diff --git a/src/Vulkan/Core10/Pipeline.hs-boot b/src/Vulkan/Core10/Pipeline.hs-boot
--- a/src/Vulkan/Core10/Pipeline.hs-boot
+++ b/src/Vulkan/Core10/Pipeline.hs-boot
@@ -21,13 +21,13 @@
                                , Viewport
                                ) where
 
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (ToCStruct)
 import Data.Kind (Type)
 import {-# SOURCE #-} Vulkan.CStruct.Extends (Chain)
 import {-# SOURCE #-} Vulkan.CStruct.Extends (Extendss)
-import Vulkan.CStruct (FromCStruct)
 import {-# SOURCE #-} Vulkan.CStruct.Extends (PeekChain)
 import {-# SOURCE #-} Vulkan.CStruct.Extends (PokeChain)
-import Vulkan.CStruct (ToCStruct)
 type role ComputePipelineCreateInfo nominal
 data ComputePipelineCreateInfo (es :: [Type])
 
diff --git a/src/Vulkan/Core10/PipelineCache.hs b/src/Vulkan/Core10/PipelineCache.hs
--- a/src/Vulkan/Core10/PipelineCache.hs
+++ b/src/Vulkan/Core10/PipelineCache.hs
@@ -25,15 +25,22 @@
 import Foreign.Ptr (nullPtr)
 import Foreign.Ptr (plusPtr)
 import Data.ByteString (packCStringLen)
+import Data.Coerce (coerce)
 import Control.Monad.Trans.Class (lift)
 import Control.Monad.Trans.Cont (evalContT)
 import qualified Data.Vector (imapM_)
 import qualified Data.Vector (length)
 import Foreign.C.Types (CSize(..))
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
 import Control.Monad.IO.Class (MonadIO)
 import Data.Typeable (Typeable)
 import Foreign.C.Types (CChar)
 import Foreign.C.Types (CSize)
+import Foreign.C.Types (CSize(..))
 import Foreign.C.Types (CSize(CSize))
 import Foreign.Storable (Storable)
 import Foreign.Storable (Storable(peek))
@@ -59,18 +66,13 @@
 import Vulkan.Dynamic (DeviceCmds(pVkGetPipelineCacheData))
 import Vulkan.Dynamic (DeviceCmds(pVkMergePipelineCaches))
 import Vulkan.Core10.Handles (Device_T)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Handles (PipelineCache)
 import Vulkan.Core10.Handles (PipelineCache(..))
 import Vulkan.Core10.Enums.PipelineCacheCreateFlagBits (PipelineCacheCreateFlags)
 import Vulkan.Core10.Enums.Result (Result)
 import Vulkan.Core10.Enums.Result (Result(..))
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
 import Vulkan.Exception (VulkanException(..))
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO))
 import Vulkan.Core10.Enums.Result (Result(SUCCESS))
 import Vulkan.Core10.Handles (PipelineCache(..))
@@ -393,11 +395,11 @@
   r <- lift $ traceAroundEvent "vkGetPipelineCacheData" (vkGetPipelineCacheData' device' (pipelineCache) (pPDataSize) (nullPtr))
   lift $ when (r < SUCCESS) (throwIO (VulkanException r))
   pDataSize <- lift $ peek @CSize pPDataSize
-  pPData <- ContT $ bracket (callocBytes @(()) (fromIntegral (((\(CSize a) -> a) pDataSize)))) free
+  pPData <- ContT $ bracket (callocBytes @(()) (fromIntegral ((coerce @CSize @Word64 pDataSize)))) free
   r' <- lift $ traceAroundEvent "vkGetPipelineCacheData" (vkGetPipelineCacheData' device' (pipelineCache) (pPDataSize) (pPData))
   lift $ when (r' < SUCCESS) (throwIO (VulkanException r'))
   pDataSize'' <- lift $ peek @CSize pPDataSize
-  pData' <- lift $ packCStringLen  (castPtr @() @CChar pPData, (fromIntegral (((\(CSize a) -> a) pDataSize''))))
+  pData' <- lift $ packCStringLen  (castPtr @() @CChar pPData, (fromIntegral ((coerce @CSize @Word64 pDataSize''))))
   pure $ ((r'), pData')
 
 
@@ -570,7 +572,7 @@
     initialDataSize <- peek @CSize ((p `plusPtr` 24 :: Ptr CSize))
     pInitialData <- peek @(Ptr ()) ((p `plusPtr` 32 :: Ptr (Ptr ())))
     pure $ PipelineCacheCreateInfo
-             flags ((\(CSize a) -> a) initialDataSize) pInitialData
+             flags (coerce @CSize @Word64 initialDataSize) pInitialData
 
 instance Storable PipelineCacheCreateInfo where
   sizeOf ~_ = 40
diff --git a/src/Vulkan/Core10/PipelineCache.hs-boot b/src/Vulkan/Core10/PipelineCache.hs-boot
--- a/src/Vulkan/Core10/PipelineCache.hs-boot
+++ b/src/Vulkan/Core10/PipelineCache.hs-boot
@@ -2,9 +2,10 @@
 -- No documentation found for Chapter "PipelineCache"
 module Vulkan.Core10.PipelineCache  (PipelineCacheCreateInfo) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data PipelineCacheCreateInfo
 
 instance ToCStruct PipelineCacheCreateInfo
diff --git a/src/Vulkan/Core10/PipelineLayout.hs b/src/Vulkan/Core10/PipelineLayout.hs
--- a/src/Vulkan/Core10/PipelineLayout.hs
+++ b/src/Vulkan/Core10/PipelineLayout.hs
@@ -25,6 +25,11 @@
 import Data.Vector (generateM)
 import qualified Data.Vector (imapM_)
 import qualified Data.Vector (length)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
 import Control.Monad.IO.Class (MonadIO)
 import Data.Typeable (Typeable)
 import Foreign.Storable (Storable)
@@ -49,8 +54,6 @@
 import Vulkan.Dynamic (DeviceCmds(pVkCreatePipelineLayout))
 import Vulkan.Dynamic (DeviceCmds(pVkDestroyPipelineLayout))
 import Vulkan.Core10.Handles (Device_T)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Handles (PipelineLayout)
 import Vulkan.Core10.Handles (PipelineLayout(..))
 import Vulkan.Core10.Enums.PipelineLayoutCreateFlags (PipelineLayoutCreateFlags)
@@ -58,10 +61,7 @@
 import Vulkan.Core10.Enums.Result (Result(..))
 import Vulkan.Core10.Enums.ShaderStageFlagBits (ShaderStageFlags)
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
 import Vulkan.Exception (VulkanException(..))
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO))
 import Vulkan.Core10.Enums.Result (Result(SUCCESS))
 import Vulkan.Core10.Handles (PipelineLayout(..))
diff --git a/src/Vulkan/Core10/PipelineLayout.hs-boot b/src/Vulkan/Core10/PipelineLayout.hs-boot
--- a/src/Vulkan/Core10/PipelineLayout.hs-boot
+++ b/src/Vulkan/Core10/PipelineLayout.hs-boot
@@ -4,9 +4,10 @@
                                      , PushConstantRange
                                      ) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data PipelineLayoutCreateInfo
 
 instance ToCStruct PipelineLayoutCreateInfo
diff --git a/src/Vulkan/Core10/Query.hs b/src/Vulkan/Core10/Query.hs
--- a/src/Vulkan/Core10/Query.hs
+++ b/src/Vulkan/Core10/Query.hs
@@ -31,6 +31,11 @@
 import Control.Monad.Trans.Class (lift)
 import Control.Monad.Trans.Cont (evalContT)
 import Foreign.C.Types (CSize(..))
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
 import Control.Monad.IO.Class (MonadIO)
 import Data.Type.Equality ((:~:)(Refl))
 import Data.Typeable (Typeable)
@@ -61,8 +66,6 @@
 import Vulkan.CStruct.Extends (Extends)
 import Vulkan.CStruct.Extends (Extendss)
 import Vulkan.CStruct.Extends (Extensible(..))
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.CStruct.Extends (PeekChain)
 import Vulkan.CStruct.Extends (PeekChain(..))
 import Vulkan.CStruct.Extends (PokeChain)
@@ -80,10 +83,7 @@
 import Vulkan.Core10.Enums.Result (Result(..))
 import Vulkan.CStruct.Extends (SomeStruct)
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
 import Vulkan.Exception (VulkanException(..))
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO))
 import Vulkan.Core10.Enums.Result (Result(SUCCESS))
 import Vulkan.Core10.Enums.QueryPipelineStatisticFlagBits (QueryPipelineStatisticFlagBits(..))
@@ -570,7 +570,7 @@
 deriving instance Show (Chain es) => Show (QueryPoolCreateInfo es)
 
 instance Extensible QueryPoolCreateInfo where
-  extensibleType = STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO
+  extensibleTypeName = "QueryPoolCreateInfo"
   setNext x next = x{next = next}
   getNext QueryPoolCreateInfo{..} = next
   extends :: forall e b proxy. Typeable e => proxy e -> (Extends QueryPoolCreateInfo e => b) -> Maybe b
diff --git a/src/Vulkan/Core10/Query.hs-boot b/src/Vulkan/Core10/Query.hs-boot
--- a/src/Vulkan/Core10/Query.hs-boot
+++ b/src/Vulkan/Core10/Query.hs-boot
@@ -2,13 +2,13 @@
 -- No documentation found for Chapter "Query"
 module Vulkan.Core10.Query  (QueryPoolCreateInfo) where
 
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (ToCStruct)
 import Data.Kind (Type)
 import {-# SOURCE #-} Vulkan.CStruct.Extends (Chain)
 import {-# SOURCE #-} Vulkan.CStruct.Extends (Extendss)
-import Vulkan.CStruct (FromCStruct)
 import {-# SOURCE #-} Vulkan.CStruct.Extends (PeekChain)
 import {-# SOURCE #-} Vulkan.CStruct.Extends (PokeChain)
-import Vulkan.CStruct (ToCStruct)
 type role QueryPoolCreateInfo nominal
 data QueryPoolCreateInfo (es :: [Type])
 
diff --git a/src/Vulkan/Core10/Queue.hs b/src/Vulkan/Core10/Queue.hs
--- a/src/Vulkan/Core10/Queue.hs
+++ b/src/Vulkan/Core10/Queue.hs
@@ -30,6 +30,11 @@
 import Data.Vector (generateM)
 import qualified Data.Vector (imapM_)
 import qualified Data.Vector (length)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
 import Control.Monad.IO.Class (MonadIO)
 import Data.Type.Equality ((:~:)(Refl))
 import Data.Typeable (Typeable)
@@ -64,8 +69,6 @@
 import Vulkan.CStruct.Extends (Extensible(..))
 import Vulkan.Core10.Handles (Fence)
 import Vulkan.Core10.Handles (Fence(..))
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.CStruct.Extends (PeekChain)
 import Vulkan.CStruct.Extends (PeekChain(..))
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_performance_query (PerformanceQuerySubmitInfoKHR)
@@ -83,12 +86,9 @@
 import Vulkan.CStruct.Extends (SomeStruct)
 import Vulkan.Core10.Enums.StructureType (StructureType)
 import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore (TimelineSemaphoreSubmitInfo)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
 import Vulkan.Exception (VulkanException(..))
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_win32_keyed_mutex (Win32KeyedMutexAcquireReleaseInfoKHR)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_win32_keyed_mutex (Win32KeyedMutexAcquireReleaseInfoNV)
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_SUBMIT_INFO))
 import Vulkan.Core10.Enums.Result (Result(SUCCESS))
 import Vulkan.Core10.Enums.PipelineStageFlagBits (PipelineStageFlagBits(..))
@@ -334,6 +334,11 @@
 --     any queue family other than the one which @queue@ belongs to, at the
 --     time it is executed
 --
+-- -   #VUID-vkQueueSubmit-pSubmits-04626# Any resource created with
+--     'Vulkan.Core10.Enums.SharingMode.SHARING_MODE_CONCURRENT' that is
+--     accessed by an operation specified by @pSubmits@ /must/ have
+--     included the queue family of @queue@ at resource creation time
+--
 -- == Valid Usage (Implicit)
 --
 -- -   #VUID-vkQueueSubmit-queue-parameter# @queue@ /must/ be a valid
@@ -424,8 +429,7 @@
 -- | queueWaitIdle with selectable safeness
 queueWaitIdleSafeOrUnsafe :: forall io
                            . (MonadIO io)
-                          => -- No documentation found for TopLevel ""
-                             (FunPtr (Ptr Queue_T -> IO Result) -> Ptr Queue_T -> IO Result)
+                          => (FunPtr (Ptr Queue_T -> IO Result) -> Ptr Queue_T -> IO Result)
                           -> -- | @queue@ is the queue on which to wait.
                              Queue
                           -> io ()
@@ -510,8 +514,7 @@
 -- | deviceWaitIdle with selectable safeness
 deviceWaitIdleSafeOrUnsafe :: forall io
                             . (MonadIO io)
-                           => -- No documentation found for TopLevel ""
-                              (FunPtr (Ptr Device_T -> IO Result) -> Ptr Device_T -> IO Result)
+                           => (FunPtr (Ptr Device_T -> IO Result) -> Ptr Device_T -> IO Result)
                            -> -- | @device@ is the logical device to idle.
                               Device
                            -> io ()
@@ -780,7 +783,7 @@
 deriving instance Show (Chain es) => Show (SubmitInfo es)
 
 instance Extensible SubmitInfo where
-  extensibleType = STRUCTURE_TYPE_SUBMIT_INFO
+  extensibleTypeName = "SubmitInfo"
   setNext x next = x{next = next}
   getNext SubmitInfo{..} = next
   extends :: forall e b proxy. Typeable e => proxy e -> (Extends SubmitInfo e => b) -> Maybe b
diff --git a/src/Vulkan/Core10/Queue.hs-boot b/src/Vulkan/Core10/Queue.hs-boot
--- a/src/Vulkan/Core10/Queue.hs-boot
+++ b/src/Vulkan/Core10/Queue.hs-boot
@@ -2,13 +2,13 @@
 -- No documentation found for Chapter "Queue"
 module Vulkan.Core10.Queue  (SubmitInfo) where
 
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (ToCStruct)
 import Data.Kind (Type)
 import {-# SOURCE #-} Vulkan.CStruct.Extends (Chain)
 import {-# SOURCE #-} Vulkan.CStruct.Extends (Extendss)
-import Vulkan.CStruct (FromCStruct)
 import {-# SOURCE #-} Vulkan.CStruct.Extends (PeekChain)
 import {-# SOURCE #-} Vulkan.CStruct.Extends (PokeChain)
-import Vulkan.CStruct (ToCStruct)
 type role SubmitInfo nominal
 data SubmitInfo (es :: [Type])
 
diff --git a/src/Vulkan/Core10/QueueSemaphore.hs b/src/Vulkan/Core10/QueueSemaphore.hs
--- a/src/Vulkan/Core10/QueueSemaphore.hs
+++ b/src/Vulkan/Core10/QueueSemaphore.hs
@@ -24,6 +24,11 @@
 import Foreign.Ptr (plusPtr)
 import Control.Monad.Trans.Class (lift)
 import Control.Monad.Trans.Cont (evalContT)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
 import Control.Monad.IO.Class (MonadIO)
 import Data.Type.Equality ((:~:)(Refl))
 import Data.Typeable (Typeable)
@@ -50,8 +55,6 @@
 import Vulkan.CStruct.Extends (Extends)
 import Vulkan.CStruct.Extends (Extendss)
 import Vulkan.CStruct.Extends (Extensible(..))
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.CStruct.Extends (PeekChain)
 import Vulkan.CStruct.Extends (PeekChain(..))
 import Vulkan.CStruct.Extends (PokeChain)
@@ -64,10 +67,7 @@
 import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore (SemaphoreTypeCreateInfo)
 import Vulkan.CStruct.Extends (SomeStruct)
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
 import Vulkan.Exception (VulkanException(..))
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO))
 import Vulkan.Core10.Enums.Result (Result(SUCCESS))
 import Vulkan.Core10.Handles (Semaphore(..))
@@ -263,7 +263,7 @@
 deriving instance Show (Chain es) => Show (SemaphoreCreateInfo es)
 
 instance Extensible SemaphoreCreateInfo where
-  extensibleType = STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO
+  extensibleTypeName = "SemaphoreCreateInfo"
   setNext x next = x{next = next}
   getNext SemaphoreCreateInfo{..} = next
   extends :: forall e b proxy. Typeable e => proxy e -> (Extends SemaphoreCreateInfo e => b) -> Maybe b
diff --git a/src/Vulkan/Core10/QueueSemaphore.hs-boot b/src/Vulkan/Core10/QueueSemaphore.hs-boot
--- a/src/Vulkan/Core10/QueueSemaphore.hs-boot
+++ b/src/Vulkan/Core10/QueueSemaphore.hs-boot
@@ -2,13 +2,13 @@
 -- No documentation found for Chapter "QueueSemaphore"
 module Vulkan.Core10.QueueSemaphore  (SemaphoreCreateInfo) where
 
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (ToCStruct)
 import Data.Kind (Type)
 import {-# SOURCE #-} Vulkan.CStruct.Extends (Chain)
 import {-# SOURCE #-} Vulkan.CStruct.Extends (Extendss)
-import Vulkan.CStruct (FromCStruct)
 import {-# SOURCE #-} Vulkan.CStruct.Extends (PeekChain)
 import {-# SOURCE #-} Vulkan.CStruct.Extends (PokeChain)
-import Vulkan.CStruct (ToCStruct)
 type role SemaphoreCreateInfo nominal
 data SemaphoreCreateInfo (es :: [Type])
 
diff --git a/src/Vulkan/Core10/Sampler.hs b/src/Vulkan/Core10/Sampler.hs
--- a/src/Vulkan/Core10/Sampler.hs
+++ b/src/Vulkan/Core10/Sampler.hs
@@ -27,12 +27,19 @@
 import GHC.Ptr (nullFunPtr)
 import Foreign.Ptr (nullPtr)
 import Foreign.Ptr (plusPtr)
+import Data.Coerce (coerce)
 import Control.Monad.Trans.Class (lift)
 import Control.Monad.Trans.Cont (evalContT)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
 import Control.Monad.IO.Class (MonadIO)
 import Data.Type.Equality ((:~:)(Refl))
 import Data.Typeable (Typeable)
 import Foreign.C.Types (CFloat)
+import Foreign.C.Types (CFloat(..))
 import Foreign.C.Types (CFloat(CFloat))
 import Foreign.Storable (Storable(peek))
 import Foreign.Storable (Storable(poke))
@@ -61,8 +68,6 @@
 import Vulkan.CStruct.Extends (Extendss)
 import Vulkan.CStruct.Extends (Extensible(..))
 import Vulkan.Core10.Enums.Filter (Filter)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.CStruct.Extends (PeekChain)
 import Vulkan.CStruct.Extends (PeekChain(..))
 import Vulkan.CStruct.Extends (PokeChain)
@@ -79,10 +84,7 @@
 import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion (SamplerYcbcrConversionInfo)
 import Vulkan.CStruct.Extends (SomeStruct)
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
 import Vulkan.Exception (VulkanException(..))
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_SAMPLER_CREATE_INFO))
 import Vulkan.Core10.Enums.Result (Result(SUCCESS))
 import Vulkan.Core10.Enums.BorderColor (BorderColor(..))
@@ -637,7 +639,7 @@
 deriving instance Show (Chain es) => Show (SamplerCreateInfo es)
 
 instance Extensible SamplerCreateInfo where
-  extensibleType = STRUCTURE_TYPE_SAMPLER_CREATE_INFO
+  extensibleTypeName = "SamplerCreateInfo"
   setNext x next = x{next = next}
   getNext SamplerCreateInfo{..} = next
   extends :: forall e b proxy. Typeable e => proxy e -> (Extends SamplerCreateInfo e => b) -> Maybe b
@@ -714,7 +716,7 @@
     borderColor <- peek @BorderColor ((p `plusPtr` 72 :: Ptr BorderColor))
     unnormalizedCoordinates <- peek @Bool32 ((p `plusPtr` 76 :: Ptr Bool32))
     pure $ SamplerCreateInfo
-             next flags magFilter minFilter mipmapMode addressModeU addressModeV addressModeW ((\(CFloat a) -> a) mipLodBias) (bool32ToBool anisotropyEnable) ((\(CFloat a) -> a) maxAnisotropy) (bool32ToBool compareEnable) compareOp ((\(CFloat a) -> a) minLod) ((\(CFloat a) -> a) maxLod) borderColor (bool32ToBool unnormalizedCoordinates)
+             next flags magFilter minFilter mipmapMode addressModeU addressModeV addressModeW (coerce @CFloat @Float mipLodBias) (bool32ToBool anisotropyEnable) (coerce @CFloat @Float maxAnisotropy) (bool32ToBool compareEnable) compareOp (coerce @CFloat @Float minLod) (coerce @CFloat @Float maxLod) borderColor (bool32ToBool unnormalizedCoordinates)
 
 instance es ~ '[] => Zero (SamplerCreateInfo es) where
   zero = SamplerCreateInfo
diff --git a/src/Vulkan/Core10/Sampler.hs-boot b/src/Vulkan/Core10/Sampler.hs-boot
--- a/src/Vulkan/Core10/Sampler.hs-boot
+++ b/src/Vulkan/Core10/Sampler.hs-boot
@@ -2,13 +2,13 @@
 -- No documentation found for Chapter "Sampler"
 module Vulkan.Core10.Sampler  (SamplerCreateInfo) where
 
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (ToCStruct)
 import Data.Kind (Type)
 import {-# SOURCE #-} Vulkan.CStruct.Extends (Chain)
 import {-# SOURCE #-} Vulkan.CStruct.Extends (Extendss)
-import Vulkan.CStruct (FromCStruct)
 import {-# SOURCE #-} Vulkan.CStruct.Extends (PeekChain)
 import {-# SOURCE #-} Vulkan.CStruct.Extends (PokeChain)
-import Vulkan.CStruct (ToCStruct)
 type role SamplerCreateInfo nominal
 data SamplerCreateInfo (es :: [Type])
 
diff --git a/src/Vulkan/Core10/Shader.hs b/src/Vulkan/Core10/Shader.hs
--- a/src/Vulkan/Core10/Shader.hs
+++ b/src/Vulkan/Core10/Shader.hs
@@ -29,14 +29,20 @@
 import qualified Data.ByteString (length)
 import Data.ByteString (packCStringLen)
 import Data.ByteString.Unsafe (unsafeUseAsCString)
+import Data.Coerce (coerce)
 import Control.Monad.Trans.Class (lift)
 import Control.Monad.Trans.Cont (evalContT)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
 import Control.Monad.IO.Class (MonadIO)
 import Data.Type.Equality ((:~:)(Refl))
 import Data.Typeable (Typeable)
 import Foreign.C.Types (CChar)
 import Foreign.C.Types (CSize)
-import Foreign.C.Types (CSize(CSize))
+import Foreign.C.Types (CSize(..))
 import Foreign.Storable (Storable(peek))
 import Foreign.Storable (Storable(poke))
 import GHC.Generics (Generic)
@@ -45,6 +51,7 @@
 import Foreign.Ptr (FunPtr)
 import Foreign.Ptr (Ptr)
 import Data.Word (Word32)
+import Data.Word (Word64)
 import Data.ByteString (ByteString)
 import Data.Kind (Type)
 import Control.Monad.Trans.Cont (ContT(..))
@@ -60,8 +67,6 @@
 import Vulkan.CStruct.Extends (Extends)
 import Vulkan.CStruct.Extends (Extendss)
 import Vulkan.CStruct.Extends (Extensible(..))
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.CStruct.Extends (PeekChain)
 import Vulkan.CStruct.Extends (PeekChain(..))
 import Vulkan.CStruct.Extends (PokeChain)
@@ -74,10 +79,7 @@
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_validation_cache (ShaderModuleValidationCacheCreateInfoEXT)
 import Vulkan.CStruct.Extends (SomeStruct)
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
 import Vulkan.Exception (VulkanException(..))
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO))
 import Vulkan.Core10.Enums.Result (Result(SUCCESS))
 import Vulkan.Core10.Handles (ShaderModule(..))
@@ -354,7 +356,7 @@
 deriving instance Show (Chain es) => Show (ShaderModuleCreateInfo es)
 
 instance Extensible ShaderModuleCreateInfo where
-  extensibleType = STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO
+  extensibleTypeName = "ShaderModuleCreateInfo"
   setNext x next = x{next = next}
   getNext ShaderModuleCreateInfo{..} = next
   extends :: forall e b proxy. Typeable e => proxy e -> (Extends ShaderModuleCreateInfo e => b) -> Maybe b
@@ -399,7 +401,7 @@
     flags <- peek @ShaderModuleCreateFlags ((p `plusPtr` 16 :: Ptr ShaderModuleCreateFlags))
     codeSize <- peek @CSize ((p `plusPtr` 24 :: Ptr CSize))
     pCode <- peek @(Ptr Word32) ((p `plusPtr` 32 :: Ptr (Ptr Word32)))
-    code <- packCStringLen (castPtr @Word32 @CChar pCode, fromIntegral $ ((\(CSize a) -> a) codeSize) * 4)
+    code <- packCStringLen (castPtr @Word32 @CChar pCode, fromIntegral $ (coerce @CSize @Word64 codeSize) * 4)
     pure $ ShaderModuleCreateInfo
              next flags code
 
diff --git a/src/Vulkan/Core10/Shader.hs-boot b/src/Vulkan/Core10/Shader.hs-boot
--- a/src/Vulkan/Core10/Shader.hs-boot
+++ b/src/Vulkan/Core10/Shader.hs-boot
@@ -2,13 +2,13 @@
 -- No documentation found for Chapter "Shader"
 module Vulkan.Core10.Shader  (ShaderModuleCreateInfo) where
 
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (ToCStruct)
 import Data.Kind (Type)
 import {-# SOURCE #-} Vulkan.CStruct.Extends (Chain)
 import {-# SOURCE #-} Vulkan.CStruct.Extends (Extendss)
-import Vulkan.CStruct (FromCStruct)
 import {-# SOURCE #-} Vulkan.CStruct.Extends (PeekChain)
 import {-# SOURCE #-} Vulkan.CStruct.Extends (PokeChain)
-import Vulkan.CStruct (ToCStruct)
 type role ShaderModuleCreateInfo nominal
 data ShaderModuleCreateInfo (es :: [Type])
 
diff --git a/src/Vulkan/Core10/SparseResourceMemoryManagement.hs b/src/Vulkan/Core10/SparseResourceMemoryManagement.hs
--- a/src/Vulkan/Core10/SparseResourceMemoryManagement.hs
+++ b/src/Vulkan/Core10/SparseResourceMemoryManagement.hs
@@ -39,6 +39,11 @@
 import Data.Vector (generateM)
 import qualified Data.Vector (imapM_)
 import qualified Data.Vector (length)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
 import Control.Monad.IO.Class (MonadIO)
 import Data.Type.Equality ((:~:)(Refl))
 import Data.Typeable (Typeable)
@@ -77,8 +82,6 @@
 import Vulkan.Core10.Handles (Fence(..))
 import Vulkan.Core10.Enums.Format (Format)
 import Vulkan.Core10.Enums.Format (Format(..))
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Handles (Image)
 import Vulkan.Core10.Handles (Image(..))
 import Vulkan.Core10.Enums.ImageAspectFlagBits (ImageAspectFlags)
@@ -110,10 +113,7 @@
 import Vulkan.Core10.Enums.SparseMemoryBindFlagBits (SparseMemoryBindFlags)
 import Vulkan.Core10.Enums.StructureType (StructureType)
 import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore (TimelineSemaphoreSubmitInfo)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
 import Vulkan.Exception (VulkanException(..))
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_BIND_SPARSE_INFO))
 import Vulkan.Core10.Enums.Result (Result(SUCCESS))
 import Vulkan.Core10.Enums.ImageAspectFlagBits (ImageAspectFlagBits(..))
@@ -1379,7 +1379,7 @@
 deriving instance Show (Chain es) => Show (BindSparseInfo es)
 
 instance Extensible BindSparseInfo where
-  extensibleType = STRUCTURE_TYPE_BIND_SPARSE_INFO
+  extensibleTypeName = "BindSparseInfo"
   setNext x next = x{next = next}
   getNext BindSparseInfo{..} = next
   extends :: forall e b proxy. Typeable e => proxy e -> (Extends BindSparseInfo e => b) -> Maybe b
diff --git a/src/Vulkan/Core10/SparseResourceMemoryManagement.hs-boot b/src/Vulkan/Core10/SparseResourceMemoryManagement.hs-boot
--- a/src/Vulkan/Core10/SparseResourceMemoryManagement.hs-boot
+++ b/src/Vulkan/Core10/SparseResourceMemoryManagement.hs-boot
@@ -11,13 +11,13 @@
                                                      , SparseMemoryBind
                                                      ) where
 
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (ToCStruct)
 import Data.Kind (Type)
 import {-# SOURCE #-} Vulkan.CStruct.Extends (Chain)
 import {-# SOURCE #-} Vulkan.CStruct.Extends (Extendss)
-import Vulkan.CStruct (FromCStruct)
 import {-# SOURCE #-} Vulkan.CStruct.Extends (PeekChain)
 import {-# SOURCE #-} Vulkan.CStruct.Extends (PokeChain)
-import Vulkan.CStruct (ToCStruct)
 type role BindSparseInfo nominal
 data BindSparseInfo (es :: [Type])
 
diff --git a/src/Vulkan/Core11/Enums/ChromaLocation.hs b/src/Vulkan/Core11/Enums/ChromaLocation.hs
--- a/src/Vulkan/Core11/Enums/ChromaLocation.hs
+++ b/src/Vulkan/Core11/Enums/ChromaLocation.hs
@@ -8,11 +8,12 @@
 import Vulkan.Internal.Utils (enumReadPrec)
 import Vulkan.Internal.Utils (enumShowsPrec)
 import GHC.Show (showsPrec)
+import Vulkan.Zero (Zero)
 import Foreign.Storable (Storable)
 import Data.Int (Int32)
 import GHC.Read (Read(readPrec))
 import GHC.Show (Show(showsPrec))
-import Vulkan.Zero (Zero)
+
 -- | VkChromaLocation - Position of downsampled chroma samples
 --
 -- = See Also
diff --git a/src/Vulkan/Core11/Enums/CommandPoolTrimFlags.hs b/src/Vulkan/Core11/Enums/CommandPoolTrimFlags.hs
--- a/src/Vulkan/Core11/Enums/CommandPoolTrimFlags.hs
+++ b/src/Vulkan/Core11/Enums/CommandPoolTrimFlags.hs
@@ -6,13 +6,13 @@
 import Vulkan.Internal.Utils (enumShowsPrec)
 import GHC.Show (showString)
 import Numeric (showHex)
+import Vulkan.Zero (Zero)
 import Data.Bits (Bits)
 import Data.Bits (FiniteBits)
 import Foreign.Storable (Storable)
 import GHC.Read (Read(readPrec))
 import GHC.Show (Show(showsPrec))
 import Vulkan.Core10.FundamentalTypes (Flags)
-import Vulkan.Zero (Zero)
 -- | VkCommandPoolTrimFlags - Reserved for future use
 --
 -- = Description
diff --git a/src/Vulkan/Core11/Enums/DescriptorUpdateTemplateCreateFlags.hs b/src/Vulkan/Core11/Enums/DescriptorUpdateTemplateCreateFlags.hs
--- a/src/Vulkan/Core11/Enums/DescriptorUpdateTemplateCreateFlags.hs
+++ b/src/Vulkan/Core11/Enums/DescriptorUpdateTemplateCreateFlags.hs
@@ -6,13 +6,13 @@
 import Vulkan.Internal.Utils (enumShowsPrec)
 import GHC.Show (showString)
 import Numeric (showHex)
+import Vulkan.Zero (Zero)
 import Data.Bits (Bits)
 import Data.Bits (FiniteBits)
 import Foreign.Storable (Storable)
 import GHC.Read (Read(readPrec))
 import GHC.Show (Show(showsPrec))
 import Vulkan.Core10.FundamentalTypes (Flags)
-import Vulkan.Zero (Zero)
 -- | VkDescriptorUpdateTemplateCreateFlags - Reserved for future use
 --
 -- = Description
diff --git a/src/Vulkan/Core11/Enums/DescriptorUpdateTemplateType.hs b/src/Vulkan/Core11/Enums/DescriptorUpdateTemplateType.hs
--- a/src/Vulkan/Core11/Enums/DescriptorUpdateTemplateType.hs
+++ b/src/Vulkan/Core11/Enums/DescriptorUpdateTemplateType.hs
@@ -8,11 +8,12 @@
 import Vulkan.Internal.Utils (enumReadPrec)
 import Vulkan.Internal.Utils (enumShowsPrec)
 import GHC.Show (showsPrec)
+import Vulkan.Zero (Zero)
 import Foreign.Storable (Storable)
 import Data.Int (Int32)
 import GHC.Read (Read(readPrec))
 import GHC.Show (Show(showsPrec))
-import Vulkan.Zero (Zero)
+
 -- | VkDescriptorUpdateTemplateType - Indicates the valid usage of the
 -- descriptor update template
 --
diff --git a/src/Vulkan/Core11/Enums/ExternalFenceFeatureFlagBits.hs b/src/Vulkan/Core11/Enums/ExternalFenceFeatureFlagBits.hs
--- a/src/Vulkan/Core11/Enums/ExternalFenceFeatureFlagBits.hs
+++ b/src/Vulkan/Core11/Enums/ExternalFenceFeatureFlagBits.hs
@@ -11,13 +11,13 @@
 import Vulkan.Internal.Utils (enumShowsPrec)
 import GHC.Show (showString)
 import Numeric (showHex)
+import Vulkan.Zero (Zero)
 import Data.Bits (Bits)
 import Data.Bits (FiniteBits)
 import Foreign.Storable (Storable)
 import GHC.Read (Read(readPrec))
 import GHC.Show (Show(showsPrec))
 import Vulkan.Core10.FundamentalTypes (Flags)
-import Vulkan.Zero (Zero)
 type ExternalFenceFeatureFlags = ExternalFenceFeatureFlagBits
 
 -- | VkExternalFenceFeatureFlagBits - Bitfield describing features of an
diff --git a/src/Vulkan/Core11/Enums/ExternalFenceHandleTypeFlagBits.hs b/src/Vulkan/Core11/Enums/ExternalFenceHandleTypeFlagBits.hs
--- a/src/Vulkan/Core11/Enums/ExternalFenceHandleTypeFlagBits.hs
+++ b/src/Vulkan/Core11/Enums/ExternalFenceHandleTypeFlagBits.hs
@@ -13,13 +13,13 @@
 import Vulkan.Internal.Utils (enumShowsPrec)
 import GHC.Show (showString)
 import Numeric (showHex)
+import Vulkan.Zero (Zero)
 import Data.Bits (Bits)
 import Data.Bits (FiniteBits)
 import Foreign.Storable (Storable)
 import GHC.Read (Read(readPrec))
 import GHC.Show (Show(showsPrec))
 import Vulkan.Core10.FundamentalTypes (Flags)
-import Vulkan.Zero (Zero)
 type ExternalFenceHandleTypeFlags = ExternalFenceHandleTypeFlagBits
 
 -- | VkExternalFenceHandleTypeFlagBits - Bitmask of valid external fence
diff --git a/src/Vulkan/Core11/Enums/ExternalMemoryFeatureFlagBits.hs b/src/Vulkan/Core11/Enums/ExternalMemoryFeatureFlagBits.hs
--- a/src/Vulkan/Core11/Enums/ExternalMemoryFeatureFlagBits.hs
+++ b/src/Vulkan/Core11/Enums/ExternalMemoryFeatureFlagBits.hs
@@ -12,13 +12,13 @@
 import Vulkan.Internal.Utils (enumShowsPrec)
 import GHC.Show (showString)
 import Numeric (showHex)
+import Vulkan.Zero (Zero)
 import Data.Bits (Bits)
 import Data.Bits (FiniteBits)
 import Foreign.Storable (Storable)
 import GHC.Read (Read(readPrec))
 import GHC.Show (Show(showsPrec))
 import Vulkan.Core10.FundamentalTypes (Flags)
-import Vulkan.Zero (Zero)
 type ExternalMemoryFeatureFlags = ExternalMemoryFeatureFlagBits
 
 -- | VkExternalMemoryFeatureFlagBits - Bitmask specifying features of an
diff --git a/src/Vulkan/Core11/Enums/ExternalMemoryHandleTypeFlagBits.hs b/src/Vulkan/Core11/Enums/ExternalMemoryHandleTypeFlagBits.hs
--- a/src/Vulkan/Core11/Enums/ExternalMemoryHandleTypeFlagBits.hs
+++ b/src/Vulkan/Core11/Enums/ExternalMemoryHandleTypeFlagBits.hs
@@ -20,13 +20,13 @@
 import Vulkan.Internal.Utils (enumShowsPrec)
 import GHC.Show (showString)
 import Numeric (showHex)
+import Vulkan.Zero (Zero)
 import Data.Bits (Bits)
 import Data.Bits (FiniteBits)
 import Foreign.Storable (Storable)
 import GHC.Read (Read(readPrec))
 import GHC.Show (Show(showsPrec))
 import Vulkan.Core10.FundamentalTypes (Flags)
-import Vulkan.Zero (Zero)
 type ExternalMemoryHandleTypeFlags = ExternalMemoryHandleTypeFlagBits
 
 -- | VkExternalMemoryHandleTypeFlagBits - Bit specifying external memory
diff --git a/src/Vulkan/Core11/Enums/ExternalSemaphoreFeatureFlagBits.hs b/src/Vulkan/Core11/Enums/ExternalSemaphoreFeatureFlagBits.hs
--- a/src/Vulkan/Core11/Enums/ExternalSemaphoreFeatureFlagBits.hs
+++ b/src/Vulkan/Core11/Enums/ExternalSemaphoreFeatureFlagBits.hs
@@ -11,13 +11,13 @@
 import Vulkan.Internal.Utils (enumShowsPrec)
 import GHC.Show (showString)
 import Numeric (showHex)
+import Vulkan.Zero (Zero)
 import Data.Bits (Bits)
 import Data.Bits (FiniteBits)
 import Foreign.Storable (Storable)
 import GHC.Read (Read(readPrec))
 import GHC.Show (Show(showsPrec))
 import Vulkan.Core10.FundamentalTypes (Flags)
-import Vulkan.Zero (Zero)
 type ExternalSemaphoreFeatureFlags = ExternalSemaphoreFeatureFlagBits
 
 -- | VkExternalSemaphoreFeatureFlagBits - Bitfield describing features of an
diff --git a/src/Vulkan/Core11/Enums/ExternalSemaphoreHandleTypeFlagBits.hs b/src/Vulkan/Core11/Enums/ExternalSemaphoreHandleTypeFlagBits.hs
--- a/src/Vulkan/Core11/Enums/ExternalSemaphoreHandleTypeFlagBits.hs
+++ b/src/Vulkan/Core11/Enums/ExternalSemaphoreHandleTypeFlagBits.hs
@@ -15,13 +15,13 @@
 import Vulkan.Internal.Utils (enumShowsPrec)
 import GHC.Show (showString)
 import Numeric (showHex)
+import Vulkan.Zero (Zero)
 import Data.Bits (Bits)
 import Data.Bits (FiniteBits)
 import Foreign.Storable (Storable)
 import GHC.Read (Read(readPrec))
 import GHC.Show (Show(showsPrec))
 import Vulkan.Core10.FundamentalTypes (Flags)
-import Vulkan.Zero (Zero)
 -- No documentation found for TopLevel "VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D11_FENCE_BIT"
 pattern EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D11_FENCE_BIT = EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT
 
diff --git a/src/Vulkan/Core11/Enums/FenceImportFlagBits.hs b/src/Vulkan/Core11/Enums/FenceImportFlagBits.hs
--- a/src/Vulkan/Core11/Enums/FenceImportFlagBits.hs
+++ b/src/Vulkan/Core11/Enums/FenceImportFlagBits.hs
@@ -10,13 +10,13 @@
 import Vulkan.Internal.Utils (enumShowsPrec)
 import GHC.Show (showString)
 import Numeric (showHex)
+import Vulkan.Zero (Zero)
 import Data.Bits (Bits)
 import Data.Bits (FiniteBits)
 import Foreign.Storable (Storable)
 import GHC.Read (Read(readPrec))
 import GHC.Show (Show(showsPrec))
 import Vulkan.Core10.FundamentalTypes (Flags)
-import Vulkan.Zero (Zero)
 type FenceImportFlags = FenceImportFlagBits
 
 -- | VkFenceImportFlagBits - Bitmask specifying additional parameters of
diff --git a/src/Vulkan/Core11/Enums/MemoryAllocateFlagBits.hs b/src/Vulkan/Core11/Enums/MemoryAllocateFlagBits.hs
--- a/src/Vulkan/Core11/Enums/MemoryAllocateFlagBits.hs
+++ b/src/Vulkan/Core11/Enums/MemoryAllocateFlagBits.hs
@@ -12,13 +12,13 @@
 import Vulkan.Internal.Utils (enumShowsPrec)
 import GHC.Show (showString)
 import Numeric (showHex)
+import Vulkan.Zero (Zero)
 import Data.Bits (Bits)
 import Data.Bits (FiniteBits)
 import Foreign.Storable (Storable)
 import GHC.Read (Read(readPrec))
 import GHC.Show (Show(showsPrec))
 import Vulkan.Core10.FundamentalTypes (Flags)
-import Vulkan.Zero (Zero)
 type MemoryAllocateFlags = MemoryAllocateFlagBits
 
 -- | VkMemoryAllocateFlagBits - Bitmask specifying flags for a device memory
diff --git a/src/Vulkan/Core11/Enums/PeerMemoryFeatureFlagBits.hs b/src/Vulkan/Core11/Enums/PeerMemoryFeatureFlagBits.hs
--- a/src/Vulkan/Core11/Enums/PeerMemoryFeatureFlagBits.hs
+++ b/src/Vulkan/Core11/Enums/PeerMemoryFeatureFlagBits.hs
@@ -13,13 +13,13 @@
 import Vulkan.Internal.Utils (enumShowsPrec)
 import GHC.Show (showString)
 import Numeric (showHex)
+import Vulkan.Zero (Zero)
 import Data.Bits (Bits)
 import Data.Bits (FiniteBits)
 import Foreign.Storable (Storable)
 import GHC.Read (Read(readPrec))
 import GHC.Show (Show(showsPrec))
 import Vulkan.Core10.FundamentalTypes (Flags)
-import Vulkan.Zero (Zero)
 type PeerMemoryFeatureFlags = PeerMemoryFeatureFlagBits
 
 -- | VkPeerMemoryFeatureFlagBits - Bitmask specifying supported peer memory
diff --git a/src/Vulkan/Core11/Enums/PointClippingBehavior.hs b/src/Vulkan/Core11/Enums/PointClippingBehavior.hs
--- a/src/Vulkan/Core11/Enums/PointClippingBehavior.hs
+++ b/src/Vulkan/Core11/Enums/PointClippingBehavior.hs
@@ -8,11 +8,12 @@
 import Vulkan.Internal.Utils (enumReadPrec)
 import Vulkan.Internal.Utils (enumShowsPrec)
 import GHC.Show (showsPrec)
+import Vulkan.Zero (Zero)
 import Foreign.Storable (Storable)
 import Data.Int (Int32)
 import GHC.Read (Read(readPrec))
 import GHC.Show (Show(showsPrec))
-import Vulkan.Zero (Zero)
+
 -- | VkPointClippingBehavior - Enum specifying the point clipping behavior
 --
 -- = See Also
diff --git a/src/Vulkan/Core11/Enums/SamplerYcbcrModelConversion.hs b/src/Vulkan/Core11/Enums/SamplerYcbcrModelConversion.hs
--- a/src/Vulkan/Core11/Enums/SamplerYcbcrModelConversion.hs
+++ b/src/Vulkan/Core11/Enums/SamplerYcbcrModelConversion.hs
@@ -11,11 +11,12 @@
 import Vulkan.Internal.Utils (enumReadPrec)
 import Vulkan.Internal.Utils (enumShowsPrec)
 import GHC.Show (showsPrec)
+import Vulkan.Zero (Zero)
 import Foreign.Storable (Storable)
 import Data.Int (Int32)
 import GHC.Read (Read(readPrec))
 import GHC.Show (Show(showsPrec))
-import Vulkan.Zero (Zero)
+
 -- | VkSamplerYcbcrModelConversion - Color model component of a color space
 --
 -- = Description
diff --git a/src/Vulkan/Core11/Enums/SamplerYcbcrRange.hs b/src/Vulkan/Core11/Enums/SamplerYcbcrRange.hs
--- a/src/Vulkan/Core11/Enums/SamplerYcbcrRange.hs
+++ b/src/Vulkan/Core11/Enums/SamplerYcbcrRange.hs
@@ -8,11 +8,12 @@
 import Vulkan.Internal.Utils (enumReadPrec)
 import Vulkan.Internal.Utils (enumShowsPrec)
 import GHC.Show (showsPrec)
+import Vulkan.Zero (Zero)
 import Foreign.Storable (Storable)
 import Data.Int (Int32)
 import GHC.Read (Read(readPrec))
 import GHC.Show (Show(showsPrec))
-import Vulkan.Zero (Zero)
+
 -- | VkSamplerYcbcrRange - Range of encoded values in a color space
 --
 -- = Description
diff --git a/src/Vulkan/Core11/Enums/SemaphoreImportFlagBits.hs b/src/Vulkan/Core11/Enums/SemaphoreImportFlagBits.hs
--- a/src/Vulkan/Core11/Enums/SemaphoreImportFlagBits.hs
+++ b/src/Vulkan/Core11/Enums/SemaphoreImportFlagBits.hs
@@ -10,13 +10,13 @@
 import Vulkan.Internal.Utils (enumShowsPrec)
 import GHC.Show (showString)
 import Numeric (showHex)
+import Vulkan.Zero (Zero)
 import Data.Bits (Bits)
 import Data.Bits (FiniteBits)
 import Foreign.Storable (Storable)
 import GHC.Read (Read(readPrec))
 import GHC.Show (Show(showsPrec))
 import Vulkan.Core10.FundamentalTypes (Flags)
-import Vulkan.Zero (Zero)
 type SemaphoreImportFlags = SemaphoreImportFlagBits
 
 -- | VkSemaphoreImportFlagBits - Bitmask specifying additional parameters of
diff --git a/src/Vulkan/Core11/Enums/SubgroupFeatureFlagBits.hs b/src/Vulkan/Core11/Enums/SubgroupFeatureFlagBits.hs
--- a/src/Vulkan/Core11/Enums/SubgroupFeatureFlagBits.hs
+++ b/src/Vulkan/Core11/Enums/SubgroupFeatureFlagBits.hs
@@ -18,13 +18,13 @@
 import Vulkan.Internal.Utils (enumShowsPrec)
 import GHC.Show (showString)
 import Numeric (showHex)
+import Vulkan.Zero (Zero)
 import Data.Bits (Bits)
 import Data.Bits (FiniteBits)
 import Foreign.Storable (Storable)
 import GHC.Read (Read(readPrec))
 import GHC.Show (Show(showsPrec))
 import Vulkan.Core10.FundamentalTypes (Flags)
-import Vulkan.Zero (Zero)
 type SubgroupFeatureFlags = SubgroupFeatureFlagBits
 
 -- | VkSubgroupFeatureFlagBits - Enum describing what group operations are
diff --git a/src/Vulkan/Core11/Enums/TessellationDomainOrigin.hs b/src/Vulkan/Core11/Enums/TessellationDomainOrigin.hs
--- a/src/Vulkan/Core11/Enums/TessellationDomainOrigin.hs
+++ b/src/Vulkan/Core11/Enums/TessellationDomainOrigin.hs
@@ -8,11 +8,12 @@
 import Vulkan.Internal.Utils (enumReadPrec)
 import Vulkan.Internal.Utils (enumShowsPrec)
 import GHC.Show (showsPrec)
+import Vulkan.Zero (Zero)
 import Foreign.Storable (Storable)
 import Data.Int (Int32)
 import GHC.Read (Read(readPrec))
 import GHC.Show (Show(showsPrec))
-import Vulkan.Zero (Zero)
+
 -- | VkTessellationDomainOrigin - Enum describing tessellation domain origin
 --
 -- = Description
diff --git a/src/Vulkan/Core11/Handles.hs b/src/Vulkan/Core11/Handles.hs
--- a/src/Vulkan/Core11/Handles.hs
+++ b/src/Vulkan/Core11/Handles.hs
@@ -19,11 +19,11 @@
 
 import GHC.Show (showParen)
 import Numeric (showHex)
+import Vulkan.Zero (Zero)
 import Foreign.Storable (Storable)
 import Data.Word (Word64)
 import Vulkan.Core10.APIConstants (HasObjectType(..))
 import Vulkan.Core10.APIConstants (IsHandle)
-import Vulkan.Zero (Zero)
 import Vulkan.Core10.Enums.ObjectType (ObjectType(OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE))
 import Vulkan.Core10.Enums.ObjectType (ObjectType(OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION))
 import Vulkan.Core10.Handles (Buffer(..))
diff --git a/src/Vulkan/Core11/Originally_Based_On_VK_KHR_protected_memory.hs b/src/Vulkan/Core11/Originally_Based_On_VK_KHR_protected_memory.hs
--- a/src/Vulkan/Core11/Originally_Based_On_VK_KHR_protected_memory.hs
+++ b/src/Vulkan/Core11/Originally_Based_On_VK_KHR_protected_memory.hs
@@ -33,6 +33,11 @@
 import Foreign.Ptr (plusPtr)
 import Control.Monad.Trans.Class (lift)
 import Control.Monad.Trans.Cont (evalContT)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
 import Control.Monad.IO.Class (MonadIO)
 import Data.Typeable (Typeable)
 import Foreign.Storable (Storable)
@@ -55,15 +60,10 @@
 import Vulkan.Dynamic (DeviceCmds(pVkGetDeviceQueue2))
 import Vulkan.Core10.Enums.DeviceQueueCreateFlagBits (DeviceQueueCreateFlags)
 import Vulkan.Core10.Handles (Device_T)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Handles (Queue)
 import Vulkan.Core10.Handles (Queue(Queue))
 import Vulkan.Core10.Handles (Queue_T)
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES))
diff --git a/src/Vulkan/Core11/Originally_Based_On_VK_KHR_protected_memory.hs-boot b/src/Vulkan/Core11/Originally_Based_On_VK_KHR_protected_memory.hs-boot
--- a/src/Vulkan/Core11/Originally_Based_On_VK_KHR_protected_memory.hs-boot
+++ b/src/Vulkan/Core11/Originally_Based_On_VK_KHR_protected_memory.hs-boot
@@ -6,9 +6,10 @@
                                                                   , ProtectedSubmitInfo
                                                                   ) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data DeviceQueueInfo2
 
 instance ToCStruct DeviceQueueInfo2
diff --git a/src/Vulkan/Core11/Originally_Based_On_VK_KHR_subgroup.hs b/src/Vulkan/Core11/Originally_Based_On_VK_KHR_subgroup.hs
--- a/src/Vulkan/Core11/Originally_Based_On_VK_KHR_subgroup.hs
+++ b/src/Vulkan/Core11/Originally_Based_On_VK_KHR_subgroup.hs
@@ -9,6 +9,11 @@
 import Foreign.Marshal.Alloc (allocaBytesAligned)
 import Foreign.Ptr (nullPtr)
 import Foreign.Ptr (plusPtr)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
 import Data.Typeable (Typeable)
 import Foreign.Storable (Storable)
 import Foreign.Storable (Storable(peek))
@@ -21,14 +26,9 @@
 import Vulkan.Core10.FundamentalTypes (bool32ToBool)
 import Vulkan.Core10.FundamentalTypes (boolToBool32)
 import Vulkan.Core10.FundamentalTypes (Bool32)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Enums.ShaderStageFlagBits (ShaderStageFlags)
 import Vulkan.Core10.Enums.StructureType (StructureType)
 import Vulkan.Core11.Enums.SubgroupFeatureFlagBits (SubgroupFeatureFlags)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES))
 import Vulkan.Core10.Enums.StructureType (StructureType(..))
 import Vulkan.Core11.Enums.SubgroupFeatureFlagBits (SubgroupFeatureFlagBits(..))
diff --git a/src/Vulkan/Core11/Originally_Based_On_VK_KHR_subgroup.hs-boot b/src/Vulkan/Core11/Originally_Based_On_VK_KHR_subgroup.hs-boot
--- a/src/Vulkan/Core11/Originally_Based_On_VK_KHR_subgroup.hs-boot
+++ b/src/Vulkan/Core11/Originally_Based_On_VK_KHR_subgroup.hs-boot
@@ -2,9 +2,10 @@
 -- No documentation found for Chapter "Originally_Based_On_VK_KHR_subgroup"
 module Vulkan.Core11.Originally_Based_On_VK_KHR_subgroup  (PhysicalDeviceSubgroupProperties) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data PhysicalDeviceSubgroupProperties
 
 instance ToCStruct PhysicalDeviceSubgroupProperties
diff --git a/src/Vulkan/Core11/Promoted_From_VK_KHR_16bit_storage.hs b/src/Vulkan/Core11/Promoted_From_VK_KHR_16bit_storage.hs
--- a/src/Vulkan/Core11/Promoted_From_VK_KHR_16bit_storage.hs
+++ b/src/Vulkan/Core11/Promoted_From_VK_KHR_16bit_storage.hs
@@ -7,6 +7,11 @@
 import Foreign.Marshal.Alloc (allocaBytesAligned)
 import Foreign.Ptr (nullPtr)
 import Foreign.Ptr (plusPtr)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
 import Data.Typeable (Typeable)
 import Foreign.Storable (Storable)
 import Foreign.Storable (Storable(peek))
@@ -18,12 +23,7 @@
 import Vulkan.Core10.FundamentalTypes (bool32ToBool)
 import Vulkan.Core10.FundamentalTypes (boolToBool32)
 import Vulkan.Core10.FundamentalTypes (Bool32)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES))
 import Vulkan.Core10.Enums.StructureType (StructureType(..))
 -- | VkPhysicalDevice16BitStorageFeatures - Structure describing features
diff --git a/src/Vulkan/Core11/Promoted_From_VK_KHR_16bit_storage.hs-boot b/src/Vulkan/Core11/Promoted_From_VK_KHR_16bit_storage.hs-boot
--- a/src/Vulkan/Core11/Promoted_From_VK_KHR_16bit_storage.hs-boot
+++ b/src/Vulkan/Core11/Promoted_From_VK_KHR_16bit_storage.hs-boot
@@ -2,9 +2,10 @@
 -- No documentation found for Chapter "Promoted_From_VK_KHR_16bit_storage"
 module Vulkan.Core11.Promoted_From_VK_KHR_16bit_storage  (PhysicalDevice16BitStorageFeatures) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data PhysicalDevice16BitStorageFeatures
 
 instance ToCStruct PhysicalDevice16BitStorageFeatures
diff --git a/src/Vulkan/Core11/Promoted_From_VK_KHR_bind_memory2.hs b/src/Vulkan/Core11/Promoted_From_VK_KHR_bind_memory2.hs
--- a/src/Vulkan/Core11/Promoted_From_VK_KHR_bind_memory2.hs
+++ b/src/Vulkan/Core11/Promoted_From_VK_KHR_bind_memory2.hs
@@ -23,6 +23,11 @@
 import Control.Monad.Trans.Cont (evalContT)
 import qualified Data.Vector (imapM_)
 import qualified Data.Vector (length)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
 import Control.Monad.IO.Class (MonadIO)
 import Data.Type.Equality ((:~:)(Refl))
 import Data.Typeable (Typeable)
@@ -56,8 +61,6 @@
 import Vulkan.CStruct.Extends (Extends)
 import Vulkan.CStruct.Extends (Extendss)
 import Vulkan.CStruct.Extends (Extensible(..))
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Handles (Image)
 import Vulkan.CStruct.Extends (PeekChain)
 import Vulkan.CStruct.Extends (PeekChain(..))
@@ -67,10 +70,7 @@
 import Vulkan.Core10.Enums.Result (Result(..))
 import Vulkan.CStruct.Extends (SomeStruct)
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
 import Vulkan.Exception (VulkanException(..))
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO))
 import Vulkan.Core10.Enums.Result (Result(SUCCESS))
@@ -373,7 +373,7 @@
 deriving instance Show (Chain es) => Show (BindBufferMemoryInfo es)
 
 instance Extensible BindBufferMemoryInfo where
-  extensibleType = STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO
+  extensibleTypeName = "BindBufferMemoryInfo"
   setNext x next = x{next = next}
   getNext BindBufferMemoryInfo{..} = next
   extends :: forall e b proxy. Typeable e => proxy e -> (Extends BindBufferMemoryInfo e => b) -> Maybe b
@@ -711,7 +711,7 @@
 deriving instance Show (Chain es) => Show (BindImageMemoryInfo es)
 
 instance Extensible BindImageMemoryInfo where
-  extensibleType = STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO
+  extensibleTypeName = "BindImageMemoryInfo"
   setNext x next = x{next = next}
   getNext BindImageMemoryInfo{..} = next
   extends :: forall e b proxy. Typeable e => proxy e -> (Extends BindImageMemoryInfo e => b) -> Maybe b
diff --git a/src/Vulkan/Core11/Promoted_From_VK_KHR_bind_memory2.hs-boot b/src/Vulkan/Core11/Promoted_From_VK_KHR_bind_memory2.hs-boot
--- a/src/Vulkan/Core11/Promoted_From_VK_KHR_bind_memory2.hs-boot
+++ b/src/Vulkan/Core11/Promoted_From_VK_KHR_bind_memory2.hs-boot
@@ -4,13 +4,13 @@
                                                         , BindImageMemoryInfo
                                                         ) where
 
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (ToCStruct)
 import Data.Kind (Type)
 import {-# SOURCE #-} Vulkan.CStruct.Extends (Chain)
 import {-# SOURCE #-} Vulkan.CStruct.Extends (Extendss)
-import Vulkan.CStruct (FromCStruct)
 import {-# SOURCE #-} Vulkan.CStruct.Extends (PeekChain)
 import {-# SOURCE #-} Vulkan.CStruct.Extends (PokeChain)
-import Vulkan.CStruct (ToCStruct)
 type role BindBufferMemoryInfo nominal
 data BindBufferMemoryInfo (es :: [Type])
 
diff --git a/src/Vulkan/Core11/Promoted_From_VK_KHR_dedicated_allocation.hs b/src/Vulkan/Core11/Promoted_From_VK_KHR_dedicated_allocation.hs
--- a/src/Vulkan/Core11/Promoted_From_VK_KHR_dedicated_allocation.hs
+++ b/src/Vulkan/Core11/Promoted_From_VK_KHR_dedicated_allocation.hs
@@ -8,6 +8,11 @@
 import Foreign.Marshal.Alloc (allocaBytesAligned)
 import Foreign.Ptr (nullPtr)
 import Foreign.Ptr (plusPtr)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
 import Data.Typeable (Typeable)
 import Foreign.Storable (Storable)
 import Foreign.Storable (Storable(peek))
@@ -20,13 +25,8 @@
 import Vulkan.Core10.FundamentalTypes (boolToBool32)
 import Vulkan.Core10.FundamentalTypes (Bool32)
 import Vulkan.Core10.Handles (Buffer)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Handles (Image)
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS))
 import Vulkan.Core10.Enums.StructureType (StructureType(..))
diff --git a/src/Vulkan/Core11/Promoted_From_VK_KHR_dedicated_allocation.hs-boot b/src/Vulkan/Core11/Promoted_From_VK_KHR_dedicated_allocation.hs-boot
--- a/src/Vulkan/Core11/Promoted_From_VK_KHR_dedicated_allocation.hs-boot
+++ b/src/Vulkan/Core11/Promoted_From_VK_KHR_dedicated_allocation.hs-boot
@@ -4,9 +4,10 @@
                                                                 , MemoryDedicatedRequirements
                                                                 ) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data MemoryDedicatedAllocateInfo
 
 instance ToCStruct MemoryDedicatedAllocateInfo
diff --git a/src/Vulkan/Core11/Promoted_From_VK_KHR_descriptor_update_template.hs b/src/Vulkan/Core11/Promoted_From_VK_KHR_descriptor_update_template.hs
--- a/src/Vulkan/Core11/Promoted_From_VK_KHR_descriptor_update_template.hs
+++ b/src/Vulkan/Core11/Promoted_From_VK_KHR_descriptor_update_template.hs
@@ -25,14 +25,21 @@
 import GHC.Ptr (nullFunPtr)
 import Foreign.Ptr (nullPtr)
 import Foreign.Ptr (plusPtr)
+import Data.Coerce (coerce)
 import Control.Monad.Trans.Class (lift)
 import Control.Monad.Trans.Cont (evalContT)
 import Data.Vector (generateM)
 import qualified Data.Vector (imapM_)
 import qualified Data.Vector (length)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
 import Control.Monad.IO.Class (MonadIO)
 import Data.Typeable (Typeable)
 import Foreign.C.Types (CSize)
+import Foreign.C.Types (CSize(..))
 import Foreign.C.Types (CSize(CSize))
 import Foreign.Storable (Storable)
 import Foreign.Storable (Storable(peek))
@@ -65,17 +72,12 @@
 import Vulkan.Dynamic (DeviceCmds(pVkDestroyDescriptorUpdateTemplate))
 import Vulkan.Dynamic (DeviceCmds(pVkUpdateDescriptorSetWithTemplate))
 import Vulkan.Core10.Handles (Device_T)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Enums.PipelineBindPoint (PipelineBindPoint)
 import Vulkan.Core10.Handles (PipelineLayout)
 import Vulkan.Core10.Enums.Result (Result)
 import Vulkan.Core10.Enums.Result (Result(..))
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
 import Vulkan.Exception (VulkanException(..))
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO))
 import Vulkan.Core10.Enums.Result (Result(SUCCESS))
 import Vulkan.Core11.Handles (DescriptorUpdateTemplate(..))
@@ -444,7 +446,7 @@
     -- descriptor update template.
     dstBinding :: Word32
   , -- | @dstArrayElement@ is the starting element in the array belonging to
-    -- @dstBinding@. If the descriptor binding identified by @srcBinding@ has a
+    -- @dstBinding@. If the descriptor binding identified by @dstBinding@ has a
     -- descriptor type of
     -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT'
     -- then @dstArrayElement@ specifies the starting byte offset to update.
@@ -518,7 +520,7 @@
     offset <- peek @CSize ((p `plusPtr` 16 :: Ptr CSize))
     stride <- peek @CSize ((p `plusPtr` 24 :: Ptr CSize))
     pure $ DescriptorUpdateTemplateEntry
-             dstBinding dstArrayElement descriptorCount descriptorType ((\(CSize a) -> a) offset) ((\(CSize a) -> a) stride)
+             dstBinding dstArrayElement descriptorCount descriptorType (coerce @CSize @Word64 offset) (coerce @CSize @Word64 stride)
 
 instance Storable DescriptorUpdateTemplateEntry where
   sizeOf ~_ = 32
diff --git a/src/Vulkan/Core11/Promoted_From_VK_KHR_descriptor_update_template.hs-boot b/src/Vulkan/Core11/Promoted_From_VK_KHR_descriptor_update_template.hs-boot
--- a/src/Vulkan/Core11/Promoted_From_VK_KHR_descriptor_update_template.hs-boot
+++ b/src/Vulkan/Core11/Promoted_From_VK_KHR_descriptor_update_template.hs-boot
@@ -4,9 +4,10 @@
                                                                       , DescriptorUpdateTemplateEntry
                                                                       ) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data DescriptorUpdateTemplateCreateInfo
 
 instance ToCStruct DescriptorUpdateTemplateCreateInfo
diff --git a/src/Vulkan/Core11/Promoted_From_VK_KHR_device_group.hs b/src/Vulkan/Core11/Promoted_From_VK_KHR_device_group.hs
--- a/src/Vulkan/Core11/Promoted_From_VK_KHR_device_group.hs
+++ b/src/Vulkan/Core11/Promoted_From_VK_KHR_device_group.hs
@@ -36,6 +36,11 @@
 import Data.Vector (generateM)
 import qualified Data.Vector (imapM_)
 import qualified Data.Vector (length)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
 import Control.Monad.IO.Class (MonadIO)
 import Data.Typeable (Typeable)
 import Foreign.Storable (Storable)
@@ -62,16 +67,11 @@
 import Vulkan.Dynamic (DeviceCmds(pVkCmdSetDeviceMask))
 import Vulkan.Dynamic (DeviceCmds(pVkGetDeviceGroupPeerMemoryFeatures))
 import Vulkan.Core10.Handles (Device_T)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core11.Enums.MemoryAllocateFlagBits (MemoryAllocateFlags)
 import Vulkan.Core11.Enums.PeerMemoryFeatureFlagBits (PeerMemoryFeatureFlagBits(..))
 import Vulkan.Core11.Enums.PeerMemoryFeatureFlagBits (PeerMemoryFeatureFlags)
 import Vulkan.Core10.FundamentalTypes (Rect2D)
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.PipelineCreateFlagBits (PipelineCreateFlags)
 import Vulkan.Core10.Enums.PipelineCreateFlagBits (PipelineCreateFlagBits(PIPELINE_CREATE_DISPATCH_BASE_BIT))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO))
diff --git a/src/Vulkan/Core11/Promoted_From_VK_KHR_device_group.hs-boot b/src/Vulkan/Core11/Promoted_From_VK_KHR_device_group.hs-boot
--- a/src/Vulkan/Core11/Promoted_From_VK_KHR_device_group.hs-boot
+++ b/src/Vulkan/Core11/Promoted_From_VK_KHR_device_group.hs-boot
@@ -7,9 +7,10 @@
                                                         , MemoryAllocateFlagsInfo
                                                         ) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data DeviceGroupBindSparseInfo
 
 instance ToCStruct DeviceGroupBindSparseInfo
diff --git a/src/Vulkan/Core11/Promoted_From_VK_KHR_device_groupAndVK_KHR_bind_memory2.hs b/src/Vulkan/Core11/Promoted_From_VK_KHR_device_groupAndVK_KHR_bind_memory2.hs
--- a/src/Vulkan/Core11/Promoted_From_VK_KHR_device_groupAndVK_KHR_bind_memory2.hs
+++ b/src/Vulkan/Core11/Promoted_From_VK_KHR_device_groupAndVK_KHR_bind_memory2.hs
@@ -15,6 +15,11 @@
 import Data.Vector (generateM)
 import qualified Data.Vector (imapM_)
 import qualified Data.Vector (length)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
 import Data.Typeable (Typeable)
 import Foreign.Storable (Storable(peek))
 import Foreign.Storable (Storable(poke))
@@ -25,13 +30,8 @@
 import Control.Monad.Trans.Cont (ContT(..))
 import Data.Vector (Vector)
 import Vulkan.CStruct.Utils (advancePtrBytes)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.FundamentalTypes (Rect2D)
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO))
 import Vulkan.Core10.Enums.ImageCreateFlagBits (ImageCreateFlagBits(..))
diff --git a/src/Vulkan/Core11/Promoted_From_VK_KHR_device_groupAndVK_KHR_bind_memory2.hs-boot b/src/Vulkan/Core11/Promoted_From_VK_KHR_device_groupAndVK_KHR_bind_memory2.hs-boot
--- a/src/Vulkan/Core11/Promoted_From_VK_KHR_device_groupAndVK_KHR_bind_memory2.hs-boot
+++ b/src/Vulkan/Core11/Promoted_From_VK_KHR_device_groupAndVK_KHR_bind_memory2.hs-boot
@@ -4,9 +4,10 @@
                                                                               , BindImageMemoryDeviceGroupInfo
                                                                               ) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data BindBufferMemoryDeviceGroupInfo
 
 instance ToCStruct BindBufferMemoryDeviceGroupInfo
diff --git a/src/Vulkan/Core11/Promoted_From_VK_KHR_device_group_creation.hs b/src/Vulkan/Core11/Promoted_From_VK_KHR_device_group_creation.hs
--- a/src/Vulkan/Core11/Promoted_From_VK_KHR_device_group_creation.hs
+++ b/src/Vulkan/Core11/Promoted_From_VK_KHR_device_group_creation.hs
@@ -28,6 +28,11 @@
 import Data.Vector (generateM)
 import qualified Data.Vector (imapM_)
 import qualified Data.Vector (length)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
 import Control.Monad.IO.Class (MonadIO)
 import Data.Typeable (Typeable)
 import Foreign.Storable (Storable)
@@ -49,8 +54,6 @@
 import Vulkan.CStruct.Utils (lowerArrayPtr)
 import Vulkan.NamedType ((:::))
 import Vulkan.Core10.FundamentalTypes (Bool32)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Handles (Instance)
 import Vulkan.Core10.Handles (Instance(..))
 import Vulkan.Dynamic (InstanceCmds(pVkEnumeratePhysicalDeviceGroups))
@@ -60,10 +63,7 @@
 import Vulkan.Core10.Enums.Result (Result)
 import Vulkan.Core10.Enums.Result (Result(..))
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
 import Vulkan.Exception (VulkanException(..))
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.APIConstants (pattern MAX_DEVICE_GROUP_SIZE)
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES))
diff --git a/src/Vulkan/Core11/Promoted_From_VK_KHR_device_group_creation.hs-boot b/src/Vulkan/Core11/Promoted_From_VK_KHR_device_group_creation.hs-boot
--- a/src/Vulkan/Core11/Promoted_From_VK_KHR_device_group_creation.hs-boot
+++ b/src/Vulkan/Core11/Promoted_From_VK_KHR_device_group_creation.hs-boot
@@ -4,9 +4,10 @@
                                                                  , PhysicalDeviceGroupProperties
                                                                  ) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data DeviceGroupDeviceCreateInfo
 
 instance ToCStruct DeviceGroupDeviceCreateInfo
diff --git a/src/Vulkan/Core11/Promoted_From_VK_KHR_external_fence.hs b/src/Vulkan/Core11/Promoted_From_VK_KHR_external_fence.hs
--- a/src/Vulkan/Core11/Promoted_From_VK_KHR_external_fence.hs
+++ b/src/Vulkan/Core11/Promoted_From_VK_KHR_external_fence.hs
@@ -9,6 +9,11 @@
 import Foreign.Marshal.Alloc (allocaBytesAligned)
 import Foreign.Ptr (nullPtr)
 import Foreign.Ptr (plusPtr)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
 import Data.Typeable (Typeable)
 import Foreign.Storable (Storable)
 import Foreign.Storable (Storable(peek))
@@ -18,12 +23,7 @@
 import Foreign.Ptr (Ptr)
 import Data.Kind (Type)
 import Vulkan.Core11.Enums.ExternalFenceHandleTypeFlagBits (ExternalFenceHandleTypeFlags)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO))
 import Vulkan.Core11.Enums.FenceImportFlagBits (FenceImportFlagBits(..))
 import Vulkan.Core11.Enums.FenceImportFlagBits (FenceImportFlags)
diff --git a/src/Vulkan/Core11/Promoted_From_VK_KHR_external_fence.hs-boot b/src/Vulkan/Core11/Promoted_From_VK_KHR_external_fence.hs-boot
--- a/src/Vulkan/Core11/Promoted_From_VK_KHR_external_fence.hs-boot
+++ b/src/Vulkan/Core11/Promoted_From_VK_KHR_external_fence.hs-boot
@@ -2,9 +2,10 @@
 -- No documentation found for Chapter "Promoted_From_VK_KHR_external_fence"
 module Vulkan.Core11.Promoted_From_VK_KHR_external_fence  (ExportFenceCreateInfo) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data ExportFenceCreateInfo
 
 instance ToCStruct ExportFenceCreateInfo
diff --git a/src/Vulkan/Core11/Promoted_From_VK_KHR_external_fence_capabilities.hs b/src/Vulkan/Core11/Promoted_From_VK_KHR_external_fence_capabilities.hs
--- a/src/Vulkan/Core11/Promoted_From_VK_KHR_external_fence_capabilities.hs
+++ b/src/Vulkan/Core11/Promoted_From_VK_KHR_external_fence_capabilities.hs
@@ -20,6 +20,11 @@
 import Foreign.Ptr (plusPtr)
 import Control.Monad.Trans.Class (lift)
 import Control.Monad.Trans.Cont (evalContT)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
 import Control.Monad.IO.Class (MonadIO)
 import Data.Typeable (Typeable)
 import Foreign.Storable (Storable)
@@ -36,16 +41,11 @@
 import Vulkan.Core11.Enums.ExternalFenceFeatureFlagBits (ExternalFenceFeatureFlags)
 import Vulkan.Core11.Enums.ExternalFenceHandleTypeFlagBits (ExternalFenceHandleTypeFlagBits)
 import Vulkan.Core11.Enums.ExternalFenceHandleTypeFlagBits (ExternalFenceHandleTypeFlags)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Dynamic (InstanceCmds(pVkGetPhysicalDeviceExternalFenceProperties))
 import Vulkan.Core10.Handles (PhysicalDevice)
 import Vulkan.Core10.Handles (PhysicalDevice(..))
 import Vulkan.Core10.Handles (PhysicalDevice_T)
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO))
 import Vulkan.Core11.Enums.ExternalFenceFeatureFlagBits (ExternalFenceFeatureFlagBits(..))
diff --git a/src/Vulkan/Core11/Promoted_From_VK_KHR_external_fence_capabilities.hs-boot b/src/Vulkan/Core11/Promoted_From_VK_KHR_external_fence_capabilities.hs-boot
--- a/src/Vulkan/Core11/Promoted_From_VK_KHR_external_fence_capabilities.hs-boot
+++ b/src/Vulkan/Core11/Promoted_From_VK_KHR_external_fence_capabilities.hs-boot
@@ -4,9 +4,10 @@
                                                                        , PhysicalDeviceExternalFenceInfo
                                                                        ) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data ExternalFenceProperties
 
 instance ToCStruct ExternalFenceProperties
diff --git a/src/Vulkan/Core11/Promoted_From_VK_KHR_external_memory.hs b/src/Vulkan/Core11/Promoted_From_VK_KHR_external_memory.hs
--- a/src/Vulkan/Core11/Promoted_From_VK_KHR_external_memory.hs
+++ b/src/Vulkan/Core11/Promoted_From_VK_KHR_external_memory.hs
@@ -12,6 +12,11 @@
 import Foreign.Marshal.Alloc (allocaBytesAligned)
 import Foreign.Ptr (nullPtr)
 import Foreign.Ptr (plusPtr)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
 import Data.Typeable (Typeable)
 import Foreign.Storable (Storable)
 import Foreign.Storable (Storable(peek))
@@ -21,12 +26,7 @@
 import Foreign.Ptr (Ptr)
 import Data.Kind (Type)
 import Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits (ExternalMemoryHandleTypeFlags)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO))
diff --git a/src/Vulkan/Core11/Promoted_From_VK_KHR_external_memory.hs-boot b/src/Vulkan/Core11/Promoted_From_VK_KHR_external_memory.hs-boot
--- a/src/Vulkan/Core11/Promoted_From_VK_KHR_external_memory.hs-boot
+++ b/src/Vulkan/Core11/Promoted_From_VK_KHR_external_memory.hs-boot
@@ -5,9 +5,10 @@
                                                            , ExternalMemoryImageCreateInfo
                                                            ) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data ExportMemoryAllocateInfo
 
 instance ToCStruct ExportMemoryAllocateInfo
diff --git a/src/Vulkan/Core11/Promoted_From_VK_KHR_external_memory_capabilities.hs b/src/Vulkan/Core11/Promoted_From_VK_KHR_external_memory_capabilities.hs
--- a/src/Vulkan/Core11/Promoted_From_VK_KHR_external_memory_capabilities.hs
+++ b/src/Vulkan/Core11/Promoted_From_VK_KHR_external_memory_capabilities.hs
@@ -27,6 +27,11 @@
 import Foreign.Ptr (plusPtr)
 import Control.Monad.Trans.Class (lift)
 import Control.Monad.Trans.Cont (evalContT)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
 import Control.Monad.IO.Class (MonadIO)
 import Data.Typeable (Typeable)
 import Foreign.Storable (Storable)
@@ -53,18 +58,13 @@
 import Vulkan.Core11.Enums.ExternalMemoryFeatureFlagBits (ExternalMemoryFeatureFlags)
 import Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits (ExternalMemoryHandleTypeFlagBits)
 import Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits (ExternalMemoryHandleTypeFlags)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Dynamic (InstanceCmds(pVkGetPhysicalDeviceExternalBufferProperties))
 import Vulkan.Core10.APIConstants (LUID_SIZE)
 import Vulkan.Core10.Handles (PhysicalDevice)
 import Vulkan.Core10.Handles (PhysicalDevice(..))
 import Vulkan.Core10.Handles (PhysicalDevice_T)
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
 import Vulkan.Core10.APIConstants (UUID_SIZE)
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO))
diff --git a/src/Vulkan/Core11/Promoted_From_VK_KHR_external_memory_capabilities.hs-boot b/src/Vulkan/Core11/Promoted_From_VK_KHR_external_memory_capabilities.hs-boot
--- a/src/Vulkan/Core11/Promoted_From_VK_KHR_external_memory_capabilities.hs-boot
+++ b/src/Vulkan/Core11/Promoted_From_VK_KHR_external_memory_capabilities.hs-boot
@@ -8,9 +8,10 @@
                                                                         , PhysicalDeviceIDProperties
                                                                         ) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data ExternalBufferProperties
 
 instance ToCStruct ExternalBufferProperties
diff --git a/src/Vulkan/Core11/Promoted_From_VK_KHR_external_semaphore.hs b/src/Vulkan/Core11/Promoted_From_VK_KHR_external_semaphore.hs
--- a/src/Vulkan/Core11/Promoted_From_VK_KHR_external_semaphore.hs
+++ b/src/Vulkan/Core11/Promoted_From_VK_KHR_external_semaphore.hs
@@ -9,6 +9,11 @@
 import Foreign.Marshal.Alloc (allocaBytesAligned)
 import Foreign.Ptr (nullPtr)
 import Foreign.Ptr (plusPtr)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
 import Data.Typeable (Typeable)
 import Foreign.Storable (Storable)
 import Foreign.Storable (Storable(peek))
@@ -18,12 +23,7 @@
 import Foreign.Ptr (Ptr)
 import Data.Kind (Type)
 import Vulkan.Core11.Enums.ExternalSemaphoreHandleTypeFlagBits (ExternalSemaphoreHandleTypeFlags)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO))
 import Vulkan.Core11.Enums.SemaphoreImportFlagBits (SemaphoreImportFlagBits(..))
 import Vulkan.Core11.Enums.SemaphoreImportFlagBits (SemaphoreImportFlags)
diff --git a/src/Vulkan/Core11/Promoted_From_VK_KHR_external_semaphore.hs-boot b/src/Vulkan/Core11/Promoted_From_VK_KHR_external_semaphore.hs-boot
--- a/src/Vulkan/Core11/Promoted_From_VK_KHR_external_semaphore.hs-boot
+++ b/src/Vulkan/Core11/Promoted_From_VK_KHR_external_semaphore.hs-boot
@@ -2,9 +2,10 @@
 -- No documentation found for Chapter "Promoted_From_VK_KHR_external_semaphore"
 module Vulkan.Core11.Promoted_From_VK_KHR_external_semaphore  (ExportSemaphoreCreateInfo) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data ExportSemaphoreCreateInfo
 
 instance ToCStruct ExportSemaphoreCreateInfo
diff --git a/src/Vulkan/Core11/Promoted_From_VK_KHR_external_semaphore_capabilities.hs b/src/Vulkan/Core11/Promoted_From_VK_KHR_external_semaphore_capabilities.hs
--- a/src/Vulkan/Core11/Promoted_From_VK_KHR_external_semaphore_capabilities.hs
+++ b/src/Vulkan/Core11/Promoted_From_VK_KHR_external_semaphore_capabilities.hs
@@ -22,6 +22,11 @@
 import Foreign.Ptr (plusPtr)
 import Control.Monad.Trans.Class (lift)
 import Control.Monad.Trans.Cont (evalContT)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
 import Control.Monad.IO.Class (MonadIO)
 import Data.Type.Equality ((:~:)(Refl))
 import Data.Typeable (Typeable)
@@ -44,8 +49,6 @@
 import Vulkan.Core11.Enums.ExternalSemaphoreFeatureFlagBits (ExternalSemaphoreFeatureFlags)
 import Vulkan.Core11.Enums.ExternalSemaphoreHandleTypeFlagBits (ExternalSemaphoreHandleTypeFlagBits)
 import Vulkan.Core11.Enums.ExternalSemaphoreHandleTypeFlagBits (ExternalSemaphoreHandleTypeFlags)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Dynamic (InstanceCmds(pVkGetPhysicalDeviceExternalSemaphoreProperties))
 import Vulkan.CStruct.Extends (PeekChain)
 import Vulkan.CStruct.Extends (PeekChain(..))
@@ -57,9 +60,6 @@
 import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore (SemaphoreTypeCreateInfo)
 import Vulkan.CStruct.Extends (SomeStruct)
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO))
 import Vulkan.Core11.Enums.ExternalSemaphoreFeatureFlagBits (ExternalSemaphoreFeatureFlagBits(..))
@@ -157,7 +157,7 @@
 deriving instance Show (Chain es) => Show (PhysicalDeviceExternalSemaphoreInfo es)
 
 instance Extensible PhysicalDeviceExternalSemaphoreInfo where
-  extensibleType = STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO
+  extensibleTypeName = "PhysicalDeviceExternalSemaphoreInfo"
   setNext x next = x{next = next}
   getNext PhysicalDeviceExternalSemaphoreInfo{..} = next
   extends :: forall e b proxy. Typeable e => proxy e -> (Extends PhysicalDeviceExternalSemaphoreInfo e => b) -> Maybe b
diff --git a/src/Vulkan/Core11/Promoted_From_VK_KHR_external_semaphore_capabilities.hs-boot b/src/Vulkan/Core11/Promoted_From_VK_KHR_external_semaphore_capabilities.hs-boot
--- a/src/Vulkan/Core11/Promoted_From_VK_KHR_external_semaphore_capabilities.hs-boot
+++ b/src/Vulkan/Core11/Promoted_From_VK_KHR_external_semaphore_capabilities.hs-boot
@@ -4,13 +4,13 @@
                                                                            , PhysicalDeviceExternalSemaphoreInfo
                                                                            ) where
 
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (ToCStruct)
 import Data.Kind (Type)
 import {-# SOURCE #-} Vulkan.CStruct.Extends (Chain)
 import {-# SOURCE #-} Vulkan.CStruct.Extends (Extendss)
-import Vulkan.CStruct (FromCStruct)
 import {-# SOURCE #-} Vulkan.CStruct.Extends (PeekChain)
 import {-# SOURCE #-} Vulkan.CStruct.Extends (PokeChain)
-import Vulkan.CStruct (ToCStruct)
 data ExternalSemaphoreProperties
 
 instance ToCStruct ExternalSemaphoreProperties
diff --git a/src/Vulkan/Core11/Promoted_From_VK_KHR_get_memory_requirements2.hs b/src/Vulkan/Core11/Promoted_From_VK_KHR_get_memory_requirements2.hs
--- a/src/Vulkan/Core11/Promoted_From_VK_KHR_get_memory_requirements2.hs
+++ b/src/Vulkan/Core11/Promoted_From_VK_KHR_get_memory_requirements2.hs
@@ -27,6 +27,11 @@
 import Control.Monad.Trans.Class (lift)
 import Control.Monad.Trans.Cont (evalContT)
 import Data.Vector (generateM)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
 import Control.Monad.IO.Class (MonadIO)
 import Data.Type.Equality ((:~:)(Refl))
 import Data.Typeable (Typeable)
@@ -57,8 +62,6 @@
 import Vulkan.CStruct.Extends (Extends)
 import Vulkan.CStruct.Extends (Extendss)
 import Vulkan.CStruct.Extends (Extensible(..))
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Handles (Image)
 import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion (ImagePlaneMemoryRequirementsInfo)
 import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_dedicated_allocation (MemoryDedicatedRequirements)
@@ -70,9 +73,6 @@
 import Vulkan.CStruct.Extends (SomeStruct)
 import Vulkan.Core10.SparseResourceMemoryManagement (SparseImageMemoryRequirements)
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2))
@@ -138,7 +138,7 @@
 -- 'Vulkan.Core10.Handles.Device', 'ImageMemoryRequirementsInfo2',
 -- 'MemoryRequirements2'
 getImageMemoryRequirements2 :: forall a b io
-                             . (Extendss ImageMemoryRequirementsInfo2 a, Extendss MemoryRequirements2 b, PokeChain a, PokeChain b, PeekChain b, MonadIO io)
+                             . (Extendss ImageMemoryRequirementsInfo2 a, PokeChain a, Extendss MemoryRequirements2 b, PokeChain b, PeekChain b, MonadIO io)
                             => -- | @device@ is the logical device that owns the image.
                                --
                                -- #VUID-vkGetImageMemoryRequirements2-device-parameter# @device@ /must/ be
@@ -354,7 +354,7 @@
 deriving instance Show (Chain es) => Show (ImageMemoryRequirementsInfo2 es)
 
 instance Extensible ImageMemoryRequirementsInfo2 where
-  extensibleType = STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2
+  extensibleTypeName = "ImageMemoryRequirementsInfo2"
   setNext x next = x{next = next}
   getNext ImageMemoryRequirementsInfo2{..} = next
   extends :: forall e b proxy. Typeable e => proxy e -> (Extends ImageMemoryRequirementsInfo2 e => b) -> Maybe b
@@ -485,7 +485,7 @@
 deriving instance Show (Chain es) => Show (MemoryRequirements2 es)
 
 instance Extensible MemoryRequirements2 where
-  extensibleType = STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2
+  extensibleTypeName = "MemoryRequirements2"
   setNext x next = x{next = next}
   getNext MemoryRequirements2{..} = next
   extends :: forall e b proxy. Typeable e => proxy e -> (Extends MemoryRequirements2 e => b) -> Maybe b
diff --git a/src/Vulkan/Core11/Promoted_From_VK_KHR_get_memory_requirements2.hs-boot b/src/Vulkan/Core11/Promoted_From_VK_KHR_get_memory_requirements2.hs-boot
--- a/src/Vulkan/Core11/Promoted_From_VK_KHR_get_memory_requirements2.hs-boot
+++ b/src/Vulkan/Core11/Promoted_From_VK_KHR_get_memory_requirements2.hs-boot
@@ -7,13 +7,13 @@
                                                                     , SparseImageMemoryRequirements2
                                                                     ) where
 
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (ToCStruct)
 import Data.Kind (Type)
 import {-# SOURCE #-} Vulkan.CStruct.Extends (Chain)
 import {-# SOURCE #-} Vulkan.CStruct.Extends (Extendss)
-import Vulkan.CStruct (FromCStruct)
 import {-# SOURCE #-} Vulkan.CStruct.Extends (PeekChain)
 import {-# SOURCE #-} Vulkan.CStruct.Extends (PokeChain)
-import Vulkan.CStruct (ToCStruct)
 data BufferMemoryRequirementsInfo2
 
 instance ToCStruct BufferMemoryRequirementsInfo2
diff --git a/src/Vulkan/Core11/Promoted_From_VK_KHR_get_physical_device_properties2.hs b/src/Vulkan/Core11/Promoted_From_VK_KHR_get_physical_device_properties2.hs
--- a/src/Vulkan/Core11/Promoted_From_VK_KHR_get_physical_device_properties2.hs
+++ b/src/Vulkan/Core11/Promoted_From_VK_KHR_get_physical_device_properties2.hs
@@ -36,6 +36,11 @@
 import Control.Monad.Trans.Class (lift)
 import Control.Monad.Trans.Cont (evalContT)
 import Data.Vector (generateM)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
 import Control.Monad.IO.Class (MonadIO)
 import Data.Type.Equality ((:~:)(Refl))
 import Data.Typeable (Typeable)
@@ -66,8 +71,6 @@
 import Vulkan.Core10.Enums.Format (Format)
 import Vulkan.Core10.Enums.Format (Format(..))
 import Vulkan.Core10.DeviceInitialization (FormatProperties)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Enums.ImageCreateFlagBits (ImageCreateFlags)
 import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_image_format_list (ImageFormatListCreateInfo)
 import Vulkan.Core10.DeviceInitialization (ImageFormatProperties)
@@ -229,10 +232,7 @@
 import Vulkan.Core10.SparseResourceMemoryManagement (SparseImageFormatProperties)
 import Vulkan.Core10.Enums.StructureType (StructureType)
 import {-# SOURCE #-} Vulkan.Extensions.VK_AMD_texture_gather_bias_lod (TextureLODGatherFormatPropertiesAMD)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
 import Vulkan.Exception (VulkanException(..))
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_FORMAT_PROPERTIES_2))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2))
@@ -437,7 +437,7 @@
 -- 'ImageFormatProperties2', 'Vulkan.Core10.Handles.PhysicalDevice',
 -- 'PhysicalDeviceImageFormatInfo2'
 getPhysicalDeviceImageFormatProperties2 :: forall a b io
-                                         . (Extendss PhysicalDeviceImageFormatInfo2 a, Extendss ImageFormatProperties2 b, PokeChain a, PokeChain b, PeekChain b, MonadIO io)
+                                         . (Extendss PhysicalDeviceImageFormatInfo2 a, PokeChain a, Extendss ImageFormatProperties2 b, PokeChain b, PeekChain b, MonadIO io)
                                         => -- | @physicalDevice@ is the physical device from which to query the image
                                            -- capabilities.
                                            PhysicalDevice
@@ -667,7 +667,7 @@
 deriving instance Show (Chain es) => Show (PhysicalDeviceFeatures2 es)
 
 instance Extensible PhysicalDeviceFeatures2 where
-  extensibleType = STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2
+  extensibleTypeName = "PhysicalDeviceFeatures2"
   setNext x next = x{next = next}
   getNext PhysicalDeviceFeatures2{..} = next
   extends :: forall e b proxy. Typeable e => proxy e -> (Extends PhysicalDeviceFeatures2 e => b) -> Maybe b
@@ -871,7 +871,7 @@
 deriving instance Show (Chain es) => Show (PhysicalDeviceProperties2 es)
 
 instance Extensible PhysicalDeviceProperties2 where
-  extensibleType = STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2
+  extensibleTypeName = "PhysicalDeviceProperties2"
   setNext x next = x{next = next}
   getNext PhysicalDeviceProperties2{..} = next
   extends :: forall e b proxy. Typeable e => proxy e -> (Extends PhysicalDeviceProperties2 e => b) -> Maybe b
@@ -990,7 +990,7 @@
 deriving instance Show (Chain es) => Show (FormatProperties2 es)
 
 instance Extensible FormatProperties2 where
-  extensibleType = STRUCTURE_TYPE_FORMAT_PROPERTIES_2
+  extensibleTypeName = "FormatProperties2"
   setNext x next = x{next = next}
   getNext FormatProperties2{..} = next
   extends :: forall e b proxy. Typeable e => proxy e -> (Extends FormatProperties2 e => b) -> Maybe b
@@ -1090,7 +1090,7 @@
 deriving instance Show (Chain es) => Show (ImageFormatProperties2 es)
 
 instance Extensible ImageFormatProperties2 where
-  extensibleType = STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2
+  extensibleTypeName = "ImageFormatProperties2"
   setNext x next = x{next = next}
   getNext ImageFormatProperties2{..} = next
   extends :: forall e b proxy. Typeable e => proxy e -> (Extends ImageFormatProperties2 e => b) -> Maybe b
@@ -1245,7 +1245,7 @@
 deriving instance Show (Chain es) => Show (PhysicalDeviceImageFormatInfo2 es)
 
 instance Extensible PhysicalDeviceImageFormatInfo2 where
-  extensibleType = STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2
+  extensibleTypeName = "PhysicalDeviceImageFormatInfo2"
   setNext x next = x{next = next}
   getNext PhysicalDeviceImageFormatInfo2{..} = next
   extends :: forall e b proxy. Typeable e => proxy e -> (Extends PhysicalDeviceImageFormatInfo2 e => b) -> Maybe b
@@ -1340,7 +1340,7 @@
 deriving instance Show (Chain es) => Show (QueueFamilyProperties2 es)
 
 instance Extensible QueueFamilyProperties2 where
-  extensibleType = STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2
+  extensibleTypeName = "QueueFamilyProperties2"
   setNext x next = x{next = next}
   getNext QueueFamilyProperties2{..} = next
   extends :: forall e b proxy. Typeable e => proxy e -> (Extends QueueFamilyProperties2 e => b) -> Maybe b
@@ -1417,7 +1417,7 @@
 deriving instance Show (Chain es) => Show (PhysicalDeviceMemoryProperties2 es)
 
 instance Extensible PhysicalDeviceMemoryProperties2 where
-  extensibleType = STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2
+  extensibleTypeName = "PhysicalDeviceMemoryProperties2"
   setNext x next = x{next = next}
   getNext PhysicalDeviceMemoryProperties2{..} = next
   extends :: forall e b proxy. Typeable e => proxy e -> (Extends PhysicalDeviceMemoryProperties2 e => b) -> Maybe b
diff --git a/src/Vulkan/Core11/Promoted_From_VK_KHR_get_physical_device_properties2.hs-boot b/src/Vulkan/Core11/Promoted_From_VK_KHR_get_physical_device_properties2.hs-boot
--- a/src/Vulkan/Core11/Promoted_From_VK_KHR_get_physical_device_properties2.hs-boot
+++ b/src/Vulkan/Core11/Promoted_From_VK_KHR_get_physical_device_properties2.hs-boot
@@ -11,13 +11,13 @@
                                                                            , SparseImageFormatProperties2
                                                                            ) where
 
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (ToCStruct)
 import Data.Kind (Type)
 import {-# SOURCE #-} Vulkan.CStruct.Extends (Chain)
 import {-# SOURCE #-} Vulkan.CStruct.Extends (Extendss)
-import Vulkan.CStruct (FromCStruct)
 import {-# SOURCE #-} Vulkan.CStruct.Extends (PeekChain)
 import {-# SOURCE #-} Vulkan.CStruct.Extends (PokeChain)
-import Vulkan.CStruct (ToCStruct)
 type role FormatProperties2 nominal
 data FormatProperties2 (es :: [Type])
 
diff --git a/src/Vulkan/Core11/Promoted_From_VK_KHR_maintenance2.hs b/src/Vulkan/Core11/Promoted_From_VK_KHR_maintenance2.hs
--- a/src/Vulkan/Core11/Promoted_From_VK_KHR_maintenance2.hs
+++ b/src/Vulkan/Core11/Promoted_From_VK_KHR_maintenance2.hs
@@ -21,6 +21,11 @@
 import Data.Vector (generateM)
 import qualified Data.Vector (imapM_)
 import qualified Data.Vector (length)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
 import Data.Typeable (Typeable)
 import Foreign.Storable (Storable)
 import Foreign.Storable (Storable(peek))
@@ -33,16 +38,11 @@
 import Control.Monad.Trans.Cont (ContT(..))
 import Data.Vector (Vector)
 import Vulkan.CStruct.Utils (advancePtrBytes)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Enums.ImageAspectFlagBits (ImageAspectFlags)
 import Vulkan.Core10.Enums.ImageUsageFlagBits (ImageUsageFlags)
 import Vulkan.Core11.Enums.PointClippingBehavior (PointClippingBehavior)
 import Vulkan.Core10.Enums.StructureType (StructureType)
 import Vulkan.Core11.Enums.TessellationDomainOrigin (TessellationDomainOrigin)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO))
diff --git a/src/Vulkan/Core11/Promoted_From_VK_KHR_maintenance2.hs-boot b/src/Vulkan/Core11/Promoted_From_VK_KHR_maintenance2.hs-boot
--- a/src/Vulkan/Core11/Promoted_From_VK_KHR_maintenance2.hs-boot
+++ b/src/Vulkan/Core11/Promoted_From_VK_KHR_maintenance2.hs-boot
@@ -7,9 +7,10 @@
                                                         , RenderPassInputAttachmentAspectCreateInfo
                                                         ) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data ImageViewUsageCreateInfo
 
 instance ToCStruct ImageViewUsageCreateInfo
diff --git a/src/Vulkan/Core11/Promoted_From_VK_KHR_maintenance3.hs b/src/Vulkan/Core11/Promoted_From_VK_KHR_maintenance3.hs
--- a/src/Vulkan/Core11/Promoted_From_VK_KHR_maintenance3.hs
+++ b/src/Vulkan/Core11/Promoted_From_VK_KHR_maintenance3.hs
@@ -18,6 +18,11 @@
 import Foreign.Ptr (plusPtr)
 import Control.Monad.Trans.Class (lift)
 import Control.Monad.Trans.Cont (evalContT)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
 import Control.Monad.IO.Class (MonadIO)
 import Data.Type.Equality ((:~:)(Refl))
 import Data.Typeable (Typeable)
@@ -48,17 +53,12 @@
 import Vulkan.CStruct.Extends (Extends)
 import Vulkan.CStruct.Extends (Extendss)
 import Vulkan.CStruct.Extends (Extensible(..))
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.CStruct.Extends (PeekChain)
 import Vulkan.CStruct.Extends (PeekChain(..))
 import Vulkan.CStruct.Extends (PokeChain)
 import Vulkan.CStruct.Extends (PokeChain(..))
 import Vulkan.CStruct.Extends (SomeStruct)
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES))
 import Vulkan.Core10.Enums.StructureType (StructureType(..))
@@ -109,7 +109,7 @@
 -- 'Vulkan.Core10.DescriptorSet.DescriptorSetLayoutCreateInfo',
 -- 'DescriptorSetLayoutSupport', 'Vulkan.Core10.Handles.Device'
 getDescriptorSetLayoutSupport :: forall a b io
-                               . (Extendss DescriptorSetLayoutCreateInfo a, Extendss DescriptorSetLayoutSupport b, PokeChain a, PokeChain b, PeekChain b, MonadIO io)
+                               . (Extendss DescriptorSetLayoutCreateInfo a, PokeChain a, Extendss DescriptorSetLayoutSupport b, PokeChain b, PeekChain b, MonadIO io)
                               => -- | @device@ is the logical device that would create the descriptor set
                                  -- layout.
                                  --
@@ -254,7 +254,7 @@
 deriving instance Show (Chain es) => Show (DescriptorSetLayoutSupport es)
 
 instance Extensible DescriptorSetLayoutSupport where
-  extensibleType = STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT
+  extensibleTypeName = "DescriptorSetLayoutSupport"
   setNext x next = x{next = next}
   getNext DescriptorSetLayoutSupport{..} = next
   extends :: forall e b proxy. Typeable e => proxy e -> (Extends DescriptorSetLayoutSupport e => b) -> Maybe b
diff --git a/src/Vulkan/Core11/Promoted_From_VK_KHR_maintenance3.hs-boot b/src/Vulkan/Core11/Promoted_From_VK_KHR_maintenance3.hs-boot
--- a/src/Vulkan/Core11/Promoted_From_VK_KHR_maintenance3.hs-boot
+++ b/src/Vulkan/Core11/Promoted_From_VK_KHR_maintenance3.hs-boot
@@ -4,13 +4,13 @@
                                                         , PhysicalDeviceMaintenance3Properties
                                                         ) where
 
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (ToCStruct)
 import Data.Kind (Type)
 import {-# SOURCE #-} Vulkan.CStruct.Extends (Chain)
 import {-# SOURCE #-} Vulkan.CStruct.Extends (Extendss)
-import Vulkan.CStruct (FromCStruct)
 import {-# SOURCE #-} Vulkan.CStruct.Extends (PeekChain)
 import {-# SOURCE #-} Vulkan.CStruct.Extends (PokeChain)
-import Vulkan.CStruct (ToCStruct)
 type role DescriptorSetLayoutSupport nominal
 data DescriptorSetLayoutSupport (es :: [Type])
 
diff --git a/src/Vulkan/Core11/Promoted_From_VK_KHR_multiview.hs b/src/Vulkan/Core11/Promoted_From_VK_KHR_multiview.hs
--- a/src/Vulkan/Core11/Promoted_From_VK_KHR_multiview.hs
+++ b/src/Vulkan/Core11/Promoted_From_VK_KHR_multiview.hs
@@ -16,6 +16,11 @@
 import Data.Vector (generateM)
 import qualified Data.Vector (imapM_)
 import qualified Data.Vector (length)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
 import Data.Typeable (Typeable)
 import Foreign.Storable (Storable)
 import Foreign.Storable (Storable(peek))
@@ -32,12 +37,7 @@
 import Vulkan.Core10.FundamentalTypes (bool32ToBool)
 import Vulkan.Core10.FundamentalTypes (boolToBool32)
 import Vulkan.Core10.FundamentalTypes (Bool32)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO))
diff --git a/src/Vulkan/Core11/Promoted_From_VK_KHR_multiview.hs-boot b/src/Vulkan/Core11/Promoted_From_VK_KHR_multiview.hs-boot
--- a/src/Vulkan/Core11/Promoted_From_VK_KHR_multiview.hs-boot
+++ b/src/Vulkan/Core11/Promoted_From_VK_KHR_multiview.hs-boot
@@ -5,9 +5,10 @@
                                                      , RenderPassMultiviewCreateInfo
                                                      ) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data PhysicalDeviceMultiviewFeatures
 
 instance ToCStruct PhysicalDeviceMultiviewFeatures
diff --git a/src/Vulkan/Core11/Promoted_From_VK_KHR_sampler_ycbcr_conversion.hs b/src/Vulkan/Core11/Promoted_From_VK_KHR_sampler_ycbcr_conversion.hs
--- a/src/Vulkan/Core11/Promoted_From_VK_KHR_sampler_ycbcr_conversion.hs
+++ b/src/Vulkan/Core11/Promoted_From_VK_KHR_sampler_ycbcr_conversion.hs
@@ -40,6 +40,11 @@
 import Foreign.Ptr (plusPtr)
 import Control.Monad.Trans.Class (lift)
 import Control.Monad.Trans.Cont (evalContT)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
 import Control.Monad.IO.Class (MonadIO)
 import Data.Type.Equality ((:~:)(Refl))
 import Data.Typeable (Typeable)
@@ -75,8 +80,6 @@
 import {-# SOURCE #-} Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer (ExternalFormatANDROID)
 import Vulkan.Core10.Enums.Filter (Filter)
 import Vulkan.Core10.Enums.Format (Format)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Enums.ImageAspectFlagBits (ImageAspectFlagBits)
 import Vulkan.CStruct.Extends (PeekChain)
 import Vulkan.CStruct.Extends (PeekChain(..))
@@ -90,10 +93,7 @@
 import Vulkan.Core11.Enums.SamplerYcbcrRange (SamplerYcbcrRange)
 import Vulkan.CStruct.Extends (SomeStruct)
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
 import Vulkan.Exception (VulkanException(..))
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES))
@@ -560,7 +560,7 @@
 deriving instance Show (Chain es) => Show (SamplerYcbcrConversionCreateInfo es)
 
 instance Extensible SamplerYcbcrConversionCreateInfo where
-  extensibleType = STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO
+  extensibleTypeName = "SamplerYcbcrConversionCreateInfo"
   setNext x next = x{next = next}
   getNext SamplerYcbcrConversionCreateInfo{..} = next
   extends :: forall e b proxy. Typeable e => proxy e -> (Extends SamplerYcbcrConversionCreateInfo e => b) -> Maybe b
diff --git a/src/Vulkan/Core11/Promoted_From_VK_KHR_sampler_ycbcr_conversion.hs-boot b/src/Vulkan/Core11/Promoted_From_VK_KHR_sampler_ycbcr_conversion.hs-boot
--- a/src/Vulkan/Core11/Promoted_From_VK_KHR_sampler_ycbcr_conversion.hs-boot
+++ b/src/Vulkan/Core11/Promoted_From_VK_KHR_sampler_ycbcr_conversion.hs-boot
@@ -8,13 +8,13 @@
                                                                     , SamplerYcbcrConversionInfo
                                                                     ) where
 
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (ToCStruct)
 import Data.Kind (Type)
 import {-# SOURCE #-} Vulkan.CStruct.Extends (Chain)
 import {-# SOURCE #-} Vulkan.CStruct.Extends (Extendss)
-import Vulkan.CStruct (FromCStruct)
 import {-# SOURCE #-} Vulkan.CStruct.Extends (PeekChain)
 import {-# SOURCE #-} Vulkan.CStruct.Extends (PokeChain)
-import Vulkan.CStruct (ToCStruct)
 data BindImagePlaneMemoryInfo
 
 instance ToCStruct BindImagePlaneMemoryInfo
diff --git a/src/Vulkan/Core11/Promoted_From_VK_KHR_shader_draw_parameters.hs b/src/Vulkan/Core11/Promoted_From_VK_KHR_shader_draw_parameters.hs
--- a/src/Vulkan/Core11/Promoted_From_VK_KHR_shader_draw_parameters.hs
+++ b/src/Vulkan/Core11/Promoted_From_VK_KHR_shader_draw_parameters.hs
@@ -9,6 +9,11 @@
 import Foreign.Marshal.Alloc (allocaBytesAligned)
 import Foreign.Ptr (nullPtr)
 import Foreign.Ptr (plusPtr)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
 import Data.Typeable (Typeable)
 import Foreign.Storable (Storable)
 import Foreign.Storable (Storable(peek))
@@ -20,12 +25,7 @@
 import Vulkan.Core10.FundamentalTypes (bool32ToBool)
 import Vulkan.Core10.FundamentalTypes (boolToBool32)
 import Vulkan.Core10.FundamentalTypes (Bool32)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES))
 import Vulkan.Core10.Enums.StructureType (StructureType(..))
 -- No documentation found for TopLevel "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES"
diff --git a/src/Vulkan/Core11/Promoted_From_VK_KHR_shader_draw_parameters.hs-boot b/src/Vulkan/Core11/Promoted_From_VK_KHR_shader_draw_parameters.hs-boot
--- a/src/Vulkan/Core11/Promoted_From_VK_KHR_shader_draw_parameters.hs-boot
+++ b/src/Vulkan/Core11/Promoted_From_VK_KHR_shader_draw_parameters.hs-boot
@@ -2,9 +2,10 @@
 -- No documentation found for Chapter "Promoted_From_VK_KHR_shader_draw_parameters"
 module Vulkan.Core11.Promoted_From_VK_KHR_shader_draw_parameters  (PhysicalDeviceShaderDrawParametersFeatures) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data PhysicalDeviceShaderDrawParametersFeatures
 
 instance ToCStruct PhysicalDeviceShaderDrawParametersFeatures
diff --git a/src/Vulkan/Core11/Promoted_From_VK_KHR_variable_pointers.hs b/src/Vulkan/Core11/Promoted_From_VK_KHR_variable_pointers.hs
--- a/src/Vulkan/Core11/Promoted_From_VK_KHR_variable_pointers.hs
+++ b/src/Vulkan/Core11/Promoted_From_VK_KHR_variable_pointers.hs
@@ -9,6 +9,11 @@
 import Foreign.Marshal.Alloc (allocaBytesAligned)
 import Foreign.Ptr (nullPtr)
 import Foreign.Ptr (plusPtr)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
 import Data.Typeable (Typeable)
 import Foreign.Storable (Storable)
 import Foreign.Storable (Storable(peek))
@@ -20,12 +25,7 @@
 import Vulkan.Core10.FundamentalTypes (bool32ToBool)
 import Vulkan.Core10.FundamentalTypes (boolToBool32)
 import Vulkan.Core10.FundamentalTypes (Bool32)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES))
 import Vulkan.Core10.Enums.StructureType (StructureType(..))
 -- No documentation found for TopLevel "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES"
diff --git a/src/Vulkan/Core11/Promoted_From_VK_KHR_variable_pointers.hs-boot b/src/Vulkan/Core11/Promoted_From_VK_KHR_variable_pointers.hs-boot
--- a/src/Vulkan/Core11/Promoted_From_VK_KHR_variable_pointers.hs-boot
+++ b/src/Vulkan/Core11/Promoted_From_VK_KHR_variable_pointers.hs-boot
@@ -2,9 +2,10 @@
 -- No documentation found for Chapter "Promoted_From_VK_KHR_variable_pointers"
 module Vulkan.Core11.Promoted_From_VK_KHR_variable_pointers  (PhysicalDeviceVariablePointersFeatures) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data PhysicalDeviceVariablePointersFeatures
 
 instance ToCStruct PhysicalDeviceVariablePointersFeatures
diff --git a/src/Vulkan/Core12.hs b/src/Vulkan/Core12.hs
--- a/src/Vulkan/Core12.hs
+++ b/src/Vulkan/Core12.hs
@@ -56,6 +56,11 @@
 import Foreign.Ptr (nullPtr)
 import Foreign.Ptr (plusPtr)
 import Data.ByteString (packCString)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
 import Data.Typeable (Typeable)
 import Foreign.C.Types (CChar)
 import Foreign.Storable (Storable)
@@ -79,8 +84,6 @@
 import Vulkan.Core12.Promoted_From_VK_KHR_driver_properties (ConformanceVersion)
 import Vulkan.Core10.FundamentalTypes (DeviceSize)
 import Vulkan.Core12.Enums.DriverId (DriverId)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.APIConstants (LUID_SIZE)
 import Vulkan.Core10.APIConstants (MAX_DRIVER_INFO_SIZE)
 import Vulkan.Core10.APIConstants (MAX_DRIVER_NAME_SIZE)
@@ -91,10 +94,7 @@
 import Vulkan.Core10.Enums.ShaderStageFlagBits (ShaderStageFlags)
 import Vulkan.Core10.Enums.StructureType (StructureType)
 import Vulkan.Core11.Enums.SubgroupFeatureFlagBits (SubgroupFeatureFlags)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
 import Vulkan.Core10.APIConstants (UUID_SIZE)
-import Vulkan.Zero (Zero(..))
 import Vulkan.Version (pattern MAKE_VERSION)
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES))
diff --git a/src/Vulkan/Core12.hs-boot b/src/Vulkan/Core12.hs-boot
--- a/src/Vulkan/Core12.hs-boot
+++ b/src/Vulkan/Core12.hs-boot
@@ -6,9 +6,10 @@
                       , PhysicalDeviceVulkan12Properties
                       ) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data PhysicalDeviceVulkan11Features
 
 instance ToCStruct PhysicalDeviceVulkan11Features
diff --git a/src/Vulkan/Core12/Enums/DescriptorBindingFlagBits.hs b/src/Vulkan/Core12/Enums/DescriptorBindingFlagBits.hs
--- a/src/Vulkan/Core12/Enums/DescriptorBindingFlagBits.hs
+++ b/src/Vulkan/Core12/Enums/DescriptorBindingFlagBits.hs
@@ -13,13 +13,13 @@
 import Vulkan.Internal.Utils (enumShowsPrec)
 import GHC.Show (showString)
 import Numeric (showHex)
+import Vulkan.Zero (Zero)
 import Data.Bits (Bits)
 import Data.Bits (FiniteBits)
 import Foreign.Storable (Storable)
 import GHC.Read (Read(readPrec))
 import GHC.Show (Show(showsPrec))
 import Vulkan.Core10.FundamentalTypes (Flags)
-import Vulkan.Zero (Zero)
 type DescriptorBindingFlags = DescriptorBindingFlagBits
 
 -- | VkDescriptorBindingFlagBits - Bitmask specifying descriptor set layout
diff --git a/src/Vulkan/Core12/Enums/DriverId.hs b/src/Vulkan/Core12/Enums/DriverId.hs
--- a/src/Vulkan/Core12/Enums/DriverId.hs
+++ b/src/Vulkan/Core12/Enums/DriverId.hs
@@ -20,11 +20,12 @@
 import Vulkan.Internal.Utils (enumReadPrec)
 import Vulkan.Internal.Utils (enumShowsPrec)
 import GHC.Show (showsPrec)
+import Vulkan.Zero (Zero)
 import Foreign.Storable (Storable)
 import Data.Int (Int32)
 import GHC.Read (Read(readPrec))
 import GHC.Show (Show(showsPrec))
-import Vulkan.Zero (Zero)
+
 -- | VkDriverId - Khronos driver IDs
 --
 -- = Description
diff --git a/src/Vulkan/Core12/Enums/ResolveModeFlagBits.hs b/src/Vulkan/Core12/Enums/ResolveModeFlagBits.hs
--- a/src/Vulkan/Core12/Enums/ResolveModeFlagBits.hs
+++ b/src/Vulkan/Core12/Enums/ResolveModeFlagBits.hs
@@ -14,13 +14,13 @@
 import Vulkan.Internal.Utils (enumShowsPrec)
 import GHC.Show (showString)
 import Numeric (showHex)
+import Vulkan.Zero (Zero)
 import Data.Bits (Bits)
 import Data.Bits (FiniteBits)
 import Foreign.Storable (Storable)
 import GHC.Read (Read(readPrec))
 import GHC.Show (Show(showsPrec))
 import Vulkan.Core10.FundamentalTypes (Flags)
-import Vulkan.Zero (Zero)
 type ResolveModeFlags = ResolveModeFlagBits
 
 -- | VkResolveModeFlagBits - Bitmask indicating supported depth and stencil
diff --git a/src/Vulkan/Core12/Enums/SamplerReductionMode.hs b/src/Vulkan/Core12/Enums/SamplerReductionMode.hs
--- a/src/Vulkan/Core12/Enums/SamplerReductionMode.hs
+++ b/src/Vulkan/Core12/Enums/SamplerReductionMode.hs
@@ -9,11 +9,12 @@
 import Vulkan.Internal.Utils (enumReadPrec)
 import Vulkan.Internal.Utils (enumShowsPrec)
 import GHC.Show (showsPrec)
+import Vulkan.Zero (Zero)
 import Foreign.Storable (Storable)
 import Data.Int (Int32)
 import GHC.Read (Read(readPrec))
 import GHC.Show (Show(showsPrec))
-import Vulkan.Zero (Zero)
+
 -- | VkSamplerReductionMode - Specify reduction mode for texture filtering
 --
 -- = See Also
diff --git a/src/Vulkan/Core12/Enums/SemaphoreType.hs b/src/Vulkan/Core12/Enums/SemaphoreType.hs
--- a/src/Vulkan/Core12/Enums/SemaphoreType.hs
+++ b/src/Vulkan/Core12/Enums/SemaphoreType.hs
@@ -8,11 +8,12 @@
 import Vulkan.Internal.Utils (enumReadPrec)
 import Vulkan.Internal.Utils (enumShowsPrec)
 import GHC.Show (showsPrec)
+import Vulkan.Zero (Zero)
 import Foreign.Storable (Storable)
 import Data.Int (Int32)
 import GHC.Read (Read(readPrec))
 import GHC.Show (Show(showsPrec))
-import Vulkan.Zero (Zero)
+
 -- | VkSemaphoreType - Sepcifies the type of a semaphore object
 --
 -- = See Also
diff --git a/src/Vulkan/Core12/Enums/SemaphoreWaitFlagBits.hs b/src/Vulkan/Core12/Enums/SemaphoreWaitFlagBits.hs
--- a/src/Vulkan/Core12/Enums/SemaphoreWaitFlagBits.hs
+++ b/src/Vulkan/Core12/Enums/SemaphoreWaitFlagBits.hs
@@ -10,13 +10,13 @@
 import Vulkan.Internal.Utils (enumShowsPrec)
 import GHC.Show (showString)
 import Numeric (showHex)
+import Vulkan.Zero (Zero)
 import Data.Bits (Bits)
 import Data.Bits (FiniteBits)
 import Foreign.Storable (Storable)
 import GHC.Read (Read(readPrec))
 import GHC.Show (Show(showsPrec))
 import Vulkan.Core10.FundamentalTypes (Flags)
-import Vulkan.Zero (Zero)
 type SemaphoreWaitFlags = SemaphoreWaitFlagBits
 
 -- | VkSemaphoreWaitFlagBits - Bitmask specifying additional parameters of a
diff --git a/src/Vulkan/Core12/Enums/ShaderFloatControlsIndependence.hs b/src/Vulkan/Core12/Enums/ShaderFloatControlsIndependence.hs
--- a/src/Vulkan/Core12/Enums/ShaderFloatControlsIndependence.hs
+++ b/src/Vulkan/Core12/Enums/ShaderFloatControlsIndependence.hs
@@ -9,11 +9,12 @@
 import Vulkan.Internal.Utils (enumReadPrec)
 import Vulkan.Internal.Utils (enumShowsPrec)
 import GHC.Show (showsPrec)
+import Vulkan.Zero (Zero)
 import Foreign.Storable (Storable)
 import Data.Int (Int32)
 import GHC.Read (Read(readPrec))
 import GHC.Show (Show(showsPrec))
-import Vulkan.Zero (Zero)
+
 -- | VkShaderFloatControlsIndependence - Enum specifying whether, and how,
 -- shader float controls can be set separately
 --
diff --git a/src/Vulkan/Core12/Promoted_From_VK_EXT_descriptor_indexing.hs b/src/Vulkan/Core12/Promoted_From_VK_EXT_descriptor_indexing.hs
--- a/src/Vulkan/Core12/Promoted_From_VK_EXT_descriptor_indexing.hs
+++ b/src/Vulkan/Core12/Promoted_From_VK_EXT_descriptor_indexing.hs
@@ -23,6 +23,11 @@
 import Data.Vector (generateM)
 import qualified Data.Vector (imapM_)
 import qualified Data.Vector (length)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
 import Data.Typeable (Typeable)
 import Foreign.Storable (Storable)
 import Foreign.Storable (Storable(peek))
@@ -39,12 +44,7 @@
 import Vulkan.Core10.FundamentalTypes (boolToBool32)
 import Vulkan.Core10.FundamentalTypes (Bool32)
 import Vulkan.Core12.Enums.DescriptorBindingFlagBits (DescriptorBindingFlags)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT))
diff --git a/src/Vulkan/Core12/Promoted_From_VK_EXT_descriptor_indexing.hs-boot b/src/Vulkan/Core12/Promoted_From_VK_EXT_descriptor_indexing.hs-boot
--- a/src/Vulkan/Core12/Promoted_From_VK_EXT_descriptor_indexing.hs-boot
+++ b/src/Vulkan/Core12/Promoted_From_VK_EXT_descriptor_indexing.hs-boot
@@ -7,9 +7,10 @@
                                                                , PhysicalDeviceDescriptorIndexingProperties
                                                                ) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data DescriptorSetLayoutBindingFlagsCreateInfo
 
 instance ToCStruct DescriptorSetLayoutBindingFlagsCreateInfo
diff --git a/src/Vulkan/Core12/Promoted_From_VK_EXT_host_query_reset.hs b/src/Vulkan/Core12/Promoted_From_VK_EXT_host_query_reset.hs
--- a/src/Vulkan/Core12/Promoted_From_VK_EXT_host_query_reset.hs
+++ b/src/Vulkan/Core12/Promoted_From_VK_EXT_host_query_reset.hs
@@ -13,6 +13,11 @@
 import GHC.Ptr (nullFunPtr)
 import Foreign.Ptr (nullPtr)
 import Foreign.Ptr (plusPtr)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
 import Control.Monad.IO.Class (MonadIO)
 import Data.Typeable (Typeable)
 import Foreign.Storable (Storable)
@@ -34,14 +39,9 @@
 import Vulkan.Core10.Handles (Device(..))
 import Vulkan.Dynamic (DeviceCmds(pVkResetQueryPool))
 import Vulkan.Core10.Handles (Device_T)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Handles (QueryPool)
 import Vulkan.Core10.Handles (QueryPool(..))
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES))
 import Vulkan.Core10.Enums.StructureType (StructureType(..))
 foreign import ccall
diff --git a/src/Vulkan/Core12/Promoted_From_VK_EXT_host_query_reset.hs-boot b/src/Vulkan/Core12/Promoted_From_VK_EXT_host_query_reset.hs-boot
--- a/src/Vulkan/Core12/Promoted_From_VK_EXT_host_query_reset.hs-boot
+++ b/src/Vulkan/Core12/Promoted_From_VK_EXT_host_query_reset.hs-boot
@@ -2,9 +2,10 @@
 -- No documentation found for Chapter "Promoted_From_VK_EXT_host_query_reset"
 module Vulkan.Core12.Promoted_From_VK_EXT_host_query_reset  (PhysicalDeviceHostQueryResetFeatures) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data PhysicalDeviceHostQueryResetFeatures
 
 instance ToCStruct PhysicalDeviceHostQueryResetFeatures
diff --git a/src/Vulkan/Core12/Promoted_From_VK_EXT_sampler_filter_minmax.hs b/src/Vulkan/Core12/Promoted_From_VK_EXT_sampler_filter_minmax.hs
--- a/src/Vulkan/Core12/Promoted_From_VK_EXT_sampler_filter_minmax.hs
+++ b/src/Vulkan/Core12/Promoted_From_VK_EXT_sampler_filter_minmax.hs
@@ -11,6 +11,11 @@
 import Foreign.Marshal.Alloc (allocaBytesAligned)
 import Foreign.Ptr (nullPtr)
 import Foreign.Ptr (plusPtr)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
 import Data.Typeable (Typeable)
 import Foreign.Storable (Storable)
 import Foreign.Storable (Storable(peek))
@@ -22,13 +27,8 @@
 import Vulkan.Core10.FundamentalTypes (bool32ToBool)
 import Vulkan.Core10.FundamentalTypes (boolToBool32)
 import Vulkan.Core10.FundamentalTypes (Bool32)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core12.Enums.SamplerReductionMode (SamplerReductionMode)
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO))
 import Vulkan.Core10.Enums.FormatFeatureFlagBits (FormatFeatureFlagBits(..))
diff --git a/src/Vulkan/Core12/Promoted_From_VK_EXT_sampler_filter_minmax.hs-boot b/src/Vulkan/Core12/Promoted_From_VK_EXT_sampler_filter_minmax.hs-boot
--- a/src/Vulkan/Core12/Promoted_From_VK_EXT_sampler_filter_minmax.hs-boot
+++ b/src/Vulkan/Core12/Promoted_From_VK_EXT_sampler_filter_minmax.hs-boot
@@ -4,9 +4,10 @@
                                                                  , SamplerReductionModeCreateInfo
                                                                  ) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data PhysicalDeviceSamplerFilterMinmaxProperties
 
 instance ToCStruct PhysicalDeviceSamplerFilterMinmaxProperties
diff --git a/src/Vulkan/Core12/Promoted_From_VK_EXT_scalar_block_layout.hs b/src/Vulkan/Core12/Promoted_From_VK_EXT_scalar_block_layout.hs
--- a/src/Vulkan/Core12/Promoted_From_VK_EXT_scalar_block_layout.hs
+++ b/src/Vulkan/Core12/Promoted_From_VK_EXT_scalar_block_layout.hs
@@ -7,6 +7,11 @@
 import Foreign.Marshal.Alloc (allocaBytesAligned)
 import Foreign.Ptr (nullPtr)
 import Foreign.Ptr (plusPtr)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
 import Data.Typeable (Typeable)
 import Foreign.Storable (Storable)
 import Foreign.Storable (Storable(peek))
@@ -18,12 +23,7 @@
 import Vulkan.Core10.FundamentalTypes (bool32ToBool)
 import Vulkan.Core10.FundamentalTypes (boolToBool32)
 import Vulkan.Core10.FundamentalTypes (Bool32)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES))
 import Vulkan.Core10.Enums.StructureType (StructureType(..))
 -- | VkPhysicalDeviceScalarBlockLayoutFeatures - Structure indicating support
diff --git a/src/Vulkan/Core12/Promoted_From_VK_EXT_scalar_block_layout.hs-boot b/src/Vulkan/Core12/Promoted_From_VK_EXT_scalar_block_layout.hs-boot
--- a/src/Vulkan/Core12/Promoted_From_VK_EXT_scalar_block_layout.hs-boot
+++ b/src/Vulkan/Core12/Promoted_From_VK_EXT_scalar_block_layout.hs-boot
@@ -2,9 +2,10 @@
 -- No documentation found for Chapter "Promoted_From_VK_EXT_scalar_block_layout"
 module Vulkan.Core12.Promoted_From_VK_EXT_scalar_block_layout  (PhysicalDeviceScalarBlockLayoutFeatures) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data PhysicalDeviceScalarBlockLayoutFeatures
 
 instance ToCStruct PhysicalDeviceScalarBlockLayoutFeatures
diff --git a/src/Vulkan/Core12/Promoted_From_VK_EXT_separate_stencil_usage.hs b/src/Vulkan/Core12/Promoted_From_VK_EXT_separate_stencil_usage.hs
--- a/src/Vulkan/Core12/Promoted_From_VK_EXT_separate_stencil_usage.hs
+++ b/src/Vulkan/Core12/Promoted_From_VK_EXT_separate_stencil_usage.hs
@@ -7,6 +7,11 @@
 import Foreign.Marshal.Alloc (allocaBytesAligned)
 import Foreign.Ptr (nullPtr)
 import Foreign.Ptr (plusPtr)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
 import Data.Typeable (Typeable)
 import Foreign.Storable (Storable)
 import Foreign.Storable (Storable(peek))
@@ -15,13 +20,8 @@
 import GHC.Generics (Generic)
 import Foreign.Ptr (Ptr)
 import Data.Kind (Type)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Enums.ImageUsageFlagBits (ImageUsageFlags)
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO))
 import Vulkan.Core10.Enums.StructureType (StructureType(..))
 -- | VkImageStencilUsageCreateInfo - Specify separate usage flags for the
diff --git a/src/Vulkan/Core12/Promoted_From_VK_EXT_separate_stencil_usage.hs-boot b/src/Vulkan/Core12/Promoted_From_VK_EXT_separate_stencil_usage.hs-boot
--- a/src/Vulkan/Core12/Promoted_From_VK_EXT_separate_stencil_usage.hs-boot
+++ b/src/Vulkan/Core12/Promoted_From_VK_EXT_separate_stencil_usage.hs-boot
@@ -2,9 +2,10 @@
 -- No documentation found for Chapter "Promoted_From_VK_EXT_separate_stencil_usage"
 module Vulkan.Core12.Promoted_From_VK_EXT_separate_stencil_usage  (ImageStencilUsageCreateInfo) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data ImageStencilUsageCreateInfo
 
 instance ToCStruct ImageStencilUsageCreateInfo
diff --git a/src/Vulkan/Core12/Promoted_From_VK_KHR_8bit_storage.hs b/src/Vulkan/Core12/Promoted_From_VK_KHR_8bit_storage.hs
--- a/src/Vulkan/Core12/Promoted_From_VK_KHR_8bit_storage.hs
+++ b/src/Vulkan/Core12/Promoted_From_VK_KHR_8bit_storage.hs
@@ -7,6 +7,11 @@
 import Foreign.Marshal.Alloc (allocaBytesAligned)
 import Foreign.Ptr (nullPtr)
 import Foreign.Ptr (plusPtr)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
 import Data.Typeable (Typeable)
 import Foreign.Storable (Storable)
 import Foreign.Storable (Storable(peek))
@@ -18,12 +23,7 @@
 import Vulkan.Core10.FundamentalTypes (bool32ToBool)
 import Vulkan.Core10.FundamentalTypes (boolToBool32)
 import Vulkan.Core10.FundamentalTypes (Bool32)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES))
 import Vulkan.Core10.Enums.StructureType (StructureType(..))
 -- | VkPhysicalDevice8BitStorageFeatures - Structure describing features
diff --git a/src/Vulkan/Core12/Promoted_From_VK_KHR_8bit_storage.hs-boot b/src/Vulkan/Core12/Promoted_From_VK_KHR_8bit_storage.hs-boot
--- a/src/Vulkan/Core12/Promoted_From_VK_KHR_8bit_storage.hs-boot
+++ b/src/Vulkan/Core12/Promoted_From_VK_KHR_8bit_storage.hs-boot
@@ -2,9 +2,10 @@
 -- No documentation found for Chapter "Promoted_From_VK_KHR_8bit_storage"
 module Vulkan.Core12.Promoted_From_VK_KHR_8bit_storage  (PhysicalDevice8BitStorageFeatures) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data PhysicalDevice8BitStorageFeatures
 
 instance ToCStruct PhysicalDevice8BitStorageFeatures
diff --git a/src/Vulkan/Core12/Promoted_From_VK_KHR_buffer_device_address.hs b/src/Vulkan/Core12/Promoted_From_VK_KHR_buffer_device_address.hs
--- a/src/Vulkan/Core12/Promoted_From_VK_KHR_buffer_device_address.hs
+++ b/src/Vulkan/Core12/Promoted_From_VK_KHR_buffer_device_address.hs
@@ -28,6 +28,11 @@
 import Foreign.Ptr (plusPtr)
 import Control.Monad.Trans.Class (lift)
 import Control.Monad.Trans.Cont (evalContT)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
 import Control.Monad.IO.Class (MonadIO)
 import Data.Typeable (Typeable)
 import Foreign.Storable (Storable)
@@ -54,12 +59,7 @@
 import Vulkan.Dynamic (DeviceCmds(pVkGetDeviceMemoryOpaqueCaptureAddress))
 import Vulkan.Core10.Handles (DeviceMemory)
 import Vulkan.Core10.Handles (Device_T)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO))
diff --git a/src/Vulkan/Core12/Promoted_From_VK_KHR_buffer_device_address.hs-boot b/src/Vulkan/Core12/Promoted_From_VK_KHR_buffer_device_address.hs-boot
--- a/src/Vulkan/Core12/Promoted_From_VK_KHR_buffer_device_address.hs-boot
+++ b/src/Vulkan/Core12/Promoted_From_VK_KHR_buffer_device_address.hs-boot
@@ -7,9 +7,10 @@
                                                                  , PhysicalDeviceBufferDeviceAddressFeatures
                                                                  ) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data BufferDeviceAddressInfo
 
 instance ToCStruct BufferDeviceAddressInfo
diff --git a/src/Vulkan/Core12/Promoted_From_VK_KHR_create_renderpass2.hs b/src/Vulkan/Core12/Promoted_From_VK_KHR_create_renderpass2.hs
--- a/src/Vulkan/Core12/Promoted_From_VK_KHR_create_renderpass2.hs
+++ b/src/Vulkan/Core12/Promoted_From_VK_KHR_create_renderpass2.hs
@@ -36,6 +36,11 @@
 import qualified Data.Vector (imapM_)
 import qualified Data.Vector (length)
 import qualified Data.Vector (null)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
 import Control.Monad.IO.Class (MonadIO)
 import Data.Type.Equality ((:~:)(Refl))
 import Data.Typeable (Typeable)
@@ -83,8 +88,6 @@
 import Vulkan.CStruct.Extends (Extensible(..))
 import Vulkan.Core10.Enums.Format (Format)
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_fragment_shading_rate (FragmentShadingRateAttachmentInfoKHR)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Enums.ImageAspectFlagBits (ImageAspectFlags)
 import Vulkan.Core10.Enums.ImageLayout (ImageLayout)
 import Vulkan.CStruct.Extends (PeekChain)
@@ -106,10 +109,7 @@
 import Vulkan.Core10.Enums.SubpassContents (SubpassContents)
 import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_depth_stencil_resolve (SubpassDescriptionDepthStencilResolve)
 import Vulkan.Core10.Enums.SubpassDescriptionFlagBits (SubpassDescriptionFlags)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
 import Vulkan.Exception (VulkanException(..))
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2))
@@ -853,7 +853,7 @@
 deriving instance Show (Chain es) => Show (AttachmentDescription2 es)
 
 instance Extensible AttachmentDescription2 where
-  extensibleType = STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2
+  extensibleTypeName = "AttachmentDescription2"
   setNext x next = x{next = next}
   getNext AttachmentDescription2{..} = next
   extends :: forall e b proxy. Typeable e => proxy e -> (Extends AttachmentDescription2 e => b) -> Maybe b
@@ -1013,7 +1013,7 @@
 deriving instance Show (Chain es) => Show (AttachmentReference2 es)
 
 instance Extensible AttachmentReference2 where
-  extensibleType = STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2
+  extensibleTypeName = "AttachmentReference2"
   setNext x next = x{next = next}
   getNext AttachmentReference2{..} = next
   extends :: forall e b proxy. Typeable e => proxy e -> (Extends AttachmentReference2 e => b) -> Maybe b
@@ -1323,7 +1323,7 @@
 deriving instance Show (Chain es) => Show (SubpassDescription2 es)
 
 instance Extensible SubpassDescription2 where
-  extensibleType = STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2
+  extensibleTypeName = "SubpassDescription2"
   setNext x next = x{next = next}
   getNext SubpassDescription2{..} = next
   extends :: forall e b proxy. Typeable e => proxy e -> (Extends SubpassDescription2 e => b) -> Maybe b
@@ -1396,15 +1396,15 @@
     pipelineBindPoint <- peek @PipelineBindPoint ((p `plusPtr` 20 :: Ptr PipelineBindPoint))
     viewMask <- peek @Word32 ((p `plusPtr` 24 :: Ptr Word32))
     inputAttachmentCount <- peek @Word32 ((p `plusPtr` 28 :: Ptr Word32))
-    pInputAttachments <- peek @(Ptr (AttachmentReference2 _)) ((p `plusPtr` 32 :: Ptr (Ptr (AttachmentReference2 a))))
+    pInputAttachments <- peek @(Ptr (AttachmentReference2 _)) ((p `plusPtr` 32 :: Ptr (Ptr (AttachmentReference2 _))))
     pInputAttachments' <- generateM (fromIntegral inputAttachmentCount) (\i -> peekSomeCStruct (forgetExtensions ((pInputAttachments `advancePtrBytes` (32 * (i)) :: Ptr (AttachmentReference2 _)))))
     colorAttachmentCount <- peek @Word32 ((p `plusPtr` 40 :: Ptr Word32))
-    pColorAttachments <- peek @(Ptr (AttachmentReference2 _)) ((p `plusPtr` 48 :: Ptr (Ptr (AttachmentReference2 a))))
+    pColorAttachments <- peek @(Ptr (AttachmentReference2 _)) ((p `plusPtr` 48 :: Ptr (Ptr (AttachmentReference2 _))))
     pColorAttachments' <- generateM (fromIntegral colorAttachmentCount) (\i -> peekSomeCStruct (forgetExtensions ((pColorAttachments `advancePtrBytes` (32 * (i)) :: Ptr (AttachmentReference2 _)))))
-    pResolveAttachments <- peek @(Ptr (AttachmentReference2 _)) ((p `plusPtr` 56 :: Ptr (Ptr (AttachmentReference2 a))))
+    pResolveAttachments <- peek @(Ptr (AttachmentReference2 _)) ((p `plusPtr` 56 :: Ptr (Ptr (AttachmentReference2 _))))
     let pResolveAttachmentsLength = if pResolveAttachments == nullPtr then 0 else (fromIntegral colorAttachmentCount)
     pResolveAttachments' <- generateM pResolveAttachmentsLength (\i -> peekSomeCStruct (forgetExtensions ((pResolveAttachments `advancePtrBytes` (32 * (i)) :: Ptr (AttachmentReference2 _)))))
-    pDepthStencilAttachment <- peek @(Ptr (AttachmentReference2 _)) ((p `plusPtr` 64 :: Ptr (Ptr (AttachmentReference2 a))))
+    pDepthStencilAttachment <- peek @(Ptr (AttachmentReference2 _)) ((p `plusPtr` 64 :: Ptr (Ptr (AttachmentReference2 _))))
     pDepthStencilAttachment' <- maybePeek (\j -> peekSomeCStruct (forgetExtensions (j))) pDepthStencilAttachment
     preserveAttachmentCount <- peek @Word32 ((p `plusPtr` 72 :: Ptr Word32))
     pPreserveAttachments <- peek @(Ptr Word32) ((p `plusPtr` 80 :: Ptr (Ptr Word32)))
@@ -1896,7 +1896,7 @@
 deriving instance Show (Chain es) => Show (RenderPassCreateInfo2 es)
 
 instance Extensible RenderPassCreateInfo2 where
-  extensibleType = STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2
+  extensibleTypeName = "RenderPassCreateInfo2"
   setNext x next = x{next = next}
   getNext RenderPassCreateInfo2{..} = next
   extends :: forall e b proxy. Typeable e => proxy e -> (Extends RenderPassCreateInfo2 e => b) -> Maybe b
@@ -1954,10 +1954,10 @@
     next <- peekChain (castPtr pNext)
     flags <- peek @RenderPassCreateFlags ((p `plusPtr` 16 :: Ptr RenderPassCreateFlags))
     attachmentCount <- peek @Word32 ((p `plusPtr` 20 :: Ptr Word32))
-    pAttachments <- peek @(Ptr (AttachmentDescription2 _)) ((p `plusPtr` 24 :: Ptr (Ptr (AttachmentDescription2 a))))
+    pAttachments <- peek @(Ptr (AttachmentDescription2 _)) ((p `plusPtr` 24 :: Ptr (Ptr (AttachmentDescription2 _))))
     pAttachments' <- generateM (fromIntegral attachmentCount) (\i -> peekSomeCStruct (forgetExtensions ((pAttachments `advancePtrBytes` (56 * (i)) :: Ptr (AttachmentDescription2 _)))))
     subpassCount <- peek @Word32 ((p `plusPtr` 32 :: Ptr Word32))
-    pSubpasses <- peek @(Ptr (SubpassDescription2 _)) ((p `plusPtr` 40 :: Ptr (Ptr (SubpassDescription2 a))))
+    pSubpasses <- peek @(Ptr (SubpassDescription2 _)) ((p `plusPtr` 40 :: Ptr (Ptr (SubpassDescription2 _))))
     pSubpasses' <- generateM (fromIntegral subpassCount) (\i -> peekSomeCStruct (forgetExtensions ((pSubpasses `advancePtrBytes` (88 * (i)) :: Ptr (SubpassDescription2 _)))))
     dependencyCount <- peek @Word32 ((p `plusPtr` 48 :: Ptr Word32))
     pDependencies <- peek @(Ptr SubpassDependency2) ((p `plusPtr` 56 :: Ptr (Ptr SubpassDependency2)))
diff --git a/src/Vulkan/Core12/Promoted_From_VK_KHR_create_renderpass2.hs-boot b/src/Vulkan/Core12/Promoted_From_VK_KHR_create_renderpass2.hs-boot
--- a/src/Vulkan/Core12/Promoted_From_VK_KHR_create_renderpass2.hs-boot
+++ b/src/Vulkan/Core12/Promoted_From_VK_KHR_create_renderpass2.hs-boot
@@ -9,13 +9,13 @@
                                                               , SubpassEndInfo
                                                               ) where
 
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (ToCStruct)
 import Data.Kind (Type)
 import {-# SOURCE #-} Vulkan.CStruct.Extends (Chain)
 import {-# SOURCE #-} Vulkan.CStruct.Extends (Extendss)
-import Vulkan.CStruct (FromCStruct)
 import {-# SOURCE #-} Vulkan.CStruct.Extends (PeekChain)
 import {-# SOURCE #-} Vulkan.CStruct.Extends (PokeChain)
-import Vulkan.CStruct (ToCStruct)
 type role AttachmentDescription2 nominal
 data AttachmentDescription2 (es :: [Type])
 
diff --git a/src/Vulkan/Core12/Promoted_From_VK_KHR_depth_stencil_resolve.hs b/src/Vulkan/Core12/Promoted_From_VK_KHR_depth_stencil_resolve.hs
--- a/src/Vulkan/Core12/Promoted_From_VK_KHR_depth_stencil_resolve.hs
+++ b/src/Vulkan/Core12/Promoted_From_VK_KHR_depth_stencil_resolve.hs
@@ -14,6 +14,11 @@
 import Foreign.Ptr (plusPtr)
 import Control.Monad.Trans.Class (lift)
 import Control.Monad.Trans.Cont (evalContT)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
 import Data.Typeable (Typeable)
 import Foreign.Storable (Storable)
 import Foreign.Storable (Storable(peek))
@@ -30,15 +35,10 @@
 import Vulkan.CStruct.Extends (withSomeCStruct)
 import Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2 (AttachmentReference2)
 import Vulkan.Core10.FundamentalTypes (Bool32)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core12.Enums.ResolveModeFlagBits (ResolveModeFlagBits)
 import Vulkan.Core12.Enums.ResolveModeFlagBits (ResolveModeFlags)
 import Vulkan.CStruct.Extends (SomeStruct)
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE))
 import Vulkan.Core12.Enums.ResolveModeFlagBits (ResolveModeFlagBits(..))
@@ -300,7 +300,7 @@
   peekCStruct p = do
     depthResolveMode <- peek @ResolveModeFlagBits ((p `plusPtr` 16 :: Ptr ResolveModeFlagBits))
     stencilResolveMode <- peek @ResolveModeFlagBits ((p `plusPtr` 20 :: Ptr ResolveModeFlagBits))
-    pDepthStencilResolveAttachment <- peek @(Ptr (AttachmentReference2 _)) ((p `plusPtr` 24 :: Ptr (Ptr (AttachmentReference2 a))))
+    pDepthStencilResolveAttachment <- peek @(Ptr (AttachmentReference2 _)) ((p `plusPtr` 24 :: Ptr (Ptr (AttachmentReference2 _))))
     pDepthStencilResolveAttachment' <- maybePeek (\j -> peekSomeCStruct (forgetExtensions (j))) pDepthStencilResolveAttachment
     pure $ SubpassDescriptionDepthStencilResolve
              depthResolveMode stencilResolveMode pDepthStencilResolveAttachment'
diff --git a/src/Vulkan/Core12/Promoted_From_VK_KHR_depth_stencil_resolve.hs-boot b/src/Vulkan/Core12/Promoted_From_VK_KHR_depth_stencil_resolve.hs-boot
--- a/src/Vulkan/Core12/Promoted_From_VK_KHR_depth_stencil_resolve.hs-boot
+++ b/src/Vulkan/Core12/Promoted_From_VK_KHR_depth_stencil_resolve.hs-boot
@@ -4,9 +4,10 @@
                                                                  , SubpassDescriptionDepthStencilResolve
                                                                  ) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data PhysicalDeviceDepthStencilResolveProperties
 
 instance ToCStruct PhysicalDeviceDepthStencilResolveProperties
diff --git a/src/Vulkan/Core12/Promoted_From_VK_KHR_driver_properties.hs b/src/Vulkan/Core12/Promoted_From_VK_KHR_driver_properties.hs
--- a/src/Vulkan/Core12/Promoted_From_VK_KHR_driver_properties.hs
+++ b/src/Vulkan/Core12/Promoted_From_VK_KHR_driver_properties.hs
@@ -15,6 +15,11 @@
 import Foreign.Ptr (nullPtr)
 import Foreign.Ptr (plusPtr)
 import Data.ByteString (packCString)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
 import Data.Typeable (Typeable)
 import Foreign.C.Types (CChar)
 import Foreign.Storable (Storable)
@@ -29,14 +34,9 @@
 import Vulkan.CStruct.Utils (lowerArrayPtr)
 import Vulkan.CStruct.Utils (pokeFixedLengthNullTerminatedByteString)
 import Vulkan.Core12.Enums.DriverId (DriverId)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.APIConstants (MAX_DRIVER_INFO_SIZE)
 import Vulkan.Core10.APIConstants (MAX_DRIVER_NAME_SIZE)
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES))
 import Vulkan.Core12.Enums.DriverId (DriverId(..))
 import Vulkan.Core10.APIConstants (MAX_DRIVER_INFO_SIZE)
diff --git a/src/Vulkan/Core12/Promoted_From_VK_KHR_driver_properties.hs-boot b/src/Vulkan/Core12/Promoted_From_VK_KHR_driver_properties.hs-boot
--- a/src/Vulkan/Core12/Promoted_From_VK_KHR_driver_properties.hs-boot
+++ b/src/Vulkan/Core12/Promoted_From_VK_KHR_driver_properties.hs-boot
@@ -4,9 +4,10 @@
                                                              , PhysicalDeviceDriverProperties
                                                              ) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data ConformanceVersion
 
 instance ToCStruct ConformanceVersion
diff --git a/src/Vulkan/Core12/Promoted_From_VK_KHR_image_format_list.hs b/src/Vulkan/Core12/Promoted_From_VK_KHR_image_format_list.hs
--- a/src/Vulkan/Core12/Promoted_From_VK_KHR_image_format_list.hs
+++ b/src/Vulkan/Core12/Promoted_From_VK_KHR_image_format_list.hs
@@ -12,6 +12,11 @@
 import Data.Vector (generateM)
 import qualified Data.Vector (imapM_)
 import qualified Data.Vector (length)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
 import Data.Typeable (Typeable)
 import Foreign.Storable (Storable(peek))
 import Foreign.Storable (Storable(poke))
@@ -23,12 +28,7 @@
 import Data.Vector (Vector)
 import Vulkan.CStruct.Utils (advancePtrBytes)
 import Vulkan.Core10.Enums.Format (Format)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO))
 import Vulkan.Core10.Enums.StructureType (StructureType(..))
 -- | VkImageFormatListCreateInfo - Specify that an image /can/ be used with a
diff --git a/src/Vulkan/Core12/Promoted_From_VK_KHR_image_format_list.hs-boot b/src/Vulkan/Core12/Promoted_From_VK_KHR_image_format_list.hs-boot
--- a/src/Vulkan/Core12/Promoted_From_VK_KHR_image_format_list.hs-boot
+++ b/src/Vulkan/Core12/Promoted_From_VK_KHR_image_format_list.hs-boot
@@ -2,9 +2,10 @@
 -- No documentation found for Chapter "Promoted_From_VK_KHR_image_format_list"
 module Vulkan.Core12.Promoted_From_VK_KHR_image_format_list  (ImageFormatListCreateInfo) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data ImageFormatListCreateInfo
 
 instance ToCStruct ImageFormatListCreateInfo
diff --git a/src/Vulkan/Core12/Promoted_From_VK_KHR_imageless_framebuffer.hs b/src/Vulkan/Core12/Promoted_From_VK_KHR_imageless_framebuffer.hs
--- a/src/Vulkan/Core12/Promoted_From_VK_KHR_imageless_framebuffer.hs
+++ b/src/Vulkan/Core12/Promoted_From_VK_KHR_imageless_framebuffer.hs
@@ -17,6 +17,11 @@
 import Data.Vector (generateM)
 import qualified Data.Vector (imapM_)
 import qualified Data.Vector (length)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
 import Data.Typeable (Typeable)
 import Foreign.Storable (Storable)
 import Foreign.Storable (Storable(peek))
@@ -33,15 +38,10 @@
 import Vulkan.Core10.FundamentalTypes (boolToBool32)
 import Vulkan.Core10.FundamentalTypes (Bool32)
 import Vulkan.Core10.Enums.Format (Format)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Enums.ImageCreateFlagBits (ImageCreateFlags)
 import Vulkan.Core10.Enums.ImageUsageFlagBits (ImageUsageFlags)
 import Vulkan.Core10.Handles (ImageView)
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES))
diff --git a/src/Vulkan/Core12/Promoted_From_VK_KHR_imageless_framebuffer.hs-boot b/src/Vulkan/Core12/Promoted_From_VK_KHR_imageless_framebuffer.hs-boot
--- a/src/Vulkan/Core12/Promoted_From_VK_KHR_imageless_framebuffer.hs-boot
+++ b/src/Vulkan/Core12/Promoted_From_VK_KHR_imageless_framebuffer.hs-boot
@@ -6,9 +6,10 @@
                                                                  , RenderPassAttachmentBeginInfo
                                                                  ) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data FramebufferAttachmentImageInfo
 
 instance ToCStruct FramebufferAttachmentImageInfo
diff --git a/src/Vulkan/Core12/Promoted_From_VK_KHR_separate_depth_stencil_layouts.hs b/src/Vulkan/Core12/Promoted_From_VK_KHR_separate_depth_stencil_layouts.hs
--- a/src/Vulkan/Core12/Promoted_From_VK_KHR_separate_depth_stencil_layouts.hs
+++ b/src/Vulkan/Core12/Promoted_From_VK_KHR_separate_depth_stencil_layouts.hs
@@ -10,6 +10,11 @@
 import Foreign.Marshal.Alloc (allocaBytesAligned)
 import Foreign.Ptr (nullPtr)
 import Foreign.Ptr (plusPtr)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
 import Data.Typeable (Typeable)
 import Foreign.Storable (Storable)
 import Foreign.Storable (Storable(peek))
@@ -21,13 +26,8 @@
 import Vulkan.Core10.FundamentalTypes (bool32ToBool)
 import Vulkan.Core10.FundamentalTypes (boolToBool32)
 import Vulkan.Core10.FundamentalTypes (Bool32)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Enums.ImageLayout (ImageLayout)
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES))
diff --git a/src/Vulkan/Core12/Promoted_From_VK_KHR_separate_depth_stencil_layouts.hs-boot b/src/Vulkan/Core12/Promoted_From_VK_KHR_separate_depth_stencil_layouts.hs-boot
--- a/src/Vulkan/Core12/Promoted_From_VK_KHR_separate_depth_stencil_layouts.hs-boot
+++ b/src/Vulkan/Core12/Promoted_From_VK_KHR_separate_depth_stencil_layouts.hs-boot
@@ -5,9 +5,10 @@
                                                                           , PhysicalDeviceSeparateDepthStencilLayoutsFeatures
                                                                           ) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data AttachmentDescriptionStencilLayout
 
 instance ToCStruct AttachmentDescriptionStencilLayout
diff --git a/src/Vulkan/Core12/Promoted_From_VK_KHR_shader_atomic_int64.hs b/src/Vulkan/Core12/Promoted_From_VK_KHR_shader_atomic_int64.hs
--- a/src/Vulkan/Core12/Promoted_From_VK_KHR_shader_atomic_int64.hs
+++ b/src/Vulkan/Core12/Promoted_From_VK_KHR_shader_atomic_int64.hs
@@ -7,6 +7,11 @@
 import Foreign.Marshal.Alloc (allocaBytesAligned)
 import Foreign.Ptr (nullPtr)
 import Foreign.Ptr (plusPtr)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
 import Data.Typeable (Typeable)
 import Foreign.Storable (Storable)
 import Foreign.Storable (Storable(peek))
@@ -18,12 +23,7 @@
 import Vulkan.Core10.FundamentalTypes (bool32ToBool)
 import Vulkan.Core10.FundamentalTypes (boolToBool32)
 import Vulkan.Core10.FundamentalTypes (Bool32)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES))
 import Vulkan.Core10.Enums.StructureType (StructureType(..))
 -- | VkPhysicalDeviceShaderAtomicInt64Features - Structure describing
diff --git a/src/Vulkan/Core12/Promoted_From_VK_KHR_shader_atomic_int64.hs-boot b/src/Vulkan/Core12/Promoted_From_VK_KHR_shader_atomic_int64.hs-boot
--- a/src/Vulkan/Core12/Promoted_From_VK_KHR_shader_atomic_int64.hs-boot
+++ b/src/Vulkan/Core12/Promoted_From_VK_KHR_shader_atomic_int64.hs-boot
@@ -2,9 +2,10 @@
 -- No documentation found for Chapter "Promoted_From_VK_KHR_shader_atomic_int64"
 module Vulkan.Core12.Promoted_From_VK_KHR_shader_atomic_int64  (PhysicalDeviceShaderAtomicInt64Features) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data PhysicalDeviceShaderAtomicInt64Features
 
 instance ToCStruct PhysicalDeviceShaderAtomicInt64Features
diff --git a/src/Vulkan/Core12/Promoted_From_VK_KHR_shader_float16_int8.hs b/src/Vulkan/Core12/Promoted_From_VK_KHR_shader_float16_int8.hs
--- a/src/Vulkan/Core12/Promoted_From_VK_KHR_shader_float16_int8.hs
+++ b/src/Vulkan/Core12/Promoted_From_VK_KHR_shader_float16_int8.hs
@@ -7,6 +7,11 @@
 import Foreign.Marshal.Alloc (allocaBytesAligned)
 import Foreign.Ptr (nullPtr)
 import Foreign.Ptr (plusPtr)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
 import Data.Typeable (Typeable)
 import Foreign.Storable (Storable)
 import Foreign.Storable (Storable(peek))
@@ -18,12 +23,7 @@
 import Vulkan.Core10.FundamentalTypes (bool32ToBool)
 import Vulkan.Core10.FundamentalTypes (boolToBool32)
 import Vulkan.Core10.FundamentalTypes (Bool32)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES))
 import Vulkan.Core10.Enums.StructureType (StructureType(..))
 -- | VkPhysicalDeviceShaderFloat16Int8Features - Structure describing
diff --git a/src/Vulkan/Core12/Promoted_From_VK_KHR_shader_float16_int8.hs-boot b/src/Vulkan/Core12/Promoted_From_VK_KHR_shader_float16_int8.hs-boot
--- a/src/Vulkan/Core12/Promoted_From_VK_KHR_shader_float16_int8.hs-boot
+++ b/src/Vulkan/Core12/Promoted_From_VK_KHR_shader_float16_int8.hs-boot
@@ -2,9 +2,10 @@
 -- No documentation found for Chapter "Promoted_From_VK_KHR_shader_float16_int8"
 module Vulkan.Core12.Promoted_From_VK_KHR_shader_float16_int8  (PhysicalDeviceShaderFloat16Int8Features) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data PhysicalDeviceShaderFloat16Int8Features
 
 instance ToCStruct PhysicalDeviceShaderFloat16Int8Features
diff --git a/src/Vulkan/Core12/Promoted_From_VK_KHR_shader_float_controls.hs b/src/Vulkan/Core12/Promoted_From_VK_KHR_shader_float_controls.hs
--- a/src/Vulkan/Core12/Promoted_From_VK_KHR_shader_float_controls.hs
+++ b/src/Vulkan/Core12/Promoted_From_VK_KHR_shader_float_controls.hs
@@ -8,6 +8,11 @@
 import Foreign.Marshal.Alloc (allocaBytesAligned)
 import Foreign.Ptr (nullPtr)
 import Foreign.Ptr (plusPtr)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
 import Data.Typeable (Typeable)
 import Foreign.Storable (Storable)
 import Foreign.Storable (Storable(peek))
@@ -19,13 +24,8 @@
 import Vulkan.Core10.FundamentalTypes (bool32ToBool)
 import Vulkan.Core10.FundamentalTypes (boolToBool32)
 import Vulkan.Core10.FundamentalTypes (Bool32)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core12.Enums.ShaderFloatControlsIndependence (ShaderFloatControlsIndependence)
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES))
 import Vulkan.Core12.Enums.ShaderFloatControlsIndependence (ShaderFloatControlsIndependence(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(..))
diff --git a/src/Vulkan/Core12/Promoted_From_VK_KHR_shader_float_controls.hs-boot b/src/Vulkan/Core12/Promoted_From_VK_KHR_shader_float_controls.hs-boot
--- a/src/Vulkan/Core12/Promoted_From_VK_KHR_shader_float_controls.hs-boot
+++ b/src/Vulkan/Core12/Promoted_From_VK_KHR_shader_float_controls.hs-boot
@@ -2,9 +2,10 @@
 -- No documentation found for Chapter "Promoted_From_VK_KHR_shader_float_controls"
 module Vulkan.Core12.Promoted_From_VK_KHR_shader_float_controls  (PhysicalDeviceFloatControlsProperties) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data PhysicalDeviceFloatControlsProperties
 
 instance ToCStruct PhysicalDeviceFloatControlsProperties
diff --git a/src/Vulkan/Core12/Promoted_From_VK_KHR_shader_subgroup_extended_types.hs b/src/Vulkan/Core12/Promoted_From_VK_KHR_shader_subgroup_extended_types.hs
--- a/src/Vulkan/Core12/Promoted_From_VK_KHR_shader_subgroup_extended_types.hs
+++ b/src/Vulkan/Core12/Promoted_From_VK_KHR_shader_subgroup_extended_types.hs
@@ -7,6 +7,11 @@
 import Foreign.Marshal.Alloc (allocaBytesAligned)
 import Foreign.Ptr (nullPtr)
 import Foreign.Ptr (plusPtr)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
 import Data.Typeable (Typeable)
 import Foreign.Storable (Storable)
 import Foreign.Storable (Storable(peek))
@@ -18,12 +23,7 @@
 import Vulkan.Core10.FundamentalTypes (bool32ToBool)
 import Vulkan.Core10.FundamentalTypes (boolToBool32)
 import Vulkan.Core10.FundamentalTypes (Bool32)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES))
 import Vulkan.Core10.Enums.StructureType (StructureType(..))
 -- | VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures - Structure
diff --git a/src/Vulkan/Core12/Promoted_From_VK_KHR_shader_subgroup_extended_types.hs-boot b/src/Vulkan/Core12/Promoted_From_VK_KHR_shader_subgroup_extended_types.hs-boot
--- a/src/Vulkan/Core12/Promoted_From_VK_KHR_shader_subgroup_extended_types.hs-boot
+++ b/src/Vulkan/Core12/Promoted_From_VK_KHR_shader_subgroup_extended_types.hs-boot
@@ -2,9 +2,10 @@
 -- No documentation found for Chapter "Promoted_From_VK_KHR_shader_subgroup_extended_types"
 module Vulkan.Core12.Promoted_From_VK_KHR_shader_subgroup_extended_types  (PhysicalDeviceShaderSubgroupExtendedTypesFeatures) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data PhysicalDeviceShaderSubgroupExtendedTypesFeatures
 
 instance ToCStruct PhysicalDeviceShaderSubgroupExtendedTypesFeatures
diff --git a/src/Vulkan/Core12/Promoted_From_VK_KHR_timeline_semaphore.hs b/src/Vulkan/Core12/Promoted_From_VK_KHR_timeline_semaphore.hs
--- a/src/Vulkan/Core12/Promoted_From_VK_KHR_timeline_semaphore.hs
+++ b/src/Vulkan/Core12/Promoted_From_VK_KHR_timeline_semaphore.hs
@@ -34,6 +34,11 @@
 import qualified Data.Vector (imapM_)
 import qualified Data.Vector (length)
 import qualified Data.Vector (null)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
 import Control.Monad.IO.Class (MonadIO)
 import Data.Typeable (Typeable)
 import Foreign.Storable (Storable)
@@ -61,8 +66,6 @@
 import Vulkan.Dynamic (DeviceCmds(pVkSignalSemaphore))
 import Vulkan.Dynamic (DeviceCmds(pVkWaitSemaphores))
 import Vulkan.Core10.Handles (Device_T)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Enums.Result (Result)
 import Vulkan.Core10.Enums.Result (Result(..))
 import Vulkan.Core10.Handles (Semaphore)
@@ -70,10 +73,7 @@
 import Vulkan.Core12.Enums.SemaphoreType (SemaphoreType)
 import Vulkan.Core12.Enums.SemaphoreWaitFlagBits (SemaphoreWaitFlags)
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
 import Vulkan.Exception (VulkanException(..))
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO))
@@ -168,8 +168,7 @@
 -- | waitSemaphores with selectable safeness
 waitSemaphoresSafeOrUnsafe :: forall io
                             . (MonadIO io)
-                           => -- No documentation found for TopLevel ""
-                              (FunPtr (Ptr Device_T -> Ptr SemaphoreWaitInfo -> Word64 -> IO Result) -> Ptr Device_T -> Ptr SemaphoreWaitInfo -> Word64 -> IO Result)
+                           => (FunPtr (Ptr Device_T -> Ptr SemaphoreWaitInfo -> Word64 -> IO Result) -> Ptr Device_T -> Ptr SemaphoreWaitInfo -> Word64 -> IO Result)
                            -> -- | @device@ is the logical device that owns the semaphore.
                               --
                               -- #VUID-vkWaitSemaphores-device-parameter# @device@ /must/ be a valid
diff --git a/src/Vulkan/Core12/Promoted_From_VK_KHR_timeline_semaphore.hs-boot b/src/Vulkan/Core12/Promoted_From_VK_KHR_timeline_semaphore.hs-boot
--- a/src/Vulkan/Core12/Promoted_From_VK_KHR_timeline_semaphore.hs-boot
+++ b/src/Vulkan/Core12/Promoted_From_VK_KHR_timeline_semaphore.hs-boot
@@ -8,9 +8,10 @@
                                                               , TimelineSemaphoreSubmitInfo
                                                               ) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data PhysicalDeviceTimelineSemaphoreFeatures
 
 instance ToCStruct PhysicalDeviceTimelineSemaphoreFeatures
diff --git a/src/Vulkan/Core12/Promoted_From_VK_KHR_uniform_buffer_standard_layout.hs b/src/Vulkan/Core12/Promoted_From_VK_KHR_uniform_buffer_standard_layout.hs
--- a/src/Vulkan/Core12/Promoted_From_VK_KHR_uniform_buffer_standard_layout.hs
+++ b/src/Vulkan/Core12/Promoted_From_VK_KHR_uniform_buffer_standard_layout.hs
@@ -7,6 +7,11 @@
 import Foreign.Marshal.Alloc (allocaBytesAligned)
 import Foreign.Ptr (nullPtr)
 import Foreign.Ptr (plusPtr)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
 import Data.Typeable (Typeable)
 import Foreign.Storable (Storable)
 import Foreign.Storable (Storable(peek))
@@ -18,12 +23,7 @@
 import Vulkan.Core10.FundamentalTypes (bool32ToBool)
 import Vulkan.Core10.FundamentalTypes (boolToBool32)
 import Vulkan.Core10.FundamentalTypes (Bool32)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES))
 import Vulkan.Core10.Enums.StructureType (StructureType(..))
 -- | VkPhysicalDeviceUniformBufferStandardLayoutFeatures - Structure
diff --git a/src/Vulkan/Core12/Promoted_From_VK_KHR_uniform_buffer_standard_layout.hs-boot b/src/Vulkan/Core12/Promoted_From_VK_KHR_uniform_buffer_standard_layout.hs-boot
--- a/src/Vulkan/Core12/Promoted_From_VK_KHR_uniform_buffer_standard_layout.hs-boot
+++ b/src/Vulkan/Core12/Promoted_From_VK_KHR_uniform_buffer_standard_layout.hs-boot
@@ -2,9 +2,10 @@
 -- No documentation found for Chapter "Promoted_From_VK_KHR_uniform_buffer_standard_layout"
 module Vulkan.Core12.Promoted_From_VK_KHR_uniform_buffer_standard_layout  (PhysicalDeviceUniformBufferStandardLayoutFeatures) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data PhysicalDeviceUniformBufferStandardLayoutFeatures
 
 instance ToCStruct PhysicalDeviceUniformBufferStandardLayoutFeatures
diff --git a/src/Vulkan/Core12/Promoted_From_VK_KHR_vulkan_memory_model.hs b/src/Vulkan/Core12/Promoted_From_VK_KHR_vulkan_memory_model.hs
--- a/src/Vulkan/Core12/Promoted_From_VK_KHR_vulkan_memory_model.hs
+++ b/src/Vulkan/Core12/Promoted_From_VK_KHR_vulkan_memory_model.hs
@@ -7,6 +7,11 @@
 import Foreign.Marshal.Alloc (allocaBytesAligned)
 import Foreign.Ptr (nullPtr)
 import Foreign.Ptr (plusPtr)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
 import Data.Typeable (Typeable)
 import Foreign.Storable (Storable)
 import Foreign.Storable (Storable(peek))
@@ -18,12 +23,7 @@
 import Vulkan.Core10.FundamentalTypes (bool32ToBool)
 import Vulkan.Core10.FundamentalTypes (boolToBool32)
 import Vulkan.Core10.FundamentalTypes (Bool32)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES))
 import Vulkan.Core10.Enums.StructureType (StructureType(..))
 -- | VkPhysicalDeviceVulkanMemoryModelFeatures - Structure describing
diff --git a/src/Vulkan/Core12/Promoted_From_VK_KHR_vulkan_memory_model.hs-boot b/src/Vulkan/Core12/Promoted_From_VK_KHR_vulkan_memory_model.hs-boot
--- a/src/Vulkan/Core12/Promoted_From_VK_KHR_vulkan_memory_model.hs-boot
+++ b/src/Vulkan/Core12/Promoted_From_VK_KHR_vulkan_memory_model.hs-boot
@@ -2,9 +2,10 @@
 -- No documentation found for Chapter "Promoted_From_VK_KHR_vulkan_memory_model"
 module Vulkan.Core12.Promoted_From_VK_KHR_vulkan_memory_model  (PhysicalDeviceVulkanMemoryModelFeatures) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data PhysicalDeviceVulkanMemoryModelFeatures
 
 instance ToCStruct PhysicalDeviceVulkanMemoryModelFeatures
diff --git a/src/Vulkan/Dynamic.hs b/src/Vulkan/Dynamic.hs
--- a/src/Vulkan/Dynamic.hs
+++ b/src/Vulkan/Dynamic.hs
@@ -12,6 +12,7 @@
 import Foreign.Ptr (castFunPtr)
 import GHC.Ptr (nullFunPtr)
 import Foreign.Ptr (nullPtr)
+import Vulkan.Zero (Zero(..))
 import Foreign.C.Types (CChar)
 import Foreign.C.Types (CFloat)
 import Foreign.C.Types (CInt)
@@ -347,7 +348,6 @@
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_xcb_surface (Xcb_connection_t)
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_xcb_surface (Xcb_visualid_t)
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_xlib_surface (XlibSurfaceCreateInfoKHR)
-import Vulkan.Zero (Zero(..))
 data InstanceCmds = InstanceCmds
   { instanceCmdsHandle :: Ptr Instance_T
   , pVkDestroyInstance :: FunPtr (Ptr Instance_T -> ("pAllocator" ::: Ptr AllocationCallbacks) -> IO ())
diff --git a/src/Vulkan/Extensions/Dependencies.hs b/src/Vulkan/Extensions/Dependencies.hs
--- a/src/Vulkan/Extensions/Dependencies.hs
+++ b/src/Vulkan/Extensions/Dependencies.hs
@@ -1,6 +1,8 @@
 {-# language CPP #-}
 -- No documentation found for Chapter "Dependencies"
-module Vulkan.Extensions.Dependencies  () where
+module Vulkan.Extensions.Dependencies  ( extensionDependencies
+                                       , extensionCoreRequirement
+                                       ) where
 
 import Data.Word (Word32)
 import Data.ByteString (ByteString)
diff --git a/src/Vulkan/Extensions/Handles.hs b/src/Vulkan/Extensions/Handles.hs
--- a/src/Vulkan/Extensions/Handles.hs
+++ b/src/Vulkan/Extensions/Handles.hs
@@ -42,11 +42,11 @@
 
 import GHC.Show (showParen)
 import Numeric (showHex)
+import Vulkan.Zero (Zero)
 import Foreign.Storable (Storable)
 import Data.Word (Word64)
 import Vulkan.Core10.APIConstants (HasObjectType(..))
 import Vulkan.Core10.APIConstants (IsHandle)
-import Vulkan.Zero (Zero)
 import Vulkan.Core10.Enums.ObjectType (ObjectType(OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR))
 import Vulkan.Core10.Enums.ObjectType (ObjectType(OBJECT_TYPE_ACCELERATION_STRUCTURE_NV))
 import Vulkan.Core10.Enums.ObjectType (ObjectType(OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT))
diff --git a/src/Vulkan/Extensions/VK_AMD_device_coherent_memory.hs b/src/Vulkan/Extensions/VK_AMD_device_coherent_memory.hs
--- a/src/Vulkan/Extensions/VK_AMD_device_coherent_memory.hs
+++ b/src/Vulkan/Extensions/VK_AMD_device_coherent_memory.hs
@@ -103,6 +103,11 @@
 import Foreign.Marshal.Alloc (allocaBytesAligned)
 import Foreign.Ptr (nullPtr)
 import Foreign.Ptr (plusPtr)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
 import Data.String (IsString)
 import Data.Typeable (Typeable)
 import Foreign.Storable (Storable)
@@ -115,12 +120,7 @@
 import Vulkan.Core10.FundamentalTypes (bool32ToBool)
 import Vulkan.Core10.FundamentalTypes (boolToBool32)
 import Vulkan.Core10.FundamentalTypes (Bool32)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD))
 -- | VkPhysicalDeviceCoherentMemoryFeaturesAMD - Structure describing whether
 -- device coherent memory can be supported by an implementation
diff --git a/src/Vulkan/Extensions/VK_AMD_device_coherent_memory.hs-boot b/src/Vulkan/Extensions/VK_AMD_device_coherent_memory.hs-boot
--- a/src/Vulkan/Extensions/VK_AMD_device_coherent_memory.hs-boot
+++ b/src/Vulkan/Extensions/VK_AMD_device_coherent_memory.hs-boot
@@ -95,9 +95,10 @@
 -- the generator scripts, not directly.
 module Vulkan.Extensions.VK_AMD_device_coherent_memory  (PhysicalDeviceCoherentMemoryFeaturesAMD) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data PhysicalDeviceCoherentMemoryFeaturesAMD
 
 instance ToCStruct PhysicalDeviceCoherentMemoryFeaturesAMD
diff --git a/src/Vulkan/Extensions/VK_AMD_display_native_hdr.hs b/src/Vulkan/Extensions/VK_AMD_display_native_hdr.hs
--- a/src/Vulkan/Extensions/VK_AMD_display_native_hdr.hs
+++ b/src/Vulkan/Extensions/VK_AMD_display_native_hdr.hs
@@ -143,6 +143,11 @@
 import GHC.Ptr (nullFunPtr)
 import Foreign.Ptr (nullPtr)
 import Foreign.Ptr (plusPtr)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
 import Control.Monad.IO.Class (MonadIO)
 import Data.String (IsString)
 import Data.Typeable (Typeable)
@@ -165,14 +170,9 @@
 import Vulkan.Core10.Handles (Device(..))
 import Vulkan.Dynamic (DeviceCmds(pVkSetLocalDimmingAMD))
 import Vulkan.Core10.Handles (Device_T)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Enums.StructureType (StructureType)
 import Vulkan.Extensions.Handles (SwapchainKHR)
 import Vulkan.Extensions.Handles (SwapchainKHR(..))
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD))
 import Vulkan.Extensions.VK_KHR_surface (ColorSpaceKHR(..))
@@ -200,10 +200,9 @@
 --
 -- == Valid Usage
 --
--- -   #VUID-vkSetLocalDimmingAMD-localDimmingSupport-04618# It is only
---     valid to call 'setLocalDimmingAMD' if
---     'DisplayNativeHdrSurfaceCapabilitiesAMD'::@localDimmingSupport@ is
---     supported
+-- -   #VUID-vkSetLocalDimmingAMD-localDimmingSupport-04618#
+--     'DisplayNativeHdrSurfaceCapabilitiesAMD'::@localDimmingSupport@
+--     /must/ be supported
 --
 -- = See Also
 --
diff --git a/src/Vulkan/Extensions/VK_AMD_display_native_hdr.hs-boot b/src/Vulkan/Extensions/VK_AMD_display_native_hdr.hs-boot
--- a/src/Vulkan/Extensions/VK_AMD_display_native_hdr.hs-boot
+++ b/src/Vulkan/Extensions/VK_AMD_display_native_hdr.hs-boot
@@ -128,9 +128,10 @@
                                                     , SwapchainDisplayNativeHdrCreateInfoAMD
                                                     ) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data DisplayNativeHdrSurfaceCapabilitiesAMD
 
 instance ToCStruct DisplayNativeHdrSurfaceCapabilitiesAMD
diff --git a/src/Vulkan/Extensions/VK_AMD_memory_overallocation_behavior.hs b/src/Vulkan/Extensions/VK_AMD_memory_overallocation_behavior.hs
--- a/src/Vulkan/Extensions/VK_AMD_memory_overallocation_behavior.hs
+++ b/src/Vulkan/Extensions/VK_AMD_memory_overallocation_behavior.hs
@@ -108,6 +108,12 @@
 import Foreign.Ptr (nullPtr)
 import Foreign.Ptr (plusPtr)
 import GHC.Show (showsPrec)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero)
+import Vulkan.Zero (Zero(..))
 import Data.String (IsString)
 import Data.Typeable (Typeable)
 import Foreign.Storable (Storable)
@@ -120,13 +126,7 @@
 import GHC.Read (Read(readPrec))
 import GHC.Show (Show(showsPrec))
 import Data.Kind (Type)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
-import Vulkan.Zero (Zero)
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD))
 -- | VkDeviceMemoryOverallocationCreateInfoAMD - Specify memory
 -- overallocation behavior for a Vulkan device
diff --git a/src/Vulkan/Extensions/VK_AMD_memory_overallocation_behavior.hs-boot b/src/Vulkan/Extensions/VK_AMD_memory_overallocation_behavior.hs-boot
--- a/src/Vulkan/Extensions/VK_AMD_memory_overallocation_behavior.hs-boot
+++ b/src/Vulkan/Extensions/VK_AMD_memory_overallocation_behavior.hs-boot
@@ -92,9 +92,10 @@
 -- the generator scripts, not directly.
 module Vulkan.Extensions.VK_AMD_memory_overallocation_behavior  (DeviceMemoryOverallocationCreateInfoAMD) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data DeviceMemoryOverallocationCreateInfoAMD
 
 instance ToCStruct DeviceMemoryOverallocationCreateInfoAMD
diff --git a/src/Vulkan/Extensions/VK_AMD_pipeline_compiler_control.hs b/src/Vulkan/Extensions/VK_AMD_pipeline_compiler_control.hs
--- a/src/Vulkan/Extensions/VK_AMD_pipeline_compiler_control.hs
+++ b/src/Vulkan/Extensions/VK_AMD_pipeline_compiler_control.hs
@@ -117,6 +117,12 @@
 import Foreign.Ptr (plusPtr)
 import GHC.Show (showString)
 import Numeric (showHex)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero)
+import Vulkan.Zero (Zero(..))
 import Data.Bits (Bits)
 import Data.Bits (FiniteBits)
 import Data.String (IsString)
@@ -131,13 +137,7 @@
 import GHC.Show (Show(showsPrec))
 import Data.Kind (Type)
 import Vulkan.Core10.FundamentalTypes (Flags)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
-import Vulkan.Zero (Zero)
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD))
 -- | VkPipelineCompilerControlCreateInfoAMD - Structure used to pass
 -- compilation control flags to a pipeline
diff --git a/src/Vulkan/Extensions/VK_AMD_pipeline_compiler_control.hs-boot b/src/Vulkan/Extensions/VK_AMD_pipeline_compiler_control.hs-boot
--- a/src/Vulkan/Extensions/VK_AMD_pipeline_compiler_control.hs-boot
+++ b/src/Vulkan/Extensions/VK_AMD_pipeline_compiler_control.hs-boot
@@ -103,9 +103,10 @@
 -- the generator scripts, not directly.
 module Vulkan.Extensions.VK_AMD_pipeline_compiler_control  (PipelineCompilerControlCreateInfoAMD) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data PipelineCompilerControlCreateInfoAMD
 
 instance ToCStruct PipelineCompilerControlCreateInfoAMD
diff --git a/src/Vulkan/Extensions/VK_AMD_rasterization_order.hs b/src/Vulkan/Extensions/VK_AMD_rasterization_order.hs
--- a/src/Vulkan/Extensions/VK_AMD_rasterization_order.hs
+++ b/src/Vulkan/Extensions/VK_AMD_rasterization_order.hs
@@ -181,6 +181,12 @@
 import Foreign.Ptr (nullPtr)
 import Foreign.Ptr (plusPtr)
 import GHC.Show (showsPrec)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero)
+import Vulkan.Zero (Zero(..))
 import Data.String (IsString)
 import Data.Typeable (Typeable)
 import Foreign.Storable (Storable)
@@ -193,13 +199,7 @@
 import GHC.Read (Read(readPrec))
 import GHC.Show (Show(showsPrec))
 import Data.Kind (Type)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
-import Vulkan.Zero (Zero)
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD))
 -- | VkPipelineRasterizationStateRasterizationOrderAMD - Structure defining
 -- rasterization order for a graphics pipeline
diff --git a/src/Vulkan/Extensions/VK_AMD_rasterization_order.hs-boot b/src/Vulkan/Extensions/VK_AMD_rasterization_order.hs-boot
--- a/src/Vulkan/Extensions/VK_AMD_rasterization_order.hs-boot
+++ b/src/Vulkan/Extensions/VK_AMD_rasterization_order.hs-boot
@@ -166,9 +166,10 @@
 -- the generator scripts, not directly.
 module Vulkan.Extensions.VK_AMD_rasterization_order  (PipelineRasterizationStateRasterizationOrderAMD) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data PipelineRasterizationStateRasterizationOrderAMD
 
 instance ToCStruct PipelineRasterizationStateRasterizationOrderAMD
diff --git a/src/Vulkan/Extensions/VK_AMD_shader_core_properties.hs b/src/Vulkan/Extensions/VK_AMD_shader_core_properties.hs
--- a/src/Vulkan/Extensions/VK_AMD_shader_core_properties.hs
+++ b/src/Vulkan/Extensions/VK_AMD_shader_core_properties.hs
@@ -161,6 +161,11 @@
 import Foreign.Marshal.Alloc (allocaBytesAligned)
 import Foreign.Ptr (nullPtr)
 import Foreign.Ptr (plusPtr)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
 import Data.String (IsString)
 import Data.Typeable (Typeable)
 import Foreign.Storable (Storable)
@@ -171,12 +176,7 @@
 import Foreign.Ptr (Ptr)
 import Data.Word (Word32)
 import Data.Kind (Type)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD))
 -- | VkPhysicalDeviceShaderCorePropertiesAMD - Structure describing shader
 -- core properties that can be supported by an implementation
diff --git a/src/Vulkan/Extensions/VK_AMD_shader_core_properties.hs-boot b/src/Vulkan/Extensions/VK_AMD_shader_core_properties.hs-boot
--- a/src/Vulkan/Extensions/VK_AMD_shader_core_properties.hs-boot
+++ b/src/Vulkan/Extensions/VK_AMD_shader_core_properties.hs-boot
@@ -153,9 +153,10 @@
 -- the generator scripts, not directly.
 module Vulkan.Extensions.VK_AMD_shader_core_properties  (PhysicalDeviceShaderCorePropertiesAMD) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data PhysicalDeviceShaderCorePropertiesAMD
 
 instance ToCStruct PhysicalDeviceShaderCorePropertiesAMD
diff --git a/src/Vulkan/Extensions/VK_AMD_shader_core_properties2.hs b/src/Vulkan/Extensions/VK_AMD_shader_core_properties2.hs
--- a/src/Vulkan/Extensions/VK_AMD_shader_core_properties2.hs
+++ b/src/Vulkan/Extensions/VK_AMD_shader_core_properties2.hs
@@ -111,6 +111,12 @@
 import Foreign.Ptr (plusPtr)
 import GHC.Show (showString)
 import Numeric (showHex)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero)
+import Vulkan.Zero (Zero(..))
 import Data.Bits (Bits)
 import Data.Bits (FiniteBits)
 import Data.String (IsString)
@@ -126,13 +132,7 @@
 import Data.Word (Word32)
 import Data.Kind (Type)
 import Vulkan.Core10.FundamentalTypes (Flags)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
-import Vulkan.Zero (Zero)
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD))
 -- | VkPhysicalDeviceShaderCoreProperties2AMD - Structure describing shader
 -- core properties that can be supported by an implementation
diff --git a/src/Vulkan/Extensions/VK_AMD_shader_core_properties2.hs-boot b/src/Vulkan/Extensions/VK_AMD_shader_core_properties2.hs-boot
--- a/src/Vulkan/Extensions/VK_AMD_shader_core_properties2.hs-boot
+++ b/src/Vulkan/Extensions/VK_AMD_shader_core_properties2.hs-boot
@@ -97,9 +97,10 @@
 -- the generator scripts, not directly.
 module Vulkan.Extensions.VK_AMD_shader_core_properties2  (PhysicalDeviceShaderCoreProperties2AMD) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data PhysicalDeviceShaderCoreProperties2AMD
 
 instance ToCStruct PhysicalDeviceShaderCoreProperties2AMD
diff --git a/src/Vulkan/Extensions/VK_AMD_shader_fragment_mask.hs b/src/Vulkan/Extensions/VK_AMD_shader_fragment_mask.hs
--- a/src/Vulkan/Extensions/VK_AMD_shader_fragment_mask.hs
+++ b/src/Vulkan/Extensions/VK_AMD_shader_fragment_mask.hs
@@ -73,7 +73,7 @@
 --
 -- == New SPIR-V Capabilities
 --
--- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-fragmentmaskamd FragmentMaskAMD>
+-- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-FragmentMaskAMD FragmentMaskAMD>
 --
 -- == Examples
 --
diff --git a/src/Vulkan/Extensions/VK_AMD_shader_info.hs b/src/Vulkan/Extensions/VK_AMD_shader_info.hs
--- a/src/Vulkan/Extensions/VK_AMD_shader_info.hs
+++ b/src/Vulkan/Extensions/VK_AMD_shader_info.hs
@@ -184,14 +184,22 @@
 import Foreign.Ptr (plusPtr)
 import GHC.Show (showsPrec)
 import Data.ByteString (packCStringLen)
+import Data.Coerce (coerce)
 import Control.Monad.Trans.Class (lift)
 import Control.Monad.Trans.Cont (evalContT)
 import Foreign.C.Types (CSize(..))
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero)
+import Vulkan.Zero (Zero(..))
 import Control.Monad.IO.Class (MonadIO)
 import Data.String (IsString)
 import Data.Typeable (Typeable)
 import Foreign.C.Types (CChar)
 import Foreign.C.Types (CSize)
+import Foreign.C.Types (CSize(..))
 import Foreign.C.Types (CSize(CSize))
 import Foreign.Storable (Storable)
 import Foreign.Storable (Storable(peek))
@@ -217,8 +225,6 @@
 import Vulkan.Core10.Handles (Device(..))
 import Vulkan.Dynamic (DeviceCmds(pVkGetShaderInfoAMD))
 import Vulkan.Core10.Handles (Device_T)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Handles (Pipeline)
 import Vulkan.Core10.Handles (Pipeline(..))
 import Vulkan.Core10.Enums.Result (Result)
@@ -226,11 +232,7 @@
 import Vulkan.Core10.Enums.ShaderStageFlagBits (ShaderStageFlagBits)
 import Vulkan.Core10.Enums.ShaderStageFlagBits (ShaderStageFlagBits(..))
 import Vulkan.Core10.Enums.ShaderStageFlagBits (ShaderStageFlags)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
 import Vulkan.Exception (VulkanException(..))
-import Vulkan.Zero (Zero)
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.Result (Result(SUCCESS))
 foreign import ccall
 #if !defined(SAFE_FOREIGN_CALLS)
@@ -345,11 +347,11 @@
   r <- lift $ traceAroundEvent "vkGetShaderInfoAMD" (vkGetShaderInfoAMD' device' (pipeline) (shaderStage) (infoType) (pPInfoSize) (nullPtr))
   lift $ when (r < SUCCESS) (throwIO (VulkanException r))
   pInfoSize <- lift $ peek @CSize pPInfoSize
-  pPInfo <- ContT $ bracket (callocBytes @(()) (fromIntegral (((\(CSize a) -> a) pInfoSize)))) free
+  pPInfo <- ContT $ bracket (callocBytes @(()) (fromIntegral ((coerce @CSize @Word64 pInfoSize)))) free
   r' <- lift $ traceAroundEvent "vkGetShaderInfoAMD" (vkGetShaderInfoAMD' device' (pipeline) (shaderStage) (infoType) (pPInfoSize) (pPInfo))
   lift $ when (r' < SUCCESS) (throwIO (VulkanException r'))
   pInfoSize'' <- lift $ peek @CSize pPInfoSize
-  pInfo' <- lift $ packCStringLen  (castPtr @() @CChar pPInfo, (fromIntegral (((\(CSize a) -> a) pInfoSize''))))
+  pInfo' <- lift $ packCStringLen  (castPtr @() @CChar pPInfo, (fromIntegral ((coerce @CSize @Word64 pInfoSize''))))
   pure $ ((r'), pInfo')
 
 
@@ -409,7 +411,7 @@
     ldsUsageSizeInBytes <- peek @CSize ((p `plusPtr` 16 :: Ptr CSize))
     scratchMemUsageInBytes <- peek @CSize ((p `plusPtr` 24 :: Ptr CSize))
     pure $ ShaderResourceUsageAMD
-             numUsedVgprs numUsedSgprs ldsSizePerLocalWorkGroup ((\(CSize a) -> a) ldsUsageSizeInBytes) ((\(CSize a) -> a) scratchMemUsageInBytes)
+             numUsedVgprs numUsedSgprs ldsSizePerLocalWorkGroup (coerce @CSize @Word64 ldsUsageSizeInBytes) (coerce @CSize @Word64 scratchMemUsageInBytes)
 
 instance Storable ShaderResourceUsageAMD where
   sizeOf ~_ = 32
diff --git a/src/Vulkan/Extensions/VK_AMD_shader_info.hs-boot b/src/Vulkan/Extensions/VK_AMD_shader_info.hs-boot
--- a/src/Vulkan/Extensions/VK_AMD_shader_info.hs-boot
+++ b/src/Vulkan/Extensions/VK_AMD_shader_info.hs-boot
@@ -157,9 +157,10 @@
                                              , ShaderInfoTypeAMD
                                              ) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data ShaderResourceUsageAMD
 
 instance ToCStruct ShaderResourceUsageAMD
diff --git a/src/Vulkan/Extensions/VK_AMD_texture_gather_bias_lod.hs b/src/Vulkan/Extensions/VK_AMD_texture_gather_bias_lod.hs
--- a/src/Vulkan/Extensions/VK_AMD_texture_gather_bias_lod.hs
+++ b/src/Vulkan/Extensions/VK_AMD_texture_gather_bias_lod.hs
@@ -88,7 +88,7 @@
 --
 -- == New SPIR-V Capabilities
 --
--- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-imagegatherbiaslodamd ImageGatherBiasLodAMD>
+-- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-ImageGatherBiasLodAMD ImageGatherBiasLodAMD>
 --
 -- == Examples
 --
@@ -159,6 +159,11 @@
 import Foreign.Marshal.Alloc (allocaBytesAligned)
 import Foreign.Ptr (nullPtr)
 import Foreign.Ptr (plusPtr)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
 import Data.String (IsString)
 import Data.Typeable (Typeable)
 import Foreign.Storable (Storable)
@@ -171,12 +176,7 @@
 import Vulkan.Core10.FundamentalTypes (bool32ToBool)
 import Vulkan.Core10.FundamentalTypes (boolToBool32)
 import Vulkan.Core10.FundamentalTypes (Bool32)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD))
 -- | VkTextureLODGatherFormatPropertiesAMD - Structure informing whether or
 -- not texture gather bias\/LOD functionality is supported for a given
diff --git a/src/Vulkan/Extensions/VK_AMD_texture_gather_bias_lod.hs-boot b/src/Vulkan/Extensions/VK_AMD_texture_gather_bias_lod.hs-boot
--- a/src/Vulkan/Extensions/VK_AMD_texture_gather_bias_lod.hs-boot
+++ b/src/Vulkan/Extensions/VK_AMD_texture_gather_bias_lod.hs-boot
@@ -88,7 +88,7 @@
 --
 -- == New SPIR-V Capabilities
 --
--- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-imagegatherbiaslodamd ImageGatherBiasLodAMD>
+-- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-ImageGatherBiasLodAMD ImageGatherBiasLodAMD>
 --
 -- == Examples
 --
@@ -151,9 +151,10 @@
 -- the generator scripts, not directly.
 module Vulkan.Extensions.VK_AMD_texture_gather_bias_lod  (TextureLODGatherFormatPropertiesAMD) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data TextureLODGatherFormatPropertiesAMD
 
 instance ToCStruct TextureLODGatherFormatPropertiesAMD
diff --git a/src/Vulkan/Extensions/VK_ANDROID_external_memory_android_hardware_buffer.hs b/src/Vulkan/Extensions/VK_ANDROID_external_memory_android_hardware_buffer.hs
--- a/src/Vulkan/Extensions/VK_ANDROID_external_memory_android_hardware_buffer.hs
+++ b/src/Vulkan/Extensions/VK_ANDROID_external_memory_android_hardware_buffer.hs
@@ -286,6 +286,11 @@
 import Foreign.Ptr (plusPtr)
 import Control.Monad.Trans.Class (lift)
 import Control.Monad.Trans.Cont (evalContT)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
 import Control.Monad.IO.Class (MonadIO)
 import Data.String (IsString)
 import Data.Type.Equality ((:~:)(Refl))
@@ -319,8 +324,6 @@
 import Vulkan.CStruct.Extends (Extensible(..))
 import Vulkan.Core10.Enums.Format (Format)
 import Vulkan.Core10.Enums.FormatFeatureFlagBits (FormatFeatureFlags)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.CStruct.Extends (PeekChain)
 import Vulkan.CStruct.Extends (PeekChain(..))
 import Vulkan.CStruct.Extends (PokeChain)
@@ -331,10 +334,7 @@
 import Vulkan.Core11.Enums.SamplerYcbcrRange (SamplerYcbcrRange)
 import Vulkan.CStruct.Extends (SomeStruct)
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
 import Vulkan.Exception (VulkanException(..))
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID))
@@ -655,7 +655,7 @@
 deriving instance Show (Chain es) => Show (AndroidHardwareBufferPropertiesANDROID es)
 
 instance Extensible AndroidHardwareBufferPropertiesANDROID where
-  extensibleType = STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID
+  extensibleTypeName = "AndroidHardwareBufferPropertiesANDROID"
   setNext x next = x{next = next}
   getNext AndroidHardwareBufferPropertiesANDROID{..} = next
   extends :: forall e b proxy. Typeable e => proxy e -> (Extends AndroidHardwareBufferPropertiesANDROID e => b) -> Maybe b
diff --git a/src/Vulkan/Extensions/VK_ANDROID_external_memory_android_hardware_buffer.hs-boot b/src/Vulkan/Extensions/VK_ANDROID_external_memory_android_hardware_buffer.hs-boot
--- a/src/Vulkan/Extensions/VK_ANDROID_external_memory_android_hardware_buffer.hs-boot
+++ b/src/Vulkan/Extensions/VK_ANDROID_external_memory_android_hardware_buffer.hs-boot
@@ -264,13 +264,13 @@
                                                                              , AHardwareBuffer
                                                                              ) where
 
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (ToCStruct)
 import Data.Kind (Type)
 import {-# SOURCE #-} Vulkan.CStruct.Extends (Chain)
 import {-# SOURCE #-} Vulkan.CStruct.Extends (Extendss)
-import Vulkan.CStruct (FromCStruct)
 import {-# SOURCE #-} Vulkan.CStruct.Extends (PeekChain)
 import {-# SOURCE #-} Vulkan.CStruct.Extends (PokeChain)
-import Vulkan.CStruct (ToCStruct)
 data AndroidHardwareBufferFormatPropertiesANDROID
 
 instance ToCStruct AndroidHardwareBufferFormatPropertiesANDROID
diff --git a/src/Vulkan/Extensions/VK_EXT_4444_formats.hs b/src/Vulkan/Extensions/VK_EXT_4444_formats.hs
--- a/src/Vulkan/Extensions/VK_EXT_4444_formats.hs
+++ b/src/Vulkan/Extensions/VK_EXT_4444_formats.hs
@@ -108,6 +108,11 @@
 import Foreign.Marshal.Alloc (allocaBytesAligned)
 import Foreign.Ptr (nullPtr)
 import Foreign.Ptr (plusPtr)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
 import Data.String (IsString)
 import Data.Typeable (Typeable)
 import Foreign.Storable (Storable)
@@ -120,12 +125,7 @@
 import Vulkan.Core10.FundamentalTypes (bool32ToBool)
 import Vulkan.Core10.FundamentalTypes (boolToBool32)
 import Vulkan.Core10.FundamentalTypes (Bool32)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT))
 -- | VkPhysicalDevice4444FormatsFeaturesEXT - Structure describing additional
 -- 4444 formats supported by an implementation
diff --git a/src/Vulkan/Extensions/VK_EXT_4444_formats.hs-boot b/src/Vulkan/Extensions/VK_EXT_4444_formats.hs-boot
--- a/src/Vulkan/Extensions/VK_EXT_4444_formats.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_4444_formats.hs-boot
@@ -100,9 +100,10 @@
 -- the generator scripts, not directly.
 module Vulkan.Extensions.VK_EXT_4444_formats  (PhysicalDevice4444FormatsFeaturesEXT) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data PhysicalDevice4444FormatsFeaturesEXT
 
 instance ToCStruct PhysicalDevice4444FormatsFeaturesEXT
diff --git a/src/Vulkan/Extensions/VK_EXT_astc_decode_mode.hs b/src/Vulkan/Extensions/VK_EXT_astc_decode_mode.hs
--- a/src/Vulkan/Extensions/VK_EXT_astc_decode_mode.hs
+++ b/src/Vulkan/Extensions/VK_EXT_astc_decode_mode.hs
@@ -166,6 +166,11 @@
 import Foreign.Marshal.Alloc (allocaBytesAligned)
 import Foreign.Ptr (nullPtr)
 import Foreign.Ptr (plusPtr)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
 import Data.String (IsString)
 import Data.Typeable (Typeable)
 import Foreign.Storable (Storable)
@@ -179,12 +184,7 @@
 import Vulkan.Core10.FundamentalTypes (boolToBool32)
 import Vulkan.Core10.FundamentalTypes (Bool32)
 import Vulkan.Core10.Enums.Format (Format)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT))
 -- | VkImageViewASTCDecodeModeEXT - Structure describing the ASTC decode mode
diff --git a/src/Vulkan/Extensions/VK_EXT_astc_decode_mode.hs-boot b/src/Vulkan/Extensions/VK_EXT_astc_decode_mode.hs-boot
--- a/src/Vulkan/Extensions/VK_EXT_astc_decode_mode.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_astc_decode_mode.hs-boot
@@ -159,9 +159,10 @@
                                                   , PhysicalDeviceASTCDecodeFeaturesEXT
                                                   ) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data ImageViewASTCDecodeModeEXT
 
 instance ToCStruct ImageViewASTCDecodeModeEXT
diff --git a/src/Vulkan/Extensions/VK_EXT_blend_operation_advanced.hs b/src/Vulkan/Extensions/VK_EXT_blend_operation_advanced.hs
--- a/src/Vulkan/Extensions/VK_EXT_blend_operation_advanced.hs
+++ b/src/Vulkan/Extensions/VK_EXT_blend_operation_advanced.hs
@@ -300,6 +300,12 @@
 import Foreign.Ptr (nullPtr)
 import Foreign.Ptr (plusPtr)
 import GHC.Show (showsPrec)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero)
+import Vulkan.Zero (Zero(..))
 import Data.String (IsString)
 import Data.Typeable (Typeable)
 import Foreign.Storable (Storable)
@@ -316,13 +322,7 @@
 import Vulkan.Core10.FundamentalTypes (bool32ToBool)
 import Vulkan.Core10.FundamentalTypes (boolToBool32)
 import Vulkan.Core10.FundamentalTypes (Bool32)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
-import Vulkan.Zero (Zero)
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT))
diff --git a/src/Vulkan/Extensions/VK_EXT_blend_operation_advanced.hs-boot b/src/Vulkan/Extensions/VK_EXT_blend_operation_advanced.hs-boot
--- a/src/Vulkan/Extensions/VK_EXT_blend_operation_advanced.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_blend_operation_advanced.hs-boot
@@ -285,9 +285,10 @@
                                                           , PipelineColorBlendAdvancedStateCreateInfoEXT
                                                           ) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data PhysicalDeviceBlendOperationAdvancedFeaturesEXT
 
 instance ToCStruct PhysicalDeviceBlendOperationAdvancedFeaturesEXT
diff --git a/src/Vulkan/Extensions/VK_EXT_buffer_device_address.hs b/src/Vulkan/Extensions/VK_EXT_buffer_device_address.hs
--- a/src/Vulkan/Extensions/VK_EXT_buffer_device_address.hs
+++ b/src/Vulkan/Extensions/VK_EXT_buffer_device_address.hs
@@ -121,7 +121,7 @@
 --
 -- == New SPIR-V Capabilities
 --
--- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-physicalstoragebufferaddresses PhysicalStorageBufferAddressesEXT>
+-- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-PhysicalStorageBufferAddresses PhysicalStorageBufferAddressesEXT>
 --
 -- == Issues
 --
@@ -178,6 +178,11 @@
 import Foreign.Marshal.Alloc (allocaBytesAligned)
 import Foreign.Ptr (nullPtr)
 import Foreign.Ptr (plusPtr)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
 import Data.String (IsString)
 import Data.Typeable (Typeable)
 import Foreign.Storable (Storable)
@@ -193,12 +198,7 @@
 import Vulkan.Core10.FundamentalTypes (Bool32)
 import Vulkan.Core12.Promoted_From_VK_KHR_buffer_device_address (BufferDeviceAddressInfo)
 import Vulkan.Core10.FundamentalTypes (DeviceAddress)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.BufferCreateFlagBits (BufferCreateFlags)
 import Vulkan.Core10.Enums.BufferCreateFlagBits (BufferCreateFlagBits(BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT))
 import Vulkan.Core10.Enums.BufferUsageFlagBits (BufferUsageFlags)
diff --git a/src/Vulkan/Extensions/VK_EXT_buffer_device_address.hs-boot b/src/Vulkan/Extensions/VK_EXT_buffer_device_address.hs-boot
--- a/src/Vulkan/Extensions/VK_EXT_buffer_device_address.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_buffer_device_address.hs-boot
@@ -121,7 +121,7 @@
 --
 -- == New SPIR-V Capabilities
 --
--- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-physicalstoragebufferaddresses PhysicalStorageBufferAddressesEXT>
+-- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-PhysicalStorageBufferAddresses PhysicalStorageBufferAddressesEXT>
 --
 -- == Issues
 --
@@ -163,9 +163,10 @@
                                                        , PhysicalDeviceBufferDeviceAddressFeaturesEXT
                                                        ) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data BufferDeviceAddressCreateInfoEXT
 
 instance ToCStruct BufferDeviceAddressCreateInfoEXT
diff --git a/src/Vulkan/Extensions/VK_EXT_calibrated_timestamps.hs b/src/Vulkan/Extensions/VK_EXT_calibrated_timestamps.hs
--- a/src/Vulkan/Extensions/VK_EXT_calibrated_timestamps.hs
+++ b/src/Vulkan/Extensions/VK_EXT_calibrated_timestamps.hs
@@ -199,6 +199,12 @@
 import Data.Vector (generateM)
 import qualified Data.Vector (imapM_)
 import qualified Data.Vector (length)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero)
+import Vulkan.Zero (Zero(..))
 import Control.Monad.IO.Class (MonadIO)
 import Data.String (IsString)
 import Data.Typeable (Typeable)
@@ -225,8 +231,6 @@
 import Vulkan.Core10.Handles (Device(..))
 import Vulkan.Dynamic (DeviceCmds(pVkGetCalibratedTimestampsEXT))
 import Vulkan.Core10.Handles (Device_T)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Dynamic (InstanceCmds(pVkGetPhysicalDeviceCalibrateableTimeDomainsEXT))
 import Vulkan.Core10.Handles (PhysicalDevice)
 import Vulkan.Core10.Handles (PhysicalDevice(..))
@@ -234,11 +238,7 @@
 import Vulkan.Core10.Enums.Result (Result)
 import Vulkan.Core10.Enums.Result (Result(..))
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
 import Vulkan.Exception (VulkanException(..))
-import Vulkan.Zero (Zero)
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT))
 import Vulkan.Core10.Enums.Result (Result(SUCCESS))
 foreign import ccall
diff --git a/src/Vulkan/Extensions/VK_EXT_calibrated_timestamps.hs-boot b/src/Vulkan/Extensions/VK_EXT_calibrated_timestamps.hs-boot
--- a/src/Vulkan/Extensions/VK_EXT_calibrated_timestamps.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_calibrated_timestamps.hs-boot
@@ -168,9 +168,10 @@
                                                        , TimeDomainEXT
                                                        ) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data CalibratedTimestampInfoEXT
 
 instance ToCStruct CalibratedTimestampInfoEXT
diff --git a/src/Vulkan/Extensions/VK_EXT_conditional_rendering.hs b/src/Vulkan/Extensions/VK_EXT_conditional_rendering.hs
--- a/src/Vulkan/Extensions/VK_EXT_conditional_rendering.hs
+++ b/src/Vulkan/Extensions/VK_EXT_conditional_rendering.hs
@@ -190,6 +190,12 @@
 import Numeric (showHex)
 import Control.Monad.Trans.Class (lift)
 import Control.Monad.Trans.Cont (evalContT)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero)
+import Vulkan.Zero (Zero(..))
 import Control.Monad.IO.Class (MonadIO)
 import Data.Bits (Bits)
 import Data.Bits (FiniteBits)
@@ -219,13 +225,7 @@
 import Vulkan.Dynamic (DeviceCmds(pVkCmdEndConditionalRenderingEXT))
 import Vulkan.Core10.FundamentalTypes (DeviceSize)
 import Vulkan.Core10.FundamentalTypes (Flags)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
-import Vulkan.Zero (Zero)
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT))
diff --git a/src/Vulkan/Extensions/VK_EXT_conditional_rendering.hs-boot b/src/Vulkan/Extensions/VK_EXT_conditional_rendering.hs-boot
--- a/src/Vulkan/Extensions/VK_EXT_conditional_rendering.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_conditional_rendering.hs-boot
@@ -165,9 +165,10 @@
                                                        , PhysicalDeviceConditionalRenderingFeaturesEXT
                                                        ) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data CommandBufferInheritanceConditionalRenderingInfoEXT
 
 instance ToCStruct CommandBufferInheritanceConditionalRenderingInfoEXT
diff --git a/src/Vulkan/Extensions/VK_EXT_conservative_rasterization.hs b/src/Vulkan/Extensions/VK_EXT_conservative_rasterization.hs
--- a/src/Vulkan/Extensions/VK_EXT_conservative_rasterization.hs
+++ b/src/Vulkan/Extensions/VK_EXT_conservative_rasterization.hs
@@ -173,11 +173,19 @@
 import GHC.Show (showString)
 import GHC.Show (showsPrec)
 import Numeric (showHex)
+import Data.Coerce (coerce)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero)
+import Vulkan.Zero (Zero(..))
 import Data.Bits (Bits)
 import Data.Bits (FiniteBits)
 import Data.String (IsString)
 import Data.Typeable (Typeable)
 import Foreign.C.Types (CFloat)
+import Foreign.C.Types (CFloat(..))
 import Foreign.C.Types (CFloat(CFloat))
 import Foreign.Storable (Storable)
 import Foreign.Storable (Storable(peek))
@@ -193,13 +201,7 @@
 import Vulkan.Core10.FundamentalTypes (boolToBool32)
 import Vulkan.Core10.FundamentalTypes (Bool32)
 import Vulkan.Core10.FundamentalTypes (Flags)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
-import Vulkan.Zero (Zero)
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT))
 -- | VkPhysicalDeviceConservativeRasterizationPropertiesEXT - Structure
@@ -352,7 +354,7 @@
     fullyCoveredFragmentShaderInputVariable <- peek @Bool32 ((p `plusPtr` 44 :: Ptr Bool32))
     conservativeRasterizationPostDepthCoverage <- peek @Bool32 ((p `plusPtr` 48 :: Ptr Bool32))
     pure $ PhysicalDeviceConservativeRasterizationPropertiesEXT
-             ((\(CFloat a) -> a) primitiveOverestimationSize) ((\(CFloat a) -> a) maxExtraPrimitiveOverestimationSize) ((\(CFloat a) -> a) extraPrimitiveOverestimationSizeGranularity) (bool32ToBool primitiveUnderestimation) (bool32ToBool conservativePointAndLineRasterization) (bool32ToBool degenerateTrianglesRasterized) (bool32ToBool degenerateLinesRasterized) (bool32ToBool fullyCoveredFragmentShaderInputVariable) (bool32ToBool conservativeRasterizationPostDepthCoverage)
+             (coerce @CFloat @Float primitiveOverestimationSize) (coerce @CFloat @Float maxExtraPrimitiveOverestimationSize) (coerce @CFloat @Float extraPrimitiveOverestimationSizeGranularity) (bool32ToBool primitiveUnderestimation) (bool32ToBool conservativePointAndLineRasterization) (bool32ToBool degenerateTrianglesRasterized) (bool32ToBool degenerateLinesRasterized) (bool32ToBool fullyCoveredFragmentShaderInputVariable) (bool32ToBool conservativeRasterizationPostDepthCoverage)
 
 instance Storable PhysicalDeviceConservativeRasterizationPropertiesEXT where
   sizeOf ~_ = 56
@@ -438,7 +440,7 @@
     conservativeRasterizationMode <- peek @ConservativeRasterizationModeEXT ((p `plusPtr` 20 :: Ptr ConservativeRasterizationModeEXT))
     extraPrimitiveOverestimationSize <- peek @CFloat ((p `plusPtr` 24 :: Ptr CFloat))
     pure $ PipelineRasterizationConservativeStateCreateInfoEXT
-             flags conservativeRasterizationMode ((\(CFloat a) -> a) extraPrimitiveOverestimationSize)
+             flags conservativeRasterizationMode (coerce @CFloat @Float extraPrimitiveOverestimationSize)
 
 instance Storable PipelineRasterizationConservativeStateCreateInfoEXT where
   sizeOf ~_ = 32
diff --git a/src/Vulkan/Extensions/VK_EXT_conservative_rasterization.hs-boot b/src/Vulkan/Extensions/VK_EXT_conservative_rasterization.hs-boot
--- a/src/Vulkan/Extensions/VK_EXT_conservative_rasterization.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_conservative_rasterization.hs-boot
@@ -155,9 +155,10 @@
                                                             , PipelineRasterizationConservativeStateCreateInfoEXT
                                                             ) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data PhysicalDeviceConservativeRasterizationPropertiesEXT
 
 instance ToCStruct PhysicalDeviceConservativeRasterizationPropertiesEXT
diff --git a/src/Vulkan/Extensions/VK_EXT_custom_border_color.hs b/src/Vulkan/Extensions/VK_EXT_custom_border_color.hs
--- a/src/Vulkan/Extensions/VK_EXT_custom_border_color.hs
+++ b/src/Vulkan/Extensions/VK_EXT_custom_border_color.hs
@@ -258,6 +258,11 @@
 import Foreign.Ptr (plusPtr)
 import Control.Monad.Trans.Class (lift)
 import Control.Monad.Trans.Cont (evalContT)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
 import Data.String (IsString)
 import Data.Typeable (Typeable)
 import Foreign.Storable (Storable)
@@ -274,12 +279,7 @@
 import Vulkan.Core10.FundamentalTypes (Bool32)
 import Vulkan.Core10.CommandBufferBuilding (ClearColorValue)
 import Vulkan.Core10.Enums.Format (Format)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT))
diff --git a/src/Vulkan/Extensions/VK_EXT_custom_border_color.hs-boot b/src/Vulkan/Extensions/VK_EXT_custom_border_color.hs-boot
--- a/src/Vulkan/Extensions/VK_EXT_custom_border_color.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_custom_border_color.hs-boot
@@ -249,9 +249,10 @@
                                                      , SamplerCustomBorderColorCreateInfoEXT
                                                      ) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data PhysicalDeviceCustomBorderColorFeaturesEXT
 
 instance ToCStruct PhysicalDeviceCustomBorderColorFeaturesEXT
diff --git a/src/Vulkan/Extensions/VK_EXT_debug_marker.hs b/src/Vulkan/Extensions/VK_EXT_debug_marker.hs
--- a/src/Vulkan/Extensions/VK_EXT_debug_marker.hs
+++ b/src/Vulkan/Extensions/VK_EXT_debug_marker.hs
@@ -299,15 +299,23 @@
 import Foreign.Ptr (plusPtr)
 import Data.ByteString (packCString)
 import Data.ByteString (useAsCString)
+import Data.Coerce (coerce)
 import Control.Monad.Trans.Class (lift)
 import Control.Monad.Trans.Cont (evalContT)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
 import Control.Monad.IO.Class (MonadIO)
 import Data.String (IsString)
 import Data.Typeable (Typeable)
 import Foreign.C.Types (CChar)
 import Foreign.C.Types (CFloat)
+import Foreign.C.Types (CFloat(..))
 import Foreign.C.Types (CFloat(CFloat))
 import Foreign.C.Types (CSize)
+import Foreign.C.Types (CSize(..))
 import Foreign.C.Types (CSize(CSize))
 import Foreign.Storable (Storable)
 import Foreign.Storable (Storable(peek))
@@ -336,15 +344,10 @@
 import Vulkan.Dynamic (DeviceCmds(pVkDebugMarkerSetObjectNameEXT))
 import Vulkan.Dynamic (DeviceCmds(pVkDebugMarkerSetObjectTagEXT))
 import Vulkan.Core10.Handles (Device_T)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Enums.Result (Result)
 import Vulkan.Core10.Enums.Result (Result(..))
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
 import Vulkan.Exception (VulkanException(..))
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT))
@@ -850,7 +853,7 @@
     tagSize <- peek @CSize ((p `plusPtr` 40 :: Ptr CSize))
     pTag <- peek @(Ptr ()) ((p `plusPtr` 48 :: Ptr (Ptr ())))
     pure $ DebugMarkerObjectTagInfoEXT
-             objectType object tagName ((\(CSize a) -> a) tagSize) pTag
+             objectType object tagName (coerce @CSize @Word64 tagSize) pTag
 
 instance Storable DebugMarkerObjectTagInfoEXT where
   sizeOf ~_ = 56
@@ -928,7 +931,7 @@
     color2 <- peek @CFloat ((pcolor `advancePtrBytes` 8 :: Ptr CFloat))
     color3 <- peek @CFloat ((pcolor `advancePtrBytes` 12 :: Ptr CFloat))
     pure $ DebugMarkerMarkerInfoEXT
-             pMarkerName ((((\(CFloat a) -> a) color0), ((\(CFloat a) -> a) color1), ((\(CFloat a) -> a) color2), ((\(CFloat a) -> a) color3)))
+             pMarkerName (((coerce @CFloat @Float color0), (coerce @CFloat @Float color1), (coerce @CFloat @Float color2), (coerce @CFloat @Float color3)))
 
 instance Zero DebugMarkerMarkerInfoEXT where
   zero = DebugMarkerMarkerInfoEXT
diff --git a/src/Vulkan/Extensions/VK_EXT_debug_marker.hs-boot b/src/Vulkan/Extensions/VK_EXT_debug_marker.hs-boot
--- a/src/Vulkan/Extensions/VK_EXT_debug_marker.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_debug_marker.hs-boot
@@ -277,9 +277,10 @@
                                               , DebugMarkerObjectTagInfoEXT
                                               ) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data DebugMarkerMarkerInfoEXT
 
 instance ToCStruct DebugMarkerMarkerInfoEXT
diff --git a/src/Vulkan/Extensions/VK_EXT_debug_report.hs b/src/Vulkan/Extensions/VK_EXT_debug_report.hs
--- a/src/Vulkan/Extensions/VK_EXT_debug_report.hs
+++ b/src/Vulkan/Extensions/VK_EXT_debug_report.hs
@@ -392,6 +392,12 @@
 import Control.Monad.Trans.Cont (evalContT)
 import Foreign.C.Types (CChar(..))
 import Foreign.C.Types (CSize(..))
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero)
+import Vulkan.Zero (Zero(..))
 import Control.Monad.IO.Class (MonadIO)
 import Data.Bits (Bits)
 import Data.Bits (FiniteBits)
@@ -422,8 +428,6 @@
 import Vulkan.Extensions.Handles (DebugReportCallbackEXT)
 import Vulkan.Extensions.Handles (DebugReportCallbackEXT(..))
 import Vulkan.Core10.FundamentalTypes (Flags)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Handles (Instance)
 import Vulkan.Core10.Handles (Instance(..))
 import Vulkan.Dynamic (InstanceCmds(pVkCreateDebugReportCallbackEXT))
@@ -433,11 +437,7 @@
 import Vulkan.Core10.Enums.Result (Result)
 import Vulkan.Core10.Enums.Result (Result(..))
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
 import Vulkan.Exception (VulkanException(..))
-import Vulkan.Zero (Zero)
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT))
 import Vulkan.Core10.Enums.Result (Result(SUCCESS))
 import Vulkan.Extensions.Handles (DebugReportCallbackEXT(..))
diff --git a/src/Vulkan/Extensions/VK_EXT_debug_report.hs-boot b/src/Vulkan/Extensions/VK_EXT_debug_report.hs-boot
--- a/src/Vulkan/Extensions/VK_EXT_debug_report.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_debug_report.hs-boot
@@ -313,9 +313,10 @@
                                               , DebugReportObjectTypeEXT
                                               ) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data DebugReportCallbackCreateInfoEXT
 
 instance ToCStruct DebugReportCallbackCreateInfoEXT
diff --git a/src/Vulkan/Extensions/VK_EXT_debug_utils.hs b/src/Vulkan/Extensions/VK_EXT_debug_utils.hs
--- a/src/Vulkan/Extensions/VK_EXT_debug_utils.hs
+++ b/src/Vulkan/Extensions/VK_EXT_debug_utils.hs
@@ -548,11 +548,18 @@
 import Numeric (showHex)
 import Data.ByteString (packCString)
 import Data.ByteString (useAsCString)
+import Data.Coerce (coerce)
 import Control.Monad.Trans.Class (lift)
 import Control.Monad.Trans.Cont (evalContT)
 import Data.Vector (generateM)
 import qualified Data.Vector (imapM_)
 import qualified Data.Vector (length)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero)
+import Vulkan.Zero (Zero(..))
 import Control.Monad.IO.Class (MonadIO)
 import Data.Bits (Bits)
 import Data.Bits (FiniteBits)
@@ -560,8 +567,10 @@
 import Data.Typeable (Typeable)
 import Foreign.C.Types (CChar)
 import Foreign.C.Types (CFloat)
+import Foreign.C.Types (CFloat(..))
 import Foreign.C.Types (CFloat(CFloat))
 import Foreign.C.Types (CSize)
+import Foreign.C.Types (CSize(..))
 import Foreign.C.Types (CSize(CSize))
 import Foreign.Storable (Storable)
 import Foreign.Storable (Storable(peek))
@@ -603,8 +612,6 @@
 import Vulkan.Dynamic (DeviceCmds(pVkSetDebugUtilsObjectTagEXT))
 import Vulkan.Core10.Handles (Device_T)
 import Vulkan.Core10.FundamentalTypes (Flags)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Handles (Instance)
 import Vulkan.Core10.Handles (Instance(..))
 import Vulkan.Dynamic (InstanceCmds(pVkCreateDebugUtilsMessengerEXT))
@@ -618,11 +625,7 @@
 import Vulkan.Core10.Enums.Result (Result)
 import Vulkan.Core10.Enums.Result (Result(..))
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
 import Vulkan.Exception (VulkanException(..))
-import Vulkan.Zero (Zero)
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT))
@@ -1446,7 +1449,7 @@
     objectType <- peek @ObjectType ((p `plusPtr` 16 :: Ptr ObjectType))
     objectHandle <- peek @Word64 ((p `plusPtr` 24 :: Ptr Word64))
     pObjectName <- peek @(Ptr CChar) ((p `plusPtr` 32 :: Ptr (Ptr CChar)))
-    pObjectName' <- maybePeek (\j -> packCString  (j)) pObjectName
+    pObjectName' <- maybePeek (\j -> packCString (j)) pObjectName
     pure $ DebugUtilsObjectNameInfoEXT
              objectType objectHandle pObjectName'
 
@@ -1542,7 +1545,7 @@
     tagSize <- peek @CSize ((p `plusPtr` 40 :: Ptr CSize))
     pTag <- peek @(Ptr ()) ((p `plusPtr` 48 :: Ptr (Ptr ())))
     pure $ DebugUtilsObjectTagInfoEXT
-             objectType objectHandle tagName ((\(CSize a) -> a) tagSize) pTag
+             objectType objectHandle tagName (coerce @CSize @Word64 tagSize) pTag
 
 instance Storable DebugUtilsObjectTagInfoEXT where
   sizeOf ~_ = 56
@@ -1621,7 +1624,7 @@
     color2 <- peek @CFloat ((pcolor `advancePtrBytes` 8 :: Ptr CFloat))
     color3 <- peek @CFloat ((pcolor `advancePtrBytes` 12 :: Ptr CFloat))
     pure $ DebugUtilsLabelEXT
-             pLabelName ((((\(CFloat a) -> a) color0), ((\(CFloat a) -> a) color1), ((\(CFloat a) -> a) color2), ((\(CFloat a) -> a) color3)))
+             pLabelName (((coerce @CFloat @Float color0), (coerce @CFloat @Float color1), (coerce @CFloat @Float color2), (coerce @CFloat @Float color3)))
 
 instance Zero DebugUtilsLabelEXT where
   zero = DebugUtilsLabelEXT
@@ -1934,7 +1937,7 @@
   peekCStruct p = do
     flags <- peek @DebugUtilsMessengerCallbackDataFlagsEXT ((p `plusPtr` 16 :: Ptr DebugUtilsMessengerCallbackDataFlagsEXT))
     pMessageIdName <- peek @(Ptr CChar) ((p `plusPtr` 24 :: Ptr (Ptr CChar)))
-    pMessageIdName' <- maybePeek (\j -> packCString  (j)) pMessageIdName
+    pMessageIdName' <- maybePeek (\j -> packCString (j)) pMessageIdName
     messageIdNumber <- peek @Int32 ((p `plusPtr` 32 :: Ptr Int32))
     pMessage <- packCString =<< peek ((p `plusPtr` 40 :: Ptr (Ptr CChar)))
     queueLabelCount <- peek @Word32 ((p `plusPtr` 48 :: Ptr Word32))
diff --git a/src/Vulkan/Extensions/VK_EXT_debug_utils.hs-boot b/src/Vulkan/Extensions/VK_EXT_debug_utils.hs-boot
--- a/src/Vulkan/Extensions/VK_EXT_debug_utils.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_debug_utils.hs-boot
@@ -497,9 +497,10 @@
                                              , DebugUtilsMessageTypeFlagBitsEXT
                                              ) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data DebugUtilsLabelEXT
 
 instance ToCStruct DebugUtilsLabelEXT
diff --git a/src/Vulkan/Extensions/VK_EXT_depth_clip_enable.hs b/src/Vulkan/Extensions/VK_EXT_depth_clip_enable.hs
--- a/src/Vulkan/Extensions/VK_EXT_depth_clip_enable.hs
+++ b/src/Vulkan/Extensions/VK_EXT_depth_clip_enable.hs
@@ -123,6 +123,12 @@
 import Foreign.Ptr (plusPtr)
 import GHC.Show (showString)
 import Numeric (showHex)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero)
+import Vulkan.Zero (Zero(..))
 import Data.Bits (Bits)
 import Data.Bits (FiniteBits)
 import Data.String (IsString)
@@ -140,13 +146,7 @@
 import Vulkan.Core10.FundamentalTypes (boolToBool32)
 import Vulkan.Core10.FundamentalTypes (Bool32)
 import Vulkan.Core10.FundamentalTypes (Flags)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
-import Vulkan.Zero (Zero)
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT))
 -- | VkPhysicalDeviceDepthClipEnableFeaturesEXT - Structure indicating
diff --git a/src/Vulkan/Extensions/VK_EXT_depth_clip_enable.hs-boot b/src/Vulkan/Extensions/VK_EXT_depth_clip_enable.hs-boot
--- a/src/Vulkan/Extensions/VK_EXT_depth_clip_enable.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_depth_clip_enable.hs-boot
@@ -111,9 +111,10 @@
                                                    , PipelineRasterizationDepthClipStateCreateInfoEXT
                                                    ) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data PhysicalDeviceDepthClipEnableFeaturesEXT
 
 instance ToCStruct PhysicalDeviceDepthClipEnableFeaturesEXT
diff --git a/src/Vulkan/Extensions/VK_EXT_device_memory_report.hs b/src/Vulkan/Extensions/VK_EXT_device_memory_report.hs
--- a/src/Vulkan/Extensions/VK_EXT_device_memory_report.hs
+++ b/src/Vulkan/Extensions/VK_EXT_device_memory_report.hs
@@ -259,6 +259,12 @@
 import GHC.Show (showString)
 import GHC.Show (showsPrec)
 import Numeric (showHex)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero)
+import Vulkan.Zero (Zero(..))
 import Data.Bits (Bits)
 import Data.Bits (FiniteBits)
 import Data.String (IsString)
@@ -282,14 +288,8 @@
 import Vulkan.Core10.FundamentalTypes (Bool32)
 import Vulkan.Core10.FundamentalTypes (DeviceSize)
 import Vulkan.Core10.FundamentalTypes (Flags)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Enums.ObjectType (ObjectType)
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
-import Vulkan.Zero (Zero)
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_DEVICE_MEMORY_REPORT_CALLBACK_DATA_EXT))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT))
diff --git a/src/Vulkan/Extensions/VK_EXT_device_memory_report.hs-boot b/src/Vulkan/Extensions/VK_EXT_device_memory_report.hs-boot
--- a/src/Vulkan/Extensions/VK_EXT_device_memory_report.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_device_memory_report.hs-boot
@@ -237,9 +237,10 @@
                                                       , PhysicalDeviceDeviceMemoryReportFeaturesEXT
                                                       ) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data DeviceDeviceMemoryReportCreateInfoEXT
 
 instance ToCStruct DeviceDeviceMemoryReportCreateInfoEXT
diff --git a/src/Vulkan/Extensions/VK_EXT_directfb_surface.hs b/src/Vulkan/Extensions/VK_EXT_directfb_surface.hs
--- a/src/Vulkan/Extensions/VK_EXT_directfb_surface.hs
+++ b/src/Vulkan/Extensions/VK_EXT_directfb_surface.hs
@@ -122,6 +122,12 @@
 import Numeric (showHex)
 import Control.Monad.Trans.Class (lift)
 import Control.Monad.Trans.Cont (evalContT)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero)
+import Vulkan.Zero (Zero(..))
 import Control.Monad.IO.Class (MonadIO)
 import Data.Bits (Bits)
 import Data.Bits (FiniteBits)
@@ -147,8 +153,6 @@
 import Vulkan.Core10.FundamentalTypes (Bool32)
 import Vulkan.Core10.FundamentalTypes (Bool32(..))
 import Vulkan.Core10.FundamentalTypes (Flags)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Handles (Instance)
 import Vulkan.Core10.Handles (Instance(..))
 import Vulkan.Dynamic (InstanceCmds(pVkCreateDirectFBSurfaceEXT))
@@ -162,11 +166,7 @@
 import Vulkan.Core10.Enums.StructureType (StructureType)
 import Vulkan.Extensions.Handles (SurfaceKHR)
 import Vulkan.Extensions.Handles (SurfaceKHR(..))
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
 import Vulkan.Exception (VulkanException(..))
-import Vulkan.Zero (Zero)
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT))
 import Vulkan.Core10.Enums.Result (Result(SUCCESS))
 import Vulkan.Extensions.Handles (SurfaceKHR(..))
diff --git a/src/Vulkan/Extensions/VK_EXT_directfb_surface.hs-boot b/src/Vulkan/Extensions/VK_EXT_directfb_surface.hs-boot
--- a/src/Vulkan/Extensions/VK_EXT_directfb_surface.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_directfb_surface.hs-boot
@@ -95,9 +95,10 @@
                                                   , IDirectFB
                                                   ) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data DirectFBSurfaceCreateInfoEXT
 
 instance ToCStruct DirectFBSurfaceCreateInfoEXT
diff --git a/src/Vulkan/Extensions/VK_EXT_discard_rectangles.hs b/src/Vulkan/Extensions/VK_EXT_discard_rectangles.hs
--- a/src/Vulkan/Extensions/VK_EXT_discard_rectangles.hs
+++ b/src/Vulkan/Extensions/VK_EXT_discard_rectangles.hs
@@ -156,6 +156,12 @@
 import Data.Vector (generateM)
 import qualified Data.Vector (imapM_)
 import qualified Data.Vector (length)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero)
+import Vulkan.Zero (Zero(..))
 import Control.Monad.IO.Class (MonadIO)
 import Data.Bits (Bits)
 import Data.Bits (FiniteBits)
@@ -184,14 +190,8 @@
 import Vulkan.Core10.Handles (CommandBuffer_T)
 import Vulkan.Dynamic (DeviceCmds(pVkCmdSetDiscardRectangleEXT))
 import Vulkan.Core10.FundamentalTypes (Flags)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.FundamentalTypes (Rect2D)
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
-import Vulkan.Zero (Zero)
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT))
 foreign import ccall
diff --git a/src/Vulkan/Extensions/VK_EXT_discard_rectangles.hs-boot b/src/Vulkan/Extensions/VK_EXT_discard_rectangles.hs-boot
--- a/src/Vulkan/Extensions/VK_EXT_discard_rectangles.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_discard_rectangles.hs-boot
@@ -128,9 +128,10 @@
                                                     , PipelineDiscardRectangleStateCreateInfoEXT
                                                     ) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data PhysicalDeviceDiscardRectanglePropertiesEXT
 
 instance ToCStruct PhysicalDeviceDiscardRectanglePropertiesEXT
diff --git a/src/Vulkan/Extensions/VK_EXT_display_control.hs b/src/Vulkan/Extensions/VK_EXT_display_control.hs
--- a/src/Vulkan/Extensions/VK_EXT_display_control.hs
+++ b/src/Vulkan/Extensions/VK_EXT_display_control.hs
@@ -196,6 +196,12 @@
 import GHC.Show (showsPrec)
 import Control.Monad.Trans.Class (lift)
 import Control.Monad.Trans.Cont (evalContT)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero)
+import Vulkan.Zero (Zero(..))
 import Control.Monad.IO.Class (MonadIO)
 import Data.String (IsString)
 import Data.Typeable (Typeable)
@@ -227,8 +233,6 @@
 import Vulkan.Extensions.Handles (DisplayKHR(..))
 import Vulkan.Core10.Handles (Fence)
 import Vulkan.Core10.Handles (Fence(..))
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Enums.Result (Result)
 import Vulkan.Core10.Enums.Result (Result(..))
 import Vulkan.Core10.Enums.StructureType (StructureType)
@@ -237,11 +241,7 @@
 import Vulkan.Extensions.VK_EXT_display_surface_counter (SurfaceCounterFlagsEXT)
 import Vulkan.Extensions.Handles (SwapchainKHR)
 import Vulkan.Extensions.Handles (SwapchainKHR(..))
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
 import Vulkan.Exception (VulkanException(..))
-import Vulkan.Zero (Zero)
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT))
diff --git a/src/Vulkan/Extensions/VK_EXT_display_control.hs-boot b/src/Vulkan/Extensions/VK_EXT_display_control.hs-boot
--- a/src/Vulkan/Extensions/VK_EXT_display_control.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_display_control.hs-boot
@@ -156,9 +156,10 @@
                                                  , SwapchainCounterCreateInfoEXT
                                                  ) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data DeviceEventInfoEXT
 
 instance ToCStruct DeviceEventInfoEXT
diff --git a/src/Vulkan/Extensions/VK_EXT_display_surface_counter.hs b/src/Vulkan/Extensions/VK_EXT_display_surface_counter.hs
--- a/src/Vulkan/Extensions/VK_EXT_display_surface_counter.hs
+++ b/src/Vulkan/Extensions/VK_EXT_display_surface_counter.hs
@@ -132,6 +132,12 @@
 import Numeric (showHex)
 import Control.Monad.Trans.Class (lift)
 import Control.Monad.Trans.Cont (evalContT)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero)
+import Vulkan.Zero (Zero(..))
 import Control.Monad.IO.Class (MonadIO)
 import Data.Bits (Bits)
 import Data.Bits (FiniteBits)
@@ -154,8 +160,6 @@
 import Vulkan.Extensions.VK_KHR_surface (CompositeAlphaFlagsKHR)
 import Vulkan.Core10.FundamentalTypes (Extent2D)
 import Vulkan.Core10.FundamentalTypes (Flags)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Enums.ImageUsageFlagBits (ImageUsageFlags)
 import Vulkan.Dynamic (InstanceCmds(pVkGetPhysicalDeviceSurfaceCapabilities2EXT))
 import Vulkan.Core10.Handles (PhysicalDevice)
@@ -168,11 +172,7 @@
 import Vulkan.Extensions.Handles (SurfaceKHR(..))
 import Vulkan.Extensions.VK_KHR_surface (SurfaceTransformFlagBitsKHR)
 import Vulkan.Extensions.VK_KHR_surface (SurfaceTransformFlagsKHR)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
 import Vulkan.Exception (VulkanException(..))
-import Vulkan.Zero (Zero)
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT))
 import Vulkan.Core10.Enums.Result (Result(SUCCESS))
 import Vulkan.Extensions.VK_KHR_surface (CompositeAlphaFlagBitsKHR(..))
diff --git a/src/Vulkan/Extensions/VK_EXT_display_surface_counter.hs-boot b/src/Vulkan/Extensions/VK_EXT_display_surface_counter.hs-boot
--- a/src/Vulkan/Extensions/VK_EXT_display_surface_counter.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_display_surface_counter.hs-boot
@@ -103,9 +103,10 @@
                                                          , SurfaceCounterFlagBitsEXT
                                                          ) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data SurfaceCapabilities2EXT
 
 instance ToCStruct SurfaceCapabilities2EXT
diff --git a/src/Vulkan/Extensions/VK_EXT_extended_dynamic_state.hs b/src/Vulkan/Extensions/VK_EXT_extended_dynamic_state.hs
--- a/src/Vulkan/Extensions/VK_EXT_extended_dynamic_state.hs
+++ b/src/Vulkan/Extensions/VK_EXT_extended_dynamic_state.hs
@@ -189,6 +189,11 @@
 import qualified Data.Vector (imapM_)
 import qualified Data.Vector (length)
 import qualified Data.Vector (null)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
 import Control.Monad.IO.Class (MonadIO)
 import Data.String (IsString)
 import Data.Typeable (Typeable)
@@ -232,8 +237,6 @@
 import Vulkan.Dynamic (DeviceCmds(pVkCmdSetStencilTestEnableEXT))
 import Vulkan.Dynamic (DeviceCmds(pVkCmdSetViewportWithCountEXT))
 import Vulkan.Core10.FundamentalTypes (DeviceSize)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Enums.FrontFace (FrontFace)
 import Vulkan.Core10.Enums.FrontFace (FrontFace(..))
 import Vulkan.Core10.Enums.PrimitiveTopology (PrimitiveTopology)
@@ -244,10 +247,7 @@
 import Vulkan.Core10.Enums.StencilOp (StencilOp)
 import Vulkan.Core10.Enums.StencilOp (StencilOp(..))
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
 import Vulkan.Core10.Pipeline (Viewport)
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT))
 foreign import ccall
 #if !defined(SAFE_FOREIGN_CALLS)
diff --git a/src/Vulkan/Extensions/VK_EXT_extended_dynamic_state.hs-boot b/src/Vulkan/Extensions/VK_EXT_extended_dynamic_state.hs-boot
--- a/src/Vulkan/Extensions/VK_EXT_extended_dynamic_state.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_extended_dynamic_state.hs-boot
@@ -159,9 +159,10 @@
 -- the generator scripts, not directly.
 module Vulkan.Extensions.VK_EXT_extended_dynamic_state  (PhysicalDeviceExtendedDynamicStateFeaturesEXT) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data PhysicalDeviceExtendedDynamicStateFeaturesEXT
 
 instance ToCStruct PhysicalDeviceExtendedDynamicStateFeaturesEXT
diff --git a/src/Vulkan/Extensions/VK_EXT_external_memory_host.hs b/src/Vulkan/Extensions/VK_EXT_external_memory_host.hs
--- a/src/Vulkan/Extensions/VK_EXT_external_memory_host.hs
+++ b/src/Vulkan/Extensions/VK_EXT_external_memory_host.hs
@@ -190,6 +190,11 @@
 import Foreign.Ptr (plusPtr)
 import Control.Monad.Trans.Class (lift)
 import Control.Monad.Trans.Cont (evalContT)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
 import Control.Monad.IO.Class (MonadIO)
 import Data.String (IsString)
 import Data.Typeable (Typeable)
@@ -213,15 +218,10 @@
 import Vulkan.Core10.Handles (Device_T)
 import Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits (ExternalMemoryHandleTypeFlagBits)
 import Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits (ExternalMemoryHandleTypeFlagBits(..))
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Enums.Result (Result)
 import Vulkan.Core10.Enums.Result (Result(..))
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
 import Vulkan.Exception (VulkanException(..))
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT))
diff --git a/src/Vulkan/Extensions/VK_EXT_external_memory_host.hs-boot b/src/Vulkan/Extensions/VK_EXT_external_memory_host.hs-boot
--- a/src/Vulkan/Extensions/VK_EXT_external_memory_host.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_external_memory_host.hs-boot
@@ -174,9 +174,10 @@
                                                       , PhysicalDeviceExternalMemoryHostPropertiesEXT
                                                       ) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data ImportMemoryHostPointerInfoEXT
 
 instance ToCStruct ImportMemoryHostPointerInfoEXT
diff --git a/src/Vulkan/Extensions/VK_EXT_filter_cubic.hs b/src/Vulkan/Extensions/VK_EXT_filter_cubic.hs
--- a/src/Vulkan/Extensions/VK_EXT_filter_cubic.hs
+++ b/src/Vulkan/Extensions/VK_EXT_filter_cubic.hs
@@ -139,6 +139,11 @@
 import Foreign.Marshal.Alloc (allocaBytesAligned)
 import Foreign.Ptr (nullPtr)
 import Foreign.Ptr (plusPtr)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
 import Data.String (IsString)
 import Data.Typeable (Typeable)
 import Foreign.Storable (Storable)
@@ -151,13 +156,8 @@
 import Vulkan.Core10.FundamentalTypes (bool32ToBool)
 import Vulkan.Core10.FundamentalTypes (boolToBool32)
 import Vulkan.Core10.FundamentalTypes (Bool32)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Enums.ImageViewType (ImageViewType)
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.Filter (Filter(FILTER_CUBIC_IMG))
 import Vulkan.Core10.Enums.FormatFeatureFlagBits (FormatFeatureFlags)
 import Vulkan.Core10.Enums.FormatFeatureFlagBits (FormatFeatureFlagBits(FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG))
diff --git a/src/Vulkan/Extensions/VK_EXT_filter_cubic.hs-boot b/src/Vulkan/Extensions/VK_EXT_filter_cubic.hs-boot
--- a/src/Vulkan/Extensions/VK_EXT_filter_cubic.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_filter_cubic.hs-boot
@@ -130,9 +130,10 @@
                                               , PhysicalDeviceImageViewImageFormatInfoEXT
                                               ) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data FilterCubicImageViewImageFormatPropertiesEXT
 
 instance ToCStruct FilterCubicImageViewImageFormatPropertiesEXT
diff --git a/src/Vulkan/Extensions/VK_EXT_fragment_density_map.hs b/src/Vulkan/Extensions/VK_EXT_fragment_density_map.hs
--- a/src/Vulkan/Extensions/VK_EXT_fragment_density_map.hs
+++ b/src/Vulkan/Extensions/VK_EXT_fragment_density_map.hs
@@ -153,7 +153,7 @@
 --
 -- == New SPIR-V Capabilities
 --
--- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-fragmentdensity FragmentDensityEXT>
+-- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-FragmentDensityEXT FragmentDensityEXT>
 --
 -- == Version History
 --
@@ -186,6 +186,11 @@
 import Foreign.Marshal.Alloc (allocaBytesAligned)
 import Foreign.Ptr (nullPtr)
 import Foreign.Ptr (plusPtr)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
 import Data.String (IsString)
 import Data.Typeable (Typeable)
 import Foreign.Storable (Storable)
@@ -200,12 +205,7 @@
 import Vulkan.Core10.Pass (AttachmentReference)
 import Vulkan.Core10.FundamentalTypes (Bool32)
 import Vulkan.Core10.FundamentalTypes (Extent2D)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT))
diff --git a/src/Vulkan/Extensions/VK_EXT_fragment_density_map.hs-boot b/src/Vulkan/Extensions/VK_EXT_fragment_density_map.hs-boot
--- a/src/Vulkan/Extensions/VK_EXT_fragment_density_map.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_fragment_density_map.hs-boot
@@ -153,7 +153,7 @@
 --
 -- == New SPIR-V Capabilities
 --
--- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-fragmentdensity FragmentDensityEXT>
+-- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-FragmentDensityEXT FragmentDensityEXT>
 --
 -- == Version History
 --
@@ -179,9 +179,10 @@
                                                       , RenderPassFragmentDensityMapCreateInfoEXT
                                                       ) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data PhysicalDeviceFragmentDensityMapFeaturesEXT
 
 instance ToCStruct PhysicalDeviceFragmentDensityMapFeaturesEXT
diff --git a/src/Vulkan/Extensions/VK_EXT_fragment_density_map2.hs b/src/Vulkan/Extensions/VK_EXT_fragment_density_map2.hs
--- a/src/Vulkan/Extensions/VK_EXT_fragment_density_map2.hs
+++ b/src/Vulkan/Extensions/VK_EXT_fragment_density_map2.hs
@@ -155,6 +155,11 @@
 import Foreign.Marshal.Alloc (allocaBytesAligned)
 import Foreign.Ptr (nullPtr)
 import Foreign.Ptr (plusPtr)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
 import Data.String (IsString)
 import Data.Typeable (Typeable)
 import Foreign.Storable (Storable)
@@ -168,12 +173,7 @@
 import Vulkan.Core10.FundamentalTypes (bool32ToBool)
 import Vulkan.Core10.FundamentalTypes (boolToBool32)
 import Vulkan.Core10.FundamentalTypes (Bool32)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT))
 -- | VkPhysicalDeviceFragmentDensityMap2FeaturesEXT - Structure describing
diff --git a/src/Vulkan/Extensions/VK_EXT_fragment_density_map2.hs-boot b/src/Vulkan/Extensions/VK_EXT_fragment_density_map2.hs-boot
--- a/src/Vulkan/Extensions/VK_EXT_fragment_density_map2.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_fragment_density_map2.hs-boot
@@ -148,9 +148,10 @@
                                                        , PhysicalDeviceFragmentDensityMap2PropertiesEXT
                                                        ) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data PhysicalDeviceFragmentDensityMap2FeaturesEXT
 
 instance ToCStruct PhysicalDeviceFragmentDensityMap2FeaturesEXT
diff --git a/src/Vulkan/Extensions/VK_EXT_fragment_shader_interlock.hs b/src/Vulkan/Extensions/VK_EXT_fragment_shader_interlock.hs
--- a/src/Vulkan/Extensions/VK_EXT_fragment_shader_interlock.hs
+++ b/src/Vulkan/Extensions/VK_EXT_fragment_shader_interlock.hs
@@ -101,11 +101,11 @@
 --
 -- == New SPIR-V Capabilities
 --
--- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-fragmentShaderInterlock FragmentShaderInterlockEXT>
+-- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-FragmentShaderSampleInterlockEXT FragmentShaderInterlockEXT>
 --
--- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-fragmentShaderInterlock FragmentShaderPixelInterlockEXT>
+-- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-FragmentShaderPixelInterlockEXT FragmentShaderPixelInterlockEXT>
 --
--- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-fragmentShaderInterlock FragmentShaderShadingRateInterlockEXT>
+-- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-FragmentShaderShadingRateInterlockEXT FragmentShaderShadingRateInterlockEXT>
 --
 -- == Version History
 --
@@ -134,6 +134,11 @@
 import Foreign.Marshal.Alloc (allocaBytesAligned)
 import Foreign.Ptr (nullPtr)
 import Foreign.Ptr (plusPtr)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
 import Data.String (IsString)
 import Data.Typeable (Typeable)
 import Foreign.Storable (Storable)
@@ -146,12 +151,7 @@
 import Vulkan.Core10.FundamentalTypes (bool32ToBool)
 import Vulkan.Core10.FundamentalTypes (boolToBool32)
 import Vulkan.Core10.FundamentalTypes (Bool32)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT))
 -- | VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT - Structure
 -- describing fragment shader interlock features that can be supported by
diff --git a/src/Vulkan/Extensions/VK_EXT_fragment_shader_interlock.hs-boot b/src/Vulkan/Extensions/VK_EXT_fragment_shader_interlock.hs-boot
--- a/src/Vulkan/Extensions/VK_EXT_fragment_shader_interlock.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_fragment_shader_interlock.hs-boot
@@ -101,11 +101,11 @@
 --
 -- == New SPIR-V Capabilities
 --
--- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-fragmentShaderInterlock FragmentShaderInterlockEXT>
+-- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-FragmentShaderSampleInterlockEXT FragmentShaderInterlockEXT>
 --
--- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-fragmentShaderInterlock FragmentShaderPixelInterlockEXT>
+-- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-FragmentShaderPixelInterlockEXT FragmentShaderPixelInterlockEXT>
 --
--- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-fragmentShaderInterlock FragmentShaderShadingRateInterlockEXT>
+-- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-FragmentShaderShadingRateInterlockEXT FragmentShaderShadingRateInterlockEXT>
 --
 -- == Version History
 --
@@ -126,9 +126,10 @@
 -- the generator scripts, not directly.
 module Vulkan.Extensions.VK_EXT_fragment_shader_interlock  (PhysicalDeviceFragmentShaderInterlockFeaturesEXT) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data PhysicalDeviceFragmentShaderInterlockFeaturesEXT
 
 instance ToCStruct PhysicalDeviceFragmentShaderInterlockFeaturesEXT
diff --git a/src/Vulkan/Extensions/VK_EXT_full_screen_exclusive.hs b/src/Vulkan/Extensions/VK_EXT_full_screen_exclusive.hs
--- a/src/Vulkan/Extensions/VK_EXT_full_screen_exclusive.hs
+++ b/src/Vulkan/Extensions/VK_EXT_full_screen_exclusive.hs
@@ -299,6 +299,12 @@
 import Control.Monad.Trans.Class (lift)
 import Control.Monad.Trans.Cont (evalContT)
 import Data.Vector (generateM)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero)
+import Vulkan.Zero (Zero(..))
 import Control.Monad.IO.Class (MonadIO)
 import Data.String (IsString)
 import Data.Typeable (Typeable)
@@ -333,8 +339,6 @@
 import Vulkan.Extensions.VK_KHR_swapchain (DeviceGroupPresentModeFlagsKHR)
 import Vulkan.Core10.Handles (Device_T)
 import Vulkan.CStruct.Extends (Extendss)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Dynamic (InstanceCmds(pVkGetPhysicalDeviceSurfacePresentModes2EXT))
 import Vulkan.Core10.Handles (PhysicalDevice)
 import Vulkan.Core10.Handles (PhysicalDevice(..))
@@ -349,11 +353,7 @@
 import Vulkan.Core10.Enums.StructureType (StructureType)
 import Vulkan.Extensions.Handles (SwapchainKHR)
 import Vulkan.Extensions.Handles (SwapchainKHR(..))
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
 import Vulkan.Exception (VulkanException(..))
-import Vulkan.Zero (Zero)
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT))
diff --git a/src/Vulkan/Extensions/VK_EXT_full_screen_exclusive.hs-boot b/src/Vulkan/Extensions/VK_EXT_full_screen_exclusive.hs-boot
--- a/src/Vulkan/Extensions/VK_EXT_full_screen_exclusive.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_full_screen_exclusive.hs-boot
@@ -260,9 +260,10 @@
                                                        , SurfaceFullScreenExclusiveWin32InfoEXT
                                                        ) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data SurfaceCapabilitiesFullScreenExclusiveEXT
 
 instance ToCStruct SurfaceCapabilitiesFullScreenExclusiveEXT
diff --git a/src/Vulkan/Extensions/VK_EXT_global_priority.hs b/src/Vulkan/Extensions/VK_EXT_global_priority.hs
--- a/src/Vulkan/Extensions/VK_EXT_global_priority.hs
+++ b/src/Vulkan/Extensions/VK_EXT_global_priority.hs
@@ -138,6 +138,12 @@
 import Foreign.Ptr (nullPtr)
 import Foreign.Ptr (plusPtr)
 import GHC.Show (showsPrec)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero)
+import Vulkan.Zero (Zero(..))
 import Data.String (IsString)
 import Data.Typeable (Typeable)
 import Foreign.Storable (Storable)
@@ -150,13 +156,7 @@
 import GHC.Read (Read(readPrec))
 import GHC.Show (Show(showsPrec))
 import Data.Kind (Type)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
-import Vulkan.Zero (Zero)
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT))
 -- | VkDeviceQueueGlobalPriorityCreateInfoEXT - Specify a system wide
 -- priority
diff --git a/src/Vulkan/Extensions/VK_EXT_global_priority.hs-boot b/src/Vulkan/Extensions/VK_EXT_global_priority.hs-boot
--- a/src/Vulkan/Extensions/VK_EXT_global_priority.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_global_priority.hs-boot
@@ -121,9 +121,10 @@
 -- the generator scripts, not directly.
 module Vulkan.Extensions.VK_EXT_global_priority  (DeviceQueueGlobalPriorityCreateInfoEXT) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data DeviceQueueGlobalPriorityCreateInfoEXT
 
 instance ToCStruct DeviceQueueGlobalPriorityCreateInfoEXT
diff --git a/src/Vulkan/Extensions/VK_EXT_hdr_metadata.hs b/src/Vulkan/Extensions/VK_EXT_hdr_metadata.hs
--- a/src/Vulkan/Extensions/VK_EXT_hdr_metadata.hs
+++ b/src/Vulkan/Extensions/VK_EXT_hdr_metadata.hs
@@ -135,14 +135,21 @@
 import GHC.Ptr (nullFunPtr)
 import Foreign.Ptr (nullPtr)
 import Foreign.Ptr (plusPtr)
+import Data.Coerce (coerce)
 import Control.Monad.Trans.Class (lift)
 import Control.Monad.Trans.Cont (evalContT)
 import qualified Data.Vector (imapM_)
 import qualified Data.Vector (length)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
 import Control.Monad.IO.Class (MonadIO)
 import Data.String (IsString)
 import Data.Typeable (Typeable)
 import Foreign.C.Types (CFloat)
+import Foreign.C.Types (CFloat(..))
 import Foreign.C.Types (CFloat(CFloat))
 import Foreign.Storable (Storable)
 import Foreign.Storable (Storable(peek))
@@ -162,14 +169,9 @@
 import Vulkan.Core10.Handles (Device(..))
 import Vulkan.Dynamic (DeviceCmds(pVkSetHdrMetadataEXT))
 import Vulkan.Core10.Handles (Device_T)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Enums.StructureType (StructureType)
 import Vulkan.Extensions.Handles (SwapchainKHR)
 import Vulkan.Extensions.Handles (SwapchainKHR(..))
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_HDR_METADATA_EXT))
 import Vulkan.Extensions.Handles (SwapchainKHR(..))
 foreign import ccall
@@ -267,7 +269,7 @@
     x <- peek @CFloat ((p `plusPtr` 0 :: Ptr CFloat))
     y <- peek @CFloat ((p `plusPtr` 4 :: Ptr CFloat))
     pure $ XYColorEXT
-             ((\(CFloat a) -> a) x) ((\(CFloat a) -> a) y)
+             (coerce @CFloat @Float x) (coerce @CFloat @Float y)
 
 instance Storable XYColorEXT where
   sizeOf ~_ = 8
@@ -362,7 +364,7 @@
     maxContentLightLevel <- peek @CFloat ((p `plusPtr` 56 :: Ptr CFloat))
     maxFrameAverageLightLevel <- peek @CFloat ((p `plusPtr` 60 :: Ptr CFloat))
     pure $ HdrMetadataEXT
-             displayPrimaryRed displayPrimaryGreen displayPrimaryBlue whitePoint ((\(CFloat a) -> a) maxLuminance) ((\(CFloat a) -> a) minLuminance) ((\(CFloat a) -> a) maxContentLightLevel) ((\(CFloat a) -> a) maxFrameAverageLightLevel)
+             displayPrimaryRed displayPrimaryGreen displayPrimaryBlue whitePoint (coerce @CFloat @Float maxLuminance) (coerce @CFloat @Float minLuminance) (coerce @CFloat @Float maxContentLightLevel) (coerce @CFloat @Float maxFrameAverageLightLevel)
 
 instance Storable HdrMetadataEXT where
   sizeOf ~_ = 64
diff --git a/src/Vulkan/Extensions/VK_EXT_hdr_metadata.hs-boot b/src/Vulkan/Extensions/VK_EXT_hdr_metadata.hs-boot
--- a/src/Vulkan/Extensions/VK_EXT_hdr_metadata.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_hdr_metadata.hs-boot
@@ -121,9 +121,10 @@
                                               , XYColorEXT
                                               ) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data HdrMetadataEXT
 
 instance ToCStruct HdrMetadataEXT
diff --git a/src/Vulkan/Extensions/VK_EXT_headless_surface.hs b/src/Vulkan/Extensions/VK_EXT_headless_surface.hs
--- a/src/Vulkan/Extensions/VK_EXT_headless_surface.hs
+++ b/src/Vulkan/Extensions/VK_EXT_headless_surface.hs
@@ -130,6 +130,12 @@
 import Numeric (showHex)
 import Control.Monad.Trans.Class (lift)
 import Control.Monad.Trans.Cont (evalContT)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero)
+import Vulkan.Zero (Zero(..))
 import Control.Monad.IO.Class (MonadIO)
 import Data.Bits (Bits)
 import Data.Bits (FiniteBits)
@@ -151,8 +157,6 @@
 import Vulkan.NamedType ((:::))
 import Vulkan.Core10.AllocationCallbacks (AllocationCallbacks)
 import Vulkan.Core10.FundamentalTypes (Flags)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Handles (Instance)
 import Vulkan.Core10.Handles (Instance(..))
 import Vulkan.Dynamic (InstanceCmds(pVkCreateHeadlessSurfaceEXT))
@@ -162,11 +166,7 @@
 import Vulkan.Core10.Enums.StructureType (StructureType)
 import Vulkan.Extensions.Handles (SurfaceKHR)
 import Vulkan.Extensions.Handles (SurfaceKHR(..))
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
 import Vulkan.Exception (VulkanException(..))
-import Vulkan.Zero (Zero)
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_HEADLESS_SURFACE_CREATE_INFO_EXT))
 import Vulkan.Core10.Enums.Result (Result(SUCCESS))
 import Vulkan.Extensions.Handles (SurfaceKHR(..))
diff --git a/src/Vulkan/Extensions/VK_EXT_headless_surface.hs-boot b/src/Vulkan/Extensions/VK_EXT_headless_surface.hs-boot
--- a/src/Vulkan/Extensions/VK_EXT_headless_surface.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_headless_surface.hs-boot
@@ -104,9 +104,10 @@
 -- the generator scripts, not directly.
 module Vulkan.Extensions.VK_EXT_headless_surface  (HeadlessSurfaceCreateInfoEXT) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data HeadlessSurfaceCreateInfoEXT
 
 instance ToCStruct HeadlessSurfaceCreateInfoEXT
diff --git a/src/Vulkan/Extensions/VK_EXT_image_drm_format_modifier.hs b/src/Vulkan/Extensions/VK_EXT_image_drm_format_modifier.hs
--- a/src/Vulkan/Extensions/VK_EXT_image_drm_format_modifier.hs
+++ b/src/Vulkan/Extensions/VK_EXT_image_drm_format_modifier.hs
@@ -553,6 +553,11 @@
 import Data.Vector (generateM)
 import qualified Data.Vector (imapM_)
 import qualified Data.Vector (length)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
 import Control.Monad.IO.Class (MonadIO)
 import Data.String (IsString)
 import Data.Typeable (Typeable)
@@ -576,8 +581,6 @@
 import Vulkan.Dynamic (DeviceCmds(pVkGetImageDrmFormatModifierPropertiesEXT))
 import Vulkan.Core10.Handles (Device_T)
 import Vulkan.Core10.Enums.FormatFeatureFlagBits (FormatFeatureFlags)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Handles (Image)
 import Vulkan.Core10.Handles (Image(..))
 import Vulkan.Core10.Enums.Result (Result)
@@ -585,10 +588,7 @@
 import Vulkan.Core10.Enums.SharingMode (SharingMode)
 import Vulkan.Core10.Enums.StructureType (StructureType)
 import Vulkan.Core10.Image (SubresourceLayout)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
 import Vulkan.Exception (VulkanException(..))
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT))
diff --git a/src/Vulkan/Extensions/VK_EXT_image_drm_format_modifier.hs-boot b/src/Vulkan/Extensions/VK_EXT_image_drm_format_modifier.hs-boot
--- a/src/Vulkan/Extensions/VK_EXT_image_drm_format_modifier.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_image_drm_format_modifier.hs-boot
@@ -534,9 +534,10 @@
                                                            , PhysicalDeviceImageDrmFormatModifierInfoEXT
                                                            ) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data DrmFormatModifierPropertiesEXT
 
 instance ToCStruct DrmFormatModifierPropertiesEXT
diff --git a/src/Vulkan/Extensions/VK_EXT_image_robustness.hs b/src/Vulkan/Extensions/VK_EXT_image_robustness.hs
--- a/src/Vulkan/Extensions/VK_EXT_image_robustness.hs
+++ b/src/Vulkan/Extensions/VK_EXT_image_robustness.hs
@@ -119,6 +119,11 @@
 import Foreign.Marshal.Alloc (allocaBytesAligned)
 import Foreign.Ptr (nullPtr)
 import Foreign.Ptr (plusPtr)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
 import Data.String (IsString)
 import Data.Typeable (Typeable)
 import Foreign.Storable (Storable)
@@ -131,12 +136,7 @@
 import Vulkan.Core10.FundamentalTypes (bool32ToBool)
 import Vulkan.Core10.FundamentalTypes (boolToBool32)
 import Vulkan.Core10.FundamentalTypes (Bool32)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT))
 -- | VkPhysicalDeviceImageRobustnessFeaturesEXT - Structure describing the
 -- out-of-bounds behavior for an implementation
diff --git a/src/Vulkan/Extensions/VK_EXT_image_robustness.hs-boot b/src/Vulkan/Extensions/VK_EXT_image_robustness.hs-boot
--- a/src/Vulkan/Extensions/VK_EXT_image_robustness.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_image_robustness.hs-boot
@@ -111,9 +111,10 @@
 -- the generator scripts, not directly.
 module Vulkan.Extensions.VK_EXT_image_robustness  (PhysicalDeviceImageRobustnessFeaturesEXT) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data PhysicalDeviceImageRobustnessFeaturesEXT
 
 instance ToCStruct PhysicalDeviceImageRobustnessFeaturesEXT
diff --git a/src/Vulkan/Extensions/VK_EXT_index_type_uint8.hs b/src/Vulkan/Extensions/VK_EXT_index_type_uint8.hs
--- a/src/Vulkan/Extensions/VK_EXT_index_type_uint8.hs
+++ b/src/Vulkan/Extensions/VK_EXT_index_type_uint8.hs
@@ -92,6 +92,11 @@
 import Foreign.Marshal.Alloc (allocaBytesAligned)
 import Foreign.Ptr (nullPtr)
 import Foreign.Ptr (plusPtr)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
 import Data.String (IsString)
 import Data.Typeable (Typeable)
 import Foreign.Storable (Storable)
@@ -104,12 +109,7 @@
 import Vulkan.Core10.FundamentalTypes (bool32ToBool)
 import Vulkan.Core10.FundamentalTypes (boolToBool32)
 import Vulkan.Core10.FundamentalTypes (Bool32)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT))
 -- | VkPhysicalDeviceIndexTypeUint8FeaturesEXT - Structure describing whether
 -- uint8 index type can be used
diff --git a/src/Vulkan/Extensions/VK_EXT_index_type_uint8.hs-boot b/src/Vulkan/Extensions/VK_EXT_index_type_uint8.hs-boot
--- a/src/Vulkan/Extensions/VK_EXT_index_type_uint8.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_index_type_uint8.hs-boot
@@ -84,9 +84,10 @@
 -- the generator scripts, not directly.
 module Vulkan.Extensions.VK_EXT_index_type_uint8  (PhysicalDeviceIndexTypeUint8FeaturesEXT) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data PhysicalDeviceIndexTypeUint8FeaturesEXT
 
 instance ToCStruct PhysicalDeviceIndexTypeUint8FeaturesEXT
diff --git a/src/Vulkan/Extensions/VK_EXT_inline_uniform_block.hs b/src/Vulkan/Extensions/VK_EXT_inline_uniform_block.hs
--- a/src/Vulkan/Extensions/VK_EXT_inline_uniform_block.hs
+++ b/src/Vulkan/Extensions/VK_EXT_inline_uniform_block.hs
@@ -187,6 +187,11 @@
 import Foreign.Marshal.Alloc (allocaBytesAligned)
 import Foreign.Ptr (nullPtr)
 import Foreign.Ptr (plusPtr)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
 import Data.String (IsString)
 import Data.Typeable (Typeable)
 import Foreign.Storable (Storable)
@@ -200,12 +205,7 @@
 import Vulkan.Core10.FundamentalTypes (bool32ToBool)
 import Vulkan.Core10.FundamentalTypes (boolToBool32)
 import Vulkan.Core10.FundamentalTypes (Bool32)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO_EXT))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT))
diff --git a/src/Vulkan/Extensions/VK_EXT_inline_uniform_block.hs-boot b/src/Vulkan/Extensions/VK_EXT_inline_uniform_block.hs-boot
--- a/src/Vulkan/Extensions/VK_EXT_inline_uniform_block.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_inline_uniform_block.hs-boot
@@ -180,9 +180,10 @@
                                                       , WriteDescriptorSetInlineUniformBlockEXT
                                                       ) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data DescriptorPoolInlineUniformBlockCreateInfoEXT
 
 instance ToCStruct DescriptorPoolInlineUniformBlockCreateInfoEXT
diff --git a/src/Vulkan/Extensions/VK_EXT_line_rasterization.hs b/src/Vulkan/Extensions/VK_EXT_line_rasterization.hs
--- a/src/Vulkan/Extensions/VK_EXT_line_rasterization.hs
+++ b/src/Vulkan/Extensions/VK_EXT_line_rasterization.hs
@@ -159,6 +159,12 @@
 import Foreign.Ptr (nullPtr)
 import Foreign.Ptr (plusPtr)
 import GHC.Show (showsPrec)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero)
+import Vulkan.Zero (Zero(..))
 import Control.Monad.IO.Class (MonadIO)
 import Data.String (IsString)
 import Data.Typeable (Typeable)
@@ -185,13 +191,7 @@
 import Vulkan.Core10.Handles (CommandBuffer(..))
 import Vulkan.Core10.Handles (CommandBuffer_T)
 import Vulkan.Dynamic (DeviceCmds(pVkCmdSetLineStippleEXT))
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
-import Vulkan.Zero (Zero)
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT))
diff --git a/src/Vulkan/Extensions/VK_EXT_line_rasterization.hs-boot b/src/Vulkan/Extensions/VK_EXT_line_rasterization.hs-boot
--- a/src/Vulkan/Extensions/VK_EXT_line_rasterization.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_line_rasterization.hs-boot
@@ -137,9 +137,10 @@
                                                     , PipelineRasterizationLineStateCreateInfoEXT
                                                     ) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data PhysicalDeviceLineRasterizationFeaturesEXT
 
 instance ToCStruct PhysicalDeviceLineRasterizationFeaturesEXT
diff --git a/src/Vulkan/Extensions/VK_EXT_memory_budget.hs b/src/Vulkan/Extensions/VK_EXT_memory_budget.hs
--- a/src/Vulkan/Extensions/VK_EXT_memory_budget.hs
+++ b/src/Vulkan/Extensions/VK_EXT_memory_budget.hs
@@ -117,6 +117,11 @@
 import Data.Vector (generateM)
 import qualified Data.Vector (imapM_)
 import qualified Data.Vector (length)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
 import Data.String (IsString)
 import Data.Typeable (Typeable)
 import Foreign.Storable (Storable)
@@ -132,13 +137,8 @@
 import Vulkan.CStruct.Utils (advancePtrBytes)
 import Vulkan.CStruct.Utils (lowerArrayPtr)
 import Vulkan.Core10.FundamentalTypes (DeviceSize)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.APIConstants (MAX_MEMORY_HEAPS)
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.APIConstants (pattern MAX_MEMORY_HEAPS)
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT))
 -- | VkPhysicalDeviceMemoryBudgetPropertiesEXT - Structure specifying
diff --git a/src/Vulkan/Extensions/VK_EXT_memory_budget.hs-boot b/src/Vulkan/Extensions/VK_EXT_memory_budget.hs-boot
--- a/src/Vulkan/Extensions/VK_EXT_memory_budget.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_memory_budget.hs-boot
@@ -103,9 +103,10 @@
 -- the generator scripts, not directly.
 module Vulkan.Extensions.VK_EXT_memory_budget  (PhysicalDeviceMemoryBudgetPropertiesEXT) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data PhysicalDeviceMemoryBudgetPropertiesEXT
 
 instance ToCStruct PhysicalDeviceMemoryBudgetPropertiesEXT
diff --git a/src/Vulkan/Extensions/VK_EXT_memory_priority.hs b/src/Vulkan/Extensions/VK_EXT_memory_priority.hs
--- a/src/Vulkan/Extensions/VK_EXT_memory_priority.hs
+++ b/src/Vulkan/Extensions/VK_EXT_memory_priority.hs
@@ -102,9 +102,16 @@
 import Foreign.Marshal.Alloc (allocaBytesAligned)
 import Foreign.Ptr (nullPtr)
 import Foreign.Ptr (plusPtr)
+import Data.Coerce (coerce)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
 import Data.String (IsString)
 import Data.Typeable (Typeable)
 import Foreign.C.Types (CFloat)
+import Foreign.C.Types (CFloat(..))
 import Foreign.C.Types (CFloat(CFloat))
 import Foreign.Storable (Storable)
 import Foreign.Storable (Storable(peek))
@@ -116,12 +123,7 @@
 import Vulkan.Core10.FundamentalTypes (bool32ToBool)
 import Vulkan.Core10.FundamentalTypes (boolToBool32)
 import Vulkan.Core10.FundamentalTypes (Bool32)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT))
 -- | VkPhysicalDeviceMemoryPriorityFeaturesEXT - Structure describing memory
@@ -240,7 +242,7 @@
   peekCStruct p = do
     priority <- peek @CFloat ((p `plusPtr` 16 :: Ptr CFloat))
     pure $ MemoryPriorityAllocateInfoEXT
-             ((\(CFloat a) -> a) priority)
+             (coerce @CFloat @Float priority)
 
 instance Storable MemoryPriorityAllocateInfoEXT where
   sizeOf ~_ = 24
diff --git a/src/Vulkan/Extensions/VK_EXT_memory_priority.hs-boot b/src/Vulkan/Extensions/VK_EXT_memory_priority.hs-boot
--- a/src/Vulkan/Extensions/VK_EXT_memory_priority.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_memory_priority.hs-boot
@@ -95,9 +95,10 @@
                                                  , PhysicalDeviceMemoryPriorityFeaturesEXT
                                                  ) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data MemoryPriorityAllocateInfoEXT
 
 instance ToCStruct MemoryPriorityAllocateInfoEXT
diff --git a/src/Vulkan/Extensions/VK_EXT_metal_surface.hs b/src/Vulkan/Extensions/VK_EXT_metal_surface.hs
--- a/src/Vulkan/Extensions/VK_EXT_metal_surface.hs
+++ b/src/Vulkan/Extensions/VK_EXT_metal_surface.hs
@@ -120,6 +120,12 @@
 import Numeric (showHex)
 import Control.Monad.Trans.Class (lift)
 import Control.Monad.Trans.Cont (evalContT)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero)
+import Vulkan.Zero (Zero(..))
 import Control.Monad.IO.Class (MonadIO)
 import Data.Bits (Bits)
 import Data.Bits (FiniteBits)
@@ -141,8 +147,6 @@
 import Vulkan.NamedType ((:::))
 import Vulkan.Core10.AllocationCallbacks (AllocationCallbacks)
 import Vulkan.Core10.FundamentalTypes (Flags)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Handles (Instance)
 import Vulkan.Core10.Handles (Instance(..))
 import Vulkan.Dynamic (InstanceCmds(pVkCreateMetalSurfaceEXT))
@@ -152,11 +156,7 @@
 import Vulkan.Core10.Enums.StructureType (StructureType)
 import Vulkan.Extensions.Handles (SurfaceKHR)
 import Vulkan.Extensions.Handles (SurfaceKHR(..))
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
 import Vulkan.Exception (VulkanException(..))
-import Vulkan.Zero (Zero)
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT))
 import Vulkan.Core10.Enums.Result (Result(SUCCESS))
 import Vulkan.Extensions.Handles (SurfaceKHR(..))
diff --git a/src/Vulkan/Extensions/VK_EXT_metal_surface.hs-boot b/src/Vulkan/Extensions/VK_EXT_metal_surface.hs-boot
--- a/src/Vulkan/Extensions/VK_EXT_metal_surface.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_metal_surface.hs-boot
@@ -93,9 +93,10 @@
 -- the generator scripts, not directly.
 module Vulkan.Extensions.VK_EXT_metal_surface  (MetalSurfaceCreateInfoEXT) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data MetalSurfaceCreateInfoEXT
 
 instance ToCStruct MetalSurfaceCreateInfoEXT
diff --git a/src/Vulkan/Extensions/VK_EXT_pci_bus_info.hs b/src/Vulkan/Extensions/VK_EXT_pci_bus_info.hs
--- a/src/Vulkan/Extensions/VK_EXT_pci_bus_info.hs
+++ b/src/Vulkan/Extensions/VK_EXT_pci_bus_info.hs
@@ -107,6 +107,11 @@
 import Foreign.Marshal.Alloc (allocaBytesAligned)
 import Foreign.Ptr (nullPtr)
 import Foreign.Ptr (plusPtr)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
 import Data.String (IsString)
 import Data.Typeable (Typeable)
 import Foreign.Storable (Storable)
@@ -117,12 +122,7 @@
 import Foreign.Ptr (Ptr)
 import Data.Word (Word32)
 import Data.Kind (Type)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT))
 -- | VkPhysicalDevicePCIBusInfoPropertiesEXT - Structure containing PCI bus
 -- information of a physical device
diff --git a/src/Vulkan/Extensions/VK_EXT_pci_bus_info.hs-boot b/src/Vulkan/Extensions/VK_EXT_pci_bus_info.hs-boot
--- a/src/Vulkan/Extensions/VK_EXT_pci_bus_info.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_pci_bus_info.hs-boot
@@ -99,9 +99,10 @@
 -- the generator scripts, not directly.
 module Vulkan.Extensions.VK_EXT_pci_bus_info  (PhysicalDevicePCIBusInfoPropertiesEXT) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data PhysicalDevicePCIBusInfoPropertiesEXT
 
 instance ToCStruct PhysicalDevicePCIBusInfoPropertiesEXT
diff --git a/src/Vulkan/Extensions/VK_EXT_pipeline_creation_cache_control.hs b/src/Vulkan/Extensions/VK_EXT_pipeline_creation_cache_control.hs
--- a/src/Vulkan/Extensions/VK_EXT_pipeline_creation_cache_control.hs
+++ b/src/Vulkan/Extensions/VK_EXT_pipeline_creation_cache_control.hs
@@ -211,6 +211,11 @@
 import Foreign.Marshal.Alloc (allocaBytesAligned)
 import Foreign.Ptr (nullPtr)
 import Foreign.Ptr (plusPtr)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
 import Data.String (IsString)
 import Data.Typeable (Typeable)
 import Foreign.Storable (Storable)
@@ -223,12 +228,7 @@
 import Vulkan.Core10.FundamentalTypes (bool32ToBool)
 import Vulkan.Core10.FundamentalTypes (boolToBool32)
 import Vulkan.Core10.FundamentalTypes (Bool32)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.Result (Result(PIPELINE_COMPILE_REQUIRED_EXT))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES_EXT))
 -- No documentation found for TopLevel "VK_ERROR_PIPELINE_COMPILE_REQUIRED_EXT"
diff --git a/src/Vulkan/Extensions/VK_EXT_pipeline_creation_cache_control.hs-boot b/src/Vulkan/Extensions/VK_EXT_pipeline_creation_cache_control.hs-boot
--- a/src/Vulkan/Extensions/VK_EXT_pipeline_creation_cache_control.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_pipeline_creation_cache_control.hs-boot
@@ -202,9 +202,10 @@
 -- the generator scripts, not directly.
 module Vulkan.Extensions.VK_EXT_pipeline_creation_cache_control  (PhysicalDevicePipelineCreationCacheControlFeaturesEXT) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data PhysicalDevicePipelineCreationCacheControlFeaturesEXT
 
 instance ToCStruct PhysicalDevicePipelineCreationCacheControlFeaturesEXT
diff --git a/src/Vulkan/Extensions/VK_EXT_pipeline_creation_feedback.hs b/src/Vulkan/Extensions/VK_EXT_pipeline_creation_feedback.hs
--- a/src/Vulkan/Extensions/VK_EXT_pipeline_creation_feedback.hs
+++ b/src/Vulkan/Extensions/VK_EXT_pipeline_creation_feedback.hs
@@ -136,6 +136,12 @@
 import Foreign.Ptr (plusPtr)
 import GHC.Show (showString)
 import Numeric (showHex)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero)
+import Vulkan.Zero (Zero(..))
 import Data.Bits (Bits)
 import Data.Bits (FiniteBits)
 import Data.String (IsString)
@@ -152,13 +158,7 @@
 import Data.Word (Word64)
 import Data.Kind (Type)
 import Vulkan.Core10.FundamentalTypes (Flags)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
-import Vulkan.Zero (Zero)
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO_EXT))
 -- | VkPipelineCreationFeedbackEXT - Feedback about the creation of a
 -- pipeline or pipeline stage
diff --git a/src/Vulkan/Extensions/VK_EXT_pipeline_creation_feedback.hs-boot b/src/Vulkan/Extensions/VK_EXT_pipeline_creation_feedback.hs-boot
--- a/src/Vulkan/Extensions/VK_EXT_pipeline_creation_feedback.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_pipeline_creation_feedback.hs-boot
@@ -119,9 +119,10 @@
                                                             , PipelineCreationFeedbackEXT
                                                             ) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data PipelineCreationFeedbackCreateInfoEXT
 
 instance ToCStruct PipelineCreationFeedbackCreateInfoEXT
diff --git a/src/Vulkan/Extensions/VK_EXT_post_depth_coverage.hs b/src/Vulkan/Extensions/VK_EXT_post_depth_coverage.hs
--- a/src/Vulkan/Extensions/VK_EXT_post_depth_coverage.hs
+++ b/src/Vulkan/Extensions/VK_EXT_post_depth_coverage.hs
@@ -83,7 +83,7 @@
 --
 -- == New SPIR-V Capabilities
 --
--- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-postdepthcoverage SampleMaskPostDepthCoverage>
+-- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-SampleMaskPostDepthCoverage SampleMaskPostDepthCoverage>
 --
 -- == Version History
 --
diff --git a/src/Vulkan/Extensions/VK_EXT_private_data.hs b/src/Vulkan/Extensions/VK_EXT_private_data.hs
--- a/src/Vulkan/Extensions/VK_EXT_private_data.hs
+++ b/src/Vulkan/Extensions/VK_EXT_private_data.hs
@@ -171,6 +171,12 @@
 import Numeric (showHex)
 import Control.Monad.Trans.Class (lift)
 import Control.Monad.Trans.Cont (evalContT)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero)
+import Vulkan.Zero (Zero(..))
 import Control.Monad.IO.Class (MonadIO)
 import Data.Bits (Bits)
 import Data.Bits (FiniteBits)
@@ -204,8 +210,6 @@
 import Vulkan.Dynamic (DeviceCmds(pVkSetPrivateDataEXT))
 import Vulkan.Core10.Handles (Device_T)
 import Vulkan.Core10.FundamentalTypes (Flags)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Enums.ObjectType (ObjectType)
 import Vulkan.Core10.Enums.ObjectType (ObjectType(..))
 import Vulkan.Extensions.Handles (PrivateDataSlotEXT)
@@ -213,11 +217,7 @@
 import Vulkan.Core10.Enums.Result (Result)
 import Vulkan.Core10.Enums.Result (Result(..))
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
 import Vulkan.Exception (VulkanException(..))
-import Vulkan.Zero (Zero)
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO_EXT))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO_EXT))
diff --git a/src/Vulkan/Extensions/VK_EXT_private_data.hs-boot b/src/Vulkan/Extensions/VK_EXT_private_data.hs-boot
--- a/src/Vulkan/Extensions/VK_EXT_private_data.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_private_data.hs-boot
@@ -141,9 +141,10 @@
                                               , PrivateDataSlotCreateInfoEXT
                                               ) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data DevicePrivateDataCreateInfoEXT
 
 instance ToCStruct DevicePrivateDataCreateInfoEXT
diff --git a/src/Vulkan/Extensions/VK_EXT_robustness2.hs b/src/Vulkan/Extensions/VK_EXT_robustness2.hs
--- a/src/Vulkan/Extensions/VK_EXT_robustness2.hs
+++ b/src/Vulkan/Extensions/VK_EXT_robustness2.hs
@@ -135,6 +135,11 @@
 import Foreign.Marshal.Alloc (allocaBytesAligned)
 import Foreign.Ptr (nullPtr)
 import Foreign.Ptr (plusPtr)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
 import Data.String (IsString)
 import Data.Typeable (Typeable)
 import Foreign.Storable (Storable)
@@ -148,12 +153,7 @@
 import Vulkan.Core10.FundamentalTypes (boolToBool32)
 import Vulkan.Core10.FundamentalTypes (Bool32)
 import Vulkan.Core10.FundamentalTypes (DeviceSize)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT))
 -- | VkPhysicalDeviceRobustness2FeaturesEXT - Structure describing the
diff --git a/src/Vulkan/Extensions/VK_EXT_robustness2.hs-boot b/src/Vulkan/Extensions/VK_EXT_robustness2.hs-boot
--- a/src/Vulkan/Extensions/VK_EXT_robustness2.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_robustness2.hs-boot
@@ -128,9 +128,10 @@
                                              , PhysicalDeviceRobustness2PropertiesEXT
                                              ) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data PhysicalDeviceRobustness2FeaturesEXT
 
 instance ToCStruct PhysicalDeviceRobustness2FeaturesEXT
diff --git a/src/Vulkan/Extensions/VK_EXT_sample_locations.hs b/src/Vulkan/Extensions/VK_EXT_sample_locations.hs
--- a/src/Vulkan/Extensions/VK_EXT_sample_locations.hs
+++ b/src/Vulkan/Extensions/VK_EXT_sample_locations.hs
@@ -191,15 +191,22 @@
 import GHC.Ptr (nullFunPtr)
 import Foreign.Ptr (nullPtr)
 import Foreign.Ptr (plusPtr)
+import Data.Coerce (coerce)
 import Control.Monad.Trans.Class (lift)
 import Control.Monad.Trans.Cont (evalContT)
 import Data.Vector (generateM)
 import qualified Data.Vector (imapM_)
 import qualified Data.Vector (length)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
 import Control.Monad.IO.Class (MonadIO)
 import Data.String (IsString)
 import Data.Typeable (Typeable)
 import Foreign.C.Types (CFloat)
+import Foreign.C.Types (CFloat(..))
 import Foreign.C.Types (CFloat(CFloat))
 import Foreign.Storable (Storable)
 import Foreign.Storable (Storable(peek))
@@ -225,8 +232,6 @@
 import Vulkan.Core10.Handles (CommandBuffer_T)
 import Vulkan.Dynamic (DeviceCmds(pVkCmdSetSampleLocationsEXT))
 import Vulkan.Core10.FundamentalTypes (Extent2D)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Dynamic (InstanceCmds(pVkGetPhysicalDeviceMultisamplePropertiesEXT))
 import Vulkan.Core10.Handles (PhysicalDevice)
 import Vulkan.Core10.Handles (PhysicalDevice(..))
@@ -235,9 +240,6 @@
 import Vulkan.Core10.Enums.SampleCountFlagBits (SampleCountFlagBits(..))
 import Vulkan.Core10.Enums.SampleCountFlagBits (SampleCountFlags)
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT))
@@ -419,7 +421,7 @@
     x <- peek @CFloat ((p `plusPtr` 0 :: Ptr CFloat))
     y <- peek @CFloat ((p `plusPtr` 4 :: Ptr CFloat))
     pure $ SampleLocationEXT
-             ((\(CFloat a) -> a) x) ((\(CFloat a) -> a) y)
+             (coerce @CFloat @Float x) (coerce @CFloat @Float y)
 
 instance Storable SampleLocationEXT where
   sizeOf ~_ = 8
@@ -948,7 +950,7 @@
     sampleLocationSubPixelBits <- peek @Word32 ((p `plusPtr` 36 :: Ptr Word32))
     variableSampleLocations <- peek @Bool32 ((p `plusPtr` 40 :: Ptr Bool32))
     pure $ PhysicalDeviceSampleLocationsPropertiesEXT
-             sampleLocationSampleCounts maxSampleLocationGridSize ((((\(CFloat a) -> a) sampleLocationCoordinateRange0), ((\(CFloat a) -> a) sampleLocationCoordinateRange1))) sampleLocationSubPixelBits (bool32ToBool variableSampleLocations)
+             sampleLocationSampleCounts maxSampleLocationGridSize (((coerce @CFloat @Float sampleLocationCoordinateRange0), (coerce @CFloat @Float sampleLocationCoordinateRange1))) sampleLocationSubPixelBits (bool32ToBool variableSampleLocations)
 
 instance Storable PhysicalDeviceSampleLocationsPropertiesEXT where
   sizeOf ~_ = 48
diff --git a/src/Vulkan/Extensions/VK_EXT_sample_locations.hs-boot b/src/Vulkan/Extensions/VK_EXT_sample_locations.hs-boot
--- a/src/Vulkan/Extensions/VK_EXT_sample_locations.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_sample_locations.hs-boot
@@ -176,9 +176,10 @@
                                                   , SubpassSampleLocationsEXT
                                                   ) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data AttachmentSampleLocationsEXT
 
 instance ToCStruct AttachmentSampleLocationsEXT
diff --git a/src/Vulkan/Extensions/VK_EXT_shader_atomic_float.hs b/src/Vulkan/Extensions/VK_EXT_shader_atomic_float.hs
--- a/src/Vulkan/Extensions/VK_EXT_shader_atomic_float.hs
+++ b/src/Vulkan/Extensions/VK_EXT_shader_atomic_float.hs
@@ -110,6 +110,11 @@
 import Foreign.Marshal.Alloc (allocaBytesAligned)
 import Foreign.Ptr (nullPtr)
 import Foreign.Ptr (plusPtr)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
 import Data.String (IsString)
 import Data.Typeable (Typeable)
 import Foreign.Storable (Storable)
@@ -122,12 +127,7 @@
 import Vulkan.Core10.FundamentalTypes (bool32ToBool)
 import Vulkan.Core10.FundamentalTypes (boolToBool32)
 import Vulkan.Core10.FundamentalTypes (Bool32)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT))
 -- | VkPhysicalDeviceShaderAtomicFloatFeaturesEXT - Structure describing
 -- features supported by VK_EXT_shader_atomic_float
diff --git a/src/Vulkan/Extensions/VK_EXT_shader_atomic_float.hs-boot b/src/Vulkan/Extensions/VK_EXT_shader_atomic_float.hs-boot
--- a/src/Vulkan/Extensions/VK_EXT_shader_atomic_float.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_shader_atomic_float.hs-boot
@@ -102,9 +102,10 @@
 -- the generator scripts, not directly.
 module Vulkan.Extensions.VK_EXT_shader_atomic_float  (PhysicalDeviceShaderAtomicFloatFeaturesEXT) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data PhysicalDeviceShaderAtomicFloatFeaturesEXT
 
 instance ToCStruct PhysicalDeviceShaderAtomicFloatFeaturesEXT
diff --git a/src/Vulkan/Extensions/VK_EXT_shader_demote_to_helper_invocation.hs b/src/Vulkan/Extensions/VK_EXT_shader_demote_to_helper_invocation.hs
--- a/src/Vulkan/Extensions/VK_EXT_shader_demote_to_helper_invocation.hs
+++ b/src/Vulkan/Extensions/VK_EXT_shader_demote_to_helper_invocation.hs
@@ -78,7 +78,7 @@
 --
 -- == New SPIR-V Capability
 --
--- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-demote DemoteToHelperInvocationEXT>
+-- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-DemoteToHelperInvocationEXT DemoteToHelperInvocationEXT>
 --
 -- == Version History
 --
@@ -107,6 +107,11 @@
 import Foreign.Marshal.Alloc (allocaBytesAligned)
 import Foreign.Ptr (nullPtr)
 import Foreign.Ptr (plusPtr)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
 import Data.String (IsString)
 import Data.Typeable (Typeable)
 import Foreign.Storable (Storable)
@@ -119,12 +124,7 @@
 import Vulkan.Core10.FundamentalTypes (bool32ToBool)
 import Vulkan.Core10.FundamentalTypes (boolToBool32)
 import Vulkan.Core10.FundamentalTypes (Bool32)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT))
 -- | VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT - Structure
 -- describing the shader demote to helper invocations features that can be
diff --git a/src/Vulkan/Extensions/VK_EXT_shader_demote_to_helper_invocation.hs-boot b/src/Vulkan/Extensions/VK_EXT_shader_demote_to_helper_invocation.hs-boot
--- a/src/Vulkan/Extensions/VK_EXT_shader_demote_to_helper_invocation.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_shader_demote_to_helper_invocation.hs-boot
@@ -78,7 +78,7 @@
 --
 -- == New SPIR-V Capability
 --
--- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-demote DemoteToHelperInvocationEXT>
+-- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-DemoteToHelperInvocationEXT DemoteToHelperInvocationEXT>
 --
 -- == Version History
 --
@@ -99,9 +99,10 @@
 -- the generator scripts, not directly.
 module Vulkan.Extensions.VK_EXT_shader_demote_to_helper_invocation  (PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT
 
 instance ToCStruct PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT
diff --git a/src/Vulkan/Extensions/VK_EXT_shader_image_atomic_int64.hs b/src/Vulkan/Extensions/VK_EXT_shader_image_atomic_int64.hs
--- a/src/Vulkan/Extensions/VK_EXT_shader_image_atomic_int64.hs
+++ b/src/Vulkan/Extensions/VK_EXT_shader_image_atomic_int64.hs
@@ -118,6 +118,11 @@
 import Foreign.Marshal.Alloc (allocaBytesAligned)
 import Foreign.Ptr (nullPtr)
 import Foreign.Ptr (plusPtr)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
 import Data.String (IsString)
 import Data.Typeable (Typeable)
 import Foreign.Storable (Storable)
@@ -130,12 +135,7 @@
 import Vulkan.Core10.FundamentalTypes (bool32ToBool)
 import Vulkan.Core10.FundamentalTypes (boolToBool32)
 import Vulkan.Core10.FundamentalTypes (Bool32)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT))
 -- | VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT - Structure describing
 -- features supported by VK_EXT_shader_image_atomic_int64
diff --git a/src/Vulkan/Extensions/VK_EXT_shader_image_atomic_int64.hs-boot b/src/Vulkan/Extensions/VK_EXT_shader_image_atomic_int64.hs-boot
--- a/src/Vulkan/Extensions/VK_EXT_shader_image_atomic_int64.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_shader_image_atomic_int64.hs-boot
@@ -110,9 +110,10 @@
 -- the generator scripts, not directly.
 module Vulkan.Extensions.VK_EXT_shader_image_atomic_int64  (PhysicalDeviceShaderImageAtomicInt64FeaturesEXT) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data PhysicalDeviceShaderImageAtomicInt64FeaturesEXT
 
 instance ToCStruct PhysicalDeviceShaderImageAtomicInt64FeaturesEXT
diff --git a/src/Vulkan/Extensions/VK_EXT_shader_subgroup_ballot.hs b/src/Vulkan/Extensions/VK_EXT_shader_subgroup_ballot.hs
--- a/src/Vulkan/Extensions/VK_EXT_shader_subgroup_ballot.hs
+++ b/src/Vulkan/Extensions/VK_EXT_shader_subgroup_ballot.hs
@@ -160,7 +160,7 @@
 --
 -- == New SPIR-V Capabilities
 --
--- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-subgroupballot SubgroupBallotKHR>
+-- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-SubgroupBallotKHR SubgroupBallotKHR>
 --
 -- == Version History
 --
diff --git a/src/Vulkan/Extensions/VK_EXT_shader_subgroup_vote.hs b/src/Vulkan/Extensions/VK_EXT_shader_subgroup_vote.hs
--- a/src/Vulkan/Extensions/VK_EXT_shader_subgroup_vote.hs
+++ b/src/Vulkan/Extensions/VK_EXT_shader_subgroup_vote.hs
@@ -144,7 +144,7 @@
 --
 -- == New SPIR-V Capabilities
 --
--- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-subgroupvote SubgroupVoteKHR>
+-- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-SubgroupVoteKHR SubgroupVoteKHR>
 --
 -- == Version History
 --
diff --git a/src/Vulkan/Extensions/VK_EXT_shader_viewport_index_layer.hs b/src/Vulkan/Extensions/VK_EXT_shader_viewport_index_layer.hs
--- a/src/Vulkan/Extensions/VK_EXT_shader_viewport_index_layer.hs
+++ b/src/Vulkan/Extensions/VK_EXT_shader_viewport_index_layer.hs
@@ -96,9 +96,9 @@
 --
 -- The single @ShaderViewportIndexLayerEXT@ capability from the
 -- @SPV_EXT_shader_viewport_index_layer@ extension is replaced by the
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-shader-viewport-index ShaderViewportIndex>
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-ShaderViewportIndex ShaderViewportIndex>
 -- and
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-shader-layer ShaderLayer>
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-ShaderLayer ShaderLayer>
 -- capabilities from SPIR-V 1.5 which are enabled by the
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderOutputViewportIndex shaderOutputViewportIndex>
 -- and
@@ -125,7 +125,7 @@
 --
 -- == New SPIR-V Capabilities
 --
--- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-shader-viewport-index-layer ShaderViewportIndexLayerEXT>
+-- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-ShaderViewportIndexLayerEXT ShaderViewportIndexLayerEXT>
 --
 -- == Version History
 --
diff --git a/src/Vulkan/Extensions/VK_EXT_subgroup_size_control.hs b/src/Vulkan/Extensions/VK_EXT_subgroup_size_control.hs
--- a/src/Vulkan/Extensions/VK_EXT_subgroup_size_control.hs
+++ b/src/Vulkan/Extensions/VK_EXT_subgroup_size_control.hs
@@ -173,6 +173,11 @@
 import Foreign.Marshal.Alloc (allocaBytesAligned)
 import Foreign.Ptr (nullPtr)
 import Foreign.Ptr (plusPtr)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
 import Data.String (IsString)
 import Data.Typeable (Typeable)
 import Foreign.Storable (Storable)
@@ -186,13 +191,8 @@
 import Vulkan.Core10.FundamentalTypes (bool32ToBool)
 import Vulkan.Core10.FundamentalTypes (boolToBool32)
 import Vulkan.Core10.FundamentalTypes (Bool32)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Enums.ShaderStageFlagBits (ShaderStageFlags)
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT))
diff --git a/src/Vulkan/Extensions/VK_EXT_subgroup_size_control.hs-boot b/src/Vulkan/Extensions/VK_EXT_subgroup_size_control.hs-boot
--- a/src/Vulkan/Extensions/VK_EXT_subgroup_size_control.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_subgroup_size_control.hs-boot
@@ -166,9 +166,10 @@
                                                        , PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT
                                                        ) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data PhysicalDeviceSubgroupSizeControlFeaturesEXT
 
 instance ToCStruct PhysicalDeviceSubgroupSizeControlFeaturesEXT
diff --git a/src/Vulkan/Extensions/VK_EXT_texel_buffer_alignment.hs b/src/Vulkan/Extensions/VK_EXT_texel_buffer_alignment.hs
--- a/src/Vulkan/Extensions/VK_EXT_texel_buffer_alignment.hs
+++ b/src/Vulkan/Extensions/VK_EXT_texel_buffer_alignment.hs
@@ -101,6 +101,11 @@
 import Foreign.Marshal.Alloc (allocaBytesAligned)
 import Foreign.Ptr (nullPtr)
 import Foreign.Ptr (plusPtr)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
 import Data.String (IsString)
 import Data.Typeable (Typeable)
 import Foreign.Storable (Storable)
@@ -114,12 +119,7 @@
 import Vulkan.Core10.FundamentalTypes (boolToBool32)
 import Vulkan.Core10.FundamentalTypes (Bool32)
 import Vulkan.Core10.FundamentalTypes (DeviceSize)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT))
 -- | VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT - Structure describing
diff --git a/src/Vulkan/Extensions/VK_EXT_texel_buffer_alignment.hs-boot b/src/Vulkan/Extensions/VK_EXT_texel_buffer_alignment.hs-boot
--- a/src/Vulkan/Extensions/VK_EXT_texel_buffer_alignment.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_texel_buffer_alignment.hs-boot
@@ -94,9 +94,10 @@
                                                         , PhysicalDeviceTexelBufferAlignmentPropertiesEXT
                                                         ) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data PhysicalDeviceTexelBufferAlignmentFeaturesEXT
 
 instance ToCStruct PhysicalDeviceTexelBufferAlignmentFeaturesEXT
diff --git a/src/Vulkan/Extensions/VK_EXT_texture_compression_astc_hdr.hs b/src/Vulkan/Extensions/VK_EXT_texture_compression_astc_hdr.hs
--- a/src/Vulkan/Extensions/VK_EXT_texture_compression_astc_hdr.hs
+++ b/src/Vulkan/Extensions/VK_EXT_texture_compression_astc_hdr.hs
@@ -150,6 +150,11 @@
 import Foreign.Marshal.Alloc (allocaBytesAligned)
 import Foreign.Ptr (nullPtr)
 import Foreign.Ptr (plusPtr)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
 import Data.String (IsString)
 import Data.Typeable (Typeable)
 import Foreign.Storable (Storable)
@@ -162,12 +167,7 @@
 import Vulkan.Core10.FundamentalTypes (bool32ToBool)
 import Vulkan.Core10.FundamentalTypes (boolToBool32)
 import Vulkan.Core10.FundamentalTypes (Bool32)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES_EXT))
 -- | VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT - Structure
 -- describing ASTC HDR features that can be supported by an implementation
diff --git a/src/Vulkan/Extensions/VK_EXT_texture_compression_astc_hdr.hs-boot b/src/Vulkan/Extensions/VK_EXT_texture_compression_astc_hdr.hs-boot
--- a/src/Vulkan/Extensions/VK_EXT_texture_compression_astc_hdr.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_texture_compression_astc_hdr.hs-boot
@@ -142,9 +142,10 @@
 -- the generator scripts, not directly.
 module Vulkan.Extensions.VK_EXT_texture_compression_astc_hdr  (PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT
 
 instance ToCStruct PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT
diff --git a/src/Vulkan/Extensions/VK_EXT_tooling_info.hs b/src/Vulkan/Extensions/VK_EXT_tooling_info.hs
--- a/src/Vulkan/Extensions/VK_EXT_tooling_info.hs
+++ b/src/Vulkan/Extensions/VK_EXT_tooling_info.hs
@@ -206,6 +206,12 @@
 import Control.Monad.Trans.Class (lift)
 import Control.Monad.Trans.Cont (evalContT)
 import Data.Vector (generateM)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero)
+import Vulkan.Zero (Zero(..))
 import Control.Monad.IO.Class (MonadIO)
 import Data.Bits (Bits)
 import Data.Bits (FiniteBits)
@@ -233,8 +239,6 @@
 import Vulkan.CStruct.Utils (pokeFixedLengthNullTerminatedByteString)
 import Vulkan.NamedType ((:::))
 import Vulkan.Core10.FundamentalTypes (Flags)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Dynamic (InstanceCmds(pVkGetPhysicalDeviceToolPropertiesEXT))
 import Vulkan.Core10.APIConstants (MAX_DESCRIPTION_SIZE)
 import Vulkan.Core10.APIConstants (MAX_EXTENSION_NAME_SIZE)
@@ -244,11 +248,7 @@
 import Vulkan.Core10.Enums.Result (Result)
 import Vulkan.Core10.Enums.Result (Result(..))
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
 import Vulkan.Exception (VulkanException(..))
-import Vulkan.Zero (Zero)
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES_EXT))
 import Vulkan.Core10.Enums.Result (Result(SUCCESS))
 foreign import ccall
diff --git a/src/Vulkan/Extensions/VK_EXT_tooling_info.hs-boot b/src/Vulkan/Extensions/VK_EXT_tooling_info.hs-boot
--- a/src/Vulkan/Extensions/VK_EXT_tooling_info.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_tooling_info.hs-boot
@@ -169,9 +169,10 @@
 -- the generator scripts, not directly.
 module Vulkan.Extensions.VK_EXT_tooling_info  (PhysicalDeviceToolPropertiesEXT) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data PhysicalDeviceToolPropertiesEXT
 
 instance ToCStruct PhysicalDeviceToolPropertiesEXT
diff --git a/src/Vulkan/Extensions/VK_EXT_transform_feedback.hs b/src/Vulkan/Extensions/VK_EXT_transform_feedback.hs
--- a/src/Vulkan/Extensions/VK_EXT_transform_feedback.hs
+++ b/src/Vulkan/Extensions/VK_EXT_transform_feedback.hs
@@ -267,6 +267,12 @@
 import qualified Data.Vector (imapM_)
 import qualified Data.Vector (length)
 import qualified Data.Vector (null)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero)
+import Vulkan.Zero (Zero(..))
 import Control.Monad.IO.Class (MonadIO)
 import Data.Bits (Bits)
 import Data.Bits (FiniteBits)
@@ -304,17 +310,11 @@
 import Vulkan.Dynamic (DeviceCmds(pVkCmdEndTransformFeedbackEXT))
 import Vulkan.Core10.FundamentalTypes (DeviceSize)
 import Vulkan.Core10.FundamentalTypes (Flags)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Enums.QueryControlFlagBits (QueryControlFlagBits(..))
 import Vulkan.Core10.Enums.QueryControlFlagBits (QueryControlFlags)
 import Vulkan.Core10.Handles (QueryPool)
 import Vulkan.Core10.Handles (QueryPool(..))
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
-import Vulkan.Zero (Zero)
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT))
diff --git a/src/Vulkan/Extensions/VK_EXT_transform_feedback.hs-boot b/src/Vulkan/Extensions/VK_EXT_transform_feedback.hs-boot
--- a/src/Vulkan/Extensions/VK_EXT_transform_feedback.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_transform_feedback.hs-boot
@@ -237,9 +237,10 @@
                                                     , PipelineRasterizationStateStreamCreateInfoEXT
                                                     ) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data PhysicalDeviceTransformFeedbackFeaturesEXT
 
 instance ToCStruct PhysicalDeviceTransformFeedbackFeaturesEXT
diff --git a/src/Vulkan/Extensions/VK_EXT_validation_cache.hs b/src/Vulkan/Extensions/VK_EXT_validation_cache.hs
--- a/src/Vulkan/Extensions/VK_EXT_validation_cache.hs
+++ b/src/Vulkan/Extensions/VK_EXT_validation_cache.hs
@@ -159,11 +159,18 @@
 import GHC.Show (showsPrec)
 import Numeric (showHex)
 import Data.ByteString (packCStringLen)
+import Data.Coerce (coerce)
 import Control.Monad.Trans.Class (lift)
 import Control.Monad.Trans.Cont (evalContT)
 import qualified Data.Vector (imapM_)
 import qualified Data.Vector (length)
 import Foreign.C.Types (CSize(..))
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero)
+import Vulkan.Zero (Zero(..))
 import Control.Monad.IO.Class (MonadIO)
 import Data.Bits (Bits)
 import Data.Bits (FiniteBits)
@@ -171,6 +178,7 @@
 import Data.Typeable (Typeable)
 import Foreign.C.Types (CChar)
 import Foreign.C.Types (CSize)
+import Foreign.C.Types (CSize(..))
 import Foreign.C.Types (CSize(CSize))
 import Foreign.Storable (Storable)
 import Foreign.Storable (Storable(peek))
@@ -200,18 +208,12 @@
 import Vulkan.Dynamic (DeviceCmds(pVkMergeValidationCachesEXT))
 import Vulkan.Core10.Handles (Device_T)
 import Vulkan.Core10.FundamentalTypes (Flags)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Enums.Result (Result)
 import Vulkan.Core10.Enums.Result (Result(..))
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
 import Vulkan.Extensions.Handles (ValidationCacheEXT)
 import Vulkan.Extensions.Handles (ValidationCacheEXT(..))
 import Vulkan.Exception (VulkanException(..))
-import Vulkan.Zero (Zero)
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT))
 import Vulkan.Core10.Enums.Result (Result(SUCCESS))
@@ -529,11 +531,11 @@
   r <- lift $ traceAroundEvent "vkGetValidationCacheDataEXT" (vkGetValidationCacheDataEXT' device' (validationCache) (pPDataSize) (nullPtr))
   lift $ when (r < SUCCESS) (throwIO (VulkanException r))
   pDataSize <- lift $ peek @CSize pPDataSize
-  pPData <- ContT $ bracket (callocBytes @(()) (fromIntegral (((\(CSize a) -> a) pDataSize)))) free
+  pPData <- ContT $ bracket (callocBytes @(()) (fromIntegral ((coerce @CSize @Word64 pDataSize)))) free
   r' <- lift $ traceAroundEvent "vkGetValidationCacheDataEXT" (vkGetValidationCacheDataEXT' device' (validationCache) (pPDataSize) (pPData))
   lift $ when (r' < SUCCESS) (throwIO (VulkanException r'))
   pDataSize'' <- lift $ peek @CSize pPDataSize
-  pData' <- lift $ packCStringLen  (castPtr @() @CChar pPData, (fromIntegral (((\(CSize a) -> a) pDataSize''))))
+  pData' <- lift $ packCStringLen  (castPtr @() @CChar pPData, (fromIntegral ((coerce @CSize @Word64 pDataSize''))))
   pure $ ((r'), pData')
 
 
@@ -699,7 +701,7 @@
     initialDataSize <- peek @CSize ((p `plusPtr` 24 :: Ptr CSize))
     pInitialData <- peek @(Ptr ()) ((p `plusPtr` 32 :: Ptr (Ptr ())))
     pure $ ValidationCacheCreateInfoEXT
-             flags ((\(CSize a) -> a) initialDataSize) pInitialData
+             flags (coerce @CSize @Word64 initialDataSize) pInitialData
 
 instance Storable ValidationCacheCreateInfoEXT where
   sizeOf ~_ = 40
diff --git a/src/Vulkan/Extensions/VK_EXT_validation_cache.hs-boot b/src/Vulkan/Extensions/VK_EXT_validation_cache.hs-boot
--- a/src/Vulkan/Extensions/VK_EXT_validation_cache.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_validation_cache.hs-boot
@@ -126,9 +126,10 @@
                                                   , ValidationCacheCreateInfoEXT
                                                   ) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data ShaderModuleValidationCacheCreateInfoEXT
 
 instance ToCStruct ShaderModuleValidationCacheCreateInfoEXT
diff --git a/src/Vulkan/Extensions/VK_EXT_validation_features.hs b/src/Vulkan/Extensions/VK_EXT_validation_features.hs
--- a/src/Vulkan/Extensions/VK_EXT_validation_features.hs
+++ b/src/Vulkan/Extensions/VK_EXT_validation_features.hs
@@ -156,6 +156,12 @@
 import Data.Vector (generateM)
 import qualified Data.Vector (imapM_)
 import qualified Data.Vector (length)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero)
+import Vulkan.Zero (Zero(..))
 import Data.String (IsString)
 import Data.Typeable (Typeable)
 import Foreign.Storable (Storable)
@@ -171,13 +177,7 @@
 import Control.Monad.Trans.Cont (ContT(..))
 import Data.Vector (Vector)
 import Vulkan.CStruct.Utils (advancePtrBytes)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
-import Vulkan.Zero (Zero)
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_VALIDATION_FEATURES_EXT))
 -- | VkValidationFeaturesEXT - Specify validation features to enable or
 -- disable for a Vulkan instance
diff --git a/src/Vulkan/Extensions/VK_EXT_validation_features.hs-boot b/src/Vulkan/Extensions/VK_EXT_validation_features.hs-boot
--- a/src/Vulkan/Extensions/VK_EXT_validation_features.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_validation_features.hs-boot
@@ -124,9 +124,10 @@
 -- the generator scripts, not directly.
 module Vulkan.Extensions.VK_EXT_validation_features  (ValidationFeaturesEXT) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data ValidationFeaturesEXT
 
 instance ToCStruct ValidationFeaturesEXT
diff --git a/src/Vulkan/Extensions/VK_EXT_validation_flags.hs b/src/Vulkan/Extensions/VK_EXT_validation_flags.hs
--- a/src/Vulkan/Extensions/VK_EXT_validation_flags.hs
+++ b/src/Vulkan/Extensions/VK_EXT_validation_flags.hs
@@ -126,6 +126,12 @@
 import Data.Vector (generateM)
 import qualified Data.Vector (imapM_)
 import qualified Data.Vector (length)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero)
+import Vulkan.Zero (Zero(..))
 import Data.String (IsString)
 import Data.Typeable (Typeable)
 import Foreign.Storable (Storable)
@@ -141,13 +147,7 @@
 import Control.Monad.Trans.Cont (ContT(..))
 import Data.Vector (Vector)
 import Vulkan.CStruct.Utils (advancePtrBytes)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
-import Vulkan.Zero (Zero)
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_VALIDATION_FLAGS_EXT))
 -- | VkValidationFlagsEXT - Specify validation checks to disable for a Vulkan
 -- instance
diff --git a/src/Vulkan/Extensions/VK_EXT_validation_flags.hs-boot b/src/Vulkan/Extensions/VK_EXT_validation_flags.hs-boot
--- a/src/Vulkan/Extensions/VK_EXT_validation_flags.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_validation_flags.hs-boot
@@ -106,9 +106,10 @@
 -- the generator scripts, not directly.
 module Vulkan.Extensions.VK_EXT_validation_flags  (ValidationFlagsEXT) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data ValidationFlagsEXT
 
 instance ToCStruct ValidationFlagsEXT
diff --git a/src/Vulkan/Extensions/VK_EXT_vertex_attribute_divisor.hs b/src/Vulkan/Extensions/VK_EXT_vertex_attribute_divisor.hs
--- a/src/Vulkan/Extensions/VK_EXT_vertex_attribute_divisor.hs
+++ b/src/Vulkan/Extensions/VK_EXT_vertex_attribute_divisor.hs
@@ -182,6 +182,11 @@
 import Data.Vector (generateM)
 import qualified Data.Vector (imapM_)
 import qualified Data.Vector (length)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
 import Data.String (IsString)
 import Data.Typeable (Typeable)
 import Foreign.Storable (Storable)
@@ -198,12 +203,7 @@
 import Vulkan.Core10.FundamentalTypes (bool32ToBool)
 import Vulkan.Core10.FundamentalTypes (boolToBool32)
 import Vulkan.Core10.FundamentalTypes (Bool32)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT))
diff --git a/src/Vulkan/Extensions/VK_EXT_vertex_attribute_divisor.hs-boot b/src/Vulkan/Extensions/VK_EXT_vertex_attribute_divisor.hs-boot
--- a/src/Vulkan/Extensions/VK_EXT_vertex_attribute_divisor.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_vertex_attribute_divisor.hs-boot
@@ -170,9 +170,10 @@
                                                           , VertexInputBindingDivisorDescriptionEXT
                                                           ) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data PhysicalDeviceVertexAttributeDivisorFeaturesEXT
 
 instance ToCStruct PhysicalDeviceVertexAttributeDivisorFeaturesEXT
diff --git a/src/Vulkan/Extensions/VK_EXT_ycbcr_image_arrays.hs b/src/Vulkan/Extensions/VK_EXT_ycbcr_image_arrays.hs
--- a/src/Vulkan/Extensions/VK_EXT_ycbcr_image_arrays.hs
+++ b/src/Vulkan/Extensions/VK_EXT_ycbcr_image_arrays.hs
@@ -88,6 +88,11 @@
 import Foreign.Marshal.Alloc (allocaBytesAligned)
 import Foreign.Ptr (nullPtr)
 import Foreign.Ptr (plusPtr)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
 import Data.String (IsString)
 import Data.Typeable (Typeable)
 import Foreign.Storable (Storable)
@@ -100,12 +105,7 @@
 import Vulkan.Core10.FundamentalTypes (bool32ToBool)
 import Vulkan.Core10.FundamentalTypes (boolToBool32)
 import Vulkan.Core10.FundamentalTypes (Bool32)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT))
 -- | VkPhysicalDeviceYcbcrImageArraysFeaturesEXT - Structure describing
 -- extended Y’CbCr image creation features that can be supported by an
diff --git a/src/Vulkan/Extensions/VK_EXT_ycbcr_image_arrays.hs-boot b/src/Vulkan/Extensions/VK_EXT_ycbcr_image_arrays.hs-boot
--- a/src/Vulkan/Extensions/VK_EXT_ycbcr_image_arrays.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_ycbcr_image_arrays.hs-boot
@@ -80,9 +80,10 @@
 -- the generator scripts, not directly.
 module Vulkan.Extensions.VK_EXT_ycbcr_image_arrays  (PhysicalDeviceYcbcrImageArraysFeaturesEXT) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data PhysicalDeviceYcbcrImageArraysFeaturesEXT
 
 instance ToCStruct PhysicalDeviceYcbcrImageArraysFeaturesEXT
diff --git a/src/Vulkan/Extensions/VK_FUCHSIA_imagepipe_surface.hs b/src/Vulkan/Extensions/VK_FUCHSIA_imagepipe_surface.hs
--- a/src/Vulkan/Extensions/VK_FUCHSIA_imagepipe_surface.hs
+++ b/src/Vulkan/Extensions/VK_FUCHSIA_imagepipe_surface.hs
@@ -120,6 +120,12 @@
 import Numeric (showHex)
 import Control.Monad.Trans.Class (lift)
 import Control.Monad.Trans.Cont (evalContT)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero)
+import Vulkan.Zero (Zero(..))
 import Control.Monad.IO.Class (MonadIO)
 import Data.Bits (Bits)
 import Data.Bits (FiniteBits)
@@ -142,8 +148,6 @@
 import Vulkan.NamedType ((:::))
 import Vulkan.Core10.AllocationCallbacks (AllocationCallbacks)
 import Vulkan.Core10.FundamentalTypes (Flags)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Handles (Instance)
 import Vulkan.Core10.Handles (Instance(..))
 import Vulkan.Dynamic (InstanceCmds(pVkCreateImagePipeSurfaceFUCHSIA))
@@ -153,11 +157,7 @@
 import Vulkan.Core10.Enums.StructureType (StructureType)
 import Vulkan.Extensions.Handles (SurfaceKHR)
 import Vulkan.Extensions.Handles (SurfaceKHR(..))
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
 import Vulkan.Exception (VulkanException(..))
-import Vulkan.Zero (Zero)
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA))
 import Vulkan.Core10.Enums.Result (Result(SUCCESS))
 import Vulkan.Extensions.Handles (SurfaceKHR(..))
diff --git a/src/Vulkan/Extensions/VK_FUCHSIA_imagepipe_surface.hs-boot b/src/Vulkan/Extensions/VK_FUCHSIA_imagepipe_surface.hs-boot
--- a/src/Vulkan/Extensions/VK_FUCHSIA_imagepipe_surface.hs-boot
+++ b/src/Vulkan/Extensions/VK_FUCHSIA_imagepipe_surface.hs-boot
@@ -93,9 +93,10 @@
 -- the generator scripts, not directly.
 module Vulkan.Extensions.VK_FUCHSIA_imagepipe_surface  (ImagePipeSurfaceCreateInfoFUCHSIA) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data ImagePipeSurfaceCreateInfoFUCHSIA
 
 instance ToCStruct ImagePipeSurfaceCreateInfoFUCHSIA
diff --git a/src/Vulkan/Extensions/VK_GGP_frame_token.hs b/src/Vulkan/Extensions/VK_GGP_frame_token.hs
--- a/src/Vulkan/Extensions/VK_GGP_frame_token.hs
+++ b/src/Vulkan/Extensions/VK_GGP_frame_token.hs
@@ -95,6 +95,11 @@
 import Foreign.Marshal.Alloc (allocaBytesAligned)
 import Foreign.Ptr (nullPtr)
 import Foreign.Ptr (plusPtr)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
 import Data.String (IsString)
 import Data.Typeable (Typeable)
 import Foreign.Storable (Storable)
@@ -105,12 +110,7 @@
 import Foreign.Ptr (Ptr)
 import Data.Word (Word32)
 import Data.Kind (Type)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP))
 -- | VkPresentFrameTokenGGP - The Google Games Platform frame token
 --
diff --git a/src/Vulkan/Extensions/VK_GGP_frame_token.hs-boot b/src/Vulkan/Extensions/VK_GGP_frame_token.hs-boot
--- a/src/Vulkan/Extensions/VK_GGP_frame_token.hs-boot
+++ b/src/Vulkan/Extensions/VK_GGP_frame_token.hs-boot
@@ -86,9 +86,10 @@
 -- the generator scripts, not directly.
 module Vulkan.Extensions.VK_GGP_frame_token  (PresentFrameTokenGGP) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data PresentFrameTokenGGP
 
 instance ToCStruct PresentFrameTokenGGP
diff --git a/src/Vulkan/Extensions/VK_GGP_stream_descriptor_surface.hs b/src/Vulkan/Extensions/VK_GGP_stream_descriptor_surface.hs
--- a/src/Vulkan/Extensions/VK_GGP_stream_descriptor_surface.hs
+++ b/src/Vulkan/Extensions/VK_GGP_stream_descriptor_surface.hs
@@ -146,6 +146,12 @@
 import Numeric (showHex)
 import Control.Monad.Trans.Class (lift)
 import Control.Monad.Trans.Cont (evalContT)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero)
+import Vulkan.Zero (Zero(..))
 import Control.Monad.IO.Class (MonadIO)
 import Data.Bits (Bits)
 import Data.Bits (FiniteBits)
@@ -168,8 +174,6 @@
 import Vulkan.NamedType ((:::))
 import Vulkan.Core10.AllocationCallbacks (AllocationCallbacks)
 import Vulkan.Core10.FundamentalTypes (Flags)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Handles (Instance)
 import Vulkan.Core10.Handles (Instance(..))
 import Vulkan.Dynamic (InstanceCmds(pVkCreateStreamDescriptorSurfaceGGP))
@@ -179,11 +183,7 @@
 import Vulkan.Core10.Enums.StructureType (StructureType)
 import Vulkan.Extensions.Handles (SurfaceKHR)
 import Vulkan.Extensions.Handles (SurfaceKHR(..))
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
 import Vulkan.Exception (VulkanException(..))
-import Vulkan.Zero (Zero)
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP))
 import Vulkan.Core10.Enums.Result (Result(SUCCESS))
 import Vulkan.Extensions.Handles (SurfaceKHR(..))
diff --git a/src/Vulkan/Extensions/VK_GGP_stream_descriptor_surface.hs-boot b/src/Vulkan/Extensions/VK_GGP_stream_descriptor_surface.hs-boot
--- a/src/Vulkan/Extensions/VK_GGP_stream_descriptor_surface.hs-boot
+++ b/src/Vulkan/Extensions/VK_GGP_stream_descriptor_surface.hs-boot
@@ -119,9 +119,10 @@
 -- the generator scripts, not directly.
 module Vulkan.Extensions.VK_GGP_stream_descriptor_surface  (StreamDescriptorSurfaceCreateInfoGGP) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data StreamDescriptorSurfaceCreateInfoGGP
 
 instance ToCStruct StreamDescriptorSurfaceCreateInfoGGP
diff --git a/src/Vulkan/Extensions/VK_GOOGLE_display_timing.hs b/src/Vulkan/Extensions/VK_GOOGLE_display_timing.hs
--- a/src/Vulkan/Extensions/VK_GOOGLE_display_timing.hs
+++ b/src/Vulkan/Extensions/VK_GOOGLE_display_timing.hs
@@ -153,6 +153,11 @@
 import qualified Data.Vector (imapM_)
 import qualified Data.Vector (length)
 import qualified Data.Vector (null)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
 import Control.Monad.IO.Class (MonadIO)
 import Data.String (IsString)
 import Data.Typeable (Typeable)
@@ -177,17 +182,12 @@
 import Vulkan.Dynamic (DeviceCmds(pVkGetPastPresentationTimingGOOGLE))
 import Vulkan.Dynamic (DeviceCmds(pVkGetRefreshCycleDurationGOOGLE))
 import Vulkan.Core10.Handles (Device_T)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Enums.Result (Result)
 import Vulkan.Core10.Enums.Result (Result(..))
 import Vulkan.Core10.Enums.StructureType (StructureType)
 import Vulkan.Extensions.Handles (SwapchainKHR)
 import Vulkan.Extensions.Handles (SwapchainKHR(..))
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
 import Vulkan.Exception (VulkanException(..))
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE))
 import Vulkan.Core10.Enums.Result (Result(SUCCESS))
 import Vulkan.Extensions.Handles (SwapchainKHR(..))
diff --git a/src/Vulkan/Extensions/VK_GOOGLE_display_timing.hs-boot b/src/Vulkan/Extensions/VK_GOOGLE_display_timing.hs-boot
--- a/src/Vulkan/Extensions/VK_GOOGLE_display_timing.hs-boot
+++ b/src/Vulkan/Extensions/VK_GOOGLE_display_timing.hs-boot
@@ -128,9 +128,10 @@
                                                    , RefreshCycleDurationGOOGLE
                                                    ) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data PastPresentationTimingGOOGLE
 
 instance ToCStruct PastPresentationTimingGOOGLE
diff --git a/src/Vulkan/Extensions/VK_INTEL_performance_query.hs b/src/Vulkan/Extensions/VK_INTEL_performance_query.hs
--- a/src/Vulkan/Extensions/VK_INTEL_performance_query.hs
+++ b/src/Vulkan/Extensions/VK_INTEL_performance_query.hs
@@ -379,14 +379,22 @@
 import GHC.Show (showsPrec)
 import Data.ByteString (packCString)
 import Data.ByteString (useAsCString)
+import Data.Coerce (coerce)
 import Control.Monad.Trans.Class (lift)
 import Control.Monad.Trans.Cont (evalContT)
 import Control.Monad.Trans.Cont (runContT)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero)
+import Vulkan.Zero (Zero(..))
 import Control.Monad.IO.Class (MonadIO)
 import Data.String (IsString)
 import Data.Typeable (Typeable)
 import Foreign.C.Types (CChar)
 import Foreign.C.Types (CFloat)
+import Foreign.C.Types (CFloat(..))
 import Foreign.C.Types (CFloat(CFloat))
 import Foreign.Storable (Storable)
 import Foreign.Storable (Storable(peek))
@@ -424,8 +432,6 @@
 import Vulkan.Dynamic (DeviceCmds(pVkReleasePerformanceConfigurationINTEL))
 import Vulkan.Dynamic (DeviceCmds(pVkUninitializePerformanceApiINTEL))
 import Vulkan.Core10.Handles (Device_T)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Extensions.Handles (PerformanceConfigurationINTEL)
 import Vulkan.Extensions.Handles (PerformanceConfigurationINTEL(..))
 import Vulkan.Core10.Handles (Queue)
@@ -434,11 +440,7 @@
 import Vulkan.Core10.Enums.Result (Result)
 import Vulkan.Core10.Enums.Result (Result(..))
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
 import Vulkan.Exception (VulkanException(..))
-import Vulkan.Zero (Zero)
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTEL))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PERFORMANCE_MARKER_INFO_INTEL))
@@ -1462,7 +1464,7 @@
   PERFORMANCE_VALUE_TYPE_UINT64_INTEL -> Value64 <$> (peek @Word64 (castPtr @_ @Word64 p))
   PERFORMANCE_VALUE_TYPE_FLOAT_INTEL -> ValueFloat <$> (do
     valueFloat <- peek @CFloat (castPtr @_ @CFloat p)
-    pure $ (\(CFloat a) -> a) valueFloat)
+    pure $ coerce @CFloat @Float valueFloat)
   PERFORMANCE_VALUE_TYPE_BOOL_INTEL -> ValueBool <$> (do
     valueBool <- peek @Bool32 (castPtr @_ @Bool32 p)
     pure $ bool32ToBool valueBool)
diff --git a/src/Vulkan/Extensions/VK_INTEL_performance_query.hs-boot b/src/Vulkan/Extensions/VK_INTEL_performance_query.hs-boot
--- a/src/Vulkan/Extensions/VK_INTEL_performance_query.hs-boot
+++ b/src/Vulkan/Extensions/VK_INTEL_performance_query.hs-boot
@@ -323,9 +323,10 @@
                                                      , PerformanceParameterTypeINTEL
                                                      ) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data InitializePerformanceApiInfoINTEL
 
 instance ToCStruct InitializePerformanceApiInfoINTEL
diff --git a/src/Vulkan/Extensions/VK_INTEL_shader_integer_functions2.hs b/src/Vulkan/Extensions/VK_INTEL_shader_integer_functions2.hs
--- a/src/Vulkan/Extensions/VK_INTEL_shader_integer_functions2.hs
+++ b/src/Vulkan/Extensions/VK_INTEL_shader_integer_functions2.hs
@@ -73,7 +73,7 @@
 --
 -- == New SPIR-V Capabilities
 --
--- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-cooperativeMatrix IntegerFunctions2INTEL>
+-- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-IntegerFunctions2INTEL IntegerFunctions2INTEL>
 --
 -- == Version History
 --
@@ -102,6 +102,11 @@
 import Foreign.Marshal.Alloc (allocaBytesAligned)
 import Foreign.Ptr (nullPtr)
 import Foreign.Ptr (plusPtr)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
 import Data.String (IsString)
 import Data.Typeable (Typeable)
 import Foreign.Storable (Storable)
@@ -114,12 +119,7 @@
 import Vulkan.Core10.FundamentalTypes (bool32ToBool)
 import Vulkan.Core10.FundamentalTypes (boolToBool32)
 import Vulkan.Core10.FundamentalTypes (Bool32)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL))
 -- | VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL - Structure
 -- describing shader integer functions that can be supported by an
diff --git a/src/Vulkan/Extensions/VK_INTEL_shader_integer_functions2.hs-boot b/src/Vulkan/Extensions/VK_INTEL_shader_integer_functions2.hs-boot
--- a/src/Vulkan/Extensions/VK_INTEL_shader_integer_functions2.hs-boot
+++ b/src/Vulkan/Extensions/VK_INTEL_shader_integer_functions2.hs-boot
@@ -73,7 +73,7 @@
 --
 -- == New SPIR-V Capabilities
 --
--- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-cooperativeMatrix IntegerFunctions2INTEL>
+-- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-IntegerFunctions2INTEL IntegerFunctions2INTEL>
 --
 -- == Version History
 --
@@ -94,9 +94,10 @@
 -- the generator scripts, not directly.
 module Vulkan.Extensions.VK_INTEL_shader_integer_functions2  (PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL
 
 instance ToCStruct PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL
diff --git a/src/Vulkan/Extensions/VK_KHR_16bit_storage.hs b/src/Vulkan/Extensions/VK_KHR_16bit_storage.hs
--- a/src/Vulkan/Extensions/VK_KHR_16bit_storage.hs
+++ b/src/Vulkan/Extensions/VK_KHR_16bit_storage.hs
@@ -111,13 +111,13 @@
 --
 -- == New SPIR-V Capabilities
 --
--- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-16bitstorage StorageBuffer16BitAccess>
+-- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-StorageBuffer16BitAccess StorageBuffer16BitAccess>
 --
--- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-16bitstorage UniformAndStorageBuffer16BitAccess>
+-- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-UniformAndStorageBuffer16BitAccess UniformAndStorageBuffer16BitAccess>
 --
--- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-16bitstorage StoragePushConstant16>
+-- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-StoragePushConstant16 StoragePushConstant16>
 --
--- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-16bitstorage StorageInputOutput16>
+-- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-StorageInputOutput16 StorageInputOutput16>
 --
 -- == Version History
 --
diff --git a/src/Vulkan/Extensions/VK_KHR_8bit_storage.hs b/src/Vulkan/Extensions/VK_KHR_8bit_storage.hs
--- a/src/Vulkan/Extensions/VK_KHR_8bit_storage.hs
+++ b/src/Vulkan/Extensions/VK_KHR_8bit_storage.hs
@@ -97,11 +97,11 @@
 --
 -- == New SPIR-V Capabilities
 --
--- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-8bitstorage StorageBuffer8BitAccess>
+-- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-StorageBuffer8BitAccess StorageBuffer8BitAccess>
 --
--- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-8bitstorage UniformAndStorageBuffer8BitAccess>
+-- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-UniformAndStorageBuffer8BitAccess UniformAndStorageBuffer8BitAccess>
 --
--- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-8bitstorage StoragePushConstant8>
+-- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-StoragePushConstant8 StoragePushConstant8>
 --
 -- == Version History
 --
diff --git a/src/Vulkan/Extensions/VK_KHR_acceleration_structure.hs b/src/Vulkan/Extensions/VK_KHR_acceleration_structure.hs
--- a/src/Vulkan/Extensions/VK_KHR_acceleration_structure.hs
+++ b/src/Vulkan/Extensions/VK_KHR_acceleration_structure.hs
@@ -1268,6 +1268,12 @@
 import qualified Data.Vector (length)
 import qualified Data.Vector (null)
 import Foreign.C.Types (CSize(..))
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero)
+import Vulkan.Zero (Zero(..))
 import Control.Monad.IO.Class (MonadIO)
 import Data.Bits (Bits)
 import Data.Bits (FiniteBits)
@@ -1275,6 +1281,7 @@
 import Data.Typeable (Typeable)
 import Foreign.C.Types (CChar)
 import Foreign.C.Types (CFloat)
+import Foreign.C.Types (CFloat(..))
 import Foreign.C.Types (CFloat(CFloat))
 import Foreign.C.Types (CSize)
 import Foreign.C.Types (CSize(CSize))
@@ -1335,8 +1342,6 @@
 import Vulkan.Core10.Handles (Device_T)
 import Vulkan.Core10.FundamentalTypes (Flags)
 import Vulkan.Core10.Enums.Format (Format)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Enums.IndexType (IndexType)
 import Vulkan.Core10.Handles (QueryPool)
 import Vulkan.Core10.Handles (QueryPool(..))
@@ -1345,11 +1350,7 @@
 import Vulkan.Core10.Enums.Result (Result)
 import Vulkan.Core10.Enums.Result (Result(..))
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
 import Vulkan.Exception (VulkanException(..))
-import Vulkan.Zero (Zero)
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_SIZES_INFO_KHR))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHR))
@@ -2672,6 +2673,22 @@
 --
 -- == Valid Usage
 --
+-- -   #VUID-vkCmdBuildAccelerationStructuresKHR-mode-04628# The @mode@
+--     member of each element of @pInfos@ /must/ be a valid
+--     'BuildAccelerationStructureModeKHR' value
+--
+-- -   #VUID-vkCmdBuildAccelerationStructuresKHR-srcAccelerationStructure-04629#
+--     If the @srcAccelerationStructure@ member of any element of @pInfos@
+--     is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the
+--     @srcAccelerationStructure@ member /must/ be a valid
+--     'Vulkan.Extensions.Handles.AccelerationStructureKHR' handle
+--
+-- -   #VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-04630# For each
+--     element of @pInfos@, if its @mode@ member is
+--     'BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR', its
+--     @srcAccelerationStructure@ member /must/ not be
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE'
+--
 -- -   #VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03403# The
 --     @srcAccelerationStructure@ member of any element of @pInfos@ /must/
 --     not be the same acceleration structure as the
@@ -3225,6 +3242,22 @@
 --
 -- == Valid Usage
 --
+-- -   #VUID-vkCmdBuildAccelerationStructuresIndirectKHR-mode-04628# The
+--     @mode@ member of each element of @pInfos@ /must/ be a valid
+--     'BuildAccelerationStructureModeKHR' value
+--
+-- -   #VUID-vkCmdBuildAccelerationStructuresIndirectKHR-srcAccelerationStructure-04629#
+--     If the @srcAccelerationStructure@ member of any element of @pInfos@
+--     is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the
+--     @srcAccelerationStructure@ member /must/ be a valid
+--     'Vulkan.Extensions.Handles.AccelerationStructureKHR' handle
+--
+-- -   #VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-04630# For
+--     each element of @pInfos@, if its @mode@ member is
+--     'BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR', its
+--     @srcAccelerationStructure@ member /must/ not be
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE'
+--
 -- -   #VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03403# The
 --     @srcAccelerationStructure@ member of any element of @pInfos@ /must/
 --     not be the same acceleration structure as the
@@ -3857,6 +3890,22 @@
 --
 -- == Valid Usage
 --
+-- -   #VUID-vkBuildAccelerationStructuresKHR-mode-04628# The @mode@ member
+--     of each element of @pInfos@ /must/ be a valid
+--     'BuildAccelerationStructureModeKHR' value
+--
+-- -   #VUID-vkBuildAccelerationStructuresKHR-srcAccelerationStructure-04629#
+--     If the @srcAccelerationStructure@ member of any element of @pInfos@
+--     is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the
+--     @srcAccelerationStructure@ member /must/ be a valid
+--     'Vulkan.Extensions.Handles.AccelerationStructureKHR' handle
+--
+-- -   #VUID-vkBuildAccelerationStructuresKHR-pInfos-04630# For each
+--     element of @pInfos@, if its @mode@ member is
+--     'BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR', its
+--     @srcAccelerationStructure@ member /must/ not be
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE'
+--
 -- -   #VUID-vkBuildAccelerationStructuresKHR-pInfos-03403# The
 --     @srcAccelerationStructure@ member of any element of @pInfos@ /must/
 --     not be the same acceleration structure as the
@@ -4429,7 +4478,7 @@
 --         given index, with a @geometryType@ member equal to
 --         'GEOMETRY_TYPE_TRIANGLES_KHR', if the applicable address in the
 --         @transformData@ member of @geometry.triangles@ is not @NULL@,
---         the corresponding @transformData.pname@:hostAddress parameter in
+--         the corresponding @transformData.hostAddress@ parameter in
 --         @pBuildInfo@ is not @NULL@.
 --
 -- -   For each 'AccelerationStructureBuildRangeInfoKHR' corresponding to
@@ -5292,21 +5341,6 @@
 --     @flags@ /must/ be a valid combination of
 --     'BuildAccelerationStructureFlagBitsKHR' values
 --
--- -   #VUID-VkAccelerationStructureBuildGeometryInfoKHR-mode-parameter#
---     @mode@ /must/ be a valid 'BuildAccelerationStructureModeKHR' value
---
--- -   #VUID-VkAccelerationStructureBuildGeometryInfoKHR-srcAccelerationStructure-parameter#
---     If @srcAccelerationStructure@ is not
---     'Vulkan.Core10.APIConstants.NULL_HANDLE', @srcAccelerationStructure@
---     /must/ be a valid
---     'Vulkan.Extensions.Handles.AccelerationStructureKHR' handle
---
--- -   #VUID-VkAccelerationStructureBuildGeometryInfoKHR-dstAccelerationStructure-parameter#
---     If @dstAccelerationStructure@ is not
---     'Vulkan.Core10.APIConstants.NULL_HANDLE', @dstAccelerationStructure@
---     /must/ be a valid
---     'Vulkan.Extensions.Handles.AccelerationStructureKHR' handle
---
 -- -   #VUID-VkAccelerationStructureBuildGeometryInfoKHR-pGeometries-parameter#
 --     If @geometryCount@ is not @0@, and @pGeometries@ is not @NULL@,
 --     @pGeometries@ /must/ be a valid pointer to an array of
@@ -5811,7 +5845,7 @@
     maxY <- peek @CFloat ((p `plusPtr` 16 :: Ptr CFloat))
     maxZ <- peek @CFloat ((p `plusPtr` 20 :: Ptr CFloat))
     pure $ AabbPositionsKHR
-             ((\(CFloat a) -> a) minX) ((\(CFloat a) -> a) minY) ((\(CFloat a) -> a) minZ) ((\(CFloat a) -> a) maxX) ((\(CFloat a) -> a) maxY) ((\(CFloat a) -> a) maxZ)
+             (coerce @CFloat @Float minX) (coerce @CFloat @Float minY) (coerce @CFloat @Float minZ) (coerce @CFloat @Float maxX) (coerce @CFloat @Float maxY) (coerce @CFloat @Float maxZ)
 
 instance Storable AabbPositionsKHR where
   sizeOf ~_ = 24
@@ -5923,7 +5957,7 @@
     matrixRow22 <- peek @CFloat ((pmatrixRow2 `advancePtrBytes` 8 :: Ptr CFloat))
     matrixRow23 <- peek @CFloat ((pmatrixRow2 `advancePtrBytes` 12 :: Ptr CFloat))
     pure $ TransformMatrixKHR
-             ((((\(CFloat a) -> a) matrixRow00), ((\(CFloat a) -> a) matrixRow01), ((\(CFloat a) -> a) matrixRow02), ((\(CFloat a) -> a) matrixRow03))) ((((\(CFloat a) -> a) matrixRow10), ((\(CFloat a) -> a) matrixRow11), ((\(CFloat a) -> a) matrixRow12), ((\(CFloat a) -> a) matrixRow13))) ((((\(CFloat a) -> a) matrixRow20), ((\(CFloat a) -> a) matrixRow21), ((\(CFloat a) -> a) matrixRow22), ((\(CFloat a) -> a) matrixRow23)))
+             (((coerce @CFloat @Float matrixRow00), (coerce @CFloat @Float matrixRow01), (coerce @CFloat @Float matrixRow02), (coerce @CFloat @Float matrixRow03))) (((coerce @CFloat @Float matrixRow10), (coerce @CFloat @Float matrixRow11), (coerce @CFloat @Float matrixRow12), (coerce @CFloat @Float matrixRow13))) (((coerce @CFloat @Float matrixRow20), (coerce @CFloat @Float matrixRow21), (coerce @CFloat @Float matrixRow22), (coerce @CFloat @Float matrixRow23)))
 
 instance Storable TransformMatrixKHR where
   sizeOf ~_ = 48
diff --git a/src/Vulkan/Extensions/VK_KHR_acceleration_structure.hs-boot b/src/Vulkan/Extensions/VK_KHR_acceleration_structure.hs-boot
--- a/src/Vulkan/Extensions/VK_KHR_acceleration_structure.hs-boot
+++ b/src/Vulkan/Extensions/VK_KHR_acceleration_structure.hs-boot
@@ -1164,9 +1164,10 @@
                                                         , GeometryTypeKHR
                                                         ) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data AabbPositionsKHR
 
 instance ToCStruct AabbPositionsKHR
diff --git a/src/Vulkan/Extensions/VK_KHR_android_surface.hs b/src/Vulkan/Extensions/VK_KHR_android_surface.hs
--- a/src/Vulkan/Extensions/VK_KHR_android_surface.hs
+++ b/src/Vulkan/Extensions/VK_KHR_android_surface.hs
@@ -188,6 +188,12 @@
 import Numeric (showHex)
 import Control.Monad.Trans.Class (lift)
 import Control.Monad.Trans.Cont (evalContT)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero)
+import Vulkan.Zero (Zero(..))
 import Control.Monad.IO.Class (MonadIO)
 import Data.Bits (Bits)
 import Data.Bits (FiniteBits)
@@ -209,8 +215,6 @@
 import Vulkan.NamedType ((:::))
 import Vulkan.Core10.AllocationCallbacks (AllocationCallbacks)
 import Vulkan.Core10.FundamentalTypes (Flags)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Handles (Instance)
 import Vulkan.Core10.Handles (Instance(..))
 import Vulkan.Dynamic (InstanceCmds(pVkCreateAndroidSurfaceKHR))
@@ -220,11 +224,7 @@
 import Vulkan.Core10.Enums.StructureType (StructureType)
 import Vulkan.Extensions.Handles (SurfaceKHR)
 import Vulkan.Extensions.Handles (SurfaceKHR(..))
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
 import Vulkan.Exception (VulkanException(..))
-import Vulkan.Zero (Zero)
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR))
 import Vulkan.Core10.Enums.Result (Result(SUCCESS))
 import Vulkan.Extensions.Handles (SurfaceKHR(..))
diff --git a/src/Vulkan/Extensions/VK_KHR_android_surface.hs-boot b/src/Vulkan/Extensions/VK_KHR_android_surface.hs-boot
--- a/src/Vulkan/Extensions/VK_KHR_android_surface.hs-boot
+++ b/src/Vulkan/Extensions/VK_KHR_android_surface.hs-boot
@@ -161,9 +161,10 @@
 -- the generator scripts, not directly.
 module Vulkan.Extensions.VK_KHR_android_surface  (AndroidSurfaceCreateInfoKHR) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data AndroidSurfaceCreateInfoKHR
 
 instance ToCStruct AndroidSurfaceCreateInfoKHR
diff --git a/src/Vulkan/Extensions/VK_KHR_buffer_device_address.hs b/src/Vulkan/Extensions/VK_KHR_buffer_device_address.hs
--- a/src/Vulkan/Extensions/VK_KHR_buffer_device_address.hs
+++ b/src/Vulkan/Extensions/VK_KHR_buffer_device_address.hs
@@ -195,7 +195,7 @@
 --
 -- == New SPIR-V Capabilities
 --
--- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-physicalstoragebufferaddresses PhysicalStorageBufferAddresses>
+-- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-PhysicalStorageBufferAddresses PhysicalStorageBufferAddresses>
 --
 -- == Version History
 --
diff --git a/src/Vulkan/Extensions/VK_KHR_copy_commands2.hs b/src/Vulkan/Extensions/VK_KHR_copy_commands2.hs
--- a/src/Vulkan/Extensions/VK_KHR_copy_commands2.hs
+++ b/src/Vulkan/Extensions/VK_KHR_copy_commands2.hs
@@ -190,6 +190,11 @@
 import Data.Vector (generateM)
 import qualified Data.Vector (imapM_)
 import qualified Data.Vector (length)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
 import Control.Monad.IO.Class (MonadIO)
 import Data.String (IsString)
 import Data.Type.Equality ((:~:)(Refl))
@@ -230,8 +235,6 @@
 import Vulkan.CStruct.Extends (Extensible(..))
 import Vulkan.Core10.FundamentalTypes (Extent3D)
 import Vulkan.Core10.Enums.Filter (Filter)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Handles (Image)
 import Vulkan.Core10.Enums.ImageLayout (ImageLayout)
 import Vulkan.Core10.CommandBufferBuilding (ImageSubresourceLayers)
@@ -242,9 +245,6 @@
 import Vulkan.CStruct.Extends (PokeChain(..))
 import Vulkan.CStruct.Extends (SomeStruct)
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_BLIT_IMAGE_INFO_2_KHR))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_BUFFER_COPY_2_KHR))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2_KHR))
@@ -1048,7 +1048,7 @@
 deriving instance Show (Chain es) => Show (ImageBlit2KHR es)
 
 instance Extensible ImageBlit2KHR where
-  extensibleType = STRUCTURE_TYPE_IMAGE_BLIT_2_KHR
+  extensibleTypeName = "ImageBlit2KHR"
   setNext x next = x{next = next}
   getNext ImageBlit2KHR{..} = next
   extends :: forall e b proxy. Typeable e => proxy e -> (Extends ImageBlit2KHR e => b) -> Maybe b
@@ -1199,7 +1199,7 @@
 deriving instance Show (Chain es) => Show (BufferImageCopy2KHR es)
 
 instance Extensible BufferImageCopy2KHR where
-  extensibleType = STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2_KHR
+  extensibleTypeName = "BufferImageCopy2KHR"
   setNext x next = x{next = next}
   getNext BufferImageCopy2KHR{..} = next
   extends :: forall e b proxy. Typeable e => proxy e -> (Extends BufferImageCopy2KHR e => b) -> Maybe b
@@ -2251,7 +2251,7 @@
     dstImage <- peek @Image ((p `plusPtr` 32 :: Ptr Image))
     dstImageLayout <- peek @ImageLayout ((p `plusPtr` 40 :: Ptr ImageLayout))
     regionCount <- peek @Word32 ((p `plusPtr` 44 :: Ptr Word32))
-    pRegions <- peek @(Ptr (ImageBlit2KHR _)) ((p `plusPtr` 48 :: Ptr (Ptr (ImageBlit2KHR a))))
+    pRegions <- peek @(Ptr (ImageBlit2KHR _)) ((p `plusPtr` 48 :: Ptr (Ptr (ImageBlit2KHR _))))
     pRegions' <- generateM (fromIntegral regionCount) (\i -> peekSomeCStruct (forgetExtensions ((pRegions `advancePtrBytes` (96 * (i)) :: Ptr (ImageBlit2KHR _)))))
     filter' <- peek @Filter ((p `plusPtr` 56 :: Ptr Filter))
     pure $ BlitImageInfo2KHR
@@ -2602,7 +2602,7 @@
     dstImage <- peek @Image ((p `plusPtr` 24 :: Ptr Image))
     dstImageLayout <- peek @ImageLayout ((p `plusPtr` 32 :: Ptr ImageLayout))
     regionCount <- peek @Word32 ((p `plusPtr` 36 :: Ptr Word32))
-    pRegions <- peek @(Ptr (BufferImageCopy2KHR _)) ((p `plusPtr` 40 :: Ptr (Ptr (BufferImageCopy2KHR a))))
+    pRegions <- peek @(Ptr (BufferImageCopy2KHR _)) ((p `plusPtr` 40 :: Ptr (Ptr (BufferImageCopy2KHR _))))
     pRegions' <- generateM (fromIntegral regionCount) (\i -> peekSomeCStruct (forgetExtensions ((pRegions `advancePtrBytes` (72 * (i)) :: Ptr (BufferImageCopy2KHR _)))))
     pure $ CopyBufferToImageInfo2KHR
              srcBuffer dstImage dstImageLayout pRegions'
@@ -2942,7 +2942,7 @@
     srcImageLayout <- peek @ImageLayout ((p `plusPtr` 24 :: Ptr ImageLayout))
     dstBuffer <- peek @Buffer ((p `plusPtr` 32 :: Ptr Buffer))
     regionCount <- peek @Word32 ((p `plusPtr` 40 :: Ptr Word32))
-    pRegions <- peek @(Ptr (BufferImageCopy2KHR _)) ((p `plusPtr` 48 :: Ptr (Ptr (BufferImageCopy2KHR a))))
+    pRegions <- peek @(Ptr (BufferImageCopy2KHR _)) ((p `plusPtr` 48 :: Ptr (Ptr (BufferImageCopy2KHR _))))
     pRegions' <- generateM (fromIntegral regionCount) (\i -> peekSomeCStruct (forgetExtensions ((pRegions `advancePtrBytes` (72 * (i)) :: Ptr (BufferImageCopy2KHR _)))))
     pure $ CopyImageToBufferInfo2KHR
              srcImage srcImageLayout dstBuffer pRegions'
diff --git a/src/Vulkan/Extensions/VK_KHR_copy_commands2.hs-boot b/src/Vulkan/Extensions/VK_KHR_copy_commands2.hs-boot
--- a/src/Vulkan/Extensions/VK_KHR_copy_commands2.hs-boot
+++ b/src/Vulkan/Extensions/VK_KHR_copy_commands2.hs-boot
@@ -164,13 +164,13 @@
                                                 , ResolveImageInfo2KHR
                                                 ) where
 
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (ToCStruct)
 import Data.Kind (Type)
 import {-# SOURCE #-} Vulkan.CStruct.Extends (Chain)
 import {-# SOURCE #-} Vulkan.CStruct.Extends (Extendss)
-import Vulkan.CStruct (FromCStruct)
 import {-# SOURCE #-} Vulkan.CStruct.Extends (PeekChain)
 import {-# SOURCE #-} Vulkan.CStruct.Extends (PokeChain)
-import Vulkan.CStruct (ToCStruct)
 data BlitImageInfo2KHR
 
 instance ToCStruct BlitImageInfo2KHR
diff --git a/src/Vulkan/Extensions/VK_KHR_deferred_host_operations.hs b/src/Vulkan/Extensions/VK_KHR_deferred_host_operations.hs
--- a/src/Vulkan/Extensions/VK_KHR_deferred_host_operations.hs
+++ b/src/Vulkan/Extensions/VK_KHR_deferred_host_operations.hs
@@ -258,6 +258,7 @@
 import Foreign.Ptr (nullPtr)
 import Control.Monad.Trans.Class (lift)
 import Control.Monad.Trans.Cont (evalContT)
+import Vulkan.CStruct (ToCStruct(..))
 import Control.Monad.IO.Class (MonadIO)
 import Data.String (IsString)
 import Foreign.Storable (Storable(peek))
@@ -281,7 +282,6 @@
 import Vulkan.Core10.Handles (Device_T)
 import Vulkan.Core10.Enums.Result (Result)
 import Vulkan.Core10.Enums.Result (Result(..))
-import Vulkan.CStruct (ToCStruct(..))
 import Vulkan.Exception (VulkanException(..))
 import Vulkan.Core10.Enums.Result (Result(SUCCESS))
 import Vulkan.Extensions.Handles (DeferredOperationKHR(..))
diff --git a/src/Vulkan/Extensions/VK_KHR_device_group.hs b/src/Vulkan/Extensions/VK_KHR_device_group.hs
--- a/src/Vulkan/Extensions/VK_KHR_device_group.hs
+++ b/src/Vulkan/Extensions/VK_KHR_device_group.hs
@@ -320,7 +320,7 @@
 --
 -- == New SPIR-V Capabilities
 --
--- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities DeviceGroup>
+-- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-DeviceGroup DeviceGroup>
 --
 -- == Version History
 --
diff --git a/src/Vulkan/Extensions/VK_KHR_display.hs b/src/Vulkan/Extensions/VK_KHR_display.hs
--- a/src/Vulkan/Extensions/VK_KHR_display.hs
+++ b/src/Vulkan/Extensions/VK_KHR_display.hs
@@ -564,9 +564,16 @@
 import Numeric (showHex)
 import Data.ByteString (packCString)
 import Data.ByteString (useAsCString)
+import Data.Coerce (coerce)
 import Control.Monad.Trans.Class (lift)
 import Control.Monad.Trans.Cont (evalContT)
 import Data.Vector (generateM)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero)
+import Vulkan.Zero (Zero(..))
 import Control.Monad.IO.Class (MonadIO)
 import Data.Bits (Bits)
 import Data.Bits (FiniteBits)
@@ -574,6 +581,7 @@
 import Data.Typeable (Typeable)
 import Foreign.C.Types (CChar)
 import Foreign.C.Types (CFloat)
+import Foreign.C.Types (CFloat(..))
 import Foreign.C.Types (CFloat(CFloat))
 import Foreign.Storable (Storable)
 import Foreign.Storable (Storable(peek))
@@ -603,8 +611,6 @@
 import Vulkan.Extensions.Handles (DisplayModeKHR(..))
 import Vulkan.Core10.FundamentalTypes (Extent2D)
 import Vulkan.Core10.FundamentalTypes (Flags)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Handles (Instance)
 import Vulkan.Core10.Handles (Instance(..))
 import Vulkan.Dynamic (InstanceCmds(pVkCreateDisplayModeKHR))
@@ -626,11 +632,7 @@
 import Vulkan.Extensions.Handles (SurfaceKHR(..))
 import Vulkan.Extensions.VK_KHR_surface (SurfaceTransformFlagBitsKHR)
 import Vulkan.Extensions.VK_KHR_surface (SurfaceTransformFlagsKHR)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
 import Vulkan.Exception (VulkanException(..))
-import Vulkan.Zero (Zero)
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR))
 import Vulkan.Core10.Enums.Result (Result(SUCCESS))
@@ -1741,7 +1743,7 @@
 --     to @displayMode@
 --
 -- -   #VUID-VkDisplaySurfaceCreateInfoKHR-width-01256# The @width@ and
---     @height@ members of @imageExtent@ /must/ be less than
+--     @height@ members of @imageExtent@ /must/ be less than or equal to
 --     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxImageDimension2D@
 --
 -- == Valid Usage (Implicit)
@@ -1844,7 +1846,7 @@
     alphaMode <- peek @DisplayPlaneAlphaFlagBitsKHR ((p `plusPtr` 48 :: Ptr DisplayPlaneAlphaFlagBitsKHR))
     imageExtent <- peekCStruct @Extent2D ((p `plusPtr` 52 :: Ptr Extent2D))
     pure $ DisplaySurfaceCreateInfoKHR
-             flags displayMode planeIndex planeStackIndex transform ((\(CFloat a) -> a) globalAlpha) alphaMode imageExtent
+             flags displayMode planeIndex planeStackIndex transform (coerce @CFloat @Float globalAlpha) alphaMode imageExtent
 
 instance Storable DisplaySurfaceCreateInfoKHR where
   sizeOf ~_ = 64
diff --git a/src/Vulkan/Extensions/VK_KHR_display.hs-boot b/src/Vulkan/Extensions/VK_KHR_display.hs-boot
--- a/src/Vulkan/Extensions/VK_KHR_display.hs-boot
+++ b/src/Vulkan/Extensions/VK_KHR_display.hs-boot
@@ -521,9 +521,10 @@
                                          , DisplaySurfaceCreateInfoKHR
                                          ) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data DisplayModeCreateInfoKHR
 
 instance ToCStruct DisplayModeCreateInfoKHR
diff --git a/src/Vulkan/Extensions/VK_KHR_display_swapchain.hs b/src/Vulkan/Extensions/VK_KHR_display_swapchain.hs
--- a/src/Vulkan/Extensions/VK_KHR_display_swapchain.hs
+++ b/src/Vulkan/Extensions/VK_KHR_display_swapchain.hs
@@ -239,6 +239,11 @@
 import Data.Vector (generateM)
 import qualified Data.Vector (imapM_)
 import qualified Data.Vector (length)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
 import Control.Monad.IO.Class (MonadIO)
 import Data.String (IsString)
 import Data.Typeable (Typeable)
@@ -267,8 +272,6 @@
 import Vulkan.Core10.Handles (Device(..))
 import Vulkan.Dynamic (DeviceCmds(pVkCreateSharedSwapchainsKHR))
 import Vulkan.Core10.Handles (Device_T)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.FundamentalTypes (Rect2D)
 import Vulkan.Core10.Enums.Result (Result)
 import Vulkan.Core10.Enums.Result (Result(..))
@@ -277,10 +280,7 @@
 import Vulkan.Extensions.VK_KHR_swapchain (SwapchainCreateInfoKHR)
 import Vulkan.Extensions.Handles (SwapchainKHR)
 import Vulkan.Extensions.Handles (SwapchainKHR(..))
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
 import Vulkan.Exception (VulkanException(..))
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR))
 import Vulkan.Core10.Enums.Result (Result(SUCCESS))
 import Vulkan.Extensions.VK_KHR_surface (ColorSpaceKHR(..))
diff --git a/src/Vulkan/Extensions/VK_KHR_display_swapchain.hs-boot b/src/Vulkan/Extensions/VK_KHR_display_swapchain.hs-boot
--- a/src/Vulkan/Extensions/VK_KHR_display_swapchain.hs-boot
+++ b/src/Vulkan/Extensions/VK_KHR_display_swapchain.hs-boot
@@ -205,9 +205,10 @@
 -- the generator scripts, not directly.
 module Vulkan.Extensions.VK_KHR_display_swapchain  (DisplayPresentInfoKHR) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data DisplayPresentInfoKHR
 
 instance ToCStruct DisplayPresentInfoKHR
diff --git a/src/Vulkan/Extensions/VK_KHR_external_fence_fd.hs b/src/Vulkan/Extensions/VK_KHR_external_fence_fd.hs
--- a/src/Vulkan/Extensions/VK_KHR_external_fence_fd.hs
+++ b/src/Vulkan/Extensions/VK_KHR_external_fence_fd.hs
@@ -125,13 +125,20 @@
 import GHC.Ptr (nullFunPtr)
 import Foreign.Ptr (nullPtr)
 import Foreign.Ptr (plusPtr)
+import Data.Coerce (coerce)
 import Control.Monad.Trans.Class (lift)
 import Control.Monad.Trans.Cont (evalContT)
 import Foreign.C.Types (CInt(..))
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
 import Control.Monad.IO.Class (MonadIO)
 import Data.String (IsString)
 import Data.Typeable (Typeable)
 import Foreign.C.Types (CInt)
+import Foreign.C.Types (CInt(..))
 import Foreign.C.Types (CInt(CInt))
 import Foreign.Storable (Storable)
 import Foreign.Storable (Storable(peek))
@@ -154,15 +161,10 @@
 import Vulkan.Core11.Enums.ExternalFenceHandleTypeFlagBits (ExternalFenceHandleTypeFlagBits)
 import Vulkan.Core10.Handles (Fence)
 import Vulkan.Core11.Enums.FenceImportFlagBits (FenceImportFlags)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Enums.Result (Result)
 import Vulkan.Core10.Enums.Result (Result(..))
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
 import Vulkan.Exception (VulkanException(..))
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR))
 import Vulkan.Core10.Enums.Result (Result(SUCCESS))
@@ -241,7 +243,7 @@
   r <- lift $ traceAroundEvent "vkGetFenceFdKHR" (vkGetFenceFdKHR' (deviceHandle (device)) pGetFdInfo (pPFd))
   lift $ when (r < SUCCESS) (throwIO (VulkanException r))
   pFd <- lift $ peek @CInt pPFd
-  pure $ (((\(CInt a) -> a) pFd))
+  pure $ ((coerce @CInt @Int32 pFd))
 
 
 foreign import ccall
@@ -424,7 +426,7 @@
     handleType <- peek @ExternalFenceHandleTypeFlagBits ((p `plusPtr` 28 :: Ptr ExternalFenceHandleTypeFlagBits))
     fd <- peek @CInt ((p `plusPtr` 32 :: Ptr CInt))
     pure $ ImportFenceFdInfoKHR
-             fence flags handleType ((\(CInt a) -> a) fd)
+             fence flags handleType (coerce @CInt @Int32 fd)
 
 instance Storable ImportFenceFdInfoKHR where
   sizeOf ~_ = 40
diff --git a/src/Vulkan/Extensions/VK_KHR_external_fence_fd.hs-boot b/src/Vulkan/Extensions/VK_KHR_external_fence_fd.hs-boot
--- a/src/Vulkan/Extensions/VK_KHR_external_fence_fd.hs-boot
+++ b/src/Vulkan/Extensions/VK_KHR_external_fence_fd.hs-boot
@@ -107,9 +107,10 @@
                                                    , ImportFenceFdInfoKHR
                                                    ) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data FenceGetFdInfoKHR
 
 instance ToCStruct FenceGetFdInfoKHR
diff --git a/src/Vulkan/Extensions/VK_KHR_external_fence_win32.hs b/src/Vulkan/Extensions/VK_KHR_external_fence_win32.hs
--- a/src/Vulkan/Extensions/VK_KHR_external_fence_win32.hs
+++ b/src/Vulkan/Extensions/VK_KHR_external_fence_win32.hs
@@ -151,6 +151,11 @@
 import Foreign.Ptr (plusPtr)
 import Control.Monad.Trans.Class (lift)
 import Control.Monad.Trans.Cont (evalContT)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
 import Control.Monad.IO.Class (MonadIO)
 import Data.String (IsString)
 import Data.Typeable (Typeable)
@@ -174,18 +179,13 @@
 import Vulkan.Core11.Enums.ExternalFenceHandleTypeFlagBits (ExternalFenceHandleTypeFlagBits)
 import Vulkan.Core10.Handles (Fence)
 import Vulkan.Core11.Enums.FenceImportFlagBits (FenceImportFlags)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Extensions.VK_NV_external_memory_win32 (HANDLE)
 import Vulkan.Extensions.VK_KHR_external_memory_win32 (LPCWSTR)
 import Vulkan.Core10.Enums.Result (Result)
 import Vulkan.Core10.Enums.Result (Result(..))
 import Vulkan.Extensions.VK_NV_external_memory_win32 (SECURITY_ATTRIBUTES)
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
 import Vulkan.Exception (VulkanException(..))
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR))
diff --git a/src/Vulkan/Extensions/VK_KHR_external_fence_win32.hs-boot b/src/Vulkan/Extensions/VK_KHR_external_fence_win32.hs-boot
--- a/src/Vulkan/Extensions/VK_KHR_external_fence_win32.hs-boot
+++ b/src/Vulkan/Extensions/VK_KHR_external_fence_win32.hs-boot
@@ -127,9 +127,10 @@
                                                       , ImportFenceWin32HandleInfoKHR
                                                       ) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data ExportFenceWin32HandleInfoKHR
 
 instance ToCStruct ExportFenceWin32HandleInfoKHR
diff --git a/src/Vulkan/Extensions/VK_KHR_external_memory_fd.hs b/src/Vulkan/Extensions/VK_KHR_external_memory_fd.hs
--- a/src/Vulkan/Extensions/VK_KHR_external_memory_fd.hs
+++ b/src/Vulkan/Extensions/VK_KHR_external_memory_fd.hs
@@ -147,13 +147,20 @@
 import GHC.Ptr (nullFunPtr)
 import Foreign.Ptr (nullPtr)
 import Foreign.Ptr (plusPtr)
+import Data.Coerce (coerce)
 import Control.Monad.Trans.Class (lift)
 import Control.Monad.Trans.Cont (evalContT)
 import Foreign.C.Types (CInt(..))
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
 import Control.Monad.IO.Class (MonadIO)
 import Data.String (IsString)
 import Data.Typeable (Typeable)
 import Foreign.C.Types (CInt)
+import Foreign.C.Types (CInt(..))
 import Foreign.C.Types (CInt(CInt))
 import Foreign.Storable (Storable)
 import Foreign.Storable (Storable(peek))
@@ -177,15 +184,10 @@
 import Vulkan.Core10.Handles (Device_T)
 import Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits (ExternalMemoryHandleTypeFlagBits)
 import Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits (ExternalMemoryHandleTypeFlagBits(..))
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Enums.Result (Result)
 import Vulkan.Core10.Enums.Result (Result(..))
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
 import Vulkan.Exception (VulkanException(..))
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR))
@@ -250,7 +252,7 @@
   r <- lift $ traceAroundEvent "vkGetMemoryFdKHR" (vkGetMemoryFdKHR' (deviceHandle (device)) pGetFdInfo (pPFd))
   lift $ when (r < SUCCESS) (throwIO (VulkanException r))
   pFd <- lift $ peek @CInt pPFd
-  pure $ (((\(CInt a) -> a) pFd))
+  pure $ ((coerce @CInt @Int32 pFd))
 
 
 foreign import ccall
@@ -407,7 +409,7 @@
     handleType <- peek @ExternalMemoryHandleTypeFlagBits ((p `plusPtr` 16 :: Ptr ExternalMemoryHandleTypeFlagBits))
     fd <- peek @CInt ((p `plusPtr` 20 :: Ptr CInt))
     pure $ ImportMemoryFdInfoKHR
-             handleType ((\(CInt a) -> a) fd)
+             handleType (coerce @CInt @Int32 fd)
 
 instance Storable ImportMemoryFdInfoKHR where
   sizeOf ~_ = 24
diff --git a/src/Vulkan/Extensions/VK_KHR_external_memory_fd.hs-boot b/src/Vulkan/Extensions/VK_KHR_external_memory_fd.hs-boot
--- a/src/Vulkan/Extensions/VK_KHR_external_memory_fd.hs-boot
+++ b/src/Vulkan/Extensions/VK_KHR_external_memory_fd.hs-boot
@@ -129,9 +129,10 @@
                                                     , MemoryGetFdInfoKHR
                                                     ) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data ImportMemoryFdInfoKHR
 
 instance ToCStruct ImportMemoryFdInfoKHR
diff --git a/src/Vulkan/Extensions/VK_KHR_external_memory_win32.hs b/src/Vulkan/Extensions/VK_KHR_external_memory_win32.hs
--- a/src/Vulkan/Extensions/VK_KHR_external_memory_win32.hs
+++ b/src/Vulkan/Extensions/VK_KHR_external_memory_win32.hs
@@ -165,6 +165,11 @@
 import Foreign.Ptr (plusPtr)
 import Control.Monad.Trans.Class (lift)
 import Control.Monad.Trans.Cont (evalContT)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
 import Control.Monad.IO.Class (MonadIO)
 import Data.String (IsString)
 import Data.Typeable (Typeable)
@@ -190,17 +195,12 @@
 import Vulkan.Core10.Handles (Device_T)
 import Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits (ExternalMemoryHandleTypeFlagBits)
 import Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits (ExternalMemoryHandleTypeFlagBits(..))
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Extensions.VK_NV_external_memory_win32 (HANDLE)
 import Vulkan.Core10.Enums.Result (Result)
 import Vulkan.Core10.Enums.Result (Result(..))
 import Vulkan.Extensions.VK_NV_external_memory_win32 (SECURITY_ATTRIBUTES)
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
 import Vulkan.Exception (VulkanException(..))
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR))
diff --git a/src/Vulkan/Extensions/VK_KHR_external_memory_win32.hs-boot b/src/Vulkan/Extensions/VK_KHR_external_memory_win32.hs-boot
--- a/src/Vulkan/Extensions/VK_KHR_external_memory_win32.hs-boot
+++ b/src/Vulkan/Extensions/VK_KHR_external_memory_win32.hs-boot
@@ -141,9 +141,10 @@
                                                        , MemoryWin32HandlePropertiesKHR
                                                        ) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data ExportMemoryWin32HandleInfoKHR
 
 instance ToCStruct ExportMemoryWin32HandleInfoKHR
diff --git a/src/Vulkan/Extensions/VK_KHR_external_semaphore_fd.hs b/src/Vulkan/Extensions/VK_KHR_external_semaphore_fd.hs
--- a/src/Vulkan/Extensions/VK_KHR_external_semaphore_fd.hs
+++ b/src/Vulkan/Extensions/VK_KHR_external_semaphore_fd.hs
@@ -129,13 +129,20 @@
 import GHC.Ptr (nullFunPtr)
 import Foreign.Ptr (nullPtr)
 import Foreign.Ptr (plusPtr)
+import Data.Coerce (coerce)
 import Control.Monad.Trans.Class (lift)
 import Control.Monad.Trans.Cont (evalContT)
 import Foreign.C.Types (CInt(..))
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
 import Control.Monad.IO.Class (MonadIO)
 import Data.String (IsString)
 import Data.Typeable (Typeable)
 import Foreign.C.Types (CInt)
+import Foreign.C.Types (CInt(..))
 import Foreign.C.Types (CInt(CInt))
 import Foreign.Storable (Storable)
 import Foreign.Storable (Storable(peek))
@@ -156,17 +163,12 @@
 import Vulkan.Dynamic (DeviceCmds(pVkImportSemaphoreFdKHR))
 import Vulkan.Core10.Handles (Device_T)
 import Vulkan.Core11.Enums.ExternalSemaphoreHandleTypeFlagBits (ExternalSemaphoreHandleTypeFlagBits)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Enums.Result (Result)
 import Vulkan.Core10.Enums.Result (Result(..))
 import Vulkan.Core10.Handles (Semaphore)
 import Vulkan.Core11.Enums.SemaphoreImportFlagBits (SemaphoreImportFlags)
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
 import Vulkan.Exception (VulkanException(..))
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR))
 import Vulkan.Core10.Enums.Result (Result(SUCCESS))
@@ -241,7 +243,7 @@
   r <- lift $ traceAroundEvent "vkGetSemaphoreFdKHR" (vkGetSemaphoreFdKHR' (deviceHandle (device)) pGetFdInfo (pPFd))
   lift $ when (r < SUCCESS) (throwIO (VulkanException r))
   pFd <- lift $ peek @CInt pPFd
-  pure $ (((\(CInt a) -> a) pFd))
+  pure $ ((coerce @CInt @Int32 pFd))
 
 
 foreign import ccall
@@ -451,7 +453,7 @@
     handleType <- peek @ExternalSemaphoreHandleTypeFlagBits ((p `plusPtr` 28 :: Ptr ExternalSemaphoreHandleTypeFlagBits))
     fd <- peek @CInt ((p `plusPtr` 32 :: Ptr CInt))
     pure $ ImportSemaphoreFdInfoKHR
-             semaphore flags handleType ((\(CInt a) -> a) fd)
+             semaphore flags handleType (coerce @CInt @Int32 fd)
 
 instance Storable ImportSemaphoreFdInfoKHR where
   sizeOf ~_ = 40
diff --git a/src/Vulkan/Extensions/VK_KHR_external_semaphore_fd.hs-boot b/src/Vulkan/Extensions/VK_KHR_external_semaphore_fd.hs-boot
--- a/src/Vulkan/Extensions/VK_KHR_external_semaphore_fd.hs-boot
+++ b/src/Vulkan/Extensions/VK_KHR_external_semaphore_fd.hs-boot
@@ -111,9 +111,10 @@
                                                        , SemaphoreGetFdInfoKHR
                                                        ) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data ImportSemaphoreFdInfoKHR
 
 instance ToCStruct ImportSemaphoreFdInfoKHR
diff --git a/src/Vulkan/Extensions/VK_KHR_external_semaphore_win32.hs b/src/Vulkan/Extensions/VK_KHR_external_semaphore_win32.hs
--- a/src/Vulkan/Extensions/VK_KHR_external_semaphore_win32.hs
+++ b/src/Vulkan/Extensions/VK_KHR_external_semaphore_win32.hs
@@ -180,6 +180,11 @@
 import qualified Data.Vector (imapM_)
 import qualified Data.Vector (length)
 import qualified Data.Vector (null)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
 import Control.Monad.IO.Class (MonadIO)
 import Data.String (IsString)
 import Data.Typeable (Typeable)
@@ -205,8 +210,6 @@
 import Vulkan.Dynamic (DeviceCmds(pVkImportSemaphoreWin32HandleKHR))
 import Vulkan.Core10.Handles (Device_T)
 import Vulkan.Core11.Enums.ExternalSemaphoreHandleTypeFlagBits (ExternalSemaphoreHandleTypeFlagBits)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Extensions.VK_NV_external_memory_win32 (HANDLE)
 import Vulkan.Extensions.VK_KHR_external_memory_win32 (LPCWSTR)
 import Vulkan.Core10.Enums.Result (Result)
@@ -215,10 +218,7 @@
 import Vulkan.Core10.Handles (Semaphore)
 import Vulkan.Core11.Enums.SemaphoreImportFlagBits (SemaphoreImportFlags)
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
 import Vulkan.Exception (VulkanException(..))
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR))
diff --git a/src/Vulkan/Extensions/VK_KHR_external_semaphore_win32.hs-boot b/src/Vulkan/Extensions/VK_KHR_external_semaphore_win32.hs-boot
--- a/src/Vulkan/Extensions/VK_KHR_external_semaphore_win32.hs-boot
+++ b/src/Vulkan/Extensions/VK_KHR_external_semaphore_win32.hs-boot
@@ -152,9 +152,10 @@
                                                           , SemaphoreGetWin32HandleInfoKHR
                                                           ) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data D3D12FenceSubmitInfoKHR
 
 instance ToCStruct D3D12FenceSubmitInfoKHR
diff --git a/src/Vulkan/Extensions/VK_KHR_fragment_shading_rate.hs b/src/Vulkan/Extensions/VK_KHR_fragment_shading_rate.hs
--- a/src/Vulkan/Extensions/VK_KHR_fragment_shading_rate.hs
+++ b/src/Vulkan/Extensions/VK_KHR_fragment_shading_rate.hs
@@ -243,6 +243,12 @@
 import Control.Monad.Trans.Class (lift)
 import Control.Monad.Trans.Cont (evalContT)
 import Data.Vector (generateM)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero)
+import Vulkan.Zero (Zero(..))
 import Control.Monad.IO.Class (MonadIO)
 import Data.String (IsString)
 import Data.Typeable (Typeable)
@@ -277,8 +283,6 @@
 import Vulkan.Core10.Handles (CommandBuffer_T)
 import Vulkan.Dynamic (DeviceCmds(pVkCmdSetFragmentShadingRateKHR))
 import Vulkan.Core10.FundamentalTypes (Extent2D)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Dynamic (InstanceCmds(pVkGetPhysicalDeviceFragmentShadingRatesKHR))
 import Vulkan.Core10.Handles (PhysicalDevice)
 import Vulkan.Core10.Handles (PhysicalDevice(..))
@@ -290,11 +294,7 @@
 import Vulkan.CStruct.Extends (SomeStruct)
 import Vulkan.CStruct.Extends (SomeStruct(..))
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
 import Vulkan.Exception (VulkanException(..))
-import Vulkan.Zero (Zero)
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.AccessFlagBits (AccessFlags)
 import Vulkan.Core10.Enums.AccessFlagBits (AccessFlagBits(ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV))
 import Vulkan.Core10.Enums.ImageLayout (ImageLayout(IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV))
@@ -752,7 +752,7 @@
 
 instance FromCStruct FragmentShadingRateAttachmentInfoKHR where
   peekCStruct p = do
-    pFragmentShadingRateAttachment <- peekSomeCStruct . forgetExtensions =<< peek ((p `plusPtr` 16 :: Ptr (Ptr (AttachmentReference2 a))))
+    pFragmentShadingRateAttachment <- peekSomeCStruct . forgetExtensions =<< peek ((p `plusPtr` 16 :: Ptr (Ptr (AttachmentReference2 _))))
     shadingRateAttachmentTexelSize <- peekCStruct @Extent2D ((p `plusPtr` 24 :: Ptr Extent2D))
     pure $ FragmentShadingRateAttachmentInfoKHR
              pFragmentShadingRateAttachment shadingRateAttachmentTexelSize
diff --git a/src/Vulkan/Extensions/VK_KHR_fragment_shading_rate.hs-boot b/src/Vulkan/Extensions/VK_KHR_fragment_shading_rate.hs-boot
--- a/src/Vulkan/Extensions/VK_KHR_fragment_shading_rate.hs-boot
+++ b/src/Vulkan/Extensions/VK_KHR_fragment_shading_rate.hs-boot
@@ -207,9 +207,10 @@
                                                        , FragmentShadingRateCombinerOpKHR
                                                        ) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data FragmentShadingRateAttachmentInfoKHR
 
 instance ToCStruct FragmentShadingRateAttachmentInfoKHR
diff --git a/src/Vulkan/Extensions/VK_KHR_get_display_properties2.hs b/src/Vulkan/Extensions/VK_KHR_get_display_properties2.hs
--- a/src/Vulkan/Extensions/VK_KHR_get_display_properties2.hs
+++ b/src/Vulkan/Extensions/VK_KHR_get_display_properties2.hs
@@ -188,6 +188,11 @@
 import Control.Monad.Trans.Class (lift)
 import Control.Monad.Trans.Cont (evalContT)
 import Data.Vector (generateM)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
 import Control.Monad.IO.Class (MonadIO)
 import Data.String (IsString)
 import Data.Typeable (Typeable)
@@ -213,8 +218,6 @@
 import Vulkan.Extensions.VK_KHR_display (DisplayPlaneCapabilitiesKHR)
 import Vulkan.Extensions.VK_KHR_display (DisplayPlanePropertiesKHR)
 import Vulkan.Extensions.VK_KHR_display (DisplayPropertiesKHR)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Dynamic (InstanceCmds(pVkGetDisplayModeProperties2KHR))
 import Vulkan.Dynamic (InstanceCmds(pVkGetDisplayPlaneCapabilities2KHR))
 import Vulkan.Dynamic (InstanceCmds(pVkGetPhysicalDeviceDisplayPlaneProperties2KHR))
@@ -225,10 +228,7 @@
 import Vulkan.Core10.Enums.Result (Result)
 import Vulkan.Core10.Enums.Result (Result(..))
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
 import Vulkan.Exception (VulkanException(..))
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_DISPLAY_PLANE_INFO_2_KHR))
diff --git a/src/Vulkan/Extensions/VK_KHR_get_display_properties2.hs-boot b/src/Vulkan/Extensions/VK_KHR_get_display_properties2.hs-boot
--- a/src/Vulkan/Extensions/VK_KHR_get_display_properties2.hs-boot
+++ b/src/Vulkan/Extensions/VK_KHR_get_display_properties2.hs-boot
@@ -154,9 +154,10 @@
                                                          , DisplayProperties2KHR
                                                          ) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data DisplayModeProperties2KHR
 
 instance ToCStruct DisplayModeProperties2KHR
diff --git a/src/Vulkan/Extensions/VK_KHR_get_surface_capabilities2.hs b/src/Vulkan/Extensions/VK_KHR_get_surface_capabilities2.hs
--- a/src/Vulkan/Extensions/VK_KHR_get_surface_capabilities2.hs
+++ b/src/Vulkan/Extensions/VK_KHR_get_surface_capabilities2.hs
@@ -177,6 +177,11 @@
 import Control.Monad.Trans.Class (lift)
 import Control.Monad.Trans.Cont (evalContT)
 import Data.Vector (generateM)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
 import Control.Monad.IO.Class (MonadIO)
 import Data.String (IsString)
 import Data.Type.Equality ((:~:)(Refl))
@@ -202,8 +207,6 @@
 import Vulkan.CStruct.Extends (Extends)
 import Vulkan.CStruct.Extends (Extendss)
 import Vulkan.CStruct.Extends (Extensible(..))
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Dynamic (InstanceCmds(pVkGetPhysicalDeviceSurfaceCapabilities2KHR))
 import Vulkan.Dynamic (InstanceCmds(pVkGetPhysicalDeviceSurfaceFormats2KHR))
 import Vulkan.CStruct.Extends (PeekChain)
@@ -225,10 +228,7 @@
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_full_screen_exclusive (SurfaceFullScreenExclusiveWin32InfoEXT)
 import Vulkan.Extensions.Handles (SurfaceKHR)
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_surface_protected_capabilities (SurfaceProtectedCapabilitiesKHR)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
 import Vulkan.Exception (VulkanException(..))
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR))
@@ -301,7 +301,7 @@
 -- 'Vulkan.Core10.Handles.PhysicalDevice', 'PhysicalDeviceSurfaceInfo2KHR',
 -- 'SurfaceCapabilities2KHR'
 getPhysicalDeviceSurfaceCapabilities2KHR :: forall a b io
-                                          . (Extendss PhysicalDeviceSurfaceInfo2KHR a, Extendss SurfaceCapabilities2KHR b, PokeChain a, PokeChain b, PeekChain b, MonadIO io)
+                                          . (Extendss PhysicalDeviceSurfaceInfo2KHR a, PokeChain a, Extendss SurfaceCapabilities2KHR b, PokeChain b, PeekChain b, MonadIO io)
                                          => -- | @physicalDevice@ is the physical device that will be associated with the
                                             -- swapchain to be created, as described for
                                             -- 'Vulkan.Extensions.VK_KHR_swapchain.createSwapchainKHR'.
@@ -509,7 +509,7 @@
 deriving instance Show (Chain es) => Show (PhysicalDeviceSurfaceInfo2KHR es)
 
 instance Extensible PhysicalDeviceSurfaceInfo2KHR where
-  extensibleType = STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR
+  extensibleTypeName = "PhysicalDeviceSurfaceInfo2KHR"
   setNext x next = x{next = next}
   getNext PhysicalDeviceSurfaceInfo2KHR{..} = next
   extends :: forall e b proxy. Typeable e => proxy e -> (Extends PhysicalDeviceSurfaceInfo2KHR e => b) -> Maybe b
@@ -589,7 +589,7 @@
 deriving instance Show (Chain es) => Show (SurfaceCapabilities2KHR es)
 
 instance Extensible SurfaceCapabilities2KHR where
-  extensibleType = STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR
+  extensibleTypeName = "SurfaceCapabilities2KHR"
   setNext x next = x{next = next}
   getNext SurfaceCapabilities2KHR{..} = next
   extends :: forall e b proxy. Typeable e => proxy e -> (Extends SurfaceCapabilities2KHR e => b) -> Maybe b
diff --git a/src/Vulkan/Extensions/VK_KHR_get_surface_capabilities2.hs-boot b/src/Vulkan/Extensions/VK_KHR_get_surface_capabilities2.hs-boot
--- a/src/Vulkan/Extensions/VK_KHR_get_surface_capabilities2.hs-boot
+++ b/src/Vulkan/Extensions/VK_KHR_get_surface_capabilities2.hs-boot
@@ -146,13 +146,13 @@
                                                            , SurfaceFormat2KHR
                                                            ) where
 
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (ToCStruct)
 import Data.Kind (Type)
 import {-# SOURCE #-} Vulkan.CStruct.Extends (Chain)
 import {-# SOURCE #-} Vulkan.CStruct.Extends (Extendss)
-import Vulkan.CStruct (FromCStruct)
 import {-# SOURCE #-} Vulkan.CStruct.Extends (PeekChain)
 import {-# SOURCE #-} Vulkan.CStruct.Extends (PokeChain)
-import Vulkan.CStruct (ToCStruct)
 type role PhysicalDeviceSurfaceInfo2KHR nominal
 data PhysicalDeviceSurfaceInfo2KHR (es :: [Type])
 
diff --git a/src/Vulkan/Extensions/VK_KHR_incremental_present.hs b/src/Vulkan/Extensions/VK_KHR_incremental_present.hs
--- a/src/Vulkan/Extensions/VK_KHR_incremental_present.hs
+++ b/src/Vulkan/Extensions/VK_KHR_incremental_present.hs
@@ -164,6 +164,11 @@
 import qualified Data.Vector (imapM_)
 import qualified Data.Vector (length)
 import qualified Data.Vector (null)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
 import Data.String (IsString)
 import Data.Typeable (Typeable)
 import Foreign.Storable (Storable)
@@ -180,13 +185,8 @@
 import Data.Vector (Vector)
 import Vulkan.CStruct.Utils (advancePtrBytes)
 import Vulkan.Core10.FundamentalTypes (Extent2D)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.FundamentalTypes (Offset2D)
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PRESENT_REGIONS_KHR))
 -- | VkPresentRegionsKHR - Structure hint of rectangular regions changed by
 -- vkQueuePresentKHR
diff --git a/src/Vulkan/Extensions/VK_KHR_incremental_present.hs-boot b/src/Vulkan/Extensions/VK_KHR_incremental_present.hs-boot
--- a/src/Vulkan/Extensions/VK_KHR_incremental_present.hs-boot
+++ b/src/Vulkan/Extensions/VK_KHR_incremental_present.hs-boot
@@ -149,9 +149,10 @@
                                                      , RectLayerKHR
                                                      ) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data PresentRegionKHR
 
 instance ToCStruct PresentRegionKHR
diff --git a/src/Vulkan/Extensions/VK_KHR_multiview.hs b/src/Vulkan/Extensions/VK_KHR_multiview.hs
--- a/src/Vulkan/Extensions/VK_KHR_multiview.hs
+++ b/src/Vulkan/Extensions/VK_KHR_multiview.hs
@@ -128,7 +128,7 @@
 --
 -- == New SPIR-V Capabilities
 --
--- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-multiview MultiView>
+-- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-MultiView MultiView>
 --
 -- == Version History
 --
diff --git a/src/Vulkan/Extensions/VK_KHR_performance_query.hs b/src/Vulkan/Extensions/VK_KHR_performance_query.hs
--- a/src/Vulkan/Extensions/VK_KHR_performance_query.hs
+++ b/src/Vulkan/Extensions/VK_KHR_performance_query.hs
@@ -558,6 +558,12 @@
 import Data.Vector (generateM)
 import qualified Data.Vector (imapM_)
 import qualified Data.Vector (length)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero)
+import Vulkan.Zero (Zero(..))
 import Control.Monad.IO.Class (MonadIO)
 import Data.Bits (Bits)
 import Data.Bits (FiniteBits)
@@ -603,8 +609,6 @@
 import Vulkan.Dynamic (DeviceCmds(pVkReleaseProfilingLockKHR))
 import Vulkan.Core10.Handles (Device_T)
 import Vulkan.Core10.FundamentalTypes (Flags)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Dynamic (InstanceCmds(pVkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR))
 import Vulkan.Dynamic (InstanceCmds(pVkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR))
 import Vulkan.Core10.APIConstants (MAX_DESCRIPTION_SIZE)
@@ -614,12 +618,8 @@
 import Vulkan.Core10.Enums.Result (Result)
 import Vulkan.Core10.Enums.Result (Result(..))
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
 import Vulkan.Core10.APIConstants (UUID_SIZE)
 import Vulkan.Exception (VulkanException(..))
-import Vulkan.Zero (Zero)
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHR))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_KHR))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PERFORMANCE_COUNTER_KHR))
diff --git a/src/Vulkan/Extensions/VK_KHR_performance_query.hs-boot b/src/Vulkan/Extensions/VK_KHR_performance_query.hs-boot
--- a/src/Vulkan/Extensions/VK_KHR_performance_query.hs-boot
+++ b/src/Vulkan/Extensions/VK_KHR_performance_query.hs-boot
@@ -485,9 +485,10 @@
                                                    , QueryPoolPerformanceCreateInfoKHR
                                                    ) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data AcquireProfilingLockInfoKHR
 
 instance ToCStruct AcquireProfilingLockInfoKHR
diff --git a/src/Vulkan/Extensions/VK_KHR_pipeline_executable_properties.hs b/src/Vulkan/Extensions/VK_KHR_pipeline_executable_properties.hs
--- a/src/Vulkan/Extensions/VK_KHR_pipeline_executable_properties.hs
+++ b/src/Vulkan/Extensions/VK_KHR_pipeline_executable_properties.hs
@@ -217,17 +217,26 @@
 import Foreign.Ptr (plusPtr)
 import GHC.Show (showsPrec)
 import Data.ByteString (packCString)
+import Data.Coerce (coerce)
 import Control.Monad.Trans.Class (lift)
 import Control.Monad.Trans.Cont (evalContT)
 import Control.Monad.Trans.Cont (runContT)
 import Data.Vector (generateM)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero)
+import Vulkan.Zero (Zero(..))
 import Control.Monad.IO.Class (MonadIO)
 import Data.String (IsString)
 import Data.Typeable (Typeable)
 import Foreign.C.Types (CChar)
 import Foreign.C.Types (CDouble)
+import Foreign.C.Types (CDouble(..))
 import Foreign.C.Types (CDouble(CDouble))
 import Foreign.C.Types (CSize)
+import Foreign.C.Types (CSize(..))
 import Foreign.C.Types (CSize(CSize))
 import Foreign.Storable (Storable)
 import Foreign.Storable (Storable(peek))
@@ -261,19 +270,13 @@
 import Vulkan.Dynamic (DeviceCmds(pVkGetPipelineExecutablePropertiesKHR))
 import Vulkan.Dynamic (DeviceCmds(pVkGetPipelineExecutableStatisticsKHR))
 import Vulkan.Core10.Handles (Device_T)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.APIConstants (MAX_DESCRIPTION_SIZE)
 import Vulkan.Core10.Handles (Pipeline)
 import Vulkan.Core10.Enums.Result (Result)
 import Vulkan.Core10.Enums.Result (Result(..))
 import Vulkan.Core10.Enums.ShaderStageFlagBits (ShaderStageFlags)
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
 import Vulkan.Exception (VulkanException(..))
-import Vulkan.Zero (Zero)
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR))
@@ -1028,7 +1031,7 @@
     dataSize <- peek @CSize ((p `plusPtr` 536 :: Ptr CSize))
     pData <- peek @(Ptr ()) ((p `plusPtr` 544 :: Ptr (Ptr ())))
     pure $ PipelineExecutableInternalRepresentationKHR
-             name description (bool32ToBool isText) ((\(CSize a) -> a) dataSize) pData
+             name description (bool32ToBool isText) (coerce @CSize @Word64 dataSize) pData
 
 instance Storable PipelineExecutableInternalRepresentationKHR where
   sizeOf ~_ = 552
@@ -1077,7 +1080,7 @@
   PIPELINE_EXECUTABLE_STATISTIC_FORMAT_UINT64_KHR -> U64 <$> (peek @Word64 (castPtr @_ @Word64 p))
   PIPELINE_EXECUTABLE_STATISTIC_FORMAT_FLOAT64_KHR -> F64 <$> (do
     f64 <- peek @CDouble (castPtr @_ @CDouble p)
-    pure $ (\(CDouble a) -> a) f64)
+    pure $ coerce @CDouble @Double f64)
 
 
 -- | VkPipelineExecutableStatisticFormatKHR - Enum describing a pipeline
diff --git a/src/Vulkan/Extensions/VK_KHR_pipeline_executable_properties.hs-boot b/src/Vulkan/Extensions/VK_KHR_pipeline_executable_properties.hs-boot
--- a/src/Vulkan/Extensions/VK_KHR_pipeline_executable_properties.hs-boot
+++ b/src/Vulkan/Extensions/VK_KHR_pipeline_executable_properties.hs-boot
@@ -184,9 +184,10 @@
                                                                 , PipelineInfoKHR
                                                                 ) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data PhysicalDevicePipelineExecutablePropertiesFeaturesKHR
 
 instance ToCStruct PhysicalDevicePipelineExecutablePropertiesFeaturesKHR
diff --git a/src/Vulkan/Extensions/VK_KHR_pipeline_library.hs b/src/Vulkan/Extensions/VK_KHR_pipeline_library.hs
--- a/src/Vulkan/Extensions/VK_KHR_pipeline_library.hs
+++ b/src/Vulkan/Extensions/VK_KHR_pipeline_library.hs
@@ -97,6 +97,11 @@
 import Data.Vector (generateM)
 import qualified Data.Vector (imapM_)
 import qualified Data.Vector (length)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
 import Data.String (IsString)
 import Data.Typeable (Typeable)
 import Foreign.Storable (Storable(peek))
@@ -108,13 +113,8 @@
 import Control.Monad.Trans.Cont (ContT(..))
 import Data.Vector (Vector)
 import Vulkan.CStruct.Utils (advancePtrBytes)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Handles (Pipeline)
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR))
 -- | VkPipelineLibraryCreateInfoKHR - Structure specifying pipeline libraries
 -- to use when creating a pipeline
diff --git a/src/Vulkan/Extensions/VK_KHR_pipeline_library.hs-boot b/src/Vulkan/Extensions/VK_KHR_pipeline_library.hs-boot
--- a/src/Vulkan/Extensions/VK_KHR_pipeline_library.hs-boot
+++ b/src/Vulkan/Extensions/VK_KHR_pipeline_library.hs-boot
@@ -84,9 +84,10 @@
 -- the generator scripts, not directly.
 module Vulkan.Extensions.VK_KHR_pipeline_library  (PipelineLibraryCreateInfoKHR) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data PipelineLibraryCreateInfoKHR
 
 instance ToCStruct PipelineLibraryCreateInfoKHR
diff --git a/src/Vulkan/Extensions/VK_KHR_portability_subset.hs b/src/Vulkan/Extensions/VK_KHR_portability_subset.hs
--- a/src/Vulkan/Extensions/VK_KHR_portability_subset.hs
+++ b/src/Vulkan/Extensions/VK_KHR_portability_subset.hs
@@ -145,6 +145,11 @@
 import Foreign.Marshal.Alloc (allocaBytesAligned)
 import Foreign.Ptr (nullPtr)
 import Foreign.Ptr (plusPtr)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
 import Data.String (IsString)
 import Data.Typeable (Typeable)
 import Foreign.Storable (Storable)
@@ -158,12 +163,7 @@
 import Vulkan.Core10.FundamentalTypes (bool32ToBool)
 import Vulkan.Core10.FundamentalTypes (boolToBool32)
 import Vulkan.Core10.FundamentalTypes (Bool32)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR))
 -- | VkPhysicalDevicePortabilitySubsetFeaturesKHR - Structure describing the
@@ -250,9 +250,8 @@
   , -- | #features-shaderSampleRateInterpolationFunctions#
     -- @shaderSampleRateInterpolationFunctions@ indicates whether this
     -- implementation supports fragment shaders which use the
-    -- @InterpolationFunction@
-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table capability>
-    -- and the extended instructions @InterpolateAtCentroid@,
+    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-InterpolationFunction InterpolationFunction>
+    -- capability and the extended instructions @InterpolateAtCentroid@,
     -- @InterpolateAtOffset@, and @InterpolateAtSample@ from the @GLSL.std.450@
     -- extended instruction set. This member is only meaningful if the
     -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sampleRateShading sampleRateShading>
diff --git a/src/Vulkan/Extensions/VK_KHR_portability_subset.hs-boot b/src/Vulkan/Extensions/VK_KHR_portability_subset.hs-boot
--- a/src/Vulkan/Extensions/VK_KHR_portability_subset.hs-boot
+++ b/src/Vulkan/Extensions/VK_KHR_portability_subset.hs-boot
@@ -138,9 +138,10 @@
                                                     , PhysicalDevicePortabilitySubsetPropertiesKHR
                                                     ) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data PhysicalDevicePortabilitySubsetFeaturesKHR
 
 instance ToCStruct PhysicalDevicePortabilitySubsetFeaturesKHR
diff --git a/src/Vulkan/Extensions/VK_KHR_push_descriptor.hs b/src/Vulkan/Extensions/VK_KHR_push_descriptor.hs
--- a/src/Vulkan/Extensions/VK_KHR_push_descriptor.hs
+++ b/src/Vulkan/Extensions/VK_KHR_push_descriptor.hs
@@ -147,6 +147,11 @@
 import Control.Monad.Trans.Cont (evalContT)
 import qualified Data.Vector (imapM_)
 import qualified Data.Vector (length)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
 import Control.Monad.IO.Class (MonadIO)
 import Data.String (IsString)
 import Data.Typeable (Typeable)
@@ -173,18 +178,13 @@
 import Vulkan.Core11.Handles (DescriptorUpdateTemplate(..))
 import Vulkan.Dynamic (DeviceCmds(pVkCmdPushDescriptorSetKHR))
 import Vulkan.Dynamic (DeviceCmds(pVkCmdPushDescriptorSetWithTemplateKHR))
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Enums.PipelineBindPoint (PipelineBindPoint)
 import Vulkan.Core10.Enums.PipelineBindPoint (PipelineBindPoint(..))
 import Vulkan.Core10.Handles (PipelineLayout)
 import Vulkan.Core10.Handles (PipelineLayout(..))
 import Vulkan.CStruct.Extends (SomeStruct)
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
 import Vulkan.Core10.DescriptorSet (WriteDescriptorSet)
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR))
 foreign import ccall
 #if !defined(SAFE_FOREIGN_CALLS)
diff --git a/src/Vulkan/Extensions/VK_KHR_push_descriptor.hs-boot b/src/Vulkan/Extensions/VK_KHR_push_descriptor.hs-boot
--- a/src/Vulkan/Extensions/VK_KHR_push_descriptor.hs-boot
+++ b/src/Vulkan/Extensions/VK_KHR_push_descriptor.hs-boot
@@ -128,9 +128,10 @@
 -- the generator scripts, not directly.
 module Vulkan.Extensions.VK_KHR_push_descriptor  (PhysicalDevicePushDescriptorPropertiesKHR) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data PhysicalDevicePushDescriptorPropertiesKHR
 
 instance ToCStruct PhysicalDevicePushDescriptorPropertiesKHR
diff --git a/src/Vulkan/Extensions/VK_KHR_ray_query.hs b/src/Vulkan/Extensions/VK_KHR_ray_query.hs
--- a/src/Vulkan/Extensions/VK_KHR_ray_query.hs
+++ b/src/Vulkan/Extensions/VK_KHR_ray_query.hs
@@ -167,9 +167,9 @@
 --
 -- == New SPIR-V Capabilities
 --
--- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-khr-raytracing RayQueryKHR>
+-- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-RayQueryKHR RayQueryKHR>
 --
--- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-khr-raytracing RayTraversalPrimitiveCullingKHR>
+-- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-RayTraversalPrimitiveCullingKHR RayTraversalPrimitiveCullingKHR>
 --
 -- == Sample Code
 --
@@ -255,6 +255,11 @@
 import Foreign.Marshal.Alloc (allocaBytesAligned)
 import Foreign.Ptr (nullPtr)
 import Foreign.Ptr (plusPtr)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
 import Data.String (IsString)
 import Data.Typeable (Typeable)
 import Foreign.Storable (Storable)
@@ -267,12 +272,7 @@
 import Vulkan.Core10.FundamentalTypes (bool32ToBool)
 import Vulkan.Core10.FundamentalTypes (boolToBool32)
 import Vulkan.Core10.FundamentalTypes (Bool32)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR))
 -- | VkPhysicalDeviceRayQueryFeaturesKHR - Structure describing the ray query
 -- features that can be supported by an implementation
diff --git a/src/Vulkan/Extensions/VK_KHR_ray_query.hs-boot b/src/Vulkan/Extensions/VK_KHR_ray_query.hs-boot
--- a/src/Vulkan/Extensions/VK_KHR_ray_query.hs-boot
+++ b/src/Vulkan/Extensions/VK_KHR_ray_query.hs-boot
@@ -167,9 +167,9 @@
 --
 -- == New SPIR-V Capabilities
 --
--- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-khr-raytracing RayQueryKHR>
+-- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-RayQueryKHR RayQueryKHR>
 --
--- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-khr-raytracing RayTraversalPrimitiveCullingKHR>
+-- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-RayTraversalPrimitiveCullingKHR RayTraversalPrimitiveCullingKHR>
 --
 -- == Sample Code
 --
@@ -247,9 +247,10 @@
 -- the generator scripts, not directly.
 module Vulkan.Extensions.VK_KHR_ray_query  (PhysicalDeviceRayQueryFeaturesKHR) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data PhysicalDeviceRayQueryFeaturesKHR
 
 instance ToCStruct PhysicalDeviceRayQueryFeaturesKHR
diff --git a/src/Vulkan/Extensions/VK_KHR_ray_tracing_pipeline.hs b/src/Vulkan/Extensions/VK_KHR_ray_tracing_pipeline.hs
--- a/src/Vulkan/Extensions/VK_KHR_ray_tracing_pipeline.hs
+++ b/src/Vulkan/Extensions/VK_KHR_ray_tracing_pipeline.hs
@@ -323,9 +323,9 @@
 --
 -- == New SPIR-V Capabilities
 --
--- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-khr-raytracing RayTracingKHR>
+-- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-RayTracingKHR RayTracingKHR>
 --
--- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-khr-raytracing RayTraversalPrimitiveCullingKHR>
+-- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-RayTraversalPrimitiveCullingKHR RayTraversalPrimitiveCullingKHR>
 --
 -- == Issues
 --
@@ -780,6 +780,12 @@
 import qualified Data.Vector (imapM_)
 import qualified Data.Vector (length)
 import Foreign.C.Types (CSize(..))
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero)
+import Vulkan.Zero (Zero(..))
 import Control.Monad.IO.Class (MonadIO)
 import Data.String (IsString)
 import Data.Type.Equality ((:~:)(Refl))
@@ -834,8 +840,6 @@
 import Vulkan.CStruct.Extends (Extends)
 import Vulkan.CStruct.Extends (Extendss)
 import Vulkan.CStruct.Extends (Extensible(..))
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.CStruct.Extends (PeekChain)
 import Vulkan.CStruct.Extends (PeekChain(..))
 import Vulkan.Core10.Handles (Pipeline)
@@ -854,11 +858,7 @@
 import Vulkan.Core10.Enums.Result (Result(..))
 import Vulkan.CStruct.Extends (SomeStruct)
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
 import Vulkan.Exception (VulkanException(..))
-import Vulkan.Zero (Zero)
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_KHR))
@@ -2874,7 +2874,7 @@
 deriving instance Show (Chain es) => Show (RayTracingPipelineCreateInfoKHR es)
 
 instance Extensible RayTracingPipelineCreateInfoKHR where
-  extensibleType = STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_KHR
+  extensibleTypeName = "RayTracingPipelineCreateInfoKHR"
   setNext x next = x{next = next}
   getNext RayTracingPipelineCreateInfoKHR{..} = next
   extends :: forall e b proxy. Typeable e => proxy e -> (Extends RayTracingPipelineCreateInfoKHR e => b) -> Maybe b
@@ -2937,7 +2937,7 @@
     next <- peekChain (castPtr pNext)
     flags <- peek @PipelineCreateFlags ((p `plusPtr` 16 :: Ptr PipelineCreateFlags))
     stageCount <- peek @Word32 ((p `plusPtr` 20 :: Ptr Word32))
-    pStages <- peek @(Ptr (PipelineShaderStageCreateInfo _)) ((p `plusPtr` 24 :: Ptr (Ptr (PipelineShaderStageCreateInfo a))))
+    pStages <- peek @(Ptr (PipelineShaderStageCreateInfo _)) ((p `plusPtr` 24 :: Ptr (Ptr (PipelineShaderStageCreateInfo _))))
     pStages' <- generateM (fromIntegral stageCount) (\i -> peekSomeCStruct (forgetExtensions ((pStages `advancePtrBytes` (48 * (i)) :: Ptr (PipelineShaderStageCreateInfo _)))))
     groupCount <- peek @Word32 ((p `plusPtr` 32 :: Ptr Word32))
     pGroups <- peek @(Ptr RayTracingShaderGroupCreateInfoKHR) ((p `plusPtr` 40 :: Ptr (Ptr RayTracingShaderGroupCreateInfoKHR)))
@@ -3216,14 +3216,14 @@
 --
 -- == Valid Usage
 --
--- -   #VUID-VkStridedDeviceAddressRegionKHR-deviceAddress-03630# If
---     @deviceAddress@ is not zero, all addresses between @deviceAddress@
---     and @deviceAddress@ + @size@ - 1 /must/ be in the buffer device
---     address range of the same buffer
+-- -   #VUID-VkStridedDeviceAddressRegionKHR-size-04631# If @size@ is not
+--     zero, all addresses between @deviceAddress@ and @deviceAddress@ +
+--     @size@ - 1 /must/ be in the buffer device address range of the same
+--     buffer
 --
--- -   #VUID-VkStridedDeviceAddressRegionKHR-deviceAddress-03631# If
---     @deviceAddress@ is not zero, @stride@ /must/ be less than the size
---     of the buffer from which @deviceAddress@ was queried
+-- -   #VUID-VkStridedDeviceAddressRegionKHR-size-04632# If @size@ is not
+--     zero, @stride@ /must/ be less than the size of the buffer from which
+--     @deviceAddress@ was queried
 --
 -- = See Also
 --
diff --git a/src/Vulkan/Extensions/VK_KHR_ray_tracing_pipeline.hs-boot b/src/Vulkan/Extensions/VK_KHR_ray_tracing_pipeline.hs-boot
--- a/src/Vulkan/Extensions/VK_KHR_ray_tracing_pipeline.hs-boot
+++ b/src/Vulkan/Extensions/VK_KHR_ray_tracing_pipeline.hs-boot
@@ -323,9 +323,9 @@
 --
 -- == New SPIR-V Capabilities
 --
--- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-khr-raytracing RayTracingKHR>
+-- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-RayTracingKHR RayTracingKHR>
 --
--- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-khr-raytracing RayTraversalPrimitiveCullingKHR>
+-- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-RayTraversalPrimitiveCullingKHR RayTraversalPrimitiveCullingKHR>
 --
 -- == Issues
 --
@@ -730,13 +730,13 @@
                                                       , RayTracingShaderGroupTypeKHR
                                                       ) where
 
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (ToCStruct)
 import Data.Kind (Type)
 import {-# SOURCE #-} Vulkan.CStruct.Extends (Chain)
 import {-# SOURCE #-} Vulkan.CStruct.Extends (Extendss)
-import Vulkan.CStruct (FromCStruct)
 import {-# SOURCE #-} Vulkan.CStruct.Extends (PeekChain)
 import {-# SOURCE #-} Vulkan.CStruct.Extends (PokeChain)
-import Vulkan.CStruct (ToCStruct)
 data PhysicalDeviceRayTracingPipelineFeaturesKHR
 
 instance ToCStruct PhysicalDeviceRayTracingPipelineFeaturesKHR
diff --git a/src/Vulkan/Extensions/VK_KHR_shader_atomic_int64.hs b/src/Vulkan/Extensions/VK_KHR_shader_atomic_int64.hs
--- a/src/Vulkan/Extensions/VK_KHR_shader_atomic_int64.hs
+++ b/src/Vulkan/Extensions/VK_KHR_shader_atomic_int64.hs
@@ -94,7 +94,7 @@
 --
 -- == New SPIR-V Capabilities
 --
--- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-int64atomics Int64Atomics>
+-- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-Int64Atomics Int64Atomics>
 --
 -- == Version History
 --
diff --git a/src/Vulkan/Extensions/VK_KHR_shader_clock.hs b/src/Vulkan/Extensions/VK_KHR_shader_clock.hs
--- a/src/Vulkan/Extensions/VK_KHR_shader_clock.hs
+++ b/src/Vulkan/Extensions/VK_KHR_shader_clock.hs
@@ -86,7 +86,7 @@
 --
 -- == New SPIR-V Capabilities
 --
--- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-shaderclock ShaderClockKHR>
+-- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-ShaderClockKHR ShaderClockKHR>
 --
 -- == Version History
 --
@@ -115,6 +115,11 @@
 import Foreign.Marshal.Alloc (allocaBytesAligned)
 import Foreign.Ptr (nullPtr)
 import Foreign.Ptr (plusPtr)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
 import Data.String (IsString)
 import Data.Typeable (Typeable)
 import Foreign.Storable (Storable)
@@ -127,12 +132,7 @@
 import Vulkan.Core10.FundamentalTypes (bool32ToBool)
 import Vulkan.Core10.FundamentalTypes (boolToBool32)
 import Vulkan.Core10.FundamentalTypes (Bool32)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR))
 -- | VkPhysicalDeviceShaderClockFeaturesKHR - Structure describing features
 -- supported by VK_KHR_shader_clock
diff --git a/src/Vulkan/Extensions/VK_KHR_shader_clock.hs-boot b/src/Vulkan/Extensions/VK_KHR_shader_clock.hs-boot
--- a/src/Vulkan/Extensions/VK_KHR_shader_clock.hs-boot
+++ b/src/Vulkan/Extensions/VK_KHR_shader_clock.hs-boot
@@ -86,7 +86,7 @@
 --
 -- == New SPIR-V Capabilities
 --
--- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-shaderclock ShaderClockKHR>
+-- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-ShaderClockKHR ShaderClockKHR>
 --
 -- == Version History
 --
@@ -107,9 +107,10 @@
 -- the generator scripts, not directly.
 module Vulkan.Extensions.VK_KHR_shader_clock  (PhysicalDeviceShaderClockFeaturesKHR) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data PhysicalDeviceShaderClockFeaturesKHR
 
 instance ToCStruct PhysicalDeviceShaderClockFeaturesKHR
diff --git a/src/Vulkan/Extensions/VK_KHR_shader_draw_parameters.hs b/src/Vulkan/Extensions/VK_KHR_shader_draw_parameters.hs
--- a/src/Vulkan/Extensions/VK_KHR_shader_draw_parameters.hs
+++ b/src/Vulkan/Extensions/VK_KHR_shader_draw_parameters.hs
@@ -115,7 +115,7 @@
 --
 -- == New SPIR-V Capabilities
 --
--- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-drawparameters DrawParameters>
+-- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-DrawParameters DrawParameters>
 --
 -- == Issues
 --
diff --git a/src/Vulkan/Extensions/VK_KHR_shader_float_controls.hs b/src/Vulkan/Extensions/VK_KHR_shader_float_controls.hs
--- a/src/Vulkan/Extensions/VK_KHR_shader_float_controls.hs
+++ b/src/Vulkan/Extensions/VK_KHR_shader_float_controls.hs
@@ -105,15 +105,15 @@
 --
 -- == New SPIR-V Capabilities
 --
--- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-shaderfloatcontrols DenormPreserve>
+-- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-DenormPreserve DenormPreserve>
 --
--- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-shaderfloatcontrols DenormFlushToZero>
+-- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-DenormFlushToZero DenormFlushToZero>
 --
--- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-shaderfloatcontrols SignedZeroInfNanPreserve>
+-- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-SignedZeroInfNanPreserve SignedZeroInfNanPreserve>
 --
--- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-shaderfloatcontrols RoundingModeRTE>
+-- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-RoundingModeRTE RoundingModeRTE>
 --
--- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-shaderfloatcontrols RoundingModeRTZ>
+-- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-RoundingModeRTZ RoundingModeRTZ>
 --
 -- == Issues
 --
diff --git a/src/Vulkan/Extensions/VK_KHR_shader_terminate_invocation.hs b/src/Vulkan/Extensions/VK_KHR_shader_terminate_invocation.hs
--- a/src/Vulkan/Extensions/VK_KHR_shader_terminate_invocation.hs
+++ b/src/Vulkan/Extensions/VK_KHR_shader_terminate_invocation.hs
@@ -112,6 +112,11 @@
 import Foreign.Marshal.Alloc (allocaBytesAligned)
 import Foreign.Ptr (nullPtr)
 import Foreign.Ptr (plusPtr)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
 import Data.String (IsString)
 import Data.Typeable (Typeable)
 import Foreign.Storable (Storable)
@@ -124,12 +129,7 @@
 import Vulkan.Core10.FundamentalTypes (bool32ToBool)
 import Vulkan.Core10.FundamentalTypes (boolToBool32)
 import Vulkan.Core10.FundamentalTypes (Bool32)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES_KHR))
 -- | VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR - Structure
 -- describing support for the SPIR-V @SPV_KHR_terminate_invocation@
diff --git a/src/Vulkan/Extensions/VK_KHR_shader_terminate_invocation.hs-boot b/src/Vulkan/Extensions/VK_KHR_shader_terminate_invocation.hs-boot
--- a/src/Vulkan/Extensions/VK_KHR_shader_terminate_invocation.hs-boot
+++ b/src/Vulkan/Extensions/VK_KHR_shader_terminate_invocation.hs-boot
@@ -104,9 +104,10 @@
 -- the generator scripts, not directly.
 module Vulkan.Extensions.VK_KHR_shader_terminate_invocation  (PhysicalDeviceShaderTerminateInvocationFeaturesKHR) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data PhysicalDeviceShaderTerminateInvocationFeaturesKHR
 
 instance ToCStruct PhysicalDeviceShaderTerminateInvocationFeaturesKHR
diff --git a/src/Vulkan/Extensions/VK_KHR_shared_presentable_image.hs b/src/Vulkan/Extensions/VK_KHR_shared_presentable_image.hs
--- a/src/Vulkan/Extensions/VK_KHR_shared_presentable_image.hs
+++ b/src/Vulkan/Extensions/VK_KHR_shared_presentable_image.hs
@@ -235,6 +235,11 @@
 import GHC.Ptr (nullFunPtr)
 import Foreign.Ptr (nullPtr)
 import Foreign.Ptr (plusPtr)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
 import Control.Monad.IO.Class (MonadIO)
 import Data.String (IsString)
 import Data.Typeable (Typeable)
@@ -252,18 +257,13 @@
 import Vulkan.Core10.Handles (Device(..))
 import Vulkan.Dynamic (DeviceCmds(pVkGetSwapchainStatusKHR))
 import Vulkan.Core10.Handles (Device_T)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Enums.ImageUsageFlagBits (ImageUsageFlags)
 import Vulkan.Core10.Enums.Result (Result)
 import Vulkan.Core10.Enums.Result (Result(..))
 import Vulkan.Core10.Enums.StructureType (StructureType)
 import Vulkan.Extensions.Handles (SwapchainKHR)
 import Vulkan.Extensions.Handles (SwapchainKHR(..))
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
 import Vulkan.Exception (VulkanException(..))
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR))
 import Vulkan.Core10.Enums.Result (Result(SUCCESS))
 import Vulkan.Extensions.VK_KHR_surface (PresentModeKHR(..))
diff --git a/src/Vulkan/Extensions/VK_KHR_shared_presentable_image.hs-boot b/src/Vulkan/Extensions/VK_KHR_shared_presentable_image.hs-boot
--- a/src/Vulkan/Extensions/VK_KHR_shared_presentable_image.hs-boot
+++ b/src/Vulkan/Extensions/VK_KHR_shared_presentable_image.hs-boot
@@ -218,9 +218,10 @@
 -- the generator scripts, not directly.
 module Vulkan.Extensions.VK_KHR_shared_presentable_image  (SharedPresentSurfaceCapabilitiesKHR) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data SharedPresentSurfaceCapabilitiesKHR
 
 instance ToCStruct SharedPresentSurfaceCapabilitiesKHR
diff --git a/src/Vulkan/Extensions/VK_KHR_surface.hs b/src/Vulkan/Extensions/VK_KHR_surface.hs
--- a/src/Vulkan/Extensions/VK_KHR_surface.hs
+++ b/src/Vulkan/Extensions/VK_KHR_surface.hs
@@ -451,6 +451,12 @@
 import Control.Monad.Trans.Class (lift)
 import Control.Monad.Trans.Cont (evalContT)
 import Data.Vector (generateM)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero)
+import Vulkan.Zero (Zero(..))
 import Control.Monad.IO.Class (MonadIO)
 import Data.Bits (Bits)
 import Data.Bits (FiniteBits)
@@ -481,8 +487,6 @@
 import Vulkan.Core10.FundamentalTypes (Extent2D)
 import Vulkan.Core10.FundamentalTypes (Flags)
 import Vulkan.Core10.Enums.Format (Format)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Enums.ImageUsageFlagBits (ImageUsageFlags)
 import Vulkan.Core10.Handles (Instance)
 import Vulkan.Core10.Handles (Instance(..))
@@ -499,11 +503,7 @@
 import Vulkan.Core10.Enums.Result (Result(..))
 import Vulkan.Extensions.Handles (SurfaceKHR)
 import Vulkan.Extensions.Handles (SurfaceKHR(..))
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
 import Vulkan.Exception (VulkanException(..))
-import Vulkan.Zero (Zero)
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.Result (Result(SUCCESS))
 import Vulkan.Extensions.Handles (SurfaceKHR(..))
 foreign import ccall
diff --git a/src/Vulkan/Extensions/VK_KHR_surface.hs-boot b/src/Vulkan/Extensions/VK_KHR_surface.hs-boot
--- a/src/Vulkan/Extensions/VK_KHR_surface.hs-boot
+++ b/src/Vulkan/Extensions/VK_KHR_surface.hs-boot
@@ -376,9 +376,10 @@
                                          , PresentModeKHR
                                          ) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data SurfaceCapabilitiesKHR
 
 instance ToCStruct SurfaceCapabilitiesKHR
diff --git a/src/Vulkan/Extensions/VK_KHR_surface_protected_capabilities.hs b/src/Vulkan/Extensions/VK_KHR_surface_protected_capabilities.hs
--- a/src/Vulkan/Extensions/VK_KHR_surface_protected_capabilities.hs
+++ b/src/Vulkan/Extensions/VK_KHR_surface_protected_capabilities.hs
@@ -117,6 +117,11 @@
 import Foreign.Marshal.Alloc (allocaBytesAligned)
 import Foreign.Ptr (nullPtr)
 import Foreign.Ptr (plusPtr)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
 import Data.String (IsString)
 import Data.Typeable (Typeable)
 import Foreign.Storable (Storable)
@@ -129,12 +134,7 @@
 import Vulkan.Core10.FundamentalTypes (bool32ToBool)
 import Vulkan.Core10.FundamentalTypes (boolToBool32)
 import Vulkan.Core10.FundamentalTypes (Bool32)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR))
 -- | VkSurfaceProtectedCapabilitiesKHR - Structure describing capability of a
 -- surface to be protected
diff --git a/src/Vulkan/Extensions/VK_KHR_surface_protected_capabilities.hs-boot b/src/Vulkan/Extensions/VK_KHR_surface_protected_capabilities.hs-boot
--- a/src/Vulkan/Extensions/VK_KHR_surface_protected_capabilities.hs-boot
+++ b/src/Vulkan/Extensions/VK_KHR_surface_protected_capabilities.hs-boot
@@ -109,9 +109,10 @@
 -- the generator scripts, not directly.
 module Vulkan.Extensions.VK_KHR_surface_protected_capabilities  (SurfaceProtectedCapabilitiesKHR) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data SurfaceProtectedCapabilitiesKHR
 
 instance ToCStruct SurfaceProtectedCapabilitiesKHR
diff --git a/src/Vulkan/Extensions/VK_KHR_swapchain.hs b/src/Vulkan/Extensions/VK_KHR_swapchain.hs
--- a/src/Vulkan/Extensions/VK_KHR_swapchain.hs
+++ b/src/Vulkan/Extensions/VK_KHR_swapchain.hs
@@ -1145,6 +1145,12 @@
 import Data.Vector (generateM)
 import qualified Data.Vector (imapM_)
 import qualified Data.Vector (length)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero)
+import Vulkan.Zero (Zero(..))
 import Control.Monad.IO.Class (MonadIO)
 import Data.Bits (Bits)
 import Data.Bits (FiniteBits)
@@ -1198,8 +1204,6 @@
 import Vulkan.Core10.Handles (Fence(..))
 import Vulkan.Core10.FundamentalTypes (Flags)
 import Vulkan.Core10.Enums.Format (Format)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Handles (Image)
 import Vulkan.Core10.Handles (Image(..))
 import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_image_format_list (ImageFormatListCreateInfo)
@@ -1237,11 +1241,7 @@
 import {-# SOURCE #-} Vulkan.Extensions.VK_AMD_display_native_hdr (SwapchainDisplayNativeHdrCreateInfoAMD)
 import Vulkan.Extensions.Handles (SwapchainKHR)
 import Vulkan.Extensions.Handles (SwapchainKHR(..))
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
 import Vulkan.Exception (VulkanException(..))
-import Vulkan.Zero (Zero)
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.APIConstants (pattern MAX_DEVICE_GROUP_SIZE)
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR))
@@ -1601,8 +1601,7 @@
 -- | acquireNextImageKHR with selectable safeness
 acquireNextImageKHRSafeOrUnsafe :: forall io
                                  . (MonadIO io)
-                                => -- No documentation found for TopLevel ""
-                                   (FunPtr (Ptr Device_T -> SwapchainKHR -> Word64 -> Semaphore -> Fence -> Ptr Word32 -> IO Result) -> Ptr Device_T -> SwapchainKHR -> Word64 -> Semaphore -> Fence -> Ptr Word32 -> IO Result)
+                                => (FunPtr (Ptr Device_T -> SwapchainKHR -> Word64 -> Semaphore -> Fence -> Ptr Word32 -> IO Result) -> Ptr Device_T -> SwapchainKHR -> Word64 -> Semaphore -> Fence -> Ptr Word32 -> IO Result)
                                 -> -- | @device@ is the device associated with @swapchain@.
                                    Device
                                 -> -- | @swapchain@ is the non-retired swapchain from which an image is being
@@ -2087,8 +2086,7 @@
 -- | acquireNextImage2KHR with selectable safeness
 acquireNextImage2KHRSafeOrUnsafe :: forall io
                                   . (MonadIO io)
-                                 => -- No documentation found for TopLevel ""
-                                    (FunPtr (Ptr Device_T -> Ptr AcquireNextImageInfoKHR -> Ptr Word32 -> IO Result) -> Ptr Device_T -> Ptr AcquireNextImageInfoKHR -> Ptr Word32 -> IO Result)
+                                 => (FunPtr (Ptr Device_T -> Ptr AcquireNextImageInfoKHR -> Ptr Word32 -> IO Result) -> Ptr Device_T -> Ptr AcquireNextImageInfoKHR -> Ptr Word32 -> IO Result)
                                  -> -- | @device@ is the device associated with @swapchain@.
                                     Device
                                  -> -- | @pAcquireInfo@ is a pointer to a 'AcquireNextImageInfoKHR' structure
@@ -2720,7 +2718,7 @@
 deriving instance Show (Chain es) => Show (SwapchainCreateInfoKHR es)
 
 instance Extensible SwapchainCreateInfoKHR where
-  extensibleType = STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR
+  extensibleTypeName = "SwapchainCreateInfoKHR"
   setNext x next = x{next = next}
   getNext SwapchainCreateInfoKHR{..} = next
   extends :: forall e b proxy. Typeable e => proxy e -> (Extends SwapchainCreateInfoKHR e => b) -> Maybe b
@@ -2942,7 +2940,7 @@
 deriving instance Show (Chain es) => Show (PresentInfoKHR es)
 
 instance Extensible PresentInfoKHR where
-  extensibleType = STRUCTURE_TYPE_PRESENT_INFO_KHR
+  extensibleTypeName = "PresentInfoKHR"
   setNext x next = x{next = next}
   getNext PresentInfoKHR{..} = next
   extends :: forall e b proxy. Typeable e => proxy e -> (Extends PresentInfoKHR e => b) -> Maybe b
diff --git a/src/Vulkan/Extensions/VK_KHR_swapchain.hs-boot b/src/Vulkan/Extensions/VK_KHR_swapchain.hs-boot
--- a/src/Vulkan/Extensions/VK_KHR_swapchain.hs-boot
+++ b/src/Vulkan/Extensions/VK_KHR_swapchain.hs-boot
@@ -1086,13 +1086,13 @@
                                            , DeviceGroupPresentModeFlagBitsKHR
                                            ) where
 
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (ToCStruct)
 import Data.Kind (Type)
 import {-# SOURCE #-} Vulkan.CStruct.Extends (Chain)
 import {-# SOURCE #-} Vulkan.CStruct.Extends (Extendss)
-import Vulkan.CStruct (FromCStruct)
 import {-# SOURCE #-} Vulkan.CStruct.Extends (PeekChain)
 import {-# SOURCE #-} Vulkan.CStruct.Extends (PokeChain)
-import Vulkan.CStruct (ToCStruct)
 data AcquireNextImageInfoKHR
 
 instance ToCStruct AcquireNextImageInfoKHR
diff --git a/src/Vulkan/Extensions/VK_KHR_variable_pointers.hs b/src/Vulkan/Extensions/VK_KHR_variable_pointers.hs
--- a/src/Vulkan/Extensions/VK_KHR_variable_pointers.hs
+++ b/src/Vulkan/Extensions/VK_KHR_variable_pointers.hs
@@ -113,9 +113,9 @@
 --
 -- == New SPIR-V Capabilities
 --
--- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-variablepointers VariablePointers>
+-- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-VariablePointers VariablePointers>
 --
--- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-variablepointers VariablePointersStorageBuffer>
+-- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-VariablePointersStorageBuffer VariablePointersStorageBuffer>
 --
 -- == Issues
 --
diff --git a/src/Vulkan/Extensions/VK_KHR_vulkan_memory_model.hs b/src/Vulkan/Extensions/VK_KHR_vulkan_memory_model.hs
--- a/src/Vulkan/Extensions/VK_KHR_vulkan_memory_model.hs
+++ b/src/Vulkan/Extensions/VK_KHR_vulkan_memory_model.hs
@@ -102,7 +102,7 @@
 --
 -- == New SPIR-V Capabilities
 --
--- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-memorymodel VulkanMemoryModelKHR>
+-- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-VulkanMemoryModel VulkanMemoryModelKHR>
 --
 -- == Version History
 --
diff --git a/src/Vulkan/Extensions/VK_KHR_wayland_surface.hs b/src/Vulkan/Extensions/VK_KHR_wayland_surface.hs
--- a/src/Vulkan/Extensions/VK_KHR_wayland_surface.hs
+++ b/src/Vulkan/Extensions/VK_KHR_wayland_surface.hs
@@ -217,6 +217,12 @@
 import Numeric (showHex)
 import Control.Monad.Trans.Class (lift)
 import Control.Monad.Trans.Cont (evalContT)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero)
+import Vulkan.Zero (Zero(..))
 import Control.Monad.IO.Class (MonadIO)
 import Data.Bits (Bits)
 import Data.Bits (FiniteBits)
@@ -242,8 +248,6 @@
 import Vulkan.Core10.FundamentalTypes (Bool32)
 import Vulkan.Core10.FundamentalTypes (Bool32(..))
 import Vulkan.Core10.FundamentalTypes (Flags)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Handles (Instance)
 import Vulkan.Core10.Handles (Instance(..))
 import Vulkan.Dynamic (InstanceCmds(pVkCreateWaylandSurfaceKHR))
@@ -257,11 +261,7 @@
 import Vulkan.Core10.Enums.StructureType (StructureType)
 import Vulkan.Extensions.Handles (SurfaceKHR)
 import Vulkan.Extensions.Handles (SurfaceKHR(..))
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
 import Vulkan.Exception (VulkanException(..))
-import Vulkan.Zero (Zero)
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR))
 import Vulkan.Core10.Enums.Result (Result(SUCCESS))
 import Vulkan.Extensions.Handles (SurfaceKHR(..))
diff --git a/src/Vulkan/Extensions/VK_KHR_wayland_surface.hs-boot b/src/Vulkan/Extensions/VK_KHR_wayland_surface.hs-boot
--- a/src/Vulkan/Extensions/VK_KHR_wayland_surface.hs-boot
+++ b/src/Vulkan/Extensions/VK_KHR_wayland_surface.hs-boot
@@ -190,9 +190,10 @@
                                                  , Wl_display
                                                  ) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data WaylandSurfaceCreateInfoKHR
 
 instance ToCStruct WaylandSurfaceCreateInfoKHR
diff --git a/src/Vulkan/Extensions/VK_KHR_win32_keyed_mutex.hs b/src/Vulkan/Extensions/VK_KHR_win32_keyed_mutex.hs
--- a/src/Vulkan/Extensions/VK_KHR_win32_keyed_mutex.hs
+++ b/src/Vulkan/Extensions/VK_KHR_win32_keyed_mutex.hs
@@ -103,6 +103,11 @@
 import Data.Vector (generateM)
 import qualified Data.Vector (imapM_)
 import qualified Data.Vector (length)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
 import Data.String (IsString)
 import Data.Typeable (Typeable)
 import Foreign.Storable (Storable(peek))
@@ -118,12 +123,7 @@
 import Data.Vector (Vector)
 import Vulkan.CStruct.Utils (advancePtrBytes)
 import Vulkan.Core10.Handles (DeviceMemory)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR))
 -- | VkWin32KeyedMutexAcquireReleaseInfoKHR - Use the Windows keyed mutex
 -- mechanism to synchronize work
diff --git a/src/Vulkan/Extensions/VK_KHR_win32_keyed_mutex.hs-boot b/src/Vulkan/Extensions/VK_KHR_win32_keyed_mutex.hs-boot
--- a/src/Vulkan/Extensions/VK_KHR_win32_keyed_mutex.hs-boot
+++ b/src/Vulkan/Extensions/VK_KHR_win32_keyed_mutex.hs-boot
@@ -88,9 +88,10 @@
 -- the generator scripts, not directly.
 module Vulkan.Extensions.VK_KHR_win32_keyed_mutex  (Win32KeyedMutexAcquireReleaseInfoKHR) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data Win32KeyedMutexAcquireReleaseInfoKHR
 
 instance ToCStruct Win32KeyedMutexAcquireReleaseInfoKHR
diff --git a/src/Vulkan/Extensions/VK_KHR_win32_surface.hs b/src/Vulkan/Extensions/VK_KHR_win32_surface.hs
--- a/src/Vulkan/Extensions/VK_KHR_win32_surface.hs
+++ b/src/Vulkan/Extensions/VK_KHR_win32_surface.hs
@@ -243,6 +243,12 @@
 import Numeric (showHex)
 import Control.Monad.Trans.Class (lift)
 import Control.Monad.Trans.Cont (evalContT)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero)
+import Vulkan.Zero (Zero(..))
 import Control.Monad.IO.Class (MonadIO)
 import Data.Bits (Bits)
 import Data.Bits (FiniteBits)
@@ -268,8 +274,6 @@
 import Vulkan.Core10.FundamentalTypes (Bool32)
 import Vulkan.Core10.FundamentalTypes (Bool32(..))
 import Vulkan.Core10.FundamentalTypes (Flags)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Handles (Instance)
 import Vulkan.Core10.Handles (Instance(..))
 import Vulkan.Dynamic (InstanceCmds(pVkCreateWin32SurfaceKHR))
@@ -283,11 +287,7 @@
 import Vulkan.Core10.Enums.StructureType (StructureType)
 import Vulkan.Extensions.Handles (SurfaceKHR)
 import Vulkan.Extensions.Handles (SurfaceKHR(..))
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
 import Vulkan.Exception (VulkanException(..))
-import Vulkan.Zero (Zero)
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR))
 import Vulkan.Core10.Enums.Result (Result(SUCCESS))
 import Vulkan.Extensions.Handles (SurfaceKHR(..))
diff --git a/src/Vulkan/Extensions/VK_KHR_win32_surface.hs-boot b/src/Vulkan/Extensions/VK_KHR_win32_surface.hs-boot
--- a/src/Vulkan/Extensions/VK_KHR_win32_surface.hs-boot
+++ b/src/Vulkan/Extensions/VK_KHR_win32_surface.hs-boot
@@ -214,9 +214,10 @@
 -- the generator scripts, not directly.
 module Vulkan.Extensions.VK_KHR_win32_surface  (Win32SurfaceCreateInfoKHR) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data Win32SurfaceCreateInfoKHR
 
 instance ToCStruct Win32SurfaceCreateInfoKHR
diff --git a/src/Vulkan/Extensions/VK_KHR_xcb_surface.hs b/src/Vulkan/Extensions/VK_KHR_xcb_surface.hs
--- a/src/Vulkan/Extensions/VK_KHR_xcb_surface.hs
+++ b/src/Vulkan/Extensions/VK_KHR_xcb_surface.hs
@@ -200,6 +200,12 @@
 import Numeric (showHex)
 import Control.Monad.Trans.Class (lift)
 import Control.Monad.Trans.Cont (evalContT)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero)
+import Vulkan.Zero (Zero(..))
 import Control.Monad.IO.Class (MonadIO)
 import Data.Bits (Bits)
 import Data.Bits (FiniteBits)
@@ -225,8 +231,6 @@
 import Vulkan.Core10.FundamentalTypes (Bool32)
 import Vulkan.Core10.FundamentalTypes (Bool32(..))
 import Vulkan.Core10.FundamentalTypes (Flags)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Handles (Instance)
 import Vulkan.Core10.Handles (Instance(..))
 import Vulkan.Dynamic (InstanceCmds(pVkCreateXcbSurfaceKHR))
@@ -240,11 +244,7 @@
 import Vulkan.Core10.Enums.StructureType (StructureType)
 import Vulkan.Extensions.Handles (SurfaceKHR)
 import Vulkan.Extensions.Handles (SurfaceKHR(..))
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
 import Vulkan.Exception (VulkanException(..))
-import Vulkan.Zero (Zero)
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR))
 import Vulkan.Core10.Enums.Result (Result(SUCCESS))
 import Vulkan.Extensions.Handles (SurfaceKHR(..))
diff --git a/src/Vulkan/Extensions/VK_KHR_xcb_surface.hs-boot b/src/Vulkan/Extensions/VK_KHR_xcb_surface.hs-boot
--- a/src/Vulkan/Extensions/VK_KHR_xcb_surface.hs-boot
+++ b/src/Vulkan/Extensions/VK_KHR_xcb_surface.hs-boot
@@ -173,10 +173,11 @@
                                              , Xcb_visualid_t
                                              ) where
 
-import Data.Word (Word32)
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Word (Word32)
+import Data.Kind (Type)
+
 data XcbSurfaceCreateInfoKHR
 
 instance ToCStruct XcbSurfaceCreateInfoKHR
diff --git a/src/Vulkan/Extensions/VK_KHR_xlib_surface.hs b/src/Vulkan/Extensions/VK_KHR_xlib_surface.hs
--- a/src/Vulkan/Extensions/VK_KHR_xlib_surface.hs
+++ b/src/Vulkan/Extensions/VK_KHR_xlib_surface.hs
@@ -200,6 +200,12 @@
 import Numeric (showHex)
 import Control.Monad.Trans.Class (lift)
 import Control.Monad.Trans.Cont (evalContT)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero)
+import Vulkan.Zero (Zero(..))
 import Control.Monad.IO.Class (MonadIO)
 import Data.Bits (Bits)
 import Data.Bits (FiniteBits)
@@ -226,8 +232,6 @@
 import Vulkan.Core10.FundamentalTypes (Bool32)
 import Vulkan.Core10.FundamentalTypes (Bool32(..))
 import Vulkan.Core10.FundamentalTypes (Flags)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Handles (Instance)
 import Vulkan.Core10.Handles (Instance(..))
 import Vulkan.Dynamic (InstanceCmds(pVkCreateXlibSurfaceKHR))
@@ -241,11 +245,7 @@
 import Vulkan.Core10.Enums.StructureType (StructureType)
 import Vulkan.Extensions.Handles (SurfaceKHR)
 import Vulkan.Extensions.Handles (SurfaceKHR(..))
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
 import Vulkan.Exception (VulkanException(..))
-import Vulkan.Zero (Zero)
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR))
 import Vulkan.Core10.Enums.Result (Result(SUCCESS))
 import Vulkan.Extensions.Handles (SurfaceKHR(..))
diff --git a/src/Vulkan/Extensions/VK_KHR_xlib_surface.hs-boot b/src/Vulkan/Extensions/VK_KHR_xlib_surface.hs-boot
--- a/src/Vulkan/Extensions/VK_KHR_xlib_surface.hs-boot
+++ b/src/Vulkan/Extensions/VK_KHR_xlib_surface.hs-boot
@@ -173,11 +173,12 @@
                                               , VisualID
                                               ) where
 
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (ToCStruct)
 import Foreign.Ptr (Ptr)
 import Data.Word (Word64)
 import Data.Kind (Type)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (ToCStruct)
+
 data XlibSurfaceCreateInfoKHR
 
 instance ToCStruct XlibSurfaceCreateInfoKHR
diff --git a/src/Vulkan/Extensions/VK_MVK_ios_surface.hs b/src/Vulkan/Extensions/VK_MVK_ios_surface.hs
--- a/src/Vulkan/Extensions/VK_MVK_ios_surface.hs
+++ b/src/Vulkan/Extensions/VK_MVK_ios_surface.hs
@@ -138,6 +138,12 @@
 import Numeric (showHex)
 import Control.Monad.Trans.Class (lift)
 import Control.Monad.Trans.Cont (evalContT)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero)
+import Vulkan.Zero (Zero(..))
 import Control.Monad.IO.Class (MonadIO)
 import Data.Bits (Bits)
 import Data.Bits (FiniteBits)
@@ -159,8 +165,6 @@
 import Vulkan.NamedType ((:::))
 import Vulkan.Core10.AllocationCallbacks (AllocationCallbacks)
 import Vulkan.Core10.FundamentalTypes (Flags)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Handles (Instance)
 import Vulkan.Core10.Handles (Instance(..))
 import Vulkan.Dynamic (InstanceCmds(pVkCreateIOSSurfaceMVK))
@@ -170,11 +174,7 @@
 import Vulkan.Core10.Enums.StructureType (StructureType)
 import Vulkan.Extensions.Handles (SurfaceKHR)
 import Vulkan.Extensions.Handles (SurfaceKHR(..))
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
 import Vulkan.Exception (VulkanException(..))
-import Vulkan.Zero (Zero)
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK))
 import Vulkan.Core10.Enums.Result (Result(SUCCESS))
 import Vulkan.Extensions.Handles (SurfaceKHR(..))
diff --git a/src/Vulkan/Extensions/VK_MVK_ios_surface.hs-boot b/src/Vulkan/Extensions/VK_MVK_ios_surface.hs-boot
--- a/src/Vulkan/Extensions/VK_MVK_ios_surface.hs-boot
+++ b/src/Vulkan/Extensions/VK_MVK_ios_surface.hs-boot
@@ -112,9 +112,10 @@
 -- the generator scripts, not directly.
 module Vulkan.Extensions.VK_MVK_ios_surface  (IOSSurfaceCreateInfoMVK) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data IOSSurfaceCreateInfoMVK
 
 instance ToCStruct IOSSurfaceCreateInfoMVK
diff --git a/src/Vulkan/Extensions/VK_MVK_macos_surface.hs b/src/Vulkan/Extensions/VK_MVK_macos_surface.hs
--- a/src/Vulkan/Extensions/VK_MVK_macos_surface.hs
+++ b/src/Vulkan/Extensions/VK_MVK_macos_surface.hs
@@ -138,6 +138,12 @@
 import Numeric (showHex)
 import Control.Monad.Trans.Class (lift)
 import Control.Monad.Trans.Cont (evalContT)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero)
+import Vulkan.Zero (Zero(..))
 import Control.Monad.IO.Class (MonadIO)
 import Data.Bits (Bits)
 import Data.Bits (FiniteBits)
@@ -159,8 +165,6 @@
 import Vulkan.NamedType ((:::))
 import Vulkan.Core10.AllocationCallbacks (AllocationCallbacks)
 import Vulkan.Core10.FundamentalTypes (Flags)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Handles (Instance)
 import Vulkan.Core10.Handles (Instance(..))
 import Vulkan.Dynamic (InstanceCmds(pVkCreateMacOSSurfaceMVK))
@@ -170,11 +174,7 @@
 import Vulkan.Core10.Enums.StructureType (StructureType)
 import Vulkan.Extensions.Handles (SurfaceKHR)
 import Vulkan.Extensions.Handles (SurfaceKHR(..))
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
 import Vulkan.Exception (VulkanException(..))
-import Vulkan.Zero (Zero)
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK))
 import Vulkan.Core10.Enums.Result (Result(SUCCESS))
 import Vulkan.Extensions.Handles (SurfaceKHR(..))
diff --git a/src/Vulkan/Extensions/VK_MVK_macos_surface.hs-boot b/src/Vulkan/Extensions/VK_MVK_macos_surface.hs-boot
--- a/src/Vulkan/Extensions/VK_MVK_macos_surface.hs-boot
+++ b/src/Vulkan/Extensions/VK_MVK_macos_surface.hs-boot
@@ -112,9 +112,10 @@
 -- the generator scripts, not directly.
 module Vulkan.Extensions.VK_MVK_macos_surface  (MacOSSurfaceCreateInfoMVK) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data MacOSSurfaceCreateInfoMVK
 
 instance ToCStruct MacOSSurfaceCreateInfoMVK
diff --git a/src/Vulkan/Extensions/VK_NN_vi_surface.hs b/src/Vulkan/Extensions/VK_NN_vi_surface.hs
--- a/src/Vulkan/Extensions/VK_NN_vi_surface.hs
+++ b/src/Vulkan/Extensions/VK_NN_vi_surface.hs
@@ -137,6 +137,12 @@
 import Numeric (showHex)
 import Control.Monad.Trans.Class (lift)
 import Control.Monad.Trans.Cont (evalContT)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero)
+import Vulkan.Zero (Zero(..))
 import Control.Monad.IO.Class (MonadIO)
 import Data.Bits (Bits)
 import Data.Bits (FiniteBits)
@@ -158,8 +164,6 @@
 import Vulkan.NamedType ((:::))
 import Vulkan.Core10.AllocationCallbacks (AllocationCallbacks)
 import Vulkan.Core10.FundamentalTypes (Flags)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Handles (Instance)
 import Vulkan.Core10.Handles (Instance(..))
 import Vulkan.Dynamic (InstanceCmds(pVkCreateViSurfaceNN))
@@ -169,11 +173,7 @@
 import Vulkan.Core10.Enums.StructureType (StructureType)
 import Vulkan.Extensions.Handles (SurfaceKHR)
 import Vulkan.Extensions.Handles (SurfaceKHR(..))
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
 import Vulkan.Exception (VulkanException(..))
-import Vulkan.Zero (Zero)
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN))
 import Vulkan.Core10.Enums.Result (Result(SUCCESS))
 import Vulkan.Extensions.Handles (SurfaceKHR(..))
diff --git a/src/Vulkan/Extensions/VK_NN_vi_surface.hs-boot b/src/Vulkan/Extensions/VK_NN_vi_surface.hs-boot
--- a/src/Vulkan/Extensions/VK_NN_vi_surface.hs-boot
+++ b/src/Vulkan/Extensions/VK_NN_vi_surface.hs-boot
@@ -111,9 +111,10 @@
 -- the generator scripts, not directly.
 module Vulkan.Extensions.VK_NN_vi_surface  (ViSurfaceCreateInfoNN) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data ViSurfaceCreateInfoNN
 
 instance ToCStruct ViSurfaceCreateInfoNN
diff --git a/src/Vulkan/Extensions/VK_NVX_image_view_handle.hs b/src/Vulkan/Extensions/VK_NVX_image_view_handle.hs
--- a/src/Vulkan/Extensions/VK_NVX_image_view_handle.hs
+++ b/src/Vulkan/Extensions/VK_NVX_image_view_handle.hs
@@ -112,6 +112,11 @@
 import Foreign.Ptr (plusPtr)
 import Control.Monad.Trans.Class (lift)
 import Control.Monad.Trans.Cont (evalContT)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
 import Control.Monad.IO.Class (MonadIO)
 import Data.String (IsString)
 import Data.Typeable (Typeable)
@@ -135,18 +140,13 @@
 import Vulkan.Dynamic (DeviceCmds(pVkGetImageViewHandleNVX))
 import Vulkan.Core10.FundamentalTypes (DeviceSize)
 import Vulkan.Core10.Handles (Device_T)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Handles (ImageView)
 import Vulkan.Core10.Handles (ImageView(..))
 import Vulkan.Core10.Enums.Result (Result)
 import Vulkan.Core10.Enums.Result (Result(..))
 import Vulkan.Core10.Handles (Sampler)
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
 import Vulkan.Exception (VulkanException(..))
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX))
 import Vulkan.Core10.Enums.Result (Result(SUCCESS))
diff --git a/src/Vulkan/Extensions/VK_NVX_image_view_handle.hs-boot b/src/Vulkan/Extensions/VK_NVX_image_view_handle.hs-boot
--- a/src/Vulkan/Extensions/VK_NVX_image_view_handle.hs-boot
+++ b/src/Vulkan/Extensions/VK_NVX_image_view_handle.hs-boot
@@ -95,9 +95,10 @@
                                                    , ImageViewHandleInfoNVX
                                                    ) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data ImageViewAddressPropertiesNVX
 
 instance ToCStruct ImageViewAddressPropertiesNVX
diff --git a/src/Vulkan/Extensions/VK_NVX_multiview_per_view_attributes.hs b/src/Vulkan/Extensions/VK_NVX_multiview_per_view_attributes.hs
--- a/src/Vulkan/Extensions/VK_NVX_multiview_per_view_attributes.hs
+++ b/src/Vulkan/Extensions/VK_NVX_multiview_per_view_attributes.hs
@@ -116,7 +116,7 @@
 --
 -- == New SPIR-V Capabilities
 --
--- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-perviewattributes PerViewAttributesNV>
+-- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-PerViewAttributesNV PerViewAttributesNV>
 --
 -- == Examples
 --
@@ -164,6 +164,11 @@
 import Foreign.Marshal.Alloc (allocaBytesAligned)
 import Foreign.Ptr (nullPtr)
 import Foreign.Ptr (plusPtr)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
 import Data.String (IsString)
 import Data.Typeable (Typeable)
 import Foreign.Storable (Storable)
@@ -176,12 +181,7 @@
 import Vulkan.Core10.FundamentalTypes (bool32ToBool)
 import Vulkan.Core10.FundamentalTypes (boolToBool32)
 import Vulkan.Core10.FundamentalTypes (Bool32)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX))
 -- | VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX - Structure
 -- describing multiview limits that can be supported by an implementation
diff --git a/src/Vulkan/Extensions/VK_NVX_multiview_per_view_attributes.hs-boot b/src/Vulkan/Extensions/VK_NVX_multiview_per_view_attributes.hs-boot
--- a/src/Vulkan/Extensions/VK_NVX_multiview_per_view_attributes.hs-boot
+++ b/src/Vulkan/Extensions/VK_NVX_multiview_per_view_attributes.hs-boot
@@ -116,7 +116,7 @@
 --
 -- == New SPIR-V Capabilities
 --
--- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-perviewattributes PerViewAttributesNV>
+-- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-PerViewAttributesNV PerViewAttributesNV>
 --
 -- == Examples
 --
@@ -156,9 +156,10 @@
 -- the generator scripts, not directly.
 module Vulkan.Extensions.VK_NVX_multiview_per_view_attributes  (PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
 
 instance ToCStruct PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
diff --git a/src/Vulkan/Extensions/VK_NV_clip_space_w_scaling.hs b/src/Vulkan/Extensions/VK_NV_clip_space_w_scaling.hs
--- a/src/Vulkan/Extensions/VK_NV_clip_space_w_scaling.hs
+++ b/src/Vulkan/Extensions/VK_NV_clip_space_w_scaling.hs
@@ -220,16 +220,23 @@
 import GHC.Ptr (nullFunPtr)
 import Foreign.Ptr (nullPtr)
 import Foreign.Ptr (plusPtr)
+import Data.Coerce (coerce)
 import Control.Monad.Trans.Class (lift)
 import Control.Monad.Trans.Cont (evalContT)
 import Data.Vector (generateM)
 import qualified Data.Vector (imapM_)
 import qualified Data.Vector (length)
 import qualified Data.Vector (null)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
 import Control.Monad.IO.Class (MonadIO)
 import Data.String (IsString)
 import Data.Typeable (Typeable)
 import Foreign.C.Types (CFloat)
+import Foreign.C.Types (CFloat(..))
 import Foreign.C.Types (CFloat(CFloat))
 import Foreign.Storable (Storable)
 import Foreign.Storable (Storable(peek))
@@ -253,12 +260,7 @@
 import Vulkan.Core10.Handles (CommandBuffer(..))
 import Vulkan.Core10.Handles (CommandBuffer_T)
 import Vulkan.Dynamic (DeviceCmds(pVkCmdSetViewportWScalingNV))
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV))
 foreign import ccall
 #if !defined(SAFE_FOREIGN_CALLS)
@@ -384,7 +386,7 @@
     xcoeff <- peek @CFloat ((p `plusPtr` 0 :: Ptr CFloat))
     ycoeff <- peek @CFloat ((p `plusPtr` 4 :: Ptr CFloat))
     pure $ ViewportWScalingNV
-             ((\(CFloat a) -> a) xcoeff) ((\(CFloat a) -> a) ycoeff)
+             (coerce @CFloat @Float xcoeff) (coerce @CFloat @Float ycoeff)
 
 instance Storable ViewportWScalingNV where
   sizeOf ~_ = 8
diff --git a/src/Vulkan/Extensions/VK_NV_clip_space_w_scaling.hs-boot b/src/Vulkan/Extensions/VK_NV_clip_space_w_scaling.hs-boot
--- a/src/Vulkan/Extensions/VK_NV_clip_space_w_scaling.hs-boot
+++ b/src/Vulkan/Extensions/VK_NV_clip_space_w_scaling.hs-boot
@@ -207,9 +207,10 @@
                                                      , ViewportWScalingNV
                                                      ) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data PipelineViewportWScalingStateCreateInfoNV
 
 instance ToCStruct PipelineViewportWScalingStateCreateInfoNV
diff --git a/src/Vulkan/Extensions/VK_NV_compute_shader_derivatives.hs b/src/Vulkan/Extensions/VK_NV_compute_shader_derivatives.hs
--- a/src/Vulkan/Extensions/VK_NV_compute_shader_derivatives.hs
+++ b/src/Vulkan/Extensions/VK_NV_compute_shader_derivatives.hs
@@ -84,9 +84,9 @@
 --
 -- == New SPIR-V Capability
 --
--- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-computederivatives-quads ComputeDerivativeGroupQuadsNV>
+-- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-ComputeDerivativeGroupQuadsNV ComputeDerivativeGroupQuadsNV>
 --
--- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-computederivatives-linear ComputeDerivativeGroupLinearNV>
+-- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-ComputeDerivativeGroupLinearNV ComputeDerivativeGroupLinearNV>
 --
 -- == Issues
 --
@@ -127,6 +127,11 @@
 import Foreign.Marshal.Alloc (allocaBytesAligned)
 import Foreign.Ptr (nullPtr)
 import Foreign.Ptr (plusPtr)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
 import Data.String (IsString)
 import Data.Typeable (Typeable)
 import Foreign.Storable (Storable)
@@ -139,12 +144,7 @@
 import Vulkan.Core10.FundamentalTypes (bool32ToBool)
 import Vulkan.Core10.FundamentalTypes (boolToBool32)
 import Vulkan.Core10.FundamentalTypes (Bool32)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV))
 -- | VkPhysicalDeviceComputeShaderDerivativesFeaturesNV - Structure
 -- describing compute shader derivative features that can be supported by
diff --git a/src/Vulkan/Extensions/VK_NV_compute_shader_derivatives.hs-boot b/src/Vulkan/Extensions/VK_NV_compute_shader_derivatives.hs-boot
--- a/src/Vulkan/Extensions/VK_NV_compute_shader_derivatives.hs-boot
+++ b/src/Vulkan/Extensions/VK_NV_compute_shader_derivatives.hs-boot
@@ -84,9 +84,9 @@
 --
 -- == New SPIR-V Capability
 --
--- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-computederivatives-quads ComputeDerivativeGroupQuadsNV>
+-- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-ComputeDerivativeGroupQuadsNV ComputeDerivativeGroupQuadsNV>
 --
--- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-computederivatives-linear ComputeDerivativeGroupLinearNV>
+-- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-ComputeDerivativeGroupLinearNV ComputeDerivativeGroupLinearNV>
 --
 -- == Issues
 --
@@ -119,9 +119,10 @@
 -- the generator scripts, not directly.
 module Vulkan.Extensions.VK_NV_compute_shader_derivatives  (PhysicalDeviceComputeShaderDerivativesFeaturesNV) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data PhysicalDeviceComputeShaderDerivativesFeaturesNV
 
 instance ToCStruct PhysicalDeviceComputeShaderDerivativesFeaturesNV
diff --git a/src/Vulkan/Extensions/VK_NV_cooperative_matrix.hs b/src/Vulkan/Extensions/VK_NV_cooperative_matrix.hs
--- a/src/Vulkan/Extensions/VK_NV_cooperative_matrix.hs
+++ b/src/Vulkan/Extensions/VK_NV_cooperative_matrix.hs
@@ -107,7 +107,7 @@
 --
 -- == New SPIR-V Capabilities
 --
--- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-cooperativeMatrix CooperativeMatrixNV>
+-- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-CooperativeMatrixNV CooperativeMatrixNV>
 --
 -- == Issues
 --
@@ -194,6 +194,12 @@
 import Control.Monad.Trans.Class (lift)
 import Control.Monad.Trans.Cont (evalContT)
 import Data.Vector (generateM)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero)
+import Vulkan.Zero (Zero(..))
 import Control.Monad.IO.Class (MonadIO)
 import Data.String (IsString)
 import Data.Typeable (Typeable)
@@ -218,8 +224,6 @@
 import Vulkan.Core10.FundamentalTypes (boolToBool32)
 import Vulkan.NamedType ((:::))
 import Vulkan.Core10.FundamentalTypes (Bool32)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Dynamic (InstanceCmds(pVkGetPhysicalDeviceCooperativeMatrixPropertiesNV))
 import Vulkan.Core10.Handles (PhysicalDevice)
 import Vulkan.Core10.Handles (PhysicalDevice(..))
@@ -228,11 +232,7 @@
 import Vulkan.Core10.Enums.Result (Result(..))
 import Vulkan.Core10.Enums.ShaderStageFlagBits (ShaderStageFlags)
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
 import Vulkan.Exception (VulkanException(..))
-import Vulkan.Zero (Zero)
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV))
diff --git a/src/Vulkan/Extensions/VK_NV_cooperative_matrix.hs-boot b/src/Vulkan/Extensions/VK_NV_cooperative_matrix.hs-boot
--- a/src/Vulkan/Extensions/VK_NV_cooperative_matrix.hs-boot
+++ b/src/Vulkan/Extensions/VK_NV_cooperative_matrix.hs-boot
@@ -107,7 +107,7 @@
 --
 -- == New SPIR-V Capabilities
 --
--- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-cooperativeMatrix CooperativeMatrixNV>
+-- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-CooperativeMatrixNV CooperativeMatrixNV>
 --
 -- == Issues
 --
@@ -152,9 +152,10 @@
                                                    , PhysicalDeviceCooperativeMatrixPropertiesNV
                                                    ) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data CooperativeMatrixPropertiesNV
 
 instance ToCStruct CooperativeMatrixPropertiesNV
diff --git a/src/Vulkan/Extensions/VK_NV_corner_sampled_image.hs b/src/Vulkan/Extensions/VK_NV_corner_sampled_image.hs
--- a/src/Vulkan/Extensions/VK_NV_corner_sampled_image.hs
+++ b/src/Vulkan/Extensions/VK_NV_corner_sampled_image.hs
@@ -162,6 +162,11 @@
 import Foreign.Marshal.Alloc (allocaBytesAligned)
 import Foreign.Ptr (nullPtr)
 import Foreign.Ptr (plusPtr)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
 import Data.String (IsString)
 import Data.Typeable (Typeable)
 import Foreign.Storable (Storable)
@@ -174,12 +179,7 @@
 import Vulkan.Core10.FundamentalTypes (bool32ToBool)
 import Vulkan.Core10.FundamentalTypes (boolToBool32)
 import Vulkan.Core10.FundamentalTypes (Bool32)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV))
 -- | VkPhysicalDeviceCornerSampledImageFeaturesNV - Structure describing
 -- corner sampled image features that can be supported by an implementation
diff --git a/src/Vulkan/Extensions/VK_NV_corner_sampled_image.hs-boot b/src/Vulkan/Extensions/VK_NV_corner_sampled_image.hs-boot
--- a/src/Vulkan/Extensions/VK_NV_corner_sampled_image.hs-boot
+++ b/src/Vulkan/Extensions/VK_NV_corner_sampled_image.hs-boot
@@ -154,9 +154,10 @@
 -- the generator scripts, not directly.
 module Vulkan.Extensions.VK_NV_corner_sampled_image  (PhysicalDeviceCornerSampledImageFeaturesNV) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data PhysicalDeviceCornerSampledImageFeaturesNV
 
 instance ToCStruct PhysicalDeviceCornerSampledImageFeaturesNV
diff --git a/src/Vulkan/Extensions/VK_NV_coverage_reduction_mode.hs b/src/Vulkan/Extensions/VK_NV_coverage_reduction_mode.hs
--- a/src/Vulkan/Extensions/VK_NV_coverage_reduction_mode.hs
+++ b/src/Vulkan/Extensions/VK_NV_coverage_reduction_mode.hs
@@ -165,6 +165,12 @@
 import Control.Monad.Trans.Class (lift)
 import Control.Monad.Trans.Cont (evalContT)
 import Data.Vector (generateM)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero)
+import Vulkan.Zero (Zero(..))
 import Control.Monad.IO.Class (MonadIO)
 import Data.Bits (Bits)
 import Data.Bits (FiniteBits)
@@ -192,8 +198,6 @@
 import Vulkan.NamedType ((:::))
 import Vulkan.Core10.FundamentalTypes (Bool32)
 import Vulkan.Core10.FundamentalTypes (Flags)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Dynamic (InstanceCmds(pVkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV))
 import Vulkan.Core10.Handles (PhysicalDevice)
 import Vulkan.Core10.Handles (PhysicalDevice(..))
@@ -203,11 +207,7 @@
 import Vulkan.Core10.Enums.SampleCountFlagBits (SampleCountFlagBits)
 import Vulkan.Core10.Enums.SampleCountFlagBits (SampleCountFlags)
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
 import Vulkan.Exception (VulkanException(..))
-import Vulkan.Zero (Zero)
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV))
diff --git a/src/Vulkan/Extensions/VK_NV_coverage_reduction_mode.hs-boot b/src/Vulkan/Extensions/VK_NV_coverage_reduction_mode.hs-boot
--- a/src/Vulkan/Extensions/VK_NV_coverage_reduction_mode.hs-boot
+++ b/src/Vulkan/Extensions/VK_NV_coverage_reduction_mode.hs-boot
@@ -135,9 +135,10 @@
                                                         , PipelineCoverageReductionStateCreateInfoNV
                                                         ) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data FramebufferMixedSamplesCombinationNV
 
 instance ToCStruct FramebufferMixedSamplesCombinationNV
diff --git a/src/Vulkan/Extensions/VK_NV_dedicated_allocation.hs b/src/Vulkan/Extensions/VK_NV_dedicated_allocation.hs
--- a/src/Vulkan/Extensions/VK_NV_dedicated_allocation.hs
+++ b/src/Vulkan/Extensions/VK_NV_dedicated_allocation.hs
@@ -187,6 +187,11 @@
 import Foreign.Marshal.Alloc (allocaBytesAligned)
 import Foreign.Ptr (nullPtr)
 import Foreign.Ptr (plusPtr)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
 import Data.String (IsString)
 import Data.Typeable (Typeable)
 import Foreign.Storable (Storable)
@@ -200,13 +205,8 @@
 import Vulkan.Core10.FundamentalTypes (boolToBool32)
 import Vulkan.Core10.FundamentalTypes (Bool32)
 import Vulkan.Core10.Handles (Buffer)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Handles (Image)
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV))
diff --git a/src/Vulkan/Extensions/VK_NV_dedicated_allocation.hs-boot b/src/Vulkan/Extensions/VK_NV_dedicated_allocation.hs-boot
--- a/src/Vulkan/Extensions/VK_NV_dedicated_allocation.hs-boot
+++ b/src/Vulkan/Extensions/VK_NV_dedicated_allocation.hs-boot
@@ -180,9 +180,10 @@
                                                      , DedicatedAllocationMemoryAllocateInfoNV
                                                      ) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data DedicatedAllocationBufferCreateInfoNV
 
 instance ToCStruct DedicatedAllocationBufferCreateInfoNV
diff --git a/src/Vulkan/Extensions/VK_NV_dedicated_allocation_image_aliasing.hs b/src/Vulkan/Extensions/VK_NV_dedicated_allocation_image_aliasing.hs
--- a/src/Vulkan/Extensions/VK_NV_dedicated_allocation_image_aliasing.hs
+++ b/src/Vulkan/Extensions/VK_NV_dedicated_allocation_image_aliasing.hs
@@ -96,6 +96,11 @@
 import Foreign.Marshal.Alloc (allocaBytesAligned)
 import Foreign.Ptr (nullPtr)
 import Foreign.Ptr (plusPtr)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
 import Data.String (IsString)
 import Data.Typeable (Typeable)
 import Foreign.Storable (Storable)
@@ -108,12 +113,7 @@
 import Vulkan.Core10.FundamentalTypes (bool32ToBool)
 import Vulkan.Core10.FundamentalTypes (boolToBool32)
 import Vulkan.Core10.FundamentalTypes (Bool32)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV))
 -- | VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV - Structure
 -- describing dedicated allocation image aliasing features that can be
diff --git a/src/Vulkan/Extensions/VK_NV_dedicated_allocation_image_aliasing.hs-boot b/src/Vulkan/Extensions/VK_NV_dedicated_allocation_image_aliasing.hs-boot
--- a/src/Vulkan/Extensions/VK_NV_dedicated_allocation_image_aliasing.hs-boot
+++ b/src/Vulkan/Extensions/VK_NV_dedicated_allocation_image_aliasing.hs-boot
@@ -88,9 +88,10 @@
 -- the generator scripts, not directly.
 module Vulkan.Extensions.VK_NV_dedicated_allocation_image_aliasing  (PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV
 
 instance ToCStruct PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV
diff --git a/src/Vulkan/Extensions/VK_NV_device_diagnostic_checkpoints.hs b/src/Vulkan/Extensions/VK_NV_device_diagnostic_checkpoints.hs
--- a/src/Vulkan/Extensions/VK_NV_device_diagnostic_checkpoints.hs
+++ b/src/Vulkan/Extensions/VK_NV_device_diagnostic_checkpoints.hs
@@ -128,6 +128,11 @@
 import Control.Monad.Trans.Class (lift)
 import Control.Monad.Trans.Cont (evalContT)
 import Data.Vector (generateM)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
 import Control.Monad.IO.Class (MonadIO)
 import Data.String (IsString)
 import Data.Typeable (Typeable)
@@ -151,17 +156,12 @@
 import Vulkan.Core10.Handles (CommandBuffer_T)
 import Vulkan.Dynamic (DeviceCmds(pVkCmdSetCheckpointNV))
 import Vulkan.Dynamic (DeviceCmds(pVkGetQueueCheckpointDataNV))
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Enums.PipelineStageFlagBits (PipelineStageFlagBits)
 import Vulkan.Core10.Enums.PipelineStageFlagBits (PipelineStageFlags)
 import Vulkan.Core10.Handles (Queue)
 import Vulkan.Core10.Handles (Queue(..))
 import Vulkan.Core10.Handles (Queue_T)
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_CHECKPOINT_DATA_NV))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV))
 foreign import ccall
diff --git a/src/Vulkan/Extensions/VK_NV_device_diagnostic_checkpoints.hs-boot b/src/Vulkan/Extensions/VK_NV_device_diagnostic_checkpoints.hs-boot
--- a/src/Vulkan/Extensions/VK_NV_device_diagnostic_checkpoints.hs-boot
+++ b/src/Vulkan/Extensions/VK_NV_device_diagnostic_checkpoints.hs-boot
@@ -108,9 +108,10 @@
                                                               , QueueFamilyCheckpointPropertiesNV
                                                               ) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data CheckpointDataNV
 
 instance ToCStruct CheckpointDataNV
diff --git a/src/Vulkan/Extensions/VK_NV_device_diagnostics_config.hs b/src/Vulkan/Extensions/VK_NV_device_diagnostics_config.hs
--- a/src/Vulkan/Extensions/VK_NV_device_diagnostics_config.hs
+++ b/src/Vulkan/Extensions/VK_NV_device_diagnostics_config.hs
@@ -117,6 +117,12 @@
 import Foreign.Ptr (plusPtr)
 import GHC.Show (showString)
 import Numeric (showHex)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero)
+import Vulkan.Zero (Zero(..))
 import Data.Bits (Bits)
 import Data.Bits (FiniteBits)
 import Data.String (IsString)
@@ -134,13 +140,7 @@
 import Vulkan.Core10.FundamentalTypes (boolToBool32)
 import Vulkan.Core10.FundamentalTypes (Bool32)
 import Vulkan.Core10.FundamentalTypes (Flags)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
-import Vulkan.Zero (Zero)
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV))
 -- | VkPhysicalDeviceDiagnosticsConfigFeaturesNV - Structure describing the
diff --git a/src/Vulkan/Extensions/VK_NV_device_diagnostics_config.hs-boot b/src/Vulkan/Extensions/VK_NV_device_diagnostics_config.hs-boot
--- a/src/Vulkan/Extensions/VK_NV_device_diagnostics_config.hs-boot
+++ b/src/Vulkan/Extensions/VK_NV_device_diagnostics_config.hs-boot
@@ -100,9 +100,10 @@
                                                           , PhysicalDeviceDiagnosticsConfigFeaturesNV
                                                           ) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data DeviceDiagnosticsConfigCreateInfoNV
 
 instance ToCStruct DeviceDiagnosticsConfigCreateInfoNV
diff --git a/src/Vulkan/Extensions/VK_NV_device_generated_commands.hs b/src/Vulkan/Extensions/VK_NV_device_generated_commands.hs
--- a/src/Vulkan/Extensions/VK_NV_device_generated_commands.hs
+++ b/src/Vulkan/Extensions/VK_NV_device_generated_commands.hs
@@ -604,6 +604,12 @@
 import Data.Vector (generateM)
 import qualified Data.Vector (imapM_)
 import qualified Data.Vector (length)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero)
+import Vulkan.Zero (Zero(..))
 import Control.Monad.IO.Class (MonadIO)
 import Data.Bits (Bits)
 import Data.Bits (FiniteBits)
@@ -653,8 +659,6 @@
 import Vulkan.Core10.Handles (Device_T)
 import Vulkan.CStruct.Extends (Extendss)
 import Vulkan.Core10.FundamentalTypes (Flags)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Enums.IndexType (IndexType)
 import Vulkan.Extensions.Handles (IndirectCommandsLayoutNV)
 import Vulkan.Extensions.Handles (IndirectCommandsLayoutNV(..))
@@ -674,11 +678,7 @@
 import Vulkan.Core10.Enums.ShaderStageFlagBits (ShaderStageFlags)
 import Vulkan.CStruct.Extends (SomeStruct)
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
 import Vulkan.Exception (VulkanException(..))
-import Vulkan.Zero (Zero)
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_NV))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV))
@@ -1904,11 +1904,11 @@
 instance FromCStruct GraphicsShaderGroupCreateInfoNV where
   peekCStruct p = do
     stageCount <- peek @Word32 ((p `plusPtr` 16 :: Ptr Word32))
-    pStages <- peek @(Ptr (PipelineShaderStageCreateInfo _)) ((p `plusPtr` 24 :: Ptr (Ptr (PipelineShaderStageCreateInfo a))))
+    pStages <- peek @(Ptr (PipelineShaderStageCreateInfo _)) ((p `plusPtr` 24 :: Ptr (Ptr (PipelineShaderStageCreateInfo _))))
     pStages' <- generateM (fromIntegral stageCount) (\i -> peekSomeCStruct (forgetExtensions ((pStages `advancePtrBytes` (48 * (i)) :: Ptr (PipelineShaderStageCreateInfo _)))))
-    pVertexInputState <- peek @(Ptr (PipelineVertexInputStateCreateInfo _)) ((p `plusPtr` 32 :: Ptr (Ptr (PipelineVertexInputStateCreateInfo a))))
+    pVertexInputState <- peek @(Ptr (PipelineVertexInputStateCreateInfo _)) ((p `plusPtr` 32 :: Ptr (Ptr (PipelineVertexInputStateCreateInfo _))))
     pVertexInputState' <- maybePeek (\j -> peekSomeCStruct (forgetExtensions (j))) pVertexInputState
-    pTessellationState <- peek @(Ptr (PipelineTessellationStateCreateInfo _)) ((p `plusPtr` 40 :: Ptr (Ptr (PipelineTessellationStateCreateInfo a))))
+    pTessellationState <- peek @(Ptr (PipelineTessellationStateCreateInfo _)) ((p `plusPtr` 40 :: Ptr (Ptr (PipelineTessellationStateCreateInfo _))))
     pTessellationState' <- maybePeek (\j -> peekSomeCStruct (forgetExtensions (j))) pTessellationState
     pure $ GraphicsShaderGroupCreateInfoNV
              pStages' pVertexInputState' pTessellationState'
diff --git a/src/Vulkan/Extensions/VK_NV_device_generated_commands.hs-boot b/src/Vulkan/Extensions/VK_NV_device_generated_commands.hs-boot
--- a/src/Vulkan/Extensions/VK_NV_device_generated_commands.hs-boot
+++ b/src/Vulkan/Extensions/VK_NV_device_generated_commands.hs-boot
@@ -548,9 +548,10 @@
                                                           , SetStateFlagsIndirectCommandNV
                                                           ) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data BindIndexBufferIndirectCommandNV
 
 instance ToCStruct BindIndexBufferIndirectCommandNV
diff --git a/src/Vulkan/Extensions/VK_NV_external_memory.hs b/src/Vulkan/Extensions/VK_NV_external_memory.hs
--- a/src/Vulkan/Extensions/VK_NV_external_memory.hs
+++ b/src/Vulkan/Extensions/VK_NV_external_memory.hs
@@ -147,6 +147,11 @@
 import Foreign.Marshal.Alloc (allocaBytesAligned)
 import Foreign.Ptr (nullPtr)
 import Foreign.Ptr (plusPtr)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
 import Data.String (IsString)
 import Data.Typeable (Typeable)
 import Foreign.Storable (Storable)
@@ -157,12 +162,7 @@
 import Foreign.Ptr (Ptr)
 import Data.Kind (Type)
 import Vulkan.Extensions.VK_NV_external_memory_capabilities (ExternalMemoryHandleTypeFlagsNV)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV))
 import Vulkan.Extensions.VK_NV_external_memory_capabilities (ExternalMemoryHandleTypeFlagBitsNV(..))
diff --git a/src/Vulkan/Extensions/VK_NV_external_memory.hs-boot b/src/Vulkan/Extensions/VK_NV_external_memory.hs-boot
--- a/src/Vulkan/Extensions/VK_NV_external_memory.hs-boot
+++ b/src/Vulkan/Extensions/VK_NV_external_memory.hs-boot
@@ -138,9 +138,10 @@
                                                 , ExternalMemoryImageCreateInfoNV
                                                 ) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data ExportMemoryAllocateInfoNV
 
 instance ToCStruct ExportMemoryAllocateInfoNV
diff --git a/src/Vulkan/Extensions/VK_NV_external_memory_capabilities.hs b/src/Vulkan/Extensions/VK_NV_external_memory_capabilities.hs
--- a/src/Vulkan/Extensions/VK_NV_external_memory_capabilities.hs
+++ b/src/Vulkan/Extensions/VK_NV_external_memory_capabilities.hs
@@ -171,6 +171,12 @@
 import Numeric (showHex)
 import Control.Monad.Trans.Class (lift)
 import Control.Monad.Trans.Cont (evalContT)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero)
+import Vulkan.Zero (Zero(..))
 import Control.Monad.IO.Class (MonadIO)
 import Data.Bits (Bits)
 import Data.Bits (FiniteBits)
@@ -193,8 +199,6 @@
 import Vulkan.Core10.FundamentalTypes (Flags)
 import Vulkan.Core10.Enums.Format (Format)
 import Vulkan.Core10.Enums.Format (Format(..))
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Enums.ImageCreateFlagBits (ImageCreateFlagBits(..))
 import Vulkan.Core10.Enums.ImageCreateFlagBits (ImageCreateFlags)
 import Vulkan.Core10.DeviceInitialization (ImageFormatProperties)
@@ -210,11 +214,7 @@
 import Vulkan.Core10.Handles (PhysicalDevice_T)
 import Vulkan.Core10.Enums.Result (Result)
 import Vulkan.Core10.Enums.Result (Result(..))
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
 import Vulkan.Exception (VulkanException(..))
-import Vulkan.Zero (Zero)
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.Result (Result(SUCCESS))
 foreign import ccall
 #if !defined(SAFE_FOREIGN_CALLS)
diff --git a/src/Vulkan/Extensions/VK_NV_external_memory_capabilities.hs-boot b/src/Vulkan/Extensions/VK_NV_external_memory_capabilities.hs-boot
--- a/src/Vulkan/Extensions/VK_NV_external_memory_capabilities.hs-boot
+++ b/src/Vulkan/Extensions/VK_NV_external_memory_capabilities.hs-boot
@@ -141,9 +141,10 @@
                                                              , ExternalMemoryHandleTypeFlagBitsNV
                                                              ) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data ExternalImageFormatPropertiesNV
 
 instance ToCStruct ExternalImageFormatPropertiesNV
diff --git a/src/Vulkan/Extensions/VK_NV_external_memory_win32.hs b/src/Vulkan/Extensions/VK_NV_external_memory_win32.hs
--- a/src/Vulkan/Extensions/VK_NV_external_memory_win32.hs
+++ b/src/Vulkan/Extensions/VK_NV_external_memory_win32.hs
@@ -303,6 +303,11 @@
 import Foreign.Ptr (plusPtr)
 import Control.Monad.Trans.Class (lift)
 import Control.Monad.Trans.Cont (evalContT)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
 import Control.Monad.IO.Class (MonadIO)
 import Data.String (IsString)
 import Data.Typeable (Typeable)
@@ -326,15 +331,10 @@
 import Vulkan.Core10.Handles (Device_T)
 import Vulkan.Extensions.VK_NV_external_memory_capabilities (ExternalMemoryHandleTypeFlagBitsNV(..))
 import Vulkan.Extensions.VK_NV_external_memory_capabilities (ExternalMemoryHandleTypeFlagsNV)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Enums.Result (Result)
 import Vulkan.Core10.Enums.Result (Result(..))
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
 import Vulkan.Exception (VulkanException(..))
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV))
 import Vulkan.Core10.Enums.Result (Result(SUCCESS))
diff --git a/src/Vulkan/Extensions/VK_NV_external_memory_win32.hs-boot b/src/Vulkan/Extensions/VK_NV_external_memory_win32.hs-boot
--- a/src/Vulkan/Extensions/VK_NV_external_memory_win32.hs-boot
+++ b/src/Vulkan/Extensions/VK_NV_external_memory_win32.hs-boot
@@ -280,10 +280,11 @@
                                                       , HANDLE
                                                       ) where
 
-import Foreign.Ptr (Ptr)
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Foreign.Ptr (Ptr)
+import Data.Kind (Type)
+
 data ExportMemoryWin32HandleInfoNV
 
 instance ToCStruct ExportMemoryWin32HandleInfoNV
diff --git a/src/Vulkan/Extensions/VK_NV_fragment_coverage_to_color.hs b/src/Vulkan/Extensions/VK_NV_fragment_coverage_to_color.hs
--- a/src/Vulkan/Extensions/VK_NV_fragment_coverage_to_color.hs
+++ b/src/Vulkan/Extensions/VK_NV_fragment_coverage_to_color.hs
@@ -105,6 +105,12 @@
 import Foreign.Ptr (plusPtr)
 import GHC.Show (showString)
 import Numeric (showHex)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero)
+import Vulkan.Zero (Zero(..))
 import Data.Bits (Bits)
 import Data.Bits (FiniteBits)
 import Data.String (IsString)
@@ -123,13 +129,7 @@
 import Vulkan.Core10.FundamentalTypes (boolToBool32)
 import Vulkan.Core10.FundamentalTypes (Bool32)
 import Vulkan.Core10.FundamentalTypes (Flags)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
-import Vulkan.Zero (Zero)
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV))
 -- | VkPipelineCoverageToColorStateCreateInfoNV - Structure specifying
 -- whether fragment coverage replaces a color
diff --git a/src/Vulkan/Extensions/VK_NV_fragment_coverage_to_color.hs-boot b/src/Vulkan/Extensions/VK_NV_fragment_coverage_to_color.hs-boot
--- a/src/Vulkan/Extensions/VK_NV_fragment_coverage_to_color.hs-boot
+++ b/src/Vulkan/Extensions/VK_NV_fragment_coverage_to_color.hs-boot
@@ -92,9 +92,10 @@
 -- the generator scripts, not directly.
 module Vulkan.Extensions.VK_NV_fragment_coverage_to_color  (PipelineCoverageToColorStateCreateInfoNV) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data PipelineCoverageToColorStateCreateInfoNV
 
 instance ToCStruct PipelineCoverageToColorStateCreateInfoNV
diff --git a/src/Vulkan/Extensions/VK_NV_fragment_shader_barycentric.hs b/src/Vulkan/Extensions/VK_NV_fragment_shader_barycentric.hs
--- a/src/Vulkan/Extensions/VK_NV_fragment_shader_barycentric.hs
+++ b/src/Vulkan/Extensions/VK_NV_fragment_shader_barycentric.hs
@@ -114,7 +114,7 @@
 --
 -- == New SPIR-V Capabilities
 --
--- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-fragment-barycentric FragmentBarycentricNV>
+-- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-FragmentBarycentricNV FragmentBarycentricNV>
 --
 -- == Issues
 --
@@ -190,6 +190,11 @@
 import Foreign.Marshal.Alloc (allocaBytesAligned)
 import Foreign.Ptr (nullPtr)
 import Foreign.Ptr (plusPtr)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
 import Data.String (IsString)
 import Data.Typeable (Typeable)
 import Foreign.Storable (Storable)
@@ -202,12 +207,7 @@
 import Vulkan.Core10.FundamentalTypes (bool32ToBool)
 import Vulkan.Core10.FundamentalTypes (boolToBool32)
 import Vulkan.Core10.FundamentalTypes (Bool32)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV))
 -- | VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV - Structure
 -- describing barycentric support in fragment shaders that can be supported
diff --git a/src/Vulkan/Extensions/VK_NV_fragment_shader_barycentric.hs-boot b/src/Vulkan/Extensions/VK_NV_fragment_shader_barycentric.hs-boot
--- a/src/Vulkan/Extensions/VK_NV_fragment_shader_barycentric.hs-boot
+++ b/src/Vulkan/Extensions/VK_NV_fragment_shader_barycentric.hs-boot
@@ -114,7 +114,7 @@
 --
 -- == New SPIR-V Capabilities
 --
--- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-fragment-barycentric FragmentBarycentricNV>
+-- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-FragmentBarycentricNV FragmentBarycentricNV>
 --
 -- == Issues
 --
@@ -182,9 +182,10 @@
 -- the generator scripts, not directly.
 module Vulkan.Extensions.VK_NV_fragment_shader_barycentric  (PhysicalDeviceFragmentShaderBarycentricFeaturesNV) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data PhysicalDeviceFragmentShaderBarycentricFeaturesNV
 
 instance ToCStruct PhysicalDeviceFragmentShaderBarycentricFeaturesNV
diff --git a/src/Vulkan/Extensions/VK_NV_fragment_shading_rate_enums.hs b/src/Vulkan/Extensions/VK_NV_fragment_shading_rate_enums.hs
--- a/src/Vulkan/Extensions/VK_NV_fragment_shading_rate_enums.hs
+++ b/src/Vulkan/Extensions/VK_NV_fragment_shading_rate_enums.hs
@@ -216,6 +216,12 @@
 import GHC.Show (showsPrec)
 import Control.Monad.Trans.Class (lift)
 import Control.Monad.Trans.Cont (evalContT)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero)
+import Vulkan.Zero (Zero(..))
 import Control.Monad.IO.Class (MonadIO)
 import Data.String (IsString)
 import Data.Typeable (Typeable)
@@ -245,14 +251,8 @@
 import Vulkan.Dynamic (DeviceCmds(pVkCmdSetFragmentShadingRateEnumNV))
 import Vulkan.Extensions.VK_KHR_fragment_shading_rate (FragmentShadingRateCombinerOpKHR)
 import Vulkan.Extensions.VK_KHR_fragment_shading_rate (FragmentShadingRateCombinerOpKHR(..))
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Enums.SampleCountFlagBits (SampleCountFlagBits)
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
-import Vulkan.Zero (Zero)
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV))
diff --git a/src/Vulkan/Extensions/VK_NV_fragment_shading_rate_enums.hs-boot b/src/Vulkan/Extensions/VK_NV_fragment_shading_rate_enums.hs-boot
--- a/src/Vulkan/Extensions/VK_NV_fragment_shading_rate_enums.hs-boot
+++ b/src/Vulkan/Extensions/VK_NV_fragment_shading_rate_enums.hs-boot
@@ -179,9 +179,10 @@
                                                             , FragmentShadingRateNV
                                                             ) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data PhysicalDeviceFragmentShadingRateEnumsFeaturesNV
 
 instance ToCStruct PhysicalDeviceFragmentShadingRateEnumsFeaturesNV
diff --git a/src/Vulkan/Extensions/VK_NV_framebuffer_mixed_samples.hs b/src/Vulkan/Extensions/VK_NV_framebuffer_mixed_samples.hs
--- a/src/Vulkan/Extensions/VK_NV_framebuffer_mixed_samples.hs
+++ b/src/Vulkan/Extensions/VK_NV_framebuffer_mixed_samples.hs
@@ -144,17 +144,25 @@
 import GHC.Show (showString)
 import GHC.Show (showsPrec)
 import Numeric (showHex)
+import Data.Coerce (coerce)
 import Control.Monad.Trans.Class (lift)
 import Control.Monad.Trans.Cont (evalContT)
 import Data.Vector (generateM)
 import qualified Data.Vector (imapM_)
 import qualified Data.Vector (length)
 import qualified Data.Vector (null)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero)
+import Vulkan.Zero (Zero(..))
 import Data.Bits (Bits)
 import Data.Bits (FiniteBits)
 import Data.String (IsString)
 import Data.Typeable (Typeable)
 import Foreign.C.Types (CFloat)
+import Foreign.C.Types (CFloat(..))
 import Foreign.C.Types (CFloat(CFloat))
 import Foreign.Storable (Storable)
 import Foreign.Storable (Storable(peek))
@@ -175,13 +183,7 @@
 import Vulkan.Core10.FundamentalTypes (boolToBool32)
 import Vulkan.Core10.FundamentalTypes (Bool32)
 import Vulkan.Core10.FundamentalTypes (Flags)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
-import Vulkan.Zero (Zero)
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV))
 -- | VkPipelineCoverageModulationStateCreateInfoNV - Structure specifying
 -- parameters controlling coverage modulation
@@ -325,7 +327,7 @@
     let pCoverageModulationTableLength = if pCoverageModulationTable == nullPtr then 0 else (fromIntegral coverageModulationTableCount)
     pCoverageModulationTable' <- generateM pCoverageModulationTableLength (\i -> do
       pCoverageModulationTableElem <- peek @CFloat ((pCoverageModulationTable `advancePtrBytes` (4 * (i)) :: Ptr CFloat))
-      pure $ (\(CFloat a) -> a) pCoverageModulationTableElem)
+      pure $ coerce @CFloat @Float pCoverageModulationTableElem)
     pure $ PipelineCoverageModulationStateCreateInfoNV
              flags coverageModulationMode (bool32ToBool coverageModulationTableEnable) coverageModulationTableCount pCoverageModulationTable'
 
diff --git a/src/Vulkan/Extensions/VK_NV_framebuffer_mixed_samples.hs-boot b/src/Vulkan/Extensions/VK_NV_framebuffer_mixed_samples.hs-boot
--- a/src/Vulkan/Extensions/VK_NV_framebuffer_mixed_samples.hs-boot
+++ b/src/Vulkan/Extensions/VK_NV_framebuffer_mixed_samples.hs-boot
@@ -122,9 +122,10 @@
 -- the generator scripts, not directly.
 module Vulkan.Extensions.VK_NV_framebuffer_mixed_samples  (PipelineCoverageModulationStateCreateInfoNV) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data PipelineCoverageModulationStateCreateInfoNV
 
 instance ToCStruct PipelineCoverageModulationStateCreateInfoNV
diff --git a/src/Vulkan/Extensions/VK_NV_geometry_shader_passthrough.hs b/src/Vulkan/Extensions/VK_NV_geometry_shader_passthrough.hs
--- a/src/Vulkan/Extensions/VK_NV_geometry_shader_passthrough.hs
+++ b/src/Vulkan/Extensions/VK_NV_geometry_shader_passthrough.hs
@@ -90,7 +90,7 @@
 --
 -- == New SPIR-V Capabilities
 --
--- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-geometryshaderpassthrough GeometryShaderPassthroughNV>
+-- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-GeometryShaderPassthroughNV GeometryShaderPassthroughNV>
 --
 -- == Issues
 --
diff --git a/src/Vulkan/Extensions/VK_NV_mesh_shader.hs b/src/Vulkan/Extensions/VK_NV_mesh_shader.hs
--- a/src/Vulkan/Extensions/VK_NV_mesh_shader.hs
+++ b/src/Vulkan/Extensions/VK_NV_mesh_shader.hs
@@ -174,7 +174,7 @@
 --
 -- == New SPIR-V Capability
 --
--- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-meshshading MeshShadingNV>
+-- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-MeshShadingNV MeshShadingNV>
 --
 -- == Issues
 --
@@ -276,6 +276,11 @@
 import GHC.Ptr (nullFunPtr)
 import Foreign.Ptr (nullPtr)
 import Foreign.Ptr (plusPtr)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
 import Control.Monad.IO.Class (MonadIO)
 import Data.String (IsString)
 import Data.Typeable (Typeable)
@@ -305,12 +310,7 @@
 import Vulkan.Dynamic (DeviceCmds(pVkCmdDrawMeshTasksIndirectNV))
 import Vulkan.Dynamic (DeviceCmds(pVkCmdDrawMeshTasksNV))
 import Vulkan.Core10.FundamentalTypes (DeviceSize)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV))
 foreign import ccall
diff --git a/src/Vulkan/Extensions/VK_NV_mesh_shader.hs-boot b/src/Vulkan/Extensions/VK_NV_mesh_shader.hs-boot
--- a/src/Vulkan/Extensions/VK_NV_mesh_shader.hs-boot
+++ b/src/Vulkan/Extensions/VK_NV_mesh_shader.hs-boot
@@ -174,7 +174,7 @@
 --
 -- == New SPIR-V Capability
 --
--- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-meshshading MeshShadingNV>
+-- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-MeshShadingNV MeshShadingNV>
 --
 -- == Issues
 --
@@ -260,9 +260,10 @@
                                             , PhysicalDeviceMeshShaderPropertiesNV
                                             ) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data DrawMeshTasksIndirectCommandNV
 
 instance ToCStruct DrawMeshTasksIndirectCommandNV
diff --git a/src/Vulkan/Extensions/VK_NV_ray_tracing.hs b/src/Vulkan/Extensions/VK_NV_ray_tracing.hs
--- a/src/Vulkan/Extensions/VK_NV_ray_tracing.hs
+++ b/src/Vulkan/Extensions/VK_NV_ray_tracing.hs
@@ -381,7 +381,7 @@
 --
 -- == New SPIR-V Capabilities
 --
--- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-nv-raytracing RayTracingNV>
+-- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-RayTracingNV RayTracingNV>
 --
 -- == Issues
 --
@@ -592,6 +592,12 @@
 import qualified Data.Vector (imapM_)
 import qualified Data.Vector (length)
 import Foreign.C.Types (CSize(..))
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero)
+import Vulkan.Zero (Zero(..))
 import Control.Monad.IO.Class (MonadIO)
 import Data.String (IsString)
 import Data.Type.Equality ((:~:)(Refl))
@@ -661,8 +667,6 @@
 import Vulkan.CStruct.Extends (Extendss)
 import Vulkan.CStruct.Extends (Extensible(..))
 import Vulkan.Core10.Enums.Format (Format)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Extensions.VK_KHR_acceleration_structure (GeometryFlagBitsKHR)
 import Vulkan.Extensions.VK_KHR_acceleration_structure (GeometryFlagsKHR)
 import Vulkan.Extensions.VK_KHR_acceleration_structure (GeometryInstanceFlagBitsKHR)
@@ -691,12 +695,8 @@
 import Vulkan.Core10.Enums.Result (Result(..))
 import Vulkan.CStruct.Extends (SomeStruct)
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
 import Vulkan.Extensions.VK_KHR_acceleration_structure (TransformMatrixKHR)
 import Vulkan.Exception (VulkanException(..))
-import Vulkan.Zero (Zero)
-import Vulkan.Zero (Zero(..))
 import Vulkan.Extensions.VK_KHR_acceleration_structure (AccelerationStructureTypeKHR(ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR))
 import Vulkan.Extensions.VK_KHR_acceleration_structure (AccelerationStructureTypeKHR(ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR))
 import Vulkan.Core10.Enums.AccessFlagBits (AccessFlags)
@@ -2733,7 +2733,7 @@
 deriving instance Show (Chain es) => Show (RayTracingPipelineCreateInfoNV es)
 
 instance Extensible RayTracingPipelineCreateInfoNV where
-  extensibleType = STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV
+  extensibleTypeName = "RayTracingPipelineCreateInfoNV"
   setNext x next = x{next = next}
   getNext RayTracingPipelineCreateInfoNV{..} = next
   extends :: forall e b proxy. Typeable e => proxy e -> (Extends RayTracingPipelineCreateInfoNV e => b) -> Maybe b
@@ -2784,7 +2784,7 @@
     next <- peekChain (castPtr pNext)
     flags <- peek @PipelineCreateFlags ((p `plusPtr` 16 :: Ptr PipelineCreateFlags))
     stageCount <- peek @Word32 ((p `plusPtr` 20 :: Ptr Word32))
-    pStages <- peek @(Ptr (PipelineShaderStageCreateInfo _)) ((p `plusPtr` 24 :: Ptr (Ptr (PipelineShaderStageCreateInfo a))))
+    pStages <- peek @(Ptr (PipelineShaderStageCreateInfo _)) ((p `plusPtr` 24 :: Ptr (Ptr (PipelineShaderStageCreateInfo _))))
     pStages' <- generateM (fromIntegral stageCount) (\i -> peekSomeCStruct (forgetExtensions ((pStages `advancePtrBytes` (48 * (i)) :: Ptr (PipelineShaderStageCreateInfo _)))))
     groupCount <- peek @Word32 ((p `plusPtr` 32 :: Ptr Word32))
     pGroups <- peek @(Ptr RayTracingShaderGroupCreateInfoNV) ((p `plusPtr` 40 :: Ptr (Ptr RayTracingShaderGroupCreateInfoNV)))
diff --git a/src/Vulkan/Extensions/VK_NV_ray_tracing.hs-boot b/src/Vulkan/Extensions/VK_NV_ray_tracing.hs-boot
--- a/src/Vulkan/Extensions/VK_NV_ray_tracing.hs-boot
+++ b/src/Vulkan/Extensions/VK_NV_ray_tracing.hs-boot
@@ -381,7 +381,7 @@
 --
 -- == New SPIR-V Capabilities
 --
--- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-nv-raytracing RayTracingNV>
+-- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-RayTracingNV RayTracingNV>
 --
 -- == Issues
 --
@@ -479,13 +479,13 @@
                                             , WriteDescriptorSetAccelerationStructureNV
                                             ) where
 
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (ToCStruct)
 import Data.Kind (Type)
 import {-# SOURCE #-} Vulkan.CStruct.Extends (Chain)
 import {-# SOURCE #-} Vulkan.CStruct.Extends (Extendss)
-import Vulkan.CStruct (FromCStruct)
 import {-# SOURCE #-} Vulkan.CStruct.Extends (PeekChain)
 import {-# SOURCE #-} Vulkan.CStruct.Extends (PokeChain)
-import Vulkan.CStruct (ToCStruct)
 data AccelerationStructureCreateInfoNV
 
 instance ToCStruct AccelerationStructureCreateInfoNV
diff --git a/src/Vulkan/Extensions/VK_NV_representative_fragment_test.hs b/src/Vulkan/Extensions/VK_NV_representative_fragment_test.hs
--- a/src/Vulkan/Extensions/VK_NV_representative_fragment_test.hs
+++ b/src/Vulkan/Extensions/VK_NV_representative_fragment_test.hs
@@ -171,6 +171,11 @@
 import Foreign.Marshal.Alloc (allocaBytesAligned)
 import Foreign.Ptr (nullPtr)
 import Foreign.Ptr (plusPtr)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
 import Data.String (IsString)
 import Data.Typeable (Typeable)
 import Foreign.Storable (Storable)
@@ -183,12 +188,7 @@
 import Vulkan.Core10.FundamentalTypes (bool32ToBool)
 import Vulkan.Core10.FundamentalTypes (boolToBool32)
 import Vulkan.Core10.FundamentalTypes (Bool32)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV))
 -- | VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV - Structure
diff --git a/src/Vulkan/Extensions/VK_NV_representative_fragment_test.hs-boot b/src/Vulkan/Extensions/VK_NV_representative_fragment_test.hs-boot
--- a/src/Vulkan/Extensions/VK_NV_representative_fragment_test.hs-boot
+++ b/src/Vulkan/Extensions/VK_NV_representative_fragment_test.hs-boot
@@ -164,9 +164,10 @@
                                                              , PipelineRepresentativeFragmentTestStateCreateInfoNV
                                                              ) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data PhysicalDeviceRepresentativeFragmentTestFeaturesNV
 
 instance ToCStruct PhysicalDeviceRepresentativeFragmentTestFeaturesNV
diff --git a/src/Vulkan/Extensions/VK_NV_sample_mask_override_coverage.hs b/src/Vulkan/Extensions/VK_NV_sample_mask_override_coverage.hs
--- a/src/Vulkan/Extensions/VK_NV_sample_mask_override_coverage.hs
+++ b/src/Vulkan/Extensions/VK_NV_sample_mask_override_coverage.hs
@@ -81,7 +81,7 @@
 --
 -- == New SPIR-V Capabilities
 --
--- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-samplemaskoverridecoverage SampleMaskOverrideCoverageNV>
+-- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-SampleMaskOverrideCoverageNV SampleMaskOverrideCoverageNV>
 --
 -- == Version History
 --
diff --git a/src/Vulkan/Extensions/VK_NV_scissor_exclusive.hs b/src/Vulkan/Extensions/VK_NV_scissor_exclusive.hs
--- a/src/Vulkan/Extensions/VK_NV_scissor_exclusive.hs
+++ b/src/Vulkan/Extensions/VK_NV_scissor_exclusive.hs
@@ -143,6 +143,11 @@
 import Data.Vector (generateM)
 import qualified Data.Vector (imapM_)
 import qualified Data.Vector (length)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
 import Control.Monad.IO.Class (MonadIO)
 import Data.String (IsString)
 import Data.Typeable (Typeable)
@@ -168,13 +173,8 @@
 import Vulkan.Core10.Handles (CommandBuffer(..))
 import Vulkan.Core10.Handles (CommandBuffer_T)
 import Vulkan.Dynamic (DeviceCmds(pVkCmdSetExclusiveScissorNV))
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.FundamentalTypes (Rect2D)
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV))
 foreign import ccall
diff --git a/src/Vulkan/Extensions/VK_NV_scissor_exclusive.hs-boot b/src/Vulkan/Extensions/VK_NV_scissor_exclusive.hs-boot
--- a/src/Vulkan/Extensions/VK_NV_scissor_exclusive.hs-boot
+++ b/src/Vulkan/Extensions/VK_NV_scissor_exclusive.hs-boot
@@ -125,9 +125,10 @@
                                                   , PipelineViewportExclusiveScissorStateCreateInfoNV
                                                   ) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data PhysicalDeviceExclusiveScissorFeaturesNV
 
 instance ToCStruct PhysicalDeviceExclusiveScissorFeaturesNV
diff --git a/src/Vulkan/Extensions/VK_NV_shader_image_footprint.hs b/src/Vulkan/Extensions/VK_NV_shader_image_footprint.hs
--- a/src/Vulkan/Extensions/VK_NV_shader_image_footprint.hs
+++ b/src/Vulkan/Extensions/VK_NV_shader_image_footprint.hs
@@ -127,7 +127,7 @@
 --
 -- == New SPIR-V Capability
 --
--- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-imagefootprint ImageFootprintNV>
+-- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-ImageFootprintNV ImageFootprintNV>
 --
 -- == Issues
 --
@@ -276,6 +276,11 @@
 import Foreign.Marshal.Alloc (allocaBytesAligned)
 import Foreign.Ptr (nullPtr)
 import Foreign.Ptr (plusPtr)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
 import Data.String (IsString)
 import Data.Typeable (Typeable)
 import Foreign.Storable (Storable)
@@ -288,12 +293,7 @@
 import Vulkan.Core10.FundamentalTypes (bool32ToBool)
 import Vulkan.Core10.FundamentalTypes (boolToBool32)
 import Vulkan.Core10.FundamentalTypes (Bool32)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV))
 -- | VkPhysicalDeviceShaderImageFootprintFeaturesNV - Structure describing
 -- shader image footprint features that can be supported by an
diff --git a/src/Vulkan/Extensions/VK_NV_shader_image_footprint.hs-boot b/src/Vulkan/Extensions/VK_NV_shader_image_footprint.hs-boot
--- a/src/Vulkan/Extensions/VK_NV_shader_image_footprint.hs-boot
+++ b/src/Vulkan/Extensions/VK_NV_shader_image_footprint.hs-boot
@@ -127,7 +127,7 @@
 --
 -- == New SPIR-V Capability
 --
--- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-imagefootprint ImageFootprintNV>
+-- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-ImageFootprintNV ImageFootprintNV>
 --
 -- == Issues
 --
@@ -268,9 +268,10 @@
 -- the generator scripts, not directly.
 module Vulkan.Extensions.VK_NV_shader_image_footprint  (PhysicalDeviceShaderImageFootprintFeaturesNV) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data PhysicalDeviceShaderImageFootprintFeaturesNV
 
 instance ToCStruct PhysicalDeviceShaderImageFootprintFeaturesNV
diff --git a/src/Vulkan/Extensions/VK_NV_shader_sm_builtins.hs b/src/Vulkan/Extensions/VK_NV_shader_sm_builtins.hs
--- a/src/Vulkan/Extensions/VK_NV_shader_sm_builtins.hs
+++ b/src/Vulkan/Extensions/VK_NV_shader_sm_builtins.hs
@@ -97,7 +97,7 @@
 --
 -- == New SPIR-V Capabilities
 --
--- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-shaderSMBuiltins ShaderSMBuiltinsNV>
+-- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-ShaderSMBuiltinsNV ShaderSMBuiltinsNV>
 --
 -- == Issues
 --
@@ -141,6 +141,11 @@
 import Foreign.Marshal.Alloc (allocaBytesAligned)
 import Foreign.Ptr (nullPtr)
 import Foreign.Ptr (plusPtr)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
 import Data.String (IsString)
 import Data.Typeable (Typeable)
 import Foreign.Storable (Storable)
@@ -154,12 +159,7 @@
 import Vulkan.Core10.FundamentalTypes (bool32ToBool)
 import Vulkan.Core10.FundamentalTypes (boolToBool32)
 import Vulkan.Core10.FundamentalTypes (Bool32)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV))
 -- | VkPhysicalDeviceShaderSMBuiltinsPropertiesNV - Structure describing
diff --git a/src/Vulkan/Extensions/VK_NV_shader_sm_builtins.hs-boot b/src/Vulkan/Extensions/VK_NV_shader_sm_builtins.hs-boot
--- a/src/Vulkan/Extensions/VK_NV_shader_sm_builtins.hs-boot
+++ b/src/Vulkan/Extensions/VK_NV_shader_sm_builtins.hs-boot
@@ -97,7 +97,7 @@
 --
 -- == New SPIR-V Capabilities
 --
--- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-shaderSMBuiltins ShaderSMBuiltinsNV>
+-- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-ShaderSMBuiltinsNV ShaderSMBuiltinsNV>
 --
 -- == Issues
 --
@@ -134,9 +134,10 @@
                                                    , PhysicalDeviceShaderSMBuiltinsPropertiesNV
                                                    ) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data PhysicalDeviceShaderSMBuiltinsFeaturesNV
 
 instance ToCStruct PhysicalDeviceShaderSMBuiltinsFeaturesNV
diff --git a/src/Vulkan/Extensions/VK_NV_shading_rate_image.hs b/src/Vulkan/Extensions/VK_NV_shading_rate_image.hs
--- a/src/Vulkan/Extensions/VK_NV_shading_rate_image.hs
+++ b/src/Vulkan/Extensions/VK_NV_shading_rate_image.hs
@@ -326,6 +326,12 @@
 import Data.Vector (generateM)
 import qualified Data.Vector (imapM_)
 import qualified Data.Vector (length)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero)
+import Vulkan.Zero (Zero(..))
 import Control.Monad.IO.Class (MonadIO)
 import Data.String (IsString)
 import Data.Typeable (Typeable)
@@ -357,17 +363,11 @@
 import Vulkan.Dynamic (DeviceCmds(pVkCmdSetCoarseSampleOrderNV))
 import Vulkan.Dynamic (DeviceCmds(pVkCmdSetViewportShadingRatePaletteNV))
 import Vulkan.Core10.FundamentalTypes (Extent2D)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Enums.ImageLayout (ImageLayout)
 import Vulkan.Core10.Enums.ImageLayout (ImageLayout(..))
 import Vulkan.Core10.Handles (ImageView)
 import Vulkan.Core10.Handles (ImageView(..))
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
-import Vulkan.Zero (Zero)
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV))
diff --git a/src/Vulkan/Extensions/VK_NV_shading_rate_image.hs-boot b/src/Vulkan/Extensions/VK_NV_shading_rate_image.hs-boot
--- a/src/Vulkan/Extensions/VK_NV_shading_rate_image.hs-boot
+++ b/src/Vulkan/Extensions/VK_NV_shading_rate_image.hs-boot
@@ -284,9 +284,10 @@
                                                    , CoarseSampleOrderTypeNV
                                                    ) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data CoarseSampleLocationNV
 
 instance ToCStruct CoarseSampleLocationNV
diff --git a/src/Vulkan/Extensions/VK_NV_viewport_array2.hs b/src/Vulkan/Extensions/VK_NV_viewport_array2.hs
--- a/src/Vulkan/Extensions/VK_NV_viewport_array2.hs
+++ b/src/Vulkan/Extensions/VK_NV_viewport_array2.hs
@@ -109,9 +109,9 @@
 --
 -- == New SPIR-V Capabilities
 --
--- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-viewportarray2 ShaderViewportIndexLayerNV>
+-- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-ShaderViewportIndexLayerNV ShaderViewportIndexLayerNV>
 --
--- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-viewportarray2 ShaderViewportMaskNV>
+-- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-ShaderViewportMaskNV ShaderViewportMaskNV>
 --
 -- == Version History
 --
diff --git a/src/Vulkan/Extensions/VK_NV_viewport_swizzle.hs b/src/Vulkan/Extensions/VK_NV_viewport_swizzle.hs
--- a/src/Vulkan/Extensions/VK_NV_viewport_swizzle.hs
+++ b/src/Vulkan/Extensions/VK_NV_viewport_swizzle.hs
@@ -295,6 +295,12 @@
 import Data.Vector (generateM)
 import qualified Data.Vector (imapM_)
 import qualified Data.Vector (length)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero)
+import Vulkan.Zero (Zero(..))
 import Data.Bits (Bits)
 import Data.Bits (FiniteBits)
 import Data.String (IsString)
@@ -314,13 +320,7 @@
 import Data.Vector (Vector)
 import Vulkan.CStruct.Utils (advancePtrBytes)
 import Vulkan.Core10.FundamentalTypes (Flags)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
-import Vulkan.Zero (Zero)
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV))
 -- | VkViewportSwizzleNV - Structure specifying a viewport swizzle
 --
diff --git a/src/Vulkan/Extensions/VK_NV_viewport_swizzle.hs-boot b/src/Vulkan/Extensions/VK_NV_viewport_swizzle.hs-boot
--- a/src/Vulkan/Extensions/VK_NV_viewport_swizzle.hs-boot
+++ b/src/Vulkan/Extensions/VK_NV_viewport_swizzle.hs-boot
@@ -267,9 +267,10 @@
                                                  , ViewportSwizzleNV
                                                  ) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data PipelineViewportSwizzleStateCreateInfoNV
 
 instance ToCStruct PipelineViewportSwizzleStateCreateInfoNV
diff --git a/src/Vulkan/Extensions/VK_NV_win32_keyed_mutex.hs b/src/Vulkan/Extensions/VK_NV_win32_keyed_mutex.hs
--- a/src/Vulkan/Extensions/VK_NV_win32_keyed_mutex.hs
+++ b/src/Vulkan/Extensions/VK_NV_win32_keyed_mutex.hs
@@ -246,6 +246,11 @@
 import Data.Vector (generateM)
 import qualified Data.Vector (imapM_)
 import qualified Data.Vector (length)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
 import Data.String (IsString)
 import Data.Typeable (Typeable)
 import Foreign.Storable (Storable(peek))
@@ -261,12 +266,7 @@
 import Data.Vector (Vector)
 import Vulkan.CStruct.Utils (advancePtrBytes)
 import Vulkan.Core10.Handles (DeviceMemory)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV))
 -- | VkWin32KeyedMutexAcquireReleaseInfoNV - use Windows keyex mutex
 -- mechanism to synchronize work
diff --git a/src/Vulkan/Extensions/VK_NV_win32_keyed_mutex.hs-boot b/src/Vulkan/Extensions/VK_NV_win32_keyed_mutex.hs-boot
--- a/src/Vulkan/Extensions/VK_NV_win32_keyed_mutex.hs-boot
+++ b/src/Vulkan/Extensions/VK_NV_win32_keyed_mutex.hs-boot
@@ -231,9 +231,10 @@
 -- the generator scripts, not directly.
 module Vulkan.Extensions.VK_NV_win32_keyed_mutex  (Win32KeyedMutexAcquireReleaseInfoNV) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data Win32KeyedMutexAcquireReleaseInfoNV
 
 instance ToCStruct Win32KeyedMutexAcquireReleaseInfoNV
diff --git a/src/Vulkan/Extensions/VK_QCOM_render_pass_transform.hs b/src/Vulkan/Extensions/VK_QCOM_render_pass_transform.hs
--- a/src/Vulkan/Extensions/VK_QCOM_render_pass_transform.hs
+++ b/src/Vulkan/Extensions/VK_QCOM_render_pass_transform.hs
@@ -235,6 +235,11 @@
 import Foreign.Marshal.Alloc (allocaBytesAligned)
 import Foreign.Ptr (nullPtr)
 import Foreign.Ptr (plusPtr)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
 import Data.String (IsString)
 import Data.Typeable (Typeable)
 import Foreign.Storable (Storable)
@@ -244,14 +249,9 @@
 import GHC.Generics (Generic)
 import Foreign.Ptr (Ptr)
 import Data.Kind (Type)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.FundamentalTypes (Rect2D)
 import Vulkan.Core10.Enums.StructureType (StructureType)
 import Vulkan.Extensions.VK_KHR_surface (SurfaceTransformFlagBitsKHR)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM))
 import Vulkan.Extensions.VK_KHR_surface (SurfaceTransformFlagBitsKHR(..))
diff --git a/src/Vulkan/Extensions/VK_QCOM_render_pass_transform.hs-boot b/src/Vulkan/Extensions/VK_QCOM_render_pass_transform.hs-boot
--- a/src/Vulkan/Extensions/VK_QCOM_render_pass_transform.hs-boot
+++ b/src/Vulkan/Extensions/VK_QCOM_render_pass_transform.hs-boot
@@ -226,9 +226,10 @@
                                                         , RenderPassTransformBeginInfoQCOM
                                                         ) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data CommandBufferInheritanceRenderPassTransformInfoQCOM
 
 instance ToCStruct CommandBufferInheritanceRenderPassTransformInfoQCOM
diff --git a/src/Vulkan/Extensions/VK_QCOM_rotated_copy_commands.hs b/src/Vulkan/Extensions/VK_QCOM_rotated_copy_commands.hs
--- a/src/Vulkan/Extensions/VK_QCOM_rotated_copy_commands.hs
+++ b/src/Vulkan/Extensions/VK_QCOM_rotated_copy_commands.hs
@@ -130,6 +130,11 @@
 import Foreign.Marshal.Alloc (allocaBytesAligned)
 import Foreign.Ptr (nullPtr)
 import Foreign.Ptr (plusPtr)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
 import Data.String (IsString)
 import Data.Typeable (Typeable)
 import Foreign.Storable (Storable)
@@ -139,13 +144,8 @@
 import GHC.Generics (Generic)
 import Foreign.Ptr (Ptr)
 import Data.Kind (Type)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Enums.StructureType (StructureType)
 import Vulkan.Extensions.VK_KHR_surface (SurfaceTransformFlagBitsKHR)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM))
 import Vulkan.Extensions.VK_KHR_surface (SurfaceTransformFlagBitsKHR(..))
 import Vulkan.Extensions.VK_KHR_surface (SurfaceTransformFlagsKHR)
diff --git a/src/Vulkan/Extensions/VK_QCOM_rotated_copy_commands.hs-boot b/src/Vulkan/Extensions/VK_QCOM_rotated_copy_commands.hs-boot
--- a/src/Vulkan/Extensions/VK_QCOM_rotated_copy_commands.hs-boot
+++ b/src/Vulkan/Extensions/VK_QCOM_rotated_copy_commands.hs-boot
@@ -120,9 +120,10 @@
 -- the generator scripts, not directly.
 module Vulkan.Extensions.VK_QCOM_rotated_copy_commands  (CopyCommandTransformInfoQCOM) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data CopyCommandTransformInfoQCOM
 
 instance ToCStruct CopyCommandTransformInfoQCOM
diff --git a/src/Vulkan/Extensions/VK_VALVE_mutable_descriptor_type.hs b/src/Vulkan/Extensions/VK_VALVE_mutable_descriptor_type.hs
--- a/src/Vulkan/Extensions/VK_VALVE_mutable_descriptor_type.hs
+++ b/src/Vulkan/Extensions/VK_VALVE_mutable_descriptor_type.hs
@@ -151,6 +151,11 @@
 import Data.Vector (generateM)
 import qualified Data.Vector (imapM_)
 import qualified Data.Vector (length)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
 import Data.String (IsString)
 import Data.Typeable (Typeable)
 import Foreign.Storable (Storable)
@@ -168,12 +173,7 @@
 import Vulkan.Core10.FundamentalTypes (boolToBool32)
 import Vulkan.Core10.FundamentalTypes (Bool32)
 import Vulkan.Core10.Enums.DescriptorType (DescriptorType)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
-import Vulkan.Zero (Zero(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE))
 -- | VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE - Structure
diff --git a/src/Vulkan/Extensions/VK_VALVE_mutable_descriptor_type.hs-boot b/src/Vulkan/Extensions/VK_VALVE_mutable_descriptor_type.hs-boot
--- a/src/Vulkan/Extensions/VK_VALVE_mutable_descriptor_type.hs-boot
+++ b/src/Vulkan/Extensions/VK_VALVE_mutable_descriptor_type.hs-boot
@@ -139,9 +139,10 @@
                                                            , PhysicalDeviceMutableDescriptorTypeFeaturesVALVE
                                                            ) where
 
-import Data.Kind (Type)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
 data MutableDescriptorTypeCreateInfoVALVE
 
 instance ToCStruct MutableDescriptorTypeCreateInfoVALVE
diff --git a/src/Vulkan/Version.hs b/src/Vulkan/Version.hs
--- a/src/Vulkan/Version.hs
+++ b/src/Vulkan/Version.hs
@@ -15,11 +15,11 @@
 import Data.Word (Word32)
 
 pattern HEADER_VERSION :: Word32
-pattern HEADER_VERSION = 164
+pattern HEADER_VERSION = 165
 
 
 pattern HEADER_VERSION_COMPLETE :: Word32
-pattern HEADER_VERSION_COMPLETE = MAKE_VERSION 1 2 164
+pattern HEADER_VERSION_COMPLETE = MAKE_VERSION 1 2 165
 
 
 pattern MAKE_VERSION :: Word32 -> Word32 -> Word32 -> Word32
diff --git a/src/Vulkan/Zero.hs b/src/Vulkan/Zero.hs
deleted file mode 100644
--- a/src/Vulkan/Zero.hs
+++ /dev/null
@@ -1,83 +0,0 @@
-{-# language CPP #-}
--- No documentation found for Chapter "Zero"
-module Vulkan.Zero  (Zero(..)) where
-
-import GHC.Ptr (nullFunPtr)
-import Foreign.Ptr (nullPtr)
-import Foreign.C.Types (CChar)
-import Foreign.C.Types (CFloat)
-import Foreign.C.Types (CInt)
-import Foreign.C.Types (CSize)
-import Foreign.Storable (Storable)
-import Data.Int (Int16)
-import Data.Int (Int32)
-import Data.Int (Int64)
-import Data.Int (Int8)
-import Foreign.Ptr (FunPtr)
-import Foreign.Ptr (Ptr)
-import GHC.TypeNats (KnownNat)
-import Data.Word (Word16)
-import Data.Word (Word32)
-import Data.Word (Word64)
-import Data.Word (Word8)
-
--- | A class for initializing things with all zero data
---
--- Any instance should satisfy the following law:
---
--- @ new zero = calloc @ or @ with zero = withZeroCStruct @
---
--- i.e. Marshaling @zero@ to memory yeilds only zero-valued bytes, except
--- for structs which require a "type" tag
---
-class Zero a where
-  zero :: a
-
-instance Zero Bool where
-  zero = False
-
-instance Zero (FunPtr a) where
-  zero = nullFunPtr
-
-instance Zero (Ptr a) where
-  zero = nullPtr
-
-instance Zero Int8 where
-  zero = 0
-
-instance Zero Int16 where
-  zero = 0
-
-instance Zero Int32 where
-  zero = 0
-
-instance Zero Int64 where
-  zero = 0
-
-instance Zero Word8 where
-  zero = 0
-
-instance Zero Word16 where
-  zero = 0
-
-instance Zero Word32 where
-  zero = 0
-
-instance Zero Word64 where
-  zero = 0
-
-instance Zero Float where
-  zero = 0
-
-instance Zero CFloat where
-  zero = 0
-
-instance Zero CChar where
-  zero = 0
-
-instance Zero CSize where
-  zero = 0
-
-instance Zero CInt where
-  zero = 0
-
diff --git a/vulkan.cabal b/vulkan.cabal
--- a/vulkan.cabal
+++ b/vulkan.cabal
@@ -5,7 +5,7 @@
 -- see: https://github.com/sol/hpack
 
 name:           vulkan
-version:        3.8.1
+version:        3.8.2
 synopsis:       Bindings to the Vulkan graphics API.
 category:       Graphics
 homepage:       https://github.com/expipiplus1/vulkan#readme
@@ -246,7 +246,6 @@
       Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore
       Vulkan.Core12.Promoted_From_VK_KHR_uniform_buffer_standard_layout
       Vulkan.Core12.Promoted_From_VK_KHR_vulkan_memory_model
-      Vulkan.CStruct
       Vulkan.CStruct.Extends
       Vulkan.CStruct.Utils
       Vulkan.Dynamic
@@ -480,9 +479,10 @@
       Vulkan.NamedType
       Vulkan.SPIRVRequirements
       Vulkan.Version
-      Vulkan.Zero
+      Vulkan.CStruct
       Vulkan.Internal.Utils
       Vulkan.Requirement
+      Vulkan.Zero
   hs-source-dirs:
       src
       src-manual
